More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 238 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Send Token | 20863221 | 50 mins ago | IN | 0 ETH | 0.00162735 | ||||
Send Token | 20862346 | 3 hrs ago | IN | 0 ETH | 0.00158822 | ||||
Send Token | 20862232 | 4 hrs ago | IN | 0 ETH | 0.00130075 | ||||
Send Token | 20843057 | 2 days ago | IN | 0 ETH | 0.00400475 | ||||
Send Token | 20843038 | 2 days ago | IN | 0 ETH | 0.00431473 | ||||
Send Token | 20842993 | 2 days ago | IN | 0 ETH | 0.00362397 | ||||
Send Token | 20842913 | 2 days ago | IN | 0 ETH | 0.00501789 | ||||
Send Token | 20842324 | 2 days ago | IN | 0 ETH | 0.00404561 | ||||
Send Token | 20842319 | 2 days ago | IN | 0 ETH | 0.0043706 | ||||
Send Token | 20842037 | 2 days ago | IN | 0 ETH | 0.0028434 | ||||
Send Token | 20841984 | 2 days ago | IN | 0 ETH | 0.00295938 | ||||
Send Token | 20841783 | 3 days ago | IN | 0 ETH | 0.00208521 | ||||
Send Token | 20841747 | 3 days ago | IN | 0 ETH | 0.00221428 | ||||
Send Token | 20841295 | 3 days ago | IN | 0 ETH | 0.00431593 | ||||
Send ETH | 20841287 | 3 days ago | IN | 0 ETH | 0.00291278 | ||||
Send Token | 20835091 | 3 days ago | IN | 0 ETH | 0.00531815 | ||||
Send Token | 20834663 | 4 days ago | IN | 0 ETH | 0.00373634 | ||||
Send Token | 20834598 | 4 days ago | IN | 0 ETH | 0.00296337 | ||||
Send Token | 20827961 | 4 days ago | IN | 0 ETH | 0.00426697 | ||||
Send Token | 20827917 | 4 days ago | IN | 0 ETH | 0.00410976 | ||||
Send Token | 20827761 | 4 days ago | IN | 0 ETH | 0.01064655 | ||||
Send Token | 20827751 | 4 days ago | IN | 0 ETH | 0.00802578 | ||||
Send Token | 20827735 | 4 days ago | IN | 0 ETH | 0.01064871 | ||||
Send Token | 20827729 | 4 days ago | IN | 0 ETH | 0.0096657 | ||||
Send Token | 20827028 | 5 days ago | IN | 0 ETH | 0.00365833 |
Latest 14 internal transactions
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
20841287 | 3 days ago | 0.2 ETH | ||||
20692083 | 23 days ago | 0.02138 ETH | ||||
20641528 | 30 days ago | 0.018507 ETH | ||||
20232767 | 88 days ago | 0.032 ETH | ||||
20232760 | 88 days ago | 0.032 ETH | ||||
20232756 | 88 days ago | 0.032 ETH | ||||
20232751 | 88 days ago | 0.032 ETH | ||||
20232746 | 88 days ago | 0.032 ETH | ||||
20232736 | 88 days ago | 0.032 ETH | ||||
20232729 | 88 days ago | 0.032 ETH | ||||
20176159 | 95 days ago | 0.002 ETH | ||||
20176154 | 95 days ago | 0.002 ETH | ||||
19911772 | 132 days ago | 0.005 ETH | ||||
19911345 | 132 days ago | 0.005 ETH |
Loading...
Loading
Contract Name:
MultisigWallet
Compiler Version
v0.8.22+commit.4fc1097e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-05-30 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.1; 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 * ==== * * [IMPORTANT] * ==== * You shouldn't rely on `isContract` to protect against flash loan attacks! * * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract * constructor. * ==== */ function isContract(address account) internal view returns (bool) { // This method relies on extcodesize/address.code.length, which returns 0 // for contracts in construction, since the code is only stored at the end // of the constructor execution. return account.code.length > 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"); (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"); (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"); (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"); (bool success, bytes memory returndata) = target.delegatecall(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the * revert reason using the provided one. * * _Available since v4.3._ */ function verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) internal 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 assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } /** * @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 `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); /** * @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); } 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' 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 require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); } } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } 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 initialOwner) { require(initialOwner != address(0), "Invalid owner address"); _transferOwnership(initialOwner); } /** * @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 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); } } contract MultisigWallet is Ownable { using SafeERC20 for IERC20; struct Transaction { address recepient; address token; uint amount; bool executed; } mapping(uint => Transaction) public transactions; mapping(uint => mapping(address => bool)) public confirmations; mapping(address => bool) public isManager; address[] public managers; uint public required; event Confirmation(address indexed sender, uint indexed transactionId); event Revocation(address indexed sender, uint indexed transactionId); event Submission(uint indexed transactionId); event Execution(uint indexed transactionId); constructor(address initialOwner) Ownable(initialOwner) { } function setRequired(uint _required) external onlyOwner { require((_required > 0 && _required <= managers.length), "Invalid amount of required confirmations"); required = _required; } function addToManagers(address account) external onlyOwner { require(!isManager[account] && account != address(0)); isManager[account] = true; managers.push(account); } function removeFromManagers(address account) external onlyOwner { require(isManager[account] && account != address(0)); require(managers.length - 1 >= required, "Please lower `required` value first"); isManager[account] = false; for (uint i = 0; i < managers.length; i++) { if (managers[i] == account) { managers[i] = managers[managers.length - 1]; managers.pop(); break; } } } function getManagers() public view returns (address[] memory) { return (managers); } modifier confirmed(uint transactionId, address owner) { require(confirmations[transactionId][owner], "Transaction is not confirmed"); _; } modifier notConfirmed(uint transactionId, address owner) { require(!confirmations[transactionId][owner], "Transaction is already confirmed"); _; } modifier notExecuted(uint transactionId) { require(!transactions[transactionId].executed, "Transaction was already executed"); _; } modifier managerExists(address manager) { require(isManager[manager], "Caller is not an authorized wallet"); _; } modifier transactionExists(uint transactionId) { require(transactions[transactionId].recepient != address(0), "Transaction doesn't exist"); _; } modifier transactionDoesntExist(uint transactionId) { require(transactions[transactionId].recepient == address(0), "Transaction already exists"); _; } function sendETH( uint _txId, address _recepient, uint _amount) external managerExists(msg.sender) { require(required > 0, "`required` value is not set"); addTransaction(_txId, address(0), _recepient, _amount); confirmTransaction(_txId); } function sendToken(uint _txId, address _token, address _recepient, uint _amount) external managerExists(msg.sender) { require(required > 0, "`required` value is not set"); addTransaction(_txId, _token, _recepient, _amount); confirmTransaction(_txId); } function addTransaction( uint _txId, address _token, address _recepient, uint _amount) internal transactionDoesntExist(_txId) { require(_recepient != address(0), "Zero address recepient not allowed"); require((_amount > 0), "Amount cannot be zero"); Transaction memory txn = Transaction({ recepient : _recepient, amount : _amount, token : _token, executed : false }); transactions[_txId] = txn; emit Submission(_txId); } function confirmTransaction(uint transactionId) public managerExists(msg.sender) transactionExists(transactionId) notExecuted(transactionId) notConfirmed(transactionId, msg.sender) { confirmations[transactionId][msg.sender] = true; emit Confirmation(msg.sender, transactionId); if (isConfirmed(transactionId)) { executeTransaction(transactionId); } } function revokeConfirmation(uint transactionId) public managerExists(msg.sender) transactionExists(transactionId) confirmed(transactionId, msg.sender) notExecuted(transactionId) { confirmations[transactionId][msg.sender] = false; emit Revocation(msg.sender, transactionId); } function executeTransaction(uint transactionId) internal { uint balance; if (transactions[transactionId].token == address(0)) { balance = address(this).balance; require(transactions[transactionId].amount <= balance, "Insufficient ETH balance on contract"); (bool success,) = transactions[transactionId].recepient.call{ value : transactions[transactionId].amount }(""); require(success, "Transaction execution reverted."); } else { balance = IERC20(transactions[transactionId].token).balanceOf(address(this)); require(transactions[transactionId].amount <= balance, "Insufficient token balance on contract"); IERC20(transactions[transactionId].token).safeTransfer( transactions[transactionId].recepient, transactions[transactionId].amount ); } emit Execution(transactionId); transactions[transactionId].executed = true; } function isConfirmed(uint transactionId) public view returns (bool) { uint count = 0; for (uint i = 0; i < managers.length; i++) { if (confirmations[transactionId][managers[i]]) count += 1; } if (count == required) { return true; } else { return false; } } function getConfirmationCount(uint transactionId) public view returns (uint) { uint count = 0; for (uint i = 0; i < managers.length; i++) { if (confirmations[transactionId][managers[i]]) { count += 1; } } return count; } function getConfirmations(uint transactionId) public view returns (address[] memory _confirmations) { address[] memory confirmationsTemp = new address[](managers.length); uint count = 0; uint i; for (i = 0; i < managers.length; i++) if (confirmations[transactionId][managers[i]]) { confirmationsTemp[count] = managers[i]; count += 1; } _confirmations = new address[](count); for (i = 0; i < count; i++) _confirmations[i] = confirmationsTemp[i]; } function isExecuted(uint transactionId) public view returns (bool) { return transactions[transactionId].executed; } receive() external payable { } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"uint256","name":"transactionId","type":"uint256"}],"name":"Confirmation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"transactionId","type":"uint256"}],"name":"Execution","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":"sender","type":"address"},{"indexed":true,"internalType":"uint256","name":"transactionId","type":"uint256"}],"name":"Revocation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"transactionId","type":"uint256"}],"name":"Submission","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addToManagers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"transactionId","type":"uint256"}],"name":"confirmTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"confirmations","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"transactionId","type":"uint256"}],"name":"getConfirmationCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"transactionId","type":"uint256"}],"name":"getConfirmations","outputs":[{"internalType":"address[]","name":"_confirmations","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getManagers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"transactionId","type":"uint256"}],"name":"isConfirmed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"transactionId","type":"uint256"}],"name":"isExecuted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isManager","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"managers","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeFromManagers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"required","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"transactionId","type":"uint256"}],"name":"revokeConfirmation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_txId","type":"uint256"},{"internalType":"address","name":"_recepient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"sendETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_txId","type":"uint256"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_recepient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"sendToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_required","type":"uint256"}],"name":"setRequired","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"transactions","outputs":[{"internalType":"address","name":"recepient","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"executed","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405234801562000010575f80fd5b5060405162001bb038038062001bb08339810160408190526200003391620000f1565b806001600160a01b0381166200008f5760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964206f776e657220616464726573730000000000000000000000604482015260640160405180910390fd5b6200009a81620000a2565b505062000120565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6020828403121562000102575f80fd5b81516001600160a01b038116811462000119575f80fd5b9392505050565b611a82806200012e5f395ff3fe608060405260043610610113575f3560e01c80638b51d13f1161009d578063c01a8c8411610062578063c01a8c8414610398578063dc8452cd146103b7578063ee06051f146103cc578063f2fde38b146103eb578063f3ae24151461040a575f80fd5b80638b51d13f146102905780638da5cb5b146102bd5780639ace38c2146102d9578063a8d088bb14610358578063b5dc40c314610379575f80fd5b80633d39c260116100e35780633d39c260146101cb578063563f80e41461020257806376a6bf5214610221578063784547a7146102525780637ce3955214610271575f80fd5b80630457d6f21461011e5780630a962f891461013f57806320ea8d861461015e5780633411c81c1461017d575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b5061013d610138366004611780565b610438565b005b34801561014a575f80fd5b5061013d6101593660046117b2565b6104dd565b348015610169575f80fd5b5061013d610178366004611780565b6106c0565b348015610188575f80fd5b506101b66101973660046117cb565b600260209081525f928352604080842090915290825290205460ff1681565b60405190151581526020015b60405180910390f35b3480156101d6575f80fd5b506101ea6101e5366004611780565b61086d565b6040516001600160a01b0390911681526020016101c2565b34801561020d575f80fd5b5061013d61021c3660046117f5565b610895565b34801561022c575f80fd5b506101b661023b366004611780565b5f9081526001602052604090206003015460ff1690565b34801561025d575f80fd5b506101b661026c366004611780565b61092f565b34801561027c575f80fd5b5061013d61028b366004611827565b6109be565b34801561029b575f80fd5b506102af6102aa366004611780565b610a59565b6040519081526020016101c2565b3480156102c8575f80fd5b505f546001600160a01b03166101ea565b3480156102e4575f80fd5b5061032b6102f3366004611780565b600160208190525f918252604090912080549181015460028201546003909201546001600160a01b0393841693909116919060ff1684565b604080516001600160a01b03958616815294909316602085015291830152151560608201526080016101c2565b348015610363575f80fd5b5061036c610ad4565b6040516101c29190611868565b348015610384575f80fd5b5061036c610393366004611780565b610b34565b3480156103a3575f80fd5b5061013d6103b2366004611780565b610cf0565b3480156103c2575f80fd5b506102af60055481565b3480156103d7575f80fd5b5061013d6103e63660046117b2565b610eb8565b3480156103f6575f80fd5b5061013d6104053660046117b2565b610f7e565b348015610415575f80fd5b506101b66104243660046117b2565b60036020525f908152604090205460ff1681565b5f546001600160a01b0316331461046a5760405162461bcd60e51b8152600401610461906118b4565b60405180910390fd5b5f8111801561047b57506004548111155b6104d85760405162461bcd60e51b815260206004820152602860248201527f496e76616c696420616d6f756e74206f6620726571756972656420636f6e6669604482015267726d6174696f6e7360c01b6064820152608401610461565b600555565b5f546001600160a01b031633146105065760405162461bcd60e51b8152600401610461906118b4565b6001600160a01b0381165f9081526003602052604090205460ff16801561053557506001600160a01b03811615155b61053d575f80fd5b60055460045461054f906001906118fd565b10156105a95760405162461bcd60e51b815260206004820152602360248201527f506c65617365206c6f77657220607265717569726564602076616c75652066696044820152621c9cdd60ea1b6064820152608401610461565b6001600160a01b0381165f908152600360205260408120805460ff191690555b6004548110156106bc57816001600160a01b0316600482815481106105f0576105f0611916565b5f918252602090912001546001600160a01b0316036106b45760048054610619906001906118fd565b8154811061062957610629611916565b5f91825260209091200154600480546001600160a01b03909216918390811061065457610654611916565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555060048054806106905761069061192a565b5f8281526020902081015f1990810180546001600160a01b03191690550190555050565b6001016105c9565b5050565b335f8181526003602052604090205460ff166106ee5760405162461bcd60e51b81526004016104619061193e565b5f8281526001602052604090205482906001600160a01b031661074f5760405162461bcd60e51b8152602060048201526019602482015278151c985b9cd858dd1a5bdb88191bd95cdb89dd08195e1a5cdd603a1b6044820152606401610461565b5f8381526002602090815260408083203380855292529091205484919060ff166107bb5760405162461bcd60e51b815260206004820152601c60248201527f5472616e73616374696f6e206973206e6f7420636f6e6669726d6564000000006044820152606401610461565b5f85815260016020526040902060030154859060ff161561081e5760405162461bcd60e51b815260206004820181905260248201527f5472616e73616374696f6e2077617320616c72656164792065786563757465646044820152606401610461565b5f868152600260209081526040808320338085529252808320805460ff191690555188927ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e991a3505050505050565b6004818154811061087c575f80fd5b5f918252602090912001546001600160a01b0316905081565b335f8181526003602052604090205460ff166108c35760405162461bcd60e51b81526004016104619061193e565b5f600554116109145760405162461bcd60e51b815260206004820152601b60248201527f607265717569726564602076616c7565206973206e6f742073657400000000006044820152606401610461565b610920845f8585611018565b61092984610cf0565b50505050565b5f80805b6004548110156109a3575f848152600260205260408120600480549192918490811061096157610961611916565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205460ff161561099b57610998600183611980565b91505b600101610933565b5060055481036109b65750600192915050565b505f92915050565b335f8181526003602052604090205460ff166109ec5760405162461bcd60e51b81526004016104619061193e565b5f60055411610a3d5760405162461bcd60e51b815260206004820152601b60248201527f607265717569726564602076616c7565206973206e6f742073657400000000006044820152606401610461565b610a4985858585611018565b610a5285610cf0565b5050505050565b5f80805b600454811015610acd575f8481526002602052604081206004805491929184908110610a8b57610a8b611916565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615610ac557610ac2600183611980565b91505b600101610a5d565b5092915050565b60606004805480602002602001604051908101604052809291908181526020018280548015610b2a57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610b0c575b5050505050905090565b6004546060905f9067ffffffffffffffff811115610b5457610b54611993565b604051908082528060200260200182016040528015610b7d578160200160208202803683370190505b5090505f805b600454811015610c4b575f8581526002602052604081206004805491929184908110610bb157610bb1611916565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615610c435760048181548110610bf057610bf0611916565b905f5260205f20015f9054906101000a90046001600160a01b0316838381518110610c1d57610c1d611916565b6001600160a01b0390921660209283029190910190910152610c40600183611980565b91505b600101610b83565b8167ffffffffffffffff811115610c6457610c64611993565b604051908082528060200260200182016040528015610c8d578160200160208202803683370190505b5093505f90505b81811015610ce857828181518110610cae57610cae611916565b6020026020010151848281518110610cc857610cc8611916565b6001600160a01b0390921660209283029190910190910152600101610c94565b505050919050565b335f8181526003602052604090205460ff16610d1e5760405162461bcd60e51b81526004016104619061193e565b5f8281526001602052604090205482906001600160a01b0316610d7f5760405162461bcd60e51b8152602060048201526019602482015278151c985b9cd858dd1a5bdb88191bd95cdb89dd08195e1a5cdd603a1b6044820152606401610461565b5f83815260016020526040902060030154839060ff1615610de25760405162461bcd60e51b815260206004820181905260248201527f5472616e73616374696f6e2077617320616c72656164792065786563757465646044820152606401610461565b5f8481526002602090815260408083203380855292529091205485919060ff1615610e4f5760405162461bcd60e51b815260206004820181905260248201527f5472616e73616374696f6e20697320616c726561647920636f6e6669726d65646044820152606401610461565b5f868152600260209081526040808320338085529252808320805460ff191660011790555188927f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef91a3610ea28661092f565b15610eb057610eb0866111dd565b505050505050565b5f546001600160a01b03163314610ee15760405162461bcd60e51b8152600401610461906118b4565b6001600160a01b0381165f9081526003602052604090205460ff16158015610f1157506001600160a01b03811615155b610f19575f80fd5b6001600160a01b03165f818152600360205260408120805460ff191660019081179091556004805491820181559091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319169091179055565b5f546001600160a01b03163314610fa75760405162461bcd60e51b8152600401610461906118b4565b6001600160a01b03811661100c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610461565b6110158161148b565b50565b5f8481526001602052604090205484906001600160a01b03161561107e5760405162461bcd60e51b815260206004820152601a60248201527f5472616e73616374696f6e20616c7265616479206578697374730000000000006044820152606401610461565b6001600160a01b0383166110df5760405162461bcd60e51b815260206004820152602260248201527f5a65726f206164647265737320726563657069656e74206e6f7420616c6c6f77604482015261195960f21b6064820152608401610461565b5f82116111265760405162461bcd60e51b8152602060048201526015602482015274416d6f756e742063616e6e6f74206265207a65726f60581b6044820152606401610461565b604080516080810182526001600160a01b03808616825286811660208084019182528385018781525f606086018181528c8252600193849052878220875181549088166001600160a01b031991821617825595519481018054959097169490951693909317909455516002830155516003909101805491151560ff199092169190911790559151909187917fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e519190a2505050505050565b5f818152600160208190526040822001546001600160a01b031661132157505f81815260016020526040902060020154479081101561126a5760405162461bcd60e51b8152602060048201526024808201527f496e73756666696369656e74204554482062616c616e6365206f6e20636f6e746044820152631c9858dd60e21b6064820152608401610461565b5f82815260016020526040808220805460029091015491516001600160a01b0390911691908381818185875af1925050503d805f81146112c5576040519150601f19603f3d011682016040523d82523d5f602084013e6112ca565b606091505b505090508061131b5760405162461bcd60e51b815260206004820152601f60248201527f5472616e73616374696f6e20657865637574696f6e2072657665727465642e006044820152606401610461565b50611440565b5f82815260016020819052604091829020015490516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611376573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061139a91906119a7565b5f8381526001602052604090206002015490915081101561140c5760405162461bcd60e51b815260206004820152602660248201527f496e73756666696369656e7420746f6b656e2062616c616e6365206f6e20636f6044820152651b9d1c9858dd60d21b6064820152608401610461565b5f828152600160208190526040909120805460028201549190920154611440926001600160a01b03918216929116906114da565b60405182907f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed75905f90a2505f908152600160208190526040909120600301805460ff19169091179055565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261152c908490611531565b505050565b5f611585826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166116029092919063ffffffff16565b80519091501561152c57808060200190518101906115a391906119be565b61152c5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610461565b606061161084845f8561161a565b90505b9392505050565b60608247101561167b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610461565b6001600160a01b0385163b6116d25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610461565b5f80866001600160a01b031685876040516116ed91906119ff565b5f6040518083038185875af1925050503d805f8114611727576040519150601f19603f3d011682016040523d82523d5f602084013e61172c565b606091505b509150915061173c828286611747565b979650505050505050565b60608315611756575081611613565b8251156117665782518084602001fd5b8160405162461bcd60e51b81526004016104619190611a1a565b5f60208284031215611790575f80fd5b5035919050565b80356001600160a01b03811681146117ad575f80fd5b919050565b5f602082840312156117c2575f80fd5b61161382611797565b5f80604083850312156117dc575f80fd5b823591506117ec60208401611797565b90509250929050565b5f805f60608486031215611807575f80fd5b8335925061181760208501611797565b9150604084013590509250925092565b5f805f806080858703121561183a575f80fd5b8435935061184a60208601611797565b925061185860408601611797565b9396929550929360600135925050565b602080825282518282018190525f9190848201906040850190845b818110156118a85783516001600160a01b031683529284019291840191600101611883565b50909695505050505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b81810381811115611910576119106118e9565b92915050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52603160045260245ffd5b60208082526022908201527f43616c6c6572206973206e6f7420616e20617574686f72697a65642077616c6c604082015261195d60f21b606082015260800190565b80820180821115611910576119106118e9565b634e487b7160e01b5f52604160045260245ffd5b5f602082840312156119b7575f80fd5b5051919050565b5f602082840312156119ce575f80fd5b81518015158114611613575f80fd5b5f5b838110156119f75781810151838201526020016119df565b50505f910152565b5f8251611a108184602087016119dd565b9190910192915050565b602081525f8251806020840152611a388160408501602087016119dd565b601f01601f1916919091016040019291505056fea2646970667358221220a0a436ce7646cc22f42f34525ef4365c22cc7d1405285960df7304e292510e8764736f6c6343000816003300000000000000000000000057552be98cb1095791699e95369ffb36abbe5236
Deployed Bytecode
0x608060405260043610610113575f3560e01c80638b51d13f1161009d578063c01a8c8411610062578063c01a8c8414610398578063dc8452cd146103b7578063ee06051f146103cc578063f2fde38b146103eb578063f3ae24151461040a575f80fd5b80638b51d13f146102905780638da5cb5b146102bd5780639ace38c2146102d9578063a8d088bb14610358578063b5dc40c314610379575f80fd5b80633d39c260116100e35780633d39c260146101cb578063563f80e41461020257806376a6bf5214610221578063784547a7146102525780637ce3955214610271575f80fd5b80630457d6f21461011e5780630a962f891461013f57806320ea8d861461015e5780633411c81c1461017d575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b5061013d610138366004611780565b610438565b005b34801561014a575f80fd5b5061013d6101593660046117b2565b6104dd565b348015610169575f80fd5b5061013d610178366004611780565b6106c0565b348015610188575f80fd5b506101b66101973660046117cb565b600260209081525f928352604080842090915290825290205460ff1681565b60405190151581526020015b60405180910390f35b3480156101d6575f80fd5b506101ea6101e5366004611780565b61086d565b6040516001600160a01b0390911681526020016101c2565b34801561020d575f80fd5b5061013d61021c3660046117f5565b610895565b34801561022c575f80fd5b506101b661023b366004611780565b5f9081526001602052604090206003015460ff1690565b34801561025d575f80fd5b506101b661026c366004611780565b61092f565b34801561027c575f80fd5b5061013d61028b366004611827565b6109be565b34801561029b575f80fd5b506102af6102aa366004611780565b610a59565b6040519081526020016101c2565b3480156102c8575f80fd5b505f546001600160a01b03166101ea565b3480156102e4575f80fd5b5061032b6102f3366004611780565b600160208190525f918252604090912080549181015460028201546003909201546001600160a01b0393841693909116919060ff1684565b604080516001600160a01b03958616815294909316602085015291830152151560608201526080016101c2565b348015610363575f80fd5b5061036c610ad4565b6040516101c29190611868565b348015610384575f80fd5b5061036c610393366004611780565b610b34565b3480156103a3575f80fd5b5061013d6103b2366004611780565b610cf0565b3480156103c2575f80fd5b506102af60055481565b3480156103d7575f80fd5b5061013d6103e63660046117b2565b610eb8565b3480156103f6575f80fd5b5061013d6104053660046117b2565b610f7e565b348015610415575f80fd5b506101b66104243660046117b2565b60036020525f908152604090205460ff1681565b5f546001600160a01b0316331461046a5760405162461bcd60e51b8152600401610461906118b4565b60405180910390fd5b5f8111801561047b57506004548111155b6104d85760405162461bcd60e51b815260206004820152602860248201527f496e76616c696420616d6f756e74206f6620726571756972656420636f6e6669604482015267726d6174696f6e7360c01b6064820152608401610461565b600555565b5f546001600160a01b031633146105065760405162461bcd60e51b8152600401610461906118b4565b6001600160a01b0381165f9081526003602052604090205460ff16801561053557506001600160a01b03811615155b61053d575f80fd5b60055460045461054f906001906118fd565b10156105a95760405162461bcd60e51b815260206004820152602360248201527f506c65617365206c6f77657220607265717569726564602076616c75652066696044820152621c9cdd60ea1b6064820152608401610461565b6001600160a01b0381165f908152600360205260408120805460ff191690555b6004548110156106bc57816001600160a01b0316600482815481106105f0576105f0611916565b5f918252602090912001546001600160a01b0316036106b45760048054610619906001906118fd565b8154811061062957610629611916565b5f91825260209091200154600480546001600160a01b03909216918390811061065457610654611916565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555060048054806106905761069061192a565b5f8281526020902081015f1990810180546001600160a01b03191690550190555050565b6001016105c9565b5050565b335f8181526003602052604090205460ff166106ee5760405162461bcd60e51b81526004016104619061193e565b5f8281526001602052604090205482906001600160a01b031661074f5760405162461bcd60e51b8152602060048201526019602482015278151c985b9cd858dd1a5bdb88191bd95cdb89dd08195e1a5cdd603a1b6044820152606401610461565b5f8381526002602090815260408083203380855292529091205484919060ff166107bb5760405162461bcd60e51b815260206004820152601c60248201527f5472616e73616374696f6e206973206e6f7420636f6e6669726d6564000000006044820152606401610461565b5f85815260016020526040902060030154859060ff161561081e5760405162461bcd60e51b815260206004820181905260248201527f5472616e73616374696f6e2077617320616c72656164792065786563757465646044820152606401610461565b5f868152600260209081526040808320338085529252808320805460ff191690555188927ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e991a3505050505050565b6004818154811061087c575f80fd5b5f918252602090912001546001600160a01b0316905081565b335f8181526003602052604090205460ff166108c35760405162461bcd60e51b81526004016104619061193e565b5f600554116109145760405162461bcd60e51b815260206004820152601b60248201527f607265717569726564602076616c7565206973206e6f742073657400000000006044820152606401610461565b610920845f8585611018565b61092984610cf0565b50505050565b5f80805b6004548110156109a3575f848152600260205260408120600480549192918490811061096157610961611916565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205460ff161561099b57610998600183611980565b91505b600101610933565b5060055481036109b65750600192915050565b505f92915050565b335f8181526003602052604090205460ff166109ec5760405162461bcd60e51b81526004016104619061193e565b5f60055411610a3d5760405162461bcd60e51b815260206004820152601b60248201527f607265717569726564602076616c7565206973206e6f742073657400000000006044820152606401610461565b610a4985858585611018565b610a5285610cf0565b5050505050565b5f80805b600454811015610acd575f8481526002602052604081206004805491929184908110610a8b57610a8b611916565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615610ac557610ac2600183611980565b91505b600101610a5d565b5092915050565b60606004805480602002602001604051908101604052809291908181526020018280548015610b2a57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610b0c575b5050505050905090565b6004546060905f9067ffffffffffffffff811115610b5457610b54611993565b604051908082528060200260200182016040528015610b7d578160200160208202803683370190505b5090505f805b600454811015610c4b575f8581526002602052604081206004805491929184908110610bb157610bb1611916565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615610c435760048181548110610bf057610bf0611916565b905f5260205f20015f9054906101000a90046001600160a01b0316838381518110610c1d57610c1d611916565b6001600160a01b0390921660209283029190910190910152610c40600183611980565b91505b600101610b83565b8167ffffffffffffffff811115610c6457610c64611993565b604051908082528060200260200182016040528015610c8d578160200160208202803683370190505b5093505f90505b81811015610ce857828181518110610cae57610cae611916565b6020026020010151848281518110610cc857610cc8611916565b6001600160a01b0390921660209283029190910190910152600101610c94565b505050919050565b335f8181526003602052604090205460ff16610d1e5760405162461bcd60e51b81526004016104619061193e565b5f8281526001602052604090205482906001600160a01b0316610d7f5760405162461bcd60e51b8152602060048201526019602482015278151c985b9cd858dd1a5bdb88191bd95cdb89dd08195e1a5cdd603a1b6044820152606401610461565b5f83815260016020526040902060030154839060ff1615610de25760405162461bcd60e51b815260206004820181905260248201527f5472616e73616374696f6e2077617320616c72656164792065786563757465646044820152606401610461565b5f8481526002602090815260408083203380855292529091205485919060ff1615610e4f5760405162461bcd60e51b815260206004820181905260248201527f5472616e73616374696f6e20697320616c726561647920636f6e6669726d65646044820152606401610461565b5f868152600260209081526040808320338085529252808320805460ff191660011790555188927f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef91a3610ea28661092f565b15610eb057610eb0866111dd565b505050505050565b5f546001600160a01b03163314610ee15760405162461bcd60e51b8152600401610461906118b4565b6001600160a01b0381165f9081526003602052604090205460ff16158015610f1157506001600160a01b03811615155b610f19575f80fd5b6001600160a01b03165f818152600360205260408120805460ff191660019081179091556004805491820181559091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319169091179055565b5f546001600160a01b03163314610fa75760405162461bcd60e51b8152600401610461906118b4565b6001600160a01b03811661100c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610461565b6110158161148b565b50565b5f8481526001602052604090205484906001600160a01b03161561107e5760405162461bcd60e51b815260206004820152601a60248201527f5472616e73616374696f6e20616c7265616479206578697374730000000000006044820152606401610461565b6001600160a01b0383166110df5760405162461bcd60e51b815260206004820152602260248201527f5a65726f206164647265737320726563657069656e74206e6f7420616c6c6f77604482015261195960f21b6064820152608401610461565b5f82116111265760405162461bcd60e51b8152602060048201526015602482015274416d6f756e742063616e6e6f74206265207a65726f60581b6044820152606401610461565b604080516080810182526001600160a01b03808616825286811660208084019182528385018781525f606086018181528c8252600193849052878220875181549088166001600160a01b031991821617825595519481018054959097169490951693909317909455516002830155516003909101805491151560ff199092169190911790559151909187917fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e519190a2505050505050565b5f818152600160208190526040822001546001600160a01b031661132157505f81815260016020526040902060020154479081101561126a5760405162461bcd60e51b8152602060048201526024808201527f496e73756666696369656e74204554482062616c616e6365206f6e20636f6e746044820152631c9858dd60e21b6064820152608401610461565b5f82815260016020526040808220805460029091015491516001600160a01b0390911691908381818185875af1925050503d805f81146112c5576040519150601f19603f3d011682016040523d82523d5f602084013e6112ca565b606091505b505090508061131b5760405162461bcd60e51b815260206004820152601f60248201527f5472616e73616374696f6e20657865637574696f6e2072657665727465642e006044820152606401610461565b50611440565b5f82815260016020819052604091829020015490516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611376573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061139a91906119a7565b5f8381526001602052604090206002015490915081101561140c5760405162461bcd60e51b815260206004820152602660248201527f496e73756666696369656e7420746f6b656e2062616c616e6365206f6e20636f6044820152651b9d1c9858dd60d21b6064820152608401610461565b5f828152600160208190526040909120805460028201549190920154611440926001600160a01b03918216929116906114da565b60405182907f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed75905f90a2505f908152600160208190526040909120600301805460ff19169091179055565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261152c908490611531565b505050565b5f611585826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166116029092919063ffffffff16565b80519091501561152c57808060200190518101906115a391906119be565b61152c5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610461565b606061161084845f8561161a565b90505b9392505050565b60608247101561167b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610461565b6001600160a01b0385163b6116d25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610461565b5f80866001600160a01b031685876040516116ed91906119ff565b5f6040518083038185875af1925050503d805f8114611727576040519150601f19603f3d011682016040523d82523d5f602084013e61172c565b606091505b509150915061173c828286611747565b979650505050505050565b60608315611756575081611613565b8251156117665782518084602001fd5b8160405162461bcd60e51b81526004016104619190611a1a565b5f60208284031215611790575f80fd5b5035919050565b80356001600160a01b03811681146117ad575f80fd5b919050565b5f602082840312156117c2575f80fd5b61161382611797565b5f80604083850312156117dc575f80fd5b823591506117ec60208401611797565b90509250929050565b5f805f60608486031215611807575f80fd5b8335925061181760208501611797565b9150604084013590509250925092565b5f805f806080858703121561183a575f80fd5b8435935061184a60208601611797565b925061185860408601611797565b9396929550929360600135925050565b602080825282518282018190525f9190848201906040850190845b818110156118a85783516001600160a01b031683529284019291840191600101611883565b50909695505050505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b81810381811115611910576119106118e9565b92915050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52603160045260245ffd5b60208082526022908201527f43616c6c6572206973206e6f7420616e20617574686f72697a65642077616c6c604082015261195d60f21b606082015260800190565b80820180821115611910576119106118e9565b634e487b7160e01b5f52604160045260245ffd5b5f602082840312156119b7575f80fd5b5051919050565b5f602082840312156119ce575f80fd5b81518015158114611613575f80fd5b5f5b838110156119f75781810151838201526020016119df565b50505f910152565b5f8251611a108184602087016119dd565b9190910192915050565b602081525f8251806020840152611a388160408501602087016119dd565b601f01601f1916919091016040019291505056fea2646970667358221220a0a436ce7646cc22f42f34525ef4365c22cc7d1405285960df7304e292510e8764736f6c63430008160033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000057552be98cb1095791699e95369ffb36abbe5236
-----Decoded View---------------
Arg [0] : initialOwner (address): 0x57552be98Cb1095791699e95369FfB36aBBe5236
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000057552be98cb1095791699e95369ffb36abbe5236
Deployed Bytecode Sourcemap
16155:7468:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16934:219;;;;;;;;;;-1:-1:-1;16934:219:0;;;;;:::i;:::-;;:::i;:::-;;17369:504;;;;;;;;;;-1:-1:-1;17369:504:0;;;;;:::i;:::-;;:::i;20729:328::-;;;;;;;;;;-1:-1:-1;20729:328:0;;;;;:::i;:::-;;:::i;16422:62::-;;;;;;;;;;-1:-1:-1;16422:62:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;992:14:1;;985:22;967:41;;955:2;940:18;16422:62:0;;;;;;;;16543:25;;;;;;;;;;-1:-1:-1;16543:25:0;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1183:32:1;;;1165:51;;1153:2;1138:18;16543:25:0;1019:203:1;19073:303:0;;;;;;;;;;-1:-1:-1;19073:303:0;;;;;:::i;:::-;;:::i;23448:129::-;;;;;;;;;;-1:-1:-1;23448:129:0;;;;;:::i;:::-;23509:4;23533:27;;;:12;:27;;;;;:36;;;;;;23448:129;22154:376;;;;;;;;;;-1:-1:-1;22154:376:0;;;;;:::i;:::-;;:::i;19384:316::-;;;;;;;;;;-1:-1:-1;19384:316:0;;;;;:::i;:::-;;:::i;22538:311::-;;;;;;;;;;-1:-1:-1;22538:311:0;;;;;:::i;:::-;;:::i;:::-;;;2102:25:1;;;2090:2;2075:18;22538:311:0;1956:177:1;15139:87:0;;;;;;;;;;-1:-1:-1;15185:7:0;15212:6;-1:-1:-1;;;;;15212:6:0;15139:87;;16365:48;;;;;;;;;;-1:-1:-1;16365:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16365:48:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2419:15:1;;;2401:34;;2471:15;;;;2466:2;2451:18;;2444:43;2503:18;;;2496:34;2573:14;2566:22;2561:2;2546:18;;2539:50;2350:3;2335:19;16365:48:0;2138:457:1;17881:98:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;22857:583::-;;;;;;;;;;-1:-1:-1;22857:583:0;;;;;:::i;:::-;;:::i;20292:429::-;;;;;;;;;;-1:-1:-1;20292:429:0;;;;;:::i;:::-;;:::i;16577:20::-;;;;;;;;;;;;;;;;17161:200;;;;;;;;;;-1:-1:-1;17161:200:0;;;;;:::i;:::-;;:::i;15596:201::-;;;;;;;;;;-1:-1:-1;15596:201:0;;;;;:::i;:::-;;:::i;16493:41::-;;;;;;;;;;-1:-1:-1;16493:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16934:219;15185:7;15212:6;-1:-1:-1;;;;;15212:6:0;14502:10;15359:23;15351:68;;;;-1:-1:-1;;;15351:68:0;;;;;;;:::i;:::-;;;;;;;;;17022:1:::1;17010:9;:13;:45;;;;-1:-1:-1::0;17040:8:0::1;:15:::0;17027:28;::::1;;17010:45;17001:113;;;::::0;-1:-1:-1;;;17001:113:0;;3826:2:1;17001:113:0::1;::::0;::::1;3808:21:1::0;3865:2;3845:18;;;3838:30;3904:34;3884:18;;;3877:62;-1:-1:-1;;;3955:18:1;;;3948:38;4003:19;;17001:113:0::1;3624:404:1::0;17001:113:0::1;17125:8;:20:::0;16934:219::o;17369:504::-;15185:7;15212:6;-1:-1:-1;;;;;15212:6:0;14502:10;15359:23;15351:68;;;;-1:-1:-1;;;15351:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17452:18:0;::::1;;::::0;;;:9:::1;:18;::::0;;;;;::::1;;:43:::0;::::1;;;-1:-1:-1::0;;;;;;17474:21:0;::::1;::::0;::::1;17452:43;17444:52;;;::::0;::::1;;17538:8;::::0;17515::::1;:15:::0;:19:::1;::::0;17533:1:::1;::::0;17515:19:::1;:::i;:::-;:31;;17507:79;;;::::0;-1:-1:-1;;;17507:79:0;;4500:2:1;17507:79:0::1;::::0;::::1;4482:21:1::0;4539:2;4519:18;;;4512:30;4578:34;4558:18;;;4551:62;-1:-1:-1;;;4629:18:1;;;4622:33;4672:19;;17507:79:0::1;4298:399:1::0;17507:79:0::1;-1:-1:-1::0;;;;;17597:18:0;::::1;17618:5;17597:18:::0;;;:9:::1;:18;::::0;;;;:26;;-1:-1:-1;;17597:26:0::1;::::0;;17634:232:::1;17655:8;:15:::0;17651:19;::::1;17634:232;;;17711:7;-1:-1:-1::0;;;;;17696:22:0::1;:8;17705:1;17696:11;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;17696:11:0::1;:22:::0;17692:163:::1;;17753:8;17762:15:::0;;:19:::1;::::0;17780:1:::1;::::0;17762:19:::1;:::i;:::-;17753:29;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;17739:8:::1;:11:::0;;-1:-1:-1;;;;;17753:29:0;;::::1;::::0;17748:1;;17739:11;::::1;;;;;:::i;:::-;;;;;;;;;:43;;;;;-1:-1:-1::0;;;;;17739:43:0::1;;;;;-1:-1:-1::0;;;;;17739:43:0::1;;;;;;17801:8;:14;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;17801:14:0;;;;;-1:-1:-1;;;;;;17801:14:0::1;::::0;;;;;17634:232:::1;17369:504:::0;:::o;17692:163::-:1;17672:3;;17634:232;;;;17369:504:::0;:::o;20729:328::-;20808:10;18593:18;;;;:9;:18;;;;;;;;18585:78;;;;-1:-1:-1;;;18585:78:0;;;;;;;:::i;:::-;18806:1:::1;18757:27:::0;;;:12:::1;:27;::::0;;;;:37;20843:13;;-1:-1:-1;;;;;18757:37:0::1;18749:102;;;::::0;-1:-1:-1;;;18749:102:0;;5571:2:1;18749:102:0::1;::::0;::::1;5553:21:1::0;5610:2;5590:18;;;5583:30;-1:-1:-1;;;5629:18:1;;;5622:55;5694:18;;18749:102:0::1;5369:349:1::0;18749:102:0::1;18060:28:::2;::::0;;;:13:::2;:28;::::0;;;;;;;20888:10:::2;18060:35:::0;;;;;;;;;20873:13;;20888:10;18060:35:::2;;18052:89;;;::::0;-1:-1:-1;;;18052:89:0;;5925:2:1;18052:89:0::2;::::0;::::2;5907:21:1::0;5964:2;5944:18;;;5937:30;6003;5983:18;;;5976:58;6051:18;;18052:89:0::2;5723:352:1::0;18052:89:0::2;18420:27:::3;::::0;;;:12:::3;:27;::::0;;;;:36:::3;;::::0;20917:13;;18420:36:::3;;18419:37;18411:95;;;::::0;-1:-1:-1;;;18411:95:0;;6282:2:1;18411:95:0::3;::::0;::::3;6264:21:1::0;;;6301:18;;;6294:30;6360:34;6340:18;;;6333:62;6412:18;;18411:95:0::3;6080:356:1::0;18411:95:0::3;20991:5:::4;20948:28:::0;;;:13:::4;:28;::::0;;;;;;;20977:10:::4;20948:40:::0;;;;;;;;:48;;-1:-1:-1;;20948:48:0::4;::::0;;21012:37;20962:13;;21012:37:::4;::::0;::::4;18152:1:::3;18862::::2;;18674::::1;20729:328:::0;;:::o;16543:25::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16543:25:0;;-1:-1:-1;16543:25:0;:::o;19073:303::-;19187:10;18593:18;;;;:9;:18;;;;;;;;18585:78;;;;-1:-1:-1;;;18585:78:0;;;;;;;:::i;:::-;19234:1:::1;19223:8;;:12;19215:52;;;::::0;-1:-1:-1;;;19215:52:0;;6643:2:1;19215:52:0::1;::::0;::::1;6625:21:1::0;6682:2;6662:18;;;6655:30;6721:29;6701:18;;;6694:57;6768:18;;19215:52:0::1;6441:351:1::0;19215:52:0::1;19278:54;19293:5;19308:1;19312:10;19324:7;19278:14;:54::i;:::-;19343:25;19362:5;19343:18;:25::i;:::-;19073:303:::0;;;;:::o;22154:376::-;22216:4;;;22263:144;22284:8;:15;22280:19;;22263:144;;;22325:28;;;;:13;:28;;;;;22354:8;:11;;22325:28;;;22363:1;;22354:11;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;22354:11:0;22325:41;;;;;;;;;;;;;;;22321:74;;;22385:10;22394:1;22385:10;;:::i;:::-;;;22321:74;22301:3;;22263:144;;;;22430:8;;22421:5;:17;22417:106;;-1:-1:-1;22462:4:0;;22154:376;-1:-1:-1;;22154:376:0:o;22417:106::-;-1:-1:-1;22506:5:0;;22154:376;-1:-1:-1;;22154:376:0:o;19384:316::-;19515:10;18593:18;;;;:9;:18;;;;;;;;18585:78;;;;-1:-1:-1;;;18585:78:0;;;;;;;:::i;:::-;19562:1:::1;19551:8;;:12;19543:52;;;::::0;-1:-1:-1;;;19543:52:0;;6643:2:1;19543:52:0::1;::::0;::::1;6625:21:1::0;6682:2;6662:18;;;6655:30;6721:29;6701:18;;;6694:57;6768:18;;19543:52:0::1;6441:351:1::0;19543:52:0::1;19606:50;19621:5;19628:6;19636:10;19648:7;19606:14;:50::i;:::-;19667:25;19686:5;19667:18;:25::i;:::-;19384:316:::0;;;;;:::o;22538:311::-;22609:4;;;22656:161;22677:8;:15;22673:19;;22656:161;;;22718:28;;;;:13;:28;;;;;22747:8;:11;;22718:28;;;22756:1;;22747:11;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;22747:11:0;22718:41;;;;;;;;;;;;;;;22714:92;;;22780:10;22789:1;22780:10;;:::i;:::-;;;22714:92;22694:3;;22656:161;;;-1:-1:-1;22834:5:0;22538:311;-1:-1:-1;;22538:311:0:o;17881:98::-;17925:16;17962:8;17954:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17954:17:0;;;;;;;;;;;;;;;;;;;;;;;17881:98;:::o;22857:583::-;23024:8;:15;22924:31;;22973:34;;23010:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23010:30:0;;22973:67;;23051:10;23076:6;23093:200;23109:8;:15;23105:19;;23093:200;;;23148:28;;;;:13;:28;;;;;23177:8;:11;;23148:28;;;23186:1;;23177:11;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;23177:11:0;23148:41;;;;;;;;;;;;;;;23144:149;;;23237:8;23246:1;23237:11;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23237:11:0;23210:17;23228:5;23210:24;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23210:38:0;;;:24;;;;;;;;;;;:38;23267:10;23276:1;23267:10;;:::i;:::-;;;23144:149;23126:3;;23093:200;;;23334:5;23320:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23320:20:0;;23303:37;;23360:1;23356:5;;23351:81;23367:5;23363:1;:9;23351:81;;;23412:17;23430:1;23412:20;;;;;;;;:::i;:::-;;;;;;;23392:14;23407:1;23392:17;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23392:40:0;;;:17;;;;;;;;;;;:40;23374:3;;23351:81;;;22962:478;;;22857:583;;;:::o;20292:429::-;20366:10;18593:18;;;;:9;:18;;;;;;;;18585:78;;;;-1:-1:-1;;;18585:78:0;;;;;;;:::i;:::-;18806:1:::1;18757:27:::0;;;:12:::1;:27;::::0;;;;:37;20401:13;;-1:-1:-1;;;;;18757:37:0::1;18749:102;;;::::0;-1:-1:-1;;;18749:102:0;;5571:2:1;18749:102:0::1;::::0;::::1;5553:21:1::0;5610:2;5590:18;;;5583:30;-1:-1:-1;;;5629:18:1;;;5622:55;5694:18;;18749:102:0::1;5369:349:1::0;18749:102:0::1;18420:27:::2;::::0;;;:12:::2;:27;::::0;;;;:36:::2;;::::0;20433:13;;18420:36:::2;;18419:37;18411:95;;;::::0;-1:-1:-1;;;18411:95:0;;6282:2:1;18411:95:0::2;::::0;::::2;6264:21:1::0;;;6301:18;;;6294:30;6360:34;6340:18;;;6333:62;6412:18;;18411:95:0::2;6080:356:1::0;18411:95:0::2;18246:28:::3;::::0;;;:13:::3;:28;::::0;;;;;;;20481:10:::3;18246:35:::0;;;;;;;;;20466:13;;20481:10;18246:35:::3;;18245:36;18237:94;;;::::0;-1:-1:-1;;;18237:94:0;;7261:2:1;18237:94:0::3;::::0;::::3;7243:21:1::0;;;7280:18;;;7273:30;7339:34;7319:18;;;7312:62;7391:18;;18237:94:0::3;7059:356:1::0;18237:94:0::3;20509:28:::4;::::0;;;:13:::4;:28;::::0;;;;;;;20538:10:::4;20509:40:::0;;;;;;;;:47;;-1:-1:-1;;20509:47:0::4;20552:4;20509:47;::::0;;20572:39;20523:13;;20572:39:::4;::::0;::::4;20626:26;20638:13;20626:11;:26::i;:::-;20622:92;;;20669:33;20688:13;20669:18;:33::i;:::-;18517:1:::3;;18862::::2;18674::::1;20292:429:::0;;:::o;17161:200::-;15185:7;15212:6;-1:-1:-1;;;;;15212:6:0;14502:10;15359:23;15351:68;;;;-1:-1:-1;;;15351:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17240:18:0;::::1;;::::0;;;:9:::1;:18;::::0;;;;;::::1;;17239:19;:44:::0;::::1;;;-1:-1:-1::0;;;;;;17262:21:0;::::1;::::0;::::1;17239:44;17231:53;;;::::0;::::1;;-1:-1:-1::0;;;;;17295:18:0::1;;::::0;;;:9:::1;:18;::::0;;;;:25;;-1:-1:-1;;17295:25:0::1;17316:4;17295:25:::0;;::::1;::::0;;;17331:8:::1;:22:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;17331:22:0::1;::::0;;::::1;::::0;;17161:200::o;15596:201::-;15185:7;15212:6;-1:-1:-1;;;;;15212:6:0;14502:10;15359:23;15351:68;;;;-1:-1:-1;;;15351:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15685:22:0;::::1;15677:73;;;::::0;-1:-1:-1;;;15677:73:0;;7622:2:1;15677:73:0::1;::::0;::::1;7604:21:1::0;7661:2;7641:18;;;7634:30;7700:34;7680:18;;;7673:62;-1:-1:-1;;;7751:18:1;;;7744:36;7797:19;;15677:73:0::1;7420:402:1::0;15677:73:0::1;15761:28;15780:8;15761:18;:28::i;:::-;15596:201:::0;:::o;19708:576::-;18999:1;18950:27;;;:12;:27;;;;;:37;19868:5;;-1:-1:-1;;;;;18950:37:0;:51;18942:103;;;;-1:-1:-1;;;18942:103:0;;8029:2:1;18942:103:0;;;8011:21:1;8068:2;8048:18;;;8041:30;8107:28;8087:18;;;8080:56;8153:18;;18942:103:0;7827:350:1;18942:103:0;-1:-1:-1;;;;;19901:24:0;::::1;19893:84;;;::::0;-1:-1:-1;;;19893:84:0;;8384:2:1;19893:84:0::1;::::0;::::1;8366:21:1::0;8423:2;8403:18;;;8396:30;8462:34;8442:18;;;8435:62;-1:-1:-1;;;8513:18:1;;;8506:32;8555:19;;19893:84:0::1;8182:398:1::0;19893:84:0::1;20007:1;19997:7;:11;19988:47;;;::::0;-1:-1:-1;;;19988:47:0;;8787:2:1;19988:47:0::1;::::0;::::1;8769:21:1::0;8826:2;8806:18;;;8799:30;-1:-1:-1;;;8845:18:1;;;8838:51;8906:18;;19988:47:0::1;8585:345:1::0;19988:47:0::1;20071:136;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;20071:136:0;;::::1;::::0;;;;::::1;;::::0;;::::1;::::0;;;;;;;;;20046:22:::1;20071:136:::0;;;;;;20218:19;;;20071:136;20218:19;;;;;;;:25;;;;;;::::1;-1:-1:-1::0;;;;;;20218:25:0;;::::1;;::::0;;;;;;::::1;::::0;;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;;;::::1;::::0;::::1;::::0;;::::1;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;20218:25:0;;::::1;::::0;;;::::1;::::0;;20259:17;;20071:136;;20231:5;;20259:17:::1;::::0;20046:22;20259:17:::1;19882:402;19708:576:::0;;;;;:::o;21065:1081::-;21138:12;21165:27;;;:12;:27;;;;;;;:33;;-1:-1:-1;;;;;21165:33:0;21161:884;;-1:-1:-1;21283:27:0;;;;:12;:27;;;;;:34;;;21239:21;;21283:45;-1:-1:-1;21283:45:0;21275:111;;;;-1:-1:-1;;;21275:111:0;;9137:2:1;21275:111:0;;;9119:21:1;9176:2;9156:18;;;9149:30;9215:34;9195:18;;;9188:62;-1:-1:-1;;;9266:18:1;;;9259:34;9310:19;;21275:111:0;8935:400:1;21275:111:0;21402:12;21419:27;;;:12;:27;;;;;;:37;;21484:34;;;;;21419:118;;-1:-1:-1;;;;;21419:37:0;;;;21484:34;21402:12;21419:118;21402:12;21419:118;21484:34;21419:37;:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21401:136;;;21560:7;21552:51;;;;-1:-1:-1;;;21552:51:0;;9752:2:1;21552:51:0;;;9734:21:1;9791:2;9771:18;;;9764:30;9830:33;9810:18;;;9803:61;9881:18;;21552:51:0;9550:355:1;21552:51:0;21214:401;21161:884;;;21653:27;;;;:12;:27;;;;;;;;;:33;;21646:66;;-1:-1:-1;;;21646:66:0;;21706:4;21646:66;;;1165:51:1;-1:-1:-1;;;;;21653:33:0;;;;21646:51;;1138:18:1;;21646:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21735:27;;;;:12;:27;;;;;:34;;;21636:76;;-1:-1:-1;21735:45:0;-1:-1:-1;21735:45:0;21727:113;;;;-1:-1:-1;;;21727:113:0;;10301:2:1;21727:113:0;;;10283:21:1;10340:2;10320:18;;;10313:30;10379:34;10359:18;;;10352:62;-1:-1:-1;;;10430:18:1;;;10423:36;10476:19;;21727:113:0;10099:402:1;21727:113:0;21928:27;;;;:12;:27;;;;;;;;:37;;21984:34;;;;21862:33;;;;;21855:178;;-1:-1:-1;;;;;21862:33:0;;;;21928:37;;;21855:54;:178::i;:::-;22060:24;;22070:13;;22060:24;;;;;-1:-1:-1;22095:27:0;;;;22134:4;22095:27;;;;;;;;:36;;:43;;-1:-1:-1;;22095:43:0;;;;;;21065:1081::o;15957:191::-;16031:16;16050:6;;-1:-1:-1;;;;;16067:17:0;;;-1:-1:-1;;;;;;16067:17:0;;;;;;16100:40;;16050:6;;;;;;;16100:40;;16031:16;16100:40;16020:128;15957:191;:::o;11117:211::-;11261:58;;;-1:-1:-1;;;;;10698:32:1;;11261:58:0;;;10680:51:1;10747:18;;;;10740:34;;;11261:58:0;;;;;;;;;;10653:18:1;;;;11261:58:0;;;;;;;;-1:-1:-1;;;;;11261:58:0;-1:-1:-1;;;11261:58:0;;;11234:86;;11254:5;;11234:19;:86::i;:::-;11117:211;;;:::o;13666:716::-;14090:23;14116:69;14144:4;14116:69;;;;;;;;;;;;;;;;;14124:5;-1:-1:-1;;;;;14116:27:0;;;:69;;;;;:::i;:::-;14200:17;;14090:95;;-1:-1:-1;14200:21:0;14196:179;;14297:10;14286:30;;;;;;;;;;;;:::i;:::-;14278:85;;;;-1:-1:-1;;;14278:85:0;;11269:2:1;14278:85:0;;;11251:21:1;11308:2;11288:18;;;11281:30;11347:34;11327:18;;;11320:62;-1:-1:-1;;;11398:18:1;;;11391:40;11448:19;;14278:85:0;11067:406:1;3815:229:0;3952:12;3984:52;4006:6;4014:4;4020:1;4023:12;3984:21;:52::i;:::-;3977:59;;3815:229;;;;;;:::o;4935:511::-;5105:12;5163:5;5138:21;:30;;5130:81;;;;-1:-1:-1;;;5130:81:0;;11680:2:1;5130:81:0;;;11662:21:1;11719:2;11699:18;;;11692:30;11758:34;11738:18;;;11731:62;-1:-1:-1;;;11809:18:1;;;11802:36;11855:19;;5130:81:0;11478:402:1;5130:81:0;-1:-1:-1;;;;;1365:19:0;;;5222:60;;;;-1:-1:-1;;;5222:60:0;;12087:2:1;5222:60:0;;;12069:21:1;12126:2;12106:18;;;12099:30;12165:31;12145:18;;;12138:59;12214:18;;5222:60:0;11885:353:1;5222:60:0;5296:12;5310:23;5337:6;-1:-1:-1;;;;;5337:11:0;5357:5;5364:4;5337:32;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5295:74;;;;5387:51;5404:7;5413:10;5425:12;5387:16;:51::i;:::-;5380:58;4935:511;-1:-1:-1;;;;;;;4935:511:0:o;7622:712::-;7772:12;7801:7;7797:530;;;-1:-1:-1;7832:10:0;7825:17;;7797:530;7946:17;;:21;7942:374;;8144:10;8138:17;8205:15;8192:10;8188:2;8184:19;8177:44;7942:374;8287:12;8280:20;;-1:-1:-1;;;8280:20:0;;;;;;;;:::i;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;199:173::-;267:20;;-1:-1:-1;;;;;316:31:1;;306:42;;296:70;;362:1;359;352:12;296:70;199:173;;;:::o;377:186::-;436:6;489:2;477:9;468:7;464:23;460:32;457:52;;;505:1;502;495:12;457:52;528:29;547:9;528:29;:::i;568:254::-;636:6;644;697:2;685:9;676:7;672:23;668:32;665:52;;;713:1;710;703:12;665:52;749:9;736:23;726:33;;778:38;812:2;801:9;797:18;778:38;:::i;:::-;768:48;;568:254;;;;;:::o;1227:322::-;1304:6;1312;1320;1373:2;1361:9;1352:7;1348:23;1344:32;1341:52;;;1389:1;1386;1379:12;1341:52;1425:9;1412:23;1402:33;;1454:38;1488:2;1477:9;1473:18;1454:38;:::i;:::-;1444:48;;1539:2;1528:9;1524:18;1511:32;1501:42;;1227:322;;;;;:::o;1554:397::-;1640:6;1648;1656;1664;1717:3;1705:9;1696:7;1692:23;1688:33;1685:53;;;1734:1;1731;1724:12;1685:53;1770:9;1757:23;1747:33;;1799:38;1833:2;1822:9;1818:18;1799:38;:::i;:::-;1789:48;;1856:38;1890:2;1879:9;1875:18;1856:38;:::i;:::-;1554:397;;;;-1:-1:-1;1846:48:1;;1941:2;1926:18;1913:32;;-1:-1:-1;;1554:397:1:o;2600:658::-;2771:2;2823:21;;;2893:13;;2796:18;;;2915:22;;;2742:4;;2771:2;2994:15;;;;2968:2;2953:18;;;2742:4;3037:195;3051:6;3048:1;3045:13;3037:195;;;3116:13;;-1:-1:-1;;;;;3112:39:1;3100:52;;3207:15;;;;3172:12;;;;3148:1;3066:9;3037:195;;;-1:-1:-1;3249:3:1;;2600:658;-1:-1:-1;;;;;;2600:658:1:o;3263:356::-;3465:2;3447:21;;;3484:18;;;3477:30;3543:34;3538:2;3523:18;;3516:62;3610:2;3595:18;;3263:356::o;4033:127::-;4094:10;4089:3;4085:20;4082:1;4075:31;4125:4;4122:1;4115:15;4149:4;4146:1;4139:15;4165:128;4232:9;;;4253:11;;;4250:37;;;4267:18;;:::i;:::-;4165:128;;;;:::o;4702:127::-;4763:10;4758:3;4754:20;4751:1;4744:31;4794:4;4791:1;4784:15;4818:4;4815:1;4808:15;4834:127;4895:10;4890:3;4886:20;4883:1;4876:31;4926:4;4923:1;4916:15;4950:4;4947:1;4940:15;4966:398;5168:2;5150:21;;;5207:2;5187:18;;;5180:30;5246:34;5241:2;5226:18;;5219:62;-1:-1:-1;;;5312:2:1;5297:18;;5290:32;5354:3;5339:19;;4966:398::o;6797:125::-;6862:9;;;6883:10;;;6880:36;;;6896:18;;:::i;6927:127::-;6988:10;6983:3;6979:20;6976:1;6969:31;7019:4;7016:1;7009:15;7043:4;7040:1;7033:15;9910:184;9980:6;10033:2;10021:9;10012:7;10008:23;10004:32;10001:52;;;10049:1;10046;10039:12;10001:52;-1:-1:-1;10072:16:1;;9910:184;-1:-1:-1;9910:184:1:o;10785:277::-;10852:6;10905:2;10893:9;10884:7;10880:23;10876:32;10873:52;;;10921:1;10918;10911:12;10873:52;10953:9;10947:16;11006:5;10999:13;10992:21;10985:5;10982:32;10972:60;;11028:1;11025;11018:12;12243:250;12328:1;12338:113;12352:6;12349:1;12346:13;12338:113;;;12428:11;;;12422:18;12409:11;;;12402:39;12374:2;12367:10;12338:113;;;-1:-1:-1;;12485:1:1;12467:16;;12460:27;12243:250::o;12498:287::-;12627:3;12665:6;12659:13;12681:66;12740:6;12735:3;12728:4;12720:6;12716:17;12681:66;:::i;:::-;12763:16;;;;;12498:287;-1:-1:-1;;12498:287:1:o;12790:396::-;12939:2;12928:9;12921:21;12902:4;12971:6;12965:13;13014:6;13009:2;12998:9;12994:18;12987:34;13030:79;13102:6;13097:2;13086:9;13082:18;13077:2;13069:6;13065:15;13030:79;:::i;:::-;13170:2;13149:15;-1:-1:-1;;13145:29:1;13130:45;;;;13177:2;13126:54;;12790:396;-1:-1:-1;;12790:396:1:o
Swarm Source
ipfs://a0a436ce7646cc22f42f34525ef4365c22cc7d1405285960df7304e292510e87
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.