Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
There are no matching entriesUpdate your filters to view other transactions | |||||||||
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x00984aC3...100bC0000 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
TKGasStation
Compiler Version
v0.8.30+commit.73712a01
Optimization Enabled:
Yes with 1000000 runs
Other Settings:
prague EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.30;
import {ITKGasDelegate} from "./interfaces/ITKGasDelegate.sol";
import {ITKGasStation} from "./interfaces/ITKGasStation.sol";
import {IBatchExecution} from "./interfaces/IBatchExecution.sol";
contract TKGasStation is ITKGasStation {
error NotDelegated();
error InvalidFunctionSelector();
error ExecutionFailed();
address public immutable TK_GAS_DELEGATE;
constructor(address _tkGasDelegate) {
TK_GAS_DELEGATE = _tkGasDelegate;
}
fallback(bytes calldata data) external returns (bytes memory) {
address target;
assembly {
target := shr(96, calldataload(add(data.offset, 1)))
}
if (!_isDelegated(target)) {
revert NotDelegated();
}
if (bytes1(data[21]) == 0x00) {
// check if the first byte is 0x00
bytes1 functionSelector = bytes1(data[22] & 0xf0); // mask the last nibble
// only allow execute functions, no session functions
if (functionSelector == 0x00 || functionSelector == 0x10 || functionSelector == 0x20) {
(bool success, bytes memory result) = target.call(data[21:]);
if (success) {
return result;
}
revert ExecutionFailed();
}
}
revert InvalidFunctionSelector();
}
function _isDelegated(address _targetEoA) internal view returns (bool) {
uint256 size;
assembly {
size := extcodesize(_targetEoA)
}
if (size != 23) {
return false;
}
bytes memory code = new bytes(23);
assembly {
extcodecopy(_targetEoA, add(code, 0x20), 0, 23)
}
// prefix is 0xef0100
if (code[0] != 0xef || code[1] != 0x01 || code[2] != 0x00) {
return false;
}
address delegatedTo;
assembly {
// Load the 20-byte address from bytes 3-22
delegatedTo := shr(96, mload(add(code, 0x23)))
}
return delegatedTo == TK_GAS_DELEGATE;
}
// Execute functions
function executeReturns(address _target, address _to, uint256 _ethAmount, bytes calldata _data)
external
returns (bytes memory)
{
if (!_isDelegated(_target)) {
revert NotDelegated();
}
bytes memory result = ITKGasDelegate(_target).executeReturns(_to, _ethAmount, _data);
return result;
}
function execute(address _target, address _to, uint256 _ethAmount, bytes calldata _data) external {
if (!_isDelegated(_target)) {
revert NotDelegated();
}
ITKGasDelegate(_target).execute(_to, _ethAmount, _data);
}
// ApproveThenExecute functions
function approveThenExecuteReturns(
address _target,
address _to,
uint256 _ethAmount,
address _erc20,
address _spender,
uint256 _approveAmount,
bytes calldata _data
) external returns (bytes memory) {
if (!_isDelegated(_target)) {
revert NotDelegated();
}
bytes memory result =
ITKGasDelegate(_target).approveThenExecuteReturns(_to, _ethAmount, _erc20, _spender, _approveAmount, _data);
return result;
}
function approveThenExecute(
address _target,
address _to,
uint256 _ethAmount,
address _erc20,
address _spender,
uint256 _approveAmount,
bytes calldata _data
) external {
if (!_isDelegated(_target)) {
revert NotDelegated();
}
ITKGasDelegate(_target).approveThenExecute(_to, _ethAmount, _erc20, _spender, _approveAmount, _data);
}
// Batch execute functions
function executeBatchReturns(address _target, IBatchExecution.Call[] calldata _calls, bytes calldata _data)
external
returns (bytes[] memory)
{
if (!_isDelegated(_target)) {
revert NotDelegated();
}
bytes[] memory results = ITKGasDelegate(_target).executeBatchReturns(_calls, _data);
return results;
}
function executeBatch(address _target, IBatchExecution.Call[] calldata _calls, bytes calldata _data) external {
if (!_isDelegated(_target)) {
revert NotDelegated();
}
ITKGasDelegate(_target).executeBatch(_calls, _data);
}
function burnNonce(address _targetEoA, bytes calldata _signature, uint128 _nonce) external {
if (!_isDelegated(_targetEoA)) {
revert NotDelegated();
}
ITKGasDelegate(_targetEoA).burnNonce(_signature, _nonce);
}
/* Lense Functions */
function getNonce(address _targetEoA) external view returns (uint128) {
if (!_isDelegated(_targetEoA)) {
revert NotDelegated();
}
uint128 nonce = ITKGasDelegate(_targetEoA).nonce();
return nonce;
}
function isDelegated(address _targetEoA) external view returns (bool) {
return _isDelegated(_targetEoA);
}
function validateSignature(address _targetEoA, bytes32 _hash, bytes calldata _signature)
external
view
returns (bool)
{
if (!_isDelegated(_targetEoA)) {
revert NotDelegated();
}
return ITKGasDelegate(_targetEoA).validateSignature(_hash, _signature);
}
// Hash function lenses
function hashExecution(
address _targetEoA,
uint128 _nonce,
uint32 _deadline,
address _outputContract,
uint256 _ethAmount,
bytes calldata _arguments
) external view returns (bytes32) {
if (!_isDelegated(_targetEoA)) {
revert NotDelegated();
}
return ITKGasDelegate(_targetEoA).hashExecution(_nonce, _deadline, _outputContract, _ethAmount, _arguments);
}
function hashBurnNonce(address _targetEoA, uint128 _nonce) external view returns (bytes32) {
if (!_isDelegated(_targetEoA)) {
revert NotDelegated();
}
return ITKGasDelegate(_targetEoA).hashBurnNonce(_nonce);
}
function hashApproveThenExecute(
address _targetEoA,
uint128 _nonce,
uint32 _deadline,
address _erc20Contract,
address _spender,
uint256 _approveAmount,
address _outputContract,
uint256 _ethAmount,
bytes calldata _arguments
) external view returns (bytes32) {
if (!_isDelegated(_targetEoA)) {
revert NotDelegated();
}
return ITKGasDelegate(_targetEoA).hashApproveThenExecute(
_nonce, _deadline, _erc20Contract, _spender, _approveAmount, _outputContract, _ethAmount, _arguments
);
}
function hashSessionExecution(
address _targetEoA,
uint128 _counter,
uint32 _deadline,
address _sender,
address _outputContract
) external view returns (bytes32) {
if (!_isDelegated(_targetEoA)) {
revert NotDelegated();
}
return ITKGasDelegate(_targetEoA).hashSessionExecution(_counter, _deadline, _sender, _outputContract);
}
function hashArbitrarySessionExecution(address _targetEoA, uint128 _counter, uint32 _deadline, address _sender)
external
view
returns (bytes32)
{
if (!_isDelegated(_targetEoA)) {
revert NotDelegated();
}
return ITKGasDelegate(_targetEoA).hashArbitrarySessionExecution(_counter, _deadline, _sender);
}
function hashBatchExecution(
address _targetEoA,
uint128 _nonce,
uint32 _deadline,
IBatchExecution.Call[] calldata _calls
) external view returns (bytes32) {
if (!_isDelegated(_targetEoA)) {
revert NotDelegated();
}
return ITKGasDelegate(_targetEoA).hashBatchExecution(_nonce, _deadline, _calls);
}
function hashBurnSessionCounter(address _targetEoA, uint128 _counter) external view returns (bytes32) {
if (!_isDelegated(_targetEoA)) {
revert NotDelegated();
}
return ITKGasDelegate(_targetEoA).hashBurnSessionCounter(_counter);
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.30;
import {IBatchExecution} from "./IBatchExecution.sol";
interface ITKGasDelegate is IBatchExecution {
function nonce() external view returns (uint128);
function validateSignature(bytes32 _hash, bytes calldata _signature) external view returns (bool);
function checkSessionCounterExpired(uint128 _counter) external view returns (bool);
function supportsInterface(bytes4 _interfaceId) external pure returns (bool);
// Execute functions
function executeReturns(bytes calldata _data) external returns (bytes memory);
function execute(bytes calldata _data) external;
function executeNoValueNoReturn(bytes calldata _data) external;
function executeReturns(address _to, uint256 _value, bytes calldata _data) external returns (bytes memory);
function execute(address _to, uint256 _value, bytes calldata _data) external;
//ApproveThenExecute functions
function approveThenExecuteReturns(bytes calldata _data) external returns (bytes memory);
function approveThenExecute(bytes calldata _data) external;
function approveThenExecuteReturns(
address _to,
uint256 _value,
address _erc20,
address _spender,
uint256 _approveAmount,
bytes calldata _data
) external returns (bytes memory);
function approveThenExecute(
address _to,
uint256 _value,
address _erc20,
address _spender,
uint256 _approveAmount,
bytes calldata _data
) external;
// Batch execute functions
function executeBatchReturns(bytes calldata _data) external returns (bytes[] memory);
function executeBatch(bytes calldata _data) external;
function executeBatchReturns(IBatchExecution.Call[] calldata _calls, bytes calldata _data)
external
returns (bytes[] memory);
function executeBatch(IBatchExecution.Call[] calldata _calls, bytes calldata _data) external;
// Batch session execute functions
function executeBatchSessionReturns(bytes calldata _data) external returns (bytes[] memory);
function executeBatchSession(bytes calldata _data) external;
function executeBatchSessionReturns(IBatchExecution.Call[] calldata _calls, bytes calldata _data)
external
returns (bytes[] memory);
function executeBatchSession(IBatchExecution.Call[] calldata _calls, bytes calldata _data) external;
// Session execute functions
function executeSessionReturns(bytes calldata _data) external returns (bytes memory);
function executeSession(bytes calldata _data) external;
function executeSessionReturns(address _to, uint256 _value, bytes calldata _data) external returns (bytes memory);
function executeSession(address _to, uint256 _value, bytes calldata _data) external;
// Arbitrary session functions
function executeSessionArbitraryReturns(bytes calldata _data) external returns (bytes memory);
function executeSessionArbitrary(bytes calldata _data) external;
function executeSessionArbitraryReturns(address _to, uint256 _value, bytes calldata _data)
external
returns (bytes memory);
function executeSessionArbitrary(address _to, uint256 _value, bytes calldata _data) external;
// Arbitrary batch session functions
function executeBatchSessionArbitraryReturns(bytes calldata _data) external returns (bytes[] memory);
function executeBatchSessionArbitrary(bytes calldata _data) external;
function executeBatchSessionArbitraryReturns(IBatchExecution.Call[] calldata _calls, bytes calldata _data)
external
returns (bytes[] memory);
function executeBatchSessionArbitrary(IBatchExecution.Call[] calldata _calls, bytes calldata _data) external;
// Burn functions
function burnNonce(bytes calldata _signature, uint128 _nonce) external;
function burnSessionCounter(bytes calldata _signature, uint128 _counter) external;
function burnNonce() external;
function burnSessionCounter(uint128 _counter) external;
// Hash functions
function hashExecution(uint128 _nonce, uint32 _deadline, address _to, uint256 _value, bytes calldata _data)
external
view
returns (bytes32);
function hashBurnNonce(uint128 _nonce) external view returns (bytes32);
function hashApproveThenExecute(
uint128 _nonce,
uint32 _deadline,
address _erc20Contract,
address _spender,
uint256 _approveAmount,
address _to,
uint256 _value,
bytes calldata _data
) external view returns (bytes32);
function hashSessionExecution(uint128 _counter, uint32 _deadline, address _sender, address _to)
external
view
returns (bytes32);
function hashArbitrarySessionExecution(uint128 _counter, uint32 _deadline, address _sender)
external
view
returns (bytes32);
function hashBatchExecution(uint128 _nonce, uint32 _deadline, IBatchExecution.Call[] calldata _calls)
external
view
returns (bytes32);
function hashBurnSessionCounter(uint128 _counter) external view returns (bytes32);
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.30;
import {IBatchExecution} from "./IBatchExecution.sol";
interface ITKGasStation is IBatchExecution {
function TK_GAS_DELEGATE() external view returns (address);
// Execute functions
function executeReturns(address _target, address _to, uint256 _ethAmount, bytes calldata _data)
external
returns (bytes memory);
function execute(address _target, address _to, uint256 _ethAmount, bytes calldata _data) external;
// ApproveThenExecute functions
function approveThenExecuteReturns(
address _target,
address _to,
uint256 _ethAmount,
address _erc20,
address _spender,
uint256 _approveAmount,
bytes calldata _data
) external returns (bytes memory);
function approveThenExecute(
address _target,
address _to,
uint256 _ethAmount,
address _erc20,
address _spender,
uint256 _approveAmount,
bytes calldata _data
) external;
// Batch execute functions
function executeBatchReturns(address _target, IBatchExecution.Call[] calldata _calls, bytes calldata _data)
external
returns (bytes[] memory);
function executeBatch(address _target, IBatchExecution.Call[] calldata _calls, bytes calldata _data) external;
function burnNonce(address _targetEoA, bytes calldata _signature, uint128 _nonce) external;
function getNonce(address _targetEoA) external view returns (uint128);
function isDelegated(address _targetEoA) external view returns (bool);
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.30;
interface IBatchExecution {
struct Call {
address to;
uint256 value;
bytes data;
}
}{
"remappings": [
"solady/=lib/solady/src/",
"@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/",
"@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
"account-abstraction/=lib/account-abstraction/contracts/",
"erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/",
"forge-std/=lib/forge-std/src/",
"halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/",
"openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/",
"openzeppelin-contracts/=lib/openzeppelin-contracts/"
],
"optimizer": {
"enabled": true,
"runs": 1000000
},
"metadata": {
"useLiteralContent": false,
"bytecodeHash": "ipfs",
"appendCBOR": true
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"evmVersion": "prague",
"viaIR": true
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_tkGasDelegate","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ExecutionFailed","type":"error"},{"inputs":[],"name":"InvalidFunctionSelector","type":"error"},{"inputs":[],"name":"NotDelegated","type":"error"},{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"name":"TK_GAS_DELEGATE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_ethAmount","type":"uint256"},{"internalType":"address","name":"_erc20","type":"address"},{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_approveAmount","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"approveThenExecute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_ethAmount","type":"uint256"},{"internalType":"address","name":"_erc20","type":"address"},{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_approveAmount","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"approveThenExecuteReturns","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_targetEoA","type":"address"},{"internalType":"bytes","name":"_signature","type":"bytes"},{"internalType":"uint128","name":"_nonce","type":"uint128"}],"name":"burnNonce","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_ethAmount","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"components":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"internalType":"struct IBatchExecution.Call[]","name":"_calls","type":"tuple[]"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"executeBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"components":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"internalType":"struct IBatchExecution.Call[]","name":"_calls","type":"tuple[]"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"executeBatchReturns","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_ethAmount","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"executeReturns","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_targetEoA","type":"address"}],"name":"getNonce","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_targetEoA","type":"address"},{"internalType":"uint128","name":"_nonce","type":"uint128"},{"internalType":"uint32","name":"_deadline","type":"uint32"},{"internalType":"address","name":"_erc20Contract","type":"address"},{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_approveAmount","type":"uint256"},{"internalType":"address","name":"_outputContract","type":"address"},{"internalType":"uint256","name":"_ethAmount","type":"uint256"},{"internalType":"bytes","name":"_arguments","type":"bytes"}],"name":"hashApproveThenExecute","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_targetEoA","type":"address"},{"internalType":"uint128","name":"_counter","type":"uint128"},{"internalType":"uint32","name":"_deadline","type":"uint32"},{"internalType":"address","name":"_sender","type":"address"}],"name":"hashArbitrarySessionExecution","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_targetEoA","type":"address"},{"internalType":"uint128","name":"_nonce","type":"uint128"},{"internalType":"uint32","name":"_deadline","type":"uint32"},{"components":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"internalType":"struct IBatchExecution.Call[]","name":"_calls","type":"tuple[]"}],"name":"hashBatchExecution","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_targetEoA","type":"address"},{"internalType":"uint128","name":"_nonce","type":"uint128"}],"name":"hashBurnNonce","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_targetEoA","type":"address"},{"internalType":"uint128","name":"_counter","type":"uint128"}],"name":"hashBurnSessionCounter","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_targetEoA","type":"address"},{"internalType":"uint128","name":"_nonce","type":"uint128"},{"internalType":"uint32","name":"_deadline","type":"uint32"},{"internalType":"address","name":"_outputContract","type":"address"},{"internalType":"uint256","name":"_ethAmount","type":"uint256"},{"internalType":"bytes","name":"_arguments","type":"bytes"}],"name":"hashExecution","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_targetEoA","type":"address"},{"internalType":"uint128","name":"_counter","type":"uint128"},{"internalType":"uint32","name":"_deadline","type":"uint32"},{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_outputContract","type":"address"}],"name":"hashSessionExecution","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_targetEoA","type":"address"}],"name":"isDelegated","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_targetEoA","type":"address"},{"internalType":"bytes32","name":"_hash","type":"bytes32"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"name":"validateSignature","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]Contract Creation Code
0x60a034606d57601f611d6d38819003918201601f19168301916001600160401b03831184841017607157808492602094604052833981010312606d57516001600160a01b0381168103606d57608052604051611ce7908161008682396080518181816111460152611bfb0152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610028575b346100245761001c3661193b565b602081519101f35b5f80fd5b5f3560e01c80632b98ba0c146101475780632d0335ab146101425780633e28391d1461013d5780633f67163e1461013857806355abb7cd1461013357806361724fbb1461012e5780636386d306146101295780636cbef16d14610124578063835f7bf71461011f578063971604c61461011a5780639aefaff814610115578063a3396ade14610110578063b4eb7c251461010b578063c1a8853a14610106578063cf26488a14610101578063df0d3eaf146100fc578063e10a3566146100f75763e5925a000361000e576112ef565b6111e9565b61116a565b6110fc565b610f9c565b610eaf565b610db8565b610d3d565b610b8e565b610ac7565b6109f6565b6108e4565b610813565b6106c5565b6105fd565b6104f3565b6103fe565b61030a565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361002457565b6064359073ffffffffffffffffffffffffffffffffffffffff8216820361002457565b6084359073ffffffffffffffffffffffffffffffffffffffff8216820361002457565b359073ffffffffffffffffffffffffffffffffffffffff8216820361002457565b9181601f840112156100245782359167ffffffffffffffff8311610024576020838186019501011161002457565b60e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126100245760043573ffffffffffffffffffffffffffffffffffffffff81168103610024579160243573ffffffffffffffffffffffffffffffffffffffff8116810361002457916044359160643573ffffffffffffffffffffffffffffffffffffffff81168103610024579161029f60846101b5565b9160a4359160c4359067ffffffffffffffff8211610024576102c3916004016101d6565b9091565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b346100245761031836610204565b91956103278895969498611b39565b156103d6576103805f979373ffffffffffffffffffffffffffffffffffffffff9389956040519b8c9a8b998a977f8d0598d200000000000000000000000000000000000000000000000000000000895260048901611558565b0393165af180156103d1576103ab915f916103af575b506040519182916020835260208301906102c7565b0390f35b6103cb91503d805f833e6103c38183611430565b8101906114f1565b5f610396565b6115a1565b7f9ccd6d76000000000000000000000000000000000000000000000000000000005f5260045ffd5b346100245760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100245761043561014c565b61043e81611b39565b156103d657602073ffffffffffffffffffffffffffffffffffffffff916004604051809481937faffed0e0000000000000000000000000000000000000000000000000000000008352165afa80156103d1575f906104b6575b6040516fffffffffffffffffffffffffffffffff919091168152602090f35b506020813d6020116104eb575b816104d060209383611430565b81010312610024576103ab90516104e681610698565b610497565b3d91506104c3565b346100245760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261002457602061053461052f61014c565b611b39565b6040519015158152f35b9181601f840112156100245782359167ffffffffffffffff8311610024576020808501948460051b01011161002457565b9060607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8301126100245760043573ffffffffffffffffffffffffffffffffffffffff81168103610024579160243567ffffffffffffffff811161002457816105da9160040161053e565b929092916044359067ffffffffffffffff8211610024576102c3916004016101d6565b346100245761060b3661056f565b929161061685611b39565b15945f956103d65773ffffffffffffffffffffffffffffffffffffffff1690813b15610024575f8094610678604051978896879586947f5885bbcf000000000000000000000000000000000000000000000000000000008652600486016116d3565b03925af180156103d15761068a575080f35b61069691505f90611430565b005b6fffffffffffffffffffffffffffffffff81160361002457565b6044359063ffffffff8216820361002457565b346100245760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610024576106fc61014c565b60243561070881610698565b6107106106b2565b60643567ffffffffffffffff81116100245761073090369060040161053e565b61073b859295611b39565b156103d65773ffffffffffffffffffffffffffffffffffffffff6020946107bd63ffffffff976fffffffffffffffffffffffffffffffff94604051998a98899788967f0cb980670000000000000000000000000000000000000000000000000000000088521660048701521660248501526060604485015260648401916115ac565b0392165afa80156103d1576103ab915f916107e4575b506040519081529081906020820190565b610806915060203d60201161080c575b6107fe8183611430565b8101906116fa565b5f6107d3565b503d6107f4565b346100245760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100245761084a61014c565b60243561085681610698565b61085f82611b39565b156103d6576fffffffffffffffffffffffffffffffff602460209273ffffffffffffffffffffffffffffffffffffffff60405195869485937f2397a131000000000000000000000000000000000000000000000000000000008552166004840152165afa80156103d1576103ab915f916107e457506040519081529081906020820190565b346100245760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100245761091b61014c565b60243561092781610698565b61092f6106b2565b61093761016f565b9260843560a43567ffffffffffffffff81116100245761095b9036906004016101d6565b91909461096784611b39565b156103d6576107bd6020966fffffffffffffffffffffffffffffffff9473ffffffffffffffffffffffffffffffffffffffff948563ffffffff9b6040519c8d9b8c9a8b997f2a1af0a2000000000000000000000000000000000000000000000000000000008b521660048a0152166024880152166044860152606485015260a0608485015260a484019161151a565b346100245760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261002457610a2d61014c565b602435610a3981610698565b610a4282611b39565b156103d6576fffffffffffffffffffffffffffffffff602460209273ffffffffffffffffffffffffffffffffffffffff60405195869485937f922cf8a9000000000000000000000000000000000000000000000000000000008552166004840152165afa80156103d1576103ab915f916107e457506040519081529081906020820190565b34610024576101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261002457610aff61014c565b60243590610b0c82610698565b610b146106b2565b91610b1d61016f565b91610b26610192565b60c43560a43573ffffffffffffffffffffffffffffffffffffffff821682036100245760e43592610104359667ffffffffffffffff8811610024576103ab98610b76610b7e9936906004016101d6565b989097611709565b6040519081529081906020820190565b346100245760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261002457610bc561014c565b60443567ffffffffffffffff811161002457610be59036906004016101d6565b90610bef83611b39565b156103d657610c559260209273ffffffffffffffffffffffffffffffffffffffff6040518096819582947f333daf92000000000000000000000000000000000000000000000000000000008452602435600485015260406024850152604484019161151a565b0392165afa80156103d1576103ab915f91610c7e575b5060405190151581529081906020820190565b610ca0915060203d602011610ca6575b610c988183611430565b81019061182a565b5f610c6b565b503d610c8e565b9060807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8301126100245760043573ffffffffffffffffffffffffffffffffffffffff81168103610024579160243573ffffffffffffffffffffffffffffffffffffffff811681036100245791604435916064359067ffffffffffffffff8211610024576102c3916004016101d6565b3461002457610d4b36610cad565b9291610d5685611b39565b15945f956103d65773ffffffffffffffffffffffffffffffffffffffff1690813b15610024575f8094610678604051978896879586947fb61d27f600000000000000000000000000000000000000000000000000000000865260048601611842565b346100245760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261002457610def61014c565b602435610dfb81610698565b610e036106b2565b91610e0c61016f565b90610e1681611b39565b156103d65760209273ffffffffffffffffffffffffffffffffffffffff606492816fffffffffffffffffffffffffffffffff9563ffffffff604051998a9889977fd81ea0bc000000000000000000000000000000000000000000000000000000008952166004880152166024860152166044840152165afa80156103d1576103ab915f916107e457506040519081529081906020820190565b3461002457610ebd36610cad565b939091610ec982611b39565b156103d6575f73ffffffffffffffffffffffffffffffffffffffff8195610380604051988997889687947fcc83c72e00000000000000000000000000000000000000000000000000000000865260048601611842565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310610f5157505050505090565b9091929394602080610f8d837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0866001960301875289516102c7565b97019301930191939290610f42565b3461002457610faa3661056f565b939091610fb682611b39565b156103d6575f73ffffffffffffffffffffffffffffffffffffffff819561100c604051988997889687947f0ab96bb1000000000000000000000000000000000000000000000000000000008652600486016116d3565b0393165af180156103d1575f9061102e575b6103ab9060405191829182610f1f565b503d805f833e61103e8183611430565b8101906020818303126100245780519067ffffffffffffffff8211610024570181601f820112156100245780519067ffffffffffffffff82116110ed578160051b90604051926110916020840185611430565b8352602080840192820101918483116100245760208201905b8382106110bf57505050506103ab915061101e565b815167ffffffffffffffff8111610024576020916110e2888480948801016114ab565b8152019101906110aa565b611403565b5f91031261002457565b34610024575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261002457602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100245761117836610204565b9491929561118588611b39565b15975f986103d65773ffffffffffffffffffffffffffffffffffffffff1693843b15610024575f968793610678926040519a8b998a9889977f8cee772500000000000000000000000000000000000000000000000000000000895260048901611558565b346100245760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100245761122061014c565b60243561122c81610698565b6112346106b2565b9161123d61016f565b611245610192565b9261124f83611b39565b156103d65773ffffffffffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff93816020968160849663ffffffff6040519b8c9a8b997f2c4d6dcf000000000000000000000000000000000000000000000000000000008b521660048a0152166024880152166044860152166064840152165afa80156103d1576103ab915f916107e457506040519081529081906020820190565b346100245760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100245761132661014c565b60243567ffffffffffffffff8111610024576113469036906004016101d6565b6044929192359161135683610698565b61135f81611b39565b156103d65773ffffffffffffffffffffffffffffffffffffffff16803b15610024576fffffffffffffffffffffffffffffffff935f6113d8938195604051978896879586947f195e307b00000000000000000000000000000000000000000000000000000000865260406004870152604486019161151a565b9116602483015203925af180156103d1576113ef57005b806113fd5f61069693611430565b806110f2565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176110ed57604052565b67ffffffffffffffff81116110ed57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b81601f82011215610024578051906114c282611471565b926114d06040519485611430565b8284526020838301011161002457815f9260208093018386015e8301015290565b9060208282031261002457815167ffffffffffffffff81116100245761151792016114ab565b90565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe093818652868601375f8582860101520116010190565b929373ffffffffffffffffffffffffffffffffffffffff60c095611517999794828095168752602087015216604085015216606083015260808201528160a0820152019161151a565b6040513d5f823e3d90fd5b906020838281520160208260051b85010193835f915b8483106115d25750505050505090565b9091929394957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082820301855286357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18436030181121561002457830173ffffffffffffffffffffffffffffffffffffffff61164d826101b5565b1682526020810135602083015260408101357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18236030181121561002457016020813591019067ffffffffffffffff8111610024578036038213610024576116c560209283926060868160406001990152019161151a565b9801969501930191906115c2565b92906116ec9061151795936040865260408601916115ac565b92602081850391015261151a565b90816020910312610024575190565b97949095919692989361171b89611b39565b156103d657604051998a9889987fddb72afd000000000000000000000000000000000000000000000000000000008a526fffffffffffffffffffffffffffffffff1660048a015263ffffffff16602489015273ffffffffffffffffffffffffffffffffffffffff16604488015273ffffffffffffffffffffffffffffffffffffffff166064870152608486015273ffffffffffffffffffffffffffffffffffffffff1660a485015260c484015260e4830161010090526101048301906117e09261151a565b039173ffffffffffffffffffffffffffffffffffffffff1691815a93602094fa9081156103d1575f91611811575090565b611517915060203d60201161080c576107fe8183611430565b90816020910312610024575180151581036100245790565b611517949273ffffffffffffffffffffffffffffffffffffffff6060931682526020820152816040820152019161151a565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b90601510156118b05760150190565b611874565b90601610156118b05760160190565b909291928360151161002457831161002457601501917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb0190565b908092918237015f815290565b3d15611936573d9061191d82611471565b9161192b6040519384611430565b82523d5f602084013e565b606090565b60013560601c9061195261194e83611b39565b1590565b6103d6577fff000000000000000000000000000000000000000000000000000000000000006119aa611984835f6118a1565b357fff000000000000000000000000000000000000000000000000000000000000001690565b16156119d9575b7f42868c9b000000000000000000000000000000000000000000000000000000005f5260045ffd5b7ff000000000000000000000000000000000000000000000000000000000000000611a07611984835f6118b5565b168015908115611aa2575b8115611a78575b50156119b1575f9182611a2e838294836118c4565b9190611a3f604051809481936118ff565b03925af1611a4b61190c565b90611517577facfdb444000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f20000000000000000000000000000000000000000000000000000000000000009150145f611a19565b7f100000000000000000000000000000000000000000000000000000000000000081149150611a12565b60408051909190611add8382611430565b60178152917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001366020840137565b8051156118b05760200190565b8051600110156118b05760210190565b8051600210156118b05760220190565b6017813b03611c1f5760175f611b4d611acc565b9260208401903c7fef000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000611bc8611ba284611b0c565b517fff000000000000000000000000000000000000000000000000000000000000001690565b1614801590611c5a575b8015611c24575b611c1f576023015160601c73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161490565b505f90565b507fff00000000000000000000000000000000000000000000000000000000000000611c52611ba283611b29565b161515611bd9565b507f01000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000611ca9611ba284611b19565b161415611bd256fea26469706673582212206a88cba76571534b5641434a7e1d3ccf0391bb0e6c690095e457719cb0dcae9164736f6c634300081e0033000000000000000000000000000066a00056cd44008768e2af00696e19a30084
Deployed Bytecode
0x60806040526004361015610028575b346100245761001c3661193b565b602081519101f35b5f80fd5b5f3560e01c80632b98ba0c146101475780632d0335ab146101425780633e28391d1461013d5780633f67163e1461013857806355abb7cd1461013357806361724fbb1461012e5780636386d306146101295780636cbef16d14610124578063835f7bf71461011f578063971604c61461011a5780639aefaff814610115578063a3396ade14610110578063b4eb7c251461010b578063c1a8853a14610106578063cf26488a14610101578063df0d3eaf146100fc578063e10a3566146100f75763e5925a000361000e576112ef565b6111e9565b61116a565b6110fc565b610f9c565b610eaf565b610db8565b610d3d565b610b8e565b610ac7565b6109f6565b6108e4565b610813565b6106c5565b6105fd565b6104f3565b6103fe565b61030a565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361002457565b6064359073ffffffffffffffffffffffffffffffffffffffff8216820361002457565b6084359073ffffffffffffffffffffffffffffffffffffffff8216820361002457565b359073ffffffffffffffffffffffffffffffffffffffff8216820361002457565b9181601f840112156100245782359167ffffffffffffffff8311610024576020838186019501011161002457565b60e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126100245760043573ffffffffffffffffffffffffffffffffffffffff81168103610024579160243573ffffffffffffffffffffffffffffffffffffffff8116810361002457916044359160643573ffffffffffffffffffffffffffffffffffffffff81168103610024579161029f60846101b5565b9160a4359160c4359067ffffffffffffffff8211610024576102c3916004016101d6565b9091565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b346100245761031836610204565b91956103278895969498611b39565b156103d6576103805f979373ffffffffffffffffffffffffffffffffffffffff9389956040519b8c9a8b998a977f8d0598d200000000000000000000000000000000000000000000000000000000895260048901611558565b0393165af180156103d1576103ab915f916103af575b506040519182916020835260208301906102c7565b0390f35b6103cb91503d805f833e6103c38183611430565b8101906114f1565b5f610396565b6115a1565b7f9ccd6d76000000000000000000000000000000000000000000000000000000005f5260045ffd5b346100245760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100245761043561014c565b61043e81611b39565b156103d657602073ffffffffffffffffffffffffffffffffffffffff916004604051809481937faffed0e0000000000000000000000000000000000000000000000000000000008352165afa80156103d1575f906104b6575b6040516fffffffffffffffffffffffffffffffff919091168152602090f35b506020813d6020116104eb575b816104d060209383611430565b81010312610024576103ab90516104e681610698565b610497565b3d91506104c3565b346100245760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261002457602061053461052f61014c565b611b39565b6040519015158152f35b9181601f840112156100245782359167ffffffffffffffff8311610024576020808501948460051b01011161002457565b9060607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8301126100245760043573ffffffffffffffffffffffffffffffffffffffff81168103610024579160243567ffffffffffffffff811161002457816105da9160040161053e565b929092916044359067ffffffffffffffff8211610024576102c3916004016101d6565b346100245761060b3661056f565b929161061685611b39565b15945f956103d65773ffffffffffffffffffffffffffffffffffffffff1690813b15610024575f8094610678604051978896879586947f5885bbcf000000000000000000000000000000000000000000000000000000008652600486016116d3565b03925af180156103d15761068a575080f35b61069691505f90611430565b005b6fffffffffffffffffffffffffffffffff81160361002457565b6044359063ffffffff8216820361002457565b346100245760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610024576106fc61014c565b60243561070881610698565b6107106106b2565b60643567ffffffffffffffff81116100245761073090369060040161053e565b61073b859295611b39565b156103d65773ffffffffffffffffffffffffffffffffffffffff6020946107bd63ffffffff976fffffffffffffffffffffffffffffffff94604051998a98899788967f0cb980670000000000000000000000000000000000000000000000000000000088521660048701521660248501526060604485015260648401916115ac565b0392165afa80156103d1576103ab915f916107e4575b506040519081529081906020820190565b610806915060203d60201161080c575b6107fe8183611430565b8101906116fa565b5f6107d3565b503d6107f4565b346100245760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100245761084a61014c565b60243561085681610698565b61085f82611b39565b156103d6576fffffffffffffffffffffffffffffffff602460209273ffffffffffffffffffffffffffffffffffffffff60405195869485937f2397a131000000000000000000000000000000000000000000000000000000008552166004840152165afa80156103d1576103ab915f916107e457506040519081529081906020820190565b346100245760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100245761091b61014c565b60243561092781610698565b61092f6106b2565b61093761016f565b9260843560a43567ffffffffffffffff81116100245761095b9036906004016101d6565b91909461096784611b39565b156103d6576107bd6020966fffffffffffffffffffffffffffffffff9473ffffffffffffffffffffffffffffffffffffffff948563ffffffff9b6040519c8d9b8c9a8b997f2a1af0a2000000000000000000000000000000000000000000000000000000008b521660048a0152166024880152166044860152606485015260a0608485015260a484019161151a565b346100245760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261002457610a2d61014c565b602435610a3981610698565b610a4282611b39565b156103d6576fffffffffffffffffffffffffffffffff602460209273ffffffffffffffffffffffffffffffffffffffff60405195869485937f922cf8a9000000000000000000000000000000000000000000000000000000008552166004840152165afa80156103d1576103ab915f916107e457506040519081529081906020820190565b34610024576101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261002457610aff61014c565b60243590610b0c82610698565b610b146106b2565b91610b1d61016f565b91610b26610192565b60c43560a43573ffffffffffffffffffffffffffffffffffffffff821682036100245760e43592610104359667ffffffffffffffff8811610024576103ab98610b76610b7e9936906004016101d6565b989097611709565b6040519081529081906020820190565b346100245760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261002457610bc561014c565b60443567ffffffffffffffff811161002457610be59036906004016101d6565b90610bef83611b39565b156103d657610c559260209273ffffffffffffffffffffffffffffffffffffffff6040518096819582947f333daf92000000000000000000000000000000000000000000000000000000008452602435600485015260406024850152604484019161151a565b0392165afa80156103d1576103ab915f91610c7e575b5060405190151581529081906020820190565b610ca0915060203d602011610ca6575b610c988183611430565b81019061182a565b5f610c6b565b503d610c8e565b9060807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8301126100245760043573ffffffffffffffffffffffffffffffffffffffff81168103610024579160243573ffffffffffffffffffffffffffffffffffffffff811681036100245791604435916064359067ffffffffffffffff8211610024576102c3916004016101d6565b3461002457610d4b36610cad565b9291610d5685611b39565b15945f956103d65773ffffffffffffffffffffffffffffffffffffffff1690813b15610024575f8094610678604051978896879586947fb61d27f600000000000000000000000000000000000000000000000000000000865260048601611842565b346100245760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261002457610def61014c565b602435610dfb81610698565b610e036106b2565b91610e0c61016f565b90610e1681611b39565b156103d65760209273ffffffffffffffffffffffffffffffffffffffff606492816fffffffffffffffffffffffffffffffff9563ffffffff604051998a9889977fd81ea0bc000000000000000000000000000000000000000000000000000000008952166004880152166024860152166044840152165afa80156103d1576103ab915f916107e457506040519081529081906020820190565b3461002457610ebd36610cad565b939091610ec982611b39565b156103d6575f73ffffffffffffffffffffffffffffffffffffffff8195610380604051988997889687947fcc83c72e00000000000000000000000000000000000000000000000000000000865260048601611842565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310610f5157505050505090565b9091929394602080610f8d837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0866001960301875289516102c7565b97019301930191939290610f42565b3461002457610faa3661056f565b939091610fb682611b39565b156103d6575f73ffffffffffffffffffffffffffffffffffffffff819561100c604051988997889687947f0ab96bb1000000000000000000000000000000000000000000000000000000008652600486016116d3565b0393165af180156103d1575f9061102e575b6103ab9060405191829182610f1f565b503d805f833e61103e8183611430565b8101906020818303126100245780519067ffffffffffffffff8211610024570181601f820112156100245780519067ffffffffffffffff82116110ed578160051b90604051926110916020840185611430565b8352602080840192820101918483116100245760208201905b8382106110bf57505050506103ab915061101e565b815167ffffffffffffffff8111610024576020916110e2888480948801016114ab565b8152019101906110aa565b611403565b5f91031261002457565b34610024575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261002457602060405173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000066a00056cd44008768e2af00696e19a30084168152f35b346100245761117836610204565b9491929561118588611b39565b15975f986103d65773ffffffffffffffffffffffffffffffffffffffff1693843b15610024575f968793610678926040519a8b998a9889977f8cee772500000000000000000000000000000000000000000000000000000000895260048901611558565b346100245760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100245761122061014c565b60243561122c81610698565b6112346106b2565b9161123d61016f565b611245610192565b9261124f83611b39565b156103d65773ffffffffffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff93816020968160849663ffffffff6040519b8c9a8b997f2c4d6dcf000000000000000000000000000000000000000000000000000000008b521660048a0152166024880152166044860152166064840152165afa80156103d1576103ab915f916107e457506040519081529081906020820190565b346100245760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100245761132661014c565b60243567ffffffffffffffff8111610024576113469036906004016101d6565b6044929192359161135683610698565b61135f81611b39565b156103d65773ffffffffffffffffffffffffffffffffffffffff16803b15610024576fffffffffffffffffffffffffffffffff935f6113d8938195604051978896879586947f195e307b00000000000000000000000000000000000000000000000000000000865260406004870152604486019161151a565b9116602483015203925af180156103d1576113ef57005b806113fd5f61069693611430565b806110f2565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176110ed57604052565b67ffffffffffffffff81116110ed57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b81601f82011215610024578051906114c282611471565b926114d06040519485611430565b8284526020838301011161002457815f9260208093018386015e8301015290565b9060208282031261002457815167ffffffffffffffff81116100245761151792016114ab565b90565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe093818652868601375f8582860101520116010190565b929373ffffffffffffffffffffffffffffffffffffffff60c095611517999794828095168752602087015216604085015216606083015260808201528160a0820152019161151a565b6040513d5f823e3d90fd5b906020838281520160208260051b85010193835f915b8483106115d25750505050505090565b9091929394957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082820301855286357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18436030181121561002457830173ffffffffffffffffffffffffffffffffffffffff61164d826101b5565b1682526020810135602083015260408101357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18236030181121561002457016020813591019067ffffffffffffffff8111610024578036038213610024576116c560209283926060868160406001990152019161151a565b9801969501930191906115c2565b92906116ec9061151795936040865260408601916115ac565b92602081850391015261151a565b90816020910312610024575190565b97949095919692989361171b89611b39565b156103d657604051998a9889987fddb72afd000000000000000000000000000000000000000000000000000000008a526fffffffffffffffffffffffffffffffff1660048a015263ffffffff16602489015273ffffffffffffffffffffffffffffffffffffffff16604488015273ffffffffffffffffffffffffffffffffffffffff166064870152608486015273ffffffffffffffffffffffffffffffffffffffff1660a485015260c484015260e4830161010090526101048301906117e09261151a565b039173ffffffffffffffffffffffffffffffffffffffff1691815a93602094fa9081156103d1575f91611811575090565b611517915060203d60201161080c576107fe8183611430565b90816020910312610024575180151581036100245790565b611517949273ffffffffffffffffffffffffffffffffffffffff6060931682526020820152816040820152019161151a565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b90601510156118b05760150190565b611874565b90601610156118b05760160190565b909291928360151161002457831161002457601501917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb0190565b908092918237015f815290565b3d15611936573d9061191d82611471565b9161192b6040519384611430565b82523d5f602084013e565b606090565b60013560601c9061195261194e83611b39565b1590565b6103d6577fff000000000000000000000000000000000000000000000000000000000000006119aa611984835f6118a1565b357fff000000000000000000000000000000000000000000000000000000000000001690565b16156119d9575b7f42868c9b000000000000000000000000000000000000000000000000000000005f5260045ffd5b7ff000000000000000000000000000000000000000000000000000000000000000611a07611984835f6118b5565b168015908115611aa2575b8115611a78575b50156119b1575f9182611a2e838294836118c4565b9190611a3f604051809481936118ff565b03925af1611a4b61190c565b90611517577facfdb444000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f20000000000000000000000000000000000000000000000000000000000000009150145f611a19565b7f100000000000000000000000000000000000000000000000000000000000000081149150611a12565b60408051909190611add8382611430565b60178152917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001366020840137565b8051156118b05760200190565b8051600110156118b05760210190565b8051600210156118b05760220190565b6017813b03611c1f5760175f611b4d611acc565b9260208401903c7fef000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000611bc8611ba284611b0c565b517fff000000000000000000000000000000000000000000000000000000000000001690565b1614801590611c5a575b8015611c24575b611c1f576023015160601c73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000066a00056cd44008768e2af00696e19a30084161490565b505f90565b507fff00000000000000000000000000000000000000000000000000000000000000611c52611ba283611b29565b161515611bd9565b507f01000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000611ca9611ba284611b19565b161415611bd256fea26469706673582212206a88cba76571534b5641434a7e1d3ccf0391bb0e6c690095e457719cb0dcae9164736f6c634300081e0033
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
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.