More Info
Private Name Tags
ContractCreator
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
18819488 | 348 days ago | 0.00961849 ETH | ||||
18819471 | 348 days ago | 0.01033255 ETH | ||||
18459926 | 399 days ago | 0.00146202 ETH | ||||
18459822 | 399 days ago | 0.00162977 ETH | ||||
18424834 | 404 days ago | 0.00314913 ETH | ||||
18424827 | 404 days ago | 0.00313881 ETH | ||||
18199329 | 435 days ago | 0.00161117 ETH | ||||
18199314 | 435 days ago | 0.00135502 ETH | ||||
18198916 | 435 days ago | 0.00105093 ETH | ||||
18198890 | 435 days ago | 0.00113422 ETH | ||||
18198518 | 435 days ago | 0.00193954 ETH | ||||
18197979 | 436 days ago | 0.00222042 ETH | ||||
14176042 | 1026 days ago | 0.01431245 ETH | ||||
14175608 | 1026 days ago | 0.01073137 ETH | ||||
14169165 | 1027 days ago | 0.02809395 ETH | ||||
14080826 | 1040 days ago | 0.02248702 ETH | ||||
14080633 | 1041 days ago | 0.00826883 ETH | ||||
14080589 | 1041 days ago | 0.02550159 ETH | ||||
12617899 | 1269 days ago | 0.00304734 ETH | ||||
12613653 | 1269 days ago | 0.00208964 ETH | ||||
12605417 | 1271 days ago | 0.00269876 ETH | ||||
12547565 | 1280 days ago | 0.0055194 ETH | ||||
12546817 | 1280 days ago | 0.00287007 ETH | ||||
12546740 | 1280 days ago | 0.00539776 ETH | ||||
12494681 | 1288 days ago | 0.00444476 ETH |
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xF31cc067...759C5f236 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
TokenBankV2
Compiler Version
v0.5.10+commit.5a6ea5b1
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-04-26 */ // File: contracts/MultiSigInterface.sol pragma solidity >=0.4.21 <0.6.0; contract MultiSigInterface{ function update_and_check_reach_majority(uint64 id, string memory name, bytes32 hash, address sender) public returns (bool); function is_signer(address addr) public view returns(bool); } // File: contracts/MultiSigTools.sol pragma solidity >=0.4.21 <0.6.0; contract MultiSigTools{ MultiSigInterface public multisig_contract; constructor(address _contract) public{ require(_contract!= address(0x0)); multisig_contract = MultiSigInterface(_contract); } modifier only_signer{ require(multisig_contract.is_signer(msg.sender), "only a signer can call in MultiSigTools"); _; } modifier is_majority_sig(uint64 id, string memory name) { bytes32 hash = keccak256(abi.encodePacked(msg.sig, msg.data)); if(multisig_contract.update_and_check_reach_majority(id, name, hash, msg.sender)){ _; } } modifier is_majority_sig_with_hash(uint64 id, string memory name, bytes32 hash) { if(multisig_contract.update_and_check_reach_majority(id, name, hash, msg.sender)){ _; } } event TransferMultiSig(address _old, address _new); function transfer_multisig(uint64 id, address _contract) public only_signer is_majority_sig(id, "transfer_multisig"){ require(_contract != address(0x0)); address old = address(multisig_contract); multisig_contract = MultiSigInterface(_contract); emit TransferMultiSig(old, _contract); } } // File: contracts/TrustListTools.sol pragma solidity >=0.4.21 <0.6.0; contract TrustListInterface{ function is_trusted(address addr) public returns(bool); } contract TrustListTools{ TrustListInterface public trustlist; constructor(address _list) public { //require(_list != address(0x0)); trustlist = TrustListInterface(_list); } modifier is_trusted(address addr){ require(trustlist.is_trusted(addr), "not a trusted issuer"); _; } } // File: contracts/erc20/IERC20.sol pragma solidity >=0.4.21 <0.6.0; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } // File: contracts/utils/TokenClaimer.sol pragma solidity >=0.4.21 <0.6.0; contract TokenClaimer{ event ClaimedTokens(address indexed _token, address indexed _to, uint _amount); /// @notice This method can be used by the controller to extract mistakenly /// sent tokens to this contract. /// @param _token The address of the token contract that you want to recover /// set to 0 in case you want to extract ether. function _claimStdTokens(address _token, address payable to) internal { if (_token == address(0x0)) { to.transfer(address(this).balance); return; } uint balance = IERC20(_token).balanceOf(address(this)); (bool status,) = _token.call(abi.encodeWithSignature("transfer(address,uint256)", to, balance)); require(status, "call failed"); emit ClaimedTokens(_token, to, balance); } } // File: contracts/utils/Ownable.sol pragma solidity >=0.4.21 <0.6.0; contract Ownable { address private _contract_owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () internal { address msgSender = msg.sender; _contract_owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _contract_owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_contract_owner == msg.sender, "Ownable: caller is not the owner"); _; } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public onlyOwner { _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). */ function _transferOwnership(address newOwner) internal { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_contract_owner, newOwner); _contract_owner = newOwner; } } // File: contracts/utils/SafeMath.sol pragma solidity >=0.4.21 <0.6.0; library SafeMath { function safeAdd(uint a, uint b) public pure returns (uint c) { c = a + b; require(c >= a, "add"); } function safeSub(uint a, uint b) public pure returns (uint c) { require(b <= a, "sub"); c = a - b; } function safeMul(uint a, uint b) public pure returns (uint c) { c = a * b; require(a == 0 || c / a == b, "mul"); } function safeDiv(uint a, uint b) public pure returns (uint c) { require(b > 0, "div"); c = a / b; } } // File: contracts/utils/Address.sol pragma solidity >=0.4.21 <0.6.0; library Address { function isContract(address account) internal view returns (bool) { bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != 0x0 && codehash != accountHash); } function toPayable(address account) internal pure returns (address payable) { return address(uint160(account)); } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-call-value (bool success, ) = recipient.call.value(amount)(""); require(success, "Address: unable to send value, recipient may have reverted"); } } // File: contracts/erc20/SafeERC20.sol pragma solidity >=0.4.21 <0.6.0; library SafeERC20 { using SafeMath for uint256; using Address for address; function safeTransfer(IERC20 token, address to, uint256 value) internal { callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal { callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); } function safeApprove(IERC20 token, address spender, uint256 value) internal { require((value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance" ); callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); } function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal { uint256 newAllowance = token.allowance(address(this), spender).safeAdd(value); callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal { uint256 newAllowance = token.allowance(address(this), spender).safeSub(value); callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } function callOptionalReturn(IERC20 token, bytes memory data) private { require(address(token).isContract(), "SafeERC20: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = address(token).call(data); require(success, "SafeERC20: low-level call failed"); if (returndata.length > 0) { // Return data is optional // solhint-disable-next-line max-line-length require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); } } } // File: contracts/assets/TokenBankV2.sol pragma solidity >=0.4.21 <0.6.0; contract TokenBankV2 is Ownable, TokenClaimer, TrustListTools{ using SafeERC20 for IERC20; string public bank_name; //address public erc20_token_addr; event withdraw_token(address token, address to, uint256 amount); event issue_token(address token, address to, uint256 amount); event RecvETH(uint256 v); function() external payable{ emit RecvETH(msg.value); } constructor(string memory name, address _tlist) TrustListTools(_tlist) public{ bank_name = name; } function claimStdTokens(address _token, address payable to) public onlyOwner{ _claimStdTokens(_token, to); } function balance(address erc20_token_addr) public view returns(uint){ if(erc20_token_addr == address(0x0)){ return address(this).balance; } return IERC20(erc20_token_addr).balanceOf(address(this)); } function transfer(address erc20_token_addr, address payable to, uint tokens) public onlyOwner returns (bool success){ require(tokens <= balance(erc20_token_addr), "TokenBankV2 not enough tokens"); if(erc20_token_addr == address(0x0)){ (bool _success, ) = to.call.value(tokens)(""); require(_success, "TokenBankV2 transfer eth failed"); emit withdraw_token(erc20_token_addr, to, tokens); return true; } IERC20(erc20_token_addr).safeTransfer(to, tokens); emit withdraw_token(erc20_token_addr, to, tokens); return true; } function issue(address erc20_token_addr, address payable _to, uint _amount) public is_trusted(msg.sender) returns (bool success){ require(_amount <= balance(erc20_token_addr), "TokenBankV2 not enough tokens"); if(erc20_token_addr == address(0x0)){ (bool _success, ) = _to.call.value(_amount)(""); require(_success, "TokenBankV2 transfer eth failed"); emit issue_token(erc20_token_addr, _to, _amount); return true; } IERC20(erc20_token_addr).safeTransfer(_to, _amount); emit issue_token(erc20_token_addr, _to, _amount); return true; } } contract TokenBankV2Factory { event CreateTokenBank(string name, address addr); function newTokenBankV2(string memory name, address tlist) public returns(address){ TokenBankV2 addr = new TokenBankV2(name, tlist); emit CreateTokenBank(name, address(addr)); addr.transferOwnership(msg.sender); return address(addr); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"bank_name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"to","type":"address"}],"name":"claimStdTokens","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":"trustlist","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"erc20_token_addr","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"issue","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"erc20_token_addr","type":"address"},{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"erc20_token_addr","type":"address"}],"name":"balance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"name","type":"string"},{"name":"_tlist","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"withdraw_token","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"issue_token","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"v","type":"uint256"}],"name":"RecvETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_token","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"ClaimedTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]
Deployed Bytecode
0x60806040526004361061007b5760003560e01c8063b61399921161004e578063b6139992146101bd578063beabacc814610214578063e3d670d714610257578063f2fde38b1461029c5761007b565b80630a396440146100b0578063128873dd1461013a5780638da5cb5b14610177578063a21efbda146101a8575b6040805134815290517f88817d61020445ee452f5f17f78019fe724199337d2e16c0b94176c00a88e2849181900360200190a1005b3480156100bc57600080fd5b506100c56102cf565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100ff5781810151838201526020016100e7565b50505050905090810190601f16801561012c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561014657600080fd5b506101756004803603604081101561015d57600080fd5b506001600160a01b038135811691602001351661035a565b005b34801561018357600080fd5b5061018c6103c7565b604080516001600160a01b039092168252519081900360200190f35b3480156101b457600080fd5b5061018c6103d6565b3480156101c957600080fd5b50610200600480360360608110156101e057600080fd5b506001600160a01b038135811691602081013590911690604001356103e5565b604080519115158252519081900360200190f35b34801561022057600080fd5b506102006004803603606081101561023757600080fd5b506001600160a01b0381358116916020810135909116906040013561067d565b34801561026357600080fd5b5061028a6004803603602081101561027a57600080fd5b50356001600160a01b03166108b1565b60408051918252519081900360200190f35b3480156102a857600080fd5b50610175600480360360208110156102bf57600080fd5b50356001600160a01b0316610943565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156103525780601f1061032757610100808354040283529160200191610352565b820191906000526020600020905b81548152906001019060200180831161033557829003601f168201915b505050505081565b6000546001600160a01b031633146103b9576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6103c382826109ae565b5050565b6000546001600160a01b031690565b6001546001600160a01b031681565b60015460408051632153522560e11b8152336004820181905291516000936001600160a01b0316916342a6a44a91602480830192602092919082900301818887803b15801561043357600080fd5b505af1158015610447573d6000803e3d6000fd5b505050506040513d602081101561045d57600080fd5b50516104a7576040805162461bcd60e51b81526020600482015260146024820152733737ba1030903a393ab9ba32b21034b9b9bab2b960611b604482015290519081900360640190fd5b6104b0856108b1565b831115610504576040805162461bcd60e51b815260206004820152601d60248201527f546f6b656e42616e6b5632206e6f7420656e6f75676820746f6b656e73000000604482015290519081900360640190fd5b6001600160a01b03851661060c576040516000906001600160a01b0386169085908381818185875af1925050503d806000811461055d576040519150601f19603f3d011682016040523d82523d6000602084013e610562565b606091505b50509050806105b8576040805162461bcd60e51b815260206004820152601f60248201527f546f6b656e42616e6b5632207472616e7366657220657468206661696c656400604482015290519081900360640190fd5b604080516001600160a01b0380891682528716602082015280820186905290517f4c43e932490af3f9bccfdba8571f82aa82b5f7eaf7fbb4a26cb119a62e577a1f9181900360600190a16001925050610675565b6106266001600160a01b038616858563ffffffff610be716565b604080516001600160a01b0380881682528616602082015280820185905290517f4c43e932490af3f9bccfdba8571f82aa82b5f7eaf7fbb4a26cb119a62e577a1f9181900360600190a1600191505b509392505050565b600080546001600160a01b031633146106dd576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6106e6846108b1565b82111561073a576040805162461bcd60e51b815260206004820152601d60248201527f546f6b656e42616e6b5632206e6f7420656e6f75676820746f6b656e73000000604482015290519081900360640190fd5b6001600160a01b038416610842576040516000906001600160a01b0385169084908381818185875af1925050503d8060008114610793576040519150601f19603f3d011682016040523d82523d6000602084013e610798565b606091505b50509050806107ee576040805162461bcd60e51b815260206004820152601f60248201527f546f6b656e42616e6b5632207472616e7366657220657468206661696c656400604482015290519081900360640190fd5b604080516001600160a01b0380881682528616602082015280820185905290517f35579f0c79dc131799efacfb60f9120e2530a6aa6ca46ccdaaa9d083ced65c8a9181900360600190a160019150506108aa565b61085c6001600160a01b038516848463ffffffff610be716565b604080516001600160a01b0380871682528516602082015280820184905290517f35579f0c79dc131799efacfb60f9120e2530a6aa6ca46ccdaaa9d083ced65c8a9181900360600190a15060015b9392505050565b60006001600160a01b0382166108c95750303161093e565b604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b15801561090f57600080fd5b505afa158015610923573d6000803e3d6000fd5b505050506040513d602081101561093957600080fd5b505190505b919050565b6000546001600160a01b031633146109a2576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6109ab81610c3e565b50565b6001600160a01b0382166109f8576040516001600160a01b03821690303180156108fc02916000818181858888f193505050501580156109f2573d6000803e3d6000fd5b506103c3565b604080516370a0823160e01b815230600482015290516000916001600160a01b038516916370a0823191602480820192602092909190829003018186803b158015610a4257600080fd5b505afa158015610a56573d6000803e3d6000fd5b505050506040513d6020811015610a6c57600080fd5b5051604080516001600160a01b038581166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182519495506000949188169390918291908083835b60208310610aeb5780518252601f199092019160209182019101610acc565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610b4d576040519150601f19603f3d011682016040523d82523d6000602084013e610b52565b606091505b5050905080610b96576040805162461bcd60e51b815260206004820152600b60248201526a18d85b1b0819985a5b195960aa1b604482015290519081900360640190fd5b826001600160a01b0316846001600160a01b03167ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c846040518082815260200191505060405180910390a350505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610c39908490610cde565b505050565b6001600160a01b038116610c835760405162461bcd60e51b8152600401808060200182810382526026815260200180610ed96026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b610cf0826001600160a01b0316610e9c565b610d41576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b60208310610d7f5780518252601f199092019160209182019101610d60565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610de1576040519150601f19603f3d011682016040523d82523d6000602084013e610de6565b606091505b509150915081610e3d576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115610e9657808060200190516020811015610e5957600080fd5b5051610e965760405162461bcd60e51b815260040180806020018281038252602a815260200180610eff602a913960400191505060405180910390fd5b50505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708115801590610ed05750808214155b94935050505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a265627a7a72305820c85e73acfafb65daada5f246085353baf86e0c8b10d530d7fffbbeffb9da6f8d64736f6c634300050a0032
Deployed Bytecode Sourcemap
9064:2107:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9434:18;;;9442:9;9434:18;;;;;;;;;;;;;9064:2107;9163:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9163:23:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9163:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9578:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9578:123:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9578:123:0;;;;;;;;;;:::i;:::-;;4295:88;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4295:88:0;;;:::i;:::-;;;;-1:-1:-1;;;;;4295:88:0;;;;;;;;;;;;;;1750:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1750:35:0;;;:::i;10537:631::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10537:631:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;10537:631:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;9937:594;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9937:594:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9937:594:0;;;;;;;;;;;;;;;;;:::i;9707:224::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9707:224:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9707:224:0;-1:-1:-1;;;;;9707:224:0;;:::i;:::-;;;;;;;;;;;;;;;;4757:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4757:109:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4757:109:0;-1:-1:-1;;;;;4757:109:0;;:::i;9163:23::-;;;;;;;;;;;;;;-1:-1:-1;;9163:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9578:123::-;4516:15;;-1:-1:-1;;;;;4516:15:0;4535:10;4516:29;4508:74;;;;;-1:-1:-1;;;4508:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9668:27;9684:6;9692:2;9668:15;:27::i;:::-;9578:123;;:::o;4295:88::-;4333:7;4360:15;-1:-1:-1;;;;;4360:15:0;;4295:88::o;1750:35::-;;;-1:-1:-1;;;;;1750:35:0;;:::o;10537:631::-;1967:9;;:26;;;-1:-1:-1;;;1967:26:0;;10641:10;1967:26;;;;;;;;-1:-1:-1;;;;;;;1967:9:0;;:20;;:26;;;;;;;;;;;;;;-1:-1:-1;1967:9:0;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;1967:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1967:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1967:26:0;1959:59;;;;;-1:-1:-1;;;1959:59:0;;;;;;;;;;;;-1:-1:-1;;;1959:59:0;;;;;;;;;;;;;;;10708:25;10716:16;10708:7;:25::i;:::-;10697:7;:36;;10689:78;;;;;-1:-1:-1;;;10689:78:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10779:32:0;;10776:248;;10843:27;;10824:13;;-1:-1:-1;;;;;10843:8:0;;;10858:7;;10824:13;10843:27;10824:13;10843:27;10858:7;10843:8;:27;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;10823:47:0;;;10889:8;10881:52;;;;;-1:-1:-1;;;10881:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10949:43;;;-1:-1:-1;;;;;10949:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;11010:4;11003:11;;;;;10776:248;11032:51;-1:-1:-1;;;;;11032:37:0;;11070:3;11075:7;11032:37;:51::i;:::-;11097:43;;;-1:-1:-1;;;;;11097:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;11156:4;11149:11;;2025:1;10537:631;;;;;;:::o;9937:594::-;10055:12;4516:15;;-1:-1:-1;;;;;4516:15:0;4535:10;4516:29;4508:74;;;;;-1:-1:-1;;;4508:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10093:25;10101:16;10093:7;:25::i;:::-;10083:6;:35;;10075:77;;;;;-1:-1:-1;;;10075:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10162:32:0;;10159:237;;10224:25;;10205:13;;-1:-1:-1;;;;;10224:7:0;;;10238:6;;10205:13;10224:25;10205:13;10224:25;10238:6;10224:7;:25;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;10204:45:0;;;10266:8;10258:52;;;;;-1:-1:-1;;;10258:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10324:44;;;-1:-1:-1;;;;;10324:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10384:4;10377:11;;;;;10159:237;10402:49;-1:-1:-1;;;;;10402:37:0;;10440:2;10444:6;10402:37;:49::i;:::-;10463:44;;;-1:-1:-1;;;;;10463:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10521:4:0;4593:1;9937:594;;;;;:::o;9707:224::-;9770:4;-1:-1:-1;;;;;9785:32:0;;9782:81;;-1:-1:-1;9842:4:0;9834:21;9827:28;;9782:81;9876:49;;;-1:-1:-1;;;9876:49:0;;9919:4;9876:49;;;;;;-1:-1:-1;;;;;9876:34:0;;;-1:-1:-1;;9876:49:0;;;;;;;;;;;;;;:34;:49;;;5:2:-1;;;;30:1;27;20:12;5:2;9876:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9876:49:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9876:49:0;;-1:-1:-1;9707:224:0;;;;:::o;4757:109::-;4516:15;;-1:-1:-1;;;;;4516:15:0;4535:10;4516:29;4508:74;;;;;-1:-1:-1;;;4508:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4830:28;4849:8;4830:18;:28::i;:::-;4757:109;:::o;3246:460::-;-1:-1:-1;;;;;3331:22:0;;3327:110;;3370:34;;-1:-1:-1;;;;;3370:11:0;;;3390:4;3382:21;3370:34;;;;;;;;;3382:21;3370:11;:34;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3370:34:0;3419:7;;3327:110;3462:39;;;-1:-1:-1;;;3462:39:0;;3495:4;3462:39;;;;;;-1:-1:-1;;;;;;;3462:24:0;;;-1:-1:-1;;3462:39:0;;;;;;;;;;;;;;;:24;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;3462:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3462:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3462:39:0;3543:65;;;-1:-1:-1;;;;;3543:65:0;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3543:65:0;;;;;;3462:39;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;3531:78:0;;;;3462:39;;-1:-1:-1;;;3531:11:0;;;;:78;;;;25:18:-1;3531:78:0;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3531:78:0;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;3514:95:0;;;3628:6;3620:30;;;;;-1:-1:-1;;;3620:30:0;;;;;;;;;;;;-1:-1:-1;;;3620:30:0;;;;;;;;;;;;;;;3666:34;;;;;;;;-1:-1:-1;;;;;3666:34:0;;;;;;;;;;;;;;;;;3246:460;;;;:::o;7023:176::-;7132:58;;;-1:-1:-1;;;;;7132:58:0;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;7132:58:0;;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;7106:85:0;;7125:5;;7106:18;:85::i;:::-;7023:176;;;:::o;4972:247::-;-1:-1:-1;;;;;5046:22:0;;5038:73;;;;-1:-1:-1;;;5038:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5148:15;;;5127:47;;-1:-1:-1;;;;;5127:47:0;;;;5148:15;;;5127:47;;;5185:15;:26;;-1:-1:-1;;;;;;5185:26:0;-1:-1:-1;;;;;5185:26:0;;;;;;;;;;4972:247::o;8366:598::-;8454:27;-1:-1:-1;;;;;8454:25:0;;;:27::i;:::-;8446:71;;;;;-1:-1:-1;;;8446:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;8591:12;8605:23;8640:5;-1:-1:-1;;;;;8632:19:0;8652:4;8632:25;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;8632:25:0;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;8590:67:0;;;;8676:7;8668:52;;;;;-1:-1:-1;;;8668:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8737:17;;:21;8733:224;;8879:10;8868:30;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8868:30:0;8860:85;;;;-1:-1:-1;;;8860:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8366:598;;;;:::o;5956:374::-;6016:4;6239:20;;6082:66;6279:15;;;;;:42;;;6310:11;6298:8;:23;;6279:42;6271:51;5956:374;-1:-1:-1;;;;5956:374:0:o
Swarm Source
bzzr://c85e73acfafb65daada5f246085353baf86e0c8b10d530d7fffbbeffb9da6f8d
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | Ether (ETH) | 100.00% | $3,581.1 | 0.5152 | $1,845.16 |
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.