Solidity contract for inlock (ILK) token. Details on http://inlock.io/
Switch branches/tags
Nothing to show
Clone or download
Latest commit 1a2b1c4 Sep 1, 2018
Permalink
Failed to load latest commit information.
contract Update README.md Sep 1, 2018
LICENSE Create LICENSE May 26, 2018
README.md Update README.md Sep 1, 2018
report.html Update report.html Jul 25, 2018

README.md

ilktoken-contract

Solidity contract for inlock (ILK) token. Details on https://inlock.io/

Whitepaper: http://inlock.io/whitepaper

Tokenomics: http://inlock.io/tokenomics

Following information based on Income Locker (inlock.io) whitepaper: https://inlock.io/wp-content/uploads/2018/06/Whitepaper_V1.06.pdf

  • Latest version: V1.06 release date: 2018.06.21

The InLock token is made up of these contracts structure:

  • Token [Proxy] --> Token [Library] --> Token [database ]
  • ICO [Proxy] --> ICO [Library]
  • Token multisig contract
_ Phases Code Planned date
pause 0 between phases
privateSale1 1 until 15/AUG
privateSale2 2 until 12/SEPT
  sales1 3 15/SEPT - 21/SEPT
  sales2 4 22/SEPT - 28/SEPT
  sales3 5 29/SEPT - 5/OCT
  sales4 6 6/OCT - 12/OCT
  preFinish 7 13/OCT - token deploy
finish 8 TBA

Unsold tokens

All unsold tokens will be locked until September 30, 2019 (1 year after the token sale). These tokens will be distributed among all token sale participants if they still have ILK tokens as the same address they provided during the token sale. We wish to reward participants for their long term commitment. The distribution is based on the number of tokens they still have in their wallets proportionally to others. ILK tokens purchased and sent to these addresses do not count towards distribution.

Deployed contracts

Contract are deployed to the Ethereum Foundation (main) network.

Token Proxy (Users should use this contract)

Address:

0xF784682C82526e245F50975190EF0fff4E4fC077

ABI:

[ { "constant": true, "inputs": [], "name": "name", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_spender", "type": "address" }, { "name": "_value", "type": "uint256" } ], "name": "approve", "outputs": [ { "name": "_success", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_to", "type": "address[]" }, { "name": "_amount", "type": "uint256[]" } ], "name": "bulkTransfer", "outputs": [ { "name": "_success", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "totalSupply", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_libAddress", "type": "address" } ], "name": "changeLibAddress", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_from", "type": "address" }, { "name": "_to", "type": "address" }, { "name": "_amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "name": "_success", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "libAddress", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "decimals", "outputs": [ { "name": "", "type": "uint8" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_dbAddress", "type": "address" } ], "name": "changeDBAddress", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "db", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "ico", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "_owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "name": "_balance", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "symbol", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_owner", "type": "address" } ], "name": "replaceOwner", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_to", "type": "address" }, { "name": "_amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "name": "_success", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "_owner", "type": "address" }, { "name": "_spender", "type": "address" } ], "name": "allowance", "outputs": [ { "name": "_remaining", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_icoAddress", "type": "address" } ], "name": "changeIcoAddress", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "name": "_owner", "type": "address" }, { "name": "_libAddress", "type": "address" }, { "name": "_dbAddress", "type": "address" }, { "name": "_icoAddress", "type": "address" } ], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "payable": false, "stateMutability": "nonpayable", "type": "fallback" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_spender", "type": "address" }, { "indexed": true, "name": "_owner", "type": "address" }, { "indexed": true, "name": "_value", "type": "uint256" } ], "name": "AllowanceUsed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_addr", "type": "address" }, { "indexed": true, "name": "_value", "type": "uint256" } ], "name": "Mint", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_owner", "type": "address" }, { "indexed": true, "name": "_spender", "type": "address" }, { "indexed": false, "name": "_value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_from", "type": "address" }, { "indexed": true, "name": "_to", "type": "address" }, { "indexed": false, "name": "_value", "type": "uint256" } ], "name": "Transfer", "type": "event" } ]

