Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 3,189 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Migrate | 20070732 | 197 days ago | IN | 0 ETH | 0.00105746 | ||||
Migrate | 20070729 | 197 days ago | IN | 0 ETH | 0.00106156 | ||||
Migrate | 20070725 | 197 days ago | IN | 0 ETH | 0.00132772 | ||||
Migrate | 20070675 | 197 days ago | IN | 0 ETH | 0.00100238 | ||||
Migrate | 20070670 | 197 days ago | IN | 0 ETH | 0.00124161 | ||||
Migrate | 20070646 | 197 days ago | IN | 0 ETH | 0.00100267 | ||||
Migrate | 20070644 | 197 days ago | IN | 0 ETH | 0.00115593 | ||||
Migrate | 20042425 | 201 days ago | IN | 0 ETH | 0.0013043 | ||||
Migrate | 20042423 | 201 days ago | IN | 0 ETH | 0.0017112 | ||||
Migrate | 20036447 | 202 days ago | IN | 0 ETH | 0.00093569 | ||||
Migrate | 20035052 | 202 days ago | IN | 0 ETH | 0.00197718 | ||||
Migrate | 20035049 | 202 days ago | IN | 0 ETH | 0.002279 | ||||
Migrate | 20027096 | 203 days ago | IN | 0 ETH | 0.00151031 | ||||
Migrate | 20027093 | 203 days ago | IN | 0 ETH | 0.00191052 | ||||
Migrate | 20018891 | 204 days ago | IN | 0 ETH | 0.0008879 | ||||
Migrate | 20018889 | 204 days ago | IN | 0 ETH | 0.00101436 | ||||
Migrate | 20014016 | 205 days ago | IN | 0 ETH | 0.00088742 | ||||
Migrate | 20014014 | 205 days ago | IN | 0 ETH | 0.00110081 | ||||
Migrate | 20003587 | 206 days ago | IN | 0 ETH | 0.00056812 | ||||
Migrate | 20003582 | 206 days ago | IN | 0 ETH | 0.00064502 | ||||
Migrate | 19991818 | 208 days ago | IN | 0 ETH | 0.00093116 | ||||
Migrate | 19991816 | 208 days ago | IN | 0 ETH | 0.00116968 | ||||
Migrate | 19970692 | 211 days ago | IN | 0 ETH | 0.00114711 | ||||
Migrate | 19970692 | 211 days ago | IN | 0 ETH | 0.00139838 | ||||
Migrate | 19963829 | 212 days ago | IN | 0 ETH | 0.00132275 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
KumaMigrate
Compiler Version
v0.8.0+commit.c7dfd78e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-06-14 */ pragma solidity 0.8.0; // SPDX-License-Identifier: MIT /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } /** * @dev Collection of functions related to the address type */ library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // This method relies on extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. uint256 size; // solhint-disable-next-line no-inline-assembly assembly { size := extcodesize(account) } return size > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain`call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{ value: value }(data); return _verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.staticcall(data); return _verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.delegatecall(data); return _verifyCallResult(success, returndata, errorMessage); } function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) { if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly // solhint-disable-next-line no-inline-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } /** * @title SafeERC20 * @dev Wrappers around ERC20 operations that throw on failure (when the token * contract returns false). Tokens that return no value (and instead revert or * throw on failure) are also supported, non-reverting calls are assumed to be * successful. * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, * which allows you to call the safe operations as `token.safeTransfer(...)`, etc. */ library SafeERC20 { 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)); } /** * @dev Deprecated. This function has issues similar to the ones found in * {IERC20-approve}, and its usage is discouraged. * * Whenever possible, use {safeIncreaseAllowance} and * {safeDecreaseAllowance} instead. */ function safeApprove(IERC20 token, address spender, uint256 value) internal { // safeApprove should only be called when setting an initial allowance, // or when resetting it to zero. To increase and decrease it, use // 'safeIncreaseAllowance' and 'safeDecreaseAllowance' // solhint-disable-next-line max-line-length 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) + value; _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal { unchecked { uint256 oldAllowance = token.allowance(address(this), spender); require(oldAllowance >= value, "SafeERC20: decreased allowance below zero"); uint256 newAllowance = oldAllowance - value; _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } } /** * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement * on the return value: the return value is optional (but if data is returned, it must not be false). * @param token The token targeted by the call. * @param data The call data (encoded using abi.encode or one of its variants). */ function _callOptionalReturn(IERC20 token, bytes memory data) private { // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that // the target address contains contract code and also asserts for success in the low-level call. bytes memory returndata = address(token).functionCall(data, "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"); } } } /* * @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 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) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } /** * @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; } } contract KumaMigrate { using SafeERC20 for IERC20; address public v1_token; address public v2_token; constructor(address token1, address token2) { v1_token = token1; v2_token = token2; } function _migrate(address userAddress, uint256 amount) internal { require(amount != 0, "Transfer amount must be greater than zero"); IERC20(v1_token).safeTransferFrom(userAddress, address(0x000000000000000000000000000000000000dEaD), amount); IERC20(v2_token).safeTransfer(msg.sender, amount); } function migrate(uint256 amount) public { _migrate(msg.sender, amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"token1","type":"address"},{"internalType":"address","name":"token2","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"migrate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"v1_token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"v2_token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50604051610b84380380610b84833981810160405281019061003291906100cf565b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050610154565b6000815190506100c98161013d565b92915050565b600080604083850312156100e257600080fd5b60006100f0858286016100ba565b9250506020610101858286016100ba565b9150509250929050565b60006101168261011d565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6101468161010b565b811461015157600080fd5b50565b610a21806101636000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063454b060814610046578063635b7415146100625780639ea1013814610080575b600080fd5b610060600480360381019061005b91906105a8565b61009e565b005b61006a6100ab565b60405161007791906107e2565b60405180910390f35b6100886100d1565b60405161009591906107e2565b60405180910390f35b6100a833826100f5565b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000811415610139576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101309061089f565b60405180910390fd5b6101888261dead8360008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166101d9909392919063ffffffff16565b6101d53382600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166102629092919063ffffffff16565b5050565b61025c846323b872dd60e01b8585856040516024016101fa939291906107fd565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506102e8565b50505050565b6102e38363a9059cbb60e01b8484604051602401610281929190610834565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506102e8565b505050565b600061034a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166103af9092919063ffffffff16565b90506000815111156103aa578080602001905181019061036a919061057f565b6103a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103a0906108df565b60405180910390fd5b5b505050565b60606103be84846000856103c7565b90509392505050565b60608247101561040c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104039061087f565b60405180910390fd5b610415856104db565b610454576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044b906108bf565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161047d91906107cb565b60006040518083038185875af1925050503d80600081146104ba576040519150601f19603f3d011682016040523d82523d6000602084013e6104bf565b606091505b50915091506104cf8282866104ee565b92505050949350505050565b600080823b905060008111915050919050565b606083156104fe5782905061054e565b6000835111156105115782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610545919061085d565b60405180910390fd5b9392505050565b600081519050610564816109bd565b92915050565b600081359050610579816109d4565b92915050565b60006020828403121561059157600080fd5b600061059f84828501610555565b91505092915050565b6000602082840312156105ba57600080fd5b60006105c88482850161056a565b91505092915050565b6105da81610931565b82525050565b60006105eb826108ff565b6105f58185610915565b9350610605818560208601610979565b80840191505092915050565b600061061c8261090a565b6106268185610920565b9350610636818560208601610979565b61063f816109ac565b840191505092915050565b6000610657602683610920565b91507f416464726573733a20696e73756666696369656e742062616c616e636520666f60008301527f722063616c6c00000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006106bd602983610920565b91507f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008301527f7468616e207a65726f00000000000000000000000000000000000000000000006020830152604082019050919050565b6000610723601d83610920565b91507f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006000830152602082019050919050565b6000610763602a83610920565b91507f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008301527f6f742073756363656564000000000000000000000000000000000000000000006020830152604082019050919050565b6107c58161096f565b82525050565b60006107d782846105e0565b915081905092915050565b60006020820190506107f760008301846105d1565b92915050565b600060608201905061081260008301866105d1565b61081f60208301856105d1565b61082c60408301846107bc565b949350505050565b600060408201905061084960008301856105d1565b61085660208301846107bc565b9392505050565b600060208201905081810360008301526108778184610611565b905092915050565b600060208201905081810360008301526108988161064a565b9050919050565b600060208201905081810360008301526108b8816106b0565b9050919050565b600060208201905081810360008301526108d881610716565b9050919050565b600060208201905081810360008301526108f881610756565b9050919050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b600061093c8261094f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101561099757808201518184015260208101905061097c565b838111156109a6576000848401525b50505050565b6000601f19601f8301169050919050565b6109c681610943565b81146109d157600080fd5b50565b6109dd8161096f565b81146109e857600080fd5b5056fea26469706673582212204326d3e78946f41b897057134684635a3affa76086d13aba9c5df048f3c3896c64736f6c63430008000033000000000000000000000000b525ecee288b99216cd481c56b6efbdbe9bf90b500000000000000000000000048c276e8d03813224bb1e55f953adb6d02fd3e02
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100415760003560e01c8063454b060814610046578063635b7415146100625780639ea1013814610080575b600080fd5b610060600480360381019061005b91906105a8565b61009e565b005b61006a6100ab565b60405161007791906107e2565b60405180910390f35b6100886100d1565b60405161009591906107e2565b60405180910390f35b6100a833826100f5565b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000811415610139576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101309061089f565b60405180910390fd5b6101888261dead8360008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166101d9909392919063ffffffff16565b6101d53382600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166102629092919063ffffffff16565b5050565b61025c846323b872dd60e01b8585856040516024016101fa939291906107fd565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506102e8565b50505050565b6102e38363a9059cbb60e01b8484604051602401610281929190610834565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506102e8565b505050565b600061034a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166103af9092919063ffffffff16565b90506000815111156103aa578080602001905181019061036a919061057f565b6103a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103a0906108df565b60405180910390fd5b5b505050565b60606103be84846000856103c7565b90509392505050565b60608247101561040c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104039061087f565b60405180910390fd5b610415856104db565b610454576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044b906108bf565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161047d91906107cb565b60006040518083038185875af1925050503d80600081146104ba576040519150601f19603f3d011682016040523d82523d6000602084013e6104bf565b606091505b50915091506104cf8282866104ee565b92505050949350505050565b600080823b905060008111915050919050565b606083156104fe5782905061054e565b6000835111156105115782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610545919061085d565b60405180910390fd5b9392505050565b600081519050610564816109bd565b92915050565b600081359050610579816109d4565b92915050565b60006020828403121561059157600080fd5b600061059f84828501610555565b91505092915050565b6000602082840312156105ba57600080fd5b60006105c88482850161056a565b91505092915050565b6105da81610931565b82525050565b60006105eb826108ff565b6105f58185610915565b9350610605818560208601610979565b80840191505092915050565b600061061c8261090a565b6106268185610920565b9350610636818560208601610979565b61063f816109ac565b840191505092915050565b6000610657602683610920565b91507f416464726573733a20696e73756666696369656e742062616c616e636520666f60008301527f722063616c6c00000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006106bd602983610920565b91507f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008301527f7468616e207a65726f00000000000000000000000000000000000000000000006020830152604082019050919050565b6000610723601d83610920565b91507f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006000830152602082019050919050565b6000610763602a83610920565b91507f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008301527f6f742073756363656564000000000000000000000000000000000000000000006020830152604082019050919050565b6107c58161096f565b82525050565b60006107d782846105e0565b915081905092915050565b60006020820190506107f760008301846105d1565b92915050565b600060608201905061081260008301866105d1565b61081f60208301856105d1565b61082c60408301846107bc565b949350505050565b600060408201905061084960008301856105d1565b61085660208301846107bc565b9392505050565b600060208201905081810360008301526108778184610611565b905092915050565b600060208201905081810360008301526108988161064a565b9050919050565b600060208201905081810360008301526108b8816106b0565b9050919050565b600060208201905081810360008301526108d881610716565b9050919050565b600060208201905081810360008301526108f881610756565b9050919050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b600061093c8261094f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101561099757808201518184015260208101905061097c565b838111156109a6576000848401525b50505050565b6000601f19601f8301169050919050565b6109c681610943565b81146109d157600080fd5b50565b6109dd8161096f565b81146109e857600080fd5b5056fea26469706673582212204326d3e78946f41b897057134684635a3affa76086d13aba9c5df048f3c3896c64736f6c63430008000033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000b525ecee288b99216cd481c56b6efbdbe9bf90b500000000000000000000000048c276e8d03813224bb1e55f953adb6d02fd3e02
-----Decoded View---------------
Arg [0] : token1 (address): 0xb525Ecee288B99216CD481C56b6EFbdbE9bF90b5
Arg [1] : token2 (address): 0x48C276e8d03813224bb1e55F953adB6d02FD3E02
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000b525ecee288b99216cd481c56b6efbdbe9bf90b5
Arg [1] : 00000000000000000000000048c276e8d03813224bb1e55f953adb6d02fd3e02
Deployed Bytecode Sourcemap
17552:667:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18129:87;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17645:23;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17615;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18129:87;18180:28;18189:10;18201:6;18180:8;:28::i;:::-;18129:87;:::o;17645:23::-;;;;;;;;;;;;;:::o;17615:::-;;;;;;;;;;;;:::o;17793:328::-;17886:1;17876:6;:11;;17868:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;17946:107;17980:11;18001:42;18046:6;17953:8;;;;;;;;;;17946:33;;;;:107;;;;;;:::i;:::-;18064:49;18094:10;18106:6;18071:8;;;;;;;;;;;18064:29;;;;:49;;;;;:::i;:::-;17793:328;;:::o;11429:205::-;11530:96;11550:5;11580:27;;;11609:4;11615:2;11619:5;11557:68;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11530:19;:96::i;:::-;11429:205;;;;:::o;11244:177::-;11327:86;11347:5;11377:23;;;11402:2;11406:5;11354:58;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11327:19;:86::i;:::-;11244:177;;;:::o;13678:761::-;14102:23;14128:69;14156:4;14128:69;;;;;;;;;;;;;;;;;14136:5;14128:27;;;;:69;;;;;:::i;:::-;14102:95;;14232:1;14212:10;:17;:21;14208:224;;;14354:10;14343:30;;;;;;;;;;;;:::i;:::-;14335:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14208:224;13678:761;;;:::o;6375:195::-;6478:12;6510:52;6532:6;6540:4;6546:1;6549:12;6510:21;:52::i;:::-;6503:59;;6375:195;;;;;:::o;7427:530::-;7554:12;7612:5;7587:21;:30;;7579:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;7679:18;7690:6;7679:10;:18::i;:::-;7671:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7805:12;7819:23;7846:6;:11;;7866:5;7874:4;7846:33;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7804:75;;;;7897:52;7915:7;7924:10;7936:12;7897:17;:52::i;:::-;7890:59;;;;7427:530;;;;;;:::o;3457:422::-;3517:4;3725:12;3836:7;3824:20;3816:28;;3870:1;3863:4;:8;3856:15;;;3457:422;;;:::o;9967:742::-;10082:12;10111:7;10107:595;;;10142:10;10135:17;;;;10107:595;10276:1;10256:10;:17;:21;10252:439;;;10519:10;10513:17;10580:15;10567:10;10563:2;10559:19;10552:44;10467:148;10662:12;10655:20;;;;;;;;;;;:::i;:::-;;;;;;;;9967:742;;;;;;:::o;7:137:1:-;;92:6;86:13;77:22;;108:30;132:5;108:30;:::i;:::-;67:77;;;;:::o;150:139::-;;234:6;221:20;212:29;;250:33;277:5;250:33;:::i;:::-;202:87;;;;:::o;295:278::-;;411:2;399:9;390:7;386:23;382:32;379:2;;;427:1;424;417:12;379:2;470:1;495:61;548:7;539:6;528:9;524:22;495:61;:::i;:::-;485:71;;441:125;369:204;;;;:::o;579:262::-;;687:2;675:9;666:7;662:23;658:32;655:2;;;703:1;700;693:12;655:2;746:1;771:53;816:7;807:6;796:9;792:22;771:53;:::i;:::-;761:63;;717:117;645:196;;;;:::o;847:118::-;934:24;952:5;934:24;:::i;:::-;929:3;922:37;912:53;;:::o;971:373::-;;1103:38;1135:5;1103:38;:::i;:::-;1157:88;1238:6;1233:3;1157:88;:::i;:::-;1150:95;;1254:52;1299:6;1294:3;1287:4;1280:5;1276:16;1254:52;:::i;:::-;1331:6;1326:3;1322:16;1315:23;;1079:265;;;;;:::o;1350:364::-;;1466:39;1499:5;1466:39;:::i;:::-;1521:71;1585:6;1580:3;1521:71;:::i;:::-;1514:78;;1601:52;1646:6;1641:3;1634:4;1627:5;1623:16;1601:52;:::i;:::-;1678:29;1700:6;1678:29;:::i;:::-;1673:3;1669:39;1662:46;;1442:272;;;;;:::o;1720:370::-;;1883:67;1947:2;1942:3;1883:67;:::i;:::-;1876:74;;1980:34;1976:1;1971:3;1967:11;1960:55;2046:8;2041:2;2036:3;2032:12;2025:30;2081:2;2076:3;2072:12;2065:19;;1866:224;;;:::o;2096:373::-;;2259:67;2323:2;2318:3;2259:67;:::i;:::-;2252:74;;2356:34;2352:1;2347:3;2343:11;2336:55;2422:11;2417:2;2412:3;2408:12;2401:33;2460:2;2455:3;2451:12;2444:19;;2242:227;;;:::o;2475:327::-;;2638:67;2702:2;2697:3;2638:67;:::i;:::-;2631:74;;2735:31;2731:1;2726:3;2722:11;2715:52;2793:2;2788:3;2784:12;2777:19;;2621:181;;;:::o;2808:374::-;;2971:67;3035:2;3030:3;2971:67;:::i;:::-;2964:74;;3068:34;3064:1;3059:3;3055:11;3048:55;3134:12;3129:2;3124:3;3120:12;3113:34;3173:2;3168:3;3164:12;3157:19;;2954:228;;;:::o;3188:118::-;3275:24;3293:5;3275:24;:::i;:::-;3270:3;3263:37;3253:53;;:::o;3312:271::-;;3464:93;3553:3;3544:6;3464:93;:::i;:::-;3457:100;;3574:3;3567:10;;3446:137;;;;:::o;3589:222::-;;3720:2;3709:9;3705:18;3697:26;;3733:71;3801:1;3790:9;3786:17;3777:6;3733:71;:::i;:::-;3687:124;;;;:::o;3817:442::-;;4004:2;3993:9;3989:18;3981:26;;4017:71;4085:1;4074:9;4070:17;4061:6;4017:71;:::i;:::-;4098:72;4166:2;4155:9;4151:18;4142:6;4098:72;:::i;:::-;4180;4248:2;4237:9;4233:18;4224:6;4180:72;:::i;:::-;3971:288;;;;;;:::o;4265:332::-;;4424:2;4413:9;4409:18;4401:26;;4437:71;4505:1;4494:9;4490:17;4481:6;4437:71;:::i;:::-;4518:72;4586:2;4575:9;4571:18;4562:6;4518:72;:::i;:::-;4391:206;;;;;:::o;4603:313::-;;4754:2;4743:9;4739:18;4731:26;;4803:9;4797:4;4793:20;4789:1;4778:9;4774:17;4767:47;4831:78;4904:4;4895:6;4831:78;:::i;:::-;4823:86;;4721:195;;;;:::o;4922:419::-;;5126:2;5115:9;5111:18;5103:26;;5175:9;5169:4;5165:20;5161:1;5150:9;5146:17;5139:47;5203:131;5329:4;5203:131;:::i;:::-;5195:139;;5093:248;;;:::o;5347:419::-;;5551:2;5540:9;5536:18;5528:26;;5600:9;5594:4;5590:20;5586:1;5575:9;5571:17;5564:47;5628:131;5754:4;5628:131;:::i;:::-;5620:139;;5518:248;;;:::o;5772:419::-;;5976:2;5965:9;5961:18;5953:26;;6025:9;6019:4;6015:20;6011:1;6000:9;5996:17;5989:47;6053:131;6179:4;6053:131;:::i;:::-;6045:139;;5943:248;;;:::o;6197:419::-;;6401:2;6390:9;6386:18;6378:26;;6450:9;6444:4;6440:20;6436:1;6425:9;6421:17;6414:47;6478:131;6604:4;6478:131;:::i;:::-;6470:139;;6368:248;;;:::o;6622:98::-;;6707:5;6701:12;6691:22;;6680:40;;;:::o;6726:99::-;;6812:5;6806:12;6796:22;;6785:40;;;:::o;6831:147::-;;6969:3;6954:18;;6944:34;;;;:::o;6984:169::-;;7102:6;7097:3;7090:19;7142:4;7137:3;7133:14;7118:29;;7080:73;;;;:::o;7159:96::-;;7225:24;7243:5;7225:24;:::i;:::-;7214:35;;7204:51;;;:::o;7261:90::-;;7338:5;7331:13;7324:21;7313:32;;7303:48;;;:::o;7357:126::-;;7434:42;7427:5;7423:54;7412:65;;7402:81;;;:::o;7489:77::-;;7555:5;7544:16;;7534:32;;;:::o;7572:307::-;7640:1;7650:113;7664:6;7661:1;7658:13;7650:113;;;7749:1;7744:3;7740:11;7734:18;7730:1;7725:3;7721:11;7714:39;7686:2;7683:1;7679:10;7674:15;;7650:113;;;7781:6;7778:1;7775:13;7772:2;;;7861:1;7852:6;7847:3;7843:16;7836:27;7772:2;7621:258;;;;:::o;7885:102::-;;7977:2;7973:7;7968:2;7961:5;7957:14;7953:28;7943:38;;7933:54;;;:::o;7993:116::-;8063:21;8078:5;8063:21;:::i;:::-;8056:5;8053:32;8043:2;;8099:1;8096;8089:12;8043:2;8033:76;:::o;8115:122::-;8188:24;8206:5;8188:24;:::i;:::-;8181:5;8178:35;8168:2;;8227:1;8224;8217:12;8168:2;8158:79;:::o
Swarm Source
ipfs://4326d3e78946f41b897057134684635a3affa76086d13aba9c5df048f3c3896c
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | <$0.000001 | 45,684,752,973,607.563 | $169,033.59 |
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.