Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
AddressProviderV3
Compiler Version
v0.8.19+commit.7dd6d404
Optimization Enabled:
Yes with 100 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: BUSL-1.1 // Gearbox Protocol. Generalized leverage for DeFi protocols // (c) Gearbox Foundation, 2023. pragma solidity ^0.8.17; import {IACL} from "@gearbox-protocol/core-v2/contracts/interfaces/IACL.sol"; import "../interfaces/IAddressProviderV3.sol"; import {AddressNotFoundException, CallerNotConfiguratorException} from "../interfaces/IExceptions.sol"; /// @title Address provider V3 /// @notice Stores addresses of important contracts contract AddressProviderV3 is IAddressProviderV3 { /// @notice Contract version uint256 public constant override version = 3_00; /// @notice Mapping from (contract key, version) to contract addresses mapping(bytes32 => mapping(uint256 => address)) public override addresses; /// @dev Ensures that function caller is configurator modifier configuratorOnly() { _revertIfNotConfigurator(); _; } /// @dev Reverts if `msg.sender` is not configurator function _revertIfNotConfigurator() internal view { if (!IACL(getAddressOrRevert(AP_ACL, NO_VERSION_CONTROL)).isConfigurator(msg.sender)) { revert CallerNotConfiguratorException(); } } constructor(address _acl) { // The first event is emitted for the address provider itself to aid in contract discovery emit SetAddress("ADDRESS_PROVIDER", address(this), version); _setAddress(AP_ACL, _acl, NO_VERSION_CONTROL); } /// @notice Returns the address of a contract with a given key and version function getAddressOrRevert(bytes32 key, uint256 _version) public view virtual override returns (address result) { result = addresses[key][_version]; if (result == address(0)) revert AddressNotFoundException(); } /// @notice Sets the address for the passed contract key /// @param key Contract key /// @param value Contract address /// @param saveVersion Whether to save contract's version function setAddress(bytes32 key, address value, bool saveVersion) external override configuratorOnly { _setAddress(key, value, saveVersion ? IVersion(value).version() : NO_VERSION_CONTROL); } /// @dev Implementation of `setAddress` function _setAddress(bytes32 key, address value, uint256 _version) internal virtual { addresses[key][_version] = value; emit SetAddress(key, value, _version); } // ---------------------- // // BACKWARD COMPATIBILITY // // ---------------------- // /// @notice ACL contract address function getACL() external view returns (address) { return getAddressOrRevert(AP_ACL, NO_VERSION_CONTROL); } /// @notice Contracts register contract address function getContractsRegister() external view returns (address) { return getAddressOrRevert(AP_CONTRACTS_REGISTER, NO_VERSION_CONTROL); } /// @notice Price oracle contract address function getPriceOracle() external view returns (address) { return getAddressOrRevert(AP_PRICE_ORACLE, 2); } /// @notice Account factory contract address function getAccountFactory() external view returns (address) { return getAddressOrRevert(AP_ACCOUNT_FACTORY, NO_VERSION_CONTROL); } /// @notice Data compressor contract address function getDataCompressor() external view returns (address) { return getAddressOrRevert(AP_DATA_COMPRESSOR, 2); } /// @notice Treasury contract address function getTreasuryContract() external view returns (address) { return getAddressOrRevert(AP_TREASURY, NO_VERSION_CONTROL); } /// @notice GEAR token address function getGearToken() external view returns (address) { return getAddressOrRevert(AP_GEAR_TOKEN, NO_VERSION_CONTROL); } /// @notice WETH token address function getWethToken() external view returns (address) { return getAddressOrRevert(AP_WETH_TOKEN, NO_VERSION_CONTROL); } /// @notice WETH gateway contract address function getWETHGateway() external view returns (address) { return getAddressOrRevert(AP_WETH_GATEWAY, 1); } /// @notice Router contract address function getLeveragedActions() external view returns (address) { return getAddressOrRevert(AP_ROUTER, 1); } }
// SPDX-License-Identifier: MIT // Gearbox Protocol. Generalized leverage for DeFi protocols // (c) Gearbox Holdings, 2022 pragma solidity ^0.8.10; import { IVersion } from "./IVersion.sol"; interface IACLExceptions { /// @dev Thrown when attempting to delete an address from a set that is not a pausable admin error AddressNotPausableAdminException(address addr); /// @dev Thrown when attempting to delete an address from a set that is not a unpausable admin error AddressNotUnpausableAdminException(address addr); } interface IACLEvents { /// @dev Emits when a new admin is added that can pause contracts event PausableAdminAdded(address indexed newAdmin); /// @dev Emits when a Pausable admin is removed event PausableAdminRemoved(address indexed admin); /// @dev Emits when a new admin is added that can unpause contracts event UnpausableAdminAdded(address indexed newAdmin); /// @dev Emits when an Unpausable admin is removed event UnpausableAdminRemoved(address indexed admin); } /// @title ACL interface interface IACL is IACLEvents, IACLExceptions, IVersion { /// @dev Returns true if the address is a pausable admin and false if not /// @param addr Address to check function isPausableAdmin(address addr) external view returns (bool); /// @dev Returns true if the address is unpausable admin and false if not /// @param addr Address to check function isUnpausableAdmin(address addr) external view returns (bool); /// @dev Returns true if an address has configurator rights /// @param account Address to check function isConfigurator(address account) external view returns (bool); /// @dev Returns address of configurator function owner() external view returns (address); }
// SPDX-License-Identifier: MIT // Gearbox Protocol. Generalized leverage for DeFi protocols // (c) Gearbox Foundation, 2023. pragma solidity ^0.8.17; import {IVersion} from "@gearbox-protocol/core-v2/contracts/interfaces/IVersion.sol"; uint256 constant NO_VERSION_CONTROL = 0; bytes32 constant AP_CONTRACTS_REGISTER = "CONTRACTS_REGISTER"; bytes32 constant AP_ACL = "ACL"; bytes32 constant AP_PRICE_ORACLE = "PRICE_ORACLE"; bytes32 constant AP_ACCOUNT_FACTORY = "ACCOUNT_FACTORY"; bytes32 constant AP_DATA_COMPRESSOR = "DATA_COMPRESSOR"; bytes32 constant AP_TREASURY = "TREASURY"; bytes32 constant AP_GEAR_TOKEN = "GEAR_TOKEN"; bytes32 constant AP_WETH_TOKEN = "WETH_TOKEN"; bytes32 constant AP_WETH_GATEWAY = "WETH_GATEWAY"; bytes32 constant AP_ROUTER = "ROUTER"; bytes32 constant AP_BOT_LIST = "BOT_LIST"; bytes32 constant AP_GEAR_STAKING = "GEAR_STAKING"; bytes32 constant AP_ZAPPER_REGISTER = "ZAPPER_REGISTER"; interface IAddressProviderV3Events { /// @notice Emitted when an address is set for a contract key event SetAddress(bytes32 indexed key, address indexed value, uint256 indexed version); } /// @title Address provider V3 interface interface IAddressProviderV3 is IAddressProviderV3Events, IVersion { function addresses(bytes32 key, uint256 _version) external view returns (address); function getAddressOrRevert(bytes32 key, uint256 _version) external view returns (address result); function setAddress(bytes32 key, address value, bool saveVersion) external; }
// SPDX-License-Identifier: MIT // Gearbox Protocol. Generalized leverage for DeFi protocols // (c) Gearbox Foundation, 2023. pragma solidity ^0.8.17; // ------- // // GENERAL // // ------- // /// @notice Thrown on attempting to set an important address to zero address error ZeroAddressException(); /// @notice Thrown when attempting to pass a zero amount to a funding-related operation error AmountCantBeZeroException(); /// @notice Thrown on incorrect input parameter error IncorrectParameterException(); /// @notice Thrown when balance is insufficient to perform an operation error InsufficientBalanceException(); /// @notice Thrown if parameter is out of range error ValueOutOfRangeException(); /// @notice Thrown when trying to send ETH to a contract that is not allowed to receive ETH directly error ReceiveIsNotAllowedException(); /// @notice Thrown on attempting to set an EOA as an important contract in the system error AddressIsNotContractException(address); /// @notice Thrown on attempting to receive a token that is not a collateral token or was forbidden error TokenNotAllowedException(); /// @notice Thrown on attempting to add a token that is already in a collateral list error TokenAlreadyAddedException(); /// @notice Thrown when attempting to use quota-related logic for a token that is not quoted in quota keeper error TokenIsNotQuotedException(); /// @notice Thrown on attempting to interact with an address that is not a valid target contract error TargetContractNotAllowedException(); /// @notice Thrown if function is not implemented error NotImplementedException(); // ------------------ // // CONTRACTS REGISTER // // ------------------ // /// @notice Thrown when an address is expected to be a registered credit manager, but is not error RegisteredCreditManagerOnlyException(); /// @notice Thrown when an address is expected to be a registered pool, but is not error RegisteredPoolOnlyException(); // ---------------- // // ADDRESS PROVIDER // // ---------------- // /// @notice Reverts if address key isn't found in address provider error AddressNotFoundException(); // ----------------- // // POOL, PQK, GAUGES // // ----------------- // /// @notice Thrown by pool-adjacent contracts when a credit manager being connected has a wrong pool address error IncompatibleCreditManagerException(); /// @notice Thrown when attempting to set an incompatible successor staking contract error IncompatibleSuccessorException(); /// @notice Thrown when attempting to vote in a non-approved contract error VotingContractNotAllowedException(); /// @notice Thrown when attempting to unvote more votes than there are error InsufficientVotesException(); /// @notice Thrown when attempting to borrow more than the second point on a two-point curve error BorrowingMoreThanU2ForbiddenException(); /// @notice Thrown when a credit manager attempts to borrow more than its limit in the current block, or in general error CreditManagerCantBorrowException(); /// @notice Thrown when attempting to connect a quota keeper to an incompatible pool error IncompatiblePoolQuotaKeeperException(); /// @notice Thrown when the quota is outside of min/max bounds error QuotaIsOutOfBoundsException(); // -------------- // // CREDIT MANAGER // // -------------- // /// @notice Thrown on failing a full collateral check after multicall error NotEnoughCollateralException(); /// @notice Thrown if an attempt to approve a collateral token to adapter's target contract fails error AllowanceFailedException(); /// @notice Thrown on attempting to perform an action for a credit account that does not exist error CreditAccountDoesNotExistException(); /// @notice Thrown on configurator attempting to add more than 255 collateral tokens error TooManyTokensException(); /// @notice Thrown if more than the maximum number of tokens were enabled on a credit account error TooManyEnabledTokensException(); /// @notice Thrown when attempting to execute a protocol interaction without active credit account set error ActiveCreditAccountNotSetException(); /// @notice Thrown when trying to update credit account's debt more than once in the same block error DebtUpdatedTwiceInOneBlockException(); /// @notice Thrown when trying to repay all debt while having active quotas error DebtToZeroWithActiveQuotasException(); /// @notice Thrown when a zero-debt account attempts to update quota error UpdateQuotaOnZeroDebtAccountException(); /// @notice Thrown when attempting to close an account with non-zero debt error CloseAccountWithNonZeroDebtException(); /// @notice Thrown when value of funds remaining on the account after liquidation is insufficient error InsufficientRemainingFundsException(); /// @notice Thrown when Credit Facade tries to write over a non-zero active Credit Account error ActiveCreditAccountOverridenException(); // ------------------- // // CREDIT CONFIGURATOR // // ------------------- // /// @notice Thrown on attempting to use a non-ERC20 contract or an EOA as a token error IncorrectTokenContractException(); /// @notice Thrown if the newly set LT if zero or greater than the underlying's LT error IncorrectLiquidationThresholdException(); /// @notice Thrown if borrowing limits are incorrect: minLimit > maxLimit or maxLimit > blockLimit error IncorrectLimitsException(); /// @notice Thrown if the new expiration date is less than the current expiration date or current timestamp error IncorrectExpirationDateException(); /// @notice Thrown if a contract returns a wrong credit manager or reverts when trying to retrieve it error IncompatibleContractException(); /// @notice Thrown if attempting to forbid an adapter that is not registered in the credit manager error AdapterIsNotRegisteredException(); // ------------- // // CREDIT FACADE // // ------------- // /// @notice Thrown when attempting to perform an action that is forbidden in whitelisted mode error ForbiddenInWhitelistedModeException(); /// @notice Thrown if credit facade is not expirable, and attempted aciton requires expirability error NotAllowedWhenNotExpirableException(); /// @notice Thrown if a selector that doesn't match any allowed function is passed to the credit facade in a multicall error UnknownMethodException(); /// @notice Thrown when trying to close an account with enabled tokens error CloseAccountWithEnabledTokensException(); /// @notice Thrown if a liquidator tries to liquidate an account with a health factor above 1 error CreditAccountNotLiquidatableException(); /// @notice Thrown if too much new debt was taken within a single block error BorrowedBlockLimitException(); /// @notice Thrown if the new debt principal for a credit account falls outside of borrowing limits error BorrowAmountOutOfLimitsException(); /// @notice Thrown if a user attempts to open an account via an expired credit facade error NotAllowedAfterExpirationException(); /// @notice Thrown if expected balances are attempted to be set twice without performing a slippage check error ExpectedBalancesAlreadySetException(); /// @notice Thrown if attempting to perform a slippage check when excepted balances are not set error ExpectedBalancesNotSetException(); /// @notice Thrown if balance of at least one token is less than expected during a slippage check error BalanceLessThanExpectedException(); /// @notice Thrown when trying to perform an action that is forbidden when credit account has enabled forbidden tokens error ForbiddenTokensException(); /// @notice Thrown when new forbidden tokens are enabled during the multicall error ForbiddenTokenEnabledException(); /// @notice Thrown when enabled forbidden token balance is increased during the multicall error ForbiddenTokenBalanceIncreasedException(); /// @notice Thrown when the remaining token balance is increased during the liquidation error RemainingTokenBalanceIncreasedException(); /// @notice Thrown if `botMulticall` is called by an address that is not approved by account owner or is forbidden error NotApprovedBotException(); /// @notice Thrown when attempting to perform a multicall action with no permission for it error NoPermissionException(uint256 permission); /// @notice Thrown when attempting to give a bot unexpected permissions error UnexpectedPermissionsException(); /// @notice Thrown when a custom HF parameter lower than 10000 is passed into the full collateral check error CustomHealthFactorTooLowException(); /// @notice Thrown when submitted collateral hint is not a valid token mask error InvalidCollateralHintException(); // ------ // // ACCESS // // ------ // /// @notice Thrown on attempting to call an access restricted function not as credit account owner error CallerNotCreditAccountOwnerException(); /// @notice Thrown on attempting to call an access restricted function not as configurator error CallerNotConfiguratorException(); /// @notice Thrown on attempting to call an access-restructed function not as account factory error CallerNotAccountFactoryException(); /// @notice Thrown on attempting to call an access restricted function not as credit manager error CallerNotCreditManagerException(); /// @notice Thrown on attempting to call an access restricted function not as credit facade error CallerNotCreditFacadeException(); /// @notice Thrown on attempting to call an access restricted function not as controller or configurator error CallerNotControllerException(); /// @notice Thrown on attempting to pause a contract without pausable admin rights error CallerNotPausableAdminException(); /// @notice Thrown on attempting to unpause a contract without unpausable admin rights error CallerNotUnpausableAdminException(); /// @notice Thrown on attempting to call an access restricted function not as gauge error CallerNotGaugeException(); /// @notice Thrown on attempting to call an access restricted function not as quota keeper error CallerNotPoolQuotaKeeperException(); /// @notice Thrown on attempting to call an access restricted function not as voter error CallerNotVoterException(); /// @notice Thrown on attempting to call an access restricted function not as allowed adapter error CallerNotAdapterException(); /// @notice Thrown on attempting to call an access restricted function not as migrator error CallerNotMigratorException(); /// @notice Thrown when an address that is not the designated executor attempts to execute a transaction error CallerNotExecutorException(); /// @notice Thrown on attempting to call an access restricted function not as veto admin error CallerNotVetoAdminException(); // ------------------- // // CONTROLLER TIMELOCK // // ------------------- // /// @notice Thrown when the new parameter values do not satisfy required conditions error ParameterChecksFailedException(); /// @notice Thrown when attempting to execute a non-queued transaction error TxNotQueuedException(); /// @notice Thrown when attempting to execute a transaction that is either immature or stale error TxExecutedOutsideTimeWindowException(); /// @notice Thrown when execution of a transaction fails error TxExecutionRevertedException(); /// @notice Thrown when the value of a parameter on execution is different from the value on queue error ParameterChangedAfterQueuedTxException(); // -------- // // BOT LIST // // -------- // /// @notice Thrown when attempting to set non-zero permissions for a forbidden or special bot error InvalidBotException(); // --------------- // // ACCOUNT FACTORY // // --------------- // /// @notice Thrown when trying to deploy second master credit account for a credit manager error MasterCreditAccountAlreadyDeployedException(); /// @notice Thrown when trying to rescue funds from a credit account that is currently in use error CreditAccountIsInUseException(); // ------------ // // PRICE ORACLE // // ------------ // /// @notice Thrown on attempting to set a token price feed to an address that is not a correct price feed error IncorrectPriceFeedException(); /// @notice Thrown on attempting to interact with a price feed for a token not added to the price oracle error PriceFeedDoesNotExistException(); /// @notice Thrown when price feed returns incorrect price for a token error IncorrectPriceException(); /// @notice Thrown when token's price feed becomes stale error StalePriceException();
// SPDX-License-Identifier: MIT // Gearbox Protocol. Generalized leverage for DeFi protocols // (c) Gearbox Holdings, 2022 pragma solidity ^0.8.10; /// @title IVersion /// @dev Declares a version function which returns the contract's version interface IVersion { /// @dev Returns contract version function version() external view returns (uint256); }
{ "remappings": [ "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/", "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/", "permit2/=lib/permit2/src/", "forge-std/=lib/forge-std/src/", "prb-proxy/=lib/prb-proxy/src/", "layerzerolabs/=lib/layerzerolabs/contracts/", "aave-address-book/=lib/aave-address-book/src/", "@gearbox-protocol/core-v3/contracts/=lib/core-v3/contracts/", "@gearbox-protocol/core-v2/contracts/=lib/core-v2/contracts/", "pendle/=lib/pendle/contracts/", "@1inch/=lib/core-v3/node_modules/@1inch/", "@aave/core-v3/=lib/aave-address-book/lib/aave-v3-core/", "@aave/periphery-v3/=lib/aave-address-book/lib/aave-v3-periphery/", "@chainlink/=lib/core-v3/node_modules/@chainlink/", "@prb/test/=lib/prb-proxy/lib/prb-test/src/", "aave-v3-core/=lib/aave-address-book/lib/aave-v3-core/", "aave-v3-periphery/=lib/aave-address-book/lib/aave-v3-periphery/", "core-v2/=lib/core-v2/contracts/", "core-v3/=lib/core-v3/contracts/", "ds-test/=lib/forge-std/lib/ds-test/src/", "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", "forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/", "hardhat-deploy/=node_modules/hardhat-deploy/", "hardhat/=node_modules/hardhat/", "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/", "openzeppelin-contracts/=lib/openzeppelin-contracts/", "prb-test/=lib/prb-proxy/lib/prb-test/src/", "solmate/=lib/permit2/lib/solmate/" ], "optimizer": { "enabled": true, "runs": 100 }, "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "paris", "viaIR": false, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_acl","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AddressNotFoundException","type":"error"},{"inputs":[],"name":"CallerNotConfiguratorException","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"key","type":"bytes32"},{"indexed":true,"internalType":"address","name":"value","type":"address"},{"indexed":true,"internalType":"uint256","name":"version","type":"uint256"}],"name":"SetAddress","type":"event"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"addresses","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getACL","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAccountFactory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"uint256","name":"_version","type":"uint256"}],"name":"getAddressOrRevert","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getContractsRegister","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDataCompressor","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getGearToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLeveragedActions","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPriceOracle","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTreasuryContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWETHGateway","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWethToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"address","name":"value","type":"address"},{"internalType":"bool","name":"saveVersion","type":"bool"}],"name":"setAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b5060405161069e38038061069e83398101604081905261002f916100ca565b60405161012c9030906f20a2222922a9a9afa82927ab24a222a960811b9060008051602061067e83398151915290600090a4610073621050d360ea1b826000610079565b506100fa565b60008381526020818152604080832084845290915280822080546001600160a01b0319166001600160a01b03861690811790915590518392869160008051602061067e8339815191529190a4505050565b6000602082840312156100dc57600080fd5b81516001600160a01b03811681146100f357600080fd5b9392505050565b610575806101096000396000f3fe608060405234801561001057600080fd5b50600436106100ca5760003560e01c806377532ed91161007c57806377532ed91461013e5780639068a86814610146578063affd92431461014e578063b76b70d514610156578063be99a98014610187578063c513c9bb1461019c578063fca513a8146101a457600080fd5b8063060678c2146100cf57806308737695146100f457806326c74fc3146100fc57806344b88563146101045780634c252f911461010c57806354fd4d501461011457806357b5a1c61461012b575b600080fd5b6100d76101ac565b6040516001600160a01b0390911681526020015b60405180910390f35b6100d76101d0565b6100d76101e3565b6100d76101fb565b6100d7610211565b61011d61012c81565b6040519081526020016100eb565b6100d7610139366004610481565b610227565b6100d761026c565b6100d7610288565b6100d76102a7565b6100d7610164366004610481565b60006020818152928152604080822090935290815220546001600160a01b031681565b61019a6101953660046104b4565b6102c1565b005b6100d7610346565b6100d7610368565b60006101cb6e2220aa20afa1a7a6a82922a9a9a7a960891b6002610227565b905090565b60006101cb621050d360ea1b6000610227565b60006101cb67545245415355525960c01b6000610227565b60006101cb652927aaaa22a960d11b6001610227565b60006101cb692ba2aa242faa27a5a2a760b11b60005b6000828152602081815260408083208484529091529020546001600160a01b03168061026657604051632bd6388f60e21b815260040160405180910390fd5b92915050565b60006101cb6b574554485f4741544557415960a01b6001610227565b60006101cb6e4143434f554e545f464143544f525960881b6000610227565b60006101cb6923a2a0a92faa27a5a2a760b11b6000610227565b6102c9610384565b6103418383836102da57600061041e565b846001600160a01b03166354fd4d506040518163ffffffff1660e01b8152600401602060405180830381865afa158015610318573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033c9190610502565b61041e565b505050565b60006101cb7121a7a72a2920a1aa29afa922a3a4a9aa22a960711b6000610227565b60006101cb6b50524943455f4f5241434c4560a01b6002610227565b610395621050d360ea1b6000610227565b604051632f92cd5d60e11b81523360048201526001600160a01b039190911690635f259aba90602401602060405180830381865afa1580156103db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ff919061051b565b61041c576040516361081c1560e01b815260040160405180910390fd5b565b60008381526020818152604080832084845290915280822080546001600160a01b0319166001600160a01b0386169081179091559051839286917fb0c728d7569a96de0c070aa765819f6e665acbc3d4fa293440dd65c8c3e8b5ff9190a4505050565b6000806040838503121561049457600080fd5b50508035926020909101359150565b80151581146104b157600080fd5b50565b6000806000606084860312156104c957600080fd5b8335925060208401356001600160a01b03811681146104e757600080fd5b915060408401356104f7816104a3565b809150509250925092565b60006020828403121561051457600080fd5b5051919050565b60006020828403121561052d57600080fd5b8151610538816104a3565b939250505056fea2646970667358221220c85f01da1bac09e4e05b63b79eb760d40562068a78e94bbbb8ff502d91f98c3c64736f6c63430008130033b0c728d7569a96de0c070aa765819f6e665acbc3d4fa293440dd65c8c3e8b5ff000000000000000000000000e67f77af54eda6b92f2dbab272b8c0817ae0bca3
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100ca5760003560e01c806377532ed91161007c57806377532ed91461013e5780639068a86814610146578063affd92431461014e578063b76b70d514610156578063be99a98014610187578063c513c9bb1461019c578063fca513a8146101a457600080fd5b8063060678c2146100cf57806308737695146100f457806326c74fc3146100fc57806344b88563146101045780634c252f911461010c57806354fd4d501461011457806357b5a1c61461012b575b600080fd5b6100d76101ac565b6040516001600160a01b0390911681526020015b60405180910390f35b6100d76101d0565b6100d76101e3565b6100d76101fb565b6100d7610211565b61011d61012c81565b6040519081526020016100eb565b6100d7610139366004610481565b610227565b6100d761026c565b6100d7610288565b6100d76102a7565b6100d7610164366004610481565b60006020818152928152604080822090935290815220546001600160a01b031681565b61019a6101953660046104b4565b6102c1565b005b6100d7610346565b6100d7610368565b60006101cb6e2220aa20afa1a7a6a82922a9a9a7a960891b6002610227565b905090565b60006101cb621050d360ea1b6000610227565b60006101cb67545245415355525960c01b6000610227565b60006101cb652927aaaa22a960d11b6001610227565b60006101cb692ba2aa242faa27a5a2a760b11b60005b6000828152602081815260408083208484529091529020546001600160a01b03168061026657604051632bd6388f60e21b815260040160405180910390fd5b92915050565b60006101cb6b574554485f4741544557415960a01b6001610227565b60006101cb6e4143434f554e545f464143544f525960881b6000610227565b60006101cb6923a2a0a92faa27a5a2a760b11b6000610227565b6102c9610384565b6103418383836102da57600061041e565b846001600160a01b03166354fd4d506040518163ffffffff1660e01b8152600401602060405180830381865afa158015610318573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033c9190610502565b61041e565b505050565b60006101cb7121a7a72a2920a1aa29afa922a3a4a9aa22a960711b6000610227565b60006101cb6b50524943455f4f5241434c4560a01b6002610227565b610395621050d360ea1b6000610227565b604051632f92cd5d60e11b81523360048201526001600160a01b039190911690635f259aba90602401602060405180830381865afa1580156103db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ff919061051b565b61041c576040516361081c1560e01b815260040160405180910390fd5b565b60008381526020818152604080832084845290915280822080546001600160a01b0319166001600160a01b0386169081179091559051839286917fb0c728d7569a96de0c070aa765819f6e665acbc3d4fa293440dd65c8c3e8b5ff9190a4505050565b6000806040838503121561049457600080fd5b50508035926020909101359150565b80151581146104b157600080fd5b50565b6000806000606084860312156104c957600080fd5b8335925060208401356001600160a01b03811681146104e757600080fd5b915060408401356104f7816104a3565b809150509250925092565b60006020828403121561051457600080fd5b5051919050565b60006020828403121561052d57600080fd5b8151610538816104a3565b939250505056fea2646970667358221220c85f01da1bac09e4e05b63b79eb760d40562068a78e94bbbb8ff502d91f98c3c64736f6c63430008130033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000e67f77af54eda6b92f2dbab272b8c0817ae0bca3
-----Decoded View---------------
Arg [0] : _acl (address): 0xE67f77af54EdA6B92f2dBaB272b8C0817ae0bCa3
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000e67f77af54eda6b92f2dbab272b8c0817ae0bca3
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ 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.