Token Database

Address:

0xeE467B4e21d501f301537C63B494E3F25A1bA5cE

ABI:

[ { "constant": true, "inputs": [ { "name": "_owner", "type": "address" }, { "name": "_spender", "type": "address" } ], "name": "getAllowance", "outputs": [ { "name": "_success", "type": "bool" }, { "name": "_remaining", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "address" } ], "name": "balances", "outputs": [ { "name": "amount", "type": "uint256" }, { "name": "valid", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "_owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "name": "_success", "type": "bool" }, { "name": "_balance", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "oldDBAddress", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "tokenAddress", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_owner", "type": "address" } ], "name": "replaceOwner", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_from", "type": "address" }, { "name": "_to", "type": "address" }, { "name": "_amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "name": "_success", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_tokenAddress", "type": "address" } ], "name": "changeTokenAddress", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_owner", "type": "address" }, { "name": "_spender", "type": "address" }, { "name": "_amount", "type": "uint256" } ], "name": "setAllowance", "outputs": [ { "name": "_success", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "address" }, { "name": "", "type": "address" } ], "name": "allowance", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_from", "type": "address" }, { "name": "_to", "type": "address[]" }, { "name": "_amount", "type": "uint256[]" } ], "name": "bulkTransfer", "outputs": [ { "name": "_success", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "name": "_owner", "type": "address" }, { "name": "_tokenAddress", "type": "address" }, { "name": "_icoAddress", "type": "address" }, { "name": "_oldDBAddress", "type": "address" } ], "payable": false, "stateMutability": "nonpayable", "type": "constructor" } ]

Token Library

Address:

0xD10167921822Fb5a6637f1B7a153fac7ea896cFf

ABI:

[ { "constant": true, "inputs": [], "name": "name", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_spender", "type": "address" }, { "name": "_amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "name": "_success", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_to", "type": "address[]" }, { "name": "_amount", "type": "uint256[]" } ], "name": "bulkTransfer", "outputs": [ { "name": "_success", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "totalSupply", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_libAddress", "type": "address" } ], "name": "changeLibAddress", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_from", "type": "address" }, { "name": "_to", "type": "address" }, { "name": "_amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "name": "_success", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "libAddress", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "decimals", "outputs": [ { "name": "", "type": "uint8" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_dbAddress", "type": "address" } ], "name": "changeDBAddress", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "db", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "ico", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "_owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "name": "_balance", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "symbol", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_owner", "type": "address" } ], "name": "replaceOwner", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_to", "type": "address" }, { "name": "_amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "name": "_success", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "_owner", "type": "address" }, { "name": "_spender", "type": "address" } ], "name": "allowance", "outputs": [ { "name": "_remaining", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_icoAddress", "type": "address" } ], "name": "changeIcoAddress", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "name": "_owner", "type": "address" }, { "name": "_libAddress", "type": "address" }, { "name": "_dbAddress", "type": "address" }, { "name": "_icoAddress", "type": "address" } ], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "payable": false, "stateMutability": "nonpayable", "type": "fallback" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_spender", "type": "address" }, { "indexed": true, "name": "_owner", "type": "address" }, { "indexed": true, "name": "_value", "type": "uint256" } ], "name": "AllowanceUsed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_addr", "type": "address" }, { "indexed": true, "name": "_value", "type": "uint256" } ], "name": "Mint", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_owner", "type": "address" }, { "indexed": true, "name": "_spender", "type": "address" }, { "indexed": false, "name": "_value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_from", "type": "address" }, { "indexed": true, "name": "_to", "type": "address" }, { "indexed": false, "name": "_value", "type": "uint256" } ], "name": "Transfer", "type": "event" } ]

ICO (Users should use this contract FOR CONTRIBUTION)

Address:

0x578FA4ab3B27A94fe97Bd52167F1B02dA20D31e8

ABI:

