Source Code
Multichain Info
N/A
Latest 25 from a total of 66 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Wrap Eth | 13218549 | 1 hr ago | IN | 0 ETH | 0.00000141 | ||||
Wrap Eth | 13211875 | 3 hrs ago | IN | 0 ETH | 0.00000141 | ||||
Wrap Eth | 13204176 | 5 hrs ago | IN | 0 ETH | 0.00000141 | ||||
Wrap Eth | 13197012 | 7 hrs ago | IN | 0 ETH | 0.00000141 | ||||
Wrap Eth | 13189795 | 9 hrs ago | IN | 0 ETH | 0.00000141 | ||||
Wrap Eth | 13182952 | 11 hrs ago | IN | 0 ETH | 0.00000141 | ||||
Wrap Eth | 13175620 | 13 hrs ago | IN | 0 ETH | 0.00000141 | ||||
Wrap Eth | 13168104 | 15 hrs ago | IN | 0 ETH | 0.00000141 | ||||
Wrap Eth | 13160863 | 17 hrs ago | IN | 0 ETH | 0.00000141 | ||||
Wrap Eth | 13153990 | 19 hrs ago | IN | 0 ETH | 0.00000141 | ||||
Wrap Eth | 13146805 | 21 hrs ago | IN | 0 ETH | 0.00000141 | ||||
Wrap Eth | 13139312 | 23 hrs ago | IN | 0 ETH | 0.00000141 | ||||
Wrap Eth | 13132149 | 25 hrs ago | IN | 0 ETH | 0.00000141 | ||||
Wrap Eth | 13125089 | 27 hrs ago | IN | 0 ETH | 0.00000141 | ||||
Wrap Eth | 13117959 | 29 hrs ago | IN | 0 ETH | 0.00000141 | ||||
Wrap Eth | 13110550 | 31 hrs ago | IN | 0 ETH | 0.00000141 | ||||
Wrap Eth | 13103541 | 33 hrs ago | IN | 0 ETH | 0.00000141 | ||||
Wrap Eth | 13096634 | 35 hrs ago | IN | 0 ETH | 0.00000141 | ||||
Wrap Eth | 13089079 | 37 hrs ago | IN | 0 ETH | 0.00000141 | ||||
Wrap Eth | 13081844 | 39 hrs ago | IN | 0 ETH | 0.00000141 | ||||
Wrap Eth | 13074468 | 41 hrs ago | IN | 0 ETH | 0.00000141 | ||||
Wrap Eth | 13067226 | 43 hrs ago | IN | 0 ETH | 0.00000141 | ||||
Wrap Eth | 13060223 | 45 hrs ago | IN | 0 ETH | 0.00000141 | ||||
Wrap Eth | 13053113 | 47 hrs ago | IN | 0 ETH | 0.00000141 | ||||
Wrap Eth | 13046275 | 2 days ago | IN | 0 ETH | 0.00000141 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
13218863 | 1 hr ago | 0 ETH | ||||
13218703 | 1 hr ago | 0.00000047 ETH | ||||
13218549 | 1 hr ago | 0.15504011 ETH | ||||
13216278 | 1 hr ago | 0 ETH | ||||
13216238 | 1 hr ago | 0 ETH | ||||
13216204 | 1 hr ago | 0 ETH | ||||
13216149 | 1 hr ago | 0 ETH | ||||
13216102 | 1 hr ago | 0 ETH | ||||
13216085 | 1 hr ago | 0 ETH | ||||
13216033 | 1 hr ago | 0 ETH | ||||
13214642 | 2 hrs ago | 0 ETH | ||||
13214262 | 2 hrs ago | 0 ETH | ||||
13211875 | 3 hrs ago | 0.15504011 ETH | ||||
13210514 | 3 hrs ago | 0 ETH | ||||
13209556 | 3 hrs ago | 0 ETH | ||||
13207118 | 4 hrs ago | 0.00000012 ETH | ||||
13205726 | 4 hrs ago | 0.00000013 ETH | ||||
13204567 | 5 hrs ago | 0.00000048 ETH | ||||
13204176 | 5 hrs ago | 0.15503935 ETH | ||||
13200743 | 6 hrs ago | 0.00000002 ETH | ||||
13200710 | 6 hrs ago | 0.00000006 ETH | ||||
13200700 | 6 hrs ago | 0 ETH | ||||
13198910 | 6 hrs ago | 0 ETH | ||||
13198894 | 6 hrs ago | 0 ETH | ||||
13198885 | 6 hrs ago | 0.00000003 ETH |
Loading...
Loading
Contract Name:
TokenChwomper
Compiler Version
v0.8.20+commit.a1b79de6
Optimization Enabled:
Yes with 1000000 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: GPL-3.0-or-later pragma solidity >=0.8.0; import "interfaces/IRedSnwapper.sol"; import "interfaces/IERC20.sol"; import "./Auth.sol"; /// @title TokenChwomper for selling accumulated tokens for weth or other base assets /// @notice This contract will be used for fee collection and breakdown /// @dev Uses Auth contract for 2-step owner process and trust operators to guard functions contract TokenChwomper is Auth { address public immutable weth; IRedSnwapper public redSnwapper; bytes4 private constant TRANSFER_SELECTOR = bytes4(keccak256(bytes('transfer(address,uint256)'))); error TransferFailed(); constructor( address _operator, address _redSnwapper, address _weth ) Auth(_operator) { // initial owner is msg.sender redSnwapper = IRedSnwapper(_redSnwapper); weth = _weth; } /// @notice Updates the RedSnwapper to be used for swapping tokens /// @dev make sure new RedSnwapper is backwards compatiable (should be) /// @param _redSnwapper The address of the new route processor function updateRedSnwapper(address _redSnwapper) external onlyOwner { redSnwapper = IRedSnwapper(_redSnwapper); } /// @notice Swaps tokens via the configured RedSnwapper /// @dev Must be called by a trusted operator /// @param tokenIn Address of the input token /// @param amountIn Amount of the input token to swap /// @param recipient Address to receive the output tokens /// @param tokenOut Address of the output token /// @param amountOutMin Minimum acceptable amount of output tokens (slippage protection) /// @param executor Address of the executor contract to perform the swap logic /// @param executorData Encoded data for the executor call /// @return amountOut The actual amount of output tokens received function snwap( address tokenIn, uint256 amountIn, address recipient, address tokenOut, uint256 amountOutMin, address executor, bytes calldata executorData ) external onlyTrusted returns (uint256 amountOut) { // Pre-fund RedSnwapper with input tokens _safeTransfer(tokenIn, address(redSnwapper), amountIn); // Execute snwap with zero amountIn amountOut = redSnwapper.snwap( tokenIn, 0, recipient, tokenOut, amountOutMin, executor, executorData ); } /// @notice Performs multiple swaps via the configured RedSnwapper /// @dev Must be called by a trusted operator /// @param inputTokens Array of input token parameters /// @param outputTokens Array of output token requirements /// @param executors Array of executor calls to perform /// @return amountOut Array of actual amounts of output tokens received function snwapMultiple( IRedSnwapper.InputToken[] calldata inputTokens, IRedSnwapper.OutputToken[] calldata outputTokens, IRedSnwapper.Executor[] calldata executors ) external onlyTrusted returns (uint256[] memory amountOut) { uint256 length = inputTokens.length; IRedSnwapper.InputToken[] memory _inputTokens = new IRedSnwapper.InputToken[](length); for (uint256 i = 0; i < length; ++i) { // Pre-fund RedSnwapper with input tokens _safeTransfer( inputTokens[i].token, address(redSnwapper), inputTokens[i].amountIn ); // Build _inputTokens with zero amountIn _inputTokens[i] = IRedSnwapper.InputToken({ token: inputTokens[i].token, amountIn: 0, transferTo: inputTokens[i].transferTo }); } // Execute snwapMultiple amountOut = redSnwapper.snwapMultiple( _inputTokens, outputTokens, executors ); } /// @notice Withdraw any token or eth from the contract /// @dev can only be called by owner /// @param token The address of the token to be withdrawn, 0x0 for eth /// @param to The address to send the token to /// @param _value The amount of the token to be withdrawn function withdraw(address token, address to, uint256 _value) onlyOwner external { if (token != address(0)) { _safeTransfer(token, to, _value); } else { (bool success, ) = to.call{value: _value}(""); require(success); } } function _safeTransfer(address token, address to, uint value) internal { (bool success, bytes memory data) = token.call(abi.encodeWithSelector(TRANSFER_SELECTOR, to, value)); if (!success || (data.length != 0 && !abi.decode(data, (bool)))) revert TransferFailed(); } /// @notice In case we receive any unwrapped eth (native token) we can call this /// @dev operators can call this function wrapEth() onlyTrusted external { weth.call{value: address(this).balance}(""); } /// @notice Available function in case we need to do any calls that aren't supported by the contract (unwinding lp positions, etc.) /// @dev can only be called by owner /// @param to The address to send the call to /// @param _value The amount of eth to send with the call /// @param data The data to be sent with the call function doAction(address to, uint256 _value, bytes memory data) onlyOwner external { (bool success, ) = to.call{value: _value}(data); require(success); } receive() external payable {} }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol) pragma solidity >= 0.8.0; /** * @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); }
// SPDX-License-Identifier: UNLICENSED pragma solidity >= 0.8.0; interface IRedSnwapper { struct InputToken { address token; uint256 amountIn; address transferTo; } struct OutputToken { address token; address recipient; uint256 amountOutMin; } struct Executor { address executor; uint256 value; bytes data; } function snwap( address tokenIn, uint256 amountIn, address recipient, address tokenOut, uint256 amountOutMin, address executor, bytes calldata executorData ) external returns (uint256 amountOut); function snwapMultiple( InputToken[] calldata inputTokens, OutputToken[] calldata outputTokens, Executor[] calldata executors ) external returns (uint256[] memory amountOut); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) pragma solidity ^0.8.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() { _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); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.8.0) (access/Ownable2Step.sol) pragma solidity ^0.8.0; import "./Ownable.sol"; /** * @dev Contract module which provides 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} and {acceptOwnership}. * * This module is used through inheritance. It will make available all functions * from parent (Ownable). */ abstract contract Ownable2Step is Ownable { address private _pendingOwner; event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner); /** * @dev Returns the address of the pending owner. */ function pendingOwner() public view virtual returns (address) { return _pendingOwner; } /** * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual override onlyOwner { _pendingOwner = newOwner; emit OwnershipTransferStarted(owner(), newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner. * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual override { delete _pendingOwner; super._transferOwnership(newOwner); } /** * @dev The new owner accepts the ownership transfer. */ function acceptOwnership() external { address sender = _msgSender(); require(pendingOwner() == sender, "Ownable2Step: caller is not the new owner"); _transferOwnership(sender); } }
// SPDX-License-Identifier: MIT // 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; } }
// SPDX-License-Identifier: GPL-3.0-or-later pragma solidity >=0.8.0; import "openzeppelin/access/Ownable2Step.sol"; abstract contract Auth is Ownable2Step { event SetTrusted(address indexed user, bool isTrusted); mapping(address => bool) public trusted; error OnlyTrusted(); modifier onlyTrusted() { if (!trusted[msg.sender]) revert OnlyTrusted(); _; } constructor(address trustedUser) { trusted[trustedUser] = true; emit SetTrusted(trustedUser, true); } function setTrusted(address user, bool isTrusted) external onlyOwner { trusted[user] = isTrusted; emit SetTrusted(user, isTrusted); } }
{ "evmVersion": "paris", "libraries": {}, "metadata": { "useLiteralContent": true }, "optimizer": { "enabled": true, "runs": 1000000 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"address","name":"_redSnwapper","type":"address"},{"internalType":"address","name":"_weth","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"OnlyTrusted","type":"error"},{"inputs":[],"name":"TransferFailed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"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":"address","name":"user","type":"address"},{"indexed":false,"internalType":"bool","name":"isTrusted","type":"bool"}],"name":"SetTrusted","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"doAction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"redSnwapper","outputs":[{"internalType":"contract IRedSnwapper","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"isTrusted","type":"bool"}],"name":"setTrusted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address","name":"executor","type":"address"},{"internalType":"bytes","name":"executorData","type":"bytes"}],"name":"snwap","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"address","name":"transferTo","type":"address"}],"internalType":"struct IRedSnwapper.InputToken[]","name":"inputTokens","type":"tuple[]"},{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"}],"internalType":"struct IRedSnwapper.OutputToken[]","name":"outputTokens","type":"tuple[]"},{"components":[{"internalType":"address","name":"executor","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"internalType":"struct IRedSnwapper.Executor[]","name":"executors","type":"tuple[]"}],"name":"snwapMultiple","outputs":[{"internalType":"uint256[]","name":"amountOut","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"trusted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_redSnwapper","type":"address"}],"name":"updateRedSnwapper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"weth","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"wrapEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040523480156200001157600080fd5b50604051620018693803806200186983398101604081905262000034916200014d565b826200004033620000c2565b6001600160a01b038116600081815260026020908152604091829020805460ff1916600190811790915591519182527f878d105ed19c01e992a54459c2f04ba19432ac45600b42ce340d034272207436910160405180910390a250600380546001600160a01b0319166001600160a01b03938416179055166080525062000197565b600180546001600160a01b0319169055620000dd81620000e0565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200014857600080fd5b919050565b6000806000606084860312156200016357600080fd5b6200016e8462000130565b92506200017e6020850162000130565b91506200018e6040850162000130565b90509250925092565b6080516116af620001ba6000396000818161010a015261067e01526116af6000f3fe6080604052600436106100ec5760003560e01c8063abde7d2e1161008a578063e30c397811610059578063e30c3978146102bd578063f1281c3f146102e8578063f2fde38b14610315578063f32a12ac1461033557600080fd5b8063abde7d2e1461023b578063b081b4eb1461025b578063d33721a514610270578063d9caed121461029d57600080fd5b80636e9821c2116100c65780636e9821c2146101a6578063715018a6146101e657806379ba5097146101fb5780638da5cb5b1461021057600080fd5b80633fc8cef3146100f857806354a0af17146101565780635f3bd1c81461017857600080fd5b366100f357005b600080fd5b34801561010457600080fd5b5061012c7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561016257600080fd5b50610176610171366004610e7e565b610355565b005b34801561018457600080fd5b50610198610193366004610f4b565b6103db565b60405190815260200161014d565b3480156101b257600080fd5b506101d66101c1366004611013565b60026020526000908152604090205460ff1681565b604051901515815260200161014d565b3480156101f257600080fd5b506101766104fe565b34801561020757600080fd5b50610176610512565b34801561021c57600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff1661012c565b34801561024757600080fd5b50610176610256366004611013565b6105cc565b34801561026757600080fd5b5061017661061b565b34801561027c57600080fd5b5061029061028b366004611081565b6106df565b60405161014d919061114a565b3480156102a957600080fd5b506101766102b836600461118e565b6109ad565b3480156102c957600080fd5b5060015473ffffffffffffffffffffffffffffffffffffffff1661012c565b3480156102f457600080fd5b5060035461012c9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561032157600080fd5b50610176610330366004611013565b6109fe565b34801561034157600080fd5b506101766103503660046111d8565b610aae565b61035d610b40565b60008373ffffffffffffffffffffffffffffffffffffffff168383604051610385919061120f565b60006040518083038185875af1925050503d80600081146103c2576040519150601f19603f3d011682016040523d82523d6000602084013e6103c7565b606091505b50509050806103d557600080fd5b50505050565b3360009081526002602052604081205460ff16610424576040517fcf1119ab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600354610449908a9073ffffffffffffffffffffffffffffffffffffffff168a610bc1565b6003546040517f5f3bd1c800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690635f3bd1c8906104ae908c906000908c908c908c908c908c908c90600401611287565b6020604051808303816000875af11580156104cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f191906112eb565b9998505050505050505050565b610506610b40565b6105106000610d36565b565b600154339073ffffffffffffffffffffffffffffffffffffffff1681146105c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6105c981610d36565b50565b6105d4610b40565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b3360009081526002602052604090205460ff16610664576040517fcf1119ab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016904790600081818185875af1925050503d80600081146106da576040519150601f19603f3d011682016040523d82523d6000602084013e505050565b505050565b3360009081526002602052604090205460609060ff1661072b576040517fcf1119ab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8560008167ffffffffffffffff81111561074757610747610e00565b6040519080825280602002602001820160405280156107b057816020015b60408051606081018252600080825260208083018290529282015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816107655790505b50905060005b828110156108e9576108238a8a838181106107d3576107d3611304565b6107e99260206060909202019081019150611013565b60035473ffffffffffffffffffffffffffffffffffffffff168c8c8581811061081457610814611304565b90506060020160200135610bc1565b60405180606001604052808b8b8481811061084057610840611304565b6108569260206060909202019081019150611013565b73ffffffffffffffffffffffffffffffffffffffff168152602001600081526020018b8b8481811061088a5761088a611304565b90506060020160400160208101906108a29190611013565b73ffffffffffffffffffffffffffffffffffffffff168152508282815181106108cd576108cd611304565b6020026020010181905250806108e290611333565b90506107b6565b506003546040517fd33721a500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063d33721a5906109489084908b908b908b908b90600401611523565b6000604051808303816000875af1158015610967573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526104f191908101906115c2565b6109b5610b40565b73ffffffffffffffffffffffffffffffffffffffff8316156109dc576106da838383610bc1565b60008273ffffffffffffffffffffffffffffffffffffffff1682604051610385565b610a06610b40565b6001805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155610a6960005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b610ab6610b40565b73ffffffffffffffffffffffffffffffffffffffff821660008181526002602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f878d105ed19c01e992a54459c2f04ba19432ac45600b42ce340d034272207436910160405180910390a25050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610510576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b7565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905291516000928392871691610c88919061120f565b6000604051808303816000865af19150503d8060008114610cc5576040519150601f19603f3d011682016040523d82523d6000602084013e610cca565b606091505b5091509150811580610cf85750805115801590610cf8575080806020019051810190610cf6919061165c565b155b15610d2f576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556105c9816000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610dfb57600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610e7657610e76610e00565b604052919050565b600080600060608486031215610e9357600080fd5b610e9c84610dd7565b92506020808501359250604085013567ffffffffffffffff80821115610ec157600080fd5b818701915087601f830112610ed557600080fd5b813581811115610ee757610ee7610e00565b610f17847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601610e2f565b91508082528884828501011115610f2d57600080fd5b80848401858401376000848284010152508093505050509250925092565b60008060008060008060008060e0898b031215610f6757600080fd5b610f7089610dd7565b975060208901359650610f8560408a01610dd7565b9550610f9360608a01610dd7565b945060808901359350610fa860a08a01610dd7565b925060c089013567ffffffffffffffff80821115610fc557600080fd5b818b0191508b601f830112610fd957600080fd5b813581811115610fe857600080fd5b8c6020828501011115610ffa57600080fd5b6020830194508093505050509295985092959890939650565b60006020828403121561102557600080fd5b61102e82610dd7565b9392505050565b60008083601f84011261104757600080fd5b50813567ffffffffffffffff81111561105f57600080fd5b60208301915083602060608302850101111561107a57600080fd5b9250929050565b6000806000806000806060878903121561109a57600080fd5b863567ffffffffffffffff808211156110b257600080fd5b6110be8a838b01611035565b909850965060208901359150808211156110d757600080fd5b6110e38a838b01611035565b909650945060408901359150808211156110fc57600080fd5b818901915089601f83011261111057600080fd5b81358181111561111f57600080fd5b8a60208260051b850101111561113457600080fd5b6020830194508093505050509295509295509295565b6020808252825182820181905260009190848201906040850190845b8181101561118257835183529284019291840191600101611166565b50909695505050505050565b6000806000606084860312156111a357600080fd5b6111ac84610dd7565b92506111ba60208501610dd7565b9150604084013590509250925092565b80151581146105c957600080fd5b600080604083850312156111eb57600080fd5b6111f483610dd7565b91506020830135611204816111ca565b809150509250929050565b6000825160005b818110156112305760208186018101518583015201611216565b506000920191825250919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b600073ffffffffffffffffffffffffffffffffffffffff808b1683528960208401528089166040840152808816606084015286608084015280861660a08401525060e060c08301526112dd60e08301848661123e565b9a9950505050505050505050565b6000602082840312156112fd57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361138b577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5060010190565b8183526000602080850194508260005b858110156113fa5773ffffffffffffffffffffffffffffffffffffffff806113c984610dd7565b168852806113d8858501610dd7565b16888501525060408281013590880152606096870196909101906001016113a2565b509495945050505050565b81835260006020808501808196508560051b810191508460005b8781101561151657828403895281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa188360301811261145e57600080fd5b8701606073ffffffffffffffffffffffffffffffffffffffff61148083610dd7565b16865286820135878701526040808301357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126114c157600080fd5b90920187810192903567ffffffffffffffff8111156114df57600080fd5b8036038413156114ee57600080fd5b8282890152611500838901828661123e565b9c89019c9750505092860192505060010161141f565b5091979650505050505050565b60608082528651828201819052600091906020906080850190828b01855b8281101561158a578151805173ffffffffffffffffffffffffffffffffffffffff9081168652868201518787015260409182015116908501529285019290840190600101611541565b5050508481038286015261159f81898b611392565b9250505082810360408401526115b6818587611405565b98975050505050505050565b600060208083850312156115d557600080fd5b825167ffffffffffffffff808211156115ed57600080fd5b818501915085601f83011261160157600080fd5b81518181111561161357611613610e00565b8060051b9150611624848301610e2f565b818152918301840191848101908884111561163e57600080fd5b938501935b838510156115b657845182529385019390850190611643565b60006020828403121561166e57600080fd5b815161102e816111ca56fea2646970667358221220a143fdce62eb0d88e97109af33cbec8d715feb8dc75088e06e23f799ddb8877764736f6c634300081400330000000000000000000000004bb4c1b0745ef7b4642feeccd0740dec417ca0a0000000000000000000000000ac4c6e212a361c968f1725b4d055b47e63f80b75000000000000000000000000ee7d8bcfb72bc1880d0cf19822eb0a2e6577ab62
Deployed Bytecode
0x6080604052600436106100ec5760003560e01c8063abde7d2e1161008a578063e30c397811610059578063e30c3978146102bd578063f1281c3f146102e8578063f2fde38b14610315578063f32a12ac1461033557600080fd5b8063abde7d2e1461023b578063b081b4eb1461025b578063d33721a514610270578063d9caed121461029d57600080fd5b80636e9821c2116100c65780636e9821c2146101a6578063715018a6146101e657806379ba5097146101fb5780638da5cb5b1461021057600080fd5b80633fc8cef3146100f857806354a0af17146101565780635f3bd1c81461017857600080fd5b366100f357005b600080fd5b34801561010457600080fd5b5061012c7f000000000000000000000000ee7d8bcfb72bc1880d0cf19822eb0a2e6577ab6281565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561016257600080fd5b50610176610171366004610e7e565b610355565b005b34801561018457600080fd5b50610198610193366004610f4b565b6103db565b60405190815260200161014d565b3480156101b257600080fd5b506101d66101c1366004611013565b60026020526000908152604090205460ff1681565b604051901515815260200161014d565b3480156101f257600080fd5b506101766104fe565b34801561020757600080fd5b50610176610512565b34801561021c57600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff1661012c565b34801561024757600080fd5b50610176610256366004611013565b6105cc565b34801561026757600080fd5b5061017661061b565b34801561027c57600080fd5b5061029061028b366004611081565b6106df565b60405161014d919061114a565b3480156102a957600080fd5b506101766102b836600461118e565b6109ad565b3480156102c957600080fd5b5060015473ffffffffffffffffffffffffffffffffffffffff1661012c565b3480156102f457600080fd5b5060035461012c9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561032157600080fd5b50610176610330366004611013565b6109fe565b34801561034157600080fd5b506101766103503660046111d8565b610aae565b61035d610b40565b60008373ffffffffffffffffffffffffffffffffffffffff168383604051610385919061120f565b60006040518083038185875af1925050503d80600081146103c2576040519150601f19603f3d011682016040523d82523d6000602084013e6103c7565b606091505b50509050806103d557600080fd5b50505050565b3360009081526002602052604081205460ff16610424576040517fcf1119ab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600354610449908a9073ffffffffffffffffffffffffffffffffffffffff168a610bc1565b6003546040517f5f3bd1c800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690635f3bd1c8906104ae908c906000908c908c908c908c908c908c90600401611287565b6020604051808303816000875af11580156104cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f191906112eb565b9998505050505050505050565b610506610b40565b6105106000610d36565b565b600154339073ffffffffffffffffffffffffffffffffffffffff1681146105c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6105c981610d36565b50565b6105d4610b40565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b3360009081526002602052604090205460ff16610664576040517fcf1119ab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ee7d8bcfb72bc1880d0cf19822eb0a2e6577ab6216904790600081818185875af1925050503d80600081146106da576040519150601f19603f3d011682016040523d82523d6000602084013e505050565b505050565b3360009081526002602052604090205460609060ff1661072b576040517fcf1119ab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8560008167ffffffffffffffff81111561074757610747610e00565b6040519080825280602002602001820160405280156107b057816020015b60408051606081018252600080825260208083018290529282015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816107655790505b50905060005b828110156108e9576108238a8a838181106107d3576107d3611304565b6107e99260206060909202019081019150611013565b60035473ffffffffffffffffffffffffffffffffffffffff168c8c8581811061081457610814611304565b90506060020160200135610bc1565b60405180606001604052808b8b8481811061084057610840611304565b6108569260206060909202019081019150611013565b73ffffffffffffffffffffffffffffffffffffffff168152602001600081526020018b8b8481811061088a5761088a611304565b90506060020160400160208101906108a29190611013565b73ffffffffffffffffffffffffffffffffffffffff168152508282815181106108cd576108cd611304565b6020026020010181905250806108e290611333565b90506107b6565b506003546040517fd33721a500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063d33721a5906109489084908b908b908b908b90600401611523565b6000604051808303816000875af1158015610967573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526104f191908101906115c2565b6109b5610b40565b73ffffffffffffffffffffffffffffffffffffffff8316156109dc576106da838383610bc1565b60008273ffffffffffffffffffffffffffffffffffffffff1682604051610385565b610a06610b40565b6001805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155610a6960005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b610ab6610b40565b73ffffffffffffffffffffffffffffffffffffffff821660008181526002602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f878d105ed19c01e992a54459c2f04ba19432ac45600b42ce340d034272207436910160405180910390a25050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610510576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b7565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905291516000928392871691610c88919061120f565b6000604051808303816000865af19150503d8060008114610cc5576040519150601f19603f3d011682016040523d82523d6000602084013e610cca565b606091505b5091509150811580610cf85750805115801590610cf8575080806020019051810190610cf6919061165c565b155b15610d2f576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556105c9816000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610dfb57600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610e7657610e76610e00565b604052919050565b600080600060608486031215610e9357600080fd5b610e9c84610dd7565b92506020808501359250604085013567ffffffffffffffff80821115610ec157600080fd5b818701915087601f830112610ed557600080fd5b813581811115610ee757610ee7610e00565b610f17847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601610e2f565b91508082528884828501011115610f2d57600080fd5b80848401858401376000848284010152508093505050509250925092565b60008060008060008060008060e0898b031215610f6757600080fd5b610f7089610dd7565b975060208901359650610f8560408a01610dd7565b9550610f9360608a01610dd7565b945060808901359350610fa860a08a01610dd7565b925060c089013567ffffffffffffffff80821115610fc557600080fd5b818b0191508b601f830112610fd957600080fd5b813581811115610fe857600080fd5b8c6020828501011115610ffa57600080fd5b6020830194508093505050509295985092959890939650565b60006020828403121561102557600080fd5b61102e82610dd7565b9392505050565b60008083601f84011261104757600080fd5b50813567ffffffffffffffff81111561105f57600080fd5b60208301915083602060608302850101111561107a57600080fd5b9250929050565b6000806000806000806060878903121561109a57600080fd5b863567ffffffffffffffff808211156110b257600080fd5b6110be8a838b01611035565b909850965060208901359150808211156110d757600080fd5b6110e38a838b01611035565b909650945060408901359150808211156110fc57600080fd5b818901915089601f83011261111057600080fd5b81358181111561111f57600080fd5b8a60208260051b850101111561113457600080fd5b6020830194508093505050509295509295509295565b6020808252825182820181905260009190848201906040850190845b8181101561118257835183529284019291840191600101611166565b50909695505050505050565b6000806000606084860312156111a357600080fd5b6111ac84610dd7565b92506111ba60208501610dd7565b9150604084013590509250925092565b80151581146105c957600080fd5b600080604083850312156111eb57600080fd5b6111f483610dd7565b91506020830135611204816111ca565b809150509250929050565b6000825160005b818110156112305760208186018101518583015201611216565b506000920191825250919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b600073ffffffffffffffffffffffffffffffffffffffff808b1683528960208401528089166040840152808816606084015286608084015280861660a08401525060e060c08301526112dd60e08301848661123e565b9a9950505050505050505050565b6000602082840312156112fd57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361138b577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5060010190565b8183526000602080850194508260005b858110156113fa5773ffffffffffffffffffffffffffffffffffffffff806113c984610dd7565b168852806113d8858501610dd7565b16888501525060408281013590880152606096870196909101906001016113a2565b509495945050505050565b81835260006020808501808196508560051b810191508460005b8781101561151657828403895281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa188360301811261145e57600080fd5b8701606073ffffffffffffffffffffffffffffffffffffffff61148083610dd7565b16865286820135878701526040808301357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126114c157600080fd5b90920187810192903567ffffffffffffffff8111156114df57600080fd5b8036038413156114ee57600080fd5b8282890152611500838901828661123e565b9c89019c9750505092860192505060010161141f565b5091979650505050505050565b60608082528651828201819052600091906020906080850190828b01855b8281101561158a578151805173ffffffffffffffffffffffffffffffffffffffff9081168652868201518787015260409182015116908501529285019290840190600101611541565b5050508481038286015261159f81898b611392565b9250505082810360408401526115b6818587611405565b98975050505050505050565b600060208083850312156115d557600080fd5b825167ffffffffffffffff808211156115ed57600080fd5b818501915085601f83011261160157600080fd5b81518181111561161357611613610e00565b8060051b9150611624848301610e2f565b818152918301840191848101908884111561163e57600080fd5b938501935b838510156115b657845182529385019390850190611643565b60006020828403121561166e57600080fd5b815161102e816111ca56fea2646970667358221220a143fdce62eb0d88e97109af33cbec8d715feb8dc75088e06e23f799ddb8877764736f6c63430008140033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000004bb4c1b0745ef7b4642feeccd0740dec417ca0a0000000000000000000000000ac4c6e212a361c968f1725b4d055b47e63f80b75000000000000000000000000ee7d8bcfb72bc1880d0cf19822eb0a2e6577ab62
-----Decoded View---------------
Arg [0] : _operator (address): 0x4bb4c1B0745ef7B4642fEECcd0740deC417ca0a0
Arg [1] : _redSnwapper (address): 0xAC4c6e212A361c968F1725b4d055b47E63F80b75
Arg [2] : _weth (address): 0xEE7D8BCFb72bC1880D0Cf19822eB0A2e6577aB62
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000004bb4c1b0745ef7b4642feeccd0740dec417ca0a0
Arg [1] : 000000000000000000000000ac4c6e212a361c968f1725b4d055b47e63f80b75
Arg [2] : 000000000000000000000000ee7d8bcfb72bc1880d0cf19822eb0a2e6577ab62
Loading...
Loading
Loading...
Loading

Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.