Source Code
Latest 25 from a total of 59 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer Ownersh... | 37451878 | 410 days ago | IN | 0 XDAI | 0.00004139 | ||||
| Transfer | 27931371 | 986 days ago | IN | 0 XDAI | 0.00006814 | ||||
| Transfer | 27931362 | 986 days ago | IN | 0.00001 XDAI | 0.00003156 | ||||
| Swap | 22300370 | 1341 days ago | IN | 0 XDAI | 0.00202354 | ||||
| Swap | 19078938 | 1531 days ago | IN | 1 XDAI | 0.0000926 | ||||
| Swap | 18554556 | 1564 days ago | IN | 0 XDAI | 0.00014404 | ||||
| Unoswap | 16657401 | 1680 days ago | IN | 1 XDAI | 0.00059231 | ||||
| Unoswap | 16608673 | 1683 days ago | IN | 0 XDAI | 0.0011294 | ||||
| Unoswap | 16608669 | 1683 days ago | IN | 0 XDAI | 0.0011294 | ||||
| Swap | 16606360 | 1683 days ago | IN | 0 XDAI | 0.00062296 | ||||
| Swap | 16589867 | 1684 days ago | IN | 0 XDAI | 0.0006952 | ||||
| Swap | 16557788 | 1685 days ago | IN | 0 XDAI | 0.0003722 | ||||
| Swap | 16537653 | 1687 days ago | IN | 0 XDAI | 0.00016267 | ||||
| Swap | 16519699 | 1688 days ago | IN | 0 XDAI | 0.00029057 | ||||
| Unoswap | 16507886 | 1688 days ago | IN | 0.00403 XDAI | 0.00017859 | ||||
| Swap | 16484618 | 1690 days ago | IN | 0 XDAI | 0.00018876 | ||||
| Swap | 16451710 | 1692 days ago | IN | 0 XDAI | 0.00029236 | ||||
| Swap | 16444741 | 1692 days ago | IN | 30 XDAI | 0.00061223 | ||||
| Swap | 16444214 | 1692 days ago | IN | 0 XDAI | 0.00026731 | ||||
| Swap | 16386861 | 1696 days ago | IN | 0 XDAI | 0.00059049 | ||||
| Swap | 16366524 | 1697 days ago | IN | 0 XDAI | 0.00022032 | ||||
| Swap | 16364740 | 1697 days ago | IN | 0.025 XDAI | 0.00021036 | ||||
| Swap | 16358941 | 1697 days ago | IN | 0 XDAI | 0.00019658 | ||||
| Swap | 16352932 | 1698 days ago | IN | 0 XDAI | 0.00019156 | ||||
| Swap | 16342544 | 1698 days ago | IN | 0 XDAI | 0.00021392 |
View more zero value Internal Transactions in Advanced View mode
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Recovery
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at gnosisscan.io on 2022-10-17 */ // File @openzeppelin/contracts/token/ERC20/[email protected] // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; pragma abicoder v1; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @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 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 `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, 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 `from` to `to` 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 from, address to, uint256 amount ) external returns (bool); } // File @1inch/solidity-utils/contracts/interfaces/[email protected] pragma solidity ^0.8.0; interface IERC20MetadataUppercase { function NAME() external view returns (string memory); // solhint-disable-line func-name-mixedcase function SYMBOL() external view returns (string memory); // solhint-disable-line func-name-mixedcase } // File @openzeppelin/contracts/token/ERC20/extensions/[email protected] // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol) pragma solidity ^0.8.0; /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } // File @1inch/solidity-utils/contracts/libraries/[email protected] pragma solidity ^0.8.0; /// @title Library with gas-efficient string operations library StringUtil { function toHex(uint256 value) internal pure returns (string memory) { return toHex(abi.encodePacked(value)); } function toHex(address value) internal pure returns (string memory) { return toHex(abi.encodePacked(value)); } function toHex(bytes memory data) internal pure returns (string memory result) { /// @solidity memory-safe-assembly assembly { // solhint-disable-line no-inline-assembly function _toHex16(input) -> output { output := or( and(input, 0xFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000), shr(64, and(input, 0x0000000000000000FFFFFFFFFFFFFFFF00000000000000000000000000000000)) ) output := or( and(output, 0xFFFFFFFF000000000000000000000000FFFFFFFF000000000000000000000000), shr(32, and(output, 0x00000000FFFFFFFF000000000000000000000000FFFFFFFF0000000000000000)) ) output := or( and(output, 0xFFFF000000000000FFFF000000000000FFFF000000000000FFFF000000000000), shr(16, and(output, 0x0000FFFF000000000000FFFF000000000000FFFF000000000000FFFF00000000)) ) output := or( and(output, 0xFF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000), shr(8, and(output, 0x00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000)) ) output := or( shr(4, and(output, 0xF000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000)), shr(8, and(output, 0x0F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F00)) ) output := add( add(0x3030303030303030303030303030303030303030303030303030303030303030, output), mul( and( shr(4, add(output, 0x0606060606060606060606060606060606060606060606060606060606060606)), 0x0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F ), 7 // Change 7 to 39 for lower case output ) ) } result := mload(0x40) let length := mload(data) let resultLength := shl(1, length) let toPtr := add(result, 0x22) // 32 bytes for length + 2 bytes for '0x' mstore(0x40, add(toPtr, resultLength)) // move free memory pointer mstore(add(result, 2), 0x3078) // 0x3078 is right aligned so we write to `result + 2` // to store the last 2 bytes in the beginning of the string mstore(result, add(resultLength, 2)) // extra 2 bytes for '0x' for { let fromPtr := add(data, 0x20) let endPtr := add(fromPtr, length) } lt(fromPtr, endPtr) { fromPtr := add(fromPtr, 0x20) } { let rawData := mload(fromPtr) let hexData := _toHex16(rawData) mstore(toPtr, hexData) toPtr := add(toPtr, 0x20) hexData := _toHex16(shl(128, rawData)) mstore(toPtr, hexData) toPtr := add(toPtr, 0x20) } } } } // File @1inch/solidity-utils/contracts/interfaces/[email protected] pragma solidity ^0.8.0; interface IDaiLikePermit { function permit(address holder, address spender, uint256 nonce, uint256 expiry, bool allowed, uint8 v, bytes32 r, bytes32 s) external; } // File @openzeppelin/contracts/token/ERC20/extensions/[email protected] // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/draft-IERC20Permit.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. * * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't * need to send a transaction, and thus is not required to hold Ether at all. */ interface IERC20Permit { /** * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens, * given ``owner``'s signed approval. * * IMPORTANT: The same issues {IERC20-approve} has related to transaction * ordering also apply here. * * Emits an {Approval} event. * * Requirements: * * - `spender` cannot be the zero address. * - `deadline` must be a timestamp in the future. * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` * over the EIP712-formatted function arguments. * - the signature must use ``owner``'s current nonce (see {nonces}). * * For more information on the signature format, see the * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP * section]. */ function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; /** * @dev Returns the current nonce for `owner`. This value must be * included whenever a signature is generated for {permit}. * * Every successful call to {permit} increases ``owner``'s nonce by one. This * prevents a signature from being used multiple times. */ function nonces(address owner) external view returns (uint256); /** * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}. */ // solhint-disable-next-line func-name-mixedcase function DOMAIN_SEPARATOR() external view returns (bytes32); } // File @1inch/solidity-utils/contracts/libraries/[email protected] pragma solidity ^0.8.0; library RevertReasonForwarder { function reRevert() internal pure { // bubble up revert reason from latest external call /// @solidity memory-safe-assembly assembly { // solhint-disable-line no-inline-assembly let ptr := mload(0x40) returndatacopy(ptr, 0, returndatasize()) revert(ptr, returndatasize()) } } } // File @1inch/solidity-utils/contracts/libraries/[email protected] pragma solidity ^0.8.0; library SafeERC20 { error SafeTransferFailed(); error SafeTransferFromFailed(); error ForceApproveFailed(); error SafeIncreaseAllowanceFailed(); error SafeDecreaseAllowanceFailed(); error SafePermitBadLength(); // Ensures method do not revert or return boolean `true`, admits call to non-smart-contract function safeTransferFrom(IERC20 token, address from, address to, uint256 amount) internal { bytes4 selector = token.transferFrom.selector; bool success; /// @solidity memory-safe-assembly assembly { // solhint-disable-line no-inline-assembly let data := mload(0x40) mstore(data, selector) mstore(add(data, 0x04), from) mstore(add(data, 0x24), to) mstore(add(data, 0x44), amount) success := call(gas(), token, 0, data, 100, 0x0, 0x20) if success { switch returndatasize() case 0 { success := gt(extcodesize(token), 0) } default { success := and(gt(returndatasize(), 31), eq(mload(0), 1)) } } } if (!success) revert SafeTransferFromFailed(); } // Ensures method do not revert or return boolean `true`, admits call to non-smart-contract function safeTransfer(IERC20 token, address to, uint256 value) internal { if (!_makeCall(token, token.transfer.selector, to, value)) { revert SafeTransferFailed(); } } // If `approve(from, to, amount)` fails, try to `approve(from, to, 0)` before retry function forceApprove(IERC20 token, address spender, uint256 value) internal { if (!_makeCall(token, token.approve.selector, spender, value)) { if (!_makeCall(token, token.approve.selector, spender, 0) || !_makeCall(token, token.approve.selector, spender, value)) { revert ForceApproveFailed(); } } } function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal { uint256 allowance = token.allowance(address(this), spender); if (value > type(uint256).max - allowance) revert SafeIncreaseAllowanceFailed(); forceApprove(token, spender, allowance + value); } function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal { uint256 allowance = token.allowance(address(this), spender); if (value > allowance) revert SafeDecreaseAllowanceFailed(); forceApprove(token, spender, allowance - value); } function safePermit(IERC20 token, bytes calldata permit) internal { bool success; if (permit.length == 32 * 7) { success = _makeCalldataCall(token, IERC20Permit.permit.selector, permit); } else if (permit.length == 32 * 8) { success = _makeCalldataCall(token, IDaiLikePermit.permit.selector, permit); } else { revert SafePermitBadLength(); } if (!success) RevertReasonForwarder.reRevert(); } function _makeCall(IERC20 token, bytes4 selector, address to, uint256 amount) private returns(bool success) { /// @solidity memory-safe-assembly assembly { // solhint-disable-line no-inline-assembly let data := mload(0x40) mstore(data, selector) mstore(add(data, 0x04), to) mstore(add(data, 0x24), amount) success := call(gas(), token, 0, data, 0x44, 0x0, 0x20) if success { switch returndatasize() case 0 { success := gt(extcodesize(token), 0) } default { success := and(gt(returndatasize(), 31), eq(mload(0), 1)) } } } } function _makeCalldataCall(IERC20 token, bytes4 selector, bytes calldata args) private returns(bool success) { /// @solidity memory-safe-assembly assembly { // solhint-disable-line no-inline-assembly let len := add(4, args.length) let data := mload(0x40) mstore(data, selector) calldatacopy(add(data, 0x04), args.offset, args.length) success := call(gas(), token, 0, data, len, 0x0, 0x20) if success { switch returndatasize() case 0 { success := gt(extcodesize(token), 0) } default { success := and(gt(returndatasize(), 31), eq(mload(0), 1)) } } } } } // File @1inch/solidity-utils/contracts/libraries/[email protected] pragma solidity ^0.8.0; library UniERC20 { using SafeERC20 for IERC20; error InsufficientBalance(); error ApproveCalledOnETH(); error NotEnoughValue(); error FromIsNotSender(); error ToIsNotThis(); error ETHTransferFailed(); uint256 private constant _RAW_CALL_GAS_LIMIT = 5000; IERC20 private constant _ETH_ADDRESS = IERC20(0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE); IERC20 private constant _ZERO_ADDRESS = IERC20(address(0)); function isETH(IERC20 token) internal pure returns (bool) { return (token == _ZERO_ADDRESS || token == _ETH_ADDRESS); } function uniBalanceOf(IERC20 token, address account) internal view returns (uint256) { if (isETH(token)) { return account.balance; } else { return token.balanceOf(account); } } /// @dev note that this function does nothing in case of zero amount function uniTransfer(IERC20 token, address payable to, uint256 amount) internal { if (amount > 0) { if (isETH(token)) { if (address(this).balance < amount) revert InsufficientBalance(); // solhint-disable-next-line avoid-low-level-calls (bool success, ) = to.call{value: amount, gas: _RAW_CALL_GAS_LIMIT}(""); if (!success) revert ETHTransferFailed(); } else { token.safeTransfer(to, amount); } } } /// @dev note that this function does nothing in case of zero amount function uniTransferFrom(IERC20 token, address payable from, address to, uint256 amount) internal { if (amount > 0) { if (isETH(token)) { if (msg.value < amount) revert NotEnoughValue(); if (from != msg.sender) revert FromIsNotSender(); if (to != address(this)) revert ToIsNotThis(); if (msg.value > amount) { // Return remainder if exist unchecked { // solhint-disable-next-line avoid-low-level-calls (bool success, ) = from.call{value: msg.value - amount, gas: _RAW_CALL_GAS_LIMIT}(""); if (!success) revert ETHTransferFailed(); } } } else { token.safeTransferFrom(from, to, amount); } } } function uniSymbol(IERC20 token) internal view returns(string memory) { return _uniDecode(token, IERC20Metadata.symbol.selector, IERC20MetadataUppercase.SYMBOL.selector); } function uniName(IERC20 token) internal view returns(string memory) { return _uniDecode(token, IERC20Metadata.name.selector, IERC20MetadataUppercase.NAME.selector); } function uniApprove(IERC20 token, address to, uint256 amount) internal { if (isETH(token)) revert ApproveCalledOnETH(); token.forceApprove(to, amount); } /// 20K gas is provided to account for possible implementations of name/symbol /// (token implementation might be behind proxy or store the value in storage) function _uniDecode(IERC20 token, bytes4 lowerCaseSelector, bytes4 upperCaseSelector) private view returns(string memory result) { if (isETH(token)) { return "ETH"; } (bool success, bytes memory data) = address(token).staticcall{ gas: 20000 }( abi.encodeWithSelector(lowerCaseSelector) ); if (!success) { (success, data) = address(token).staticcall{ gas: 20000 }( abi.encodeWithSelector(upperCaseSelector) ); } if (success && data.length >= 0x40) { (uint256 offset, uint256 len) = abi.decode(data, (uint256, uint256)); if (offset == 0x20 && len > 0 && data.length == 0x40 + len) { /// @solidity memory-safe-assembly assembly { // solhint-disable-line no-inline-assembly result := add(data, 0x20) } return result; } } if (success && data.length == 32) { uint256 len = 0; while (len < data.length && data[len] >= 0x20 && data[len] <= 0x7E) { unchecked { len++; } } if (len > 0) { /// @solidity memory-safe-assembly assembly { // solhint-disable-line no-inline-assembly mstore(data, len) } return string(data); } } return StringUtil.toHex(address(token)); } } // File @openzeppelin/contracts/utils/[email protected] // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^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 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) { return msg.data; } } // File @openzeppelin/contracts/access/[email protected] // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) pragma solidity ^0.8.0; /** * @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() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { 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 { _transferOwnership(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"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File contracts/Recovery.sol pragma solidity 0.8.17; /// @notice Main contract incorporates a number of routers to perform swaps and limit orders protocol to fill limit orders contract Recovery is Ownable { using UniERC20 for IERC20; constructor(address owner) { transferOwnership(owner); } /** * @notice Retrieves funds accidentally sent directly to the contract address * @param token ERC20 token to retrieve * @param amount amount to retrieve */ function rescueFunds(IERC20 token, uint256 amount) external onlyOwner { token.uniTransfer(payable(msg.sender), amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ETHTransferFailed","type":"error"},{"inputs":[],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"SafeTransferFailed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
608060405234801561001057600080fd5b506040516106ce3803806106ce8339818101604052602081101561003357600080fd5b505161003e3361004d565b6100478161009d565b50610157565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6100a56100f6565b6001600160a01b0381166100ea5760405162461bcd60e51b81526004018080602001828103825260268152602001806106a86026913960400191505060405180910390fd5b6100f38161004d565b50565b6000546001600160a01b03163314610155576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b565b610542806101666000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063715018a61461005157806378e3214f1461005b5780638da5cb5b14610094578063f2fde38b146100d6575b600080fd5b610059610109565b005b6100596004803603604081101561007157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561011d565b60005473ffffffffffffffffffffffffffffffffffffffff166040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610059600480360360208110156100ec57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661014a565b6101116101ca565b61011b6000610250565b565b6101256101ca565b61014673ffffffffffffffffffffffffffffffffffffffff831633836102c5565b5050565b6101526101ca565b73ffffffffffffffffffffffffffffffffffffffff81166101be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806104e76026913960400191505060405180910390fd5b6101c781610250565b50565b60005473ffffffffffffffffffffffffffffffffffffffff16331461011b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80156103d7576102d4836103dc565b156103b65780471015610313576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405160009073ffffffffffffffffffffffffffffffffffffffff84169061138890849084818181858888f193505050503d8060008114610370576040519150601f19603f3d011682016040523d82523d6000602084013e610375565b606091505b50509050806103b0576040517fb12d13eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b6103d773ffffffffffffffffffffffffffffffffffffffff84168383610430565b505050565b600073ffffffffffffffffffffffffffffffffffffffff8216158061042a575073ffffffffffffffffffffffffffffffffffffffff821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee145b92915050565b61045c837fa9059cbb000000000000000000000000000000000000000000000000000000008484610492565b6103d7576040517ffb7f507900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006040518481528360048201528260248201526020600060448360008a5af191505080156104de573d80156104d457600160005114601f3d111691506104dc565b6000863b1191505b505b94935050505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a26469706673582212206a85a0f5d8ec71b129933086b7e5fec97dd646eeda1e24b2c8739dfd02044e0d64736f6c634300081100334f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737300000000000000000000000011799622f4d98a24514011e8527b969f7488ef47
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061004c5760003560e01c8063715018a61461005157806378e3214f1461005b5780638da5cb5b14610094578063f2fde38b146100d6575b600080fd5b610059610109565b005b6100596004803603604081101561007157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561011d565b60005473ffffffffffffffffffffffffffffffffffffffff166040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610059600480360360208110156100ec57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661014a565b6101116101ca565b61011b6000610250565b565b6101256101ca565b61014673ffffffffffffffffffffffffffffffffffffffff831633836102c5565b5050565b6101526101ca565b73ffffffffffffffffffffffffffffffffffffffff81166101be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806104e76026913960400191505060405180910390fd5b6101c781610250565b50565b60005473ffffffffffffffffffffffffffffffffffffffff16331461011b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80156103d7576102d4836103dc565b156103b65780471015610313576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405160009073ffffffffffffffffffffffffffffffffffffffff84169061138890849084818181858888f193505050503d8060008114610370576040519150601f19603f3d011682016040523d82523d6000602084013e610375565b606091505b50509050806103b0576040517fb12d13eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b6103d773ffffffffffffffffffffffffffffffffffffffff84168383610430565b505050565b600073ffffffffffffffffffffffffffffffffffffffff8216158061042a575073ffffffffffffffffffffffffffffffffffffffff821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee145b92915050565b61045c837fa9059cbb000000000000000000000000000000000000000000000000000000008484610492565b6103d7576040517ffb7f507900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006040518481528360048201528260248201526020600060448360008a5af191505080156104de573d80156104d457600160005114601f3d111691506104dc565b6000863b1191505b505b94935050505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a26469706673582212206a85a0f5d8ec71b129933086b7e5fec97dd646eeda1e24b2c8739dfd02044e0d64736f6c63430008110033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000011799622f4d98a24514011e8527b969f7488ef47
-----Decoded View---------------
Arg [0] : owner (address): 0x11799622F4D98A24514011E8527B969f7488eF47
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000011799622f4d98a24514011e8527b969f7488ef47
Deployed Bytecode Sourcemap
24320:473:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23312:103;;;:::i;:::-;;24655:135;;;;;;;;;;;;;;;;-1:-1:-1;24655:135:0;;;;;;;;;:::i;22664:87::-;22710:7;22737:6;;;22664:87;;;;;;;;;;;;;;;;;;23570:201;;;;;;;;;;;;;;;;-1:-1:-1;23570:201:0;;;;:::i;23312:103::-;22550:13;:11;:13::i;:::-;23377:30:::1;23404:1;23377:18;:30::i;:::-;23312:103::o:0;24655:135::-;22550:13;:11;:13::i;:::-;24736:46:::1;:17;::::0;::::1;24762:10;24775:6:::0;24736:17:::1;:46::i;:::-;24655:135:::0;;:::o;23570:201::-;22550:13;:11;:13::i;:::-;23659:22:::1;::::0;::::1;23651:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23735:28;23754:8;23735:18;:28::i;:::-;23570:201:::0;:::o;22829:132::-;22710:7;22737:6;22893:23;22737:6;21291:10;22893:23;22885:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23931:191;24005:16;24024:6;;;24041:17;;;;;;;;;;24074:40;;24024:6;;;;;;;24074:40;;24005:16;24074:40;23994:128;23931:191;:::o;16681:545::-;16776:10;;16772:447;;16807:12;16813:5;16807;:12::i;:::-;16803:405;;;16868:6;16844:21;:30;16840:64;;;16883:21;;;;;;;;;;;;;;16840:64;17010:52;;16992:12;;17010:7;;;;16050:4;;17025:6;;16992:12;17010:52;16992:12;17010:52;17025:6;17010:7;16050:4;17010:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16991:71;;;17086:7;17081:40;;17102:19;;;;;;;;;;;;;;17081:40;16821:316;16681:545;;;:::o;16803:405::-;17162:30;:18;;;17181:2;17185:6;17162:18;:30::i;:::-;16681:545;;;:::o;16224:133::-;16276:4;16301:22;;;;;:47;;-1:-1:-1;16327:21:0;;;16107:42;16327:21;16301:47;16293:56;16224:133;-1:-1:-1;;16224:133:0:o;12387:203::-;12475:52;12485:5;12492:23;12517:2;12521:5;12475:9;:52::i;:::-;12470:113;;12551:20;;;;;;;;;;;;;;14208:698;14302:12;14456:4;14450:11;14490:8;14484:4;14477:22;14537:2;14530:4;14524;14520:15;14513:27;14578:6;14571:4;14565;14561:15;14554:31;14649:4;14644:3;14638:4;14632;14629:1;14622:5;14615;14610:44;14599:55;;;14671:7;14668:220;;;14705:16;14739:47;;;;14868:1;14864;14858:8;14855:15;14850:2;14832:16;14829:24;14825:46;14814:57;;14698:175;;14739:47;14782:1;14774:5;14762:18;14759:25;14748:36;;14698:175;;14668:220;14208:698;;;;;;:::o
Swarm Source
ipfs://6a85a0f5d8ec71b129933086b7e5fec97dd646eeda1e24b2c8739dfd02044e0d
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$6,558.45
Net Worth in XDAI
Token Allocations
FLOKI
22.13%
OHM
17.71%
GOHM
15.74%
Others
44.41%
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ETH | 22.13% | $0.000043 | 33,774,229.4745 | $1,451.62 | |
| ETH | 17.71% | $119.09 | 9.7534 | $1,161.53 | |
| ETH | 15.74% | $5,533.12 | 0.1866 | $1,032.62 | |
| ETH | 9.41% | $0.998539 | 618 | $617.1 | |
| ETH | 6.34% | $0.998197 | 416.8379 | $416.09 | |
| ETH | 4.02% | $0.999608 | 263.73 | $263.63 | |
| ETH | 4.00% | $9.35 | 28.0454 | $262.22 | |
| ETH | 0.07% | $4.85 | 1.0001 | $4.85 | |
| ETH | 0.04% | $0.025729 | 100 | $2.57 | |
| ETH | 0.04% | $0.000022 | 110,000 | $2.38 | |
| ETH | 0.03% | $0.003976 | 420.1689 | $1.67 | |
| ETH | 0.01% | $0.014242 | 64 | $0.9115 | |
| ETH | 0.01% | $0.000001 | 1,141,596 | $0.7184 | |
| BSC | 12.44% | $0.998544 | 816.7477 | $815.56 | |
| BSC | 4.80% | $887.01 | 0.355 | $314.92 | |
| BSC | 0.82% | <$0.000001 | 235,748,532,288.9432 | $53.96 | |
| BSC | 0.23% | $1.91 | 7.8221 | $14.94 | |
| BSC | 0.21% | $2,953.87 | 0.00468817 | $13.85 | |
| BSC | 0.19% | $89,232.15 | 0.00013635 | $12.17 | |
| BSC | 0.18% | $0.1425 | 83.4109 | $11.89 | |
| BSC | 0.15% | $0.866002 | 11.6823 | $10.12 | |
| BSC | 0.15% | <$0.000001 | 42,245,471,655.7477 | $9.6 | |
| BSC | 0.14% | $0.999744 | 9.1008 | $9.1 | |
| BSC | 0.12% | <$0.000001 | 12,994,881,117.2397 | $7.68 | |
| BSC | 0.06% | $0.999608 | 4.1596 | $4.16 | |
| BSC | 0.03% | $0.000201 | 10,000 | $2.01 | |
| BSC | 0.03% | $0.000201 | 10,000 | $2.01 | |
| BSC | <0.01% | $0.000176 | 1,000 | $0.1764 | |
| GNO | 0.65% | $0.999325 | 42.4281 | $42.4 | |
| ARB | 0.15% | $0.998404 | 10 | $9.98 | |
| BASE | 0.09% | $2,952.88 | 0.00200001 | $5.91 | |
| POL | <0.01% | $0.125098 | 1 | $0.125098 |
Loading...
Loading
Loading...
Loading
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.