Keybase proof

I hereby claim:

  • I am furusiyya on github.
  • I am furusiyya ( on keybase.
  • I have a public key whose fingerprint is 120E 08FA 2522 9838 9035 9A42 B0DA 2375 423B F62D

To claim this, I am signing this object:

View gist:23b431d6c883f60a2454b1fb8a1c9999
0x00 0 STOP
0x01 3 ADD
0x02 5 MUL
0x03 3 SUB
0x04 5 DIV
0x05 5 SDIV
0x06 5 MOD
0x07 5 SMOD
0x08 8 ADDMOD
0x09 8 MULMOD

Some changes have been made in result of first audit. Following points mentioned in previous audit report are still need to be addressed.

7.3. Unresolved, Low: Use of throw

7.4. Unresolved, Low: Possible, Code is subjected to gas optimization.

7.6. Unresolved, Low: Possible, Redundent Code

7.10. Unresolved, Medium: No use of visibility of visibility modifiers

7.11. Unresolved, Medium: Lack of Sanity Checks

This issue doesn't exist in previous version.

1.0. Bad Inheritance


View MultiSig.sol
* MultiSig.sol v1.0.0
* Bilal Arif -
* Block360
pragma solidity 0.4.18;


Files imported from OpenZeppelin are not audited. In the audit OpenZeppelin latest commit 99f3e26f83f4628246b48c8b3afa5bb3958f5224 is considered. Only Coin.sol is audited.

2. High Severity

  • Token minting is only allowed to owner so contract is centralized and not compliant to escrow standards.
  • No unit test are provided which is a big red flag. I will recommend to write unit test and use of truffle.

3. Medium Severity Issue

  1. Check that destination of token transfers is not 0x0
  • Rate of Occurrence: Low
View LockableToken.sol
pragma solidity ^0.4.13;
contract ERC20Basic {
uint256 public totalSupply;
function balanceOf(address who) constant returns (uint256);
function transfer(address to, uint256 value) returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
contract ERC20 is ERC20Basic {

Specifications of a contract

  • A flat pricing with ETH: USD - $0.02 per token (50 tokens to 1 USD)
  • Coin rate should be $0.02 (can just use the live feed from or similar)
  • Token supply: 1 billion, selling 150 million e.g. $3M cap.
  • Token: 8 decimals
  • Multisig wallet for the proceeds, as per gnosis (as that doesn't seem to have had any issues vs. parity)
  • Ensure tokens are reserved and allocated by a certain date when they unlock to subscribers
  • No ETH cap: Anyone can buy as many tokens as they like until all tokens are sold
  • Sale ends when 150m tokens (out of 1bn) allocated to contract run out or a certain date is reached
  • Ideally the smart contract should verify in etherscan and fit into the token tracker

You have to create a smart contract in solidity language and deploy it on ethereum testnet. Smart contract will represent an ERC20 token that have only one function used for transferring tokens. Solidity:

Verifying that "" is my Blockstack ID.
View ICO_Bonuses
bonuses[0x017ABCC1012A7FfA811bBe4a26804f9DDac1Af4D] = true;
bonuses[0x1156ABCBA63ACC64162b0bbf67726a3E5eA1E157] = true;
bonuses[0xEAC8483261078517528DE64956dBD405f631265c] = true;
bonuses[0xB0b0D639b612937D50dd26eA6dc668e7AE51642A] = true;
bonuses[0x417535DEF791d7BBFBC97b0f743a4Da67fD9eC3B] = true;
bonuses[0x6723f81CDc9a5D5ef2Fe1bFbEdb4f83Bd017D3dC] = true;
bonuses[0xb9Bd4f154Bb5F2BE5E7Db0357C54720c7f35405d] = true;
bonuses[0x21CA5617f0cd02f13075C7c22f7231D061F09189] = true;
bonuses[0x0a6Cd7e558c69baF7388bb0B3432E29Ecc29ac55] = true;
bonuses[0x6a7f63709422A986A953904c64F10D945c8AfBA1] = true;