Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
Latest 25 from a total of 146,564 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer ERC20 | 20352602 | 46 mins ago | IN | 0 ETH | 0.0002049 | ||||
Transfer ERC20 | 20352528 | 1 hr ago | IN | 0 ETH | 0.00021041 | ||||
Transfer ERC20 | 20352473 | 1 hr ago | IN | 0 ETH | 0.00021248 | ||||
Transfer ERC20 | 20352428 | 1 hr ago | IN | 0 ETH | 0.00021607 | ||||
Transfer ERC20 | 20352342 | 1 hr ago | IN | 0 ETH | 0.00020259 | ||||
Transfer ERC20 | 20352309 | 1 hr ago | IN | 0 ETH | 0.00021784 | ||||
Transfer ERC20 | 20352037 | 2 hrs ago | IN | 0 ETH | 0.00021501 | ||||
Transfer ERC20 | 20351779 | 3 hrs ago | IN | 0 ETH | 0.00018086 | ||||
Transfer ERC20 | 20351029 | 6 hrs ago | IN | 0 ETH | 0.00021368 | ||||
Transfer ERC20 | 20351028 | 6 hrs ago | IN | 0 ETH | 0.00021522 | ||||
Transfer ERC20 | 20351026 | 6 hrs ago | IN | 0 ETH | 0.00020828 | ||||
Transfer ERC20 | 20350866 | 6 hrs ago | IN | 0 ETH | 0.00018507 | ||||
Transfer ERC20 | 20350838 | 6 hrs ago | IN | 0 ETH | 0.00026102 | ||||
Transfer ERC20 | 20350792 | 6 hrs ago | IN | 0 ETH | 0.00025977 | ||||
Transfer ERC20 | 20350730 | 7 hrs ago | IN | 0 ETH | 0.00024055 | ||||
Transfer ERC20 | 20350595 | 7 hrs ago | IN | 0 ETH | 0.00024123 | ||||
Transfer ERC20 | 20350328 | 8 hrs ago | IN | 0 ETH | 0.00024445 | ||||
Transfer ERC20 | 20350224 | 8 hrs ago | IN | 0 ETH | 0.0002413 | ||||
Transfer ERC20 | 20350201 | 8 hrs ago | IN | 0 ETH | 0.00020182 | ||||
Transfer ERC20 | 20350201 | 8 hrs ago | IN | 0 ETH | 0.00024272 | ||||
Transfer ERC20 | 20349793 | 10 hrs ago | IN | 0 ETH | 0.00023039 | ||||
Transfer ERC20 | 20349632 | 10 hrs ago | IN | 0 ETH | 0.00026968 | ||||
Transfer ERC20 | 20349404 | 11 hrs ago | IN | 0 ETH | 0.00033537 | ||||
Transfer ERC20 | 20349404 | 11 hrs ago | IN | 0 ETH | 0.00033538 | ||||
Transfer ERC20 | 20349404 | 11 hrs ago | IN | 0 ETH | 0.00033538 |
Advanced mode: Intended for advanced users or developers and will display all Internal Transactions including zero value transfers. Name tag integration is not available in advanced view.
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | ||||
---|---|---|---|---|---|---|---|
20336950 | 2 days ago | 0 ETH | |||||
20336950 | 2 days ago | 0 ETH | |||||
20336950 | 2 days ago | 0 ETH | |||||
20336816 | 2 days ago | 0 ETH | |||||
20336816 | 2 days ago | 0 ETH | |||||
20336816 | 2 days ago | 0 ETH | |||||
20336327 | 2 days ago | 0 ETH | |||||
20336249 | 2 days ago | 0 ETH | |||||
20336249 | 2 days ago | 0 ETH | |||||
20336249 | 2 days ago | 0 ETH | |||||
20336145 | 2 days ago | 0 ETH | |||||
20336145 | 2 days ago | 0 ETH | |||||
20336145 | 2 days ago | 0 ETH | |||||
20336071 | 2 days ago | 0 ETH | |||||
20335981 | 2 days ago | 0 ETH | |||||
20335885 | 2 days ago | 0 ETH | |||||
20335885 | 2 days ago | 0 ETH | |||||
20335885 | 2 days ago | 0 ETH | |||||
20335424 | 2 days ago | 0 ETH | |||||
20335424 | 2 days ago | 0 ETH | |||||
20335424 | 2 days ago | 0 ETH | |||||
20335304 | 2 days ago | 0 ETH | |||||
20335304 | 2 days ago | 0 ETH | |||||
20335304 | 2 days ago | 0 ETH | |||||
20335304 | 2 days ago | 0 ETH |
Loading...
Loading
Contract Name:
TransferRegistry
Compiler Version
v0.6.11+commit.5ef660b1
Contract Source Code (Solidity Multiple files format)
/* Copyright 2019,2020 StarkWare Industries Ltd. 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 https://www.starkware.co/open-source-license/ 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. */ // SPDX-License-Identifier: Apache-2.0. pragma solidity ^0.6.11; import "FactRegistry.sol"; import "Identity.sol"; import "Common.sol"; import "IERC20.sol"; contract TransferRegistry is FactRegistry, Identity { event LogRegisteredTransfer( address recipient, address token, uint256 amount, uint256 salt ); using Addresses for address; function identify() external pure virtual override returns(string memory) { return "StarkWare_TransferRegistry_2020_1"; } /* The actual transfer is extracted to a function, so that we can easily mock the contract. */ function performEthTransfer(address recipient, uint256 value) internal virtual { recipient.performEthTransfer(value); } /* The actual transfer is extracted to a function, so that we can easily mock the contract. */ function performErc20Transfer(address recipient, address erc20, uint256 amount) internal virtual { erc20.safeTokenContractCall( abi.encodeWithSelector(IERC20(0).transferFrom.selector, msg.sender, recipient, amount) ); } /* Passes on the transaction ETH value onto the recipient address, and register the associated fact. Reverts if the fact has already been registered. */ function transfer(address recipient, uint256 salt) // NOLINT: erc20-interface. external payable { bytes32 transferFact = keccak256( abi.encodePacked(recipient, msg.value, address(0x0), salt)); require(!_factCheck(transferFact), "TRANSFER_ALREADY_REGISTERED"); registerFact(transferFact); emit LogRegisteredTransfer(recipient, address(0x0), msg.value, salt); performEthTransfer(recipient, msg.value); } /* Transfer the specified amount of erc20 tokens from msg.sender balance to the recipient's balance. Pre-conditions to successful transfer are that the msg.sender has sufficient balance, and the the approval (for the transfer) was granted to this contract. A fact with the transfer details is registered upon success. Reverts if the fact has already been registered. */ function transferERC20(address recipient, address erc20, uint256 amount, uint256 salt) external { bytes32 transferFact = keccak256( abi.encodePacked(recipient, amount, erc20, salt)); require(!_factCheck(transferFact), "TRANSFER_ALREADY_REGISTERED"); registerFact(transferFact); emit LogRegisteredTransfer(recipient, erc20, amount, salt); performErc20Transfer(recipient, erc20, amount); } }
/* Copyright 2019,2020 StarkWare Industries Ltd. 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 https://www.starkware.co/open-source-license/ 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. */ // SPDX-License-Identifier: Apache-2.0. pragma solidity ^0.6.11; /* Common Utility librarries. I. Addresses (extending address). */ library Addresses { function isContract(address account) internal view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } function performEthTransfer(address recipient, uint256 amount) internal { (bool success, ) = recipient.call{value: amount}(""); // NOLINT: low-level-calls. require(success, "ETH_TRANSFER_FAILED"); } /* Safe wrapper around ERC20/ERC721 calls. This is required because many deployed ERC20 contracts don't return a value. See https://github.com/ethereum/solidity/issues/4116. */ function safeTokenContractCall(address tokenAddress, bytes memory callData) internal { require(isContract(tokenAddress), "BAD_TOKEN_ADDRESS"); // NOLINTNEXTLINE: low-level-calls. (bool success, bytes memory returndata) = tokenAddress.call(callData); require(success, string(returndata)); if (returndata.length > 0) { require(abi.decode(returndata, (bool)), "TOKEN_OPERATION_FAILED"); } } /* Similar to safeTokenContractCall, but always ignores the return value. Assumes some other method is used to detect the failures (e.g. balance is checked before and after the call). */ function uncheckedTokenContractCall(address tokenAddress, bytes memory callData) internal { // NOLINTNEXTLINE: low-level-calls. (bool success, bytes memory returndata) = tokenAddress.call(callData); require(success, string(returndata)); } } library UintArray { function hashSubArray(uint256[] memory array, uint256 subArrayStart, uint256 subArraySize) internal pure returns(bytes32 subArrayHash) { require(array.length >= subArrayStart + subArraySize, "ILLEGAL_SUBARRAY_DIMENSIONS"); uint256 startOffsetBytes = 0x20 * (1 + subArrayStart); uint256 dataSizeBytes = 0x20 * subArraySize; assembly { subArrayHash := keccak256(add(array, startOffsetBytes), dataSizeBytes) } } /* Returns the address of a cell in offset within a uint256[] array. This allows assigning new variable of dynamic unit256[] pointing to a sub_array with a layout of serialied uint256[] (i.e. length+content). */ function extractSerializedUintArray(uint256[] memory programOutput, uint256 offset) internal pure returns (uint256[] memory addr) { uint256 memOffset = 0x20 * (offset + 1); assembly { addr := add(programOutput, memOffset) } } } /* II. StarkExTypes - Common data types. */ library StarkExTypes { // Structure representing a list of verifiers (validity/availability). // A statement is valid only if all the verifiers in the list agree on it. // Adding a verifier to the list is immediate - this is used for fast resolution of // any soundness issues. // Removing from the list is time-locked, to ensure that any user of the system // not content with the announced removal has ample time to leave the system before it is // removed. struct ApprovalChainData { address[] list; // Represents the time after which the verifier with the given address can be removed. // Removal of the verifier with address A is allowed only in the case the value // of unlockedForRemovalTime[A] != 0 and unlockedForRemovalTime[A] < (current time). mapping (address => uint256) unlockedForRemovalTime; } }
/* Copyright 2019,2020 StarkWare Industries Ltd. 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 https://www.starkware.co/open-source-license/ 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. */ // SPDX-License-Identifier: Apache-2.0. pragma solidity ^0.6.11; import "IQueryableFactRegistry.sol"; contract FactRegistry is IQueryableFactRegistry { // Mapping: fact hash -> true. mapping (bytes32 => bool) private verifiedFact; // Indicates whether the Fact Registry has at least one fact registered. bool anyFactRegistered; /* Checks if a fact has been verified. */ function isValid(bytes32 fact) external view override returns(bool) { return _factCheck(fact); } /* This is an internal method to check if the fact is already registered. In current implementation of FactRegistry it's identical to isValid(). But the check is against the local fact registry, So for a derived referral fact registry, it's not the same. */ function _factCheck(bytes32 fact) internal view returns(bool) { return verifiedFact[fact]; } function registerFact( bytes32 factHash ) internal { // This function stores the fact hash in the mapping. verifiedFact[factHash] = true; // Mark first time off. if (!anyFactRegistered) { anyFactRegistered = true; } } /* Indicates whether at least one fact was registered. */ function hasRegisteredFact() external view override returns(bool) { return anyFactRegistered; } }
/* Copyright 2019,2020 StarkWare Industries Ltd. 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 https://www.starkware.co/open-source-license/ 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. */ // SPDX-License-Identifier: Apache-2.0. pragma solidity ^0.6.11; interface Identity { /* Allows a caller, typically another contract, to ensure that the provided address is of the expected type and version. */ function identify() external pure returns(string memory); }
/* Copyright 2019,2020 StarkWare Industries Ltd. 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 https://www.starkware.co/open-source-license/ 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. */ // SPDX-License-Identifier: Apache-2.0. pragma solidity ^0.6.11; /* Interface of the ERC20 standard as defined in the EIP. Does not include the optional functions; to access them see {ERC20Detailed}. */ 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); }
/* Copyright 2019,2020 StarkWare Industries Ltd. 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 https://www.starkware.co/open-source-license/ 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. */ // SPDX-License-Identifier: Apache-2.0. pragma solidity ^0.6.11; /* The Fact Registry design pattern is a way to separate cryptographic verification from the business logic of the contract flow. A fact registry holds a hash table of verified "facts" which are represented by a hash of claims that the registry hash check and found valid. This table may be queried by accessing the isValid() function of the registry with a given hash. In addition, each fact registry exposes a registry specific function for submitting new claims together with their proofs. The information submitted varies from one registry to the other depending of the type of fact requiring verification. For further reading on the Fact Registry design pattern see this `StarkWare blog post <https://medium.com/starkware/the-fact-registry-a64aafb598b6>`_. */ interface IFactRegistry { /* Returns true if the given fact was previously registered in the contract. */ function isValid(bytes32 fact) external view returns(bool); }
/* Copyright 2019,2020 StarkWare Industries Ltd. 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 https://www.starkware.co/open-source-license/ 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. */ // SPDX-License-Identifier: Apache-2.0. pragma solidity ^0.6.11; import "IFactRegistry.sol"; /* Extends the IFactRegistry interface with a query method that indicates whether the fact registry has successfully registered any fact or is still empty of such facts. */ interface IQueryableFactRegistry is IFactRegistry { /* Returns true if at least one fact has been registered. */ function hasRegisteredFact() external view returns(bool); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"salt","type":"uint256"}],"name":"LogRegisteredTransfer","type":"event"},{"inputs":[],"name":"hasRegisteredFact","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"identify","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"fact","type":"bytes32"}],"name":"isValid","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"salt","type":"uint256"}],"name":"transfer","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"erc20","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"salt","type":"uint256"}],"name":"transferERC20","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b506107a9806100206000396000f3fe60806040526004361061004a5760003560e01c806355a2ba681461004f5780636a9385671461009a578063a9059cbb146100d8578063d6354e1514610104578063eeb7286614610119575b600080fd5b34801561005b57600080fd5b506100986004803603608081101561007257600080fd5b506001600160a01b038135811691602081013590911690604081013590606001356101a3565b005b3480156100a657600080fd5b506100c4600480360360208110156100bd57600080fd5b50356102b6565b604080519115158252519081900360200190f35b610098600480360360408110156100ee57600080fd5b506001600160a01b0381351690602001356102c7565b34801561011057600080fd5b506100c46103cf565b34801561012557600080fd5b5061012e6103d8565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610168578181015183820152602001610150565b50505050905090810190601f1680156101955780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60408051606086811b6001600160601b0319908116602080850191909152603484018790529187901b166054830152606880830185905283518084039091018152608890920190925280519101206101fa816103f8565b1561024a576040805162461bcd60e51b815260206004820152601b60248201527a1514905394d1915497d053149150511657d49151d254d511549151602a1b604482015290519081900360640190fd5b6102538161040d565b604080516001600160a01b038088168252861660208201528082018590526060810184905290517f36c96ccc320eab9b6da1de6cc1e8ebc52a51cb114710b9c7db204cdad3067ce19181900360800190a16102af858585610441565b5050505050565b60006102c1826103f8565b92915050565b604080516001600160601b0319606085901b166020808301919091523460348301526000605483015260688083018590528351808403909101815260889092019092528051910120610318816103f8565b15610368576040805162461bcd60e51b815260206004820152601b60248201527a1514905394d1915497d053149150511657d49151d254d511549151602a1b604482015290519081900360640190fd5b6103718161040d565b604080516001600160a01b03851681526000602082015234818301526060810184905290517f36c96ccc320eab9b6da1de6cc1e8ebc52a51cb114710b9c7db204cdad3067ce19181900360800190a16103ca83346104a1565b505050565b60015460ff1690565b606060405180606001604052806021815260200161075360219139905090565b60009081526020819052604090205460ff1690565b6000818152602081905260409020805460ff191660019081179091555460ff1661043e576001805460ff1916811790555b50565b604080513360248201526001600160a01b03808616604483015260648083018590528351808403909101815260849092019092526020810180516001600160e01b03166323b872dd60e01b1790526103ca9184169063ffffffff6104be16565b6104ba6001600160a01b0383168263ffffffff6106b016565b5050565b6104c78261074c565b61050c576040805162461bcd60e51b81526020600482015260116024820152704241445f544f4b454e5f4144445245535360781b604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b6020831061054a5780518252601f19909201916020918201910161052b565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146105ac576040519150601f19603f3d011682016040523d82523d6000602084013e6105b1565b606091505b50915091508181906106415760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106065781810151838201526020016105ee565b50505050905090810190601f1680156106335780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508051156106aa5780806020019051602081101561065e57600080fd5b50516106aa576040805162461bcd60e51b81526020600482015260166024820152751513d2d15397d3d4115490551253d397d1905253115160521b604482015290519081900360640190fd5b50505050565b6040516000906001600160a01b0384169083908381818185875af1925050503d80600081146106fb576040519150601f19603f3d011682016040523d82523d6000602084013e610700565b606091505b50509050806103ca576040805162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b604482015290519081900360640190fd5b3b15159056fe537461726b576172655f5472616e7366657252656769737472795f323032305f31a2646970667358221220f9282f536fe52808700561e430abbe3e9aac313c10706077cde13b35400fe79764736f6c634300060b0033
Deployed Bytecode
0x60806040526004361061004a5760003560e01c806355a2ba681461004f5780636a9385671461009a578063a9059cbb146100d8578063d6354e1514610104578063eeb7286614610119575b600080fd5b34801561005b57600080fd5b506100986004803603608081101561007257600080fd5b506001600160a01b038135811691602081013590911690604081013590606001356101a3565b005b3480156100a657600080fd5b506100c4600480360360208110156100bd57600080fd5b50356102b6565b604080519115158252519081900360200190f35b610098600480360360408110156100ee57600080fd5b506001600160a01b0381351690602001356102c7565b34801561011057600080fd5b506100c46103cf565b34801561012557600080fd5b5061012e6103d8565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610168578181015183820152602001610150565b50505050905090810190601f1680156101955780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60408051606086811b6001600160601b0319908116602080850191909152603484018790529187901b166054830152606880830185905283518084039091018152608890920190925280519101206101fa816103f8565b1561024a576040805162461bcd60e51b815260206004820152601b60248201527a1514905394d1915497d053149150511657d49151d254d511549151602a1b604482015290519081900360640190fd5b6102538161040d565b604080516001600160a01b038088168252861660208201528082018590526060810184905290517f36c96ccc320eab9b6da1de6cc1e8ebc52a51cb114710b9c7db204cdad3067ce19181900360800190a16102af858585610441565b5050505050565b60006102c1826103f8565b92915050565b604080516001600160601b0319606085901b166020808301919091523460348301526000605483015260688083018590528351808403909101815260889092019092528051910120610318816103f8565b15610368576040805162461bcd60e51b815260206004820152601b60248201527a1514905394d1915497d053149150511657d49151d254d511549151602a1b604482015290519081900360640190fd5b6103718161040d565b604080516001600160a01b03851681526000602082015234818301526060810184905290517f36c96ccc320eab9b6da1de6cc1e8ebc52a51cb114710b9c7db204cdad3067ce19181900360800190a16103ca83346104a1565b505050565b60015460ff1690565b606060405180606001604052806021815260200161075360219139905090565b60009081526020819052604090205460ff1690565b6000818152602081905260409020805460ff191660019081179091555460ff1661043e576001805460ff1916811790555b50565b604080513360248201526001600160a01b03808616604483015260648083018590528351808403909101815260849092019092526020810180516001600160e01b03166323b872dd60e01b1790526103ca9184169063ffffffff6104be16565b6104ba6001600160a01b0383168263ffffffff6106b016565b5050565b6104c78261074c565b61050c576040805162461bcd60e51b81526020600482015260116024820152704241445f544f4b454e5f4144445245535360781b604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b6020831061054a5780518252601f19909201916020918201910161052b565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146105ac576040519150601f19603f3d011682016040523d82523d6000602084013e6105b1565b606091505b50915091508181906106415760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106065781810151838201526020016105ee565b50505050905090810190601f1680156106335780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508051156106aa5780806020019051602081101561065e57600080fd5b50516106aa576040805162461bcd60e51b81526020600482015260166024820152751513d2d15397d3d4115490551253d397d1905253115160521b604482015290519081900360640190fd5b50505050565b6040516000906001600160a01b0384169083908381818185875af1925050503d80600081146106fb576040519150601f19603f3d011682016040523d82523d6000602084013e610700565b606091505b50509050806103ca576040805162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b604482015290519081900360640190fd5b3b15159056fe537461726b576172655f5472616e7366657252656769737472795f323032305f31a2646970667358221220f9282f536fe52808700561e430abbe3e9aac313c10706077cde13b35400fe79764736f6c634300060b0033
Deployed Bytecode Sourcemap
755:2558:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2859:451;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2859:451:6;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1004:128:1;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1004:128:1;;:::i;:::-;;;;;;;;;;;;;;;;;;1966:473:6;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1966:473:6;;;;;;;;:::i;1939:127:1:-;;;;;;;;;;;;;:::i;984:153:6:-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2859:451;3019:48;;;;;;;-1:-1:-1;;;;;;3019:48:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2996:72;;;;;3087:24;2996:72;3087:10;:24::i;:::-;3086:25;3078:65;;;;;-1:-1:-1;;;3078:65:6;;;;;;;;;;;;-1:-1:-1;;;3078:65:6;;;;;;;;;;;;;;;3153:26;3166:12;3153;:26::i;:::-;3194:53;;;-1:-1:-1;;;;;3194:53:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3257:46;3278:9;3289:5;3296:6;3257:20;:46::i;:::-;2859:451;;;;;:::o;1004:128:1:-;1082:4;1109:16;1120:4;1109:10;:16::i;:::-;1102:23;1004:128;-1:-1:-1;;1004:128:1:o;1966:473:6:-;2134:58;;;-1:-1:-1;;;;;;2134:58:6;;;;;;;;;;;;;2162:9;2134:58;;;;2088:20;2134:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;2111:82;;;;;2212:24;2111:82;2212:10;:24::i;:::-;2211:25;2203:65;;;;;-1:-1:-1;;;2203:65:6;;;;;;;;;;;;-1:-1:-1;;;2203:65:6;;;;;;;;;;;;;;;2278:26;2291:12;2278;:26::i;:::-;2319:63;;;-1:-1:-1;;;;;2319:63:6;;;;2360:3;2319:63;;;;2366:9;2319:63;;;;;;;;;;;;;;;;;;;;;2392:40;2411:9;2422;2392:18;:40::i;:::-;1966:473;;;:::o;1939:127:1:-;2042:17;;;;1939:127;:::o;984:153:6:-;1059:13;1088:42;;;;;;;;;;;;;;;;;;;984:153;:::o;1429:124:1:-;1501:4;1528:18;;;;;;;;;;;;;;1429:124::o;1559:302::-;1710:12;:22;;;;;;;;;;:29;;-1:-1:-1;;1710:29:1;1735:4;1710:29;;;;;;1787:17;1710:29;1787:17;1782:73;;1840:4;1820:24;;-1:-1:-1;;1820:24:1;;;;;1782:73;1559:302;:::o;1514:267:6:-;1678:86;;;1734:10;1678:86;;;;-1:-1:-1;;;;;1678:86:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1678:86:6;-1:-1:-1;;;1678:86:6;;;1637:137;;:27;;;:137;:27;:137;:::i;1252:147::-;1357:35;-1:-1:-1;;;;;1357:28:6;;1386:5;1357:35;:28;:35;:::i;:::-;1252:147;;:::o;1380:452:0:-;1483:24;1494:12;1483:10;:24::i;:::-;1475:54;;;;;-1:-1:-1;;;1475:54:0;;;;;;;;;;;;-1:-1:-1;;;1475:54:0;;;;;;;;;;;;;;;1584:12;1598:23;1625:12;-1:-1:-1;;;;;1625:17:0;1643:8;1625:27;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1625:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1583:69;;;;1670:7;1686:10;1662:36;;;;;-1:-1:-1;;;1662:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1713:17:0;;:21;1709:117;;1769:10;1758:30;;;;;;;;;;;;;;;-1:-1:-1;1758:30:0;1750:65;;;;;-1:-1:-1;;;1750:65:0;;;;;;;;;;;;-1:-1:-1;;;1750:65:0;;;;;;;;;;;;;;;1380:452;;;;:::o;953:218::-;1054:33;;1036:12;;-1:-1:-1;;;;;1054:14:0;;;1076:6;;1036:12;1054:33;1036:12;1054:33;1076:6;1054:14;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1035:52;;;1133:7;1125:39;;;;;-1:-1:-1;;;1125:39:0;;;;;;;;;;;;-1:-1:-1;;;1125:39:0;;;;;;;;;;;;;;757:190;886:20;932:8;;;757:190::o
Swarm Source
ipfs://f9282f536fe52808700561e430abbe3e9aac313c10706077cde13b35400fe797
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.