More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 385 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw | 9331086 | 1682 days ago | IN | 0 ETH | 0.00062557 | ||||
Withdraw | 9331022 | 1682 days ago | IN | 0 ETH | 0.00044684 | ||||
Withdraw | 8157928 | 1873 days ago | IN | 0 ETH | 0.00218764 | ||||
Withdraw | 8066506 | 1887 days ago | IN | 0 ETH | 0.0022461 | ||||
Withdraw | 7339505 | 2000 days ago | IN | 0 ETH | 0.0001199 | ||||
Withdraw | 6543052 | 2142 days ago | IN | 0 ETH | 0.00024145 | ||||
Withdraw | 6528560 | 2145 days ago | IN | 0 ETH | 0.00013956 | ||||
Withdraw | 6229382 | 2194 days ago | IN | 0 ETH | 0.00164349 | ||||
Withdraw | 6058530 | 2223 days ago | IN | 0 ETH | 0.00004796 | ||||
Withdraw | 5935017 | 2244 days ago | IN | 0 ETH | 0.0003597 | ||||
Withdraw | 5897858 | 2250 days ago | IN | 0 ETH | 0.00146544 | ||||
Withdraw | 5728785 | 2279 days ago | IN | 0 ETH | 0.00034891 | ||||
Withdraw | 5728460 | 2280 days ago | IN | 0 ETH | 0.0002195 | ||||
Withdraw | 5728440 | 2280 days ago | IN | 0 ETH | 0.00063655 | ||||
Withdraw | 5723217 | 2280 days ago | IN | 0 ETH | 0.00076696 | ||||
Withdraw | 5720198 | 2281 days ago | IN | 0 ETH | 0.00126 | ||||
Withdraw | 5708980 | 2283 days ago | IN | 0 ETH | 0.00339654 | ||||
Withdraw | 5704398 | 2284 days ago | IN | 0 ETH | 0.00279132 | ||||
Withdraw | 5698002 | 2285 days ago | IN | 0 ETH | 0.00273915 | ||||
Withdraw | 5696549 | 2285 days ago | IN | 0 ETH | 0.00028535 | ||||
Withdraw | 5693878 | 2286 days ago | IN | 0 ETH | 0.00027391 | ||||
Withdraw | 5691012 | 2286 days ago | IN | 0 ETH | 0.00273915 | ||||
Withdraw | 5683208 | 2288 days ago | IN | 0 ETH | 0.00010956 | ||||
Withdraw | 5678633 | 2288 days ago | IN | 0 ETH | 0.00069783 | ||||
Withdraw | 5677049 | 2289 days ago | IN | 0 ETH | 0.00055826 |
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
5078207 | 2391 days ago | 299.969 ETH |
Loading...
Loading
Contract Name:
PresalePool
Compiler Version
v0.4.19+commit.c4cbbb05
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-02-11 */ pragma solidity ^0.4.19; // Wolf Crypto pooling contract for Electrify.Asia // written by @iamdefinitelyahuman library SafeMath { function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; assert(c / a == b); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } contract ERC20 { function balanceOf(address _owner) constant returns (uint256 balance) {} function transfer(address _to, uint256 _value) returns (bool success) {} } contract WhiteList { function checkMemberLevel (address addr) view public returns (uint) {} } contract PresalePool { // SafeMath is a library to ensure that math operations do not have overflow errors // https://zeppelin-solidity.readthedocs.io/en/latest/safemath.html using SafeMath for uint; // The contract has 3 stages: // 1 - The initial state. The owner is able to add addresses to the whitelist, and any whitelisted addresses can deposit or withdraw eth to the contract. // 2 - The owner has closed the contract for further deposits. Whitelisted addresses can still withdraw eth from the contract. // 3 - The eth is sent from the contract to the receiver. Unused eth can be claimed by contributors immediately. Once tokens are sent to the contract, // the owner enables withdrawals and contributors can withdraw their tokens. uint8 public contractStage = 1; // These variables are set at the time of contract creation // address that creates the contract address public owner; // maximum eth amount (in wei) that can be sent by a whitelisted address uint[] public contributionCaps; // the % of tokens kept by the contract owner uint public feePct; // the address that the pool will be paid out to address public receiverAddress; // These constant variables do not change with each contract deployment // minimum eth amount (in wei) that can be sent by a whitelisted address uint constant public contributionMin = 100000000000000000; // maximum gas price allowed for deposits in stage 1 uint constant public maxGasPrice = 50000000000; // whitelisting contract WhiteList constant public whitelistContract = WhiteList(0x8D95B038cA80A986425FA240C3C17Fb2B6e9bc63); // These variables are all initially set to 0 and will be set at some point during the contract // epoch time that the next contribution caps become active uint public nextCapTime; // pending contribution caps uint [] public nextContributionCaps; // block number of the last change to the receiving address (set if receiving address is changed, stage 1 or 2) uint public addressChangeBlock; // amount of eth (in wei) present in the contract when it was submitted uint public finalBalance; // array containing eth amounts to be refunded in stage 3 uint[] public ethRefundAmount; // default token contract to be used for withdrawing tokens in stage 3 address public activeToken; // data structure for holding the contribution amount, cap, eth refund status, and token withdrawal status for each whitelisted address struct Contributor { bool authorized; uint ethRefund; uint balance; uint cap; mapping (address => uint) tokensClaimed; } // mapping that holds the contributor struct for each whitelisted address mapping (address => Contributor) whitelist; // data structure for holding information related to token withdrawals. struct TokenAllocation { ERC20 token; uint[] pct; uint balanceRemaining; } // mapping that holds the token allocation struct for each token address mapping (address => TokenAllocation) distributionMap; // modifier for functions that can only be accessed by the contract creator modifier onlyOwner () { require (msg.sender == owner); _; } // modifier to prevent re-entrancy exploits during contract > contract interaction bool locked; modifier noReentrancy() { require(!locked); locked = true; _; locked = false; } // Events triggered throughout contract execution // These can be watched via geth filters to keep up-to-date with the contract event ContributorBalanceChanged (address contributor, uint totalBalance); event ReceiverAddressSet ( address _addr); event PoolSubmitted (address receiver, uint amount); event WithdrawalsOpen (address tokenAddr); event TokensWithdrawn (address receiver, uint amount); event EthRefundReceived (address sender, uint amount); event EthRefunded (address receiver, uint amount); event ERC223Received (address token, uint value); // These are internal functions used for calculating fees, eth and token allocations as % // returns a value as a % accurate to 20 decimal points function _toPct (uint numerator, uint denominator ) internal pure returns (uint) { return numerator.mul(10 ** 20) / denominator; } // returns % of any number, where % given was generated with toPct function _applyPct (uint numerator, uint pct) internal pure returns (uint) { return numerator.mul(pct) / (10 ** 20); } // This function is called at the time of contract creation, // it sets the initial variables and whitelists the contract owner. function PresalePool(address receiverAddr, uint[] capAmounts, uint fee) public { require (fee < 100); require (capAmounts.length>1 && capAmounts.length<256); for (uint8 i=1; i<capAmounts.length; i++) { require (capAmounts[i] <= capAmounts[0]); } owner = msg.sender; receiverAddress = receiverAddr; contributionCaps = capAmounts; feePct = _toPct(fee,100); whitelist[msg.sender].authorized = true; } // This function is called whenever eth is sent into the contract. // The send will fail unless the contract is in stage one and the sender has been whitelisted. // The amount sent is added to the balance in the Contributor struct associated with the sending address. function () payable public { if (contractStage == 1) { _ethDeposit(); } else if (contractStage == 3) { _ethRefund(); } else revert(); } // Internal function for handling eth deposits during contract stage one. function _ethDeposit () internal { assert (contractStage == 1); require (tx.gasprice <= maxGasPrice); require (this.balance <= contributionCaps[0]); var c = whitelist[msg.sender]; uint newBalance = c.balance.add(msg.value); require (newBalance >= contributionMin); require (newBalance <= _checkCap(msg.sender)); c.balance = newBalance; ContributorBalanceChanged(msg.sender, newBalance); } // Internal function for handling eth refunds during stage three. function _ethRefund () internal { assert (contractStage == 3); require (msg.sender == owner || msg.sender == receiverAddress); require (msg.value >= contributionMin); ethRefundAmount.push(msg.value); EthRefundReceived(msg.sender, msg.value); } // This function is called to withdraw eth or tokens from the contract. // It can only be called by addresses that are whitelisted and show a balance greater than 0. // If called during stages one or two, the full eth balance deposited into the contract is returned and the contributor's balance reset to 0. // If called during stage three, the contributor's unused eth will be returned, as well as any available tokens. // The token address may be provided optionally to withdraw tokens that are not currently the default token (airdrops). function withdraw (address tokenAddr) public { var c = whitelist[msg.sender]; require (c.balance > 0); if (contractStage < 3) { uint amountToTransfer = c.balance; c.balance = 0; msg.sender.transfer(amountToTransfer); ContributorBalanceChanged(msg.sender, 0); } else { _withdraw(msg.sender,tokenAddr); } } // This function allows the contract owner to force a withdrawal to any contributor. function withdrawFor (address contributor, address tokenAddr) public onlyOwner { require (contractStage == 3); require (whitelist[contributor].balance > 0); _withdraw(contributor,tokenAddr); } // This internal function handles withdrawals during stage three. // The associated events will fire to notify when a refund or token allocation is claimed. function _withdraw (address receiver, address tokenAddr) internal { assert (contractStage == 3); var c = whitelist[receiver]; if (tokenAddr == 0x00) { tokenAddr = activeToken; } var d = distributionMap[tokenAddr]; require ( (ethRefundAmount.length > c.ethRefund) || d.pct.length > c.tokensClaimed[tokenAddr] ); if (ethRefundAmount.length > c.ethRefund) { uint pct = _toPct(c.balance,finalBalance); uint ethAmount = 0; for (uint i=c.ethRefund; i<ethRefundAmount.length; i++) { ethAmount = ethAmount.add(_applyPct(ethRefundAmount[i],pct)); } c.ethRefund = ethRefundAmount.length; if (ethAmount > 0) { receiver.transfer(ethAmount); EthRefunded(receiver,ethAmount); } } if (d.pct.length > c.tokensClaimed[tokenAddr]) { uint tokenAmount = 0; for (i=c.tokensClaimed[tokenAddr]; i<d.pct.length; i++) { tokenAmount = tokenAmount.add(_applyPct(c.balance,d.pct[i])); } c.tokensClaimed[tokenAddr] = d.pct.length; if (tokenAmount > 0) { require(d.token.transfer(receiver,tokenAmount)); d.balanceRemaining = d.balanceRemaining.sub(tokenAmount); TokensWithdrawn(receiver,tokenAmount); } } } // This function can only be executed by the owner, it adds an address to the whitelist. // To execute, the contract must be in stage 1, the address cannot already be whitelisted, and the address cannot be a contract itself. // Blocking contracts from being whitelisted prevents attacks from unexpected contract to contract interaction - very important! function authorize (address addr, uint cap) public onlyOwner { require (contractStage == 1); _checkWhitelistContract(addr); require (!whitelist[addr].authorized); require ((cap > 0 && cap < contributionCaps.length) || (cap >= contributionMin && cap <= contributionCaps[0]) ); uint size; assembly { size := extcodesize(addr) } require (size == 0); whitelist[addr].cap = cap; whitelist[addr].authorized = true; } // This function is used by the owner to authorize many addresses in a single call. // Each address will be given the same cap, and the cap must be one of the standard levels. function authorizeMany (address[] addr, uint cap) public onlyOwner { require (addr.length < 255); require (cap > 0 && cap < contributionCaps.length); for (uint8 i=0; i<addr.length; i++) { authorize(addr[i], cap); } } // This function is called by the owner to remove an address from the whitelist. // It may only be executed during stages 1 and 2. Any eth sent by the address is refunded and their personal cap is set to 0. // It will throw if the address is still authorised in the whitelist contract. function revoke (address addr) public onlyOwner { require (contractStage < 3); require (whitelist[addr].authorized); require (whitelistContract.checkMemberLevel(addr) == 0); whitelist[addr].authorized = false; if (whitelist[addr].balance > 0) { uint amountToTransfer = whitelist[addr].balance; whitelist[addr].balance = 0; addr.transfer(amountToTransfer); ContributorBalanceChanged(addr, 0); } } // This function is called by the owner to modify the contribution cap of a whitelisted address. // If the current contribution balance exceeds the new cap, the excess balance is refunded. function modifyIndividualCap (address addr, uint cap) public onlyOwner { require (contractStage < 3); require (cap < contributionCaps.length || (cap >= contributionMin && cap <= contributionCaps[0]) ); _checkWhitelistContract(addr); var c = whitelist[addr]; require (c.authorized); uint amount = c.balance; c.cap = cap; uint capAmount = _checkCap(addr); if (amount > capAmount) { c.balance = capAmount; addr.transfer(amount.sub(capAmount)); ContributorBalanceChanged(addr, capAmount); } } // This function is called by the owner to modify the cap for a contribution level. // The cap cannot be decreased below the current balance or increased past the contract limit. function modifyLevelCap (uint level, uint cap) public onlyOwner { require (contractStage < 3); require (level > 0 && level < contributionCaps.length); require (this.balance <= cap && contributionCaps[0] >= cap); contributionCaps[level] = cap; nextCapTime = 0; } // This function changes every level cap at once, with an optional delay. // Modifying the caps immediately will cancel any delayed cap change. function modifyAllLevelCaps (uint[] cap, uint time) public onlyOwner { require (contractStage < 3); require (cap.length == contributionCaps.length-1); require (time == 0 || time>block.timestamp); if (time == 0) { for (uint8 i = 0; i < cap.length; i++) { modifyLevelCap(i+1, cap[i]); } } else { nextContributionCaps = contributionCaps; nextCapTime = time; for (i = 0; i < cap.length; i++) { require (contributionCaps[i+1] <= cap[i] && contributionCaps[0] >= cap[i]); nextContributionCaps[i+1] = cap[i]; } } } // This function can be called during stages one or two to modify the maximum balance of the contract. // It can only be called by the owner. The amount cannot be set to lower than the current balance of the contract. function modifyMaxContractBalance (uint amount) public onlyOwner { require (contractStage < 3); require (amount >= contributionMin); require (amount >= this.balance); contributionCaps[0] = amount; nextCapTime = 0; for (uint8 i=1; i<contributionCaps.length; i++) { if (contributionCaps[i]>amount) contributionCaps[i]=amount; } } // This internal function returns the cap amount of a whitelisted address. function _checkCap (address addr) internal returns (uint) { _checkWhitelistContract(addr); var c = whitelist[addr]; if (!c.authorized) return 0; if (nextCapTime>0 && block.timestamp>nextCapTime) { contributionCaps = nextContributionCaps; nextCapTime = 0; } if (c.cap<contributionCaps.length) return contributionCaps[c.cap]; return c.cap; } // This internal function checks if an address is whitelisted in the whitelist contract. function _checkWhitelistContract (address addr) internal { var c = whitelist[addr]; if (!c.authorized) { var level = whitelistContract.checkMemberLevel(addr); if (level == 0 || level >= contributionCaps.length) return; c.cap = level; c.authorized = true; } } // This callable function returns the total pool cap, current balance and remaining balance to be filled. function checkPoolBalance () view public returns (uint poolCap, uint balance, uint remaining) { if (contractStage == 1) { remaining = contributionCaps[0].sub(this.balance); } else { remaining = 0; } return (contributionCaps[0],this.balance,remaining); } // This callable function returns the balance, contribution cap, and remaining available balance of any contributor. function checkContributorBalance (address addr) view public returns (uint balance, uint cap, uint remaining) { var c = whitelist[addr]; if (!c.authorized) { cap = whitelistContract.checkMemberLevel(addr); if (cap == 0) return (0,0,0); } else { cap = c.cap; } balance = c.balance; if (contractStage == 1) { if (cap<contributionCaps.length) { if (nextCapTime == 0 || nextCapTime > block.timestamp) { cap = contributionCaps[cap]; } else { cap = nextContributionCaps[cap]; } } remaining = cap.sub(balance); if (contributionCaps[0].sub(this.balance) < remaining) remaining = contributionCaps[0].sub(this.balance); } else { remaining = 0; } return (balance, cap, remaining); } // This callable function returns the token balance that a contributor can currently claim. function checkAvailableTokens (address addr, address tokenAddr) view public returns (uint tokenAmount) { var c = whitelist[addr]; var d = distributionMap[tokenAddr]; for (uint i = c.tokensClaimed[tokenAddr]; i < d.pct.length; i++) { tokenAmount = tokenAmount.add(_applyPct(c.balance, d.pct[i])); } return tokenAmount; } // This function closes further contributions to the contract, advancing it to stage two. // It can only be called by the owner. After this call has been made, whitelisted addresses // can still remove their eth from the contract but cannot contribute any more. function closeContributions () public onlyOwner { require (contractStage == 1); contractStage = 2; } // This function reopens the contract to contributions and further whitelisting, returning it to stage one. // It can only be called by the owner during stage two. function reopenContributions () public onlyOwner { require (contractStage == 2); contractStage = 1; } // This function sets the receiving address that the contract will send the pooled eth to. // It can only be called by the contract owner if the receiver address has not already been set. // After making this call, the contract will be unable to send the pooled eth for 6000 blocks. // This limitation is so that if the owner acts maliciously in making the change, all whitelisted // addresses have ~24 hours to withdraw their eth from the contract. function setReceiverAddress (address addr) public onlyOwner { require (addr != 0x00 && receiverAddress == 0x00); require (contractStage < 3); receiverAddress = addr; addressChangeBlock = block.number; ReceiverAddressSet(addr); } // This function sends the pooled eth to the receiving address, calculates the % of unused eth to be returned, // and advances the contract to stage three. It can only be called by the contract owner during stages one or two. // The amount to send (given in wei) must be specified during the call. As this function can only be executed once, // it is VERY IMPORTANT not to get the amount wrong. function submitPool (uint amountInWei) public onlyOwner noReentrancy { require (contractStage < 3); require (receiverAddress != 0x00); require (block.number >= addressChangeBlock.add(6000)); require (contributionMin <= amountInWei && amountInWei <= this.balance); finalBalance = this.balance; require (receiverAddress.call.value(amountInWei).gas(msg.gas.sub(5000))()); ethRefundAmount.push(this.balance); contractStage = 3; PoolSubmitted(receiverAddress, amountInWei); } // This function opens the contract up for token withdrawals. // It can only be called by the owner during stage 3. The owner specifies the address of an ERC20 token // contract that this contract has a balance in, and optionally a bool to prevent this token from being // the default withdrawal (in the event of an airdrop, for example). function enableTokenWithdrawals (address tokenAddr, bool notDefault) public onlyOwner noReentrancy { require (contractStage == 3); if (notDefault) { require (activeToken != 0x00); } else { activeToken = tokenAddr; } var d = distributionMap[tokenAddr]; if (d.pct.length==0) d.token = ERC20(tokenAddr); uint amount = d.token.balanceOf(this).sub(d.balanceRemaining); require (amount > 0); if (feePct > 0) { require (d.token.transfer(owner,_applyPct(amount,feePct))); } amount = d.token.balanceOf(this).sub(d.balanceRemaining); d.balanceRemaining = d.token.balanceOf(this); d.pct.push(_toPct(amount,finalBalance)); } // This is a standard function required for ERC223 compatibility. function tokenFallback (address from, uint value, bytes data) public { ERC223Received (from, value); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"checkPoolBalance","outputs":[{"name":"poolCap","type":"uint256"},{"name":"balance","type":"uint256"},{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"contractStage","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"receiverAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"finalBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amountInWei","type":"uint256"}],"name":"submitPool","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maxGasPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"nextContributionCaps","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddr","type":"address"},{"name":"notDefault","type":"bool"}],"name":"enableTokenWithdrawals","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddr","type":"address"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"ethRefundAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"contributionCaps","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"},{"name":"tokenAddr","type":"address"}],"name":"checkAvailableTokens","outputs":[{"name":"tokenAmount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"revoke","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"addressChangeBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"setReceiverAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"level","type":"uint256"},{"name":"cap","type":"uint256"}],"name":"modifyLevelCap","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"activeToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"closeContributions","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"feePct","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"modifyMaxContractBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contributor","type":"address"},{"name":"tokenAddr","type":"address"}],"name":"withdrawFor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address[]"},{"name":"cap","type":"uint256"}],"name":"authorizeMany","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"checkContributorBalance","outputs":[{"name":"balance","type":"uint256"},{"name":"cap","type":"uint256"},{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"contributionMin","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"cap","type":"uint256"}],"name":"modifyIndividualCap","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"value","type":"uint256"},{"name":"data","type":"bytes"}],"name":"tokenFallback","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"cap","type":"uint256"}],"name":"authorize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"reopenContributions","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"nextCapTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"cap","type":"uint256[]"},{"name":"time","type":"uint256"}],"name":"modifyAllLevelCaps","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"receiverAddr","type":"address"},{"name":"capAmounts","type":"uint256[]"},{"name":"fee","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"contributor","type":"address"},{"indexed":false,"name":"totalBalance","type":"uint256"}],"name":"ContributorBalanceChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_addr","type":"address"}],"name":"ReceiverAddressSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"receiver","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"PoolSubmitted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenAddr","type":"address"}],"name":"WithdrawalsOpen","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"receiver","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokensWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EthRefundReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"receiver","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EthRefunded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"ERC223Received","type":"event"}]
Contract Creation Code
606060405260016000806101000a81548160ff021916908360ff16021790555034156200002b57600080fd5b60405162003a9438038062003a948339810160405280805190602001909190805182019190602001805190602001909190505060006064821015156200007057600080fd5b600183511180156200008457506101008351105b15156200009057600080fd5b600190505b82518160ff161015620000f457826000815181101515620000b257fe5b90602001906020020151838260ff16815181101515620000ce57fe5b9060200190602002015111151515620000e657600080fd5b808060010191505062000095565b33600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600190805190602001906200018e9291906200029c565b50620001b08260646200021b6401000000000262002f49176401000000009004565b6002819055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055505050505062000316565b6000816200024a68056bc75e2d63100000856200025d6401000000000262003664179091906401000000009004565b8115156200025457fe5b04905092915050565b600080600084141562000274576000915062000295565b82840290508284828115156200028657fe5b041415156200029157fe5b8091505b5092915050565b828054828255906000526020600020908101928215620002db579160200282015b82811115620002da578251825591602001919060010190620002bd565b5b509050620002ea9190620002ee565b5090565b6200031391905b808211156200030f576000816000905550600101620002f5565b5090565b90565b61376e80620003266000396000f300606060405260043610610196576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063021bc974146101ec5780630370ca411461022357806316fed3e2146102525780632129e25a146102a757806333e7ed61146102d05780633de39c11146102f35780634a5df2501461031c5780634fbc7e111461035357806351cff8d91461039757806352f1e07b146103d0578063732c227f14610407578063737c2d8c1461043e57806374a8f103146104aa5780637c02e1ea146104e35780638279c7db1461050c57806384900b041461054557806386a17f291461059a5780638796d43d146105c65780638c60e8061461061b5780638da5cb5b14610630578063a02cf93714610685578063abccb043146106ae578063adb5735c146106d1578063aee0abaa14610729578063b9c009f01461078c578063bcc13d1d146107e7578063be18903514610810578063c0ee0b8a14610852578063c1dbd9b2146108d7578063cd33670714610919578063ece2ea401461092e578063fb73a59314610957575b60016000809054906101000a900460ff1660ff1614156101bd576101b86109ba565b6101ea565b60036000809054906101000a900460ff1660ff1614156101e4576101df610b2f565b6101e9565b600080fd5b5b005b34156101f757600080fd5b6101ff610cad565b60405180848152602001838152602001828152602001935050505060405180910390f35b341561022e57600080fd5b610236610d5d565b604051808260ff1660ff16815260200191505060405180910390f35b341561025d57600080fd5b610265610d6f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156102b257600080fd5b6102ba610d95565b6040518082815260200191505060405180910390f35b34156102db57600080fd5b6102f16004808035906020019091905050610d9b565b005b34156102fe57600080fd5b610306611089565b6040518082815260200191505060405180910390f35b341561032757600080fd5b61033d6004808035906020019091905050611092565b6040518082815260200191505060405180910390f35b341561035e57600080fd5b610395600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803515159060200190919050506110b6565b005b34156103a257600080fd5b6103ce600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611708565b005b34156103db57600080fd5b6103f1600480803590602001909190505061184b565b6040518082815260200191505060405180910390f35b341561041257600080fd5b610428600480803590602001909190505061186f565b6040518082815260200191505060405180910390f35b341561044957600080fd5b610494600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611893565b6040518082815260200191505060405180910390f35b34156104b557600080fd5b6104e1600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506119c6565b005b34156104ee57600080fd5b6104f6611d62565b6040518082815260200191505060405180910390f35b341561051757600080fd5b610543600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611d68565b005b341561055057600080fd5b610558611efc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105a557600080fd5b6105c46004808035906020019091908035906020019091905050611f14565b005b34156105d157600080fd5b6105d9612027565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561062657600080fd5b61062e61204d565b005b341561063b57600080fd5b6106436120e6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561069057600080fd5b61069861210c565b6040518082815260200191505060405180910390f35b34156106b957600080fd5b6106cf6004808035906020019091905050612112565b005b34156106dc57600080fd5b610727600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612262565b005b341561073457600080fd5b61078a60048080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001909190505061233d565b005b341561079757600080fd5b6107c3600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612410565b60405180848152602001838152602001828152602001935050505060405180910390f35b34156107f257600080fd5b6107fa6126bd565b6040518082815260200191505060405180910390f35b341561081b57600080fd5b610850600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506126c9565b005b341561085d57600080fd5b6108d5600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506128ee565b005b34156108e257600080fd5b610917600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061295e565b005b341561092457600080fd5b61092c612b53565b005b341561093957600080fd5b610941612bec565b6040518082815260200191505060405180910390f35b341561096257600080fd5b6109b8600480803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091908035906020019091905050612bf2565b005b60008060016000809054906101000a900460ff1660ff161415156109da57fe5b640ba43b74003a111515156109ee57600080fd5b600160008154811015156109fe57fe5b9060005260206000209001543073ffffffffffffffffffffffffffffffffffffffff163111151515610a2f57600080fd5b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209150610a87348360020154612dfa90919063ffffffff16565b905067016345785d8a00008110151515610aa057600080fd5b610aa933612e18565b8111151515610ab757600080fd5b8082600201819055507fbd5304e38e372b10ebf161f6b67eeaf9f4e25653126622b0e2497484850d10f43382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b60036000809054906101000a900460ff1660ff16141515610b4c57fe5b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610bf55750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515610c0057600080fd5b67016345785d8a00003410151515610c1757600080fd5b60088054806001018281610c2b919061369f565b9160005260206000209001600034909190915055507fa6b266978e1d6bcae9b5baa4078b3b92fc622b302cca549cf2ebf2e4723aca3c3334604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1565b600080600060016000809054906101000a900460ff1660ff161415610d1857610d113073ffffffffffffffffffffffffffffffffffffffff163160016000815481101515610cf757fe5b906000526020600020900154612eff90919063ffffffff16565b9050610d1d565b600090505b60016000815481101515610d2d57fe5b9060005260206000209001543073ffffffffffffffffffffffffffffffffffffffff163182925092509250909192565b6000809054906101000a900460ff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610df757600080fd5b600c60009054906101000a900460ff16151515610e1357600080fd5b6001600c60006101000a81548160ff02191690831515021790555060036000809054906101000a900460ff1660ff16101515610e4e57600080fd5b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610e9657600080fd5b610ead611770600654612dfa90919063ffffffff16565b4310151515610ebb57600080fd5b8067016345785d8a000011158015610eea57503073ffffffffffffffffffffffffffffffffffffffff16318111155b1515610ef557600080fd5b3073ffffffffffffffffffffffffffffffffffffffff1631600781905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681610f626113885a612eff90919063ffffffff16565b90604051600060405180830381858888f193505050501515610f8357600080fd5b60088054806001018281610f97919061369f565b916000526020600020900160003073ffffffffffffffffffffffffffffffffffffffff16319091909150555060036000806101000a81548160ff021916908360ff1602179055507f166428c0f697cf2ebca7e4045ddec0f48bb4914f5ffac8765da1551e2881a519600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a16000600c60006101000a81548160ff02191690831515021790555050565b640ba43b740081565b6005818154811015156110a157fe5b90600052602060002090016000915090505481565b600080600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561111557600080fd5b600c60009054906101000a900460ff1615151561113157600080fd5b6001600c60006101000a81548160ff02191690831515021790555060036000809054906101000a900460ff1660ff1614151561116c57600080fd5b82156111bf576000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156111ba57600080fd5b611201565b83600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020915060008260010180549050141561129657838260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b61138e82600201548360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561136557600080fd5b6102c65a03f1151561137657600080fd5b50505060405180519050612eff90919063ffffffff16565b905060008111151561139f57600080fd5b600060025411156114cd578160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661141984600254612f18565b6000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156114a657600080fd5b6102c65a03f115156114b757600080fd5b5050506040518051905015156114cc57600080fd5b5b6115c582600201548360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561159c57600080fd5b6102c65a03f115156115ad57600080fd5b50505060405180519050612eff90919063ffffffff16565b90508160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561168e57600080fd5b6102c65a03f1151561169f57600080fd5b5050506040518051905082600201819055508160010180548060010182816116c7919061369f565b916000526020600020900160006116e084600754612f49565b909190915055506000600c60006101000a81548160ff02191690831515021790555050505050565b600080600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002091506000826002015411151561175f57600080fd5b60036000809054906101000a900460ff1660ff16101561183b5781600201549050600082600201819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156117ca57600080fd5b7fbd5304e38e372b10ebf161f6b67eeaf9f4e25653126622b0e2497484850d10f4336000604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1611846565b6118453384612f7a565b5b505050565b60088181548110151561185a57fe5b90600052602060002090016000915090505481565b60018181548110151561187e57fe5b90600052602060002090016000915090505481565b600080600080600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209250600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002091508260040160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b81600101805490508110156119ba576119ab61199c8460020154846001018481548110151561198b57fe5b906000526020600020900154612f18565b85612dfa90919063ffffffff16565b93508080600101915050611960565b83935050505092915050565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a2357600080fd5b60036000809054906101000a900460ff1660ff16101515611a4357600080fd5b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff161515611a9e57600080fd5b6000738d95b038ca80a986425fa240c3c17fb2b6e9bc6373ffffffffffffffffffffffffffffffffffffffff1663417ba840846000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515611b5757600080fd5b6102c65a03f11515611b6857600080fd5b50505060405180519050141515611b7e57600080fd5b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055506000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201541115611d5e57600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015490506000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515611cf157600080fd5b7fbd5304e38e372b10ebf161f6b67eeaf9f4e25653126622b0e2497484850d10f4826000604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b5050565b60065481565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611dc457600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015611e2357506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b1515611e2e57600080fd5b60036000809054906101000a900460ff1660ff16101515611e4e57600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550436006819055507f17528c7f18bea16a4db7e968a53fe806a68a29800c78185e7d52d343dd8004ba81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b738d95b038ca80a986425fa240c3c17fb2b6e9bc6381565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f7057600080fd5b60036000809054906101000a900460ff1660ff16101515611f9057600080fd5b600082118015611fa4575060018054905082105b1515611faf57600080fd5b803073ffffffffffffffffffffffffffffffffffffffff163111158015611ff157508060016000815481101515611fe257fe5b90600052602060002090015410155b1515611ffc57600080fd5b8060018381548110151561200c57fe5b90600052602060002090018190555060006004819055505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120a957600080fd5b60016000809054906101000a900460ff1660ff161415156120c957600080fd5b60026000806101000a81548160ff021916908360ff160217905550565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561216f57600080fd5b60036000809054906101000a900460ff1660ff1610151561218f57600080fd5b67016345785d8a000082101515156121a657600080fd5b3073ffffffffffffffffffffffffffffffffffffffff163182101515156121cc57600080fd5b81600160008154811015156121dd57fe5b9060005260206000209001819055506000600481905550600190505b6001805490508160ff16101561225e578160018260ff1681548110151561221c57fe5b9060005260206000209001541115612251578160018260ff1681548110151561224157fe5b9060005260206000209001819055505b80806001019150506121f9565b5050565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156122be57600080fd5b60036000809054906101000a900460ff1660ff161415156122de57600080fd5b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015411151561232f57600080fd5b6123398282612f7a565b5050565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561239a57600080fd5b60ff83511015156123aa57600080fd5b6000821180156123be575060018054905082105b15156123c957600080fd5b600090505b82518160ff16101561240b576123fe838260ff168151811015156123ee57fe5b906020019060200201518361295e565b80806001019150506123ce565b505050565b600080600080600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060000160009054906101000a900460ff16151561256a57738d95b038ca80a986425fa240c3c17fb2b6e9bc6373ffffffffffffffffffffffffffffffffffffffff1663417ba840866000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561252657600080fd5b6102c65a03f1151561253757600080fd5b50505060405180519050925060008314156125655760008060008292508191508090509350935093506126b5565b612572565b806003015492505b8060020154935060016000809054906101000a900460ff1660ff1614156126a6576001805490508310156125f857600060045414806125b2575042600454115b156125d9576001838154811015156125c657fe5b90600052602060002090015492506125f7565b6005838154811015156125e857fe5b90600052602060002090015492505b5b61260b8484612eff90919063ffffffff16565b9150816126533073ffffffffffffffffffffffffffffffffffffffff16316001600081548110151561263957fe5b906000526020600020900154612eff90919063ffffffff16565b10156126a15761269e3073ffffffffffffffffffffffffffffffffffffffff16316001600081548110151561268457fe5b906000526020600020900154612eff90919063ffffffff16565b91505b6126ab565b600091505b8383839350935093505b509193909250565b67016345785d8a000081565b60008060008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561272957600080fd5b60036000809054906101000a900460ff1660ff1610151561274957600080fd5b60018054905084108061278b575067016345785d8a0000841015801561278a57506001600081548110151561277a57fe5b9060005260206000209001548411155b5b151561279657600080fd5b61279f856134e9565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002092508260000160009054906101000a900460ff1615156127fd57600080fd5b8260020154915083836003018190555061281685612e18565b9050808211156128e7578083600201819055508473ffffffffffffffffffffffffffffffffffffffff166108fc6128568385612eff90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050151561287b57600080fd5b7fbd5304e38e372b10ebf161f6b67eeaf9f4e25653126622b0e2497484850d10f48582604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b5050505050565b7f121b68c1c3978d37f853f81c5ba5a0d2d36bb308e0765a3d6eb906c01ebdfe888383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1505050565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156129bb57600080fd5b60016000809054906101000a900460ff1660ff161415156129db57600080fd5b6129e4836134e9565b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16151515612a4057600080fd5b600082118015612a54575060018054905082105b80612a8e575067016345785d8a00008210158015612a8d575060016000815481101515612a7d57fe5b9060005260206000209001548211155b5b1515612a9957600080fd5b823b9050600081141515612aac57600080fd5b81600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301819055506001600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff021916908315150217905550505050565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612baf57600080fd5b60026000809054906101000a900460ff1660ff16141515612bcf57600080fd5b60016000806101000a81548160ff021916908360ff160217905550565b60045481565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c4f57600080fd5b60036000809054906101000a900460ff1660ff16101515612c6f57600080fd5b60018080549050038351141515612c8557600080fd5b6000821480612c9357504282115b1515612c9e57600080fd5b6000821415612cf457600090505b82518160ff161015612cef57612ce26001820160ff16848360ff16815181101515612cd357fe5b90602001906020020151611f14565b8080600101915050612cac565b612df5565b60016005908054612d069291906136cb565b5081600481905550600090505b82518160ff161015612df457828160ff16815181101515612d3057fe5b90602001906020020151600180830160ff16815481101515612d4e57fe5b90600052602060002090015411158015612d9d5750828160ff16815181101515612d7457fe5b9060200190602002015160016000815481101515612d8e57fe5b90600052602060002090015410155b1515612da857600080fd5b828160ff16815181101515612db957fe5b9060200190602002015160056001830160ff16815481101515612dd857fe5b9060005260206000209001819055508080600101915050612d13565b5b505050565b6000808284019050838110151515612e0e57fe5b8091505092915050565b600080612e24836134e9565b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060000160009054906101000a900460ff161515612e865760009150612ef9565b6000600454118015612e99575060045442115b15612eba5760056001908054612eb09291906136cb565b5060006004819055505b60018054905081600301541015612ef15760018160030154815481101515612ede57fe5b9060005260206000209001549150612ef9565b806003015491505b50919050565b6000828211151515612f0d57fe5b818303905092915050565b600068056bc75e2d63100000612f37838561366490919063ffffffff16565b811515612f4057fe5b04905092915050565b600081612f6868056bc75e2d631000008561366490919063ffffffff16565b811515612f7157fe5b04905092915050565b60008060008060008060036000809054906101000a900460ff1660ff16141515612fa057fe5b600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020955060008773ffffffffffffffffffffffffffffffffffffffff16141561302657600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1696505b600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209450856001015460088054905011806130c557508560040160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548560010180549050115b15156130d057600080fd5b85600101546008805490501115613215576130f18660020154600754612f49565b935060009250856001015491505b6008805490508210156131515761314261313360088481548110151561312157fe5b90600052602060002090015486612f18565b84612dfa90919063ffffffff16565b925081806001019250506130ff565b60088054905086600101819055506000831115613214578773ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f1935050505015156131a857600080fd5b7fffab3269bdaceca4d1bbc53e74b982ac2b306687e17e21f1e499e7fdf6751ac88884604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b5b8560040160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054856001018054905011156134df57600090508560040160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491505b8460010180549050821015613308576132f96132ea876002015487600101858154811015156132d957fe5b906000526020600020900154612f18565b82612dfa90919063ffffffff16565b905081806001019250506132ae565b84600101805490508660040160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008111156134de578460000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb89836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561342d57600080fd5b6102c65a03f1151561343e57600080fd5b50505060405180519050151561345357600080fd5b61346a818660020154612eff90919063ffffffff16565b85600201819055507f6352c5382c4a4578e712449ca65e83cdb392d045dfcf1cad9615189db2da244b8882604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b5b5050505050505050565b600080600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002091508160000160009054906101000a900460ff16151561365e57738d95b038ca80a986425fa240c3c17fb2b6e9bc6373ffffffffffffffffffffffffffffffffffffffff1663417ba840846000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15156135fc57600080fd5b6102c65a03f1151561360d57600080fd5b505050604051805190509050600081148061362d57506001805490508110155b156136375761365f565b80826003018190555060018260000160006101000a81548160ff0219169083151502179055505b5b505050565b60008060008414156136795760009150613698565b828402905082848281151561368a57fe5b0414151561369457fe5b8091505b5092915050565b8154818355818115116136c6578183600052602060002091820191016136c5919061371d565b5b505050565b82805482825590600052602060002090810192821561370c5760005260206000209182015b8281111561370b5782548255916001019190600101906136f0565b5b509050613719919061371d565b5090565b61373f91905b8082111561373b576000816000905550600101613723565b5090565b905600a165627a7a72305820d6fd230365bcf15b9914e72c0b911b07633a708fc5577ef2202abd3568b75c19002900000000000000000000000035605229648744ecb2e4f008deb870bbcb08222600000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000001043561a882930000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x606060405260043610610196576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063021bc974146101ec5780630370ca411461022357806316fed3e2146102525780632129e25a146102a757806333e7ed61146102d05780633de39c11146102f35780634a5df2501461031c5780634fbc7e111461035357806351cff8d91461039757806352f1e07b146103d0578063732c227f14610407578063737c2d8c1461043e57806374a8f103146104aa5780637c02e1ea146104e35780638279c7db1461050c57806384900b041461054557806386a17f291461059a5780638796d43d146105c65780638c60e8061461061b5780638da5cb5b14610630578063a02cf93714610685578063abccb043146106ae578063adb5735c146106d1578063aee0abaa14610729578063b9c009f01461078c578063bcc13d1d146107e7578063be18903514610810578063c0ee0b8a14610852578063c1dbd9b2146108d7578063cd33670714610919578063ece2ea401461092e578063fb73a59314610957575b60016000809054906101000a900460ff1660ff1614156101bd576101b86109ba565b6101ea565b60036000809054906101000a900460ff1660ff1614156101e4576101df610b2f565b6101e9565b600080fd5b5b005b34156101f757600080fd5b6101ff610cad565b60405180848152602001838152602001828152602001935050505060405180910390f35b341561022e57600080fd5b610236610d5d565b604051808260ff1660ff16815260200191505060405180910390f35b341561025d57600080fd5b610265610d6f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156102b257600080fd5b6102ba610d95565b6040518082815260200191505060405180910390f35b34156102db57600080fd5b6102f16004808035906020019091905050610d9b565b005b34156102fe57600080fd5b610306611089565b6040518082815260200191505060405180910390f35b341561032757600080fd5b61033d6004808035906020019091905050611092565b6040518082815260200191505060405180910390f35b341561035e57600080fd5b610395600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803515159060200190919050506110b6565b005b34156103a257600080fd5b6103ce600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611708565b005b34156103db57600080fd5b6103f1600480803590602001909190505061184b565b6040518082815260200191505060405180910390f35b341561041257600080fd5b610428600480803590602001909190505061186f565b6040518082815260200191505060405180910390f35b341561044957600080fd5b610494600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611893565b6040518082815260200191505060405180910390f35b34156104b557600080fd5b6104e1600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506119c6565b005b34156104ee57600080fd5b6104f6611d62565b6040518082815260200191505060405180910390f35b341561051757600080fd5b610543600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611d68565b005b341561055057600080fd5b610558611efc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105a557600080fd5b6105c46004808035906020019091908035906020019091905050611f14565b005b34156105d157600080fd5b6105d9612027565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561062657600080fd5b61062e61204d565b005b341561063b57600080fd5b6106436120e6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561069057600080fd5b61069861210c565b6040518082815260200191505060405180910390f35b34156106b957600080fd5b6106cf6004808035906020019091905050612112565b005b34156106dc57600080fd5b610727600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612262565b005b341561073457600080fd5b61078a60048080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001909190505061233d565b005b341561079757600080fd5b6107c3600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612410565b60405180848152602001838152602001828152602001935050505060405180910390f35b34156107f257600080fd5b6107fa6126bd565b6040518082815260200191505060405180910390f35b341561081b57600080fd5b610850600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506126c9565b005b341561085d57600080fd5b6108d5600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506128ee565b005b34156108e257600080fd5b610917600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061295e565b005b341561092457600080fd5b61092c612b53565b005b341561093957600080fd5b610941612bec565b6040518082815260200191505060405180910390f35b341561096257600080fd5b6109b8600480803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091908035906020019091905050612bf2565b005b60008060016000809054906101000a900460ff1660ff161415156109da57fe5b640ba43b74003a111515156109ee57600080fd5b600160008154811015156109fe57fe5b9060005260206000209001543073ffffffffffffffffffffffffffffffffffffffff163111151515610a2f57600080fd5b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209150610a87348360020154612dfa90919063ffffffff16565b905067016345785d8a00008110151515610aa057600080fd5b610aa933612e18565b8111151515610ab757600080fd5b8082600201819055507fbd5304e38e372b10ebf161f6b67eeaf9f4e25653126622b0e2497484850d10f43382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b60036000809054906101000a900460ff1660ff16141515610b4c57fe5b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610bf55750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515610c0057600080fd5b67016345785d8a00003410151515610c1757600080fd5b60088054806001018281610c2b919061369f565b9160005260206000209001600034909190915055507fa6b266978e1d6bcae9b5baa4078b3b92fc622b302cca549cf2ebf2e4723aca3c3334604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1565b600080600060016000809054906101000a900460ff1660ff161415610d1857610d113073ffffffffffffffffffffffffffffffffffffffff163160016000815481101515610cf757fe5b906000526020600020900154612eff90919063ffffffff16565b9050610d1d565b600090505b60016000815481101515610d2d57fe5b9060005260206000209001543073ffffffffffffffffffffffffffffffffffffffff163182925092509250909192565b6000809054906101000a900460ff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610df757600080fd5b600c60009054906101000a900460ff16151515610e1357600080fd5b6001600c60006101000a81548160ff02191690831515021790555060036000809054906101000a900460ff1660ff16101515610e4e57600080fd5b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610e9657600080fd5b610ead611770600654612dfa90919063ffffffff16565b4310151515610ebb57600080fd5b8067016345785d8a000011158015610eea57503073ffffffffffffffffffffffffffffffffffffffff16318111155b1515610ef557600080fd5b3073ffffffffffffffffffffffffffffffffffffffff1631600781905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681610f626113885a612eff90919063ffffffff16565b90604051600060405180830381858888f193505050501515610f8357600080fd5b60088054806001018281610f97919061369f565b916000526020600020900160003073ffffffffffffffffffffffffffffffffffffffff16319091909150555060036000806101000a81548160ff021916908360ff1602179055507f166428c0f697cf2ebca7e4045ddec0f48bb4914f5ffac8765da1551e2881a519600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a16000600c60006101000a81548160ff02191690831515021790555050565b640ba43b740081565b6005818154811015156110a157fe5b90600052602060002090016000915090505481565b600080600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561111557600080fd5b600c60009054906101000a900460ff1615151561113157600080fd5b6001600c60006101000a81548160ff02191690831515021790555060036000809054906101000a900460ff1660ff1614151561116c57600080fd5b82156111bf576000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156111ba57600080fd5b611201565b83600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020915060008260010180549050141561129657838260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b61138e82600201548360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561136557600080fd5b6102c65a03f1151561137657600080fd5b50505060405180519050612eff90919063ffffffff16565b905060008111151561139f57600080fd5b600060025411156114cd578160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661141984600254612f18565b6000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156114a657600080fd5b6102c65a03f115156114b757600080fd5b5050506040518051905015156114cc57600080fd5b5b6115c582600201548360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561159c57600080fd5b6102c65a03f115156115ad57600080fd5b50505060405180519050612eff90919063ffffffff16565b90508160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561168e57600080fd5b6102c65a03f1151561169f57600080fd5b5050506040518051905082600201819055508160010180548060010182816116c7919061369f565b916000526020600020900160006116e084600754612f49565b909190915055506000600c60006101000a81548160ff02191690831515021790555050505050565b600080600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002091506000826002015411151561175f57600080fd5b60036000809054906101000a900460ff1660ff16101561183b5781600201549050600082600201819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156117ca57600080fd5b7fbd5304e38e372b10ebf161f6b67eeaf9f4e25653126622b0e2497484850d10f4336000604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1611846565b6118453384612f7a565b5b505050565b60088181548110151561185a57fe5b90600052602060002090016000915090505481565b60018181548110151561187e57fe5b90600052602060002090016000915090505481565b600080600080600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209250600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002091508260040160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b81600101805490508110156119ba576119ab61199c8460020154846001018481548110151561198b57fe5b906000526020600020900154612f18565b85612dfa90919063ffffffff16565b93508080600101915050611960565b83935050505092915050565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a2357600080fd5b60036000809054906101000a900460ff1660ff16101515611a4357600080fd5b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff161515611a9e57600080fd5b6000738d95b038ca80a986425fa240c3c17fb2b6e9bc6373ffffffffffffffffffffffffffffffffffffffff1663417ba840846000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515611b5757600080fd5b6102c65a03f11515611b6857600080fd5b50505060405180519050141515611b7e57600080fd5b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055506000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201541115611d5e57600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015490506000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515611cf157600080fd5b7fbd5304e38e372b10ebf161f6b67eeaf9f4e25653126622b0e2497484850d10f4826000604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b5050565b60065481565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611dc457600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015611e2357506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b1515611e2e57600080fd5b60036000809054906101000a900460ff1660ff16101515611e4e57600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550436006819055507f17528c7f18bea16a4db7e968a53fe806a68a29800c78185e7d52d343dd8004ba81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b738d95b038ca80a986425fa240c3c17fb2b6e9bc6381565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f7057600080fd5b60036000809054906101000a900460ff1660ff16101515611f9057600080fd5b600082118015611fa4575060018054905082105b1515611faf57600080fd5b803073ffffffffffffffffffffffffffffffffffffffff163111158015611ff157508060016000815481101515611fe257fe5b90600052602060002090015410155b1515611ffc57600080fd5b8060018381548110151561200c57fe5b90600052602060002090018190555060006004819055505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120a957600080fd5b60016000809054906101000a900460ff1660ff161415156120c957600080fd5b60026000806101000a81548160ff021916908360ff160217905550565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561216f57600080fd5b60036000809054906101000a900460ff1660ff1610151561218f57600080fd5b67016345785d8a000082101515156121a657600080fd5b3073ffffffffffffffffffffffffffffffffffffffff163182101515156121cc57600080fd5b81600160008154811015156121dd57fe5b9060005260206000209001819055506000600481905550600190505b6001805490508160ff16101561225e578160018260ff1681548110151561221c57fe5b9060005260206000209001541115612251578160018260ff1681548110151561224157fe5b9060005260206000209001819055505b80806001019150506121f9565b5050565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156122be57600080fd5b60036000809054906101000a900460ff1660ff161415156122de57600080fd5b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015411151561232f57600080fd5b6123398282612f7a565b5050565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561239a57600080fd5b60ff83511015156123aa57600080fd5b6000821180156123be575060018054905082105b15156123c957600080fd5b600090505b82518160ff16101561240b576123fe838260ff168151811015156123ee57fe5b906020019060200201518361295e565b80806001019150506123ce565b505050565b600080600080600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060000160009054906101000a900460ff16151561256a57738d95b038ca80a986425fa240c3c17fb2b6e9bc6373ffffffffffffffffffffffffffffffffffffffff1663417ba840866000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561252657600080fd5b6102c65a03f1151561253757600080fd5b50505060405180519050925060008314156125655760008060008292508191508090509350935093506126b5565b612572565b806003015492505b8060020154935060016000809054906101000a900460ff1660ff1614156126a6576001805490508310156125f857600060045414806125b2575042600454115b156125d9576001838154811015156125c657fe5b90600052602060002090015492506125f7565b6005838154811015156125e857fe5b90600052602060002090015492505b5b61260b8484612eff90919063ffffffff16565b9150816126533073ffffffffffffffffffffffffffffffffffffffff16316001600081548110151561263957fe5b906000526020600020900154612eff90919063ffffffff16565b10156126a15761269e3073ffffffffffffffffffffffffffffffffffffffff16316001600081548110151561268457fe5b906000526020600020900154612eff90919063ffffffff16565b91505b6126ab565b600091505b8383839350935093505b509193909250565b67016345785d8a000081565b60008060008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561272957600080fd5b60036000809054906101000a900460ff1660ff1610151561274957600080fd5b60018054905084108061278b575067016345785d8a0000841015801561278a57506001600081548110151561277a57fe5b9060005260206000209001548411155b5b151561279657600080fd5b61279f856134e9565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002092508260000160009054906101000a900460ff1615156127fd57600080fd5b8260020154915083836003018190555061281685612e18565b9050808211156128e7578083600201819055508473ffffffffffffffffffffffffffffffffffffffff166108fc6128568385612eff90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050151561287b57600080fd5b7fbd5304e38e372b10ebf161f6b67eeaf9f4e25653126622b0e2497484850d10f48582604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b5050505050565b7f121b68c1c3978d37f853f81c5ba5a0d2d36bb308e0765a3d6eb906c01ebdfe888383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1505050565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156129bb57600080fd5b60016000809054906101000a900460ff1660ff161415156129db57600080fd5b6129e4836134e9565b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16151515612a4057600080fd5b600082118015612a54575060018054905082105b80612a8e575067016345785d8a00008210158015612a8d575060016000815481101515612a7d57fe5b9060005260206000209001548211155b5b1515612a9957600080fd5b823b9050600081141515612aac57600080fd5b81600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301819055506001600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff021916908315150217905550505050565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612baf57600080fd5b60026000809054906101000a900460ff1660ff16141515612bcf57600080fd5b60016000806101000a81548160ff021916908360ff160217905550565b60045481565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c4f57600080fd5b60036000809054906101000a900460ff1660ff16101515612c6f57600080fd5b60018080549050038351141515612c8557600080fd5b6000821480612c9357504282115b1515612c9e57600080fd5b6000821415612cf457600090505b82518160ff161015612cef57612ce26001820160ff16848360ff16815181101515612cd357fe5b90602001906020020151611f14565b8080600101915050612cac565b612df5565b60016005908054612d069291906136cb565b5081600481905550600090505b82518160ff161015612df457828160ff16815181101515612d3057fe5b90602001906020020151600180830160ff16815481101515612d4e57fe5b90600052602060002090015411158015612d9d5750828160ff16815181101515612d7457fe5b9060200190602002015160016000815481101515612d8e57fe5b90600052602060002090015410155b1515612da857600080fd5b828160ff16815181101515612db957fe5b9060200190602002015160056001830160ff16815481101515612dd857fe5b9060005260206000209001819055508080600101915050612d13565b5b505050565b6000808284019050838110151515612e0e57fe5b8091505092915050565b600080612e24836134e9565b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060000160009054906101000a900460ff161515612e865760009150612ef9565b6000600454118015612e99575060045442115b15612eba5760056001908054612eb09291906136cb565b5060006004819055505b60018054905081600301541015612ef15760018160030154815481101515612ede57fe5b9060005260206000209001549150612ef9565b806003015491505b50919050565b6000828211151515612f0d57fe5b818303905092915050565b600068056bc75e2d63100000612f37838561366490919063ffffffff16565b811515612f4057fe5b04905092915050565b600081612f6868056bc75e2d631000008561366490919063ffffffff16565b811515612f7157fe5b04905092915050565b60008060008060008060036000809054906101000a900460ff1660ff16141515612fa057fe5b600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020955060008773ffffffffffffffffffffffffffffffffffffffff16141561302657600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1696505b600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209450856001015460088054905011806130c557508560040160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548560010180549050115b15156130d057600080fd5b85600101546008805490501115613215576130f18660020154600754612f49565b935060009250856001015491505b6008805490508210156131515761314261313360088481548110151561312157fe5b90600052602060002090015486612f18565b84612dfa90919063ffffffff16565b925081806001019250506130ff565b60088054905086600101819055506000831115613214578773ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f1935050505015156131a857600080fd5b7fffab3269bdaceca4d1bbc53e74b982ac2b306687e17e21f1e499e7fdf6751ac88884604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b5b8560040160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054856001018054905011156134df57600090508560040160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491505b8460010180549050821015613308576132f96132ea876002015487600101858154811015156132d957fe5b906000526020600020900154612f18565b82612dfa90919063ffffffff16565b905081806001019250506132ae565b84600101805490508660040160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008111156134de578460000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb89836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561342d57600080fd5b6102c65a03f1151561343e57600080fd5b50505060405180519050151561345357600080fd5b61346a818660020154612eff90919063ffffffff16565b85600201819055507f6352c5382c4a4578e712449ca65e83cdb392d045dfcf1cad9615189db2da244b8882604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b5b5050505050505050565b600080600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002091508160000160009054906101000a900460ff16151561365e57738d95b038ca80a986425fa240c3c17fb2b6e9bc6373ffffffffffffffffffffffffffffffffffffffff1663417ba840846000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15156135fc57600080fd5b6102c65a03f1151561360d57600080fd5b505050604051805190509050600081148061362d57506001805490508110155b156136375761365f565b80826003018190555060018260000160006101000a81548160ff0219169083151502179055505b5b505050565b60008060008414156136795760009150613698565b828402905082848281151561368a57fe5b0414151561369457fe5b8091505b5092915050565b8154818355818115116136c6578183600052602060002091820191016136c5919061371d565b5b505050565b82805482825590600052602060002090810192821561370c5760005260206000209182015b8281111561370b5782548255916001019190600101906136f0565b5b509050613719919061371d565b5090565b61373f91905b8082111561373b576000816000905550600101613723565b5090565b905600a165627a7a72305820d6fd230365bcf15b9914e72c0b911b07633a708fc5577ef2202abd3568b75c190029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000035605229648744ecb2e4f008deb870bbcb08222600000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000001043561a882930000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : receiverAddr (address): 0x35605229648744Ecb2e4f008Deb870BBcB082226
Arg [1] : capAmounts (uint256[]): 300000000000000000000,0,0
Arg [2] : fee (uint256): 5
-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 00000000000000000000000035605229648744ecb2e4f008deb870bbcb082226
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [4] : 00000000000000000000000000000000000000000000001043561a8829300000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000000
Swarm Source
bzzr://d6fd230365bcf15b9914e72c0b911b07633a708fc5577ef2202abd3568b75c19
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.000156 | 191,642.7661 | $29.89 |
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.