[ { "constant": true, "inputs": [], "name": "currentPhase", "outputs": [ { "name": "", "type": "uint8" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_currentRate", "type": "uint256" } ], "name": "setCurrentRate", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_libAddress", "type": "address" } ], "name": "changeLibAddress", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "thisBalance", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "libAddress", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_on", "type": "address[]" }, { "name": "_off", "type": "address[]" } ], "name": "setKYC", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_offchainUploaderAddress", "type": "address" } ], "name": "changeOffchainUploaderAddress", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_allow", "type": "address[]" }, { "name": "_disallow", "type": "address[]" } ], "name": "setTransferRight", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "_owner", "type": "address" } ], "name": "calcVesting", "outputs": [ { "name": "_success", "type": "bool" }, { "name": "_reward", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "setKYCAddress", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "currentRateM", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_setRateAddress", "type": "address" } ], "name": "changeSetRateAddress", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_owner", "type": "address" } ], "name": "replaceOwner", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [], "name": "buy", "outputs": [], "payable": true, "stateMutability": "payable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_beneficiaries", "type": "address[]" }, { "name": "_rewards", "type": "uint256[]" } ], "name": "offchainUpload", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_setKYCAddress", "type": "address" } ], "name": "changeKYCAddress", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "_owner", "type": "address" } ], "name": "allowTransfer", "outputs": [ { "name": "_success", "type": "bool" }, { "name": "_allow", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "setRateAddress", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "offchainUploaderAddress", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "address" } ], "name": "KYC", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_beneficiary", "type": "address" }, { "name": "_amount", "type": "uint256" }, { "name": "_startBlock", "type": "uint256" }, { "name": "_endBlock", "type": "uint256" } ], "name": "setVesting", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_phase", "type": "uint8" } ], "name": "setCurrentPhase", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "_input", "type": "uint256" } ], "name": "calculateReward", "outputs": [ { "name": "_success", "type": "bool" }, { "name": "_reward", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "privateSale1Hardcap", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "address" } ], "name": "vesting", "outputs": [ { "name": "amount", "type": "uint256" }, { "name": "startBlock", "type": "uint256" }, { "name": "endBlock", "type": "uint256" }, { "name": "claimedAmount", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "address" } ], "name": "transferRight", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "privateSale2Hardcap", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "currentRate", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "token", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [], "name": "claimVesting", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "name": "_owner", "type": "address" }, { "name": "_libAddress", "type": "address" }, { "name": "_tokenAddress", "type": "address" }, { "name": "_offchainUploaderAddress", "type": "address" }, { "name": "_setKYCAddress", "type": "address" }, { "name": "_setRateAddress", "type": "address" } ], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "payable": true, "stateMutability": "payable", "type": "fallback" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "_owner", "type": "address" }, { "indexed": false, "name": "_beneficiary", "type": "address" }, { "indexed": false, "name": "_input", "type": "uint256" }, { "indexed": false, "name": "_output", "type": "uint256" } ], "name": "Brought", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "_beneficiary", "type": "address" }, { "indexed": false, "name": "_amount", "type": "uint256" }, { "indexed": false, "name": "_startBlock", "type": "uint256" }, { "indexed": false, "name": "_endBlock", "type": "uint256" } ], "name": "VestingDefined", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "_beneficiary", "type": "address" }, { "indexed": false, "name": "_amount", "type": "uint256" } ], "name": "VestingClaimed", "type": "event" } ]

ICO Library

Address:

0xED045AbCD09Fa8223D06bca4B0ad562a1c467F10

ABI:

