Overview
S Balance
S Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 26 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Create Proxy | 6639242 | 17 hrs ago | IN | 0 S | 0.06279647 | ||||
Create Proxy | 6639112 | 17 hrs ago | IN | 0 S | 0.06238765 | ||||
Create Proxy | 6639047 | 17 hrs ago | IN | 0 S | 0.06238765 | ||||
Create Proxy | 6638890 | 17 hrs ago | IN | 0 S | 0.06239337 | ||||
Create Proxy | 6638841 | 17 hrs ago | IN | 0 S | 0.0623937 | ||||
Create Proxy | 6638802 | 17 hrs ago | IN | 0 S | 0.0626665 | ||||
Create Proxy | 6638761 | 17 hrs ago | IN | 0 S | 0.06267783 | ||||
Create Proxy | 6638668 | 17 hrs ago | IN | 0 S | 0.06373238 | ||||
Create Proxy | 6463778 | 2 days ago | IN | 0 S | 0.09446563 | ||||
Create Proxy | 6463773 | 2 days ago | IN | 0 S | 0.09248811 | ||||
Create Proxy | 6463766 | 2 days ago | IN | 0 S | 0.09277389 | ||||
Create Proxy | 6463763 | 2 days ago | IN | 0 S | 0.09352513 | ||||
Create Proxy | 6463758 | 2 days ago | IN | 0 S | 0.09352513 | ||||
Create Proxy | 6463753 | 2 days ago | IN | 0 S | 0.09206958 | ||||
Create Proxy | 6463746 | 2 days ago | IN | 0 S | 0.09278989 | ||||
Create Proxy | 6463739 | 2 days ago | IN | 0 S | 0.09266284 | ||||
Create Proxy | 6463733 | 2 days ago | IN | 0 S | 0.0939359 | ||||
Create Proxy | 6223466 | 3 days ago | IN | 0 S | 0.06339924 | ||||
Create Proxy | 6223444 | 3 days ago | IN | 0 S | 0.06339957 | ||||
Create Proxy | 6223391 | 3 days ago | IN | 0 S | 0.06280788 | ||||
Create Proxy | 6223371 | 3 days ago | IN | 0 S | 0.06368381 | ||||
Create Proxy | 6223334 | 3 days ago | IN | 0 S | 0.06338851 | ||||
Create Proxy | 6012293 | 5 days ago | IN | 0 S | 0.077734 | ||||
Set Upgrade Admi... | 5613168 | 9 days ago | IN | 0 S | 0.00261219 | ||||
Set Implementati... | 5324457 | 12 days ago | IN | 0 S | 0.00406602 |
Latest 23 internal transactions
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
6639242 | 17 hrs ago | Contract Creation | 0 S | |||
6639112 | 17 hrs ago | Contract Creation | 0 S | |||
6639047 | 17 hrs ago | Contract Creation | 0 S | |||
6638890 | 17 hrs ago | Contract Creation | 0 S | |||
6638841 | 17 hrs ago | Contract Creation | 0 S | |||
6638802 | 17 hrs ago | Contract Creation | 0 S | |||
6638761 | 17 hrs ago | Contract Creation | 0 S | |||
6638668 | 17 hrs ago | Contract Creation | 0 S | |||
6463778 | 2 days ago | Contract Creation | 0 S | |||
6463773 | 2 days ago | Contract Creation | 0 S | |||
6463766 | 2 days ago | Contract Creation | 0 S | |||
6463763 | 2 days ago | Contract Creation | 0 S | |||
6463758 | 2 days ago | Contract Creation | 0 S | |||
6463753 | 2 days ago | Contract Creation | 0 S | |||
6463746 | 2 days ago | Contract Creation | 0 S | |||
6463739 | 2 days ago | Contract Creation | 0 S | |||
6463733 | 2 days ago | Contract Creation | 0 S | |||
6223466 | 3 days ago | Contract Creation | 0 S | |||
6223444 | 3 days ago | Contract Creation | 0 S | |||
6223391 | 3 days ago | Contract Creation | 0 S | |||
6223371 | 3 days ago | Contract Creation | 0 S | |||
6223334 | 3 days ago | Contract Creation | 0 S | |||
6012293 | 5 days ago | Contract Creation | 0 S |
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:
GenericFactory
Compiler Version
v0.8.24+commit.e11b9ed9
Optimization Enabled:
Yes with 20000 runs
Other Settings:
cancun EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: GPL-2.0-or-later pragma solidity ^0.8.0; import {BeaconProxy} from "./BeaconProxy.sol"; import {MetaProxyDeployer} from "./MetaProxyDeployer.sol"; /// @title IComponent /// @notice Minimal interface which must be implemented by the contract deployed by the factory interface IComponent { /// @notice Function replacing the constructor in proxied contracts /// @param creator The new contract's creator address function initialize(address creator) external; } /// @title GenericFactory /// @custom:security-contact [email protected] /// @author Euler Labs (https://www.eulerlabs.com/) /// @notice The factory allows permissionless creation of upgradeable or non-upgradeable proxy contracts and serves as a /// beacon for the upgradeable ones contract GenericFactory is MetaProxyDeployer { // Constants uint256 internal constant REENTRANCYLOCK__UNLOCKED = 1; uint256 internal constant REENTRANCYLOCK__LOCKED = 2; // State /// @title ProxyConfig /// @notice This struct is used to store the configuration of a proxy deployed by the factory struct ProxyConfig { // If true, proxy is an instance of the BeaconProxy bool upgradeable; // Address of the implementation contract // May be an out-of-date value, if upgradeable (handled by getProxyConfig) address implementation; // The metadata attached to every call passing through the proxy bytes trailingData; } uint256 private reentrancyLock; /// @notice Address of the account authorized to upgrade the implementation contract address public upgradeAdmin; /// @notice Address of the implementation contract, which the deployed proxies will delegate-call to /// @dev The contract must implement the `IComponent` interface address public implementation; /// @notice A lookup for configurations of the proxy contracts deployed by the factory mapping(address proxy => ProxyConfig) internal proxyLookup; /// @notice An array of addresses of all the proxies deployed by the factory address[] public proxyList; // Events /// @notice The factory is created event Genesis(); /// @notice A new proxy is created /// @param proxy Address of the new proxy /// @param upgradeable If true, proxy is an instance of the BeaconProxy. If false, the proxy is a minimal meta proxy /// @param implementation Address of the implementation contract, at the time the proxy was deployed /// @param trailingData The metadata that will be attached to every call passing through the proxy event ProxyCreated(address indexed proxy, bool upgradeable, address implementation, bytes trailingData); /// @notice Set a new implementation contract. All the BeaconProxies are upgraded to the new logic /// @param newImplementation Address of the new implementation contract event SetImplementation(address indexed newImplementation); /// @notice Set a new upgrade admin /// @param newUpgradeAdmin Address of the new admin event SetUpgradeAdmin(address indexed newUpgradeAdmin); // Errors error E_Reentrancy(); error E_Unauthorized(); error E_Implementation(); error E_BadAddress(); error E_BadQuery(); // Modifiers modifier nonReentrant() { if (reentrancyLock == REENTRANCYLOCK__LOCKED) revert E_Reentrancy(); reentrancyLock = REENTRANCYLOCK__LOCKED; _; reentrancyLock = REENTRANCYLOCK__UNLOCKED; } modifier adminOnly() { if (msg.sender != upgradeAdmin) revert E_Unauthorized(); _; } constructor(address admin) { emit Genesis(); if (admin == address(0)) revert E_BadAddress(); reentrancyLock = REENTRANCYLOCK__UNLOCKED; upgradeAdmin = admin; emit SetUpgradeAdmin(admin); } /// @notice A permissionless funtion to deploy new proxies /// @param desiredImplementation Address of the implementation contract expected to be registered in the factory /// during proxy creation /// @param upgradeable If true, the proxy will be an instance of the BeaconProxy. If false, a minimal meta proxy /// will be deployed /// @param trailingData Metadata to be attached to every call passing through the new proxy /// @return The address of the new proxy /// @dev The desired implementation serves as a protection against (unintentional) front-running of upgrades function createProxy(address desiredImplementation, bool upgradeable, bytes memory trailingData) external nonReentrant returns (address) { address _implementation = implementation; if (desiredImplementation == address(0)) desiredImplementation = _implementation; if (desiredImplementation == address(0) || desiredImplementation != _implementation) revert E_Implementation(); // The provided trailing data is prefixed with 4 zero bytes to avoid potential selector clashing in case the // proxy is called with empty calldata. bytes memory prefixTrailingData = abi.encodePacked(bytes4(0), trailingData); address proxy; if (upgradeable) { proxy = address(new BeaconProxy(prefixTrailingData)); } else { proxy = deployMetaProxy(desiredImplementation, prefixTrailingData); } proxyLookup[proxy] = ProxyConfig({upgradeable: upgradeable, implementation: desiredImplementation, trailingData: trailingData}); proxyList.push(proxy); IComponent(proxy).initialize(msg.sender); emit ProxyCreated(proxy, upgradeable, desiredImplementation, trailingData); return proxy; } // EVault beacon upgrade /// @notice Set a new implementation contract /// @param newImplementation Address of the new implementation contract /// @dev Upgrades all existing BeaconProxies to the new logic immediately function setImplementation(address newImplementation) external nonReentrant adminOnly { if (newImplementation.code.length == 0) revert E_BadAddress(); implementation = newImplementation; emit SetImplementation(newImplementation); } // Admin role /// @notice Transfer admin rights to a new address /// @param newUpgradeAdmin Address of the new admin /// @dev For creating non upgradeable factories, or to finalize all upgradeable proxies to current implementation, /// @dev set the admin to zero address. /// @dev If setting to address zero, make sure the implementation contract is already set function setUpgradeAdmin(address newUpgradeAdmin) external nonReentrant adminOnly { upgradeAdmin = newUpgradeAdmin; emit SetUpgradeAdmin(newUpgradeAdmin); } // Proxy getters /// @notice Get current proxy configuration /// @param proxy Address of the proxy to query /// @return config The proxy's configuration, including current implementation function getProxyConfig(address proxy) external view returns (ProxyConfig memory config) { config = proxyLookup[proxy]; if (config.upgradeable) config.implementation = implementation; } /// @notice Check if an address is a proxy deployed with this factory /// @param proxy Address to check /// @return True if the address is a proxy function isProxy(address proxy) external view returns (bool) { return proxyLookup[proxy].implementation != address(0); } /// @notice Fetch the length of the deployed proxies list /// @return The length of the proxy list array function getProxyListLength() external view returns (uint256) { return proxyList.length; } /// @notice Get a slice of the deployed proxies array /// @param start Start index of the slice /// @param end End index of the slice /// @return list An array containing the slice of the proxy list function getProxyListSlice(uint256 start, uint256 end) external view returns (address[] memory list) { if (end == type(uint256).max) end = proxyList.length; if (end < start || end > proxyList.length) revert E_BadQuery(); list = new address[](end - start); for (uint256 i; i < end - start; ++i) { list[i] = proxyList[start + i]; } } }
// SPDX-License-Identifier: GPL-2.0-or-later pragma solidity ^0.8.0; /// @title BeaconProxy /// @custom:security-contact [email protected] /// @author Euler Labs (https://www.eulerlabs.com/) /// @notice A proxy contract, forwarding all calls to an implementation contract, fetched from a beacon /// @dev The proxy attaches up to 128 bytes of metadata to the delegated call data. contract BeaconProxy { // ERC-1967 beacon address slot. bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1) bytes32 internal constant BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50; // Beacon implementation() selector bytes32 internal constant IMPLEMENTATION_SELECTOR = 0x5c60da1b00000000000000000000000000000000000000000000000000000000; // Max trailing data length, 4 immutable slots uint256 internal constant MAX_TRAILING_DATA_LENGTH = 128; address internal immutable beacon; uint256 internal immutable metadataLength; bytes32 internal immutable metadata0; bytes32 internal immutable metadata1; bytes32 internal immutable metadata2; bytes32 internal immutable metadata3; event Genesis(); constructor(bytes memory trailingData) { emit Genesis(); require(trailingData.length <= MAX_TRAILING_DATA_LENGTH, "trailing data too long"); // Beacon is always the proxy creator; store it in immutable beacon = msg.sender; // Store the beacon address in ERC-1967 slot for compatibility with block explorers assembly { sstore(BEACON_SLOT, caller()) } // Record length as immutable metadataLength = trailingData.length; // Pad length with uninitialized memory so the decode will succeed assembly { mstore(trailingData, MAX_TRAILING_DATA_LENGTH) } (metadata0, metadata1, metadata2, metadata3) = abi.decode(trailingData, (bytes32, bytes32, bytes32, bytes32)); } fallback() external payable { address beacon_ = beacon; uint256 metadataLength_ = metadataLength; bytes32 metadata0_ = metadata0; bytes32 metadata1_ = metadata1; bytes32 metadata2_ = metadata2; bytes32 metadata3_ = metadata3; assembly { // Fetch implementation address from the beacon mstore(0, IMPLEMENTATION_SELECTOR) // Implementation call is trusted not to revert and to return an address let result := staticcall(gas(), beacon_, 0, 4, 0, 32) let implementation := mload(0) // delegatecall to the implementation with trailing metadata calldatacopy(0, 0, calldatasize()) mstore(calldatasize(), metadata0_) mstore(add(32, calldatasize()), metadata1_) mstore(add(64, calldatasize()), metadata2_) mstore(add(96, calldatasize()), metadata3_) result := delegatecall(gas(), implementation, 0, add(metadataLength_, calldatasize()), 0, 0) returndatacopy(0, 0, returndatasize()) switch result case 0 { revert(0, returndatasize()) } default { return(0, returndatasize()) } } } }
// SPDX-License-Identifier: GPL-2.0-or-later pragma solidity ^0.8.0; /// @title MetaProxyDeployer /// @custom:security-contact [email protected] /// @author Euler Labs (https://www.eulerlabs.com/) /// @notice Contract for deploying minimal proxies with metadata, based on EIP-3448. /// @dev The metadata of the proxies does not include the data length as defined by EIP-3448, saving gas at a cost of /// supporting variable size data. contract MetaProxyDeployer { error E_DeploymentFailed(); // Meta proxy bytecode from EIP-3488 https://eips.ethereum.org/EIPS/eip-3448 bytes constant BYTECODE_HEAD = hex"600b380380600b3d393df3363d3d373d3d3d3d60368038038091363936013d73"; bytes constant BYTECODE_TAIL = hex"5af43d3d93803e603457fd5bf3"; /// @dev Creates a proxy for `targetContract` with metadata from `metadata`. /// @return addr A non-zero address if successful. function deployMetaProxy(address targetContract, bytes memory metadata) internal returns (address addr) { bytes memory code = abi.encodePacked(BYTECODE_HEAD, targetContract, BYTECODE_TAIL, metadata); assembly ("memory-safe") { addr := create(0, add(code, 32), mload(code)) } if (addr == address(0)) revert E_DeploymentFailed(); } }
{ "remappings": [ "lib/euler-price-oracle:@openzeppelin/contracts/=lib/euler-price-oracle/lib/openzeppelin-contracts/contracts/", "lib/native-token-transfers/evm:openzeppelin-contracts/contracts/=lib/native-token-transfers/evm/lib/openzeppelin-contracts/contracts/", "lib/euler-earn:@openzeppelin/=lib/euler-earn/lib/openzeppelin-contracts/", "lib/euler-earn:@openzeppelin-upgradeable/=lib/euler-earn/lib/openzeppelin-contracts-upgradeable/contracts/", "lib/euler-earn:ethereum-vault-connector/=lib/euler-earn/lib/ethereum-vault-connector/src/", "openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/", "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/", "ethereum-vault-connector/=lib/ethereum-vault-connector/src/", "evc/=lib/ethereum-vault-connector/src/", "evk/=lib/euler-vault-kit/src/", "evk-test/=lib/euler-vault-kit/test/", "euler-price-oracle/=lib/euler-price-oracle/src/", "euler-price-oracle-test/=lib/euler-price-oracle/test/", "fee-flow/=lib/fee-flow/src/", "reward-streams/=lib/reward-streams/src/", "@openzeppelin/=lib/openzeppelin-contracts/contracts/", "euler-earn/=lib/euler-earn/src/", "native-token-transfers/=lib/native-token-transfers/evm/src/", "@openzeppelin-upgradeable/=lib/euler-earn/lib/openzeppelin-contracts-upgradeable/contracts/", "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/", "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/", "@pendle/core-v2/=lib/euler-price-oracle/lib/pendle-core-v2-public/contracts/", "@pyth/=lib/euler-price-oracle/lib/pyth-sdk-solidity/", "@redstone/evm-connector/=lib/euler-price-oracle/lib/redstone-oracles-monorepo/packages/evm-connector/contracts/", "@solady/=lib/euler-price-oracle/lib/solady/src/", "@uniswap/v3-core/=lib/euler-price-oracle/lib/v3-core/", "@uniswap/v3-periphery/=lib/euler-price-oracle/lib/v3-periphery/", "ERC4626/=lib/euler-earn/lib/properties/lib/ERC4626/contracts/", "crytic-properties/=lib/euler-earn/lib/properties/contracts/", "ds-test/=lib/ethereum-vault-connector/lib/forge-std/lib/ds-test/src/", "erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/", "euler-vault-kit/=lib/euler-vault-kit/", "forge-gas-snapshot/=lib/euler-vault-kit/lib/permit2/lib/forge-gas-snapshot/src/", "forge-std/=lib/forge-std/src/", "halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/", "layerzero-devtools/=lib/layerzero-devtools/packages/toolbox-foundry/src/", "layerzero-v2/=lib/layerzero-v2/", "openzeppelin/=lib/ethereum-vault-connector/lib/openzeppelin-contracts/contracts/", "pendle-core-v2-public/=lib/euler-price-oracle/lib/pendle-core-v2-public/contracts/", "permit2/=lib/euler-vault-kit/lib/permit2/", "properties/=lib/euler-earn/lib/properties/contracts/", "pyth-sdk-solidity/=lib/euler-price-oracle/lib/pyth-sdk-solidity/", "redstone-oracles-monorepo/=lib/euler-price-oracle/lib/", "solady/=lib/euler-price-oracle/lib/solady/src/", "solidity-bytes-utils/=lib/native-token-transfers/evm/lib/solidity-bytes-utils/contracts/", "solmate/=lib/fee-flow/lib/solmate/src/", "v3-core/=lib/euler-price-oracle/lib/v3-core/contracts/", "v3-periphery/=lib/euler-price-oracle/lib/v3-periphery/contracts/", "wormhole-solidity-sdk/=lib/native-token-transfers/evm/lib/wormhole-solidity-sdk/src/" ], "optimizer": { "enabled": true, "runs": 20000 }, "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "cancun", "viaIR": false, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"admin","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"E_BadAddress","type":"error"},{"inputs":[],"name":"E_BadQuery","type":"error"},{"inputs":[],"name":"E_DeploymentFailed","type":"error"},{"inputs":[],"name":"E_Implementation","type":"error"},{"inputs":[],"name":"E_Reentrancy","type":"error"},{"inputs":[],"name":"E_Unauthorized","type":"error"},{"anonymous":false,"inputs":[],"name":"Genesis","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"proxy","type":"address"},{"indexed":false,"internalType":"bool","name":"upgradeable","type":"bool"},{"indexed":false,"internalType":"address","name":"implementation","type":"address"},{"indexed":false,"internalType":"bytes","name":"trailingData","type":"bytes"}],"name":"ProxyCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newImplementation","type":"address"}],"name":"SetImplementation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newUpgradeAdmin","type":"address"}],"name":"SetUpgradeAdmin","type":"event"},{"inputs":[{"internalType":"address","name":"desiredImplementation","type":"address"},{"internalType":"bool","name":"upgradeable","type":"bool"},{"internalType":"bytes","name":"trailingData","type":"bytes"}],"name":"createProxy","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"proxy","type":"address"}],"name":"getProxyConfig","outputs":[{"components":[{"internalType":"bool","name":"upgradeable","type":"bool"},{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes","name":"trailingData","type":"bytes"}],"internalType":"struct GenericFactory.ProxyConfig","name":"config","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProxyListLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"name":"getProxyListSlice","outputs":[{"internalType":"address[]","name":"list","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"proxy","type":"address"}],"name":"isProxy","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"proxyList","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"setImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newUpgradeAdmin","type":"address"}],"name":"setUpgradeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"upgradeAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561000f575f80fd5b5060405161170538038061170583398101604081905261002e916100cc565b6040517f6bf6eaff5e9af8fbccb949f4c38cc016936f8775363ccf4224db160365785d52905f90a16001600160a01b03811661007d576040516306e1f36760e31b815260040160405180910390fd5b60015f81815581546001600160a01b0319166001600160a01b0384169081179092556040517f7b1ebd0f3ec81bf1cd5f478166ec87beaea1eee7f3bc2612295ae161048a239f9190a2506100f9565b5f602082840312156100dc575f80fd5b81516001600160a01b03811681146100f2575f80fd5b9392505050565b6115ff806101065f395ff3fe608060405234801562000010575f80fd5b5060043610620000c8575f3560e01c80639342f417116200007b578063c0e96df6116200005f578063c0e96df614620001e9578063c4d5608a146200020f578063d784d4261462000230575f80fd5b80639342f41714620001aa578063a20ea5c114620001c3575f80fd5b8063378cdb6211620000af578063378cdb6214620001355780635c60da1b146200017257806383e85b271462000193575f80fd5b80630a68b7ba14620000cc5780632971038814620000e2575b5f80fd5b6004546040519081526020015b60405180910390f35b62000124620000f336600462000bfc565b73ffffffffffffffffffffffffffffffffffffffff9081165f90815260036020526040902054610100900416151590565b6040519015158152602001620000d9565b6200014c6200014636600462000c1f565b62000247565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001620000d9565b6002546200014c9073ffffffffffffffffffffffffffffffffffffffff1681565b6200014c620001a436600462000c64565b6200027d565b620001c1620001bb36600462000bfc565b620005e2565b005b620001da620001d436600462000bfc565b620006e6565b604051620000d9919062000dcf565b62000200620001fa36600462000e1f565b62000812565b604051620000d9919062000e40565b6001546200014c9073ffffffffffffffffffffffffffffffffffffffff1681565b620001c16200024136600462000bfc565b62000987565b6004818154811062000257575f80fd5b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b5f60025f5403620002ba576040517f74f3606300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025f8190555473ffffffffffffffffffffffffffffffffffffffff908116908516620002e5578094505b73ffffffffffffffffffffffffffffffffffffffff851615806200033557508073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156200036d576040517f3c02e77800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040515f9062000384908290869060200162000e9b565b60405160208183030381529060405290505f8515620003db5781604051620003ac9062000bca565b620003b8919062000ee4565b604051809103905ff080158015620003d2573d5f803e3d5ffd5b509050620003ea565b620003e7878362000adc565b90505b60408051606081018252871515815273ffffffffffffffffffffffffffffffffffffffff89811660208084019182528385018a81528684165f90815260039092529490208351815492517fffffffffffffffffffffff0000000000000000000000000000000000000000009093169015157fffffffffffffffffffffff0000000000000000000000000000000000000000ff1617610100929093169190910291909117815591519091906001820190620004a5908262000f9b565b5050600480546001810182555f8290527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85169081179091556040517fc4d66de80000000000000000000000000000000000000000000000000000000081523392810192909252915063c4d66de8906024015f604051808303815f87803b15801562000569575f80fd5b505af11580156200057c573d5f803e3d5ffd5b505050508073ffffffffffffffffffffffffffffffffffffffff167f04e664079117e113faa9684bc14aecb41651cbf098b14eda271248c6d0cda57c878988604051620005cc93929190620010c4565b60405180910390a260015f559695505050505050565b60025f54036200061e576040517f74f3606300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025f5560015473ffffffffffffffffffffffffffffffffffffffff16331462000674576040517f08e2ce1700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f7b1ebd0f3ec81bf1cd5f478166ec87beaea1eee7f3bc2612295ae161048a239f905f90a25060015f55565b60408051606080820183525f808352602080840182905283850183905273ffffffffffffffffffffffffffffffffffffffff8681168352600382529185902085519384018652805460ff8116151585526101009004909216908301526001810180549394929391928401916200075c9062000ef8565b80601f01602080910402602001604051908101604052809291908181526020018280546200078a9062000ef8565b8015620007d95780601f10620007af57610100808354040283529160200191620007d9565b820191905f5260205f20905b815481529060010190602001808311620007bb57829003601f168201915b5050505050815250509050805f0151156200080d5760025473ffffffffffffffffffffffffffffffffffffffff1660208201525b919050565b60607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203620008425760045491505b8282108062000852575060045482115b156200088a576040517fa66618e600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b62000896838362001132565b67ffffffffffffffff811115620008b157620008b162000c37565b604051908082528060200260200182016040528015620008db578160200160208202803683370190505b5090505f5b620008ec848462001132565b811015620009805760046200090282866200114e565b8154811062000915576200091562001164565b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682828151811062000952576200095262001164565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152600101620008e0565b5092915050565b60025f5403620009c3576040517f74f3606300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025f5560015473ffffffffffffffffffffffffffffffffffffffff16331462000a19576040517f08e2ce1700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163b5f0362000a6a576040517f370f9b3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fddebe6de740fe0dd01cc33ffa314d11c6ac6acbbe50b80513c4c360ae7aa4f04905f90a25060015f55565b5f806040518060400160405280602081526020017f600b380380600b3d393df3363d3d373d3d3d3d60368038038091363936013d73815250846040518060400160405280600d81526020017f5af43d3d93803e603457fd5bf3000000000000000000000000000000000000008152508560405160200162000b61949392919062001191565b60405160208183030381529060405290508051602082015ff0915073ffffffffffffffffffffffffffffffffffffffff821662000980576040517fbe4dab5d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103bd806200120d83390190565b803573ffffffffffffffffffffffffffffffffffffffff811681146200080d575f80fd5b5f6020828403121562000c0d575f80fd5b62000c188262000bd8565b9392505050565b5f6020828403121562000c30575f80fd5b5035919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f805f6060848603121562000c77575f80fd5b62000c828462000bd8565b92506020840135801515811462000c97575f80fd5b9150604084013567ffffffffffffffff8082111562000cb4575f80fd5b818601915086601f83011262000cc8575f80fd5b81358181111562000cdd5762000cdd62000c37565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171562000d265762000d2662000c37565b8160405282815289602084870101111562000d3f575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f5b8381101562000d7c57818101518382015260200162000d62565b50505f910152565b5f815180845262000d9d81602086016020860162000d60565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815281511515602082015273ffffffffffffffffffffffffffffffffffffffff60208301511660408201525f604083015160608084015262000e17608084018262000d84565b949350505050565b5f806040838503121562000e31575f80fd5b50508035926020909101359150565b602080825282518282018190525f9190848201906040850190845b8181101562000e8f57835173ffffffffffffffffffffffffffffffffffffffff168352928401929184019160010162000e5b565b50909695505050505050565b7fffffffff00000000000000000000000000000000000000000000000000000000831681525f825162000ed681600485016020870162000d60565b919091016004019392505050565b602081525f62000c18602083018462000d84565b600181811c9082168062000f0d57607f821691505b60208210810362000f45577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f82111562000f9657805f5260205f20601f840160051c8101602085101562000f725750805b601f840160051c820191505b8181101562000f93575f815560010162000f7e565b50505b505050565b815167ffffffffffffffff81111562000fb85762000fb862000c37565b62000fd08162000fc9845462000ef8565b8462000f4b565b602080601f83116001811462001025575f841562000fee5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555620010bc565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015620010735788860151825594840194600190910190840162001052565b5085821015620010b057878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b505060018460011b0185555b505050505050565b831515815273ffffffffffffffffffffffffffffffffffffffff83166020820152606060408201525f620010fc606083018462000d84565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8181038181111562001148576200114862001105565b92915050565b8082018082111562001148576200114862001105565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8551620011a4818460208a0162000d60565b80830190507fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008660601b1681528451620011e681601484016020890162000d60565b8451910190620011fe81601484016020880162000d60565b01601401969550505050505056fe610140604052348015610010575f80fd5b506040516103bd3803806103bd83398101604081905261002f91610119565b6040517f6bf6eaff5e9af8fbccb949f4c38cc016936f8775363ccf4224db160365785d52905f90a16080815111156100ad5760405162461bcd60e51b815260206004820152601660248201527f747261696c696e67206461746120746f6f206c6f6e6700000000000000000000604482015260640160405180910390fd5b3360808181527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5091909155815160a09081529082526100f1908201602083016101db565b610120526101005260e05260c0525061020e565b634e487b7160e01b5f52604160045260245ffd5b5f602080838503121561012a575f80fd5b82516001600160401b0380821115610140575f80fd5b818501915085601f830112610153575f80fd5b81518181111561016557610165610105565b604051601f8201601f19908116603f0116810190838211818310171561018d5761018d610105565b8160405282815288868487010111156101a4575f80fd5b5f93505b828410156101c557848401860151818501870152928501926101a8565b5f86848301015280965050505050505092915050565b5f805f80608085870312156101ee575f80fd5b505082516020840151604085015160609095015191969095509092509050565b60805160a05160c05160e051610100516101205161016e61024f5f395f60d501525f60b301525f609101525f606f01525f604d01525f602b015261016e5ff3fe60806040527f5c60da1b000000000000000000000000000000000000000000000000000000005f9081527f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000907f000000000000000000000000000000000000000000000000000000000000000090602090600481895afa5f51365f80378536528436602001528336604001528236606001525f803689015f845af49150503d5f803e808015610134573d5ff35b3d5ffdfea2646970667358221220cdf6b36f6cecd5d2c971b898d27051de7423520d4d8420ec611f4adc1c43221264736f6c63430008180033a26469706673582212205d2ba1dfe6853410bddbb7348a6bd0712d41269d74fba6a3ac84559d8e79cbc964736f6c63430008180033000000000000000000000000b49f50798b7014034bd7804912cc40dde9ef82a2
Deployed Bytecode
0x608060405234801562000010575f80fd5b5060043610620000c8575f3560e01c80639342f417116200007b578063c0e96df6116200005f578063c0e96df614620001e9578063c4d5608a146200020f578063d784d4261462000230575f80fd5b80639342f41714620001aa578063a20ea5c114620001c3575f80fd5b8063378cdb6211620000af578063378cdb6214620001355780635c60da1b146200017257806383e85b271462000193575f80fd5b80630a68b7ba14620000cc5780632971038814620000e2575b5f80fd5b6004546040519081526020015b60405180910390f35b62000124620000f336600462000bfc565b73ffffffffffffffffffffffffffffffffffffffff9081165f90815260036020526040902054610100900416151590565b6040519015158152602001620000d9565b6200014c6200014636600462000c1f565b62000247565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001620000d9565b6002546200014c9073ffffffffffffffffffffffffffffffffffffffff1681565b6200014c620001a436600462000c64565b6200027d565b620001c1620001bb36600462000bfc565b620005e2565b005b620001da620001d436600462000bfc565b620006e6565b604051620000d9919062000dcf565b62000200620001fa36600462000e1f565b62000812565b604051620000d9919062000e40565b6001546200014c9073ffffffffffffffffffffffffffffffffffffffff1681565b620001c16200024136600462000bfc565b62000987565b6004818154811062000257575f80fd5b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b5f60025f5403620002ba576040517f74f3606300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025f8190555473ffffffffffffffffffffffffffffffffffffffff908116908516620002e5578094505b73ffffffffffffffffffffffffffffffffffffffff851615806200033557508073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156200036d576040517f3c02e77800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040515f9062000384908290869060200162000e9b565b60405160208183030381529060405290505f8515620003db5781604051620003ac9062000bca565b620003b8919062000ee4565b604051809103905ff080158015620003d2573d5f803e3d5ffd5b509050620003ea565b620003e7878362000adc565b90505b60408051606081018252871515815273ffffffffffffffffffffffffffffffffffffffff89811660208084019182528385018a81528684165f90815260039092529490208351815492517fffffffffffffffffffffff0000000000000000000000000000000000000000009093169015157fffffffffffffffffffffff0000000000000000000000000000000000000000ff1617610100929093169190910291909117815591519091906001820190620004a5908262000f9b565b5050600480546001810182555f8290527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85169081179091556040517fc4d66de80000000000000000000000000000000000000000000000000000000081523392810192909252915063c4d66de8906024015f604051808303815f87803b15801562000569575f80fd5b505af11580156200057c573d5f803e3d5ffd5b505050508073ffffffffffffffffffffffffffffffffffffffff167f04e664079117e113faa9684bc14aecb41651cbf098b14eda271248c6d0cda57c878988604051620005cc93929190620010c4565b60405180910390a260015f559695505050505050565b60025f54036200061e576040517f74f3606300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025f5560015473ffffffffffffffffffffffffffffffffffffffff16331462000674576040517f08e2ce1700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f7b1ebd0f3ec81bf1cd5f478166ec87beaea1eee7f3bc2612295ae161048a239f905f90a25060015f55565b60408051606080820183525f808352602080840182905283850183905273ffffffffffffffffffffffffffffffffffffffff8681168352600382529185902085519384018652805460ff8116151585526101009004909216908301526001810180549394929391928401916200075c9062000ef8565b80601f01602080910402602001604051908101604052809291908181526020018280546200078a9062000ef8565b8015620007d95780601f10620007af57610100808354040283529160200191620007d9565b820191905f5260205f20905b815481529060010190602001808311620007bb57829003601f168201915b5050505050815250509050805f0151156200080d5760025473ffffffffffffffffffffffffffffffffffffffff1660208201525b919050565b60607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203620008425760045491505b8282108062000852575060045482115b156200088a576040517fa66618e600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b62000896838362001132565b67ffffffffffffffff811115620008b157620008b162000c37565b604051908082528060200260200182016040528015620008db578160200160208202803683370190505b5090505f5b620008ec848462001132565b811015620009805760046200090282866200114e565b8154811062000915576200091562001164565b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682828151811062000952576200095262001164565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152600101620008e0565b5092915050565b60025f5403620009c3576040517f74f3606300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025f5560015473ffffffffffffffffffffffffffffffffffffffff16331462000a19576040517f08e2ce1700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163b5f0362000a6a576040517f370f9b3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fddebe6de740fe0dd01cc33ffa314d11c6ac6acbbe50b80513c4c360ae7aa4f04905f90a25060015f55565b5f806040518060400160405280602081526020017f600b380380600b3d393df3363d3d373d3d3d3d60368038038091363936013d73815250846040518060400160405280600d81526020017f5af43d3d93803e603457fd5bf3000000000000000000000000000000000000008152508560405160200162000b61949392919062001191565b60405160208183030381529060405290508051602082015ff0915073ffffffffffffffffffffffffffffffffffffffff821662000980576040517fbe4dab5d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103bd806200120d83390190565b803573ffffffffffffffffffffffffffffffffffffffff811681146200080d575f80fd5b5f6020828403121562000c0d575f80fd5b62000c188262000bd8565b9392505050565b5f6020828403121562000c30575f80fd5b5035919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f805f6060848603121562000c77575f80fd5b62000c828462000bd8565b92506020840135801515811462000c97575f80fd5b9150604084013567ffffffffffffffff8082111562000cb4575f80fd5b818601915086601f83011262000cc8575f80fd5b81358181111562000cdd5762000cdd62000c37565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171562000d265762000d2662000c37565b8160405282815289602084870101111562000d3f575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f5b8381101562000d7c57818101518382015260200162000d62565b50505f910152565b5f815180845262000d9d81602086016020860162000d60565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815281511515602082015273ffffffffffffffffffffffffffffffffffffffff60208301511660408201525f604083015160608084015262000e17608084018262000d84565b949350505050565b5f806040838503121562000e31575f80fd5b50508035926020909101359150565b602080825282518282018190525f9190848201906040850190845b8181101562000e8f57835173ffffffffffffffffffffffffffffffffffffffff168352928401929184019160010162000e5b565b50909695505050505050565b7fffffffff00000000000000000000000000000000000000000000000000000000831681525f825162000ed681600485016020870162000d60565b919091016004019392505050565b602081525f62000c18602083018462000d84565b600181811c9082168062000f0d57607f821691505b60208210810362000f45577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f82111562000f9657805f5260205f20601f840160051c8101602085101562000f725750805b601f840160051c820191505b8181101562000f93575f815560010162000f7e565b50505b505050565b815167ffffffffffffffff81111562000fb85762000fb862000c37565b62000fd08162000fc9845462000ef8565b8462000f4b565b602080601f83116001811462001025575f841562000fee5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555620010bc565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015620010735788860151825594840194600190910190840162001052565b5085821015620010b057878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b505060018460011b0185555b505050505050565b831515815273ffffffffffffffffffffffffffffffffffffffff83166020820152606060408201525f620010fc606083018462000d84565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8181038181111562001148576200114862001105565b92915050565b8082018082111562001148576200114862001105565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8551620011a4818460208a0162000d60565b80830190507fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008660601b1681528451620011e681601484016020890162000d60565b8451910190620011fe81601484016020880162000d60565b01601401969550505050505056fe610140604052348015610010575f80fd5b506040516103bd3803806103bd83398101604081905261002f91610119565b6040517f6bf6eaff5e9af8fbccb949f4c38cc016936f8775363ccf4224db160365785d52905f90a16080815111156100ad5760405162461bcd60e51b815260206004820152601660248201527f747261696c696e67206461746120746f6f206c6f6e6700000000000000000000604482015260640160405180910390fd5b3360808181527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5091909155815160a09081529082526100f1908201602083016101db565b610120526101005260e05260c0525061020e565b634e487b7160e01b5f52604160045260245ffd5b5f602080838503121561012a575f80fd5b82516001600160401b0380821115610140575f80fd5b818501915085601f830112610153575f80fd5b81518181111561016557610165610105565b604051601f8201601f19908116603f0116810190838211818310171561018d5761018d610105565b8160405282815288868487010111156101a4575f80fd5b5f93505b828410156101c557848401860151818501870152928501926101a8565b5f86848301015280965050505050505092915050565b5f805f80608085870312156101ee575f80fd5b505082516020840151604085015160609095015191969095509092509050565b60805160a05160c05160e051610100516101205161016e61024f5f395f60d501525f60b301525f609101525f606f01525f604d01525f602b015261016e5ff3fe60806040527f5c60da1b000000000000000000000000000000000000000000000000000000005f9081527f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000907f000000000000000000000000000000000000000000000000000000000000000090602090600481895afa5f51365f80378536528436602001528336604001528236606001525f803689015f845af49150503d5f803e808015610134573d5ff35b3d5ffdfea2646970667358221220cdf6b36f6cecd5d2c971b898d27051de7423520d4d8420ec611f4adc1c43221264736f6c63430008180033a26469706673582212205d2ba1dfe6853410bddbb7348a6bd0712d41269d74fba6a3ac84559d8e79cbc964736f6c63430008180033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000b49f50798b7014034bd7804912cc40dde9ef82a2
-----Decoded View---------------
Arg [0] : admin (address): 0xb49F50798B7014034bd7804912CC40ddE9eF82A2
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000b49f50798b7014034bd7804912cc40dde9ef82a2
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.