Overview
ETH Balance
0 ETH
ETH Value
$0.00More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Latest 1 internal transaction
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
839539 | 24 days ago | Contract Creation | 0 ETH |
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Source Code Verified (Exact Match)
Contract Name:
SocketDeployFactory
Compiler Version
v0.8.24+commit.e11b9ed9
ZkSolc Version
v1.5.11
Optimization Enabled:
Yes with Mode 3
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
//SPDX-License-Identifier: MIT pragma solidity ^0.8.4; import "../utils/Ownable.sol"; import {SafeTransferLib} from "solmate/utils/SafeTransferLib.sol"; import {ERC20} from "solmate/tokens/ERC20.sol"; import {ISocketBridgeBase} from "../interfaces/ISocketBridgeBase.sol"; /** * @dev In the constructor, set up the initialization code for socket * contracts as well as the keccak256 hash of the given initialization code. * that will be used to deploy any transient contracts, which will deploy any * socket contracts that require the use of a constructor. * * Socket contract initialization code (29 bytes): * * 0x5860208158601c335a63aaf10f428752fa158151803b80938091923cf3 * * Description: * * pc|op|name | [stack] | <memory> * * ** set the first stack item to zero - used later ** * 00 58 getpc [0] <> * * ** set second stack item to 32, length of word returned from staticcall ** * 01 60 push1 * 02 20 outsize [0, 32] <> * * ** set third stack item to 0, position of word returned from staticcall ** * 03 81 dup2 [0, 32, 0] <> * * ** set fourth stack item to 4, length of selector given to staticcall ** * 04 58 getpc [0, 32, 0, 4] <> * * ** set fifth stack item to 28, position of selector given to staticcall ** * 05 60 push1 * 06 1c inpos [0, 32, 0, 4, 28] <> * * ** set the sixth stack item to msg.sender, target address for staticcall ** * 07 33 caller [0, 32, 0, 4, 28, caller] <> * * ** set the seventh stack item to msg.gas, gas to forward for staticcall ** * 08 5a gas [0, 32, 0, 4, 28, caller, gas] <> * * ** set the eighth stack item to selector, "what" to store via mstore ** * 09 63 push4 * 10 aaf10f42 selector [0, 32, 0, 4, 28, caller, gas, 0xaaf10f42] <> * * ** set the ninth stack item to 0, "where" to store via mstore *** * 11 87 dup8 [0, 32, 0, 4, 28, caller, gas, 0xaaf10f42, 0] <> * * ** call mstore, consume 8 and 9 from the stack, place selector in memory ** * 12 52 mstore [0, 32, 0, 4, 0, caller, gas] <0xaaf10f42> * * ** call staticcall, consume items 2 through 7, place address in memory ** * 13 fa staticcall [0, 1 (if successful)] <address> * * ** flip success bit in second stack item to set to 0 ** * 14 15 iszero [0, 0] <address> * * ** push a third 0 to the stack, position of address in memory ** * 15 81 dup2 [0, 0, 0] <address> * * ** place address from position in memory onto third stack item ** * 16 51 mload [0, 0, address] <> * * ** place address to fourth stack item for extcodesize to consume ** * 17 80 dup1 [0, 0, address, address] <> * * ** get extcodesize on fourth stack item for extcodecopy ** * 18 3b extcodesize [0, 0, address, size] <> * * ** dup and swap size for use by return at end of init code ** * 19 80 dup1 [0, 0, address, size, size] <> * 20 93 swap4 [size, 0, address, size, 0] <> * * ** push code position 0 to stack and reorder stack items for extcodecopy ** * 21 80 dup1 [size, 0, address, size, 0, 0] <> * 22 91 swap2 [size, 0, address, 0, 0, size] <> * 23 92 swap3 [size, 0, size, 0, 0, address] <> * * ** call extcodecopy, consume four items, clone runtime code to memory ** * 24 3c extcodecopy [size, 0] <code> * * ** return to deploy final code in memory ** * 25 f3 return [] *deployed!* */ contract SocketDeployFactory is Ownable { using SafeTransferLib for ERC20; address public immutable disabledRouteAddress; mapping(address => address) _implementations; mapping(uint256 => bool) isDisabled; mapping(uint256 => bool) isRouteDeployed; mapping(address => bool) canDisableRoute; event Deployed(address _addr); event DisabledRoute(address _addr); event Destroyed(address _addr); error ContractAlreadyDeployed(); error NothingToDestroy(); error AlreadyDisabled(); error CannotBeDisabled(); error OnlyDisabler(); constructor(address _owner, address disabledRoute) Ownable(_owner) { disabledRouteAddress = disabledRoute; canDisableRoute[_owner] = true; } modifier onlyDisabler() { if (!canDisableRoute[msg.sender]) { revert OnlyDisabler(); } _; } function addDisablerAddress(address disabler) external onlyOwner { canDisableRoute[disabler] = true; } function removeDisablerAddress(address disabler) external onlyOwner { canDisableRoute[disabler] = false; } /** * @notice Deploys a route contract at predetermined location * @notice Caller must first deploy the route contract at another location and pass its address as implementation. * @param routeId route identifier * @param implementationContract address of deployed route contract. Its byte code will be copied to predetermined location. */ function deploy( uint256 routeId, address implementationContract ) external onlyOwner returns (address) { // assign the initialization code for the socket contract. bytes memory initCode = ( hex"5860208158601c335a63aaf10f428752fa158151803b80938091923cf3" ); // determine the address of the socket contract. address routeContractAddress = _getContractAddress(routeId); if (isRouteDeployed[routeId]) { revert ContractAlreadyDeployed(); } isRouteDeployed[routeId] = true; //first we deploy the code we want to deploy on a separate address // store the implementation to be retrieved by the socket contract. _implementations[routeContractAddress] = implementationContract; address addr; assembly { let encoded_data := add(0x20, initCode) // load initialization code. let encoded_size := mload(initCode) // load init code's length. addr := create2(0, encoded_data, encoded_size, routeId) // routeId is used as salt } require( addr == routeContractAddress, "Failed to deploy the new socket contract." ); emit Deployed(addr); return addr; } /** * @notice Destroy the route deployed at a location. * @param routeId route identifier to be destroyed. */ function destroy(uint256 routeId) external onlyDisabler { // determine the address of the socket contract. _destroy(routeId); } /** * @notice Deploy a disabled contract at destroyed route to handle it gracefully. * @param routeId route identifier to be disabled. */ function disableRoute( uint256 routeId ) external onlyDisabler returns (address) { return _disableRoute(routeId); } /** * @notice Destroy a list of routeIds * @param routeIds array of routeIds to be destroyed. */ function multiDestroy(uint256[] calldata routeIds) external onlyDisabler { for (uint32 index = 0; index < routeIds.length; ) { _destroy(routeIds[index]); unchecked { ++index; } } } /** * @notice Deploy a disabled contract at list of routeIds. * @param routeIds array of routeIds to be disabled. */ function multiDisableRoute( uint256[] calldata routeIds ) external onlyDisabler { for (uint32 index = 0; index < routeIds.length; ) { _disableRoute(routeIds[index]); unchecked { ++index; } } } /** * @dev External view function for calculating a socket contract address * given a particular routeId. */ function getContractAddress( uint256 routeId ) external view returns (address) { // determine the address of the socket contract. return _getContractAddress(routeId); } //those two functions are getting called by the socket Contract function getImplementation() external view returns (address implementation) { return _implementations[msg.sender]; } function _disableRoute(uint256 routeId) internal returns (address) { // assign the initialization code for the socket contract. bytes memory initCode = ( hex"5860208158601c335a63aaf10f428752fa158151803b80938091923cf3" ); // determine the address of the socket contract. address routeContractAddress = _getContractAddress(routeId); if (!isRouteDeployed[routeId]) { revert CannotBeDisabled(); } if (isDisabled[routeId]) { revert AlreadyDisabled(); } isDisabled[routeId] = true; //first we deploy the code we want to deploy on a separate address // store the implementation to be retrieved by the socket contract. _implementations[routeContractAddress] = disabledRouteAddress; address addr; assembly { let encoded_data := add(0x20, initCode) // load initialization code. let encoded_size := mload(initCode) // load init code's length. addr := create2(0, encoded_data, encoded_size, routeId) // routeId is used as salt. } require( addr == routeContractAddress, "Failed to deploy the new socket contract." ); emit Deployed(addr); return addr; } function _destroy(uint256 routeId) internal { // determine the address of the socket contract. address routeContractAddress = _getContractAddress(routeId); if (!isRouteDeployed[routeId]) { revert NothingToDestroy(); } ISocketBridgeBase(routeContractAddress).killme(); emit Destroyed(routeContractAddress); } /** * @dev Internal view function for calculating a socket contract address * given a particular routeId. */ function _getContractAddress( uint256 routeId ) internal view returns (address) { // determine the address of the socket contract. bytes memory initCode = ( hex"5860208158601c335a63aaf10f428752fa158151803b80938091923cf3" ); return address( uint160( // downcast to match the address type. uint256( // convert to uint to truncate upper digits. keccak256( // compute the CREATE2 hash using 4 inputs. abi.encodePacked( // pack all inputs to the hash together. hex"ff", // start with 0xff to distinguish from RLP. address(this), // this contract will be the caller. routeId, // the routeId is used as salt. keccak256(abi.encodePacked(initCode)) // the init code hash. ) ) ) ) ); } /** * @notice Rescues the ERC20 token to an address this is a restricted function to be called by only socketGatewayOwner * @dev as this is a restricted to socketGatewayOwner, ensure the userAddress is a known address * @param token address of the ERC20 token being rescued * @param userAddress address to which ERC20 is to be rescued * @param amount amount of ERC20 tokens being rescued */ function rescueFunds( address token, address userAddress, uint256 amount ) external onlyOwner { ERC20(token).safeTransfer(userAddress, amount); } /** * @notice Rescues the native balance to an address this is a restricted function to be called by only socketGatewayOwner * @dev as this is a restricted to socketGatewayOwner, ensure the userAddress is a known address * @param userAddress address to which native-balance is to be rescued * @param amount amount of native-balance being rescued */ function rescueEther( address payable userAddress, uint256 amount ) external onlyOwner { userAddress.call{value: amount}(""); } }
// SPDX-License-Identifier: GPL-3.0-only pragma solidity ^0.8.4; import {OnlyOwner, OnlyNominee} from "../errors/SocketErrors.sol"; abstract contract Ownable { address private _owner; address private _nominee; event OwnerNominated(address indexed nominee); event OwnerClaimed(address indexed claimer); constructor(address owner_) { _claimOwner(owner_); } modifier onlyOwner() { if (msg.sender != _owner) { revert OnlyOwner(); } _; } function owner() public view returns (address) { return _owner; } function nominee() public view returns (address) { return _nominee; } function nominateOwner(address nominee_) external { if (msg.sender != _owner) { revert OnlyOwner(); } _nominee = nominee_; emit OwnerNominated(_nominee); } function claimOwner() external { if (msg.sender != _nominee) { revert OnlyNominee(); } _claimOwner(msg.sender); } function _claimOwner(address claimer_) internal { _owner = claimer_; _nominee = address(0); emit OwnerClaimed(claimer_); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.4; interface ISocketBridgeBase { function killme() external; }
// SPDX-License-Identifier: AGPL-3.0-only pragma solidity >=0.8.0; /// @notice Modern and gas efficient ERC20 + EIP-2612 implementation. /// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC20.sol) /// @author Modified from Uniswap (https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/UniswapV2ERC20.sol) /// @dev Do not manually set balances without updating totalSupply, as the sum of all user balances must not exceed it. abstract contract ERC20 { /*////////////////////////////////////////////////////////////// EVENTS //////////////////////////////////////////////////////////////*/ event Transfer(address indexed from, address indexed to, uint256 amount); event Approval(address indexed owner, address indexed spender, uint256 amount); /*////////////////////////////////////////////////////////////// METADATA STORAGE //////////////////////////////////////////////////////////////*/ string public name; string public symbol; uint8 public immutable decimals; /*////////////////////////////////////////////////////////////// ERC20 STORAGE //////////////////////////////////////////////////////////////*/ uint256 public totalSupply; mapping(address => uint256) public balanceOf; mapping(address => mapping(address => uint256)) public allowance; /*////////////////////////////////////////////////////////////// EIP-2612 STORAGE //////////////////////////////////////////////////////////////*/ uint256 internal immutable INITIAL_CHAIN_ID; bytes32 internal immutable INITIAL_DOMAIN_SEPARATOR; mapping(address => uint256) public nonces; /*////////////////////////////////////////////////////////////// CONSTRUCTOR //////////////////////////////////////////////////////////////*/ constructor( string memory _name, string memory _symbol, uint8 _decimals ) { name = _name; symbol = _symbol; decimals = _decimals; INITIAL_CHAIN_ID = block.chainid; INITIAL_DOMAIN_SEPARATOR = computeDomainSeparator(); } /*////////////////////////////////////////////////////////////// ERC20 LOGIC //////////////////////////////////////////////////////////////*/ function approve(address spender, uint256 amount) public virtual returns (bool) { allowance[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function transfer(address to, uint256 amount) public virtual returns (bool) { balanceOf[msg.sender] -= amount; // Cannot overflow because the sum of all user // balances can't exceed the max uint256 value. unchecked { balanceOf[to] += amount; } emit Transfer(msg.sender, to, amount); return true; } function transferFrom( address from, address to, uint256 amount ) public virtual returns (bool) { uint256 allowed = allowance[from][msg.sender]; // Saves gas for limited approvals. if (allowed != type(uint256).max) allowance[from][msg.sender] = allowed - amount; balanceOf[from] -= amount; // Cannot overflow because the sum of all user // balances can't exceed the max uint256 value. unchecked { balanceOf[to] += amount; } emit Transfer(from, to, amount); return true; } /*////////////////////////////////////////////////////////////// EIP-2612 LOGIC //////////////////////////////////////////////////////////////*/ function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) public virtual { require(deadline >= block.timestamp, "PERMIT_DEADLINE_EXPIRED"); // Unchecked because the only math done is incrementing // the owner's nonce which cannot realistically overflow. unchecked { address recoveredAddress = ecrecover( keccak256( abi.encodePacked( "\x19\x01", DOMAIN_SEPARATOR(), keccak256( abi.encode( keccak256( "Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)" ), owner, spender, value, nonces[owner]++, deadline ) ) ) ), v, r, s ); require(recoveredAddress != address(0) && recoveredAddress == owner, "INVALID_SIGNER"); allowance[recoveredAddress][spender] = value; } emit Approval(owner, spender, value); } function DOMAIN_SEPARATOR() public view virtual returns (bytes32) { return block.chainid == INITIAL_CHAIN_ID ? INITIAL_DOMAIN_SEPARATOR : computeDomainSeparator(); } function computeDomainSeparator() internal view virtual returns (bytes32) { return keccak256( abi.encode( keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"), keccak256(bytes(name)), keccak256("1"), block.chainid, address(this) ) ); } /*////////////////////////////////////////////////////////////// INTERNAL MINT/BURN LOGIC //////////////////////////////////////////////////////////////*/ function _mint(address to, uint256 amount) internal virtual { totalSupply += amount; // Cannot overflow because the sum of all user // balances can't exceed the max uint256 value. unchecked { balanceOf[to] += amount; } emit Transfer(address(0), to, amount); } function _burn(address from, uint256 amount) internal virtual { balanceOf[from] -= amount; // Cannot underflow because a user's balance // will never be larger than the total supply. unchecked { totalSupply -= amount; } emit Transfer(from, address(0), amount); } }
// SPDX-License-Identifier: AGPL-3.0-only pragma solidity >=0.8.0; import {ERC20} from "../tokens/ERC20.sol"; /// @notice Safe ETH and ERC20 transfer library that gracefully handles missing return values. /// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/SafeTransferLib.sol) /// @dev Use with caution! Some functions in this library knowingly create dirty bits at the destination of the free memory pointer. library SafeTransferLib { /*////////////////////////////////////////////////////////////// ETH OPERATIONS //////////////////////////////////////////////////////////////*/ function safeTransferETH(address to, uint256 amount) internal { bool success; /// @solidity memory-safe-assembly assembly { // Transfer the ETH and store if it succeeded or not. success := call(gas(), to, amount, 0, 0, 0, 0) } require(success, "ETH_TRANSFER_FAILED"); } /*////////////////////////////////////////////////////////////// ERC20 OPERATIONS //////////////////////////////////////////////////////////////*/ function safeTransferFrom( ERC20 token, address from, address to, uint256 amount ) internal { bool success; /// @solidity memory-safe-assembly assembly { // Get a pointer to some free memory. let freeMemoryPointer := mload(0x40) // Write the abi-encoded calldata into memory, beginning with the function selector. mstore(freeMemoryPointer, 0x23b872dd00000000000000000000000000000000000000000000000000000000) mstore(add(freeMemoryPointer, 4), and(from, 0xffffffffffffffffffffffffffffffffffffffff)) // Append and mask the "from" argument. mstore(add(freeMemoryPointer, 36), and(to, 0xffffffffffffffffffffffffffffffffffffffff)) // Append and mask the "to" argument. mstore(add(freeMemoryPointer, 68), amount) // Append the "amount" argument. Masking not required as it's a full 32 byte type. // We use 100 because the length of our calldata totals up like so: 4 + 32 * 3. // We use 0 and 32 to copy up to 32 bytes of return data into the scratch space. success := call(gas(), token, 0, freeMemoryPointer, 100, 0, 32) // Set success to whether the call reverted, if not we check it either // returned exactly 1 (can't just be non-zero data), or had no return data and token has code. if and(iszero(and(eq(mload(0), 1), gt(returndatasize(), 31))), success) { success := iszero(or(iszero(extcodesize(token)), returndatasize())) } } require(success, "TRANSFER_FROM_FAILED"); } function safeTransfer( ERC20 token, address to, uint256 amount ) internal { bool success; /// @solidity memory-safe-assembly assembly { // Get a pointer to some free memory. let freeMemoryPointer := mload(0x40) // Write the abi-encoded calldata into memory, beginning with the function selector. mstore(freeMemoryPointer, 0xa9059cbb00000000000000000000000000000000000000000000000000000000) mstore(add(freeMemoryPointer, 4), and(to, 0xffffffffffffffffffffffffffffffffffffffff)) // Append and mask the "to" argument. mstore(add(freeMemoryPointer, 36), amount) // Append the "amount" argument. Masking not required as it's a full 32 byte type. // We use 68 because the length of our calldata totals up like so: 4 + 32 * 2. // We use 0 and 32 to copy up to 32 bytes of return data into the scratch space. success := call(gas(), token, 0, freeMemoryPointer, 68, 0, 32) // Set success to whether the call reverted, if not we check it either // returned exactly 1 (can't just be non-zero data), or had no return data and token has code. if and(iszero(and(eq(mload(0), 1), gt(returndatasize(), 31))), success) { success := iszero(or(iszero(extcodesize(token)), returndatasize())) } } require(success, "TRANSFER_FAILED"); } function safeApprove( ERC20 token, address to, uint256 amount ) internal { bool success; /// @solidity memory-safe-assembly assembly { // Get a pointer to some free memory. let freeMemoryPointer := mload(0x40) // Write the abi-encoded calldata into memory, beginning with the function selector. mstore(freeMemoryPointer, 0x095ea7b300000000000000000000000000000000000000000000000000000000) mstore(add(freeMemoryPointer, 4), and(to, 0xffffffffffffffffffffffffffffffffffffffff)) // Append and mask the "to" argument. mstore(add(freeMemoryPointer, 36), amount) // Append the "amount" argument. Masking not required as it's a full 32 byte type. // We use 68 because the length of our calldata totals up like so: 4 + 32 * 2. // We use 0 and 32 to copy up to 32 bytes of return data into the scratch space. success := call(gas(), token, 0, freeMemoryPointer, 68, 0, 32) // Set success to whether the call reverted, if not we check it either // returned exactly 1 (can't just be non-zero data), or had no return data and token has code. if and(iszero(and(eq(mload(0), 1), gt(returndatasize(), 31))), success) { success := iszero(or(iszero(extcodesize(token)), returndatasize())) } } require(success, "APPROVE_FAILED"); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.4; error CelerRefundNotReady(); error OnlySocketDeployer(); error OnlySocketGatewayOwner(); error OnlySocketGateway(); error OnlyOwner(); error OnlyNominee(); error TransferIdExists(); error TransferIdDoesnotExist(); error Address0Provided(); error SwapFailed(); error UnsupportedInterfaceId(); error InvalidCelerRefund(); error CelerAlreadyRefunded(); error IncorrectBridgeRatios(); error ZeroAddressNotAllowed(); error ArrayLengthMismatch(); error PartialSwapsNotAllowed();
{ "evmVersion": "paris", "optimizer": { "enabled": true, "mode": "3" }, "outputSelection": { "*": { "*": [ "abi" ] } }, "detectMissingLibraries": false, "forceEVMLA": false, "enableEraVMExtensions": false, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"disabledRoute","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyDisabled","type":"error"},{"inputs":[],"name":"CannotBeDisabled","type":"error"},{"inputs":[],"name":"ContractAlreadyDeployed","type":"error"},{"inputs":[],"name":"NothingToDestroy","type":"error"},{"inputs":[],"name":"OnlyDisabler","type":"error"},{"inputs":[],"name":"OnlyNominee","type":"error"},{"inputs":[],"name":"OnlyOwner","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_addr","type":"address"}],"name":"Deployed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_addr","type":"address"}],"name":"Destroyed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_addr","type":"address"}],"name":"DisabledRoute","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"claimer","type":"address"}],"name":"OwnerClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"nominee","type":"address"}],"name":"OwnerNominated","type":"event"},{"inputs":[{"internalType":"address","name":"disabler","type":"address"}],"name":"addDisablerAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"routeId","type":"uint256"},{"internalType":"address","name":"implementationContract","type":"address"}],"name":"deploy","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"routeId","type":"uint256"}],"name":"destroy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"routeId","type":"uint256"}],"name":"disableRoute","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disabledRouteAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"routeId","type":"uint256"}],"name":"getContractAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getImplementation","outputs":[{"internalType":"address","name":"implementation","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"routeIds","type":"uint256[]"}],"name":"multiDestroy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"routeIds","type":"uint256[]"}],"name":"multiDisableRoute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"nominee_","type":"address"}],"name":"nominateOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"nominee","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"disabler","type":"address"}],"name":"removeDisablerAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"userAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
9c4d535b00000000000000000000000000000000000000000000000000000000000000000100022be63d0ee498b4c941794ecc2b117d2242cf88cd3964cf65ba9e8e961000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000040000000000000000000000000b0bbff6311b7f245761a7846d3ce7b1b100c18360000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x0001000000000002000b00000000000200000000000103550000006003100270000001df0330019700000001002001900000002f0000c13d0000008002000039000000400020043f000000040030008c000004850000413d000000000201043b000000e002200270000001e70020009c000000810000213d000001f30020009c000000940000213d000001f90020009c000001120000213d000001fc0020009c000002300000613d000001fd0020009c000004850000c13d0000000001000416000000000001004b000004850000c13d0000000101000039000000000201041a000001e2032001970000000005000411000000000035004b0000048b0000c13d000000000300041a000001e303300197000000000353019f000000000030041b000001e302200197000000000021041b0000000001000414000001df0010009c000001df01008041000000c001100210000001e4011001c70000800d020000390000000203000039000001e504000041000003200000013d0000000002000416000000000002004b000004850000c13d0000001f02300039000001e002200197000000a002200039000000400020043f0000001f0430018f000001e105300198000000a002500039000000400000613d000000a006000039000000000701034f000000007807043c0000000006860436000000000026004b0000003c0000c13d000000000004004b0000004d0000613d000000000151034f0000000304400210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000400030008c000004850000413d000000a00500043d000001e20050009c000004850000213d000000c00100043d000900000001001d000001e20010009c000004850000213d000000000100041a000001e301100197000000000151019f000000000010041b0000000102000039000000000102041a000001e301100197000000000012041b0000000001000414000001df0010009c000001df01008041000000c001100210000001e4011001c70000800d020000390000000203000039000001e504000041000800000005001d00000008050000290776076c0000040f00000008010000290000000100200190000004850000613d0000000902000029000000800020043f000000000010043f0000000501000039000000200010043f000000400200003900000000010000190776073e0000040f000000000301041a000002270230019700000001022001bf000000000021041b0000014000000443000000090100002900000160001004430000002001000039000001000010044300000001010000390000012000100443000001e601000041000007770001042e000001e80020009c000000f30000213d000001ee0020009c000001300000213d000001f10020009c000002360000613d000001f20020009c000004850000c13d0000000001000416000000000001004b000004850000c13d0000000001000411000000000010043f0000000201000039000000200010043f000000400200003900000000010000190776073e0000040f000002340000013d000001f40020009c000001ee0000213d000001f70020009c000003050000613d000001f80020009c000004850000c13d000000640030008c000004850000413d0000000002000416000000000002004b000004850000c13d0000000402100370000000000202043b000900000002001d000001e20020009c000004850000213d0000002402100370000000000202043b000001e20020009c000004850000213d000000000300041a000001e2033001970000000004000411000000000034004b000004870000c13d0000021f03000041000000800030043f000000840020043f0000004401100370000000000101043b000000a40010043f0000000001000414000001df0010009c000001df01008041000000c00110021000000220011001c700000009020000290776076c0000040f0000006003100270000001df08300197000000200080008c000000200300003900000000030840190000001f0430018f0000002003300190000000c80000613d000000000501034f0000000006000019000000005705043c0000000006760436000000000036004b000000c40000c13d000000000004004b000000d50000613d000000000131034f0000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000000000100043d000000010010008c0000000001000039000000010100c039000000200080008c00000001011041bf000000000112016f000000010010008c000004b40000c13d000800000008001d00000217010000410000000000100443000000090100002900000004001004430000000001000414000001df0010009c000001df01008041000000c00110021000000218011001c70000800202000039077607710000040f0000000100200190000004c70000613d000000000101043b000000000001004b0000000001000039000000010100603900000008001001b00000049c0000613d000004b60000013d000001e90020009c0000020e0000213d000001ec0020009c000003240000613d000001ed0020009c000004850000c13d000000240030008c000004850000413d0000000002000416000000000002004b000004850000c13d0000000401100370000000000101043b000001e20010009c000004850000213d000000000200041a000001e2022001970000000003000411000000000023004b000004870000c13d000000000010043f0000000501000039000000200010043f000000400200003900000000010000190776073e0000040f000000000201041a0000022702200197000000000021041b0000000001000019000007770001042e000001fa0020009c0000033c0000613d000001fb0020009c000004850000c13d000000240030008c000004850000413d0000000002000416000000000002004b000004850000c13d0000000401100370000000000101043b000001e20010009c000004850000213d000000000200041a000001e2022001970000000003000411000000000023004b000004870000c13d000000000010043f0000000501000039000000200010043f000000400200003900000000010000190776073e0000040f000000000201041a000002270220019700000001022001bf000000000021041b0000000001000019000007770001042e000001ef0020009c0000034a0000613d000001f00020009c000004850000c13d000000440030008c000004850000413d0000000002000416000000000002004b000004850000c13d0000000402100370000000000202043b000900000002001d0000002401100370000000000101043b000800000001001d000001e20010009c000004850000213d000000000100041a000001e2011001970000000002000411000000000012004b000004870000c13d0000001d01000039000000800010043f0000020202000041000000a00020043f000000c00010043f000000e00020043f000001200020043f0000013d0000043f000001000010043f0000014001000039000000400010043f0000000001000414000001df0010009c000001df01008041000000c00110021000000212011001c70000801002000039077607710000040f0000000100200190000004850000613d000000000301043b000000400100043d00000020021000390000020304000041000000000042043500000000040004100000006004400210000000210510003900000000004504350000005504100039000000000034043500000035031000390000000904000029000000000043043500000055030000390000000000310435000002040010009c000004ae0000213d0000008003100039000000400030043f000001df0020009c000001df0200804100000040022002100000000001010433000001df0010009c000001df010080410000006001100210000000000121019f0000000002000414000001df0020009c000001df02008041000000c002200210000000000112019f000001e4011001c70000801002000039077607710000040f0000000100200190000004850000613d000000000101043b000700000001001d0000000901000029000000000010043f0000000401000039000000200010043f0000000001000414000001df0010009c000001df01008041000000c001100210000001fe011001c70000801002000039077607710000040f0000000100200190000004850000613d000000000101043b000000000101041a000000ff00100190000004c80000c13d0000000901000029000000000010043f0000000401000039000000200010043f0000000001000414000001df0010009c000001df01008041000000c001100210000001fe011001c70000801002000039077607710000040f0000000100200190000004850000613d0000000702000029000001e202200197000000000101043b000000000301041a000002270330019700000001033001bf000000000031041b000000000020043f0000000201000039000000200010043f0000000001000414000001df0010009c000001df01008041000000c001100210000001fe011001c70000801002000039077607710000040f0000000100200190000004850000613d000000000101043b000000000201041a000001e30220019700000008022001af000000000021041b000000800100043d00000209020000410000000003000414000000a00020043f0000000902000029000000a40020043f0000006002000039000000e40020043f000000840210008a000001040020043f000001df0010009c000001df010080410000006001100210000001df0030009c000001df03008041000000c002300210000000000121019f00000214011001c700008006020000390776076c0000040f00000001002001900000000002000019000001d00000613d000000000201043b000000070320014f000000400100043d000001e200300198000004cb0000c13d000001e202200197000900000002001d0000000000210435000001df0010009c000001df0100804100000040011002100000000002000414000001df0020009c000001df02008041000000c002200210000000000112019f0000020e011001c70000800d0200003900000001030000390000020f040000410776076c0000040f0000000100200190000004850000613d000000400100043d00000009020000290000000000210435000001df0010009c000001df010080410000004001100210000001ff011001c7000007770001042e000001f50020009c000003590000613d000001f60020009c000004850000c13d000000240030008c000004850000413d0000000001000416000000000001004b000004850000c13d0000000001000411000000000010043f0000000501000039000000200010043f0000000001000414000001df0010009c000001df01008041000000c001100210000001fe011001c70000801002000039077607710000040f0000000100200190000004850000613d000000000101043b000000000101041a000000ff00100190000002280000613d00000004010000390000000001100367000000000101043b077605070000040f0000000001000019000007770001042e000001ea0020009c000003610000613d000001eb0020009c000004850000c13d000000240030008c000004850000413d0000000001000416000000000001004b000004850000c13d0000000001000411000000000010043f0000000501000039000000200010043f0000000001000414000001df0010009c000001df01008041000000c001100210000001fe011001c70000801002000039077607710000040f0000000100200190000004850000613d000000000101043b000000000101041a000000ff001001900000048f0000c13d000000400100043d0000021e020000410000000000210435000001df0010009c000001df01008041000000400110021000000206011001c700000778000104300000000001000416000000000001004b000004850000c13d0000000101000039000000000101041a0000035d0000013d000000240030008c000004850000413d0000000002000416000000000002004b000004850000c13d0000000402100370000000000202043b000002000020009c000004850000213d0000002304200039000000000034004b000004850000813d0000000404200039000000000141034f000000000101043b000500000001001d000002000010009c000004850000213d000400240020003d000000050100002900000005011002100000000401100029000000000031004b000004850000213d0000000001000411000000000010043f0000000501000039000000200010043f0000000001000414000001df0010009c000001df01008041000000c001100210000001fe011001c70000801002000039077607710000040f0000000100200190000004850000613d000000000101043b000000000101041a000000ff00100190000002280000613d000000050000006b0000049c0000613d00000000010004100003006000100218000800000000001d0000000801000029000000050110021000000004011000290000000001100367000000000101043b000900000001001d000000400100043d000002160010009c000004ae0000813d0000004002100039000000400020043f0000002002100039000002020300004100000000003204350000001d040000390000000000410435000000400100043d0000002002100039000000000032043500000000004104350000003d031000390000000000030435000002010010009c000004ae0000213d0000004003100039000000400030043f000001df0020009c000001df0200804100000040022002100000000001010433000001df0010009c000001df010080410000006001100210000000000121019f0000000002000414000001df0020009c000001df02008041000000c002200210000000000112019f000001e4011001c70000801002000039077607710000040f0000000100200190000004850000613d000000000301043b000000400100043d0000002002100039000002030400004100000000004204350000002104100039000000030500002900000000005404350000005504100039000000000034043500000035031000390000000904000029000000000043043500000055030000390000000000310435000002040010009c000004ae0000213d0000008003100039000000400030043f000001df0020009c000001df0200804100000040022002100000000001010433000001df0010009c000001df010080410000006001100210000000000121019f0000000002000414000001df0020009c000001df02008041000000c002200210000000000112019f000001e4011001c70000801002000039077607710000040f0000000100200190000004850000613d000000000101043b000700000001001d0000000901000029000000000010043f0000000401000039000000200010043f0000000001000414000001df0010009c000001df01008041000000c001100210000001fe011001c70000801002000039077607710000040f0000000100200190000004850000613d000000000101043b000000000101041a000000ff00100190000004de0000613d0000000701000029000001e20210019700000217010000410000000000100443000900000002001d00000004002004430000000001000414000001df0010009c000001df01008041000000c00110021000000218011001c70000800202000039077607710000040f0000000100200190000004c70000613d000000000101043b000000000001004b000004850000613d000000400200043d00000219010000410000000000120435000001df0020009c000700000002001d000001df01000041000000000102401900060040001002180000000001000414000001df0010009c000001df01008041000000c00110021000000006011001af00000206011001c700000009020000290776076c0000040f0000000100200190000004e10000613d0000000702000029000002000020009c000004ae0000213d000000400020043f000000090100002900000000001204350000000001000414000001df0010009c000001df01008041000000c00110021000000006011001af0000020e011001c70000800d0200003900000001030000390000021a040000410776076c0000040f0000000100200190000004850000613d00000008010000290000000101100039000001df02100197000800000002001d000000050020006c000002640000413d0000049c0000013d000000240030008c000004850000413d0000000002000416000000000002004b000004850000c13d0000000401100370000000000501043b000001e20050009c000004850000213d000000000100041a000001e2011001970000000002000411000000000012004b000004870000c13d0000000101000039000000000201041a000001e302200197000000000252019f000000000021041b0000000001000414000001df0010009c000001df01008041000000c001100210000001e4011001c70000800d02000039000000020300003900000223040000410776076c0000040f0000000100200190000004850000613d0000049c0000013d000000440030008c000004850000413d0000000002000416000000000002004b000004850000c13d0000000402100370000000000402043b000001e20040009c000004850000213d000000000200041a000001e2022001970000000003000411000000000023004b000004870000c13d0000002401100370000000000301043b0000000001000414000001df0010009c000001df01008041000000c001100210000000000003004b000004950000c13d0000000002040019000004980000013d0000000001000416000000000001004b000004850000c13d0000000001000412000b00000001001d000a00000000003d0000800501000039000000440300003900000000040004150000000b0440008a00000005044002100000020702000041077607530000040f0000035d0000013d000000240030008c000004850000413d0000000002000416000000000002004b000004850000c13d0000000401100370000000000101043b077605d00000040f000000400200043d0000000000120435000001df0020009c000001df020080410000004001200210000001ff011001c7000007770001042e0000000001000416000000000001004b000004850000c13d000000000100041a000001e201100197000000800010043f0000021501000041000007770001042e000000240030008c000004850000413d0000000002000416000000000002004b000004850000c13d0000000402100370000000000202043b000002000020009c000004850000213d0000002304200039000000000034004b000004850000813d0000000404200039000000000141034f000000000101043b000300000001001d000002000010009c000004850000213d000200240020003d000000030100002900000005011002100000000201100029000000000031004b000004850000213d0000000001000411000000000010043f0000000501000039000000200010043f0000000001000414000001df0010009c000001df01008041000000c001100210000001fe011001c70000801002000039077607710000040f0000000100200190000004850000613d000000000101043b000000000101041a000000ff00100190000002280000613d000000030000006b0000049c0000613d00000000010004100001006000100218000800000000001d0000000801000029000000050110021000000002011000290000000001100367000000000101043b000900000001001d000000400100043d000700000001001d000002010010009c000004ae0000213d00000007020000290000004001200039000000400010043f0000001d0100003900000000021204360000020201000041000600000002001d0000000000120435000000400100043d000002010010009c000004ae0000213d0000004002100039000000400020043f0000002002100039000002020400004100000000004204350000001d030000390000000000310435000000400100043d0000002002100039000000000042043500000000003104350000003d031000390000000000030435000002010010009c000004ae0000213d0000004003100039000000400030043f000001df0020009c000001df0200804100000040022002100000000001010433000001df0010009c000001df010080410000006001100210000000000121019f0000000002000414000001df0020009c000001df02008041000000c002200210000000000112019f000001e4011001c70000801002000039077607710000040f0000000100200190000004850000613d000000000301043b000000400100043d0000002002100039000002030400004100000000004204350000002104100039000000010500002900000000005404350000005504100039000000000034043500000035031000390000000904000029000000000043043500000055030000390000000000310435000002040010009c000004ae0000213d0000008003100039000000400030043f000001df0020009c000001df0200804100000040022002100000000001010433000001df0010009c000001df010080410000006001100210000000000121019f0000000002000414000001df0020009c000001df02008041000000c002200210000000000112019f000001e4011001c70000801002000039077607710000040f0000000100200190000004850000613d000000000101043b000500000001001d0000000901000029000000000010043f0000000401000039000000200010043f0000000001000414000001df0010009c000001df01008041000000c001100210000001fe011001c70000801002000039077607710000040f0000000100200190000004850000613d000000000101043b000000000101041a000000ff00100190000005010000613d0000000901000029000000000010043f0000000301000039000000200010043f0000000001000414000001df0010009c000001df01008041000000c001100210000001fe011001c70000801002000039077607710000040f0000000100200190000004850000613d000000000101043b000000000101041a000000ff00100190000005040000c13d0000000901000029000000000010043f0000000301000039000000200010043f0000000001000414000001df0010009c000001df01008041000000c001100210000001fe011001c70000801002000039077607710000040f0000000100200190000004850000613d000000000101043b000000000201041a000002270220019700000001022001bf000000000021041b000002070100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000001df0010009c000001df01008041000000c00110021000000208011001c70000800502000039077607710000040f0000000100200190000004c70000613d0000000502000029000001e202200197000000000101043b000400000001001d000500000002001d000000000020043f0000000201000039000000200010043f0000000001000414000001df0010009c000001df01008041000000c001100210000001fe011001c70000801002000039077607710000040f0000000100200190000004850000613d0000000402000029000001e202200197000000000101043b000000000301041a000001e303300197000000000223019f000000000021041b0000000705000029000000000105043300000000020004140000020903000041000000060600002900000000003604350000008403500039000000840410008a0000000000430435000000640350003900000060040000390000000000430435000000240350003900000009040000290000000000430435000001df0060009c000001df060080410000004003600210000001df0010009c000001df010080410000006001100210000000000131019f000001df0020009c000001df02008041000000c002200210000000000112019f000001e4011001c700008006020000390776076c0000040f00000001002001900000000002000019000004690000613d000000000201043b000000400100043d000001e2022001970000000503000029000000000032004b000004cb0000c13d0000000000310435000001df0010009c000001df0100804100000040011002100000000002000414000001df0020009c000001df02008041000000c002200210000000000112019f0000020e011001c70000800d0200003900000001030000390000020f040000410776076c0000040f0000000100200190000004850000613d00000008010000290000000101100039000001df02100197000800000002001d000000030020006c0000038f0000413d0000049c0000013d000000000100001900000778000104300000022401000041000000800010043f000002250100004100000778000104300000022601000041000000800010043f0000022501000041000007780001043000000004010000390000000001100367000000000101043b077606290000040f000001e201100197000003520000013d000001e4011001c7000080090200003900000000050000190776076c0000040f0000006001100270000001df011001980000049e0000c13d0000000001000019000007770001042e0000001f01100039000001e0011001970000003f011000390000021101100197000000400200043d0000000001120019000000000021004b00000000020000390000000102004039000002000010009c000004ae0000213d0000000100200190000004ae0000c13d000000400010043f0000000001000019000007770001042e0000021c01000041000000000010043f0000004101000039000000040010043f0000021d01000041000007780001043000000001002001900000049c0000c13d000000400100043d00000044021000390000022103000041000000000032043500000024021000390000000f0300003900000000003204350000020c020000410000000000210435000000040210003900000020030000390000000000320435000001df0010009c000001df01008041000000400110021000000222011001c70000077800010430000000000001042f000000400100043d00000213020000410000022a0000013d00000064021000390000020a03000041000000000032043500000044021000390000020b0300004100000000003204350000002402100039000000290300003900000000003204350000020c020000410000000000210435000000040210003900000020030000390000000000320435000001df0010009c000001df0100804100000040011002100000020d011001c70000077800010430000000400100043d0000021b020000410000022a0000013d00000060061002700000001f0460018f000001e105600198000000400200043d0000000003520019000004ed0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000038004b000004e90000c13d000001df06600197000000000004004b000004fb0000613d000000000151034f0000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000006001600210000001df0020009c000001df020080410000004002200210000000000112019f0000077800010430000000400100043d00000210020000410000022a0000013d000000400100043d00000205020000410000022a0000013d0003000000000002000300000001001d000000400100043d000002160010009c000005a10000813d0000004002100039000000400020043f0000002002100039000002020300004100000000003204350000001d040000390000000000410435000000400100043d0000002002100039000000000032043500000000004104350000003d031000390000000000030435000002010010009c000005a10000213d0000004003100039000000400030043f000001df0020009c000001df0200804100000040022002100000000001010433000001df0010009c000001df010080410000006001100210000000000121019f0000000002000414000001df0020009c000001df02008041000000c002200210000000000112019f000001e4011001c70000801002000039077607710000040f00000001002001900000059f0000613d000000000301043b000000400100043d00000020021000390000020304000041000000000042043500000000040004100000006004400210000000210510003900000000004504350000005504100039000000000034043500000035031000390000000304000029000000000043043500000055030000390000000000310435000002040010009c000005a10000213d0000008003100039000000400030043f000001df0020009c000001df0200804100000040022002100000000001010433000001df0010009c000001df010080410000006001100210000000000121019f0000000002000414000001df0020009c000001df02008041000000c002200210000000000112019f000001e4011001c70000801002000039077607710000040f00000001002001900000059f0000613d000000000101043b000200000001001d0000000301000029000000000010043f0000000401000039000000200010043f0000000001000414000001df0010009c000001df01008041000000c001100210000001fe011001c70000801002000039077607710000040f00000001002001900000059f0000613d000000000101043b000000000101041a000000ff00100190000005a70000613d0000000201000029000001e20210019700000217010000410000000000100443000300000002001d00000004002004430000000001000414000001df0010009c000001df01008041000000c00110021000000218011001c70000800202000039077607710000040f0000000100200190000005af0000613d000000000101043b000000000001004b0000059f0000613d000000400200043d00000219010000410000000000120435000001df0020009c000200000002001d000001df01000041000000000102401900010040001002180000000001000414000001df0010009c000001df01008041000000c00110021000000001011001af00000206011001c700000003020000290776076c0000040f0000000100200190000005b00000613d0000000202000029000002000020009c000005a10000213d000000400020043f000000030100002900000000001204350000000001000414000001df0010009c000001df01008041000000c00110021000000001011001af0000020e011001c70000800d0200003900000001030000390000021a040000410776076c0000040f00000001002001900000059f0000613d000000000001042d000000000100001900000778000104300000021c01000041000000000010043f0000004101000039000000040010043f0000021d010000410000077800010430000000400100043d0000021b020000410000000000210435000001df0010009c000001df01008041000000400110021000000206011001c70000077800010430000000000001042f00000060061002700000001f0460018f000001e105600198000000400200043d0000000003520019000005bc0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000038004b000005b80000c13d000001df06600197000000000004004b000005ca0000613d000000000151034f0000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000006001600210000001df0020009c000001df020080410000004002200210000000000112019f00000778000104300001000000000002000100000001001d000000400100043d000002160010009c000006210000813d0000004002100039000000400020043f0000002002100039000002020300004100000000003204350000001d040000390000000000410435000000400100043d0000002002100039000000000032043500000000004104350000003d031000390000000000030435000002010010009c000006210000213d0000004003100039000000400030043f000001df0020009c000001df0200804100000040022002100000000001010433000001df0010009c000001df010080410000006001100210000000000121019f0000000002000414000001df0020009c000001df02008041000000c002200210000000000112019f000001e4011001c70000801002000039077607710000040f0000000100200190000006270000613d000000000301043b000000400100043d00000020021000390000020304000041000000000042043500000000040004100000006004400210000000210510003900000000004504350000005504100039000000000034043500000035031000390000000104000029000000000043043500000055030000390000000000310435000002040010009c000006210000213d0000008003100039000000400030043f000001df0020009c000001df0200804100000040022002100000000001010433000001df0010009c000001df010080410000006001100210000000000121019f0000000002000414000001df0020009c000001df02008041000000c002200210000000000112019f000001e4011001c70000801002000039077607710000040f0000000100200190000006270000613d000000000101043b000001e201100197000000000001042d0000021c01000041000000000010043f0000004101000039000000040010043f0000021d010000410000077800010430000000000100001900000778000104300005000000000002000500000001001d000000400100043d000400000001001d000002160010009c000007180000813d00000004020000290000004001200039000000400010043f0000001d0100003900000000021204360000020203000041000300000002001d0000000000320435000000400200043d000002010020009c000007180000213d0000004004200039000000400040043f000000200420003900000000003404350000000000120435000000400200043d0000002004200039000000000034043500000000001204350000003d012000390000000000010435000002010020009c000007180000213d0000004001200039000000400010043f000001df0040009c000001df0400804100000040014002100000000002020433000001df0020009c000001df020080410000006002200210000000000112019f0000000002000414000001df0020009c000001df02008041000000c002200210000000000112019f000001e4011001c70000801002000039077607710000040f0000000100200190000007160000613d000000000301043b000000400100043d00000020021000390000020304000041000000000042043500000000040004100000006004400210000000210510003900000000004504350000005504100039000000000034043500000035031000390000000504000029000000000043043500000055030000390000000000310435000002040010009c000007180000213d0000008003100039000000400030043f000001df0020009c000001df0200804100000040022002100000000001010433000001df0010009c000001df010080410000006001100210000000000121019f0000000002000414000001df0020009c000001df02008041000000c002200210000000000112019f000001e4011001c70000801002000039077607710000040f0000000100200190000007160000613d000000000101043b000200000001001d0000000501000029000000000010043f0000000401000039000000200010043f0000000001000414000001df0010009c000001df01008041000000c001100210000001fe011001c70000801002000039077607710000040f0000000100200190000007160000613d000000000101043b000000000101041a000000ff001001900000071e0000613d0000000501000029000000000010043f0000000301000039000000200010043f0000000001000414000001df0010009c000001df01008041000000c001100210000001fe011001c70000801002000039077607710000040f0000000100200190000007160000613d000000000101043b000000000101041a000000ff00100190000007210000c13d0000000501000029000000000010043f0000000301000039000000200010043f0000000001000414000001df0010009c000001df01008041000000c001100210000001fe011001c70000801002000039077607710000040f0000000100200190000007160000613d000000000101043b000000000201041a000002270220019700000001022001bf000000000021041b000002070100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000001df0010009c000001df01008041000000c00110021000000208011001c70000800502000039077607710000040f0000000100200190000007290000613d0000000202000029000001e202200197000000000101043b000100000001001d000200000002001d000000000020043f0000000201000039000000200010043f0000000001000414000001df0010009c000001df01008041000000c001100210000001fe011001c70000801002000039077607710000040f0000000100200190000007160000613d0000000102000029000001e202200197000000000101043b000000000301041a000001e303300197000000000223019f000000000021041b0000000405000029000000000105043300000209020000410000000003000414000000030600002900000000002604350000008402500039000000840410008a0000000000420435000000640250003900000060040000390000000000420435000000240250003900000005040000290000000000420435000001df0060009c000001df060080410000004002600210000001df0010009c000001df010080410000006001100210000000000121019f000001df0030009c000001df03008041000000c002300210000000000112019f000001e4011001c700008006020000390776076c0000040f00000001002001900000000002000019000006fe0000613d000000000201043b000000400100043d000500000002001d000001e2022001970000000203000029000000000032004b0000072a0000c13d0000000000310435000001df0010009c000001df0100804100000040011002100000000002000414000001df0020009c000001df02008041000000c002200210000000000112019f0000020e011001c70000800d0200003900000001030000390000020f040000410776076c0000040f0000000100200190000007160000613d0000000501000029000000000001042d000000000100001900000778000104300000021c01000041000000000010043f0000004101000039000000040010043f0000021d010000410000077800010430000000400100043d0000021002000041000007230000013d000000400100043d00000205020000410000000000210435000001df0010009c000001df01008041000000400110021000000206011001c70000077800010430000000000001042f00000064021000390000020a03000041000000000032043500000044021000390000020b0300004100000000003204350000002402100039000000290300003900000000003204350000020c020000410000000000210435000000040210003900000020030000390000000000320435000001df0010009c000001df0100804100000040011002100000020d011001c70000077800010430000000000001042f000001df0010009c000001df010080410000004001100210000001df0020009c000001df020080410000006002200210000000000112019f0000000002000414000001df0020009c000001df02008041000000c002200210000000000112019f000001e4011001c70000801002000039077607710000040f0000000100200190000007510000613d000000000101043b000000000001042d0000000001000019000007780001043000000000050100190000000000200443000000040100003900000005024002700000000002020031000000000121043a0000002004400039000000000031004b000007560000413d000001df0030009c000001df0300804100000060013002100000000002000414000001df0020009c000001df02008041000000c002200210000000000112019f00000228011001c70000000002050019077607710000040f00000001002001900000076b0000613d000000000101043b000000000001042d000000000001042f0000076f002104210000000102000039000000000001042d0000000002000019000000000001042d00000774002104230000000102000039000000000001042d0000000002000019000000000001042d0000077600000432000007770001042e000007780001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000fbe19c9b601f5ee90b44c7390f3fa2319eba01762d34ee372aeafd59b25c7f87000000020000000000000000000000000000008000000100000000000000000000000000000000000000000000000000000000000000000000000000a6630a5300000000000000000000000000000000000000000000000000000000e42e0ea800000000000000000000000000000000000000000000000000000000fa881c0f00000000000000000000000000000000000000000000000000000000fa881c1000000000000000000000000000000000000000000000000000000000ffcdf4ed00000000000000000000000000000000000000000000000000000000e42e0ea900000000000000000000000000000000000000000000000000000000f94537aa00000000000000000000000000000000000000000000000000000000aefa7d9700000000000000000000000000000000000000000000000000000000aefa7d9800000000000000000000000000000000000000000000000000000000df02995d00000000000000000000000000000000000000000000000000000000a6630a5400000000000000000000000000000000000000000000000000000000aaf10f42000000000000000000000000000000000000000000000000000000005b94db26000000000000000000000000000000000000000000000000000000008da5cb5a000000000000000000000000000000000000000000000000000000008da5cb5b000000000000000000000000000000000000000000000000000000009d118770000000000000000000000000000000000000000000000000000000005b94db27000000000000000000000000000000000000000000000000000000006ccae0540000000000000000000000000000000000000000000000000000000042cf35260000000000000000000000000000000000000000000000000000000042cf352700000000000000000000000000000000000000000000000000000000570d76ff0000000000000000000000000000000000000000000000000000000020f99c0a000000000000000000000000000000000000000000000000000000003bd1adec02000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffbf5860208158601c335a63aaf10f428752fa158151803b80938091923cf3000000ff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f005ecddb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e02000002000000000000000000000000000000440000000000000000000000003cda33511d41a8a5431b1770c5bc0ddd62e1cd30555d16659b89c0d60f4f9f57636f6e74726163742e00000000000000000000000000000000000000000000004661696c656420746f206465706c6f7920746865206e657720736f636b65742008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000000000000000000000000200000000000000000000000000000000000020000000000000000000000000f40fcec21964ffb566044d083b4073f29f7f7929110ea19e1b3ebe375d89055eb82dbbb60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003ffffffe0020000000000000000000000000000000000001d000001200000000000000000955ab4b7000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000020000000800000000000000000000000000000000000000000000000000000000000000000ffffffffffffffc01806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000024d97a4a000000000000000000000000000000000000000000000000000000007dec311f70bce33f6997a1cc140bcb6149f9ee83d6be656e848b00d170c98200834904bb000000000000000000000000000000000000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000a87cd2be00000000000000000000000000000000000000000000000000000000a9059cbb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000440000008000000000000000005452414e534645525f4641494c454400000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce225fc483c50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000008000000000000000007c91ccdd00000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a76b64c521734b704928187ed6490d3cf7684bb7c57fccddcf5993ed6fd806a8
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000b0bbff6311b7f245761a7846d3ce7b1b100c18360000000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _owner (address): 0xB0BBff6311B7F245761A7846d3Ce7B1b100C1836
Arg [1] : disabledRoute (address): 0x0000000000000000000000000000000000000000
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000b0bbff6311b7f245761a7846d3ce7b1b100c1836
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.