Overview
ETH Balance
ETH Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer Ownersh... | 13381077 | 92 days ago | IN | 0 ETH | 0.00000339 |
Latest 25 internal transactions (View All)
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
16216983 | 22 days ago | 0 ETH | ||||
16216983 | 22 days ago | 0 ETH | ||||
16216983 | 22 days ago | 0 ETH | ||||
16216983 | 22 days ago | 0 ETH | ||||
16216983 | 22 days ago | 0 ETH | ||||
16216983 | 22 days ago | 0 ETH | ||||
16216983 | 22 days ago | 0 ETH | ||||
16216983 | 22 days ago | 0 ETH | ||||
16216983 | 22 days ago | 0 ETH | ||||
16216983 | 22 days ago | 0 ETH | ||||
16216983 | 22 days ago | 0 ETH | ||||
16216983 | 22 days ago | 0 ETH | ||||
16216983 | 22 days ago | 0 ETH | ||||
15692887 | 35 days ago | 0 ETH | ||||
15692887 | 35 days ago | 0 ETH | ||||
15692887 | 35 days ago | 0 ETH | ||||
15692887 | 35 days ago | 0 ETH | ||||
15692887 | 35 days ago | 0 ETH | ||||
15692887 | 35 days ago | 0 ETH | ||||
15692887 | 35 days ago | 0 ETH | ||||
15692887 | 35 days ago | 0 ETH | ||||
15692887 | 35 days ago | 0 ETH | ||||
15692887 | 35 days ago | 0 ETH | ||||
15692887 | 35 days ago | 0 ETH | ||||
15692887 | 35 days ago | 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 Name:
Executor
Compiler Version
v0.8.19+commit.7dd6d404
Optimization Enabled:
Yes with 200 runs
Other Settings:
london EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: BUSL-1.1 pragma solidity ^0.8.8; import {Ownable} from 'solidity-utils/contracts/oz-common/Ownable.sol'; import {IExecutor} from './interfaces/IExecutor.sol'; import {Errors} from '../libraries/Errors.sol'; /** * @title Executor * @author BGD Labs * @notice this contract contains the logic to execute a payload. * @dev Same code for all Executor levels. */ contract Executor is IExecutor, Ownable { /// @inheritdoc IExecutor function executeTransaction( address target, uint256 value, string memory signature, bytes memory data, bool withDelegatecall ) public payable onlyOwner returns (bytes memory) { require(target != address(0), Errors.INVALID_EXECUTION_TARGET); bytes memory callData; if (bytes(signature).length == 0) { callData = data; } else { callData = abi.encodePacked(bytes4(keccak256(bytes(signature))), data); } bool success; bytes memory resultData; if (withDelegatecall) { require(msg.value >= value, Errors.NOT_ENOUGH_MSG_VALUE); // solium-disable-next-line security/no-call-value (success, resultData) = target.delegatecall(callData); } else { // solium-disable-next-line security/no-call-value (success, resultData) = target.call{value: value}(callData); } require(success, Errors.FAILED_ACTION_EXECUTION); emit ExecutedAction( target, value, signature, data, block.timestamp, withDelegatecall, resultData ); return resultData; } receive() external payable {} }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) // From commit https://github.com/OpenZeppelin/openzeppelin-contracts/commit/8b778fa20d6d76340c5fac1ed66c80273f05b95a pragma solidity ^0.8.0; import './Context.sol'; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), 'Ownable: caller is not the owner'); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), 'Ownable: new owner is the zero address'); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @title IExecutor * @author BGD Labs * @notice interface containing the objects, events and methods definitions of the Executor contract */ interface IExecutor { /** * @notice emitted when an action got executed * @param target address of the targeted contract * @param value wei value of the transaction * @param signature function signature of the transaction * @param data function arguments of the transaction or callData if signature empty * @param executionTime time at which to execute the transaction * @param withDelegatecall boolean, true = transaction delegatecalls the target, else calls the target * @param resultData the actual callData used on the target **/ event ExecutedAction( address indexed target, uint256 value, string signature, bytes data, uint256 executionTime, bool withDelegatecall, bytes resultData ); /** * @notice Function, called by Governance, that executes a transaction, returns the callData executed * @param target smart contract target * @param value wei value of the transaction * @param signature function signature of the transaction * @param data function arguments of the transaction or callData if signature empty * @param withDelegatecall boolean, true = transaction delegatecalls the target, else calls the target * @return result data of the execution call. **/ function executeTransaction( address target, uint256 value, string memory signature, bytes memory data, bool withDelegatecall ) external payable returns (bytes memory); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @title Errors library * @author BGD Labs * @notice Defines the error messages emitted by the different contracts of the Aave Governance V3 */ library Errors { string public constant VOTING_PORTALS_COUNT_NOT_0 = '1'; // to be able to rescue voting portals count must be 0 string public constant AT_LEAST_ONE_PAYLOAD = '2'; // to create a proposal, it must have at least one payload string public constant VOTING_PORTAL_NOT_APPROVED = '3'; // the voting portal used to vote on proposal must be approved string public constant PROPOSITION_POWER_IS_TOO_LOW = '4'; // proposition power of proposal creator must be equal or higher than the specified threshold for the access level string public constant PROPOSAL_NOT_IN_CREATED_STATE = '5'; // proposal should be in the CREATED state string public constant PROPOSAL_NOT_IN_ACTIVE_STATE = '6'; // proposal must be in an ACTIVE state string public constant PROPOSAL_NOT_IN_QUEUED_STATE = '7'; // proposal must be in a QUEUED state string public constant VOTING_START_COOLDOWN_PERIOD_NOT_PASSED = '8'; // to activate a proposal vote, the cool down delay must pass string public constant CALLER_NOT_A_VALID_VOTING_PORTAL = '9'; // only an allowed voting portal can queue a proposal string public constant QUEUE_COOLDOWN_PERIOD_NOT_PASSED = '10'; // to execute a proposal a cooldown delay must pass string public constant PROPOSAL_NOT_IN_THE_CORRECT_STATE = '11'; // proposal must be created but not executed yet to be able to be canceled string public constant CALLER_NOT_GOVERNANCE = '12'; // caller must be governance string public constant VOTER_ALREADY_VOTED_ON_PROPOSAL = '13'; // voter can only vote once per proposal using voting portal string public constant WRONG_MESSAGE_ORIGIN = '14'; // received message must come from registered source address, chain id, CrossChainController string public constant NO_VOTING_ASSETS = '15'; // Strategy must have voting assets string public constant PROPOSAL_VOTE_ALREADY_CREATED = '16'; // vote on proposal can only be created once string public constant INVALID_SIGNATURE = '17'; // submitted signature is not valid string public constant PROPOSAL_VOTE_NOT_FINISHED = '18'; // proposal vote must be finished string public constant PROPOSAL_VOTE_NOT_IN_ACTIVE_STATE = '19'; // proposal vote must be in active state string public constant PROPOSAL_VOTE_ALREADY_EXISTS = '20'; // proposal vote already exists string public constant VOTE_ONCE_FOR_ASSET = '21'; // an asset can only be used once per vote string public constant USER_BALANCE_DOES_NOT_EXISTS = '22'; // to vote an user must have balance in the token the user is voting with string public constant USER_VOTING_BALANCE_IS_ZERO = '23'; // to vote an user must have some balance between all the tokens selected for voting string public constant MISSING_AAVE_ROOTS = '24'; // must have AAVE roots registered to use strategy string public constant MISSING_STK_AAVE_ROOTS = '25'; // must have stkAAVE roots registered to use strategy string public constant MISSING_STK_AAVE_SLASHING_EXCHANGE_RATE = '26'; // must have stkAAVE slashing exchange rate registered to use strategy string public constant UNPROCESSED_STORAGE_ROOT = '27'; // root must be registered beforehand string public constant NOT_ENOUGH_MSG_VALUE = '28'; // method was not called with enough value to execute the call string public constant FAILED_ACTION_EXECUTION = '29'; // action failed to execute string public constant SHOULD_BE_AT_LEAST_ONE_EXECUTOR = '30'; // at least one executor is needed string public constant INVALID_EMPTY_TARGETS = '31'; // target of the payload execution must not be empty string public constant EXECUTOR_WAS_NOT_SPECIFIED_FOR_REQUESTED_ACCESS_LEVEL = '32'; // payload executor must be registered for the specified payload access level string public constant PAYLOAD_NOT_IN_QUEUED_STATE = '33'; // payload must be en the queued state string public constant TIMELOCK_NOT_FINISHED = '34'; // delay has not passed before execution can be called string public constant PAYLOAD_NOT_IN_THE_CORRECT_STATE = '35'; // payload must be created but not executed yet to be able to be canceled string public constant PAYLOAD_NOT_IN_CREATED_STATE = '36'; // payload must be in the created state string public constant MISSING_A_AAVE_ROOTS = '37'; // must have aAAVE roots registered to use strategy string public constant MISSING_PROPOSAL_BLOCK_HASH = '38'; // block hash for this proposal was not bridged before string public constant PROPOSAL_VOTE_CONFIGURATION_ALREADY_BRIDGED = '39'; // configuration for this proposal bridged already string public constant INVALID_VOTING_PORTAL_ADDRESS = '40'; // voting portal address can't be 0x0 string public constant INVALID_POWER_STRATEGY = '41'; // 0x0 is not valid as the power strategy string public constant INVALID_EXECUTOR_ADDRESS = '42'; // executor address can't be 0x0 string public constant EXECUTOR_ALREADY_SET_IN_DIFFERENT_LEVEL = '43'; // executor address already being used as executor of a different level string public constant INVALID_VOTING_DURATION = '44'; // voting duration can not be bigger than the time it takes to execute a proposal string public constant VOTING_DURATION_NOT_PASSED = '45'; // at least votingDuration should have passed since voting started for a proposal to be queued string public constant INVALID_PROPOSAL_ACCESS_LEVEL = '46'; // the bridged proposal access level does not correspond with the maximum access level required by the payload string public constant PAYLOAD_NOT_CREATED_BEFORE_PROPOSAL = '47'; // payload must be created before proposal string public constant INVALID_CROSS_CHAIN_CONTROLLER_ADDRESS = '48'; string public constant INVALID_MESSAGE_ORIGINATOR_ADDRESS = '49'; string public constant INVALID_ORIGIN_CHAIN_ID = '50'; string public constant INVALID_ACTION_TARGET = '51'; string public constant INVALID_ACTION_ACCESS_LEVEL = '52'; string public constant INVALID_EXECUTOR_ACCESS_LEVEL = '53'; string public constant INVALID_VOTING_PORTAL_CROSS_CHAIN_CONTROLLER = '54'; string public constant INVALID_VOTING_PORTAL_VOTING_MACHINE = '55'; string public constant INVALID_VOTING_PORTAL_GOVERNANCE = '56'; string public constant INVALID_VOTING_MACHINE_CHAIN_ID = '57'; string public constant G_INVALID_CROSS_CHAIN_CONTROLLER_ADDRESS = '58'; string public constant G_INVALID_IPFS_HASH = '59'; string public constant G_INVALID_PAYLOAD_ACCESS_LEVEL = '60'; string public constant G_INVALID_PAYLOADS_CONTROLLER = '61'; string public constant G_INVALID_PAYLOAD_CHAIN = '62'; string public constant POWER_STRATEGY_HAS_NO_TOKENS = '63'; // power strategy should at least have string public constant INVALID_VOTING_CONFIG_ACCESS_LEVEL = '64'; string public constant VOTING_DURATION_TOO_SMALL = '65'; string public constant NO_BRIDGED_VOTING_ASSETS = '66'; string public constant INVALID_VOTER = '67'; string public constant INVALID_DATA_WAREHOUSE = '68'; string public constant INVALID_VOTING_MACHINE_CROSS_CHAIN_CONTROLLER = '69'; string public constant INVALID_L1_VOTING_PORTAL = '70'; string public constant INVALID_VOTING_PORTAL_CHAIN_ID = '71'; string public constant INVALID_VOTING_STRATEGY = '72'; string public constant INVALID_VOTE_CONFIGURATION_BLOCKHASH = '73'; string public constant INVALID_VOTE_CONFIGURATION_VOTING_DURATION = '74'; string public constant INVALID_GAS_LIMIT = '75'; string public constant INVALID_VOTING_CONFIGS = '76'; // a lvl2 voting configuration must be sent to initializer string public constant INVALID_EXECUTOR_DELAY = '77'; string public constant REPEATED_STRATEGY_ASSET = '78'; string public constant EMPTY_ASSET_STORAGE_SLOTS = '79'; string public constant REPEATED_STRATEGY_ASSET_SLOT = '80'; string public constant INVALID_EXECUTION_TARGET = '81'; string public constant MISSING_VOTING_CONFIGURATIONS = '82'; // voting configurations for lvl1 and lvl2 must be included on initialization string public constant INVALID_PROPOSITION_POWER = '83'; string public constant INVALID_YES_THRESHOLD = '84'; string public constant INVALID_YES_NO_DIFFERENTIAL = '85'; string public constant ETH_TRANSFER_FAILED = '86'; string public constant INVALID_INITIAL_VOTING_CONFIGS = '87'; // initial voting configurations can not be of the same level string public constant INVALID_VOTING_PORTAL_ADDRESS_IN_VOTING_MACHINE = '88'; string public constant INVALID_VOTING_PORTAL_OWNER = '89'; string public constant CANCELLATION_FEE_REDEEM_FAILED = '90'; // cancellation fee was not able to be redeemed string public constant INVALID_CANCELLATION_FEE_COLLECTOR = '91'; // collector can not be address 0 string public constant INVALID_CANCELLATION_FEE_SENT = '92'; // cancellation fee sent does not match the needed amount string public constant CANCELLATION_FEE_ALREADY_REDEEMED = '93'; // cancellation fee already redeemed string public constant INVALID_STATE_TO_REDEEM_CANCELLATION_FEE = '94'; // proposal state is not a valid state to redeem cancellation fee string public constant MISSING_REPRESENTATION_ROOTS = '95'; // to represent a voter the representation roots need to be registered string public constant CALLER_IS_NOT_VOTER_REPRESENTATIVE = '96'; // to represent a voter, caller must be the stored representative string public constant VM_INVALID_GOVERNANCE_ADDRESS = '97'; // governance address can not be 0 string public constant ALL_DELEGATION_ACTIONS_FAILED = '98'; // all meta delegation actions failed on MetaDelegateHelper }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) // From commit https://github.com/OpenZeppelin/openzeppelin-contracts/commit/8b778fa20d6d76340c5fac1ed66c80273f05b95a pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
{ "remappings": [ "solidity-utils/=lib/solidity-utils/src/", "aave-token-v3/=lib/aave-token-v3/src/", "aave-address-book/=lib/aave-address-book/src/", "aave-delivery-infrastructure/=lib/aave-delivery-infrastructure/src/", "aave-delivery-infrastructure-scripts/=lib/aave-delivery-infrastructure/scripts/", "ds-test/=lib/forge-std/lib/ds-test/src/", "forge-std/=lib/forge-std/src/", "openzeppelin-contracts/=lib/openzeppelin-contracts/", "@aave/core-v3/=lib/aave-address-book/lib/aave-v3-core/", "@aave/periphery-v3/=lib/aave-address-book/lib/aave-v3-periphery/", "@openzeppelin/=lib/aave-delivery-infrastructure/lib/openzeppelin-contracts/", "aave-helpers/=lib/aave-delivery-infrastructure/lib/aave-helpers/", "aave-token-v2/=lib/aave-token-v3/lib/aave-token-v2/contracts/", "aave-v3-core/=lib/aave-address-book/lib/aave-v3-core/", "aave-v3-periphery/=lib/aave-address-book/lib/aave-v3-periphery/", "era-contracts/=lib/aave-delivery-infrastructure/lib/era-contracts/l1-contracts/contracts/zksync/", "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", "fx-portal/=lib/aave-delivery-infrastructure/lib/fx-portal/contracts/", "governance-crosschain-bridges/=lib/aave-delivery-infrastructure/lib/aave-helpers/lib/governance-crosschain-bridges/", "hyperlane-monorepo/=lib/aave-delivery-infrastructure/lib/hyperlane-monorepo/solidity/contracts/", "nitro-contracts/=lib/aave-delivery-infrastructure/lib/nitro-contracts/src/", "openzeppelin/=lib/openzeppelin-contracts/contracts/" ], "optimizer": { "enabled": true, "runs": 200 }, "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "london", "viaIR": false, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"string","name":"signature","type":"string"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"executionTime","type":"uint256"},{"indexed":false,"internalType":"bool","name":"withDelegatecall","type":"bool"},{"indexed":false,"internalType":"bytes","name":"resultData","type":"bytes"}],"name":"ExecutedAction","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bool","name":"withDelegatecall","type":"bool"}],"name":"executeTransaction","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6107108061007e6000396000f3fe6080604052600436106100435760003560e01c8063025d36a91461004f578063715018a6146100785780638da5cb5b1461008f578063f2fde38b146100b757600080fd5b3661004a57005b600080fd5b61006261005d3660046104f4565b6100d7565b60405161006f91906105fe565b60405180910390f35b34801561008457600080fd5b5061008d610305565b005b34801561009b57600080fd5b506000546040516001600160a01b03909116815260200161006f565b3480156100c357600080fd5b5061008d6100d2366004610618565b610319565b60606100e1610392565b604080518082019091526002815261383160f01b60208201526001600160a01b03871661012a5760405162461bcd60e51b815260040161012191906105fe565b60405180910390fd5b506060845160000361013d575082610169565b848051906020012084604051602001610157929190610633565b60405160208183030381529060405290505b600060608415610214578734101560405180604001604052806002815260200161064760f31b815250906101b05760405162461bcd60e51b815260040161012191906105fe565b50886001600160a01b0316836040516101c99190610664565b600060405180830381855af49150503d8060008114610204576040519150601f19603f3d011682016040523d82523d6000602084013e610209565b606091505b509092509050610276565b886001600160a01b0316888460405161022d9190610664565b60006040518083038185875af1925050503d806000811461026a576040519150601f19603f3d011682016040523d82523d6000602084013e61026f565b606091505b5090925090505b604080518082019091526002815261323960f01b6020820152826102ad5760405162461bcd60e51b815260040161012191906105fe565b50886001600160a01b03167f528c26f4cc05f95dc8bad30284946548f08ec44f7dd536473f28b08c65334cdd898989428a876040516102f196959493929190610680565b60405180910390a298975050505050505050565b61030d610392565b61031760006103ec565b565b610321610392565b6001600160a01b0381166103865760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610121565b61038f816103ec565b50565b6000546001600160a01b031633146103175760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610121565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461045357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff8084111561048957610489610458565b604051601f8501601f19908116603f011681019082821181831017156104b1576104b1610458565b816040528093508581528686860111156104ca57600080fd5b858560208301376000602087830101525050509392505050565b8035801515811461045357600080fd5b600080600080600060a0868803121561050c57600080fd5b6105158661043c565b945060208601359350604086013567ffffffffffffffff8082111561053957600080fd5b818801915088601f83011261054d57600080fd5b61055c8983356020850161046e565b9450606088013591508082111561057257600080fd5b508601601f8101881361058457600080fd5b6105938882356020840161046e565b9250506105a2608087016104e4565b90509295509295909350565b60005b838110156105c95781810151838201526020016105b1565b50506000910152565b600081518084526105ea8160208601602086016105ae565b601f01601f19169290920160200192915050565b60208152600061061160208301846105d2565b9392505050565b60006020828403121561062a57600080fd5b6106118261043c565b6001600160e01b03198316815281516000906106568160048501602087016105ae565b919091016004019392505050565b600082516106768184602087016105ae565b9190910192915050565b86815260c06020820152600061069960c08301886105d2565b82810360408401526106ab81886105d2565b9050856060840152841515608084015282810360a08401526106cd81856105d2565b999850505050505050505056fea264697066735822122064912e807fbdb28c7b836588a98d05841f2d55ad92fbe96d00a9e74d62e4b7c464736f6c63430008130033
Deployed Bytecode
0x6080604052600436106100435760003560e01c8063025d36a91461004f578063715018a6146100785780638da5cb5b1461008f578063f2fde38b146100b757600080fd5b3661004a57005b600080fd5b61006261005d3660046104f4565b6100d7565b60405161006f91906105fe565b60405180910390f35b34801561008457600080fd5b5061008d610305565b005b34801561009b57600080fd5b506000546040516001600160a01b03909116815260200161006f565b3480156100c357600080fd5b5061008d6100d2366004610618565b610319565b60606100e1610392565b604080518082019091526002815261383160f01b60208201526001600160a01b03871661012a5760405162461bcd60e51b815260040161012191906105fe565b60405180910390fd5b506060845160000361013d575082610169565b848051906020012084604051602001610157929190610633565b60405160208183030381529060405290505b600060608415610214578734101560405180604001604052806002815260200161064760f31b815250906101b05760405162461bcd60e51b815260040161012191906105fe565b50886001600160a01b0316836040516101c99190610664565b600060405180830381855af49150503d8060008114610204576040519150601f19603f3d011682016040523d82523d6000602084013e610209565b606091505b509092509050610276565b886001600160a01b0316888460405161022d9190610664565b60006040518083038185875af1925050503d806000811461026a576040519150601f19603f3d011682016040523d82523d6000602084013e61026f565b606091505b5090925090505b604080518082019091526002815261323960f01b6020820152826102ad5760405162461bcd60e51b815260040161012191906105fe565b50886001600160a01b03167f528c26f4cc05f95dc8bad30284946548f08ec44f7dd536473f28b08c65334cdd898989428a876040516102f196959493929190610680565b60405180910390a298975050505050505050565b61030d610392565b61031760006103ec565b565b610321610392565b6001600160a01b0381166103865760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610121565b61038f816103ec565b50565b6000546001600160a01b031633146103175760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610121565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461045357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff8084111561048957610489610458565b604051601f8501601f19908116603f011681019082821181831017156104b1576104b1610458565b816040528093508581528686860111156104ca57600080fd5b858560208301376000602087830101525050509392505050565b8035801515811461045357600080fd5b600080600080600060a0868803121561050c57600080fd5b6105158661043c565b945060208601359350604086013567ffffffffffffffff8082111561053957600080fd5b818801915088601f83011261054d57600080fd5b61055c8983356020850161046e565b9450606088013591508082111561057257600080fd5b508601601f8101881361058457600080fd5b6105938882356020840161046e565b9250506105a2608087016104e4565b90509295509295909350565b60005b838110156105c95781810151838201526020016105b1565b50506000910152565b600081518084526105ea8160208601602086016105ae565b601f01601f19169290920160200192915050565b60208152600061061160208301846105d2565b9392505050565b60006020828403121561062a57600080fd5b6106118261043c565b6001600160e01b03198316815281516000906106568160048501602087016105ae565b919091016004019392505050565b600082516106768184602087016105ae565b9190910192915050565b86815260c06020820152600061069960c08301886105d2565b82810360408401526106ab81886105d2565b9050856060840152841515608084015282810360a08401526106cd81856105d2565b999850505050505050505056fea264697066735822122064912e807fbdb28c7b836588a98d05841f2d55ad92fbe96d00a9e74d62e4b7c464736f6c63430008130033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.