Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 15 from a total of 15 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer Ownersh... | 18377015 | 271 days ago | IN | 0 ETH | 0.00032016 | ||||
Update Route | 18368548 | 273 days ago | IN | 0 ETH | 0.00056052 | ||||
Update Route | 18368547 | 273 days ago | IN | 0 ETH | 0.00076371 | ||||
Register | 18368483 | 273 days ago | IN | 0 ETH | 0.00033678 | ||||
Register | 18368482 | 273 days ago | IN | 0 ETH | 0.00030777 | ||||
Register | 18368481 | 273 days ago | IN | 0 ETH | 0.00030031 | ||||
Register | 18368478 | 273 days ago | IN | 0 ETH | 0.00030047 | ||||
Register | 18368478 | 273 days ago | IN | 0 ETH | 0.00030047 | ||||
Register | 18368477 | 273 days ago | IN | 0 ETH | 0.0003024 | ||||
Register | 18368476 | 273 days ago | IN | 0 ETH | 0.00031054 | ||||
Register | 18368475 | 273 days ago | IN | 0 ETH | 0.00032382 | ||||
Register | 18368474 | 273 days ago | IN | 0 ETH | 0.00029473 | ||||
Register | 18368473 | 273 days ago | IN | 0 ETH | 0.00029387 | ||||
Register | 18368472 | 273 days ago | IN | 0 ETH | 0.00030445 | ||||
0x60806040 | 18368469 | 273 days ago | IN | Create: ConverterRegistry | 0 ETH | 0.00395696 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
ConverterRegistry
Compiler Version
v0.7.6+commit.7338295f
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.7.6; import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol"; import { IConverterRegistry } from "./IConverterRegistry.sol"; import { ITokenConverter } from "./ITokenConverter.sol"; contract ConverterRegistry is Ownable, IConverterRegistry { /************* * Variables * *************/ /// @dev Mapping from pool type to the address of converter. mapping(uint256 => address) private converters; /// @dev Mapping from tokenIn to tokenOut to routes. /// @dev See {ITokenConverter-convert} for the meaning. mapping(address => mapping(address => uint256[])) private routes; /************************* * Public View Functions * *************************/ /// @inheritdoc IConverterRegistry function getRoutes(address src, address dst) external view override returns (uint256[] memory) { return routes[src][dst]; } /// @inheritdoc IConverterRegistry function getTokenPair(uint256 _route) external view override returns (address, address) { uint256 _poolType = _route & 255; return ITokenConverter(converters[_poolType]).getTokenPair(_route); } /// @inheritdoc IConverterRegistry function getConverter(uint256 _poolType) external view override returns (address) { return converters[_poolType]; } /******************************* * Public Restricted Functions * *******************************/ /// @notice Register a converter or update the converter. /// /// @param _poolType The pool type to update. /// @param _newConverter The address of converter to update. function register(uint256 _poolType, address _newConverter) external onlyOwner { address _oldConverter = converters[_poolType]; converters[_poolType] = _newConverter; emit UpdateConverter(_poolType, _oldConverter, _newConverter); } /// @notice Update the routes for converting from source token to destination token. /// /// @param _src The address of source token. /// @param _dst The address of destination token. /// @param _routes The list of route encodings. function updateRoute( address _src, address _dst, uint256[] memory _routes ) external onlyOwner { delete routes[_src][_dst]; routes[_src][_dst] = _routes; emit UpdateRoute(_src, _dst, _routes); } /// @notice Withdraw dust assets from a converter contract. /// @param _converter The address of converter contract. /// @param _token The address of token to withdraw. /// @param _recipient The address of token receiver. function withdrawFund( address _converter, address _token, address _recipient ) external onlyOwner { ITokenConverter(_converter).withdrawFund(_token, _recipient); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.7.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with GSN meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.7.0 || ^0.8.0; interface IConverterRegistry { /********** * Events * **********/ /// @notice Emitted when the converter route is updated. /// @param src The address of source token. /// @param dst The address of destination token. /// @param routes The list of route encodings. event UpdateRoute(address indexed src, address indexed dst, uint256[] routes); /// @notice Emitted when the token converter is updated for some pool type. /// @param poolType The pool type updated. /// @param oldConverter The address of previous converter. /// @param newConverter The address of current converter. event UpdateConverter(uint256 indexed poolType, address indexed oldConverter, address indexed newConverter); /************************* * Public View Functions * *************************/ /// @notice Return the routes used to convert source token to destination token. /// @param src The address of source token. /// @param dst The address of destination token. /// @return routes The list of route encodings. function getRoutes(address src, address dst) external view returns (uint256[] memory routes); /// @notice Return the input token and output token for the route. /// @param route The encoding of the route. /// @return tokenIn The address of input token. /// @return tokenOut The address of output token. function getTokenPair(uint256 route) external view returns (address tokenIn, address tokenOut); /// @notice Return the address of converter for a specific pool type. /// @param poolType The type of converter. /// @return converter The address of converter. function getConverter(uint256 poolType) external view returns (address converter); }
// SPDX-License-Identifier: MIT pragma solidity ^0.7.0 || ^0.8.0; interface ITokenConverter { /************************* * Public View Functions * *************************/ /// @notice The address of Converter Registry. function registry() external view returns (address); /// @notice Return the input token and output token for the route. /// @param route The encoding of the route. /// @return tokenIn The address of input token. /// @return tokenOut The address of output token. function getTokenPair(uint256 route) external view returns (address tokenIn, address tokenOut); /// @notice Query the output token amount according to the encoding. /// /// @dev See the comments in `convert` for the meaning of encoding. /// /// @param encoding The encoding used to convert. /// @param amountIn The amount of input token. /// @param amountOut The amount of output token received. function queryConvert(uint256 encoding, uint256 amountIn) external returns (uint256 amountOut); /**************************** * Public Mutated Functions * ****************************/ /// @notice Convert input token to output token according to the encoding. /// Assuming that the input token is already in the contract. /// /// @dev encoding for single route /// | 8 bits | 2 bits | 246 bits | /// | pool_type | action | customized | /// /// + pool_type = 0: UniswapV2, only action = 0 /// customized = | 160 bits | 24 bits | 1 bit | 1 bit | ... | /// | pool address | fee_num | zero_for_one | twamm | ... | /// + pool_type = 1: UniswapV3, only action = 0 /// customized = | 160 bits | 24 bits | 1 bit | ... | /// | pool address | fee_num | zero_for_one | ... | /// + pool_type = 2: BalancerV1, only action = 0 /// customized = | 160 bits | 3 bits | 3 bits | 3 bits | ... | /// | pool address | tokens | index in | index out | ... | /// + pool_type = 3: BalancerV2, only action = 0 /// customized = | 160 bits | 3 bits | 3 bits | 3 bits | ... | /// | pool address | tokens | index in | index out | ... | /// + pool_type = 4: CurvePlainPool or CurveFactoryPlainPool /// customized = | 160 bits | 3 bits | 3 bits | 3 bits | 1 bit | ... | /// | pool address | tokens | index in | index out | use_eth | ... | /// + pool_type = 5: CurveAPool /// customized = | 160 bits | 3 bits | 3 bits | 3 bits | 1 bits | ... | /// | pool address | tokens | index in | index out | use_underlying | ... | /// + pool_type = 6: CurveYPool /// customized = | 160 bits | 3 bits | 3 bits | 3 bits | 1 bits | ... | /// | pool address | tokens | index in | index out | use_underlying | ... | /// + pool_type = 7: CurveMetaPool or CurveFactoryMetaPool /// customized = | 160 bits | 3 bits | 3 bits | 3 bits | ... | /// | pool address | tokens | index in | index out | ... | /// + pool_type = 8: CurveCryptoPool or CurveFactoryCryptoPool /// customized = | 160 bits | 3 bits | 3 bits | 3 bits | 1 bit | ... | /// | pool address | tokens | index in | index out | use_eth | ... | /// + pool_type = 9: ERC4626, no action 0 /// customized = | 160 bits | ... | /// | pool address | ... | /// + pool_type = 10: Lido, no action 0 /// customized = | 160 bits | ... | /// | pool address | ... | /// /// Note: tokens + 1 is the number of tokens of the pool /// /// + action = 0: swap /// + action = 1: add liquidity / wrap / stake /// + action = 2: remove liquidity / unwrap / unstake /// /// @param encoding The encoding used to convert. /// @param amountIn The amount of input token. /// @param recipient The address of token receiver. /// @return amountOut The amount of output token received. function convert( uint256 encoding, uint256 amountIn, address recipient ) external payable returns (uint256 amountOut); /// @notice Withdraw dust assets in this contract. /// @param token The address of token to withdraw. /// @param recipient The address of token receiver. function withdrawFund(address token, address recipient) external; }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"poolType","type":"uint256"},{"indexed":true,"internalType":"address","name":"oldConverter","type":"address"},{"indexed":true,"internalType":"address","name":"newConverter","type":"address"}],"name":"UpdateConverter","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"},{"indexed":true,"internalType":"address","name":"dst","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"routes","type":"uint256[]"}],"name":"UpdateRoute","type":"event"},{"inputs":[{"internalType":"uint256","name":"_poolType","type":"uint256"}],"name":"getConverter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"address","name":"dst","type":"address"}],"name":"getRoutes","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_route","type":"uint256"}],"name":"getTokenPair","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_poolType","type":"uint256"},{"internalType":"address","name":"_newConverter","type":"address"}],"name":"register","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_src","type":"address"},{"internalType":"address","name":"_dst","type":"address"},{"internalType":"uint256[]","name":"_routes","type":"uint256[]"}],"name":"updateRoute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_converter","type":"address"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_recipient","type":"address"}],"name":"withdrawFund","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50600061001b61006a565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061006e565b3390565b6109d48061007d6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80637c21ce14116100665780637c21ce14146101cf5780638da5cb5b1461021b578063d85c32c714610223578063dbbdf083146102a1578063f2fde38b146102cd57610093565b8063081daa16146100985780631f18c2b7146100d25780635120990b1461018e578063715018a6146101c7575b600080fd5b6100d0600480360360608110156100ae57600080fd5b506001600160a01b0381358116916020810135821691604090910135166102f3565b005b6100d0600480360360608110156100e857600080fd5b6001600160a01b03823581169260208101359091169181019060608101604082013564010000000081111561011c57600080fd5b82018360208201111561012e57600080fd5b8035906020019184602083028401116401000000008311171561015057600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506103d2945050505050565b6101ab600480360360208110156101a457600080fd5b5035610528565b604080516001600160a01b039092168252519081900360200190f35b6100d0610543565b6101ec600480360360208110156101e557600080fd5b50356105ef565b60405180836001600160a01b03168152602001826001600160a01b031681526020019250505060405180910390f35b6101ab610689565b6102516004803603604081101561023957600080fd5b506001600160a01b0381358116916020013516610698565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561028d578181015183820152602001610275565b505050509050019250505060405180910390f35b6100d0600480360360408110156102b757600080fd5b50803590602001356001600160a01b0316610711565b6100d0600480360360208110156102e357600080fd5b50356001600160a01b03166107d1565b6102fb6108d3565b6001600160a01b031661030c610689565b6001600160a01b031614610355576040805162461bcd60e51b8152602060048201819052602482015260008051602061097f833981519152604482015290519081900360640190fd5b826001600160a01b03166322fdad5f83836040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b0316815260200192505050600060405180830381600087803b1580156103b557600080fd5b505af11580156103c9573d6000803e3d6000fd5b50505050505050565b6103da6108d3565b6001600160a01b03166103eb610689565b6001600160a01b031614610434576040805162461bcd60e51b8152602060048201819052602482015260008051602061097f833981519152604482015290519081900360640190fd5b6001600160a01b0380841660009081526002602090815260408083209386168352929052908120610464916108d7565b6001600160a01b03808416600090815260026020908152604080832093861683529281529190208251610499928401906108f8565b50816001600160a01b0316836001600160a01b03167ff1b15dd4e74b39a6d58e1d569b362084a1d682e285d7115892dad27b41a048ec836040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105105781810151838201526020016104f8565b505050509050019250505060405180910390a3505050565b6000908152600160205260409020546001600160a01b031690565b61054b6108d3565b6001600160a01b031661055c610689565b6001600160a01b0316146105a5576040805162461bcd60e51b8152602060048201819052602482015260008051602061097f833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60ff8116600081815260016020526040808220548151631f08738560e21b81526004810186905282519394859490936001600160a01b0390931692637c21ce149260248082019391829003018186803b15801561064b57600080fd5b505afa15801561065f573d6000803e3d6000fd5b505050506040513d604081101561067557600080fd5b508051602090910151909350915050915091565b6000546001600160a01b031690565b6001600160a01b03808316600090815260026020908152604080832093851683529281529082902080548351818402810184019094528084526060939283018282801561070457602002820191906000526020600020905b8154815260200190600101908083116106f0575b5050505050905092915050565b6107196108d3565b6001600160a01b031661072a610689565b6001600160a01b031614610773576040805162461bcd60e51b8152602060048201819052602482015260008051602061097f833981519152604482015290519081900360640190fd5b60008281526001602052604080822080546001600160a01b031981166001600160a01b038681169182179093559251911692839186917ffbcfae5c693a82269bdf7527ecece507bfb3af915957ed3cbb58f862871c6c3091a4505050565b6107d96108d3565b6001600160a01b03166107ea610689565b6001600160a01b031614610833576040805162461bcd60e51b8152602060048201819052602482015260008051602061097f833981519152604482015290519081900360640190fd5b6001600160a01b0381166108785760405162461bcd60e51b81526004018080602001828103825260268152602001806109596026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b50805460008255906000526020600020908101906108f59190610943565b50565b828054828255906000526020600020908101928215610933579160200282015b82811115610933578251825591602001919060010190610918565b5061093f929150610943565b5090565b5b8082111561093f576000815560010161094456fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a264697066735822122052e5030b8a2eec919be56fa30e15b59b0e7f655f07d610119299972d2461709264736f6c63430007060033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100935760003560e01c80637c21ce14116100665780637c21ce14146101cf5780638da5cb5b1461021b578063d85c32c714610223578063dbbdf083146102a1578063f2fde38b146102cd57610093565b8063081daa16146100985780631f18c2b7146100d25780635120990b1461018e578063715018a6146101c7575b600080fd5b6100d0600480360360608110156100ae57600080fd5b506001600160a01b0381358116916020810135821691604090910135166102f3565b005b6100d0600480360360608110156100e857600080fd5b6001600160a01b03823581169260208101359091169181019060608101604082013564010000000081111561011c57600080fd5b82018360208201111561012e57600080fd5b8035906020019184602083028401116401000000008311171561015057600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506103d2945050505050565b6101ab600480360360208110156101a457600080fd5b5035610528565b604080516001600160a01b039092168252519081900360200190f35b6100d0610543565b6101ec600480360360208110156101e557600080fd5b50356105ef565b60405180836001600160a01b03168152602001826001600160a01b031681526020019250505060405180910390f35b6101ab610689565b6102516004803603604081101561023957600080fd5b506001600160a01b0381358116916020013516610698565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561028d578181015183820152602001610275565b505050509050019250505060405180910390f35b6100d0600480360360408110156102b757600080fd5b50803590602001356001600160a01b0316610711565b6100d0600480360360208110156102e357600080fd5b50356001600160a01b03166107d1565b6102fb6108d3565b6001600160a01b031661030c610689565b6001600160a01b031614610355576040805162461bcd60e51b8152602060048201819052602482015260008051602061097f833981519152604482015290519081900360640190fd5b826001600160a01b03166322fdad5f83836040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b0316815260200192505050600060405180830381600087803b1580156103b557600080fd5b505af11580156103c9573d6000803e3d6000fd5b50505050505050565b6103da6108d3565b6001600160a01b03166103eb610689565b6001600160a01b031614610434576040805162461bcd60e51b8152602060048201819052602482015260008051602061097f833981519152604482015290519081900360640190fd5b6001600160a01b0380841660009081526002602090815260408083209386168352929052908120610464916108d7565b6001600160a01b03808416600090815260026020908152604080832093861683529281529190208251610499928401906108f8565b50816001600160a01b0316836001600160a01b03167ff1b15dd4e74b39a6d58e1d569b362084a1d682e285d7115892dad27b41a048ec836040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105105781810151838201526020016104f8565b505050509050019250505060405180910390a3505050565b6000908152600160205260409020546001600160a01b031690565b61054b6108d3565b6001600160a01b031661055c610689565b6001600160a01b0316146105a5576040805162461bcd60e51b8152602060048201819052602482015260008051602061097f833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60ff8116600081815260016020526040808220548151631f08738560e21b81526004810186905282519394859490936001600160a01b0390931692637c21ce149260248082019391829003018186803b15801561064b57600080fd5b505afa15801561065f573d6000803e3d6000fd5b505050506040513d604081101561067557600080fd5b508051602090910151909350915050915091565b6000546001600160a01b031690565b6001600160a01b03808316600090815260026020908152604080832093851683529281529082902080548351818402810184019094528084526060939283018282801561070457602002820191906000526020600020905b8154815260200190600101908083116106f0575b5050505050905092915050565b6107196108d3565b6001600160a01b031661072a610689565b6001600160a01b031614610773576040805162461bcd60e51b8152602060048201819052602482015260008051602061097f833981519152604482015290519081900360640190fd5b60008281526001602052604080822080546001600160a01b031981166001600160a01b038681169182179093559251911692839186917ffbcfae5c693a82269bdf7527ecece507bfb3af915957ed3cbb58f862871c6c3091a4505050565b6107d96108d3565b6001600160a01b03166107ea610689565b6001600160a01b031614610833576040805162461bcd60e51b8152602060048201819052602482015260008051602061097f833981519152604482015290519081900360640190fd5b6001600160a01b0381166108785760405162461bcd60e51b81526004018080602001828103825260268152602001806109596026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b50805460008255906000526020600020908101906108f59190610943565b50565b828054828255906000526020600020908101928215610933579160200282015b82811115610933578251825591602001919060010190610918565b5061093f929150610943565b5090565b5b8082111561093f576000815560010161094456fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a264697066735822122052e5030b8a2eec919be56fa30e15b59b0e7f655f07d610119299972d2461709264736f6c63430007060033
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.