Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 internal transactions (View All)
Advanced mode:
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:
DebtLockerFactory
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: AGPL-3.0-or-later pragma solidity =0.8.7; interface IMapleGlobalsLike { function governor() external view returns (address governor_); } interface IMapleProxiedLike { function implementation() external view returns (address implementation_); } interface IProxiedLike { function implementation() external view returns (address implementation_); function setImplementation(address newImplementation_) external; function migrate(address migrator_, bytes calldata arguments_) external; } /// @title An beacon that provides a default implementation for proxies, must implement IDefaultImplementationBeacon. interface IDefaultImplementationBeacon { /// @dev The address of an implementation for proxies. function defaultImplementation() external view returns (address defaultImplementation_); } /// @title A Maple factory for Proxy contracts that proxy MapleProxied implementations. interface IMapleProxyFactory is IDefaultImplementationBeacon { /**************/ /*** Events ***/ /**************/ /** * @dev A default version was set. * @param version_ The default version. */ event DefaultVersionSet(uint256 indexed version_); /** * @dev A version of an implementation, at some address, was registered, with an optional initializer. * @param version_ The version registered. * @param implementationAddress_ The address of the implementation. * @param initializer_ The address of the initializer, if any. */ event ImplementationRegistered(uint256 indexed version_, address indexed implementationAddress_, address indexed initializer_); /** * @dev A proxy contract was deployed with some initialization arguments. * @param version_ The version of the implementation being proxied by the deployed proxy contract. * @param instance_ The address of the proxy contract deployed. * @param initializationArguments_ The arguments used to initialize the proxy contract, if any. */ event InstanceDeployed(uint256 indexed version_, address indexed instance_, bytes initializationArguments_); /** * @dev A instance has upgraded by proxying to a new implementation, with some migration arguments. * @param instance_ The address of the proxy contract. * @param fromVersion_ The initial implementation version being proxied. * @param toVersion_ The new implementation version being proxied. * @param migrationArguments_ The arguments used to migrate, if any. */ event InstanceUpgraded(address indexed instance_, uint256 indexed fromVersion_, uint256 indexed toVersion_, bytes migrationArguments_); /** * @dev The MapleGlobals was set. * @param mapleGlobals_ The address of a Maple Globals contract. */ event MapleGlobalsSet(address indexed mapleGlobals_); /** * @dev An upgrade path was disabled, with an optional migrator contract. * @param fromVersion_ The starting version of the upgrade path. * @param toVersion_ The destination version of the upgrade path. */ event UpgradePathDisabled(uint256 indexed fromVersion_, uint256 indexed toVersion_); /** * @dev An upgrade path was enabled, with an optional migrator contract. * @param fromVersion_ The starting version of the upgrade path. * @param toVersion_ The destination version of the upgrade path. * @param migrator_ The address of the migrator, if any. */ event UpgradePathEnabled(uint256 indexed fromVersion_, uint256 indexed toVersion_, address indexed migrator_); /***********************/ /*** State Variables ***/ /***********************/ /** * @dev The default version. */ function defaultVersion() external view returns (uint256 defaultVersion_); /** * @dev The address of the MapleGlobals contract. */ function mapleGlobals() external view returns (address mapleGlobals_); /** * @dev Whether the upgrade is enabled for a path from a version to another version. * @param toVersion_ The initial version. * @param fromVersion_ The destination version. * @return allowed_ Whether the upgrade is enabled. */ function upgradeEnabledForPath(uint256 toVersion_, uint256 fromVersion_) external view returns (bool allowed_); /********************************/ /*** State Changing Functions ***/ /********************************/ /** * @dev Deploys a new instance proxying the default implementation version, with some initialization arguments. * Uses a nonce and `msg.sender` as a salt for the CREATE2 opcode during instantiation to produce deterministic addresses. * @param arguments_ The initialization arguments to use for the instance deployment, if any. * @param salt_ The salt to use in the contract creation process. * @return instance_ The address of the deployed proxy contract. */ function createInstance(bytes calldata arguments_, bytes32 salt_) external returns (address instance_); /** * @dev Enables upgrading from a version to a version of an implementation, with an optional migrator. * Only the Governor can call this function. * @param fromVersion_ The starting version of the upgrade path. * @param toVersion_ The destination version of the upgrade path. * @param migrator_ The address of the migrator, if any. */ function enableUpgradePath(uint256 fromVersion_, uint256 toVersion_, address migrator_) external; /** * @dev Disables upgrading from a version to a version of a implementation. * Only the Governor can call this function. * @param fromVersion_ The starting version of the upgrade path. * @param toVersion_ The destination version of the upgrade path. */ function disableUpgradePath(uint256 fromVersion_, uint256 toVersion_) external; /** * @dev Registers the address of an implementation contract as a version, with an optional initializer. * Only the Governor can call this function. * @param version_ The version to register. * @param implementationAddress_ The address of the implementation. * @param initializer_ The address of the initializer, if any. */ function registerImplementation(uint256 version_, address implementationAddress_, address initializer_) external; /** * @dev Sets the default version. * Only the Governor can call this function. * @param version_ The implementation version to set as the default. */ function setDefaultVersion(uint256 version_) external; /** * @dev Sets the Maple Globals contract. * Only the Governor can call this function. * @param mapleGlobals_ The address of a Maple Globals contract. */ function setGlobals(address mapleGlobals_) external; /** * @dev Upgrades the calling proxy contract's implementation, with some migration arguments. * @param toVersion_ The implementation version to upgrade the proxy contract to. * @param arguments_ The migration arguments, if any. */ function upgradeInstance(uint256 toVersion_, bytes calldata arguments_) external; /**********************/ /*** View Functions ***/ /**********************/ /** * @dev Returns the deterministic address of a potential proxy, given some arguments and salt. * @param arguments_ The initialization arguments to be used when deploying the proxy. * @param salt_ The salt to be used when deploying the proxy. * @return instanceAddress_ The deterministic address of a potential proxy. */ function getInstanceAddress(bytes calldata arguments_, bytes32 salt_) external view returns (address instanceAddress_); /** * @dev Returns the address of an implementation version. * @param version_ The implementation version. * @return implementation_ The address of the implementation. */ function implementationOf(uint256 version_) external view returns (address implementation_); /** * @dev Returns the address of a migrator contract for a migration path (from version, to version). * If oldVersion_ == newVersion_, the migrator is an initializer. * @param oldVersion_ The old version. * @param newVersion_ The new version. * @return migrator_ The address of a migrator contract. */ function migratorForPath(uint256 oldVersion_, uint256 newVersion_) external view returns (address migrator_); /** * @dev Returns the version of an implementation contract. * @param implementation_ The address of an implementation contract. * @return version_ The version of the implementation contract. */ function versionOf(address implementation_) external view returns (uint256 version_); } /// @title Deploys DebtLocker proxy instances. interface IDebtLockerFactory is IMapleProxyFactory { /** * @dev The Maple factory type (to be deprecated). */ function factoryType() external view returns (uint8 factoryType_); /** * @dev Deploys a new DebtLocker proxy instance. * @param loan_ Loan contract that corresponds to DebtLocker. * @return debtLocker_ The address of the deployed DebtLocker proxy. */ function newLocker(address loan_) external returns (address debtLocker_); } abstract contract SlotManipulatable { function _getReferenceTypeSlot(bytes32 slot_, bytes32 key_) internal pure returns (bytes32 value_) { return keccak256(abi.encodePacked(key_, slot_)); } function _getSlotValue(bytes32 slot_) internal view returns (bytes32 value_) { assembly { value_ := sload(slot_) } } function _setSlotValue(bytes32 slot_, bytes32 value_) internal { assembly { sstore(slot_, value_) } } } /// @title A completely transparent, and thus interface-less, proxy contract. contract Proxy is SlotManipulatable { /// @dev Storage slot with the address of the current factory. `keccak256('eip1967.proxy.factory') - 1`. bytes32 private constant FACTORY_SLOT = bytes32(0x7a45a402e4cb6e08ebc196f20f66d5d30e67285a2a8aa80503fa409e727a4af1); /// @dev Storage slot with the address of the current factory. `keccak256('eip1967.proxy.implementation') - 1`. bytes32 private constant IMPLEMENTATION_SLOT = bytes32(0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc); /** * @dev The constructor requires at least one of `factory_` or `implementation_`. * If an implementation is not provided, the factory is treated as an IDefaultImplementationBeacon to fetch the default implementation. * @param factory_ The address of a proxy factory, if any. * @param implementation_ The address of the implementation contract being proxied, if any. */ constructor(address factory_, address implementation_) { _setSlotValue(FACTORY_SLOT, bytes32(uint256(uint160(factory_)))); // If the implementation is empty, fetch it from the factory, which can act as a beacon. address implementation = implementation_ == address(0) ? IDefaultImplementationBeacon(factory_).defaultImplementation() : implementation_; require(implementation != address(0)); _setSlotValue(IMPLEMENTATION_SLOT, bytes32(uint256(uint160(implementation)))); } fallback() payable external virtual { bytes32 implementation = _getSlotValue(IMPLEMENTATION_SLOT); require(address(uint160(uint256(implementation))).code.length != uint256(0)); assembly { calldatacopy(0, 0, calldatasize()) let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0) returndatacopy(0, 0, returndatasize()) switch result case 0 { revert(0, returndatasize()) } default { return(0, returndatasize()) } } } } /// @title A factory for Proxy contracts that proxy Proxied implementations. abstract contract ProxyFactory { mapping(uint256 => address) internal _implementationOf; mapping(address => uint256) internal _versionOf; mapping(uint256 => mapping(uint256 => address)) internal _migratorForPath; /// @dev Returns the implementation of `proxy_`. function _getImplementationOfProxy(address proxy_) private view returns (bool success_, address implementation_) { bytes memory returnData; // Since `_getImplementationOfProxy` is a private function, no need to check `proxy_` is a contract. ( success_, returnData ) = proxy_.staticcall(abi.encodeWithSelector(IProxiedLike.implementation.selector)); implementation_ = abi.decode(returnData, (address)); } /// @dev Initializes `proxy_` using the initializer for `version_`, given some initialization arguments. function _initializeInstance(address proxy_, uint256 version_, bytes memory arguments_) private returns (bool success_) { // The migrator, where fromVersion == toVersion, is an initializer. address initializer = _migratorForPath[version_][version_]; // If there is no initializer, then no initialization is necessary, so long as no initialization arguments were provided. if (initializer == address(0)) return arguments_.length == uint256(0); // Call the migrate function on the proxy, passing any initialization arguments. // Since `_initializeInstance` is a private function, no need to check `proxy_` is a contract. ( success_, ) = proxy_.call(abi.encodeWithSelector(IProxiedLike.migrate.selector, initializer, arguments_)); } /// @dev Deploys a new proxy for some version, with some initialization arguments, using `create` (i.e. factory's nonce determines the address). function _newInstance(uint256 version_, bytes memory arguments_) internal virtual returns (bool success_, address proxy_) { address implementation = _implementationOf[version_]; if (implementation == address(0)) return (false, address(0)); proxy_ = address(new Proxy(address(this), implementation)); success_ = _initializeInstance(proxy_, version_, arguments_); } /// @dev Deploys a new proxy, with some initialization arguments, using `create2` (i.e. salt determines the address). /// This factory needs to be IDefaultImplementationBeacon, since the proxy will pull its implementation from it. function _newInstance(bytes memory arguments_, bytes32 salt_) internal virtual returns (bool success_, address proxy_) { proxy_ = address(new Proxy{ salt: salt_ }(address(this), address(0))); // Fetch the implementation from the proxy. Don't care about success, since the version of the implementation will be checked in the next step. ( , address implementation ) = _getImplementationOfProxy(proxy_); // Get the version of the implementation. uint256 version = _versionOf[implementation]; // Successful if version is nonzero (i.e. implementation fetched successfully from proxy) and initializing the instance succeeds. success_ = (version != uint256(0)) && _initializeInstance(proxy_, version, arguments_); } /// @dev Registers an implementation for some version. function _registerImplementation(uint256 version_, address implementation_) internal virtual returns (bool success_) { // Version 0 is not allowed since its the default value of all _versionOf[implementation_]. // Implementation cannot already be registered and cannot be empty account (and thus also not address(0)). if ( version_ == uint256(0) || _implementationOf[version_] != address(0) || _versionOf[implementation_] != uint256(0) || !_isContract(implementation_) ) return false; // Store in two-way mappings. _implementationOf[version_] = implementation_; _versionOf[implementation_] = version_; return true; } /// @dev Registers a migrator for between two versions. If `fromVersion_ == toVersion_`, migrator is an initializer. function _registerMigrator(uint256 fromVersion_, uint256 toVersion_, address migrator_) internal virtual returns (bool success_) { // Version 0 is invalid. if (fromVersion_ == uint256(0) || toVersion_ == uint256(0)) return false; // Migrator must either be zero (clearing) or a contract (setting). if (migrator_ != address(0) && !_isContract(migrator_)) return false; _migratorForPath[fromVersion_][toVersion_] = migrator_; return true; } /// @dev Upgrades a proxy to a new version of an implementation, with some migration arguments. /// Inheritor should revert on `success_ = false`, since proxy can be set to new implementation, but failed to migrate. function _upgradeInstance(address proxy_, uint256 toVersion_, bytes memory arguments_) internal virtual returns (bool success_) { // Check that the proxy is currently a contract, just once, ahead of the 3 times it will be low-level-called. if (!_isContract(proxy_)) return false; address toImplementation = _implementationOf[toVersion_]; // The implementation being migrated must have been registered (which also implies that `toVersion_` was not 0). if (toImplementation == address(0)) return false; // Fetch the implementation from the proxy. address fromImplementation; ( success_, fromImplementation ) = _getImplementationOfProxy(proxy_); if (!success_) return false; // Set the proxy's implementation. ( success_, ) = proxy_.call(abi.encodeWithSelector(IProxiedLike.setImplementation.selector, toImplementation)); if (!success_) return false; // Get the version of the `fromImplementation`, then get the `migrator` of the upgrade path to `toVersion_`. address migrator = _migratorForPath[_versionOf[fromImplementation]][toVersion_]; // If there is no migrator, then no migration is necessary, so long as no migration arguments were provided. if (migrator == address(0)) return arguments_.length == uint256(0); // Call the migrate function on the proxy, passing any migration arguments. ( success_, ) = proxy_.call(abi.encodeWithSelector(IProxiedLike.migrate.selector, migrator, arguments_)); } /// @dev Returns the deterministic address of a proxy given some salt. function _getDeterministicProxyAddress(bytes32 salt_) internal virtual view returns (address deterministicProxyAddress_) { // See https://docs.soliditylang.org/en/v0.8.7/control-structures.html#salted-contract-creations-create2 return address( uint160( uint256( keccak256( abi.encodePacked( bytes1(0xff), address(this), salt_, keccak256(abi.encodePacked(type(Proxy).creationCode, abi.encode(address(this), address(0)))) ) ) ) ) ); } /// @dev Returns whether the account is currently a contract. function _isContract(address account_) internal view returns (bool isContract_) { return account_.code.length != uint256(0); } } /// @title A Maple factory for Proxy contracts that proxy MapleProxied implementations. contract MapleProxyFactory is IMapleProxyFactory, ProxyFactory { address public override mapleGlobals; uint256 public override defaultVersion; mapping(uint256 => mapping(uint256 => bool)) public override upgradeEnabledForPath; /// @param mapleGlobals_ The address of a Maple Globals contract. constructor(address mapleGlobals_) { require(IMapleGlobalsLike(mapleGlobals = mapleGlobals_).governor() != address(0), "MPF:C:INVALID_GLOBALS"); } modifier onlyGovernor() { require(msg.sender == IMapleGlobalsLike(mapleGlobals).governor(), "MPF:NOT_GOVERNOR"); _; } /********************************/ /*** Administrative Functions ***/ /********************************/ function disableUpgradePath(uint256 fromVersion_, uint256 toVersion_) public override virtual onlyGovernor { require(fromVersion_ != toVersion_, "MPF:DUP:OVERWRITING_INITIALIZER"); require(_registerMigrator(fromVersion_, toVersion_, address(0)), "MPF:DUP:FAILED"); emit UpgradePathDisabled(fromVersion_, toVersion_); upgradeEnabledForPath[fromVersion_][toVersion_] = false; } function enableUpgradePath(uint256 fromVersion_, uint256 toVersion_, address migrator_) public override virtual onlyGovernor { require(fromVersion_ != toVersion_, "MPF:EUP:OVERWRITING_INITIALIZER"); require(_registerMigrator(fromVersion_, toVersion_, migrator_), "MPF:EUP:FAILED"); emit UpgradePathEnabled(fromVersion_, toVersion_, migrator_); upgradeEnabledForPath[fromVersion_][toVersion_] = true; } function registerImplementation(uint256 version_, address implementationAddress_, address initializer_) public override virtual onlyGovernor { // Version 0 reserved as "no version" since default `defaultVersion` is 0. require(version_ != uint256(0), "MPF:RI:INVALID_VERSION"); emit ImplementationRegistered(version_, implementationAddress_, initializer_); require(_registerImplementation(version_, implementationAddress_), "MPF:RI:FAIL_FOR_IMPLEMENTATION"); // Set migrator for initialization, which understood as fromVersion == toVersion. require(_registerMigrator(version_, version_, initializer_), "MPF:RI:FAIL_FOR_MIGRATOR"); } function setDefaultVersion(uint256 version_) public override virtual onlyGovernor { // Version must be 0 (to disable creating new instances) or be registered. require(version_ == 0 || _implementationOf[version_] != address(0), "MPF:SDV:INVALID_VERSION"); emit DefaultVersionSet(defaultVersion = version_); } function setGlobals(address mapleGlobals_) public override virtual onlyGovernor { require(IMapleGlobalsLike(mapleGlobals_).governor() != address(0), "MPF:SG:INVALID_GLOBALS"); emit MapleGlobalsSet(mapleGlobals = mapleGlobals_); } /**************************/ /*** Instance Functions ***/ /**************************/ function createInstance(bytes calldata arguments_, bytes32 salt_) public override virtual returns (address instance_) { bool success; ( success, instance_ ) = _newInstance(arguments_, keccak256(abi.encodePacked(arguments_, salt_))); require(success, "MPF:CI:FAILED"); emit InstanceDeployed(defaultVersion, instance_, arguments_); } // NOTE: The implementation proxied by the instance defines the access control logic for its own upgrade. function upgradeInstance(uint256 toVersion_, bytes calldata arguments_) public override virtual { uint256 fromVersion = _versionOf[IMapleProxiedLike(msg.sender).implementation()]; require(upgradeEnabledForPath[fromVersion][toVersion_], "MPF:UI:NOT_ALLOWED"); emit InstanceUpgraded(msg.sender, fromVersion, toVersion_, arguments_); require(_upgradeInstance(msg.sender, toVersion_, arguments_), "MPF:UI:FAILED"); } /**********************/ /*** View Functions ***/ /**********************/ function getInstanceAddress(bytes calldata arguments_, bytes32 salt_) public view override virtual returns (address instanceAddress_) { return _getDeterministicProxyAddress(keccak256(abi.encodePacked(arguments_, salt_))); } function implementationOf(uint256 version_) public view override virtual returns (address implementation_) { return _implementationOf[version_]; } function defaultImplementation() external view override returns (address defaultImplementation_) { return _implementationOf[defaultVersion]; } function migratorForPath(uint256 oldVersion_, uint256 newVersion_) public view override virtual returns (address migrator_) { return _migratorForPath[oldVersion_][newVersion_]; } function versionOf(address implementation_) public view override virtual returns (uint256 version_) { return _versionOf[implementation_]; } } /// @title Deploys DebtLocker proxy instances. contract DebtLockerFactory is IDebtLockerFactory, MapleProxyFactory { uint8 public constant override factoryType = uint8(1); /// @param mapleGlobals_ The address of a Maple Globals contract. constructor(address mapleGlobals_) MapleProxyFactory(mapleGlobals_) {} function newLocker(address loan_) external override returns (address debtLocker_) { bytes memory arguments = abi.encode(loan_, msg.sender); bool success; ( success, debtLocker_ ) = _newInstance(defaultVersion, arguments); require(success, "DLF:NL:FAILED"); emit InstanceDeployed(defaultVersion, debtLocker_, arguments); } /// @dev This function is disabled in favour of a PoolV1-compatible `newLocker` function. function createInstance(bytes calldata arguments_, bytes32 salt_) public override(IMapleProxyFactory, MapleProxyFactory) virtual returns (address instance_) {} /// @dev This function is disabled in since the PoolV1-compatible `newLocker` function is used instead of `createInstance`. function getInstanceAddress(bytes calldata arguments_, bytes32 salt_) public view override(IMapleProxyFactory, MapleProxyFactory) virtual returns (address instanceAddress_) {} }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } }, "metadata": { "bytecodeHash": "none" } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"mapleGlobals_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"version_","type":"uint256"}],"name":"DefaultVersionSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"version_","type":"uint256"},{"indexed":true,"internalType":"address","name":"implementationAddress_","type":"address"},{"indexed":true,"internalType":"address","name":"initializer_","type":"address"}],"name":"ImplementationRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"version_","type":"uint256"},{"indexed":true,"internalType":"address","name":"instance_","type":"address"},{"indexed":false,"internalType":"bytes","name":"initializationArguments_","type":"bytes"}],"name":"InstanceDeployed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"instance_","type":"address"},{"indexed":true,"internalType":"uint256","name":"fromVersion_","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"toVersion_","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"migrationArguments_","type":"bytes"}],"name":"InstanceUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"mapleGlobals_","type":"address"}],"name":"MapleGlobalsSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"fromVersion_","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"toVersion_","type":"uint256"}],"name":"UpgradePathDisabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"fromVersion_","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"toVersion_","type":"uint256"},{"indexed":true,"internalType":"address","name":"migrator_","type":"address"}],"name":"UpgradePathEnabled","type":"event"},{"inputs":[{"internalType":"bytes","name":"arguments_","type":"bytes"},{"internalType":"bytes32","name":"salt_","type":"bytes32"}],"name":"createInstance","outputs":[{"internalType":"address","name":"instance_","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"defaultImplementation","outputs":[{"internalType":"address","name":"defaultImplementation_","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultVersion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"fromVersion_","type":"uint256"},{"internalType":"uint256","name":"toVersion_","type":"uint256"}],"name":"disableUpgradePath","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fromVersion_","type":"uint256"},{"internalType":"uint256","name":"toVersion_","type":"uint256"},{"internalType":"address","name":"migrator_","type":"address"}],"name":"enableUpgradePath","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"factoryType","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"arguments_","type":"bytes"},{"internalType":"bytes32","name":"salt_","type":"bytes32"}],"name":"getInstanceAddress","outputs":[{"internalType":"address","name":"instanceAddress_","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"version_","type":"uint256"}],"name":"implementationOf","outputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mapleGlobals","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"oldVersion_","type":"uint256"},{"internalType":"uint256","name":"newVersion_","type":"uint256"}],"name":"migratorForPath","outputs":[{"internalType":"address","name":"migrator_","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"loan_","type":"address"}],"name":"newLocker","outputs":[{"internalType":"address","name":"debtLocker_","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"version_","type":"uint256"},{"internalType":"address","name":"implementationAddress_","type":"address"},{"internalType":"address","name":"initializer_","type":"address"}],"name":"registerImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"version_","type":"uint256"}],"name":"setDefaultVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"mapleGlobals_","type":"address"}],"name":"setGlobals","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"upgradeEnabledForPath","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"toVersion_","type":"uint256"},{"internalType":"bytes","name":"arguments_","type":"bytes"}],"name":"upgradeInstance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"implementation_","type":"address"}],"name":"versionOf","outputs":[{"internalType":"uint256","name":"version_","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b5060405162001ab438038062001ab483398101604081905262000034916200013e565b8060006001600160a01b031681600360006101000a8154816001600160a01b0302191690836001600160a01b0316021790556001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b1580156200009f57600080fd5b505afa158015620000b4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000da91906200013e565b6001600160a01b03161415620001365760405162461bcd60e51b815260206004820152601560248201527f4d50463a433a494e56414c49445f474c4f42414c530000000000000000000000604482015260640160405180910390fd5b505062000170565b6000602082840312156200015157600080fd5b81516001600160a01b03811681146200016957600080fd5b9392505050565b61193480620001806000396000f3fe60806040523480156200001157600080fd5b5060043610620001215760003560e01c806385b8a52f11620000af578063b39c4593116200007a578063b39c45931462000273578063b4e6747f1462000294578063cc2e0a2614620002ab578063d867e0de14620002c2578063fe69f708146200030457600080fd5b806385b8a52f14620002025780638636f07e1462000219578063881829121462000245578063b28317bf146200025c57600080fd5b806319eb783a11620000f057806319eb783a14620001bb5780633a60339a14620001d2578063517b657f146200016557806364e1fd5514620001e657600080fd5b80630db3ff4514620001265780630e6e4b25146200016557806312700bae14620001985780631798d48214620001b1575b600080fd5b620001526200013736600462001446565b6001600160a01b031660009081526001602052604090205490565b6040519081526020015b60405180910390f35b6200017f6200017636600462001486565b60009392505050565b6040516001600160a01b0390911681526020016200015c565b620001af620001a9366004620014f0565b6200031b565b005b6200015260045481565b6200017f620001cc36600462001446565b62000524565b6003546200017f906001600160a01b031681565b620001ef600181565b60405160ff90911681526020016200015c565b6200017f6200021336600462001587565b620005f2565b6200017f6200022a366004620014d6565b6000908152602081905260409020546001600160a01b031690565b620001af6200025636600462001587565b6200061c565b620001af6200026d366004620015aa565b620007c8565b6004546000908152602081905260409020546001600160a01b03166200017f565b620001af620002a5366004620014d6565b62000982565b620001af620002bc36600462001446565b62000ae4565b620002f3620002d336600462001587565b600560209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016200015c565b620001af6200031536600462001537565b62000cbd565b600360009054906101000a90046001600160a01b03166001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b1580156200036a57600080fd5b505afa1580156200037f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a5919062001466565b6001600160a01b0316336001600160a01b031614620003e15760405162461bcd60e51b8152600401620003d89062001699565b60405180910390fd5b82620004295760405162461bcd60e51b815260206004820152601660248201527526a8231d29249d24a72b20a624a22fab22a929a4a7a760511b6044820152606401620003d8565b806001600160a01b0316826001600160a01b0316847fe69962526b7f07862bf85663f861564361295f9601236fbbe056591eb1b63f3b60405160405180910390a462000476838362000e80565b620004c45760405162461bcd60e51b815260206004820152601e60248201527f4d50463a52493a4641494c5f464f525f494d504c454d454e544154494f4e00006044820152606401620003d8565b620004d183848362000f2c565b6200051f5760405162461bcd60e51b815260206004820152601860248201527f4d50463a52493a4641494c5f464f525f4d49475241544f5200000000000000006044820152606401620003d8565b505050565b604080516001600160a01b03831660208201523381830152815180820383018152606090910190915260045460009190829062000562908362000fb6565b9350905080620005a55760405162461bcd60e51b815260206004820152600d60248201526c1113118e93930e919052531151609a1b6044820152606401620003d8565b826001600160a01b03166004547f8919387fe006fdc29a3dfcc183071d7974bc03747fedb0019630f1e13f85cc6484604051620005e3919062001684565b60405180910390a35050919050565b60008281526002602090815260408083208484529091529020546001600160a01b03165b92915050565b600360009054906101000a90046001600160a01b03166001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b1580156200066b57600080fd5b505afa15801562000680573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006a6919062001466565b6001600160a01b0316336001600160a01b031614620006d95760405162461bcd60e51b8152600401620003d89062001699565b808214156200072b5760405162461bcd60e51b815260206004820152601f60248201527f4d50463a4455503a4f56455257524954494e475f494e495449414c495a4552006044820152606401620003d8565b620007398282600062000f2c565b620007785760405162461bcd60e51b815260206004820152600e60248201526d1354118e9115540e91905253115160921b6044820152606401620003d8565b604051819083907fa46f1addc2236b7d93ed2a8a507f1c47cc92656d2b6f82bf0876da9e964b9e5e90600090a360009182526005602090815260408084209284529190529020805460ff19169055565b600360009054906101000a90046001600160a01b03166001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b1580156200081757600080fd5b505afa1580156200082c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000852919062001466565b6001600160a01b0316336001600160a01b031614620008855760405162461bcd60e51b8152600401620003d89062001699565b81831415620008d75760405162461bcd60e51b815260206004820152601f60248201527f4d50463a4555503a4f56455257524954494e475f494e495449414c495a4552006044820152606401620003d8565b620008e483838362000f2c565b620009235760405162461bcd60e51b815260206004820152600e60248201526d1354118e9155540e91905253115160921b6044820152606401620003d8565b806001600160a01b031682847f549a41e54b51dcc3f29b51bb02a8adcc4ec5ae26604608e41bde60311dcef10660405160405180910390a45060009182526005602090815260408084209284529190529020805460ff19166001179055565b600360009054906101000a90046001600160a01b03166001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b158015620009d157600080fd5b505afa158015620009e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a0c919062001466565b6001600160a01b0316336001600160a01b03161462000a3f5760405162461bcd60e51b8152600401620003d89062001699565b80158062000a6357506000818152602081905260409020546001600160a01b031615155b62000ab15760405162461bcd60e51b815260206004820152601760248201527f4d50463a5344563a494e56414c49445f56455253494f4e0000000000000000006044820152606401620003d8565b600481905560405181907fddb2013cf7f102d15447c4c1e94cf56823455f02eb244d0c3b2ef6516338934690600090a250565b600360009054906101000a90046001600160a01b03166001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b15801562000b3357600080fd5b505afa15801562000b48573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b6e919062001466565b6001600160a01b0316336001600160a01b03161462000ba15760405162461bcd60e51b8152600401620003d89062001699565b60006001600160a01b0316816001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b15801562000be657600080fd5b505afa15801562000bfb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c21919062001466565b6001600160a01b0316141562000c735760405162461bcd60e51b81526020600482015260166024820152754d50463a53473a494e56414c49445f474c4f42414c5360501b6044820152606401620003d8565b600380546001600160a01b0319166001600160a01b0383169081179091556040517f9074839b84a74138be159cb7813a72c2a44c35fe8c53da66a16da385d348c5f190600090a250565b600060016000336001600160a01b0316635c60da1b6040518163ffffffff1660e01b815260040160206040518083038186803b15801562000cfd57600080fd5b505afa15801562000d12573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000d38919062001466565b6001600160a01b03168152602080820192909252604090810160009081205480825260058452828220888352909352205490915060ff1662000db25760405162461bcd60e51b81526020600482015260126024820152711354118e95524e9393d517d0531313d5d15160721b6044820152606401620003d8565b8381336001600160a01b03167ffbb4f36b70dba8ecedc8b38361f44f1b0c61e04ec4e0ccf620649dc558573f5f868660405162000df192919062001655565b60405180910390a462000e3c338585858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506200104392505050565b62000e7a5760405162461bcd60e51b815260206004820152600d60248201526c1354118e95524e919052531151609a1b6044820152606401620003d8565b50505050565b600082158062000ea657506000838152602081905260409020546001600160a01b031615155b8062000ec957506001600160a01b03821660009081526001602052604090205415155b8062000edd57506001600160a01b0382163b155b1562000eec5750600062000616565b5060008281526020818152604080832080546001600160a01b0319166001600160a01b039590951694851790559282526001908190529190209190915590565b600083158062000f3a575082155b1562000f495750600062000faf565b6001600160a01b0382161580159062000f6a57506001600160a01b0382163b155b1562000f795750600062000faf565b506000838152600260209081526040808320858452909152902080546001600160a01b0319166001600160a01b03831617905560015b9392505050565b60008281526020819052604081205481906001600160a01b03168062000fe45760008092509250506200103c565b308160405162000ff490620013f3565b6001600160a01b03928316815291166020820152604001604051809103906000f08015801562001028573d6000803e3d6000fd5b509150620010388286866200125b565b9250505b9250929050565b60006001600160a01b0384163b6200105e5750600062000faf565b6000838152602081905260409020546001600160a01b0316806200108757600091505062000faf565b6000620010948662001343565b909350905082620010ab5760009250505062000faf565b604080516001600160a01b0384811660248084019190915283518084039091018152604490920183526020820180516001600160e01b0316636bc26a1360e11b17905291519188169162001100919062001609565b6000604051808303816000865af19150503d80600081146200113f576040519150601f19603f3d011682016040523d82523d6000602084013e62001144565b606091505b505080935050826200115c5760009250505062000faf565b6001600160a01b038082166000908152600160209081526040808320548352600282528083208984529091529020541680620011a2576000855114935050505062000faf565b866001600160a01b031663c3fbb6fd60e01b8287604051602401620011c992919062001627565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b031990941693909317909252905162001209919062001609565b6000604051808303816000865af19150503d806000811462001248576040519150601f19603f3d011682016040523d82523d6000602084013e6200124d565b606091505b509098975050505050505050565b60008281526002602090815260408083209091528120546001600160a01b0316806200128c57505080511562000faf565b846001600160a01b031663c3fbb6fd60e01b8285604051602401620012b392919062001627565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051620012f3919062001609565b6000604051808303816000865af19150503d806000811462001332576040519150601f19603f3d011682016040523d82523d6000602084013e62001337565b606091505b50909695505050505050565b60408051600481526024810182526020810180516001600160e01b0316635c60da1b60e01b179052905160009182916060916001600160a01b038616916200138c919062001609565b600060405180830381855afa9150503d8060008114620013c9576040519150601f19603f3d011682016040523d82523d6000602084013e620013ce565b606091505b5080519194509150620013eb908201602090810190830162001466565b915050915091565b61021c806200170c83390190565b60008083601f8401126200141457600080fd5b50813567ffffffffffffffff8111156200142d57600080fd5b6020830191508360208285010111156200103c57600080fd5b6000602082840312156200145957600080fd5b813562000faf81620016f2565b6000602082840312156200147957600080fd5b815162000faf81620016f2565b6000806000604084860312156200149c57600080fd5b833567ffffffffffffffff811115620014b457600080fd5b620014c28682870162001401565b909790965060209590950135949350505050565b600060208284031215620014e957600080fd5b5035919050565b6000806000606084860312156200150657600080fd5b8335925060208401356200151a81620016f2565b915060408401356200152c81620016f2565b809150509250925092565b6000806000604084860312156200154d57600080fd5b83359250602084013567ffffffffffffffff8111156200156c57600080fd5b6200157a8682870162001401565b9497909650939450505050565b600080604083850312156200159b57600080fd5b50508035926020909101359150565b600080600060608486031215620015c057600080fd5b833592506020840135915060408401356200152c81620016f2565b60008151808452620015f5816020860160208601620016c3565b601f01601f19169290920160200192915050565b600082516200161d818460208701620016c3565b9190910192915050565b6001600160a01b03831681526040602082018190526000906200164d90830184620015db565b949350505050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60208152600062000faf6020830184620015db565b60208082526010908201526f26a8231d2727aa2fa3a7ab22a92727a960811b604082015260600190565b60005b83811015620016e0578181015183820152602001620016c6565b8381111562000e7a5750506000910152565b6001600160a01b03811681146200170857600080fd5b5056fe608060405234801561001057600080fd5b5060405161021c38038061021c83398101604081905261002f91610169565b6001600160a01b0382167f7a45a402e4cb6e08ebc196f20f66d5d30e67285a2a8aa80503fa409e727a4af15560006001600160a01b0382161561007257816100e3565b826001600160a01b031663b39c45936040518163ffffffff1660e01b815260040160206040518083038186803b1580156100ab57600080fd5b505afa1580156100bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e39190610147565b90506001600160a01b0381166100f857600080fd5b6001600160a01b03167f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc555061019c9050565b80516001600160a01b038116811461014257600080fd5b919050565b60006020828403121561015957600080fd5b6101628261012b565b9392505050565b6000806040838503121561017c57600080fd5b6101858361012b565b91506101936020840161012b565b90509250929050565b6072806101aa6000396000f3fe60806040526000602d7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b90506001600160a01b0381163b604257600080fd5b3660008037600080366000845af43d6000803e8080156060573d6000f35b3d6000fdfea164736f6c6343000807000aa164736f6c6343000807000a000000000000000000000000c234c62c8c09687dff0d9047e40042cd166f3600
Deployed Bytecode
0x60806040523480156200001157600080fd5b5060043610620001215760003560e01c806385b8a52f11620000af578063b39c4593116200007a578063b39c45931462000273578063b4e6747f1462000294578063cc2e0a2614620002ab578063d867e0de14620002c2578063fe69f708146200030457600080fd5b806385b8a52f14620002025780638636f07e1462000219578063881829121462000245578063b28317bf146200025c57600080fd5b806319eb783a11620000f057806319eb783a14620001bb5780633a60339a14620001d2578063517b657f146200016557806364e1fd5514620001e657600080fd5b80630db3ff4514620001265780630e6e4b25146200016557806312700bae14620001985780631798d48214620001b1575b600080fd5b620001526200013736600462001446565b6001600160a01b031660009081526001602052604090205490565b6040519081526020015b60405180910390f35b6200017f6200017636600462001486565b60009392505050565b6040516001600160a01b0390911681526020016200015c565b620001af620001a9366004620014f0565b6200031b565b005b6200015260045481565b6200017f620001cc36600462001446565b62000524565b6003546200017f906001600160a01b031681565b620001ef600181565b60405160ff90911681526020016200015c565b6200017f6200021336600462001587565b620005f2565b6200017f6200022a366004620014d6565b6000908152602081905260409020546001600160a01b031690565b620001af6200025636600462001587565b6200061c565b620001af6200026d366004620015aa565b620007c8565b6004546000908152602081905260409020546001600160a01b03166200017f565b620001af620002a5366004620014d6565b62000982565b620001af620002bc36600462001446565b62000ae4565b620002f3620002d336600462001587565b600560209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016200015c565b620001af6200031536600462001537565b62000cbd565b600360009054906101000a90046001600160a01b03166001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b1580156200036a57600080fd5b505afa1580156200037f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a5919062001466565b6001600160a01b0316336001600160a01b031614620003e15760405162461bcd60e51b8152600401620003d89062001699565b60405180910390fd5b82620004295760405162461bcd60e51b815260206004820152601660248201527526a8231d29249d24a72b20a624a22fab22a929a4a7a760511b6044820152606401620003d8565b806001600160a01b0316826001600160a01b0316847fe69962526b7f07862bf85663f861564361295f9601236fbbe056591eb1b63f3b60405160405180910390a462000476838362000e80565b620004c45760405162461bcd60e51b815260206004820152601e60248201527f4d50463a52493a4641494c5f464f525f494d504c454d454e544154494f4e00006044820152606401620003d8565b620004d183848362000f2c565b6200051f5760405162461bcd60e51b815260206004820152601860248201527f4d50463a52493a4641494c5f464f525f4d49475241544f5200000000000000006044820152606401620003d8565b505050565b604080516001600160a01b03831660208201523381830152815180820383018152606090910190915260045460009190829062000562908362000fb6565b9350905080620005a55760405162461bcd60e51b815260206004820152600d60248201526c1113118e93930e919052531151609a1b6044820152606401620003d8565b826001600160a01b03166004547f8919387fe006fdc29a3dfcc183071d7974bc03747fedb0019630f1e13f85cc6484604051620005e3919062001684565b60405180910390a35050919050565b60008281526002602090815260408083208484529091529020546001600160a01b03165b92915050565b600360009054906101000a90046001600160a01b03166001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b1580156200066b57600080fd5b505afa15801562000680573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006a6919062001466565b6001600160a01b0316336001600160a01b031614620006d95760405162461bcd60e51b8152600401620003d89062001699565b808214156200072b5760405162461bcd60e51b815260206004820152601f60248201527f4d50463a4455503a4f56455257524954494e475f494e495449414c495a4552006044820152606401620003d8565b620007398282600062000f2c565b620007785760405162461bcd60e51b815260206004820152600e60248201526d1354118e9115540e91905253115160921b6044820152606401620003d8565b604051819083907fa46f1addc2236b7d93ed2a8a507f1c47cc92656d2b6f82bf0876da9e964b9e5e90600090a360009182526005602090815260408084209284529190529020805460ff19169055565b600360009054906101000a90046001600160a01b03166001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b1580156200081757600080fd5b505afa1580156200082c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000852919062001466565b6001600160a01b0316336001600160a01b031614620008855760405162461bcd60e51b8152600401620003d89062001699565b81831415620008d75760405162461bcd60e51b815260206004820152601f60248201527f4d50463a4555503a4f56455257524954494e475f494e495449414c495a4552006044820152606401620003d8565b620008e483838362000f2c565b620009235760405162461bcd60e51b815260206004820152600e60248201526d1354118e9155540e91905253115160921b6044820152606401620003d8565b806001600160a01b031682847f549a41e54b51dcc3f29b51bb02a8adcc4ec5ae26604608e41bde60311dcef10660405160405180910390a45060009182526005602090815260408084209284529190529020805460ff19166001179055565b600360009054906101000a90046001600160a01b03166001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b158015620009d157600080fd5b505afa158015620009e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a0c919062001466565b6001600160a01b0316336001600160a01b03161462000a3f5760405162461bcd60e51b8152600401620003d89062001699565b80158062000a6357506000818152602081905260409020546001600160a01b031615155b62000ab15760405162461bcd60e51b815260206004820152601760248201527f4d50463a5344563a494e56414c49445f56455253494f4e0000000000000000006044820152606401620003d8565b600481905560405181907fddb2013cf7f102d15447c4c1e94cf56823455f02eb244d0c3b2ef6516338934690600090a250565b600360009054906101000a90046001600160a01b03166001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b15801562000b3357600080fd5b505afa15801562000b48573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b6e919062001466565b6001600160a01b0316336001600160a01b03161462000ba15760405162461bcd60e51b8152600401620003d89062001699565b60006001600160a01b0316816001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b15801562000be657600080fd5b505afa15801562000bfb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c21919062001466565b6001600160a01b0316141562000c735760405162461bcd60e51b81526020600482015260166024820152754d50463a53473a494e56414c49445f474c4f42414c5360501b6044820152606401620003d8565b600380546001600160a01b0319166001600160a01b0383169081179091556040517f9074839b84a74138be159cb7813a72c2a44c35fe8c53da66a16da385d348c5f190600090a250565b600060016000336001600160a01b0316635c60da1b6040518163ffffffff1660e01b815260040160206040518083038186803b15801562000cfd57600080fd5b505afa15801562000d12573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000d38919062001466565b6001600160a01b03168152602080820192909252604090810160009081205480825260058452828220888352909352205490915060ff1662000db25760405162461bcd60e51b81526020600482015260126024820152711354118e95524e9393d517d0531313d5d15160721b6044820152606401620003d8565b8381336001600160a01b03167ffbb4f36b70dba8ecedc8b38361f44f1b0c61e04ec4e0ccf620649dc558573f5f868660405162000df192919062001655565b60405180910390a462000e3c338585858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506200104392505050565b62000e7a5760405162461bcd60e51b815260206004820152600d60248201526c1354118e95524e919052531151609a1b6044820152606401620003d8565b50505050565b600082158062000ea657506000838152602081905260409020546001600160a01b031615155b8062000ec957506001600160a01b03821660009081526001602052604090205415155b8062000edd57506001600160a01b0382163b155b1562000eec5750600062000616565b5060008281526020818152604080832080546001600160a01b0319166001600160a01b039590951694851790559282526001908190529190209190915590565b600083158062000f3a575082155b1562000f495750600062000faf565b6001600160a01b0382161580159062000f6a57506001600160a01b0382163b155b1562000f795750600062000faf565b506000838152600260209081526040808320858452909152902080546001600160a01b0319166001600160a01b03831617905560015b9392505050565b60008281526020819052604081205481906001600160a01b03168062000fe45760008092509250506200103c565b308160405162000ff490620013f3565b6001600160a01b03928316815291166020820152604001604051809103906000f08015801562001028573d6000803e3d6000fd5b509150620010388286866200125b565b9250505b9250929050565b60006001600160a01b0384163b6200105e5750600062000faf565b6000838152602081905260409020546001600160a01b0316806200108757600091505062000faf565b6000620010948662001343565b909350905082620010ab5760009250505062000faf565b604080516001600160a01b0384811660248084019190915283518084039091018152604490920183526020820180516001600160e01b0316636bc26a1360e11b17905291519188169162001100919062001609565b6000604051808303816000865af19150503d80600081146200113f576040519150601f19603f3d011682016040523d82523d6000602084013e62001144565b606091505b505080935050826200115c5760009250505062000faf565b6001600160a01b038082166000908152600160209081526040808320548352600282528083208984529091529020541680620011a2576000855114935050505062000faf565b866001600160a01b031663c3fbb6fd60e01b8287604051602401620011c992919062001627565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b031990941693909317909252905162001209919062001609565b6000604051808303816000865af19150503d806000811462001248576040519150601f19603f3d011682016040523d82523d6000602084013e6200124d565b606091505b509098975050505050505050565b60008281526002602090815260408083209091528120546001600160a01b0316806200128c57505080511562000faf565b846001600160a01b031663c3fbb6fd60e01b8285604051602401620012b392919062001627565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051620012f3919062001609565b6000604051808303816000865af19150503d806000811462001332576040519150601f19603f3d011682016040523d82523d6000602084013e62001337565b606091505b50909695505050505050565b60408051600481526024810182526020810180516001600160e01b0316635c60da1b60e01b179052905160009182916060916001600160a01b038616916200138c919062001609565b600060405180830381855afa9150503d8060008114620013c9576040519150601f19603f3d011682016040523d82523d6000602084013e620013ce565b606091505b5080519194509150620013eb908201602090810190830162001466565b915050915091565b61021c806200170c83390190565b60008083601f8401126200141457600080fd5b50813567ffffffffffffffff8111156200142d57600080fd5b6020830191508360208285010111156200103c57600080fd5b6000602082840312156200145957600080fd5b813562000faf81620016f2565b6000602082840312156200147957600080fd5b815162000faf81620016f2565b6000806000604084860312156200149c57600080fd5b833567ffffffffffffffff811115620014b457600080fd5b620014c28682870162001401565b909790965060209590950135949350505050565b600060208284031215620014e957600080fd5b5035919050565b6000806000606084860312156200150657600080fd5b8335925060208401356200151a81620016f2565b915060408401356200152c81620016f2565b809150509250925092565b6000806000604084860312156200154d57600080fd5b83359250602084013567ffffffffffffffff8111156200156c57600080fd5b6200157a8682870162001401565b9497909650939450505050565b600080604083850312156200159b57600080fd5b50508035926020909101359150565b600080600060608486031215620015c057600080fd5b833592506020840135915060408401356200152c81620016f2565b60008151808452620015f5816020860160208601620016c3565b601f01601f19169290920160200192915050565b600082516200161d818460208701620016c3565b9190910192915050565b6001600160a01b03831681526040602082018190526000906200164d90830184620015db565b949350505050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60208152600062000faf6020830184620015db565b60208082526010908201526f26a8231d2727aa2fa3a7ab22a92727a960811b604082015260600190565b60005b83811015620016e0578181015183820152602001620016c6565b8381111562000e7a5750506000910152565b6001600160a01b03811681146200170857600080fd5b5056fe608060405234801561001057600080fd5b5060405161021c38038061021c83398101604081905261002f91610169565b6001600160a01b0382167f7a45a402e4cb6e08ebc196f20f66d5d30e67285a2a8aa80503fa409e727a4af15560006001600160a01b0382161561007257816100e3565b826001600160a01b031663b39c45936040518163ffffffff1660e01b815260040160206040518083038186803b1580156100ab57600080fd5b505afa1580156100bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e39190610147565b90506001600160a01b0381166100f857600080fd5b6001600160a01b03167f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc555061019c9050565b80516001600160a01b038116811461014257600080fd5b919050565b60006020828403121561015957600080fd5b6101628261012b565b9392505050565b6000806040838503121561017c57600080fd5b6101858361012b565b91506101936020840161012b565b90509250929050565b6072806101aa6000396000f3fe60806040526000602d7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b90506001600160a01b0381163b604257600080fd5b3660008037600080366000845af43d6000803e8080156060573d6000f35b3d6000fdfea164736f6c6343000807000aa164736f6c6343000807000a
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000c234c62c8c09687dff0d9047e40042cd166f3600
-----Decoded View---------------
Arg [0] : mapleGlobals_ (address): 0xC234c62c8C09687DFf0d9047e40042cd166F3600
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000c234c62c8c09687dff0d9047e40042cd166f3600
Deployed Bytecode Sourcemap
25018:1243:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24815:151;;;;;;:::i;:::-;-1:-1:-1;;;;;24932:27:0;24897:16;24932:27;;;:10;:27;;;;;;;24815:151;;;;10267:25:1;;;10255:2;10240:18;24815:151:0;;;;;;;;26071:187;;;;;;:::i;:::-;26226:24;26071:187;;;;;;;;;-1:-1:-1;;;;;4094:32:1;;;4076:51;;4064:2;4049:18;26071:187:0;3930:203:1;21635:686:0;;;;;;:::i;:::-;;:::i;:::-;;20085:38;;;;;;25299:367;;;;;;:::i;:::-;;:::i;20042:36::-;;;;;-1:-1:-1;;;;;20042:36:0;;;25093:53;;25144:1;25093:53;;;;;10475:4:1;10463:17;;;10445:36;;10433:2;10418:18;25093:53:0;10303:184:1;24619:190:0;;;;;;:::i;:::-;;:::i;24295:158::-;;;;;;:::i;:::-;24377:23;24419:27;;;;;;;;;;;-1:-1:-1;;;;;24419:27:0;;24295:158;20714:442;;;;;;:::i;:::-;;:::i;21162:467::-;;;;;;:::i;:::-;;:::i;24459:154::-;24591:14;;24524:30;24573:33;;;;;;;;;;;-1:-1:-1;;;;;24573:33:0;24459:154;;22327:336;;;;;;:::i;:::-;;:::i;22669:250::-;;;;;;:::i;:::-;;:::i;20130:82::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4931:14:1;;4924:22;4906:41;;4894:2;4879:18;20130:82:0;4766:187:1;23509:451:0;;;;;;:::i;:::-;;:::i;21635:686::-;20527:12;;;;;;;;;-1:-1:-1;;;;;20527:12:0;-1:-1:-1;;;;;20509:40:0;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20495:56:0;:10;-1:-1:-1;;;;;20495:56:0;;20487:85;;;;-1:-1:-1;;;20487:85:0;;;;;;;:::i;:::-;;;;;;;;;21877:22;21869:57:::1;;;::::0;-1:-1:-1;;;21869:57:0;;8237:2:1;21869:57:0::1;::::0;::::1;8219:21:1::0;8276:2;8256:18;;;8249:30;-1:-1:-1;;;8295:18:1;;;8288:52;8357:18;;21869:57:0::1;8035:346:1::0;21869:57:0::1;22001:12;-1:-1:-1::0;;;;;21942:72:0::1;21977:22;-1:-1:-1::0;;;;;21942:72:0::1;21967:8;21942:72;;;;;;;;;;22033:57;22057:8;22067:22;22033:23;:57::i;:::-;22025:100;;;::::0;-1:-1:-1;;;22025:100:0;;6837:2:1;22025:100:0::1;::::0;::::1;6819:21:1::0;6876:2;6856:18;;;6849:30;6915:32;6895:18;;;6888:60;6965:18;;22025:100:0::1;6635:354:1::0;22025:100:0::1;22234:51;22252:8;22262;22272:12;22234:17;:51::i;:::-;22226:88;;;::::0;-1:-1:-1;;;22226:88:0;;7884:2:1;22226:88:0::1;::::0;::::1;7866:21:1::0;7923:2;7903:18;;;7896:30;7962:26;7942:18;;;7935:54;8006:18;;22226:88:0::1;7682:348:1::0;22226:88:0::1;21635:686:::0;;;:::o;25299:367::-;25416:29;;;-1:-1:-1;;;;;4368:15:1;;25416:29:0;;;4350:34:1;25434:10:0;4400:18:1;;;4393:43;25416:29:0;;;;;;;;;4285:18:1;;;;25416:29:0;;;25518:14;;-1:-1:-1;;25416:29:0;-1:-1:-1;;25505:39:0;;25416:29;25505:12;:39::i;:::-;25478:66;-1:-1:-1;25478:66:0;-1:-1:-1;25478:66:0;25554:33;;;;-1:-1:-1;;;25554:33:0;;8588:2:1;25554:33:0;;;8570:21:1;8627:2;8607:18;;;8600:30;-1:-1:-1;;;8646:18:1;;;8639:43;8699:18;;25554:33:0;8386:337:1;25554:33:0;25636:11;-1:-1:-1;;;;;25603:56:0;25620:14;;25603:56;25649:9;25603:56;;;;;;:::i;:::-;;;;;;;;25381:285;;25299:367;;;:::o;24619:190::-;24724:17;24760:29;;;:16;:29;;;;;;;;:42;;;;;;;;;-1:-1:-1;;;;;24760:42:0;24619:190;;;;;:::o;20714:442::-;20527:12;;;;;;;;;-1:-1:-1;;;;;20527:12:0;-1:-1:-1;;;;;20509:40:0;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20495:56:0;:10;-1:-1:-1;;;;;20495:56:0;;20487:85;;;;-1:-1:-1;;;20487:85:0;;;;;;;:::i;:::-;20855:10:::1;20839:12;:26;;20831:99;;;::::0;-1:-1:-1;;;20831:99:0;;6477:2:1;20831:99:0::1;::::0;::::1;6459:21:1::0;6516:2;6496:18;;;6489:30;6555:33;6535:18;;;6528:61;6606:18;;20831:99:0::1;6275:355:1::0;20831:99:0::1;20948:55;20966:12;20980:10;21000:1;20948:17;:55::i;:::-;20940:82;;;::::0;-1:-1:-1;;;20940:82:0;;7541:2:1;20940:82:0::1;::::0;::::1;7523:21:1::0;7580:2;7560:18;;;7553:30;-1:-1:-1;;;7599:18:1;;;7592:44;7653:18;;20940:82:0::1;7339:338:1::0;20940:82:0::1;21038:45;::::0;21072:10;;21058:12;;21038:45:::1;::::0;;;::::1;21144:5;21094:35:::0;;;:21:::1;:35;::::0;;;;;;;:47;;;;;;;;:55;;-1:-1:-1;;21094:55:0::1;::::0;;20714:442::o;21162:467::-;20527:12;;;;;;;;;-1:-1:-1;;;;;20527:12:0;-1:-1:-1;;;;;20509:40:0;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20495:56:0;:10;-1:-1:-1;;;;;20495:56:0;;20487:85;;;;-1:-1:-1;;;20487:85:0;;;;;;;:::i;:::-;21321:10:::1;21305:12;:26;;21297:98;;;::::0;-1:-1:-1;;;21297:98:0;;6117:2:1;21297:98:0::1;::::0;::::1;6099:21:1::0;6156:2;6136:18;;;6129:30;6195:33;6175:18;;;6168:61;6246:18;;21297:98:0::1;5915:355:1::0;21297:98:0::1;21413:54;21431:12;21445:10;21457:9;21413:17;:54::i;:::-;21405:81;;;::::0;-1:-1:-1;;;21405:81:0;;9980:2:1;21405:81:0::1;::::0;::::1;9962:21:1::0;10019:2;9999:18;;;9992:30;-1:-1:-1;;;10038:18:1;;;10031:44;10092:18;;21405:81:0::1;9778:338:1::0;21405:81:0::1;21547:9;-1:-1:-1::0;;;;;21502:55:0::1;21535:10;21521:12;21502:55;;;;;;;;;;-1:-1:-1::0;21568:35:0::1;::::0;;;:21:::1;:35;::::0;;;;;;;:47;;;;;;;;:54;;-1:-1:-1;;21568:54:0::1;21618:4;21568:54;::::0;;21162:467::o;22327:336::-;20527:12;;;;;;;;;-1:-1:-1;;;;;20527:12:0;-1:-1:-1;;;;;20509:40:0;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20495:56:0;:10;-1:-1:-1;;;;;20495:56:0;;20487:85;;;;-1:-1:-1;;;20487:85:0;;;;;;;:::i;:::-;22510:13;;;:58:::1;;-1:-1:-1::0;22566:1:0::1;22527:27:::0;;;::::1;::::0;;;;;;;-1:-1:-1;;;;;22527:27:0::1;:41:::0;::::1;22510:58;22502:94;;;::::0;-1:-1:-1;;;22502:94:0;;9277:2:1;22502:94:0::1;::::0;::::1;9259:21:1::0;9316:2;9296:18;;;9289:30;9355:25;9335:18;;;9328:53;9398:18;;22502:94:0::1;9075:347:1::0;22502:94:0::1;22630:14;:25:::0;;;22612:44:::1;::::0;22647:8;;22612:44:::1;::::0;;;::::1;22327:336:::0;:::o;22669:250::-;20527:12;;;;;;;;;-1:-1:-1;;;;;20527:12:0;-1:-1:-1;;;;;20509:40:0;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20495:56:0;:10;-1:-1:-1;;;;;20495:56:0;;20487:85;;;;-1:-1:-1;;;20487:85:0;;;;;;;:::i;:::-;22822:1:::1;-1:-1:-1::0;;;;;22767:57:0::1;22785:13;-1:-1:-1::0;;;;;22767:41:0::1;;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22767:57:0::1;;;22759:92;;;::::0;-1:-1:-1;;;22759:92:0;;9629:2:1;22759:92:0::1;::::0;::::1;9611:21:1::0;9668:2;9648:18;;;9641:30;-1:-1:-1;;;9687:18:1;;;9680:52;9749:18;;22759:92:0::1;9427:346:1::0;22759:92:0::1;22883:12;:28:::0;;-1:-1:-1;;;;;;22883:28:0::1;-1:-1:-1::0;;;;;22883:28:0;::::1;::::0;;::::1;::::0;;;22867:45:::1;::::0;::::1;::::0;-1:-1:-1;;22867:45:0::1;22669:250:::0;:::o;23509:451::-;23615:19;23637:10;:58;23666:10;-1:-1:-1;;;;;23648:44:0;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23637:58:0;;;;;;;;;;;;;;;-1:-1:-1;23637:58:0;;;;23714:34;;;:21;:34;;;;;:46;;;;;;;;23637:58;;-1:-1:-1;23714:46:0;;23706:77;;;;-1:-1:-1;;;23706:77:0;;8930:2:1;23706:77:0;;;8912:21:1;8969:2;8949:18;;;8942:30;-1:-1:-1;;;8988:18:1;;;8981:48;9046:18;;23706:77:0;8728:342:1;23706:77:0;23841:10;23828:11;23816:10;-1:-1:-1;;;;;23799:65:0;;23853:10;;23799:65;;;;;;;:::i;:::-;;;;;;;;23883:52;23900:10;23912;23924;;23883:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23883:16:0;;-1:-1:-1;;;23883:52:0:i;:::-;23875:78;;;;-1:-1:-1;;;23875:78:0;;5775:2:1;23875:78:0;;;5757:21:1;5814:2;5794:18;;;5787:30;-1:-1:-1;;;5833:18:1;;;5826:43;5886:18;;23875:78:0;5573:337:1;23875:78:0;23605:355;23509:451;;;:::o;15728:734::-;15830:13;16087:22;;;:79;;-1:-1:-1;16164:1:0;16125:27;;;;;;;;;;;-1:-1:-1;;;;;16125:27:0;:41;;16087:79;:136;;;-1:-1:-1;;;;;;16182:27:0;;16221:1;16182:27;;;:10;:27;;;;;;:41;;16087:136;:181;;;-1:-1:-1;;;;;;19838:20:0;;;:34;16087:181;16070:221;;;-1:-1:-1;16286:5:0;16279:12;;16070:221;-1:-1:-1;16340:17:0;:27;;;;;;;;;;;:45;;-1:-1:-1;;;;;;16340:45:0;-1:-1:-1;;;;;16340:45:0;;;;;;;;;16395:27;;;-1:-1:-1;16395:27:0;;;;;;;:38;;;;-1:-1:-1;15728:734:0:o;16589:493::-;16703:13;16765:26;;;:54;;-1:-1:-1;16795:24:0;;16765:54;16761:72;;;-1:-1:-1;16828:5:0;16821:12;;16761:72;-1:-1:-1;;;;;16924:23:0;;;;;;:50;;-1:-1:-1;;;;;;19838:20:0;;;:34;16924:50;16920:68;;;-1:-1:-1;16983:5:0;16976:12;;16920:68;-1:-1:-1;16999:30:0;;;;:16;:30;;;;;;;;:42;;;;;;;;:54;;-1:-1:-1;;;;;;16999:54:0;-1:-1:-1;;;;;16999:54:0;;;;;-1:-1:-1;16589:493:0;;;;;;:::o;14238:403::-;14329:13;14395:27;;;;;;;;;;;14329:13;;-1:-1:-1;;;;;14395:27:0;14437:28;14433:60;;14475:5;14490:1;14467:26;;;;;;;14433:60;14541:4;14548:14;14523:40;;;;;:::i;:::-;-1:-1:-1;;;;;4368:15:1;;;4350:34;;4420:15;;4415:2;4400:18;;4393:43;4300:2;4285:18;14523:40:0;;;;;;;;;;;;;;;;;;;;;;;14504:60;;14585:49;14605:6;14613:8;14623:10;14585:19;:49::i;:::-;14574:60;;14360:281;14238:403;;;;;;:::o;17317:1555::-;17430:13;-1:-1:-1;;;;;19838:20:0;;;17573:38;;-1:-1:-1;17606:5:0;17599:12;;17573:38;17622:24;17649:29;;;;;;;;;;;-1:-1:-1;;;;;17649:29:0;17814:30;17810:48;;17853:5;17846:12;;;;;17810:48;17921:26;17992:33;18018:6;17992:25;:33::i;:::-;17957:68;;-1:-1:-1;17957:68:0;-1:-1:-1;17957:68:0;18036:27;;18058:5;18051:12;;;;;;18036:27;18145:81;;;-1:-1:-1;;;;;4094:32:1;;;18145:81:0;;;;4076:51:1;;;;18145:81:0;;;;;;;;;;4049:18:1;;;;18145:81:0;;;;;;;-1:-1:-1;;;;;18145:81:0;-1:-1:-1;;;18145:81:0;;;18133:94;;:11;;;;:94;;18145:81;18133:94;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18117:110;;;;;18243:8;18238:27;;18260:5;18253:12;;;;;;18238:27;-1:-1:-1;;;;;18429:30:0;;;18393:16;18429:30;;;:10;:30;;;;;;;;;18412:48;;:16;:48;;;;;:60;;;;;;;;;;18604:22;18600:66;;18664:1;18635:10;:17;:31;18628:38;;;;;;;18600:66;18777:6;-1:-1:-1;;;;;18777:11:0;18812:29;;;18843:8;18853:10;18789:75;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;18789:75:0;;;;;;;;;;;;;;-1:-1:-1;;;;;18789:75:0;-1:-1:-1;;;;;;18789:75:0;;;;;;;;;;18777:88;;;;18789:75;18777:88;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18761:104:0;;17317:1555;-1:-1:-1;;;;;;;;17317:1555:0:o;13292:791::-;13397:13;13520:26;;;:16;:26;;;;;;;;:36;;;;;;-1:-1:-1;;;;;13520:36:0;13701:25;13697:69;;-1:-1:-1;;13735:17:0;;:31;13728:38;;13697:69;13985:6;-1:-1:-1;;;;;13985:11:0;14020:29;;;14051:11;14064:10;13997:78;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;13997:78:0;;;;;;;;;;;;;;-1:-1:-1;;;;;13997:78:0;-1:-1:-1;;;;;;13997:78:0;;;;;;;;;;13985:91;;;;13997:78;13985:91;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13969:107:0;;13292:791;-1:-1:-1;;;;;;13292:791:0:o;12738:439::-;13048:60;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13048:60:0;-1:-1:-1;;;13048:60:0;;;13030:79;;12811:13;;;;12861:23;;-1:-1:-1;;;;;13030:17:0;;;:79;;13048:60;13030:79;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13137:33:0;;13003:106;;-1:-1:-1;13003:106:0;-1:-1:-1;13137:33:0;;;;;;;;;;;;:::i;:::-;13119:51;;12851:326;12738:439;;;:::o;-1:-1:-1:-;;;;;;;;:::o;14:347:1:-;65:8;75:6;129:3;122:4;114:6;110:17;106:27;96:55;;147:1;144;137:12;96:55;-1:-1:-1;170:20:1;;213:18;202:30;;199:50;;;245:1;242;235:12;199:50;282:4;274:6;270:17;258:29;;334:3;327:4;318:6;310;306:19;302:30;299:39;296:59;;;351:1;348;341:12;366:247;425:6;478:2;466:9;457:7;453:23;449:32;446:52;;;494:1;491;484:12;446:52;533:9;520:23;552:31;577:5;552:31;:::i;618:251::-;688:6;741:2;729:9;720:7;716:23;712:32;709:52;;;757:1;754;747:12;709:52;789:9;783:16;808:31;833:5;808:31;:::i;1138:477::-;1217:6;1225;1233;1286:2;1274:9;1265:7;1261:23;1257:32;1254:52;;;1302:1;1299;1292:12;1254:52;1342:9;1329:23;1375:18;1367:6;1364:30;1361:50;;;1407:1;1404;1397:12;1361:50;1446:58;1496:7;1487:6;1476:9;1472:22;1446:58;:::i;:::-;1523:8;;1420:84;;-1:-1:-1;1605:2:1;1590:18;;;;1577:32;;1138:477;-1:-1:-1;;;;1138:477:1:o;1620:180::-;1679:6;1732:2;1720:9;1711:7;1707:23;1703:32;1700:52;;;1748:1;1745;1738:12;1700:52;-1:-1:-1;1771:23:1;;1620:180;-1:-1:-1;1620:180:1:o;1805:456::-;1882:6;1890;1898;1951:2;1939:9;1930:7;1926:23;1922:32;1919:52;;;1967:1;1964;1957:12;1919:52;2003:9;1990:23;1980:33;;2063:2;2052:9;2048:18;2035:32;2076:31;2101:5;2076:31;:::i;:::-;2126:5;-1:-1:-1;2183:2:1;2168:18;;2155:32;2196:33;2155:32;2196:33;:::i;:::-;2248:7;2238:17;;;1805:456;;;;;:::o;2266:477::-;2345:6;2353;2361;2414:2;2402:9;2393:7;2389:23;2385:32;2382:52;;;2430:1;2427;2420:12;2382:52;2466:9;2453:23;2443:33;;2527:2;2516:9;2512:18;2499:32;2554:18;2546:6;2543:30;2540:50;;;2586:1;2583;2576:12;2540:50;2625:58;2675:7;2666:6;2655:9;2651:22;2625:58;:::i;:::-;2266:477;;2702:8;;-1:-1:-1;2599:84:1;;-1:-1:-1;;;;2266:477:1:o;2748:248::-;2816:6;2824;2877:2;2865:9;2856:7;2852:23;2848:32;2845:52;;;2893:1;2890;2883:12;2845:52;-1:-1:-1;;2916:23:1;;;2986:2;2971:18;;;2958:32;;-1:-1:-1;2748:248:1:o;3001:383::-;3078:6;3086;3094;3147:2;3135:9;3126:7;3122:23;3118:32;3115:52;;;3163:1;3160;3153:12;3115:52;3199:9;3186:23;3176:33;;3256:2;3245:9;3241:18;3228:32;3218:42;;3310:2;3299:9;3295:18;3282:32;3323:31;3348:5;3323:31;:::i;3389:257::-;3430:3;3468:5;3462:12;3495:6;3490:3;3483:19;3511:63;3567:6;3560:4;3555:3;3551:14;3544:4;3537:5;3533:16;3511:63;:::i;:::-;3628:2;3607:15;-1:-1:-1;;3603:29:1;3594:39;;;;3635:4;3590:50;;3389:257;-1:-1:-1;;3389:257:1:o;3651:274::-;3780:3;3818:6;3812:13;3834:53;3880:6;3875:3;3868:4;3860:6;3856:17;3834:53;:::i;:::-;3903:16;;;;;3651:274;-1:-1:-1;;3651:274:1:o;4447:314::-;-1:-1:-1;;;;;4622:32:1;;4604:51;;4691:2;4686;4671:18;;4664:30;;;-1:-1:-1;;4711:44:1;;4736:18;;4728:6;4711:44;:::i;:::-;4703:52;4447:314;-1:-1:-1;;;;4447:314:1:o;4958:388::-;5115:2;5104:9;5097:21;5154:6;5149:2;5138:9;5134:18;5127:34;5211:6;5203;5198:2;5187:9;5183:18;5170:48;5267:1;5238:22;;;5262:2;5234:31;;;5227:42;;;;5330:2;5309:15;;;-1:-1:-1;;5305:29:1;5290:45;5286:54;;4958:388;-1:-1:-1;4958:388:1:o;5351:217::-;5498:2;5487:9;5480:21;5461:4;5518:44;5558:2;5547:9;5543:18;5535:6;5518:44;:::i;6994:340::-;7196:2;7178:21;;;7235:2;7215:18;;;7208:30;-1:-1:-1;;;7269:2:1;7254:18;;7247:46;7325:2;7310:18;;6994:340::o;10492:258::-;10564:1;10574:113;10588:6;10585:1;10582:13;10574:113;;;10664:11;;;10658:18;10645:11;;;10638:39;10610:2;10603:10;10574:113;;;10705:6;10702:1;10699:13;10696:48;;;-1:-1:-1;;10740:1:1;10722:16;;10715:27;10492:258::o;10755:131::-;-1:-1:-1;;;;;10830:31:1;;10820:42;;10810:70;;10876:1;10873;10866:12;10810:70;10755:131;:::o
Swarm Source
none
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.