[ { "constant": true, "inputs": [], "name": "currentPhase", "outputs": [ { "name": "", "type": "uint8" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_currentRate", "type": "uint256" } ], "name": "setCurrentRate", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_libAddress", "type": "address" } ], "name": "changeLibAddress", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "thisBalance", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "libAddress", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_on", "type": "address[]" }, { "name": "_off", "type": "address[]" } ], "name": "setKYC", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_offchainUploaderAddress", "type": "address" } ], "name": "changeOffchainUploaderAddress", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_allow", "type": "address[]" }, { "name": "_disallow", "type": "address[]" } ], "name": "setTransferRight", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "_owner", "type": "address" } ], "name": "calcVesting", "outputs": [ { "name": "_success", "type": "bool" }, { "name": "_reward", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "setKYCAddress", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "currentRateM", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_setRateAddress", "type": "address" } ], "name": "changeSetRateAddress", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_owner", "type": "address" } ], "name": "replaceOwner", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [], "name": "buy", "outputs": [], "payable": true, "stateMutability": "payable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_beneficiaries", "type": "address[]" }, { "name": "_rewards", "type": "uint256[]" } ], "name": "offchainUpload", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_setKYCAddress", "type": "address" } ], "name": "changeKYCAddress", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "_owner", "type": "address" } ], "name": "allowTransfer", "outputs": [ { "name": "_success", "type": "bool" }, { "name": "_allow", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "setRateAddress", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "offchainUploaderAddress", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "address" } ], "name": "KYC", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_beneficiary", "type": "address" }, { "name": "_amount", "type": "uint256" }, { "name": "_startBlock", "type": "uint256" }, { "name": "_endBlock", "type": "uint256" } ], "name": "setVesting", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_phase", "type": "uint8" } ], "name": "setCurrentPhase", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "_input", "type": "uint256" } ], "name": "calculateReward", "outputs": [ { "name": "_success", "type": "bool" }, { "name": "_reward", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "privateSale1Hardcap", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "address" } ], "name": "vesting", "outputs": [ { "name": "amount", "type": "uint256" }, { "name": "startBlock", "type": "uint256" }, { "name": "endBlock", "type": "uint256" }, { "name": "claimedAmount", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "address" } ], "name": "transferRight", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "privateSale2Hardcap", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "currentRate", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "token", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [], "name": "claimVesting", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "name": "_owner", "type": "address" }, { "name": "_tokenAddress", "type": "address" }, { "name": "_offchainUploaderAddress", "type": "address" }, { "name": "_setKYCAddress", "type": "address" }, { "name": "_setRateAddress", "type": "address" } ], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "payable": true, "stateMutability": "payable", "type": "fallback" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "_owner", "type": "address" }, { "indexed": false, "name": "_beneficiary", "type": "address" }, { "indexed": false, "name": "_input", "type": "uint256" }, { "indexed": false, "name": "_output", "type": "uint256" } ], "name": "Brought", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "_beneficiary", "type": "address" }, { "indexed": false, "name": "_amount", "type": "uint256" }, { "indexed": false, "name": "_startBlock", "type": "uint256" }, { "indexed": false, "name": "_endBlock", "type": "uint256" } ], "name": "VestingDefined", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "_beneficiary", "type": "address" }, { "indexed": false, "name": "_amount", "type": "uint256" } ], "name": "VestingClaimed", "type": "event" } ]

Details of components

General informations

Token contracts (proxy, lib, db) and ICO contact are linked together within some special phases. Phases affects to the following functions:

  • normal token Transfer()
  • token TransferWithVest() with cliff,vest
  • acceptDeposit()

Only whitelisted addresses can deposit in specific phases.

  • acceptOffChainDeposit()

Only predefined addresses can call this function in specific phases. owner can manage predefined addresses with setOffChainDepositOwner()

Token Sale Phases

Owner can change between phases with setTokenSalePhase() function Following phases are defined:

  1. PHASE PAUSE: All affected functions are disabled.
  2. PHASE PRIVATE SALE#1: All affected functions are disabled, except acceptOffChainDeposit()
Contribution Bonus multipl
>=2.500.000 ILK 42%
>=1.000.000 ILK 37%
>=200.000 ILK 33%
<200.000 ILK   throw
  1. PHASE PRIVATE SALE#2: All affected functions are disabled, except acceptDeposit() and acceptOffChainDeposit()
Contribution Bonus multipl
>=12.500.000 ILK 29%
>=10.000.000 ILK   24%
>=1.000.000 ILK   21%
<1.000.000 ILK   throw
  1. PHASE SALE#1: same as PRIVATE SALE#2 phase but different parameters
Contribution Bonus multipl
>=10.000 ILK   17%
<10.000 ILK   throw
  1. PHASE SALE#2: same as PRIVATE SALE#2 phase but different paramteres
