Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Latest 22 from a total of 22 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Pay | 24685712 | 15 hrs ago | IN | 0 ETH | 0.00001282 | ||||
| Pay | 24685692 | 15 hrs ago | IN | 0 ETH | 0.00001386 | ||||
| Pay | 24685558 | 16 hrs ago | IN | 0 ETH | 0.0000153 | ||||
| Pay | 24685458 | 16 hrs ago | IN | 0 ETH | 0.00001569 | ||||
| Pay | 24356311 | 46 days ago | IN | 0 ETH | 0.00119208 | ||||
| Pay | 24356308 | 46 days ago | IN | 0 ETH | 0.00091328 | ||||
| Pay | 24356248 | 46 days ago | IN | 0 ETH | 0.00014376 | ||||
| Pay | 24355714 | 46 days ago | IN | 0 ETH | 0.00007337 | ||||
| Pay | 24355660 | 46 days ago | IN | 0 ETH | 0.00013512 | ||||
| Pay | 24354927 | 46 days ago | IN | 0 ETH | 0.00000412 | ||||
| Pay | 24354446 | 46 days ago | IN | 0 ETH | 0.00000593 | ||||
| Pay | 24350474 | 47 days ago | IN | 0 ETH | 0.00001384 | ||||
| Pay | 24347954 | 47 days ago | IN | 0 ETH | 0.00000459 | ||||
| Pay | 24347787 | 47 days ago | IN | 0 ETH | 0.00000923 | ||||
| Pay | 24346833 | 47 days ago | IN | 0 ETH | 0.00000752 | ||||
| Pay | 24346591 | 47 days ago | IN | 0 ETH | 0.0000082 | ||||
| Pay | 24346345 | 48 days ago | IN | 0 ETH | 0.00000656 | ||||
| Pay | 24340160 | 48 days ago | IN | 0 ETH | 0.00000573 | ||||
| Add Operator | 24340085 | 48 days ago | IN | 0 ETH | 0.00009873 | ||||
| Remove Operator | 24340081 | 48 days ago | IN | 0 ETH | 0.00005343 | ||||
| Pay | 24226819 | 64 days ago | IN | 0 ETH | 0.00002077 | ||||
| Add Operator | 24189354 | 69 days ago | IN | 0 ETH | 0.00009929 |
Latest 1 internal transaction
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| 0x60806040 | 24189327 | 69 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
TokenPaymentVault
Compiler Version
v0.8.20+commit.a1b79de6
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
contract TokenPaymentVault {
using SafeERC20 for IERC20;
address public owner;
mapping(address => bool) public operators;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
event OperatorAdded(address indexed operator);
event OperatorRemoved(address indexed operator);
event TokenRescued(address indexed token, address indexed to, uint256 amount);
event NativeRescued(address indexed to, uint256 amount);
event PaymentExecuted(address indexed token, address indexed from, address indexed to, uint256 amount);
modifier onlyOwner() {
require(msg.sender == owner, "ACCESS_DENIED_OWNER");
_;
}
modifier onlyOperatorOrOwner() {
require(msg.sender == owner || operators[msg.sender], "ACCESS_DENIED_OPERATOR");
_;
}
constructor(address initialOwner) {
owner = initialOwner;
emit OwnershipTransferred(address(0), initialOwner);
}
function transferOwnership(address newOwner) external onlyOwner {
require(newOwner != address(0), "INVALID_OWNER");
address oldOwner = owner;
owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
function addOperator(address operator) external onlyOwner {
require(operator != address(0), "INVALID_OPERATOR");
require(!operators[operator], "OPERATOR_EXISTS");
operators[operator] = true;
emit OperatorAdded(operator);
}
function removeOperator(address operator) external onlyOwner {
require(operators[operator], "OPERATOR_NOT_FOUND");
operators[operator] = false;
emit OperatorRemoved(operator);
}
function rescueToken(
address _token,
address to,
uint256 amount
) external onlyOwner {
require(_token != address(0), "INVALID_TOKEN");
require(to != address(0), "INVALID_RECIPIENT");
IERC20 token = IERC20(_token);
token.safeTransfer(to, amount);
emit TokenRescued(_token, to, amount);
}
function rescueNative(
address payable to,
uint256 amount
) external onlyOwner {
require(to != address(0), "INVALID_RECIPIENT");
require(address(this).balance >= amount, "INSUFFICIENT_BALANCE");
(bool success, ) = to.call{value: amount}("");
require(success, "NATIVE_TRANSFER_FAILED");
emit NativeRescued(to, amount);
}
function pay(
address _token,
address from,
address to,
uint256 amount
) external onlyOperatorOrOwner {
require(_token != address(0), "INVALID_TOKEN");
require(from != address(0), "INVALID_SENDER");
require(to != address(0), "INVALID_RECIPIENT");
IERC20 token = IERC20(_token);
token.safeTransferFrom(from, to, amount);
emit PaymentExecuted(_token, from, to, amount);
}
function placehol2der2234() pure internal {}
receive() external payable {}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.3.0) (token/ERC20/utils/SafeERC20.sol)
pragma solidity ^0.8.20;
import {IERC20} from "../IERC20.sol";
import {IERC1363} from "../../../interfaces/IERC1363.sol";
/**
* @title SafeERC20
* @dev Wrappers around ERC-20 operations that throw on failure (when the token
* contract returns false). Tokens that return no value (and instead revert or
* throw on failure) are also supported, non-reverting calls are assumed to be
* successful.
* To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,
* which allows you to call the safe operations as `token.safeTransfer(...)`, etc.
*/
library SafeERC20 {
/**
* @dev An operation with an ERC-20 token failed.
*/
error SafeERC20FailedOperation(address token);
/**
* @dev Indicates a failed `decreaseAllowance` request.
*/
error SafeERC20FailedDecreaseAllowance(address spender, uint256 currentAllowance, uint256 requestedDecrease);
/**
* @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,
* non-reverting calls are assumed to be successful.
*/
function safeTransfer(IERC20 token, address to, uint256 value) internal {
_callOptionalReturn(token, abi.encodeCall(token.transfer, (to, value)));
}
/**
* @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the
* calling contract. If `token` returns no value, non-reverting calls are assumed to be successful.
*/
function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {
_callOptionalReturn(token, abi.encodeCall(token.transferFrom, (from, to, value)));
}
/**
* @dev Variant of {safeTransfer} that returns a bool instead of reverting if the operation is not successful.
*/
function trySafeTransfer(IERC20 token, address to, uint256 value) internal returns (bool) {
return _callOptionalReturnBool(token, abi.encodeCall(token.transfer, (to, value)));
}
/**
* @dev Variant of {safeTransferFrom} that returns a bool instead of reverting if the operation is not successful.
*/
function trySafeTransferFrom(IERC20 token, address from, address to, uint256 value) internal returns (bool) {
return _callOptionalReturnBool(token, abi.encodeCall(token.transferFrom, (from, to, value)));
}
/**
* @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,
* non-reverting calls are assumed to be successful.
*
* IMPORTANT: If the token implements ERC-7674 (ERC-20 with temporary allowance), and if the "client"
* smart contract uses ERC-7674 to set temporary allowances, then the "client" smart contract should avoid using
* this function. Performing a {safeIncreaseAllowance} or {safeDecreaseAllowance} operation on a token contract
* that has a non-zero temporary allowance (for that particular owner-spender) will result in unexpected behavior.
*/
function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {
uint256 oldAllowance = token.allowance(address(this), spender);
forceApprove(token, spender, oldAllowance + value);
}
/**
* @dev Decrease the calling contract's allowance toward `spender` by `requestedDecrease`. If `token` returns no
* value, non-reverting calls are assumed to be successful.
*
* IMPORTANT: If the token implements ERC-7674 (ERC-20 with temporary allowance), and if the "client"
* smart contract uses ERC-7674 to set temporary allowances, then the "client" smart contract should avoid using
* this function. Performing a {safeIncreaseAllowance} or {safeDecreaseAllowance} operation on a token contract
* that has a non-zero temporary allowance (for that particular owner-spender) will result in unexpected behavior.
*/
function safeDecreaseAllowance(IERC20 token, address spender, uint256 requestedDecrease) internal {
unchecked {
uint256 currentAllowance = token.allowance(address(this), spender);
if (currentAllowance < requestedDecrease) {
revert SafeERC20FailedDecreaseAllowance(spender, currentAllowance, requestedDecrease);
}
forceApprove(token, spender, currentAllowance - requestedDecrease);
}
}
/**
* @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,
* non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval
* to be set to zero before setting it to a non-zero value, such as USDT.
*
* NOTE: If the token implements ERC-7674, this function will not modify any temporary allowance. This function
* only sets the "standard" allowance. Any temporary allowance will remain active, in addition to the value being
* set here.
*/
function forceApprove(IERC20 token, address spender, uint256 value) internal {
bytes memory approvalCall = abi.encodeCall(token.approve, (spender, value));
if (!_callOptionalReturnBool(token, approvalCall)) {
_callOptionalReturn(token, abi.encodeCall(token.approve, (spender, 0)));
_callOptionalReturn(token, approvalCall);
}
}
/**
* @dev Performs an {ERC1363} transferAndCall, with a fallback to the simple {ERC20} transfer if the target has no
* code. This can be used to implement an {ERC721}-like safe transfer that rely on {ERC1363} checks when
* targeting contracts.
*
* Reverts if the returned value is other than `true`.
*/
function transferAndCallRelaxed(IERC1363 token, address to, uint256 value, bytes memory data) internal {
if (to.code.length == 0) {
safeTransfer(token, to, value);
} else if (!token.transferAndCall(to, value, data)) {
revert SafeERC20FailedOperation(address(token));
}
}
/**
* @dev Performs an {ERC1363} transferFromAndCall, with a fallback to the simple {ERC20} transferFrom if the target
* has no code. This can be used to implement an {ERC721}-like safe transfer that rely on {ERC1363} checks when
* targeting contracts.
*
* Reverts if the returned value is other than `true`.
*/
function transferFromAndCallRelaxed(
IERC1363 token,
address from,
address to,
uint256 value,
bytes memory data
) internal {
if (to.code.length == 0) {
safeTransferFrom(token, from, to, value);
} else if (!token.transferFromAndCall(from, to, value, data)) {
revert SafeERC20FailedOperation(address(token));
}
}
/**
* @dev Performs an {ERC1363} approveAndCall, with a fallback to the simple {ERC20} approve if the target has no
* code. This can be used to implement an {ERC721}-like safe transfer that rely on {ERC1363} checks when
* targeting contracts.
*
* NOTE: When the recipient address (`to`) has no code (i.e. is an EOA), this function behaves as {forceApprove}.
* Opposedly, when the recipient address (`to`) has code, this function only attempts to call {ERC1363-approveAndCall}
* once without retrying, and relies on the returned value to be true.
*
* Reverts if the returned value is other than `true`.
*/
function approveAndCallRelaxed(IERC1363 token, address to, uint256 value, bytes memory data) internal {
if (to.code.length == 0) {
forceApprove(token, to, value);
} else if (!token.approveAndCall(to, value, data)) {
revert SafeERC20FailedOperation(address(token));
}
}
/**
* @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).
*
* This is a variant of {_callOptionalReturnBool} that reverts if call fails to meet the requirements.
*/
function _callOptionalReturn(IERC20 token, bytes memory data) private {
uint256 returnSize;
uint256 returnValue;
assembly ("memory-safe") {
let success := call(gas(), token, 0, add(data, 0x20), mload(data), 0, 0x20)
// bubble errors
if iszero(success) {
let ptr := mload(0x40)
returndatacopy(ptr, 0, returndatasize())
revert(ptr, returndatasize())
}
returnSize := returndatasize()
returnValue := mload(0)
}
if (returnSize == 0 ? address(token).code.length == 0 : returnValue != 1) {
revert SafeERC20FailedOperation(address(token));
}
}
/**
* @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).
*
* This is a variant of {_callOptionalReturn} that silently catches all reverts and returns a bool instead.
*/
function _callOptionalReturnBool(IERC20 token, bytes memory data) private returns (bool) {
bool success;
uint256 returnSize;
uint256 returnValue;
assembly ("memory-safe") {
success := call(gas(), token, 0, add(data, 0x20), mload(data), 0, 0x20)
returnSize := returndatasize()
returnValue := mload(0)
}
return success && (returnSize == 0 ? address(token).code.length > 0 : returnValue == 1);
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.4.0) (token/ERC20/IERC20.sol)
pragma solidity >=0.4.16;
/**
* @dev Interface of the ERC-20 standard as defined in the ERC.
*/
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 value of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the value of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves a `value` amount of 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 value) 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 a `value` amount of tokens 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 value) external returns (bool);
/**
* @dev Moves a `value` amount of tokens from `from` to `to` using the
* allowance mechanism. `value` 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 value) external returns (bool);
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.4.0) (interfaces/IERC1363.sol)
pragma solidity >=0.6.2;
import {IERC20} from "./IERC20.sol";
import {IERC165} from "./IERC165.sol";
/**
* @title IERC1363
* @dev Interface of the ERC-1363 standard as defined in the https://eips.ethereum.org/EIPS/eip-1363[ERC-1363].
*
* Defines an extension interface for ERC-20 tokens that supports executing code on a recipient contract
* after `transfer` or `transferFrom`, or code on a spender contract after `approve`, in a single transaction.
*/
interface IERC1363 is IERC20, IERC165 {
/*
* Note: the ERC-165 identifier for this interface is 0xb0202a11.
* 0xb0202a11 ===
* bytes4(keccak256('transferAndCall(address,uint256)')) ^
* bytes4(keccak256('transferAndCall(address,uint256,bytes)')) ^
* bytes4(keccak256('transferFromAndCall(address,address,uint256)')) ^
* bytes4(keccak256('transferFromAndCall(address,address,uint256,bytes)')) ^
* bytes4(keccak256('approveAndCall(address,uint256)')) ^
* bytes4(keccak256('approveAndCall(address,uint256,bytes)'))
*/
/**
* @dev Moves a `value` amount of tokens from the caller's account to `to`
* and then calls {IERC1363Receiver-onTransferReceived} on `to`.
* @param to The address which you want to transfer to.
* @param value The amount of tokens to be transferred.
* @return A boolean value indicating whether the operation succeeded unless throwing.
*/
function transferAndCall(address to, uint256 value) external returns (bool);
/**
* @dev Moves a `value` amount of tokens from the caller's account to `to`
* and then calls {IERC1363Receiver-onTransferReceived} on `to`.
* @param to The address which you want to transfer to.
* @param value The amount of tokens to be transferred.
* @param data Additional data with no specified format, sent in call to `to`.
* @return A boolean value indicating whether the operation succeeded unless throwing.
*/
function transferAndCall(address to, uint256 value, bytes calldata data) external returns (bool);
/**
* @dev Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism
* and then calls {IERC1363Receiver-onTransferReceived} on `to`.
* @param from The address which you want to send tokens from.
* @param to The address which you want to transfer to.
* @param value The amount of tokens to be transferred.
* @return A boolean value indicating whether the operation succeeded unless throwing.
*/
function transferFromAndCall(address from, address to, uint256 value) external returns (bool);
/**
* @dev Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism
* and then calls {IERC1363Receiver-onTransferReceived} on `to`.
* @param from The address which you want to send tokens from.
* @param to The address which you want to transfer to.
* @param value The amount of tokens to be transferred.
* @param data Additional data with no specified format, sent in call to `to`.
* @return A boolean value indicating whether the operation succeeded unless throwing.
*/
function transferFromAndCall(address from, address to, uint256 value, bytes calldata data) external returns (bool);
/**
* @dev Sets a `value` amount of tokens as the allowance of `spender` over the
* caller's tokens and then calls {IERC1363Spender-onApprovalReceived} on `spender`.
* @param spender The address which will spend the funds.
* @param value The amount of tokens to be spent.
* @return A boolean value indicating whether the operation succeeded unless throwing.
*/
function approveAndCall(address spender, uint256 value) external returns (bool);
/**
* @dev Sets a `value` amount of tokens as the allowance of `spender` over the
* caller's tokens and then calls {IERC1363Spender-onApprovalReceived} on `spender`.
* @param spender The address which will spend the funds.
* @param value The amount of tokens to be spent.
* @param data Additional data with no specified format, sent in call to `spender`.
* @return A boolean value indicating whether the operation succeeded unless throwing.
*/
function approveAndCall(address spender, uint256 value, bytes calldata data) external returns (bool);
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.4.0) (interfaces/IERC165.sol)
pragma solidity >=0.4.16;
import {IERC165} from "../utils/introspection/IERC165.sol";// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.4.0) (interfaces/IERC20.sol)
pragma solidity >=0.4.16;
import {IERC20} from "../token/ERC20/IERC20.sol";// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.4.0) (utils/introspection/IERC165.sol)
pragma solidity >=0.4.16;
/**
* @dev Interface of the ERC-165 standard, as defined in the
* https://eips.ethereum.org/EIPS/eip-165[ERC].
*
* Implementers can declare support of contract interfaces, which can then be
* queried by others ({ERC165Checker}).
*
* For an implementation, see {ERC165}.
*/
interface IERC165 {
/**
* @dev Returns true if this contract implements the interface defined by
* `interfaceId`. See the corresponding
* https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section]
* to learn more about how these ids are created.
*
* This function call must use less than 30 000 gas.
*/
function supportsInterface(bytes4 interfaceId) external view returns (bool);
}{
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"remappings": []
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"NativeRescued","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"}],"name":"OperatorAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"}],"name":"OperatorRemoved","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":"token","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"PaymentExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TokenRescued","type":"event"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"addOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"operators","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"pay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"removeOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueNative","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
608060405234801562000010575f80fd5b506040516200199e3803806200199e83398181016040528101906200003691906200013b565b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506200016b565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200010582620000da565b9050919050565b6200011781620000f9565b811462000122575f80fd5b50565b5f8151905062000135816200010c565b92915050565b5f60208284031215620001535762000152620000d6565b5b5f620001628482850162000125565b91505092915050565b61182580620001795f395ff3fe60806040526004361061007e575f3560e01c80639870d7fe1161004d5780639870d7fe1461013f578063ac8a584a14610167578063e5711e8b1461018f578063f2fde38b146101b757610085565b80631291f79d1461008957806313e7c9d8146100b15780634a0ba49d146100ed5780638da5cb5b1461011557610085565b3661008557005b5f80fd5b348015610094575f80fd5b506100af60048036038101906100aa91906110ef565b6101df565b005b3480156100bc575f80fd5b506100d760048036038101906100d29190611168565b610418565b6040516100e491906111ad565b60405180910390f35b3480156100f8575f80fd5b50610113600480360381019061010e91906111c6565b610435565b005b348015610120575f80fd5b50610129610711565b6040516101369190611239565b60405180910390f35b34801561014a575f80fd5b5061016560048036038101906101609190611168565b610734565b005b348015610172575f80fd5b5061018d60048036038101906101889190611168565b610953565b005b34801561019a575f80fd5b506101b560048036038101906101b09190611252565b610b03565b005b3480156101c2575f80fd5b506101dd60048036038101906101d89190611168565b610d06565b005b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461026c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610263906112fc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036102da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102d190611364565b60405180910390fd5b8047101561031d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610314906113cc565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff168260405161034290611417565b5f6040518083038185875af1925050503d805f811461037c576040519150601f19603f3d011682016040523d82523d5f602084013e610381565b606091505b50509050806103c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103bc90611475565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff167fe3eb98b7fe2a0c1d490b92af73eeae611e9b00ab3c3f70b20bd7bb43f67a0f438360405161040b91906114a2565b60405180910390a2505050565b6001602052805f5260405f205f915054906101000a900460ff1681565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806104d4575060015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b610513576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050a90611505565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610581576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105789061156d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e6906115d5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361065d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065490611364565b60405180910390fd5b5f84905061068e8484848473ffffffffffffffffffffffffffffffffffffffff16610ec2909392919063ffffffff16565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f628242ab082e8da7bc0ded5fc97bd7221701125b9ea41f2cafad31e0574293798560405161070291906114a2565b60405180910390a45050505050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b8906112fc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361082f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108269061163d565b60405180910390fd5b60015f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156108b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b0906116a5565b60405180910390fd5b6001805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d60405160405180910390a250565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d7906112fc565b60405180910390fd5b60015f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610a69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a609061170d565b60405180910390fd5b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f80c0b871b97b595b16a7741c1b06fed0c6f6f558639f18ccbce50724325dc40d60405160405180910390a250565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b87906112fc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf59061156d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6390611364565b60405180910390fd5b5f839050610c9b83838373ffffffffffffffffffffffffffffffffffffffff16610f449092919063ffffffff16565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f4143f7b5cb6ea007914c32b8a3e64cebc051d7f493fa0755454da1e47701e12584604051610cf891906114a2565b60405180910390a350505050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8a906112fc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df890611775565b60405180910390fd5b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b610f3e848573ffffffffffffffffffffffffffffffffffffffff166323b872dd868686604051602401610ef793929190611793565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610fc3565b50505050565b610fbe838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8585604051602401610f779291906117c8565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610fc3565b505050565b5f8060205f8451602086015f885af180610fe2576040513d5f823e3d81fd5b3d92505f519150505f8214610ffb576001811415611016565b5f8473ffffffffffffffffffffffffffffffffffffffff163b145b1561105857836040517f5274afe700000000000000000000000000000000000000000000000000000000815260040161104f9190611239565b60405180910390fd5b50505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61108b82611062565b9050919050565b61109b81611081565b81146110a5575f80fd5b50565b5f813590506110b681611092565b92915050565b5f819050919050565b6110ce816110bc565b81146110d8575f80fd5b50565b5f813590506110e9816110c5565b92915050565b5f80604083850312156111055761110461105e565b5b5f611112858286016110a8565b9250506020611123858286016110db565b9150509250929050565b5f61113782611062565b9050919050565b6111478161112d565b8114611151575f80fd5b50565b5f813590506111628161113e565b92915050565b5f6020828403121561117d5761117c61105e565b5b5f61118a84828501611154565b91505092915050565b5f8115159050919050565b6111a781611193565b82525050565b5f6020820190506111c05f83018461119e565b92915050565b5f805f80608085870312156111de576111dd61105e565b5b5f6111eb87828801611154565b94505060206111fc87828801611154565b935050604061120d87828801611154565b925050606061121e878288016110db565b91505092959194509250565b6112338161112d565b82525050565b5f60208201905061124c5f83018461122a565b92915050565b5f805f606084860312156112695761126861105e565b5b5f61127686828701611154565b935050602061128786828701611154565b9250506040611298868287016110db565b9150509250925092565b5f82825260208201905092915050565b7f4143434553535f44454e4945445f4f574e4552000000000000000000000000005f82015250565b5f6112e66013836112a2565b91506112f1826112b2565b602082019050919050565b5f6020820190508181035f830152611313816112da565b9050919050565b7f494e56414c49445f524543495049454e540000000000000000000000000000005f82015250565b5f61134e6011836112a2565b91506113598261131a565b602082019050919050565b5f6020820190508181035f83015261137b81611342565b9050919050565b7f494e53554646494349454e545f42414c414e43450000000000000000000000005f82015250565b5f6113b66014836112a2565b91506113c182611382565b602082019050919050565b5f6020820190508181035f8301526113e3816113aa565b9050919050565b5f81905092915050565b50565b5f6114025f836113ea565b915061140d826113f4565b5f82019050919050565b5f611421826113f7565b9150819050919050565b7f4e41544956455f5452414e534645525f4641494c4544000000000000000000005f82015250565b5f61145f6016836112a2565b915061146a8261142b565b602082019050919050565b5f6020820190508181035f83015261148c81611453565b9050919050565b61149c816110bc565b82525050565b5f6020820190506114b55f830184611493565b92915050565b7f4143434553535f44454e4945445f4f50455241544f52000000000000000000005f82015250565b5f6114ef6016836112a2565b91506114fa826114bb565b602082019050919050565b5f6020820190508181035f83015261151c816114e3565b9050919050565b7f494e56414c49445f544f4b454e000000000000000000000000000000000000005f82015250565b5f611557600d836112a2565b915061156282611523565b602082019050919050565b5f6020820190508181035f8301526115848161154b565b9050919050565b7f494e56414c49445f53454e4445520000000000000000000000000000000000005f82015250565b5f6115bf600e836112a2565b91506115ca8261158b565b602082019050919050565b5f6020820190508181035f8301526115ec816115b3565b9050919050565b7f494e56414c49445f4f50455241544f52000000000000000000000000000000005f82015250565b5f6116276010836112a2565b9150611632826115f3565b602082019050919050565b5f6020820190508181035f8301526116548161161b565b9050919050565b7f4f50455241544f525f45584953545300000000000000000000000000000000005f82015250565b5f61168f600f836112a2565b915061169a8261165b565b602082019050919050565b5f6020820190508181035f8301526116bc81611683565b9050919050565b7f4f50455241544f525f4e4f545f464f554e4400000000000000000000000000005f82015250565b5f6116f76012836112a2565b9150611702826116c3565b602082019050919050565b5f6020820190508181035f830152611724816116eb565b9050919050565b7f494e56414c49445f4f574e4552000000000000000000000000000000000000005f82015250565b5f61175f600d836112a2565b915061176a8261172b565b602082019050919050565b5f6020820190508181035f83015261178c81611753565b9050919050565b5f6060820190506117a65f83018661122a565b6117b3602083018561122a565b6117c06040830184611493565b949350505050565b5f6040820190506117db5f83018561122a565b6117e86020830184611493565b939250505056fea2646970667358221220a3eb1fa562f4944f124fbb371f7eef5f0d9fc03654bef6cc5e4a9b8c2844828a64736f6c6343000814003300000000000000000000000042f12821c308b18ebbaf22ed8bb2abfa10fe8f82
Deployed Bytecode
0x60806040526004361061007e575f3560e01c80639870d7fe1161004d5780639870d7fe1461013f578063ac8a584a14610167578063e5711e8b1461018f578063f2fde38b146101b757610085565b80631291f79d1461008957806313e7c9d8146100b15780634a0ba49d146100ed5780638da5cb5b1461011557610085565b3661008557005b5f80fd5b348015610094575f80fd5b506100af60048036038101906100aa91906110ef565b6101df565b005b3480156100bc575f80fd5b506100d760048036038101906100d29190611168565b610418565b6040516100e491906111ad565b60405180910390f35b3480156100f8575f80fd5b50610113600480360381019061010e91906111c6565b610435565b005b348015610120575f80fd5b50610129610711565b6040516101369190611239565b60405180910390f35b34801561014a575f80fd5b5061016560048036038101906101609190611168565b610734565b005b348015610172575f80fd5b5061018d60048036038101906101889190611168565b610953565b005b34801561019a575f80fd5b506101b560048036038101906101b09190611252565b610b03565b005b3480156101c2575f80fd5b506101dd60048036038101906101d89190611168565b610d06565b005b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461026c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610263906112fc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036102da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102d190611364565b60405180910390fd5b8047101561031d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610314906113cc565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff168260405161034290611417565b5f6040518083038185875af1925050503d805f811461037c576040519150601f19603f3d011682016040523d82523d5f602084013e610381565b606091505b50509050806103c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103bc90611475565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff167fe3eb98b7fe2a0c1d490b92af73eeae611e9b00ab3c3f70b20bd7bb43f67a0f438360405161040b91906114a2565b60405180910390a2505050565b6001602052805f5260405f205f915054906101000a900460ff1681565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806104d4575060015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b610513576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050a90611505565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610581576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105789061156d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e6906115d5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361065d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065490611364565b60405180910390fd5b5f84905061068e8484848473ffffffffffffffffffffffffffffffffffffffff16610ec2909392919063ffffffff16565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f628242ab082e8da7bc0ded5fc97bd7221701125b9ea41f2cafad31e0574293798560405161070291906114a2565b60405180910390a45050505050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b8906112fc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361082f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108269061163d565b60405180910390fd5b60015f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156108b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b0906116a5565b60405180910390fd5b6001805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d60405160405180910390a250565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d7906112fc565b60405180910390fd5b60015f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610a69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a609061170d565b60405180910390fd5b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f80c0b871b97b595b16a7741c1b06fed0c6f6f558639f18ccbce50724325dc40d60405160405180910390a250565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b87906112fc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf59061156d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6390611364565b60405180910390fd5b5f839050610c9b83838373ffffffffffffffffffffffffffffffffffffffff16610f449092919063ffffffff16565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f4143f7b5cb6ea007914c32b8a3e64cebc051d7f493fa0755454da1e47701e12584604051610cf891906114a2565b60405180910390a350505050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8a906112fc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df890611775565b60405180910390fd5b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b610f3e848573ffffffffffffffffffffffffffffffffffffffff166323b872dd868686604051602401610ef793929190611793565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610fc3565b50505050565b610fbe838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8585604051602401610f779291906117c8565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610fc3565b505050565b5f8060205f8451602086015f885af180610fe2576040513d5f823e3d81fd5b3d92505f519150505f8214610ffb576001811415611016565b5f8473ffffffffffffffffffffffffffffffffffffffff163b145b1561105857836040517f5274afe700000000000000000000000000000000000000000000000000000000815260040161104f9190611239565b60405180910390fd5b50505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61108b82611062565b9050919050565b61109b81611081565b81146110a5575f80fd5b50565b5f813590506110b681611092565b92915050565b5f819050919050565b6110ce816110bc565b81146110d8575f80fd5b50565b5f813590506110e9816110c5565b92915050565b5f80604083850312156111055761110461105e565b5b5f611112858286016110a8565b9250506020611123858286016110db565b9150509250929050565b5f61113782611062565b9050919050565b6111478161112d565b8114611151575f80fd5b50565b5f813590506111628161113e565b92915050565b5f6020828403121561117d5761117c61105e565b5b5f61118a84828501611154565b91505092915050565b5f8115159050919050565b6111a781611193565b82525050565b5f6020820190506111c05f83018461119e565b92915050565b5f805f80608085870312156111de576111dd61105e565b5b5f6111eb87828801611154565b94505060206111fc87828801611154565b935050604061120d87828801611154565b925050606061121e878288016110db565b91505092959194509250565b6112338161112d565b82525050565b5f60208201905061124c5f83018461122a565b92915050565b5f805f606084860312156112695761126861105e565b5b5f61127686828701611154565b935050602061128786828701611154565b9250506040611298868287016110db565b9150509250925092565b5f82825260208201905092915050565b7f4143434553535f44454e4945445f4f574e4552000000000000000000000000005f82015250565b5f6112e66013836112a2565b91506112f1826112b2565b602082019050919050565b5f6020820190508181035f830152611313816112da565b9050919050565b7f494e56414c49445f524543495049454e540000000000000000000000000000005f82015250565b5f61134e6011836112a2565b91506113598261131a565b602082019050919050565b5f6020820190508181035f83015261137b81611342565b9050919050565b7f494e53554646494349454e545f42414c414e43450000000000000000000000005f82015250565b5f6113b66014836112a2565b91506113c182611382565b602082019050919050565b5f6020820190508181035f8301526113e3816113aa565b9050919050565b5f81905092915050565b50565b5f6114025f836113ea565b915061140d826113f4565b5f82019050919050565b5f611421826113f7565b9150819050919050565b7f4e41544956455f5452414e534645525f4641494c4544000000000000000000005f82015250565b5f61145f6016836112a2565b915061146a8261142b565b602082019050919050565b5f6020820190508181035f83015261148c81611453565b9050919050565b61149c816110bc565b82525050565b5f6020820190506114b55f830184611493565b92915050565b7f4143434553535f44454e4945445f4f50455241544f52000000000000000000005f82015250565b5f6114ef6016836112a2565b91506114fa826114bb565b602082019050919050565b5f6020820190508181035f83015261151c816114e3565b9050919050565b7f494e56414c49445f544f4b454e000000000000000000000000000000000000005f82015250565b5f611557600d836112a2565b915061156282611523565b602082019050919050565b5f6020820190508181035f8301526115848161154b565b9050919050565b7f494e56414c49445f53454e4445520000000000000000000000000000000000005f82015250565b5f6115bf600e836112a2565b91506115ca8261158b565b602082019050919050565b5f6020820190508181035f8301526115ec816115b3565b9050919050565b7f494e56414c49445f4f50455241544f52000000000000000000000000000000005f82015250565b5f6116276010836112a2565b9150611632826115f3565b602082019050919050565b5f6020820190508181035f8301526116548161161b565b9050919050565b7f4f50455241544f525f45584953545300000000000000000000000000000000005f82015250565b5f61168f600f836112a2565b915061169a8261165b565b602082019050919050565b5f6020820190508181035f8301526116bc81611683565b9050919050565b7f4f50455241544f525f4e4f545f464f554e4400000000000000000000000000005f82015250565b5f6116f76012836112a2565b9150611702826116c3565b602082019050919050565b5f6020820190508181035f830152611724816116eb565b9050919050565b7f494e56414c49445f4f574e4552000000000000000000000000000000000000005f82015250565b5f61175f600d836112a2565b915061176a8261172b565b602082019050919050565b5f6020820190508181035f83015261178c81611753565b9050919050565b5f6060820190506117a65f83018661122a565b6117b3602083018561122a565b6117c06040830184611493565b949350505050565b5f6040820190506117db5f83018561122a565b6117e86020830184611493565b939250505056fea2646970667358221220a3eb1fa562f4944f124fbb371f7eef5f0d9fc03654bef6cc5e4a9b8c2844828a64736f6c63430008140033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000042f12821c308b18ebbaf22ed8bb2abfa10fe8f82
-----Decoded View---------------
Arg [0] : initialOwner (address): 0x42F12821c308b18EbbaF22ED8bb2aBfa10fe8f82
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000042f12821c308b18ebbaf22ed8bb2abfa10fe8f82
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
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.