Overview
ETH Balance
38.820242678360842553 ETH
Eth Value
$131,491.17 (@ $3,387.18/ETH)Token Holdings
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 6,945 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw | 21089621 | 53 days ago | IN | 0 ETH | 0.00032846 | ||||
Withdraw | 21089558 | 53 days ago | IN | 0 ETH | 0.00028467 | ||||
Settle | 21089513 | 53 days ago | IN | 0 ETH | 0.00034196 | ||||
Debit | 21089506 | 53 days ago | IN | 0 ETH | 0.00045242 | ||||
Link | 21089504 | 53 days ago | IN | 0 ETH | 0.00069895 | ||||
Debit | 21089408 | 53 days ago | IN | 0 ETH | 0.00052506 | ||||
Link | 21089405 | 53 days ago | IN | 0 ETH | 0.00092092 | ||||
Add Admin | 21065533 | 56 days ago | IN | 0 ETH | 0.00192095 | ||||
Withdraw | 20688679 | 108 days ago | IN | 0 ETH | 0.00017986 | ||||
Withdraw | 20688635 | 108 days ago | IN | 0 ETH | 0.00011173 | ||||
Settle | 20688632 | 108 days ago | IN | 0 ETH | 0.00016668 | ||||
Debit | 20688629 | 108 days ago | IN | 0 ETH | 0.00026874 | ||||
Link | 20688621 | 108 days ago | IN | 0 ETH | 0.00047573 | ||||
Withdraw | 20473627 | 138 days ago | IN | 0 ETH | 0.00009618 | ||||
Settle | 20473621 | 138 days ago | IN | 0 ETH | 0.00006815 | ||||
Settle | 20473608 | 138 days ago | IN | 0 ETH | 0.00012468 | ||||
Debit | 20473581 | 139 days ago | IN | 0 ETH | 0.00201083 | ||||
Link | 20473558 | 139 days ago | IN | 0 ETH | 0.00442954 | ||||
Debit | 20473457 | 139 days ago | IN | 0 ETH | 0.01393201 | ||||
Link | 20473415 | 139 days ago | IN | 0 ETH | 0.01033265 | ||||
Link | 20473357 | 139 days ago | IN | 0 ETH | 0.01186153 | ||||
Debit | 20472583 | 139 days ago | IN | 0 ETH | 0.00395243 | ||||
Debit | 20472571 | 139 days ago | IN | 0 ETH | 0.07377981 | ||||
Link | 20472467 | 139 days ago | IN | 0 ETH | 0.00512651 | ||||
Link | 20472457 | 139 days ago | IN | 0 ETH | 0.08199839 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
21089621 | 53 days ago | 0.05632786 ETH | ||||
20688679 | 108 days ago | 0.04747 ETH | ||||
20473627 | 138 days ago | 22.92074834 ETH | ||||
20472241 | 139 days ago | 0.31013633 ETH | ||||
19357477 | 295 days ago | 1.6049 ETH | ||||
18718129 | 384 days ago | 0.0969 ETH | ||||
18563491 | 406 days ago | 0.0132 ETH | ||||
18237126 | 452 days ago | 0.17998 ETH | ||||
17971299 | 489 days ago | 0.0027 ETH | ||||
17774587 | 516 days ago | 0.2696 ETH | ||||
17756935 | 519 days ago | 0.1705 ETH | ||||
17615851 | 539 days ago | 150.6477 ETH | ||||
17601807 | 541 days ago | 0.0305 ETH | ||||
17315147 | 581 days ago | 0.109 ETH | ||||
16700831 | 668 days ago | 0.0598 ETH | ||||
16386851 | 712 days ago | 0.0171 ETH | ||||
16219555 | 735 days ago | 0.2367 ETH | ||||
16026140 | 762 days ago | 0.0447 ETH | ||||
15889087 | 781 days ago | 0.186 ETH | ||||
15774400 | 797 days ago | 0.006 ETH | ||||
15675933 | 811 days ago | 0.1942 ETH | ||||
15598046 | 822 days ago | 0.2274 ETH | ||||
15397310 | 853 days ago | 0.2736 ETH | ||||
15174261 | 888 days ago | 0.0042 ETH | ||||
15036164 | 910 days ago | 0.0214 ETH |
Loading...
Loading
Contract Name:
CentWallet
Compiler Version
v0.4.25+commit.59dbf8f1
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-10-06 */ pragma solidity ^0.4.25; contract CentWallet { struct Wallet { uint256 balance; mapping(address => bool) linked; // prevent signature replay: uint64 debitNonce; uint64 withdrawNonce; } address[] public admins; mapping(bytes32 => Wallet) private wallets; mapping(address => bool) private isAdmin; uint256 private escrowBalance; modifier onlyAdmin { require(isAdmin[msg.sender]); _; } modifier onlyRootAdmin { require(msg.sender == admins[0]); _; } event Deposit( bytes32 indexed walletID, address indexed sender, uint256 indexed value ); event Link( bytes32 indexed walletID, address indexed agent ); event Debit( bytes32 indexed walletID, uint256 indexed nonce, uint256 indexed value ); event Settle( bytes32 indexed walletID, uint256 indexed requestID, uint256 indexed value ); event Withdraw( bytes32 indexed walletID, uint256 indexed nonce, uint256 indexed value, address recipient ); constructor() public { admins.push(msg.sender); isAdmin[msg.sender] = true; } // PUBLIC CALLABLE BY ANYONE /** * Add funds to the wallet associated with an address + username * Create a wallet if none exists. */ function deposit( bytes32 walletID) payable public { wallets[walletID].balance += msg.value; emit Deposit(walletID, msg.sender, msg.value); } // PUBLIC CALLABLE BY ADMIN /** * Add an authorized signer to a wallet. */ function link( bytes32[] walletIDs, bytes32[] nameIDs, address[] agents, uint8[] v, bytes32[] r, bytes32[] s) onlyAdmin public { require( walletIDs.length == nameIDs.length && walletIDs.length == agents.length && walletIDs.length == v.length && walletIDs.length == r.length && walletIDs.length == s.length ); for (uint i = 0; i < walletIDs.length; i++) { bytes32 walletID = walletIDs[i]; address agent = agents[i]; address signer = getMessageSigner( getLinkDigest(walletID, agent), v[i], r[i], s[i] ); Wallet storage wallet = wallets[walletID]; if (wallet.linked[signer] || walletID == getWalletDigest(nameIDs[i], signer)) { wallet.linked[agent] = true; emit Link(walletID, agent); } } } /** * Debit funds from a user's balance and add them to the escrow balance. */ function debit( bytes32[] walletIDs, uint256[] values, uint64[] nonces, uint8[] v, bytes32[] r, bytes32[] s) onlyAdmin public { require( walletIDs.length == values.length && walletIDs.length == nonces.length && walletIDs.length == v.length && walletIDs.length == r.length && walletIDs.length == s.length ); uint256 additionalEscrow = 0; for (uint i = 0; i < walletIDs.length; i++) { bytes32 walletID = walletIDs[i]; uint256 value = values[i]; uint64 nonce = nonces[i]; address signer = getMessageSigner( getDebitDigest(walletID, value, nonce), v[i], r[i], s[i] ); Wallet storage wallet = wallets[walletID]; if ( wallet.debitNonce < nonce && wallet.balance >= value && wallet.linked[signer] ) { wallet.debitNonce = nonce; wallet.balance -= value; emit Debit(walletID, nonce, value); additionalEscrow += value; } } escrowBalance += additionalEscrow; } /** * Withdraws funds from this contract, debiting the user's wallet. */ function withdraw( bytes32[] walletIDs, address[] recipients, uint256[] values, uint64[] nonces, uint8[] v, bytes32[] r, bytes32[] s) onlyAdmin public { require( walletIDs.length == recipients.length && walletIDs.length == values.length && walletIDs.length == nonces.length && walletIDs.length == v.length && walletIDs.length == r.length && walletIDs.length == s.length ); for (uint i = 0; i < walletIDs.length; i++) { bytes32 walletID = walletIDs[i]; address recipient = recipients[i]; uint256 value = values[i]; uint64 nonce = nonces[i]; address signer = getMessageSigner( getWithdrawDigest(walletID, recipient, value, nonce), v[i], r[i], s[i] ); Wallet storage wallet = wallets[walletID]; if ( wallet.withdrawNonce < nonce && wallet.balance >= value && wallet.linked[signer] && recipient.send(value) ) { wallet.withdrawNonce = nonce; wallet.balance -= value; emit Withdraw(walletID, nonce, value, recipient); } } } /** * Settles funds from admin escrow into user wallets. */ function settle( bytes32[] walletIDs, uint256[] requestIDs, uint256[] values) onlyAdmin public { require( walletIDs.length == requestIDs.length && walletIDs.length == values.length ); uint256 remainingEscrow = escrowBalance; for (uint i = 0; i < walletIDs.length; i++) { bytes32 walletID = walletIDs[i]; uint256 value = values[i]; require(value <= remainingEscrow); wallets[walletID].balance += value; remainingEscrow -= value; emit Settle(walletID, requestIDs[i], value); } escrowBalance = remainingEscrow; } // PURE GETTERS - FOR SIGNATURE GENERATION / VERIFICATION function getMessageSigner( bytes32 message, uint8 v, bytes32 r, bytes32 s) public pure returns(address) { bytes memory prefix = "\x19Ethereum Signed Message:\n32"; bytes32 prefixedMessage = keccak256( abi.encodePacked(prefix, message) ); return ecrecover(prefixedMessage, v, r, s); } function getNameDigest( string name) public pure returns (bytes32) { return keccak256(abi.encodePacked(name)); } function getWalletDigest( bytes32 name, address root) public pure returns (bytes32) { return keccak256(abi.encodePacked( name, root )); } function getLinkDigest( bytes32 walletID, address agent) public pure returns (bytes32) { return keccak256(abi.encodePacked( walletID, agent )); } function getDebitDigest( bytes32 walletID, uint256 value, uint64 nonce) public pure returns (bytes32) { return keccak256(abi.encodePacked( walletID, value, nonce )); } function getWithdrawDigest( bytes32 walletID, address recipient, uint256 value, uint64 nonce) public pure returns (bytes32) { return keccak256(abi.encodePacked( walletID, recipient, value, nonce )); } // VIEW GETTERS - READ WALLET STATE function getDebitNonce( bytes32 walletID) public view returns (uint256) { return wallets[walletID].debitNonce + 1; } function getWithdrawNonce( bytes32 walletID) public view returns (uint256) { return wallets[walletID].withdrawNonce + 1; } function getLinkStatus( bytes32 walletID, address member) public view returns (bool) { return wallets[walletID].linked[member]; } function getBalance( bytes32 walletID) public view returns (uint256) { return wallets[walletID].balance; } function getEscrowBalance() public view returns (uint256) { return escrowBalance; } // ADMIN MANAGEMENT function addAdmin( address newAdmin) onlyRootAdmin public { require(!isAdmin[newAdmin]); isAdmin[newAdmin] = true; admins.push(newAdmin); } function removeAdmin( address oldAdmin) onlyRootAdmin public { require(isAdmin[oldAdmin] && admins[0] != oldAdmin); bool found = false; for (uint i = 1; i < admins.length - 1; i++) { if (!found && admins[i] == oldAdmin) { found = true; } if (found) { admins[i] = admins[i + 1]; } } admins.length--; isAdmin[oldAdmin] = false; } function changeRootAdmin( address newRootAdmin) onlyRootAdmin public { if (isAdmin[newRootAdmin] && admins[0] != newRootAdmin) { // Remove them & shorten the array so long as they are not currently root removeAdmin(newRootAdmin); } admins[0] = newRootAdmin; isAdmin[newRootAdmin] = true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[{"name":"walletIDs","type":"bytes32[]"},{"name":"requestIDs","type":"uint256[]"},{"name":"values","type":"uint256[]"}],"name":"settle","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"admins","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"oldAdmin","type":"address"}],"name":"removeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"walletIDs","type":"bytes32[]"},{"name":"values","type":"uint256[]"},{"name":"nonces","type":"uint64[]"},{"name":"v","type":"uint8[]"},{"name":"r","type":"bytes32[]"},{"name":"s","type":"bytes32[]"}],"name":"debit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"message","type":"bytes32"},{"name":"v","type":"uint8"},{"name":"r","type":"bytes32"},{"name":"s","type":"bytes32"}],"name":"getMessageSigner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"walletID","type":"bytes32"},{"name":"agent","type":"address"}],"name":"getLinkDigest","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"walletIDs","type":"bytes32[]"},{"name":"recipients","type":"address[]"},{"name":"values","type":"uint256[]"},{"name":"nonces","type":"uint64[]"},{"name":"v","type":"uint8[]"},{"name":"r","type":"bytes32[]"},{"name":"s","type":"bytes32[]"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"name","type":"string"}],"name":"getNameDigest","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"newRootAdmin","type":"address"}],"name":"changeRootAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"walletID","type":"bytes32"},{"name":"recipient","type":"address"},{"name":"value","type":"uint256"},{"name":"nonce","type":"uint64"}],"name":"getWithdrawDigest","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"addAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"walletID","type":"bytes32"},{"name":"value","type":"uint256"},{"name":"nonce","type":"uint64"}],"name":"getDebitDigest","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"walletID","type":"bytes32"}],"name":"getBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"name","type":"bytes32"},{"name":"root","type":"address"}],"name":"getWalletDigest","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"walletID","type":"bytes32"}],"name":"deposit","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"walletIDs","type":"bytes32[]"},{"name":"nameIDs","type":"bytes32[]"},{"name":"agents","type":"address[]"},{"name":"v","type":"uint8[]"},{"name":"r","type":"bytes32[]"},{"name":"s","type":"bytes32[]"}],"name":"link","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"walletID","type":"bytes32"}],"name":"getDebitNonce","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getEscrowBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"walletID","type":"bytes32"}],"name":"getWithdrawNonce","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"walletID","type":"bytes32"},{"name":"member","type":"address"}],"name":"getLinkStatus","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"walletID","type":"bytes32"},{"indexed":true,"name":"sender","type":"address"},{"indexed":true,"name":"value","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"walletID","type":"bytes32"},{"indexed":true,"name":"agent","type":"address"}],"name":"Link","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"walletID","type":"bytes32"},{"indexed":true,"name":"nonce","type":"uint256"},{"indexed":true,"name":"value","type":"uint256"}],"name":"Debit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"walletID","type":"bytes32"},{"indexed":true,"name":"requestID","type":"uint256"},{"indexed":true,"name":"value","type":"uint256"}],"name":"Settle","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"walletID","type":"bytes32"},{"indexed":true,"name":"nonce","type":"uint256"},{"indexed":true,"name":"value","type":"uint256"},{"indexed":false,"name":"recipient","type":"address"}],"name":"Withdraw","type":"event"}]
Contract Creation Code
608060405234801561001057600080fd5b5060008054600181810183557f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639091018054600160a060020a03191633908117909155825260026020526040909120805460ff1916909117905561190e806100796000396000f3006080604052600436106101115763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166303612cb5811461011657806314bfd6d0146101df5780631785f53c146102135780632a856fcf146102345780632bfd91d4146103a65780633d44c476146103ca5780634eb933bf1461040057806362502fe7146105ab57806366eb463f146106045780636e7c1c2b14610625578063704802751461065957806371eb97101461067a5780638e739461146106a25780639dc4ca42146103ca578063b214faa5146106ba578063b5a030d8146106c5578063bb0c08b614610837578063c56e610e1461084f578063de9b33f914610864578063f8dcc3e01461087c575b600080fd5b34801561012257600080fd5b50604080516020600480358082013583810280860185019096528085526101dd95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506108b49650505050505050565b005b3480156101eb57600080fd5b506101f76004356109bd565b60408051600160a060020a039092168252519081900360200190f35b34801561021f57600080fd5b506101dd600160a060020a03600435166109e5565b34801561024057600080fd5b50604080516020600480358082013583810280860185019096528085526101dd95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610b789650505050505050565b3480156103b257600080fd5b506101f760043560ff60243516604435606435610d7f565b3480156103d657600080fd5b506103ee600435600160a060020a0360243516610ee0565b60408051918252519081900360200190f35b34801561040c57600080fd5b50604080516020600480358082013583810280860185019096528085526101dd95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610f7e9650505050505050565b3480156105b757600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526103ee9436949293602493928401919081908401838280828437509497506111f19650505050505050565b34801561061057600080fd5b506101dd600160a060020a03600435166112bb565b34801561063157600080fd5b506103ee600435600160a060020a036024351660443567ffffffffffffffff606435166113ac565b34801561066557600080fd5b506101dd600160a060020a036004351661147e565b34801561068657600080fd5b506103ee60043560243567ffffffffffffffff60443516611543565b3480156106ae57600080fd5b506103ee6004356115f6565b6101dd600435611608565b3480156106d157600080fd5b50604080516020600480358082013583810280860185019096528085526101dd95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975061164e9650505050505050565b34801561084357600080fd5b506103ee60043561180a565b34801561085b57600080fd5b506103ee611832565b34801561087057600080fd5b506103ee600435611839565b34801561088857600080fd5b506108a0600435600160a060020a036024351661186d565b604080519115158252519081900360200190f35b3360009081526002602052604081205481908190819060ff1615156108d857600080fd5b855187511480156108ea575084518751145b15156108f557600080fd5b6003549350600092505b86518310156109b257868381518110151561091657fe5b906020019060200201519150848381518110151561093057fe5b6020908102909101015190508381111561094957600080fd5b600082815260016020526040902080548201905585519381900393819087908590811061097257fe5b6020908102909101015160405184907f0cd738c9c0bbe501d6da72544aaef2b26bfdcbffa10507ff2755918321897c5690600090a46001909201916108ff565b505050600355505050565b60008054829081106109cb57fe5b600091825260209091200154600160a060020a0316905081565b6000806000808154811015156109f757fe5b600091825260209091200154600160a060020a03163314610a1757600080fd5b600160a060020a03831660009081526002602052604090205460ff168015610a6b575082600160a060020a0316600080815481101515610a5357fe5b600091825260209091200154600160a060020a031614155b1515610a7657600080fd5b506000905060015b60005460001901811015610b415781158015610ac5575082600160a060020a0316600082815481101515610aae57fe5b600091825260209091200154600160a060020a0316145b15610acf57600191505b8115610b39576000805460018301908110610ae657fe5b60009182526020822001548154600160a060020a03909116919083908110610b0a57fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a031602179055505b600101610a7e565b6000805490610b5490600019830161189b565b505050600160a060020a03166000908152600260205260409020805460ff19169055565b3360009081526002602052604081205481908190819081908190819060ff161515610ba257600080fd5b8b518d51148015610bb457508a518d51145b8015610bc1575089518d51145b8015610bce575088518d51145b8015610bdb575087518d51145b1515610be657600080fd5b60009650600095505b8c51861015610d67578c86815181101515610c0657fe5b9060200190602002015194508b86815181101515610c2057fe5b9060200190602002015193508a86815181101515610c3a57fe5b906020019060200201519250610ca1610c54868686611543565b8b88815181101515610c6257fe5b906020019060200201518b89815181101515610c7a57fe5b906020019060200201518b8a815181101515610c9257fe5b90602001906020020151610d7f565b60008681526001602052604090206002810154919350915067ffffffffffffffff8085169116108015610cd5575080548411155b8015610cfb5750600160a060020a038216600090815260018201602052604090205460ff165b15610d5c5760028101805467ffffffffffffffff191667ffffffffffffffff85169081179091558154859003825560405185919087907f7268e507839e4153e67d3077766172d7413186c098053936a070dc179ad7938290600090a4958301955b600190950194610bef565b50506003805490950190945550505050505050505050565b604080518082018252601c8082527f19457468657265756d205369676e6564204d6573736167653a0a33320000000060208084019182529351600094859385938b939092019182918083835b60208310610dea5780518252601f199092019160209182019101610dcb565b51815160209384036101000a600019018019909216911617905292019384525060408051808503815293820190819052835193945092839250908401908083835b60208310610e4a5780518252601f199092019160209182019101610e2b565b51815160209384036101000a600019018019909216911617905260408051929094018290038220600080845283830180875282905260ff8e1684870152606084018d9052608084018c905294519097506001965060a080840196509194601f19820194509281900390910191865af1158015610eca573d6000803e3d6000fd5b5050604051601f19015198975050505050505050565b6040805160208082018590526c01000000000000000000000000600160a060020a0385160282840152825160348184030181526054909201928390528151600093918291908401908083835b60208310610f4b5780518252601f199092019160209182019101610f2c565b5181516020939093036101000a600019018019909116921691909117905260405192018290039091209695505050505050565b3360009081526002602052604081205481908190819081908190819060ff161515610fa857600080fd5b8c518e51148015610fba57508b518e51145b8015610fc757508a518e51145b8015610fd4575089518e51145b8015610fe1575088518e51145b8015610fee575087518e51145b1515610ff957600080fd5b600096505b8d518710156111e1578d8781518110151561101557fe5b9060200190602002015195508c8781518110151561102f57fe5b9060200190602002015194508b8781518110151561104957fe5b9060200190602002015193508a8781518110151561106357fe5b9060200190602002015192506110bc61107e878787876113ac565b8b8981518110151561108c57fe5b906020019060200201518b8a8151811015156110a457fe5b906020019060200201518b8b815181101515610c9257fe5b60008781526001602052604090206002810154919350915067ffffffffffffffff80851668010000000000000000909204161080156110fc575080548411155b80156111225750600160a060020a038216600090815260018201602052604090205460ff165b801561114f5750604051600160a060020a0386169085156108fc029086906000818181858888f193505050505b156111d65760028101805467ffffffffffffffff85166801000000000000000081026fffffffffffffffff000000000000000019909216919091179091558154859003825560408051600160a060020a0388168152905186929189917f7b840614242a6f8bab9f3a654f6ce3aa212f8a4e3f3d3a9845a91bb891394cbc9181900360200190a45b600190960195610ffe565b5050505050505050505050505050565b6000816040516020018082805190602001908083835b602083106112265780518252601f199092019160209182019101611207565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b602083106112895780518252601f19909201916020918201910161126a565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912095945050505050565b60008054819081106112c957fe5b600091825260209091200154600160a060020a031633146112e957600080fd5b600160a060020a03811660009081526002602052604090205460ff16801561133d575080600160a060020a031660008081548110151561132557fe5b600091825260209091200154600160a060020a031614155b1561134b5761134b816109e5565b8060008081548110151561135b57fe5b6000918252602080832091909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03948516179055929091168152600290915260409020805460ff19166001179055565b6040805160208082018790526c01000000000000000000000000600160a060020a038716028284015260548201859052780100000000000000000000000000000000000000000000000067ffffffffffffffff85160260748301528251605c818403018152607c909201928390528151600093918291908401908083835b602083106114495780518252601f19909201916020918201910161142a565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912098975050505050505050565b600080548190811061148c57fe5b600091825260209091200154600160a060020a031633146114ac57600080fd5b600160a060020a03811660009081526002602052604090205460ff16156114d257600080fd5b600160a060020a03166000818152600260205260408120805460ff19166001908117909155815490810182559080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b604080516020808201869052818301859052780100000000000000000000000000000000000000000000000067ffffffffffffffff8516026060830152825160488184030181526068909201928390528151600093918291908401908083835b602083106115c25780518252601f1990920191602091820191016115a3565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120979650505050505050565b60009081526001602052604090205490565b60008181526001602052604080822080543490810190915590519091339184917f182fa52899142d44ff5c45a6354d3b3e868d5b07db6a65580b39bd321bdaf8ac91a450565b33600090815260026020526040812054819081908190819060ff16151561167457600080fd5b89518b51148015611686575088518b51145b8015611693575087518b51145b80156116a0575086518b51145b80156116ad575085518b51145b15156116b857600080fd5b600094505b8a518510156117fd578a858151811015156116d457fe5b90602001906020020151935088858151811015156116ee57fe5b9060200190602002015192506117456117078585610ee0565b898781518110151561171557fe5b90602001906020020151898881518110151561172d57fe5b906020019060200201518989815181101515610c9257fe5b6000858152600160208181526040808420600160a060020a038616855292830190915290912054919350915060ff168061179e575061179b8a8681518110151561178b57fe5b9060200190602002015183610ee0565b84145b156117f257600160a060020a038316600081815260018381016020526040808320805460ff19169092179091555186917fe96896758b540353b26660205100e2756a7e5495f07920d72859afc60e5f913691a35b6001909401936116bd565b5050505050505050505050565b60009081526001602081905260409091206002015467ffffffffffffffff9081169091011690565b6003545b90565b60009081526001602081905260409091206002015468010000000000000000900467ffffffffffffffff9081169091011690565b6000828152600160208181526040808420600160a060020a0386168552909201905290205460ff1692915050565b8154818355818111156118bf576000838152602090206118bf9181019083016118c4565b505050565b61183691905b808211156118de57600081556001016118ca565b50905600a165627a7a723058200c0c159cab950b01532c66a895c1a4da49a0fb8fc725f7a5d7a4871ad47b60ce0029
Deployed Bytecode
0x6080604052600436106101115763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166303612cb5811461011657806314bfd6d0146101df5780631785f53c146102135780632a856fcf146102345780632bfd91d4146103a65780633d44c476146103ca5780634eb933bf1461040057806362502fe7146105ab57806366eb463f146106045780636e7c1c2b14610625578063704802751461065957806371eb97101461067a5780638e739461146106a25780639dc4ca42146103ca578063b214faa5146106ba578063b5a030d8146106c5578063bb0c08b614610837578063c56e610e1461084f578063de9b33f914610864578063f8dcc3e01461087c575b600080fd5b34801561012257600080fd5b50604080516020600480358082013583810280860185019096528085526101dd95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506108b49650505050505050565b005b3480156101eb57600080fd5b506101f76004356109bd565b60408051600160a060020a039092168252519081900360200190f35b34801561021f57600080fd5b506101dd600160a060020a03600435166109e5565b34801561024057600080fd5b50604080516020600480358082013583810280860185019096528085526101dd95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610b789650505050505050565b3480156103b257600080fd5b506101f760043560ff60243516604435606435610d7f565b3480156103d657600080fd5b506103ee600435600160a060020a0360243516610ee0565b60408051918252519081900360200190f35b34801561040c57600080fd5b50604080516020600480358082013583810280860185019096528085526101dd95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610f7e9650505050505050565b3480156105b757600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526103ee9436949293602493928401919081908401838280828437509497506111f19650505050505050565b34801561061057600080fd5b506101dd600160a060020a03600435166112bb565b34801561063157600080fd5b506103ee600435600160a060020a036024351660443567ffffffffffffffff606435166113ac565b34801561066557600080fd5b506101dd600160a060020a036004351661147e565b34801561068657600080fd5b506103ee60043560243567ffffffffffffffff60443516611543565b3480156106ae57600080fd5b506103ee6004356115f6565b6101dd600435611608565b3480156106d157600080fd5b50604080516020600480358082013583810280860185019096528085526101dd95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975061164e9650505050505050565b34801561084357600080fd5b506103ee60043561180a565b34801561085b57600080fd5b506103ee611832565b34801561087057600080fd5b506103ee600435611839565b34801561088857600080fd5b506108a0600435600160a060020a036024351661186d565b604080519115158252519081900360200190f35b3360009081526002602052604081205481908190819060ff1615156108d857600080fd5b855187511480156108ea575084518751145b15156108f557600080fd5b6003549350600092505b86518310156109b257868381518110151561091657fe5b906020019060200201519150848381518110151561093057fe5b6020908102909101015190508381111561094957600080fd5b600082815260016020526040902080548201905585519381900393819087908590811061097257fe5b6020908102909101015160405184907f0cd738c9c0bbe501d6da72544aaef2b26bfdcbffa10507ff2755918321897c5690600090a46001909201916108ff565b505050600355505050565b60008054829081106109cb57fe5b600091825260209091200154600160a060020a0316905081565b6000806000808154811015156109f757fe5b600091825260209091200154600160a060020a03163314610a1757600080fd5b600160a060020a03831660009081526002602052604090205460ff168015610a6b575082600160a060020a0316600080815481101515610a5357fe5b600091825260209091200154600160a060020a031614155b1515610a7657600080fd5b506000905060015b60005460001901811015610b415781158015610ac5575082600160a060020a0316600082815481101515610aae57fe5b600091825260209091200154600160a060020a0316145b15610acf57600191505b8115610b39576000805460018301908110610ae657fe5b60009182526020822001548154600160a060020a03909116919083908110610b0a57fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a031602179055505b600101610a7e565b6000805490610b5490600019830161189b565b505050600160a060020a03166000908152600260205260409020805460ff19169055565b3360009081526002602052604081205481908190819081908190819060ff161515610ba257600080fd5b8b518d51148015610bb457508a518d51145b8015610bc1575089518d51145b8015610bce575088518d51145b8015610bdb575087518d51145b1515610be657600080fd5b60009650600095505b8c51861015610d67578c86815181101515610c0657fe5b9060200190602002015194508b86815181101515610c2057fe5b9060200190602002015193508a86815181101515610c3a57fe5b906020019060200201519250610ca1610c54868686611543565b8b88815181101515610c6257fe5b906020019060200201518b89815181101515610c7a57fe5b906020019060200201518b8a815181101515610c9257fe5b90602001906020020151610d7f565b60008681526001602052604090206002810154919350915067ffffffffffffffff8085169116108015610cd5575080548411155b8015610cfb5750600160a060020a038216600090815260018201602052604090205460ff165b15610d5c5760028101805467ffffffffffffffff191667ffffffffffffffff85169081179091558154859003825560405185919087907f7268e507839e4153e67d3077766172d7413186c098053936a070dc179ad7938290600090a4958301955b600190950194610bef565b50506003805490950190945550505050505050505050565b604080518082018252601c8082527f19457468657265756d205369676e6564204d6573736167653a0a33320000000060208084019182529351600094859385938b939092019182918083835b60208310610dea5780518252601f199092019160209182019101610dcb565b51815160209384036101000a600019018019909216911617905292019384525060408051808503815293820190819052835193945092839250908401908083835b60208310610e4a5780518252601f199092019160209182019101610e2b565b51815160209384036101000a600019018019909216911617905260408051929094018290038220600080845283830180875282905260ff8e1684870152606084018d9052608084018c905294519097506001965060a080840196509194601f19820194509281900390910191865af1158015610eca573d6000803e3d6000fd5b5050604051601f19015198975050505050505050565b6040805160208082018590526c01000000000000000000000000600160a060020a0385160282840152825160348184030181526054909201928390528151600093918291908401908083835b60208310610f4b5780518252601f199092019160209182019101610f2c565b5181516020939093036101000a600019018019909116921691909117905260405192018290039091209695505050505050565b3360009081526002602052604081205481908190819081908190819060ff161515610fa857600080fd5b8c518e51148015610fba57508b518e51145b8015610fc757508a518e51145b8015610fd4575089518e51145b8015610fe1575088518e51145b8015610fee575087518e51145b1515610ff957600080fd5b600096505b8d518710156111e1578d8781518110151561101557fe5b9060200190602002015195508c8781518110151561102f57fe5b9060200190602002015194508b8781518110151561104957fe5b9060200190602002015193508a8781518110151561106357fe5b9060200190602002015192506110bc61107e878787876113ac565b8b8981518110151561108c57fe5b906020019060200201518b8a8151811015156110a457fe5b906020019060200201518b8b815181101515610c9257fe5b60008781526001602052604090206002810154919350915067ffffffffffffffff80851668010000000000000000909204161080156110fc575080548411155b80156111225750600160a060020a038216600090815260018201602052604090205460ff165b801561114f5750604051600160a060020a0386169085156108fc029086906000818181858888f193505050505b156111d65760028101805467ffffffffffffffff85166801000000000000000081026fffffffffffffffff000000000000000019909216919091179091558154859003825560408051600160a060020a0388168152905186929189917f7b840614242a6f8bab9f3a654f6ce3aa212f8a4e3f3d3a9845a91bb891394cbc9181900360200190a45b600190960195610ffe565b5050505050505050505050505050565b6000816040516020018082805190602001908083835b602083106112265780518252601f199092019160209182019101611207565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b602083106112895780518252601f19909201916020918201910161126a565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912095945050505050565b60008054819081106112c957fe5b600091825260209091200154600160a060020a031633146112e957600080fd5b600160a060020a03811660009081526002602052604090205460ff16801561133d575080600160a060020a031660008081548110151561132557fe5b600091825260209091200154600160a060020a031614155b1561134b5761134b816109e5565b8060008081548110151561135b57fe5b6000918252602080832091909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03948516179055929091168152600290915260409020805460ff19166001179055565b6040805160208082018790526c01000000000000000000000000600160a060020a038716028284015260548201859052780100000000000000000000000000000000000000000000000067ffffffffffffffff85160260748301528251605c818403018152607c909201928390528151600093918291908401908083835b602083106114495780518252601f19909201916020918201910161142a565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912098975050505050505050565b600080548190811061148c57fe5b600091825260209091200154600160a060020a031633146114ac57600080fd5b600160a060020a03811660009081526002602052604090205460ff16156114d257600080fd5b600160a060020a03166000818152600260205260408120805460ff19166001908117909155815490810182559080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b604080516020808201869052818301859052780100000000000000000000000000000000000000000000000067ffffffffffffffff8516026060830152825160488184030181526068909201928390528151600093918291908401908083835b602083106115c25780518252601f1990920191602091820191016115a3565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120979650505050505050565b60009081526001602052604090205490565b60008181526001602052604080822080543490810190915590519091339184917f182fa52899142d44ff5c45a6354d3b3e868d5b07db6a65580b39bd321bdaf8ac91a450565b33600090815260026020526040812054819081908190819060ff16151561167457600080fd5b89518b51148015611686575088518b51145b8015611693575087518b51145b80156116a0575086518b51145b80156116ad575085518b51145b15156116b857600080fd5b600094505b8a518510156117fd578a858151811015156116d457fe5b90602001906020020151935088858151811015156116ee57fe5b9060200190602002015192506117456117078585610ee0565b898781518110151561171557fe5b90602001906020020151898881518110151561172d57fe5b906020019060200201518989815181101515610c9257fe5b6000858152600160208181526040808420600160a060020a038616855292830190915290912054919350915060ff168061179e575061179b8a8681518110151561178b57fe5b9060200190602002015183610ee0565b84145b156117f257600160a060020a038316600081815260018381016020526040808320805460ff19169092179091555186917fe96896758b540353b26660205100e2756a7e5495f07920d72859afc60e5f913691a35b6001909401936116bd565b5050505050505050505050565b60009081526001602081905260409091206002015467ffffffffffffffff9081169091011690565b6003545b90565b60009081526001602081905260409091206002015468010000000000000000900467ffffffffffffffff9081169091011690565b6000828152600160208181526040808420600160a060020a0386168552909201905290205460ff1692915050565b8154818355818111156118bf576000838152602090206118bf9181019083016118c4565b505050565b61183691905b808211156118de57600081556001016118ca565b50905600a165627a7a723058200c0c159cab950b01532c66a895c1a4da49a0fb8fc725f7a5d7a4871ad47b60ce0029
Swarm Source
bzzr://0c0c159cab950b01532c66a895c1a4da49a0fb8fc725f7a5d7a4871ad47b60ce
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | Ether (ETH) | 100.00% | $3,387.18 | 38.8202 | $131,491.17 |
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.