Contribution Bonus multipl
>=10.000 ILK   12%
<10.000 ILK   throw
  1. PHASE SALE#3: same as PRIVATE SALE#2 phase but different paramteres
Contribution Bonus multipl
>=10.000 ILK   9%
<10.000 ILK   throw
  1. PHASE SALE#4: same as PRIVATE SALE#2 phase but different paramteres
Contribution Bonus multipl
>=10.000 ILK   2%
<10.000 ILK   throw
  1. PHASE PRE FINISH: All affected functions are enabled
Contribution Bonus multipl
>=0 ILK   0%
  1. PHASE FINISH: All affected functions are disabled, except token transfers functions

[1] ILK token contracts

Contains the basic token logic, include standard ERC20 functions (transfer, approve, etc.) and some ILK token specific functions as well (eg. timelocked transaction with vesting service).

[2] ICO contract

ICO related smart contract, only relevant in ICO phase.

[3] Token multisig contract

Also connected to ICO, this token only multisig wallets will store specific tokens for community events and for ILK platform.

Bytecode:

0x608060405234801561001057600080fd5b50604051610fb1380380610fb1833981016040908152815160208301519183015160058054600160a060020a031916600160a060020a0384161790559092016000606483111561005f57600080fd5b50600282905560005b81518110156100be576001600080848481518110151561008457fe5b602090810291909101810151600160a060020a03168252810191909152604001600020805460ff1916911515919091179055600101610068565b50516003555050610edd806100d46000396000f3006080604052600436106100cf5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663022914a781146100e15780630a9ff62314610116578063114d8be11461013d578063153a1f3e1461015e57806330943fcf1461018a57806370a082311461019f57806373984188146101c057806382b68f4f146101e1578063a9059cbb146101f6578063aadc3b721461021a578063b0bed0ba1461023e578063c9cda91f14610253578063f3abde3214610274578063fc0c546a146102b4575b3480156100db57600080fd5b50600080fd5b3480156100ed57600080fd5b50610102600160a060020a03600435166102e5565b604080519115158252519081900360200190f35b34801561012257600080fd5b5061012b6102fa565b60408051918252519081900360200190f35b34801561014957600080fd5b50610102600160a060020a0360043516610300565b34801561016a57600080fd5b506101026024600480358281019290820135918135918201910135610439565b34801561019657600080fd5b5061012b610696565b3480156101ab57600080fd5b5061012b600160a060020a036004351661069c565b3480156101cc57600080fd5b50610102600160a060020a036004351661073b565b3480156101ed57600080fd5b5061012b61086e565b34801561020257600080fd5b50610102600160a060020a0360043516602435610874565b34801561022657600080fd5b50610102600435600160a060020a0360243516610a05565b34801561024a57600080fd5b5061012b610a5d565b34801561025f57600080fd5b50610102600160a060020a0360043516610af3565b34801561028057600080fd5b5061028c600435610bf4565b60408051600160a060020a039094168452602084019290925282820152519081900360600190f35b3480156102c057600080fd5b506102c9610c20565b60408051600160a060020a039092168252519081900360200190f35b60006020819052908152604090205460ff1681565b60045481565b600160a060020a038116600090815260208190526040812054819060ff161561032857600080fd5b50600554604080516c01000000000000000000000000600160a060020a03938416810282527f6164644e65774f776e6572000000000000000000000000000000000000000000601483015285841602601f820152815190819003603301902060008181526001602052919091205490911615156103e75760408051828152600160a060020a0385166020820152338183015290517f61d9be69eacc4ed667fbe802970a647cd9c68ff45b174f995d530a122288aad89181900360600190a15b6103f081610c2f565b156104305760035461040990600163ffffffff610e5a16565b600355600160a060020a0383166000908152602081905260409020805460ff191660011790555b50600192915050565b6000806000600560009054906101000a9004600160a060020a0316878787876040518086600160a060020a0316600160a060020a03166c01000000000000000000000000028152601401807f62756c6b5472616e736665720000000000000000000000000000000000000000815250600c0185856020028082843782019150508383602002808284376040805191909301819003902060008181526001602052929092205491995050600160a060020a03161515955061059a945050505050577f2a7f51b42494047bf5b02cc47c5d0d1047d9f7b7915abfdd01038acae4764818828888888833604051808760001916600019168152602001806020018060200184600160a060020a0316600160a060020a031681526020018381038352888882818152602001925060200280828437909101848103835286815260209081019150879087028082843760405192018290039a509098505050505050505050a15b6105a382610c2f565b1561068957600554604080517f153a1f3e0000000000000000000000000000000000000000000000000000000081526004810191825260448101899052600160a060020a039092169163153a1f3e918a918a918a918a919081906024810190606401876020880280828437909101848103835285815260209081019150869086028082843782019150509650505050505050602060405180830381600087803b15801561064f57600080fd5b505af1158015610663573d6000803e3d6000fd5b505050506040513d602081101561067957600080fd5b5051905080151561068957600080fd5b5060019695505050505050565b60035481565b600554604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038481166004830152915160009392909216916370a082319160248082019260209290919082900301818787803b15801561070757600080fd5b505af115801561071b573d6000803e3d6000fd5b505050506040513d602081101561073157600080fd5b505190505b919050565b600160a060020a038116600090815260208190526040812054819060ff16151561076457600080fd5b50600554604080516c01000000000000000000000000600160a060020a03938416810282527f64656c4f776e6572000000000000000000000000000000000000000000000000601483015285841602601c820152815190819003603001902060008181526001602052919091205490911615156108235760408051828152600160a060020a0385166020820152338183015290517f421b8a1e7a7050f4f10e0c93c7c385ed6f5316275ea66719a1b10f2c87aa1e779181900360600190a15b61082c81610c2f565b156104305760035461084590600163ffffffff610e6d16565b6003555050600160a060020a03166000908152602081905260409020805460ff19169055600190565b60025481565b600554604080516c01000000000000000000000000600160a060020a03938416810282527f7472616e73666572000000000000000000000000000000000000000000000000601483015285841602601c82015260308101849052815190819003605001902060008181526001602052918220549192909183911615156109435760408051838152600160a060020a038716602082015280820186905233606082015290517f34f62b17b41676bad22799f2e5c0acec08c441584108daff34b72200fb6781129181900360800190a15b61094c82610c2f565b156109fa57600554604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038881166004830152602482018890529151919092169163a9059cbb9160448083019260209291908290030181600087803b1580156109c057600080fd5b505af11580156109d4573d6000803e3d6000fd5b505050506040513d60208110156109ea57600080fd5b505190508015156109fa57600080fd5b506001949350505050565b600082815260016020526040812054600160a060020a031615801590610a56575060008381526001602090815260408083206002810154600160a060020a0387168552600390910190925290912054145b9392505050565b600554604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a0823191602480830192602092919082900301818787803b158015610ac257600080fd5b505af1158015610ad6573d6000803e3d6000fd5b505050506040513d6020811015610aec57600080fd5b5051905090565b600554604080516c01000000000000000000000000600160a060020a03938416810282527f6368616e6765546f6b656e4164647265737300000000000000000000000000006014830152848416026026820152815190819003603a019020600081815260016020529182205491929091161515610bb25760408051828152600160a060020a0385166020820152338183015290517fdacceeecda025dd8d146b864f1ee3cc9dcdfd6f97d9d603a5d73326c212a2ce69181900360600190a15b610bbb81610c2f565b156104305760058054600160a060020a03851673ffffffffffffffffffffffffffffffffffffffff199091161790556001915050919050565b6001602081905260009182526040909120805491810154600290910154600160a060020a039092169183565b600554600160a060020a031681565b3360009081526020819052604081205460ff161515610c4d57600080fd5b600082815260016020526040902054600160a060020a03161515610cc657600454610c7f90600163ffffffff610e5a16565b60049081556000838152600160208190526040909120805473ffffffffffffffffffffffffffffffffffffffff191633178155808201919091559054600290910155610da8565b6000828152600160209081526040808320600281015433855260039091019092529091205414801590610d105750600082815260016020526040902054600160a060020a03163314155b15610da85760008281526001602081815260408084206002810154338652600382018452918520919091559285905281905290810154610d559163ffffffff610e5a16565b600083815260016020818152604092839020909101929092558051848152339281019290925280517f8d8afd3ded82f188c74cadd59ae4db647cfedefedf1024f39180ee91f4fd04f69281900390910190a15b60025460035460008481526001602081905260409091200154610de39190610dd790606463ffffffff610e7a16565b9063ffffffff610e9c16565b1061073657506040805182815290516001917ff329ce99fa414305b2036a49e3fd5fcaab37d882c5671e76e535e1de2c59da93919081900360200190a160008281526001602081905260408220805473ffffffffffffffffffffffffffffffffffffffff1916815590810182905560020155919050565b81810182811015610e6757fe5b92915050565b80820382811115610e6757fe5b818102801580610e945750818382811515610e9157fe5b04145b1515610e6757fe5b60008183811515610ea957fe5b0493925050505600a165627a7a72305820fbdcde2e5365a1933bb698b8727002524ae34bab965df76d6dffdcfcb1e137780029

