Overview
ETH Balance
0 ETH
Eth Value
$0.00Token Holdings
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 43 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw Token | 11869075 | 1341 days ago | IN | 0 ETH | 0.00787264 | ||||
Withdraw Token | 11869060 | 1341 days ago | IN | 0 ETH | 0.00879054 | ||||
Withdraw Token | 11869055 | 1341 days ago | IN | 0 ETH | 0.00787264 | ||||
Withdraw Token | 11869039 | 1341 days ago | IN | 0 ETH | 0.00788484 | ||||
Withdraw Token | 11869037 | 1341 days ago | IN | 0 ETH | 0.0070296 | ||||
Withdraw Token | 11863057 | 1342 days ago | IN | 0 ETH | 0.00409025 | ||||
Withdraw Token | 11863056 | 1342 days ago | IN | 0 ETH | 0.00428181 | ||||
Withdraw Token | 11863052 | 1342 days ago | IN | 0 ETH | 0.00428467 | ||||
Withdraw Token | 11863049 | 1342 days ago | IN | 0 ETH | 0.00447369 | ||||
Withdraw Token | 11863046 | 1342 days ago | IN | 0 ETH | 0.0043108 | ||||
Withdraw Token | 11863042 | 1342 days ago | IN | 0 ETH | 0.00497744 | ||||
Withdraw Token | 11863039 | 1342 days ago | IN | 0 ETH | 0.00425269 | ||||
Withdraw Token | 11786078 | 1353 days ago | IN | 0 ETH | 0.01434054 | ||||
Withdraw Token | 11263033 | 1434 days ago | IN | 0 ETH | 0.001953 | ||||
Withdraw Token | 10907945 | 1489 days ago | IN | 0 ETH | 0.00363622 | ||||
Withdraw Token | 10907805 | 1489 days ago | IN | 0 ETH | 0.00307502 | ||||
Withdraw Token | 10692190 | 1522 days ago | IN | 0 ETH | 0.00389284 | ||||
Withdraw Token | 10585520 | 1538 days ago | IN | 0 ETH | 0.00186464 | ||||
Withdraw Token | 10585461 | 1538 days ago | IN | 0 ETH | 0.00179541 | ||||
Withdraw Token | 10585461 | 1538 days ago | IN | 0 ETH | 0.00145904 | ||||
Withdraw Token | 10585452 | 1538 days ago | IN | 0 ETH | 0.00205156 | ||||
Withdraw Token | 10585449 | 1538 days ago | IN | 0 ETH | 0.0021406 | ||||
Withdraw Token | 10585446 | 1538 days ago | IN | 0 ETH | 0.00179987 | ||||
Withdraw Token | 10520857 | 1548 days ago | IN | 0 ETH | 0.00237146 | ||||
Withdraw Token | 10520846 | 1548 days ago | IN | 0 ETH | 0.00263772 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xaFDC6417...1F08AA472 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
FeeHolder
Compiler Version
v0.5.7+commit.6da8b019
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2019-09-23 */ // File: contracts/iface/IFeeHolder.sol /* Copyright 2017 Loopring Project Ltd (Loopring Foundation). Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ pragma solidity 0.5.7; /// @author Kongliang Zhong - <[email protected]> /// @title IFeeHolder - A contract holding fees. contract IFeeHolder { event TokenWithdrawn( address owner, address token, uint value ); // A map of all fee balances mapping(address => mapping(address => uint)) public feeBalances; /// @dev Allows withdrawing the tokens to be burned by /// authorized contracts. /// @param token The token to be used to burn buy and burn LRC /// @param value The amount of tokens to withdraw function withdrawBurned( address token, uint value ) external returns (bool success); /// @dev Allows withdrawing the fee payments funds /// msg.sender is the recipient of the fee and the address /// to which the tokens will be sent. /// @param token The token to withdraw /// @param value The amount of tokens to withdraw function withdrawToken( address token, uint value ) external returns (bool success); function batchAddFeeBalances( bytes32[] calldata batch ) external; } // File: contracts/iface/ITradeDelegate.sol /* Copyright 2017 Loopring Project Ltd (Loopring Foundation). Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ /// @title ITradeDelegate /// @dev Acts as a middle man to transfer ERC20 tokens on behalf of different /// versions of Loopring protocol to avoid ERC20 re-authorization. /// @author Daniel Wang - <[email protected]>. contract ITradeDelegate { function batchTransfer( bytes32[] calldata batch ) external; /// @dev Add a Loopring protocol address. /// @param addr A loopring protocol address. function authorizeAddress( address addr ) external; /// @dev Remove a Loopring protocol address. /// @param addr A loopring protocol address. function deauthorizeAddress( address addr ) external; function isAddressAuthorized( address addr ) public view returns (bool); function suspend() external; function resume() external; function kill() external; } // File: contracts/lib/Ownable.sol /* Copyright 2017 Loopring Project Ltd (Loopring Foundation). Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ /// @title Ownable /// @dev The Ownable contract has an owner address, and provides basic /// authorization control functions, this simplifies the implementation of /// "user permissions". contract Ownable { address public owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /// @dev The Ownable constructor sets the original `owner` of the contract /// to the sender. constructor() public { owner = msg.sender; } /// @dev Throws if called by any account other than the owner. modifier onlyOwner() { require(msg.sender == owner, "NOT_OWNER"); _; } /// @dev Allows the current owner to transfer control of the contract to a /// newOwner. /// @param newOwner The address to transfer ownership to. function transferOwnership( address newOwner ) public onlyOwner { require(newOwner != address(0x0), "ZERO_ADDRESS"); emit OwnershipTransferred(owner, newOwner); owner = newOwner; } } // File: contracts/lib/Claimable.sol /* Copyright 2017 Loopring Project Ltd (Loopring Foundation). Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ /// @title Claimable /// @dev Extension for the Ownable contract, where the ownership needs /// to be claimed. This allows the new owner to accept the transfer. contract Claimable is Ownable { address public pendingOwner; /// @dev Modifier throws if called by any account other than the pendingOwner. modifier onlyPendingOwner() { require(msg.sender == pendingOwner, "UNAUTHORIZED"); _; } /// @dev Allows the current owner to set the pendingOwner address. /// @param newOwner The address to transfer ownership to. function transferOwnership( address newOwner ) public onlyOwner { require(newOwner != address(0x0) && newOwner != owner, "INVALID_ADDRESS"); pendingOwner = newOwner; } /// @dev Allows the pendingOwner address to finalize the transfer. function claimOwnership() public onlyPendingOwner { emit OwnershipTransferred(owner, pendingOwner); owner = pendingOwner; pendingOwner = address(0x0); } } // File: contracts/lib/ERC20SafeTransfer.sol /* Copyright 2017 Loopring Project Ltd (Loopring Foundation). Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ /// @title ERC20 safe transfer /// @dev see https://github.com/sec-bit/badERC20Fix /// @author Brecht Devos - <[email protected]> library ERC20SafeTransfer { function safeTransfer( address token, address to, uint256 value) internal returns (bool success) { // A transfer is successful when 'call' is successful and depending on the token: // - No value is returned: we assume a revert when the transfer failed (i.e. 'call' returns false) // - A single boolean is returned: this boolean needs to be true (non-zero) // bytes4(keccak256("transfer(address,uint256)")) = 0xa9059cbb bytes memory callData = abi.encodeWithSelector( bytes4(0xa9059cbb), to, value ); (success, ) = token.call(callData); return checkReturnValue(success); } function safeTransferFrom( address token, address from, address to, uint256 value) internal returns (bool success) { // A transferFrom is successful when 'call' is successful and depending on the token: // - No value is returned: we assume a revert when the transfer failed (i.e. 'call' returns false) // - A single boolean is returned: this boolean needs to be true (non-zero) // bytes4(keccak256("transferFrom(address,address,uint256)")) = 0x23b872dd bytes memory callData = abi.encodeWithSelector( bytes4(0x23b872dd), from, to, value ); (success, ) = token.call(callData); return checkReturnValue(success); } function checkReturnValue( bool success ) internal pure returns (bool) { // A transfer/transferFrom is successful when 'call' is successful and depending on the token: // - No value is returned: we assume a revert when the transfer failed (i.e. 'call' returns false) // - A single boolean is returned: this boolean needs to be true (non-zero) if (success) { assembly { switch returndatasize() // Non-standard ERC20: nothing is returned so if 'call' was successful we assume the transfer succeeded case 0 { success := 1 } // Standard ERC20: a single boolean value is returned which needs to be true case 32 { returndatacopy(0, 0, 32) success := mload(0) } // None of the above: not successful default { success := 0 } } } return success; } } // File: contracts/lib/MathUint.sol /* Copyright 2017 Loopring Project Ltd (Loopring Foundation). Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ /// @title Utility Functions for uint /// @author Daniel Wang - <[email protected]> library MathUint { function mul( uint a, uint b ) internal pure returns (uint c) { c = a * b; require(a == 0 || c / a == b, "INVALID_VALUE"); } function sub( uint a, uint b ) internal pure returns (uint) { require(b <= a, "INVALID_VALUE"); return a - b; } function add( uint a, uint b ) internal pure returns (uint c) { c = a + b; require(c >= a, "INVALID_VALUE"); } function hasRoundingError( uint value, uint numerator, uint denominator ) internal pure returns (bool) { uint multiplied = mul(value, numerator); uint remainder = multiplied % denominator; // Return true if the rounding error is larger than 1% return mul(remainder, 100) > multiplied; } } // File: contracts/iface/Errors.sol /* Copyright 2017 Loopring Project Ltd (Loopring Foundation). Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ /// @title Errors contract Errors { string constant ZERO_VALUE = "ZERO_VALUE"; string constant ZERO_ADDRESS = "ZERO_ADDRESS"; string constant INVALID_VALUE = "INVALID_VALUE"; string constant INVALID_ADDRESS = "INVALID_ADDRESS"; string constant INVALID_SIZE = "INVALID_SIZE"; string constant INVALID_SIG = "INVALID_SIG"; string constant INVALID_STATE = "INVALID_STATE"; string constant NOT_FOUND = "NOT_FOUND"; string constant ALREADY_EXIST = "ALREADY_EXIST"; string constant REENTRY = "REENTRY"; string constant UNAUTHORIZED = "UNAUTHORIZED"; string constant UNIMPLEMENTED = "UNIMPLEMENTED"; string constant UNSUPPORTED = "UNSUPPORTED"; string constant TRANSFER_FAILURE = "TRANSFER_FAILURE"; string constant WITHDRAWAL_FAILURE = "WITHDRAWAL_FAILURE"; string constant BURN_FAILURE = "BURN_FAILURE"; string constant BURN_RATE_FROZEN = "BURN_RATE_FROZEN"; string constant BURN_RATE_MINIMIZED = "BURN_RATE_MINIMIZED"; string constant UNAUTHORIZED_ONCHAIN_ORDER = "UNAUTHORIZED_ONCHAIN_ORDER"; string constant INVALID_CANDIDATE = "INVALID_CANDIDATE"; string constant ALREADY_VOTED = "ALREADY_VOTED"; string constant NOT_OWNER = "NOT_OWNER"; } // File: contracts/lib/NoDefaultFunc.sol /* Copyright 2017 Loopring Project Ltd (Loopring Foundation). Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ /// @title NoDefaultFunc /// @dev Disable default functions. contract NoDefaultFunc is Errors { function () external payable { revert(UNSUPPORTED); } } // File: contracts/impl/FeeHolder.sol /* Copyright 2017 Loopring Project Ltd (Loopring Foundation). Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ /// @author Kongliang Zhong - <[email protected]> contract FeeHolder is IFeeHolder, NoDefaultFunc { using MathUint for uint; using ERC20SafeTransfer for address; address public delegateAddress = address(0x0); constructor(address _delegateAddress) public { require(_delegateAddress != address(0x0), ZERO_ADDRESS); delegateAddress = _delegateAddress; } modifier onlyAuthorized() { ITradeDelegate delegate = ITradeDelegate(delegateAddress); bool isAuthorized = delegate.isAddressAuthorized(msg.sender); require(isAuthorized, UNAUTHORIZED); _; } function batchAddFeeBalances(bytes32[] calldata batch) external onlyAuthorized { uint length = batch.length; require(length % 3 == 0, INVALID_SIZE); address token; address owner; uint value; uint start = 68; uint end = start + length * 32; for (uint p = start; p < end; p += 96) { assembly { token := calldataload(add(p, 0)) owner := calldataload(add(p, 32)) value := calldataload(add(p, 64)) } feeBalances[token][owner] = feeBalances[token][owner].add(value); } } function withdrawBurned(address token, uint value) external onlyAuthorized returns (bool) { return withdraw(token, address(this), msg.sender, value); } function withdrawToken(address token, uint value) external returns (bool) { return withdraw(token, msg.sender, msg.sender, value); } function withdraw(address token, address from, address to, uint value) internal returns (bool success) { require(feeBalances[token][from] >= value, INVALID_VALUE); feeBalances[token][from] = feeBalances[token][from].sub(value); // Token transfer needs to be done after the state changes to prevent a reentrancy attack success = token.safeTransfer(to, value); require(success, TRANSFER_FAILURE); emit TokenWithdrawn(from, token, value); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"feeBalances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"batch","type":"bytes32[]"}],"name":"batchAddFeeBalances","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"delegateAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"},{"name":"value","type":"uint256"}],"name":"withdrawBurned","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"},{"name":"value","type":"uint256"}],"name":"withdrawToken","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_delegateAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"owner","type":"address"},{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"TokenWithdrawn","type":"event"}]
Deployed Bytecode
0x60806040526004361061005a5760003560e01c80636d96a2aa116100435780636d96a2aa14610207578063787748a7146102455780639e281a981461029f5761005a565b80634566f48a1461012e5780634a874dd914610188575b6040518060400160405280600b81526020017f554e535550504f525445440000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156100f35781810151838201526020016100db565b50505050905090810190601f1680156101205780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b34801561013a57600080fd5b506101766004803603604081101561015157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166102e5565b60408051918252519081900360200190f35b34801561019457600080fd5b50610205600480360360208110156101ab57600080fd5b8101906020810181356401000000008111156101c657600080fd5b8201836020820111156101d857600080fd5b803590602001918460208302840111640100000000831117156101fa57600080fd5b5090925090506102ff565b005b34801561021357600080fd5b5061021c61058b565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561025157600080fd5b5061028b6004803603604081101561026857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356105a7565b604080519115158252519081900360200190f35b3480156102ab57600080fd5b5061028b600480360360408110156102c257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356106fb565b600060208181529281526040808220909352908152205481565b600154604080517fced3fb9c000000000000000000000000000000000000000000000000000000008152336004820152905173ffffffffffffffffffffffffffffffffffffffff90921691600091839163ced3fb9c91602480820192602092909190829003018186803b15801561037557600080fd5b505afa158015610389573d6000803e3d6000fd5b505050506040513d602081101561039f57600080fd5b505160408051808201909152600c81527f554e415554484f52495a4544000000000000000000000000000000000000000060208201529091508161043e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156100f35781810151838201526020016100db565b5060408051808201909152600c81527f494e56414c49445f53495a4500000000000000000000000000000000000000006020820152839060038206156104df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156100f35781810151838201526020016100db565b50600080806044602085028101815b8181101561057e57803573ffffffffffffffffffffffffffffffffffffffff818116600090815260208181526040808320828701359485168452909152908190205492985090965082013594506105459085610712565b73ffffffffffffffffffffffffffffffffffffffff808816600090815260208181526040808320938a16835292905220556060016104ee565b5050505050505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b600154604080517fced3fb9c000000000000000000000000000000000000000000000000000000008152336004820152905160009273ffffffffffffffffffffffffffffffffffffffff16918391839163ced3fb9c916024808301926020929190829003018186803b15801561061c57600080fd5b505afa158015610630573d6000803e3d6000fd5b505050506040513d602081101561064657600080fd5b505160408051808201909152600c81527f554e415554484f52495a454400000000000000000000000000000000000000006020820152909150816106e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156100f35781810151838201526020016100db565b506106f285303387610784565b95945050505050565b600061070983333385610784565b90505b92915050565b8181018281101561070c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f494e56414c49445f56414c554500000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8085166000908152602081815260408083209387168352928152828220548351808501909452600d84527f494e56414c49445f56414c55450000000000000000000000000000000000000091840191909152909190831115610856576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156100f35781810151838201526020016100db565b5073ffffffffffffffffffffffffffffffffffffffff80861660009081526020818152604080832093881683529290522054610898908363ffffffff6109df16565b73ffffffffffffffffffffffffffffffffffffffff808716600081815260208181526040808320948a16835293905291909120919091556108e090848463ffffffff610a5616565b9050806040518060400160405280601081526020017f5452414e534645525f4641494c555245000000000000000000000000000000008152509061097f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156100f35781810151838201526020016100db565b506040805173ffffffffffffffffffffffffffffffffffffffff80871682528716602082015280820184905290517f8210728e7c071f615b840ee026032693858fbcd5e5359e67e438c890f59e56209181900360600190a1949350505050565b600082821115610a5057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f494e56414c49445f56414c554500000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b6040805173ffffffffffffffffffffffffffffffffffffffff8085166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017815292518251600094928816928492918291908083835b60208310610b2a57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610aed565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610b8c576040519150601f19603f3d011682016040523d82523d6000602084013e610b91565b606091505b5050809250506106f28260008115610bd2573d8015610bbb5760208114610bc45760009250610bd0565b60019250610bd0565b60206000803e60005192505b505b509056fea165627a7a72305820127734695ccbeacfa2413cc7e49bc4c2a4ec9c88baed0dd14722d5230ebe3fa90029
Deployed Bytecode Sourcemap
16310:2174:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15545:11;;;;;;;;;;;;;;;;;15538:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;15538:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;966:63;;8:9:-1;5:2;;;30:1;27;20:12;5:2;966:63:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;966:63:0;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;16904:666;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16904:666:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16904:666:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;16904:666:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;16904:666:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;16904:666:0;;-1:-1:-1;16904:666:0;-1:-1:-1;16904:666:0;:::i;:::-;;16439:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16439:45:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17578:197;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17578:197:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17578:197:0;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;17783:169;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17783:169:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17783:169:0;;;;;;;;;:::i;966:63::-;;;;;;;;;;;;;;;;;;;;;;:::o;16904:666::-;16743:15;;16790:40;;;;;;16819:10;16790:40;;;;;;16743:15;;;;;16702:23;;16743:15;;16790:28;;:40;;;;;;;;;;;;;;;16743:15;16790:40;;;5:2:-1;;;;30:1;27;20:12;5:2;16790:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16790:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16790:40:0;16863:12;;;;;;;;;;;;;16790:40;16863:12;;;16790:40;;-1:-1:-1;16790:40:0;16841:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;16841:35:0;-1:-1:-1;17079:12:0;;;;;;;;;;;;;;;;;17031:5;;17071:1;17062:10;;:15;17054:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;17054:38:0;-1:-1:-1;17105:13:0;;;17187:2;17228;17219:11;;17211:19;;17187:2;17241:322;17266:3;17262:1;:7;17241:322;;;17332:24;;17515:18;;;;17353:1;17515:18;;;17403:2;17515:18;;;17454:2;17515:18;;;17396:10;;;17383:24;17515:25;;;;;;;;;;;;;17332:24;;-1:-1:-1;17383:24:0;;-1:-1:-1;17447:10:0;;17434:24;;-1:-1:-1;17515:36:0;;17434:24;17515:29;:36::i;:::-;17487:18;;;;:11;:18;;;;;;;;;;;:25;;;;;;;;;:64;17276:2;17271:7;17241:322;;;;16887:1;;;;;;16904:666;;;;:::o;16439:45::-;;;;;;:::o;17578:197::-;16743:15;;16790:40;;;;;;16819:10;16790:40;;;;;;17689:4;;16743:15;;;17689:4;;16743:15;;16790:28;;:40;;;;;;;;;;;;;;16743:15;16790:40;;;5:2:-1;;;;30:1;27;20:12;5:2;16790:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16790:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16790:40:0;16863:12;;;;;;;;;;;;;16790:40;16863:12;;;16790:40;;-1:-1:-1;16790:40:0;16841:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;16841:35:0;;17718:49;17727:5;17742:4;17749:10;17761:5;17718:8;:49::i;:::-;17711:56;17578:197;-1:-1:-1;;;;;17578:197:0:o;17783:169::-;17869:4;17898:46;17907:5;17914:10;17926;17938:5;17898:8;:46::i;:::-;17891:53;;17783:169;;;;;:::o;11903:192::-;12039:5;;;12063:6;;;;12055:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17960:519;18105:18;;;;18067:12;18105:18;;;;;;;;;;;:24;;;;;;;;;;;;18140:13;;;;;;;;;;;;;;;;;;;18067:12;;18140:13;18105:33;-1:-1:-1;18105:33:0;18097:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;18097:57:0;-1:-1:-1;18192:18:0;;;;:11;:18;;;;;;;;;;;:24;;;;;;;;;;:35;;18221:5;18192:35;:28;:35;:::i;:::-;18165:18;;;;:11;:18;;;;;;;;;;;:24;;;;;;;;;;;;:62;;;;18347:29;;18366:2;18370:5;18347:29;:18;:29;:::i;:::-;18337:39;;18395:7;18404:16;;;;;;;;;;;;;;;;;18387:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;18387:34:0;-1:-1:-1;18437:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17960:519;;;;;;:::o;11702:193::-;11810:4;11845:1;11840;:6;;11832:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11882:5:0;;;11702:193::o;8016:739::-;8556:103;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;8556:103:0;;;;;;;25:18:-1;;61:17;;8556:103:0;182:15:-1;8593:18:0;179:29:-1;160:49;;8684:20:0;;;;8144:12;;8684:10;;;;8556:103;;8684:20;;;25:18:-1;8684:20:0;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;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;;;8684:20: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;;8670:34:0;;;;;8722:25;8739:7;9682:4;10005:7;10001:666;;;10064:16;10219:61;;;;10397:2;10392:115;;;;10621:1;10610:12;;10057:584;;10219:61;10260:1;10249:12;;10219:61;;10392:115;10444:2;10441:1;10438;10423:24;10486:1;10480:8;10469:19;;10057:584;;10038:618;-1:-1:-1;10684:7:0;9572:1127::o
Swarm Source
bzzr://127734695ccbeacfa2413cc7e49bc4c2a4ec9c88baed0dd14722d5230ebe3fa9
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 29 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 62.20% | $2,652.71 | 0.2024 | $536.9 | |
ETH | 15.19% | $1 | 131.1494 | $131.15 | |
ETH | 14.44% | $0.99998 | 124.6702 | $124.67 | |
ETH | 2.65% | $0.127359 | 179.4537 | $22.86 | |
ETH | 2.46% | $0.335493 | 63.341 | $21.25 | |
ETH | 2.26% | $11.42 | 1.7097 | $19.52 | |
ETH | 0.53% | $0.464532 | 9.9392 | $4.62 | |
ETH | 0.25% | $0.001113 | 1,941.241 | $2.16 | |
ETH | 0.01% | $0.178648 | 0.7182 | $0.1282 |
Loading...
Loading
[ 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.