ABI:

[ { "constant": true, "inputs": [ { "name": "", "type": "address" } ], "name": "owners", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "voteUID", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_owner", "type": "address" } ], "name": "addNewOwner", "outputs": [ { "name": "_success", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_to", "type": "address[]" }, { "name": "_amount", "type": "uint256[]" } ], "name": "bulkTransfer", "outputs": [ { "name": "_success", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "ownerCounter", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "_owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "name": "_balance", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_owner", "type": "address" } ], "name": "delOwner", "outputs": [ { "name": "_success", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "actionVotedRate", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_to", "type": "address" }, { "name": "_amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "name": "_success", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "_hash", "type": "bytes32" }, { "name": "_owner", "type": "address" } ], "name": "hasVoted", "outputs": [ { "name": "_voted", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "selfBalance", "outputs": [ { "name": "_balance", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_tokenAddress", "type": "address" } ], "name": "changeTokenAddress", "outputs": [ { "name": "_success", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "bytes32" } ], "name": "actions", "outputs": [ { "name": "origin", "type": "address" }, { "name": "voteCounter", "type": "uint256" }, { "name": "uid", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "token", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "inputs": [ { "name": "_tokenAddress", "type": "address" }, { "name": "_actionVotedRate", "type": "uint256" }, { "name": "_owners", "type": "address[]" } ], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "payable": false, "stateMutability": "nonpayable", "type": "fallback" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "_hash", "type": "bytes32" }, { "indexed": false, "name": "_to", "type": "address" }, { "indexed": false, "name": "_amount", "type": "uint256" }, { "indexed": false, "name": "_origin", "type": "address" } ], "name": "newTransferAction", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "_hash", "type": "bytes32" }, { "indexed": false, "name": "_to", "type": "address[]" }, { "indexed": false, "name": "_amount", "type": "uint256[]" }, { "indexed": false, "name": "_origin", "type": "address" } ], "name": "newBulkTransferAction", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "_hash", "type": "bytes32" }, { "indexed": false, "name": "_tokenAddress", "type": "address" }, { "indexed": false, "name": "_origin", "type": "address" } ], "name": "newChangeTokenAddressAction", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "_hash", "type": "bytes32" }, { "indexed": false, "name": "_owner", "type": "address" }, { "indexed": false, "name": "_origin", "type": "address" } ], "name": "newAddNewOwnerAction", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "_hash", "type": "bytes32" }, { "indexed": false, "name": "_owner", "type": "address" }, { "indexed": false, "name": "_origin", "type": "address" } ], "name": "newDelOwnerAction", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "_hash", "type": "bytes32" }, { "indexed": false, "name": "_voter", "type": "address" } ], "name": "vote", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "_hash", "type": "bytes32" } ], "name": "votedAction", "type": "event" } ]