Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 16 from a total of 16 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Manager | 11352876 | 1464 days ago | IN | 0 ETH | 0.00094604 | ||||
Set Contract | 11191436 | 1488 days ago | IN | 0 ETH | 0.01713695 | ||||
Set Contract | 11191435 | 1488 days ago | IN | 0 ETH | 0.0170211 | ||||
Set Contract | 11191435 | 1488 days ago | IN | 0 ETH | 0.01643535 | ||||
Set Contract | 11191435 | 1488 days ago | IN | 0 ETH | 0.0126855 | ||||
Set Contract | 11191435 | 1488 days ago | IN | 0 ETH | 0.0126843 | ||||
Set Contract | 11191435 | 1488 days ago | IN | 0 ETH | 0.017976 | ||||
Set Contract | 11191435 | 1488 days ago | IN | 0 ETH | 0.01374365 | ||||
Set Contract | 11191435 | 1488 days ago | IN | 0 ETH | 0.01315375 | ||||
Set Contract | 11191435 | 1488 days ago | IN | 0 ETH | 0.0116074 | ||||
Set Contract | 11191435 | 1488 days ago | IN | 0 ETH | 0.0103467 | ||||
Set Contract | 11191435 | 1488 days ago | IN | 0 ETH | 0.01111785 | ||||
Set Contract | 11191435 | 1488 days ago | IN | 0 ETH | 0.00969255 | ||||
Set Contract | 11191435 | 1488 days ago | IN | 0 ETH | 0.00663165 | ||||
Set Contract | 11191430 | 1488 days ago | IN | 0 ETH | 0.00691025 | ||||
Set Contract | 11191430 | 1488 days ago | IN | 0 ETH | 0.00251955 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
ContractRegistry
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-11-04 */ // File: contracts/spec_interfaces/IContractRegistry.sol // SPDX-License-Identifier: MIT pragma solidity 0.6.12; /// @title Contract registry contract interface /// @dev The contract registry holds Orbs PoS contracts and managers lists /// @dev The contract registry updates the managed contracts on changes in the contract list /// @dev Governance functions restricted to managers access the registry to retrieve the manager address /// @dev The contract registry represents the source of truth for Orbs Ethereum contracts /// @dev By tracking the registry events or query before interaction, one can access the up to date contracts interface IContractRegistry { event ContractAddressUpdated(string contractName, address addr, bool managedContract); event ManagerChanged(string role, address newManager); event ContractRegistryUpdated(address newContractRegistry); /* * External functions */ /// Updates the contracts address and emits a corresponding event /// @dev governance function called only by the migrationManager or registryAdmin /// @param contractName is the contract name, used to identify it /// @param addr is the contract updated address /// @param managedContract indicates whether the contract is managed by the registry and notified on changes function setContract(string calldata contractName, address addr, bool managedContract) external /* onlyAdminOrMigrationManager */; /// Returns the current address of the given contracts /// @param contractName is the contract name, used to identify it /// @return addr is the contract updated address function getContract(string calldata contractName) external view returns (address); /// Returns the list of contract addresses managed by the registry /// @dev Managed contracts are updated on changes in the registry contracts addresses /// @return addrs is the list of managed contracts function getManagedContracts() external view returns (address[] memory); /// Locks all the managed contracts /// @dev governance function called only by the migrationManager or registryAdmin /// @dev When set all onlyWhenActive functions will revert function lockContracts() external /* onlyAdminOrMigrationManager */; /// Unlocks all the managed contracts /// @dev governance function called only by the migrationManager or registryAdmin function unlockContracts() external /* onlyAdminOrMigrationManager */; /// Updates a manager address and emits a corresponding event /// @dev governance function called only by the registryAdmin /// @dev the managers list is a flexible list of role to the manager's address /// @param role is the managers' role name, for example "functionalManager" /// @param manager is the manager updated address function setManager(string calldata role, address manager) external /* onlyAdmin */; /// Returns the current address of the given manager /// @param role is the manager name, used to identify it /// @return addr is the manager updated address function getManager(string calldata role) external view returns (address); /// Sets a new contract registry to migrate to /// @dev governance function called only by the registryAdmin /// @dev updates the registry address record in all the managed contracts /// @dev by tracking the emitted ContractRegistryUpdated, tools can track the up to date contracts /// @param newRegistry is the new registry contract function setNewContractRegistry(IContractRegistry newRegistry) external /* onlyAdmin */; /// Returns the previous contract registry address /// @dev used when the setting the contract as a new registry to assure a valid registry /// @return previousContractRegistry is the previous contract registry function getPreviousContractRegistry() external view returns (address); } // File: contracts/spec_interfaces/ILockable.sol pragma solidity 0.6.12; /// @title lockable contract interface, allows to lock a contract interface ILockable { event Locked(); event Unlocked(); /// Locks the contract to external non-governance function calls /// @dev governance function called only by the migration manager or an admin /// @dev typically called by the registry contract upon locking all managed contracts /// @dev getters and migration functions remain active also for locked contracts /// @dev checked by the onlyWhenActive modifier function lock() external /* onlyMigrationManager */; /// Unlocks the contract /// @dev governance function called only by the migration manager or an admin /// @dev typically called by the registry contract upon unlocking all managed contracts function unlock() external /* onlyMigrationManager */; /// Returns the contract locking status /// @return isLocked is a bool indicating the contract is locked function isLocked() view external returns (bool); } // File: contracts/spec_interfaces/IContractRegistryAccessor.sol pragma solidity 0.6.12; interface IContractRegistryAccessor { /// Sets the contract registry address /// @dev governance function called only by an admin /// @param newRegistry is the new registry contract function setContractRegistry(IContractRegistry newRegistry) external /* onlyAdmin */; /// Returns the contract registry address /// @return contractRegistry is the contract registry address function getContractRegistry() external view returns (IContractRegistry contractRegistry); function setRegistryAdmin(address _registryAdmin) external /* onlyInitializationAdmin */; } // File: contracts/spec_interfaces/IManagedContract.sol pragma solidity 0.6.12; /// @title managed contract interface, used by the contracts registry to notify the contract on updates interface IManagedContract /* is ILockable, IContractRegistryAccessor, Initializable */ { /// Refreshes the address of the other contracts the contract interacts with /// @dev called by the registry contract upon an update of a contract in the registry function refreshContracts() external; } // File: @openzeppelin/contracts/GSN/Context.sol pragma solidity ^0.6.0; /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with GSN meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } // File: contracts/WithClaimableRegistryManagement.sol pragma solidity 0.6.12; /** * @title Claimable * @dev Extension for the Ownable contract, where the ownership needs to be claimed. * This allows the new owner to accept the transfer. */ contract WithClaimableRegistryManagement is Context { address private _registryAdmin; address private _pendingRegistryAdmin; event RegistryManagementTransferred(address indexed previousRegistryAdmin, address indexed newRegistryAdmin); /** * @dev Initializes the contract setting the deployer as the initial registryRegistryAdmin. */ constructor () internal { address msgSender = _msgSender(); _registryAdmin = msgSender; emit RegistryManagementTransferred(address(0), msgSender); } /** * @dev Returns the address of the current registryAdmin. */ function registryAdmin() public view returns (address) { return _registryAdmin; } /** * @dev Throws if called by any account other than the registryAdmin. */ modifier onlyRegistryAdmin() { require(isRegistryAdmin(), "WithClaimableRegistryManagement: caller is not the registryAdmin"); _; } /** * @dev Returns true if the caller is the current registryAdmin. */ function isRegistryAdmin() public view returns (bool) { return _msgSender() == _registryAdmin; } /** * @dev Leaves the contract without registryAdmin. It will not be possible to call * `onlyManager` functions anymore. Can only be called by the current registryAdmin. * * NOTE: Renouncing registryManagement will leave the contract without an registryAdmin, * thereby removing any functionality that is only available to the registryAdmin. */ function renounceRegistryManagement() public onlyRegistryAdmin { emit RegistryManagementTransferred(_registryAdmin, address(0)); _registryAdmin = address(0); } /** * @dev Transfers registryManagement of the contract to a new account (`newManager`). */ function _transferRegistryManagement(address newRegistryAdmin) internal { require(newRegistryAdmin != address(0), "RegistryAdmin: new registryAdmin is the zero address"); emit RegistryManagementTransferred(_registryAdmin, newRegistryAdmin); _registryAdmin = newRegistryAdmin; } /** * @dev Modifier throws if called by any account other than the pendingManager. */ modifier onlyPendingRegistryAdmin() { require(msg.sender == _pendingRegistryAdmin, "Caller is not the pending registryAdmin"); _; } /** * @dev Allows the current registryAdmin to set the pendingManager address. * @param newRegistryAdmin The address to transfer registryManagement to. */ function transferRegistryManagement(address newRegistryAdmin) public onlyRegistryAdmin { _pendingRegistryAdmin = newRegistryAdmin; } /** * @dev Allows the _pendingRegistryAdmin address to finalize the transfer. */ function claimRegistryManagement() external onlyPendingRegistryAdmin { _transferRegistryManagement(_pendingRegistryAdmin); _pendingRegistryAdmin = address(0); } /** * @dev Returns the current pendingRegistryAdmin */ function pendingRegistryAdmin() public view returns (address) { return _pendingRegistryAdmin; } } // File: contracts/Initializable.sol pragma solidity 0.6.12; contract Initializable { address private _initializationAdmin; event InitializationComplete(); /// Constructor /// Sets the initializationAdmin to the contract deployer /// The initialization admin may call any manager only function until initializationComplete constructor() public{ _initializationAdmin = msg.sender; } modifier onlyInitializationAdmin() { require(msg.sender == initializationAdmin(), "sender is not the initialization admin"); _; } /* * External functions */ /// Returns the initializationAdmin address function initializationAdmin() public view returns (address) { return _initializationAdmin; } /// Finalizes the initialization and revokes the initializationAdmin role function initializationComplete() external onlyInitializationAdmin { _initializationAdmin = address(0); emit InitializationComplete(); } /// Checks if the initialization was completed function isInitializationComplete() public view returns (bool) { return _initializationAdmin == address(0); } } // File: contracts/ContractRegistry.sol pragma solidity 0.6.12; /// @title Contract registry /// @dev The contract registry holds Orbs PoS contracts and managers lists /// @dev The contract registry updates the managed contracts on changes in the contract list /// @dev Governance functions restricted to managers access the registry to retrieve the manager address /// @dev The contract registry represents the source of truth for Orbs Ethereum contracts /// @dev By tracking the registry events or query before interaction, one can access the up to date contracts contract ContractRegistry is IContractRegistry, Initializable, WithClaimableRegistryManagement { address previousContractRegistry; mapping(string => address) contracts; address[] managedContractAddresses; mapping(string => address) managers; /// Constructor /// @param _previousContractRegistry is the previous contract registry address /// @param registryAdmin is the registry contract admin address constructor(address _previousContractRegistry, address registryAdmin) public { previousContractRegistry = _previousContractRegistry; _transferRegistryManagement(registryAdmin); } modifier onlyAdmin { require(msg.sender == registryAdmin() || msg.sender == initializationAdmin(), "sender is not an admin (registryAdmin or initializationAdmin when initialization in progress)"); _; } modifier onlyAdminOrMigrationManager { require(msg.sender == registryAdmin() || msg.sender == initializationAdmin() || msg.sender == managers["migrationManager"], "sender is not an admin (registryAdmin or initializationAdmin when initialization in progress) and not the migration manager"); _; } /* * External functions */ /// Updates the contracts address and emits a corresponding event /// @dev governance function called only by the migrationManager or registryAdmin /// @param contractName is the contract name, used to identify it /// @param addr is the contract updated address /// @param managedContract indicates whether the contract is managed by the registry and notified on changes function setContract(string calldata contractName, address addr, bool managedContract) external override onlyAdminOrMigrationManager { require(!managedContract || addr != address(0), "managed contract may not have address(0)"); removeManagedContract(contracts[contractName]); contracts[contractName] = addr; if (managedContract) { addManagedContract(addr); } emit ContractAddressUpdated(contractName, addr, managedContract); notifyOnContractsChange(); } /// Returns the current address of the given contracts /// @param contractName is the contract name, used to identify it /// @return addr is the contract updated address function getContract(string calldata contractName) external override view returns (address) { return contracts[contractName]; } /// Returns the list of contract addresses managed by the registry /// @dev Managed contracts are updated on changes in the registry contracts addresses /// @return addrs is the list of managed contracts function getManagedContracts() external override view returns (address[] memory) { return managedContractAddresses; } /// Locks all the managed contracts /// @dev governance function called only by the migrationManager or registryAdmin /// @dev When set all onlyWhenActive functions will revert function lockContracts() external override onlyAdminOrMigrationManager { for (uint i = 0; i < managedContractAddresses.length; i++) { ILockable(managedContractAddresses[i]).lock(); } } /// Unlocks all the managed contracts /// @dev governance function called only by the migrationManager or registryAdmin function unlockContracts() external override onlyAdminOrMigrationManager { for (uint i = 0; i < managedContractAddresses.length; i++) { ILockable(managedContractAddresses[i]).unlock(); } } /// Updates a manager address and emits a corresponding event /// @dev governance function called only by the registryAdmin /// @dev the managers list is a flexible list of role to the manager's address /// @param role is the managers' role name, for example "functionalManager" /// @param manager is the manager updated address function setManager(string calldata role, address manager) external override onlyAdmin { managers[role] = manager; emit ManagerChanged(role, manager); } /// Returns the current address of the given manager /// @param role is the manager name, used to identify it /// @return addr is the manager updated address function getManager(string calldata role) external override view returns (address) { return managers[role]; } /// Sets a new contract registry to migrate to /// @dev governance function called only by the registryAdmin /// @dev updates the registry address record in all the managed contracts /// @dev by tracking the emitted ContractRegistryUpdated, tools can track the up to date contracts /// @param newRegistry is the new registry contract function setNewContractRegistry(IContractRegistry newRegistry) external override onlyAdmin { for (uint i = 0; i < managedContractAddresses.length; i++) { IContractRegistryAccessor(managedContractAddresses[i]).setContractRegistry(newRegistry); IManagedContract(managedContractAddresses[i]).refreshContracts(); } emit ContractRegistryUpdated(address(newRegistry)); } /// Returns the previous contract registry address /// @dev used when the setting the contract as a new registry to assure a valid registry /// @return previousContractRegistry is the previous contract registry function getPreviousContractRegistry() external override view returns (address) { return previousContractRegistry; } /* * Private methods */ /// Notifies the managed contracts on a change in a contract address /// @dev invokes the refreshContracts() function in each contract that queries the relevant contract addresses function notifyOnContractsChange() private { for (uint i = 0; i < managedContractAddresses.length; i++) { IManagedContract(managedContractAddresses[i]).refreshContracts(); } } /// Adds a new managed contract address to the managed contracts list function addManagedContract(address addr) private { managedContractAddresses.push(addr); } /// Removes a managed contract address from the managed contracts list function removeManagedContract(address addr) private { uint length = managedContractAddresses.length; for (uint i = 0; i < length; i++) { if (managedContractAddresses[i] == addr) { if (i != length - 1) { managedContractAddresses[i] = managedContractAddresses[length-1]; } managedContractAddresses.pop(); length--; } } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_previousContractRegistry","type":"address"},{"internalType":"address","name":"registryAdmin","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"contractName","type":"string"},{"indexed":false,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"bool","name":"managedContract","type":"bool"}],"name":"ContractAddressUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newContractRegistry","type":"address"}],"name":"ContractRegistryUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"InitializationComplete","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"role","type":"string"},{"indexed":false,"internalType":"address","name":"newManager","type":"address"}],"name":"ManagerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousRegistryAdmin","type":"address"},{"indexed":true,"internalType":"address","name":"newRegistryAdmin","type":"address"}],"name":"RegistryManagementTransferred","type":"event"},{"inputs":[],"name":"claimRegistryManagement","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"contractName","type":"string"}],"name":"getContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getManagedContracts","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"role","type":"string"}],"name":"getManager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPreviousContractRegistry","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initializationAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initializationComplete","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isInitializationComplete","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRegistryAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockContracts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pendingRegistryAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registryAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceRegistryManagement","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"contractName","type":"string"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"managedContract","type":"bool"}],"name":"setContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"role","type":"string"},{"internalType":"address","name":"manager","type":"address"}],"name":"setManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IContractRegistry","name":"newRegistry","type":"address"}],"name":"setNewContractRegistry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRegistryAdmin","type":"address"}],"name":"transferRegistryManagement","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unlockContracts","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b5060405162001819380380620018198339818101604052604081101561003557600080fd5b508051602090910151600080546001600160a01b031916331781556100586100c0565b600180546001600160a01b0319166001600160a01b03831690811790915560405191925090600090600080516020620017f9833981519152908290a350600380546001600160a01b0319166001600160a01b0384161790556100b9816100c4565b5050610155565b3390565b6001600160a01b03811661010a5760405162461bcd60e51b8152600401808060200182810382526034815260200180620017c56034913960400191505060405180910390fd5b6001546040516001600160a01b03808416921690600080516020620017f983398151915290600090a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b61166080620001656000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c806348106fe3116100b257806374c16b2311610081578063acdb8e0411610066578063acdb8e04146103ba578063d0d58748146103c2578063d25235261461043b57610136565b806374c16b231461035a578063854799161461036257610136565b806348106fe31461031c5780635f94cd9c146103245780636ffc1e681461032c5780637225a4bc1461033457610136565b80632a1fac7211610109578063333df154116100ee578063333df15414610223578063358177731461022b57806337b6da131461029b57610136565b80632a1fac72146102135780632e40173c1461021b57610136565b8063078cbb7c1461013b5780631a0b2c4f1461015f5780631ee441e91461017b5780632987cea0146101eb575b600080fd5b610143610443565b604080516001600160a01b039092168252519081900360200190f35b610167610452565b604080519115158252519081900360200190f35b6101436004803603602081101561019157600080fd5b8101906020810181356401000000008111156101ac57600080fd5b8201836020820111156101be57600080fd5b803590602001918460018302840111640100000000831117156101e057600080fd5b509092509050610478565b6102116004803603602081101561020157600080fd5b50356001600160a01b03166104b2565b005b610211610549565b61021161060b565b61014361078f565b6101436004803603602081101561024157600080fd5b81019060208101813564010000000081111561025c57600080fd5b82018360208201111561026e57600080fd5b8035906020019184600183028401116401000000008311171561029057600080fd5b50909250905061079e565b610211600480360360608110156102b157600080fd5b8101906020810181356401000000008111156102cc57600080fd5b8201836020820111156102de57600080fd5b8035906020019184600183028401116401000000008311171561030057600080fd5b91935091506001600160a01b03813516906020013515156107d8565b610167610a74565b610143610a84565b610211610a93565b6102116004803603602081101561034a57600080fd5b50356001600160a01b0316610c14565b610143610e17565b61036a610e26565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156103a657818101518382015260200161038e565b505050509050019250505060405180910390f35b610211610e88565b610211600480360360408110156103d857600080fd5b8101906020810181356401000000008111156103f357600080fd5b82018360208201111561040557600080fd5b8035906020019184600183028401116401000000008311171561042757600080fd5b9193509150356001600160a01b0316610f47565b6102116110bf565b6003546001600160a01b031690565b6001546000906001600160a01b0316610469611161565b6001600160a01b031614905090565b6000600683836040518083838082843791909101948552505060405192839003602001909220546001600160a01b03169250505092915050565b6104ba610452565b61050f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260408152602001806115eb6040913960400191505060405180910390fd5b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b61055161078f565b6001600160a01b0316336001600160a01b0316146105ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806115916026913960400191505060405180910390fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001681556040517f2a2b3ea974fb057582c3b210ef8b5f81492d15673f49d4384bfa3b896a964c3c9190a1565b610613610e17565b6001600160a01b0316336001600160a01b0316148061064a575061063561078f565b6001600160a01b0316336001600160a01b0316145b806106985750604080517f6d6967726174696f6e4d616e6167657200000000000000000000000000000000815260066010820152905190819003603001902054336001600160a01b03909116145b6106ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252607b8152602001806114b9607b913960800191505060405180910390fd5b60005b60055481101561078c576005818154811061070757fe5b6000918252602082200154604080517ff83d08ba00000000000000000000000000000000000000000000000000000000815290516001600160a01b039092169263f83d08ba9260048084019382900301818387803b15801561076857600080fd5b505af115801561077c573d6000803e3d6000fd5b5050600190920191506106f09050565b50565b6000546001600160a01b031690565b6000600483836040518083838082843791909101948552505060405192839003602001909220546001600160a01b03169250505092915050565b6107e0610e17565b6001600160a01b0316336001600160a01b03161480610817575061080261078f565b6001600160a01b0316336001600160a01b0316145b806108655750604080517f6d6967726174696f6e4d616e6167657200000000000000000000000000000000815260066010820152905190819003603001902054336001600160a01b03909116145b6108ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252607b8152602001806114b9607b913960800191505060405180910390fd5b8015806108cf57506001600160a01b03821615155b610924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061146a6028913960400191505060405180910390fd5b61095e600485856040518083838082843791909101948552505060405192839003602001909220546001600160a01b031691506111659050565b8160048585604051808383808284379190910194855250506040519283900360200190922080546001600160a01b03949094167fffffffffffffffffffffffff000000000000000000000000000000000000000090941693909317909255505080156109cd576109cd8261128d565b7faf299646760f6fbf25862e53df5b06cf99239f0ae9cfca9ed96d7b459affff20848484846040518080602001846001600160a01b0316815260200183151581526020018281038252868682818152602001925080828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690920182900397509095505050505050a1610a6e6112f7565b50505050565b6000546001600160a01b03161590565b6002546001600160a01b031690565b610a9b610e17565b6001600160a01b0316336001600160a01b03161480610ad25750610abd61078f565b6001600160a01b0316336001600160a01b0316145b80610b205750604080517f6d6967726174696f6e4d616e6167657200000000000000000000000000000000815260066010820152905190819003603001902054336001600160a01b03909116145b610b75576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252607b8152602001806114b9607b913960800191505060405180910390fd5b60005b60055481101561078c5760058181548110610b8f57fe5b6000918252602082200154604080517fa69df4b500000000000000000000000000000000000000000000000000000000815290516001600160a01b039092169263a69df4b59260048084019382900301818387803b158015610bf057600080fd5b505af1158015610c04573d6000803e3d6000fd5b505060019092019150610b789050565b610c1c610e17565b6001600160a01b0316336001600160a01b03161480610c535750610c3e61078f565b6001600160a01b0316336001600160a01b0316145b610ca8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252605d815260200180611534605d913960600191505060405180910390fd5b60005b600554811015610dd75760058181548110610cc257fe5b6000918252602082200154604080517ffcd13d650000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301529151919092169263fcd13d65926024808201939182900301818387803b158015610d2d57600080fd5b505af1158015610d41573d6000803e3d6000fd5b5050505060058181548110610d5257fe5b6000918252602082200154604080517feec0701f00000000000000000000000000000000000000000000000000000000815290516001600160a01b039092169263eec0701f9260048084019382900301818387803b158015610db357600080fd5b505af1158015610dc7573d6000803e3d6000fd5b505060019092019150610cab9050565b50604080516001600160a01b038316815290517fb3a6e7c81ebdb0cf9bf28d5ddf6678ded8d73b44f2eee06ca3974dbb9f41ce7e9181900360200190a150565b6001546001600160a01b031690565b60606005805480602002602001604051908101604052809291908181526020018280548015610e7e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e60575b5050505050905090565b610e90610452565b610ee5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260408152602001806115eb6040913960400191505060405180910390fd5b6001546040516000916001600160a01b0316907f1f5f028be638d6a0e3b8d56fd05b812ce325cc8dc73cdb0e16df94d6b2725c2e908390a3600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b610f4f610e17565b6001600160a01b0316336001600160a01b03161480610f865750610f7161078f565b6001600160a01b0316336001600160a01b0316145b610fdb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252605d815260200180611534605d913960600191505060405180910390fd5b806006848460405180838380828437919091019485525050604080516020948190038501812080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0397881617905594861693850193909352505080825281018390527f325468706c8d44b035396cba93fd6c8dabe53c1f8b51dd2634c62ebe9ddb0de9908490849084908060608101858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909201829003965090945050505050a1505050565b6002546001600160a01b03163314611122576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806114926027913960400191505060405180910390fd5b600254611137906001600160a01b0316611396565b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b3390565b60055460005b8181101561128857826001600160a01b03166005828154811061118a57fe5b6000918252602090912001546001600160a01b031614156112805760018203811461121457600560018303815481106111bf57fe5b600091825260209091200154600580546001600160a01b0390921691839081106111e557fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b600580548061121f57fe5b60008281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905590810190915591909101905b60010161116b565b505050565b600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60005b60055481101561078c576005818154811061131157fe5b6000918252602082200154604080517feec0701f00000000000000000000000000000000000000000000000000000000815290516001600160a01b039092169263eec0701f9260048084019382900301818387803b15801561137257600080fd5b505af1158015611386573d6000803e3d6000fd5b5050600190920191506112fa9050565b6001600160a01b0381166113f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260348152602001806115b76034913960400191505060405180910390fd5b6001546040516001600160a01b038084169216907f1f5f028be638d6a0e3b8d56fd05b812ce325cc8dc73cdb0e16df94d6b2725c2e90600090a3600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905556fe6d616e6167656420636f6e7472616374206d6179206e6f742068617665206164647265737328302943616c6c6572206973206e6f74207468652070656e64696e6720726567697374727941646d696e73656e646572206973206e6f7420616e2061646d696e2028726567697374727941646d696e206f7220696e697469616c697a6174696f6e41646d696e207768656e20696e697469616c697a6174696f6e20696e2070726f67726573732920616e64206e6f7420746865206d6967726174696f6e206d616e6167657273656e646572206973206e6f7420616e2061646d696e2028726567697374727941646d696e206f7220696e697469616c697a6174696f6e41646d696e207768656e20696e697469616c697a6174696f6e20696e2070726f67726573732973656e646572206973206e6f742074686520696e697469616c697a6174696f6e2061646d696e526567697374727941646d696e3a206e657720726567697374727941646d696e20697320746865207a65726f206164647265737357697468436c61696d61626c6552656769737472794d616e6167656d656e743a2063616c6c6572206973206e6f742074686520726567697374727941646d696ea2646970667358221220d7b48cc81d2497958d37681963f966b7e213d41fdc55f74f5a207d4c2f0235d864736f6c634300060c0033526567697374727941646d696e3a206e657720726567697374727941646d696e20697320746865207a65726f20616464726573731f5f028be638d6a0e3b8d56fd05b812ce325cc8dc73cdb0e16df94d6b2725c2e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1fd5233e60e7ef797025fe9dd066d60d59bcb92
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101365760003560e01c806348106fe3116100b257806374c16b2311610081578063acdb8e0411610066578063acdb8e04146103ba578063d0d58748146103c2578063d25235261461043b57610136565b806374c16b231461035a578063854799161461036257610136565b806348106fe31461031c5780635f94cd9c146103245780636ffc1e681461032c5780637225a4bc1461033457610136565b80632a1fac7211610109578063333df154116100ee578063333df15414610223578063358177731461022b57806337b6da131461029b57610136565b80632a1fac72146102135780632e40173c1461021b57610136565b8063078cbb7c1461013b5780631a0b2c4f1461015f5780631ee441e91461017b5780632987cea0146101eb575b600080fd5b610143610443565b604080516001600160a01b039092168252519081900360200190f35b610167610452565b604080519115158252519081900360200190f35b6101436004803603602081101561019157600080fd5b8101906020810181356401000000008111156101ac57600080fd5b8201836020820111156101be57600080fd5b803590602001918460018302840111640100000000831117156101e057600080fd5b509092509050610478565b6102116004803603602081101561020157600080fd5b50356001600160a01b03166104b2565b005b610211610549565b61021161060b565b61014361078f565b6101436004803603602081101561024157600080fd5b81019060208101813564010000000081111561025c57600080fd5b82018360208201111561026e57600080fd5b8035906020019184600183028401116401000000008311171561029057600080fd5b50909250905061079e565b610211600480360360608110156102b157600080fd5b8101906020810181356401000000008111156102cc57600080fd5b8201836020820111156102de57600080fd5b8035906020019184600183028401116401000000008311171561030057600080fd5b91935091506001600160a01b03813516906020013515156107d8565b610167610a74565b610143610a84565b610211610a93565b6102116004803603602081101561034a57600080fd5b50356001600160a01b0316610c14565b610143610e17565b61036a610e26565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156103a657818101518382015260200161038e565b505050509050019250505060405180910390f35b610211610e88565b610211600480360360408110156103d857600080fd5b8101906020810181356401000000008111156103f357600080fd5b82018360208201111561040557600080fd5b8035906020019184600183028401116401000000008311171561042757600080fd5b9193509150356001600160a01b0316610f47565b6102116110bf565b6003546001600160a01b031690565b6001546000906001600160a01b0316610469611161565b6001600160a01b031614905090565b6000600683836040518083838082843791909101948552505060405192839003602001909220546001600160a01b03169250505092915050565b6104ba610452565b61050f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260408152602001806115eb6040913960400191505060405180910390fd5b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b61055161078f565b6001600160a01b0316336001600160a01b0316146105ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806115916026913960400191505060405180910390fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001681556040517f2a2b3ea974fb057582c3b210ef8b5f81492d15673f49d4384bfa3b896a964c3c9190a1565b610613610e17565b6001600160a01b0316336001600160a01b0316148061064a575061063561078f565b6001600160a01b0316336001600160a01b0316145b806106985750604080517f6d6967726174696f6e4d616e6167657200000000000000000000000000000000815260066010820152905190819003603001902054336001600160a01b03909116145b6106ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252607b8152602001806114b9607b913960800191505060405180910390fd5b60005b60055481101561078c576005818154811061070757fe5b6000918252602082200154604080517ff83d08ba00000000000000000000000000000000000000000000000000000000815290516001600160a01b039092169263f83d08ba9260048084019382900301818387803b15801561076857600080fd5b505af115801561077c573d6000803e3d6000fd5b5050600190920191506106f09050565b50565b6000546001600160a01b031690565b6000600483836040518083838082843791909101948552505060405192839003602001909220546001600160a01b03169250505092915050565b6107e0610e17565b6001600160a01b0316336001600160a01b03161480610817575061080261078f565b6001600160a01b0316336001600160a01b0316145b806108655750604080517f6d6967726174696f6e4d616e6167657200000000000000000000000000000000815260066010820152905190819003603001902054336001600160a01b03909116145b6108ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252607b8152602001806114b9607b913960800191505060405180910390fd5b8015806108cf57506001600160a01b03821615155b610924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061146a6028913960400191505060405180910390fd5b61095e600485856040518083838082843791909101948552505060405192839003602001909220546001600160a01b031691506111659050565b8160048585604051808383808284379190910194855250506040519283900360200190922080546001600160a01b03949094167fffffffffffffffffffffffff000000000000000000000000000000000000000090941693909317909255505080156109cd576109cd8261128d565b7faf299646760f6fbf25862e53df5b06cf99239f0ae9cfca9ed96d7b459affff20848484846040518080602001846001600160a01b0316815260200183151581526020018281038252868682818152602001925080828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690920182900397509095505050505050a1610a6e6112f7565b50505050565b6000546001600160a01b03161590565b6002546001600160a01b031690565b610a9b610e17565b6001600160a01b0316336001600160a01b03161480610ad25750610abd61078f565b6001600160a01b0316336001600160a01b0316145b80610b205750604080517f6d6967726174696f6e4d616e6167657200000000000000000000000000000000815260066010820152905190819003603001902054336001600160a01b03909116145b610b75576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252607b8152602001806114b9607b913960800191505060405180910390fd5b60005b60055481101561078c5760058181548110610b8f57fe5b6000918252602082200154604080517fa69df4b500000000000000000000000000000000000000000000000000000000815290516001600160a01b039092169263a69df4b59260048084019382900301818387803b158015610bf057600080fd5b505af1158015610c04573d6000803e3d6000fd5b505060019092019150610b789050565b610c1c610e17565b6001600160a01b0316336001600160a01b03161480610c535750610c3e61078f565b6001600160a01b0316336001600160a01b0316145b610ca8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252605d815260200180611534605d913960600191505060405180910390fd5b60005b600554811015610dd75760058181548110610cc257fe5b6000918252602082200154604080517ffcd13d650000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301529151919092169263fcd13d65926024808201939182900301818387803b158015610d2d57600080fd5b505af1158015610d41573d6000803e3d6000fd5b5050505060058181548110610d5257fe5b6000918252602082200154604080517feec0701f00000000000000000000000000000000000000000000000000000000815290516001600160a01b039092169263eec0701f9260048084019382900301818387803b158015610db357600080fd5b505af1158015610dc7573d6000803e3d6000fd5b505060019092019150610cab9050565b50604080516001600160a01b038316815290517fb3a6e7c81ebdb0cf9bf28d5ddf6678ded8d73b44f2eee06ca3974dbb9f41ce7e9181900360200190a150565b6001546001600160a01b031690565b60606005805480602002602001604051908101604052809291908181526020018280548015610e7e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e60575b5050505050905090565b610e90610452565b610ee5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260408152602001806115eb6040913960400191505060405180910390fd5b6001546040516000916001600160a01b0316907f1f5f028be638d6a0e3b8d56fd05b812ce325cc8dc73cdb0e16df94d6b2725c2e908390a3600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b610f4f610e17565b6001600160a01b0316336001600160a01b03161480610f865750610f7161078f565b6001600160a01b0316336001600160a01b0316145b610fdb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252605d815260200180611534605d913960600191505060405180910390fd5b806006848460405180838380828437919091019485525050604080516020948190038501812080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0397881617905594861693850193909352505080825281018390527f325468706c8d44b035396cba93fd6c8dabe53c1f8b51dd2634c62ebe9ddb0de9908490849084908060608101858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909201829003965090945050505050a1505050565b6002546001600160a01b03163314611122576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806114926027913960400191505060405180910390fd5b600254611137906001600160a01b0316611396565b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b3390565b60055460005b8181101561128857826001600160a01b03166005828154811061118a57fe5b6000918252602090912001546001600160a01b031614156112805760018203811461121457600560018303815481106111bf57fe5b600091825260209091200154600580546001600160a01b0390921691839081106111e557fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b600580548061121f57fe5b60008281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905590810190915591909101905b60010161116b565b505050565b600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60005b60055481101561078c576005818154811061131157fe5b6000918252602082200154604080517feec0701f00000000000000000000000000000000000000000000000000000000815290516001600160a01b039092169263eec0701f9260048084019382900301818387803b15801561137257600080fd5b505af1158015611386573d6000803e3d6000fd5b5050600190920191506112fa9050565b6001600160a01b0381166113f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260348152602001806115b76034913960400191505060405180910390fd5b6001546040516001600160a01b038084169216907f1f5f028be638d6a0e3b8d56fd05b812ce325cc8dc73cdb0e16df94d6b2725c2e90600090a3600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905556fe6d616e6167656420636f6e7472616374206d6179206e6f742068617665206164647265737328302943616c6c6572206973206e6f74207468652070656e64696e6720726567697374727941646d696e73656e646572206973206e6f7420616e2061646d696e2028726567697374727941646d696e206f7220696e697469616c697a6174696f6e41646d696e207768656e20696e697469616c697a6174696f6e20696e2070726f67726573732920616e64206e6f7420746865206d6967726174696f6e206d616e6167657273656e646572206973206e6f7420616e2061646d696e2028726567697374727941646d696e206f7220696e697469616c697a6174696f6e41646d696e207768656e20696e697469616c697a6174696f6e20696e2070726f67726573732973656e646572206973206e6f742074686520696e697469616c697a6174696f6e2061646d696e526567697374727941646d696e3a206e657720726567697374727941646d696e20697320746865207a65726f206164647265737357697468436c61696d61626c6552656769737472794d616e6167656d656e743a2063616c6c6572206973206e6f742074686520726567697374727941646d696ea2646970667358221220d7b48cc81d2497958d37681963f966b7e213d41fdc55f74f5a207d4c2f0235d864736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1fd5233e60e7ef797025fe9dd066d60d59bcb92
-----Decoded View---------------
Arg [0] : _previousContractRegistry (address): 0x0000000000000000000000000000000000000000
Arg [1] : registryAdmin (address): 0xf1fD5233E60E7Ef797025FE9DD066d60d59BcB92
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [1] : 000000000000000000000000f1fd5233e60e7ef797025fe9dd066d60d59bcb92
Deployed Bytecode Sourcemap
12631:6408:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17879:121;;;:::i;:::-;;;;-1:-1:-1;;;;;17879:121:0;;;;;;;;;;;;;;8600:110;;;:::i;:::-;;;;;;;;;;;;;;;;;;16785:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16785:114:0;;-1:-1:-1;16785:114:0;-1:-1:-1;16785:114:0;:::i;10161:146::-;;;;;;;;;;;;;;;;-1:-1:-1;10161:146:0;-1:-1:-1;;;;;10161:146:0;;:::i;:::-;;11687:159;;;:::i;15556:196::-;;;:::i;11492:107::-;;;:::i;14879:132::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14879:132:0;;-1:-1:-1;14879:132:0;-1:-1:-1;14879:132:0;:::i;14209:480::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14209:480:0;-1:-1:-1;;;;;;14209:480:0;;;;;;;;;;:::i;11906:123::-;;;:::i;10675:110::-;;;:::i;15888:200::-;;;:::i;17264:383::-;;;;;;;;;;;;;;;;-1:-1:-1;17264:383:0;-1:-1:-1;;;;;17264:383:0;;:::i;8154:95::-;;;:::i;15236:122::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9104:182;;;:::i;16447:160::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16447:160:0;-1:-1:-1;16447:160:0;-1:-1:-1;;;;;16447:160:0;;:::i;10413:183::-;;;:::i;17879:121::-;17971:24;;-1:-1:-1;;;;;17971:24:0;17879:121;:::o;8600:110::-;8688:14;;8648:4;;-1:-1:-1;;;;;8688:14:0;8672:12;:10;:12::i;:::-;-1:-1:-1;;;;;8672:30:0;;8665:37;;8600:110;:::o;16785:114::-;16859:7;16880:8;16889:4;;16880:14;;;;;;;;;;;;;;;;-1:-1:-1;;16880:14:0;;;;;;;;;;;;-1:-1:-1;;;;;16880:14:0;;-1:-1:-1;;;16785:114:0;;;;:::o;10161:146::-;8398:17;:15;:17::i;:::-;8390:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10259:21:::1;:40:::0;;;::::1;-1:-1:-1::0;;;;;10259:40:0;;;::::1;::::0;;;::::1;::::0;;10161:146::o;11687:159::-;11305:21;:19;:21::i;:::-;-1:-1:-1;;;;;11291:35:0;:10;-1:-1:-1;;;;;11291:35:0;;11283:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11796:1:::1;11765:33:::0;;;::::1;::::0;;11814:24:::1;::::0;::::1;::::0;11796:1;11814:24:::1;11687:159::o:0;15556:196::-;13532:15;:13;:15::i;:::-;-1:-1:-1;;;;;13518:29:0;:10;-1:-1:-1;;;;;13518:29:0;;:68;;;;13565:21;:19;:21::i;:::-;-1:-1:-1;;;;;13551:35:0;:10;-1:-1:-1;;;;;13551:35:0;;13518:68;:114;;;-1:-1:-1;13604:28:0;;;;;;:8;:28;;;;;;;;;;;;;;;13590:10;-1:-1:-1;;;;;13604:28:0;;;13590:42;13518:114;13510:250;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15637:6:::1;15632:116;15653:24;:31:::0;15649:35;::::1;15632:116;;;15707:24;15732:1;15707:27;;;;;;;;;::::0;;;::::1;::::0;;::::1;::::0;15697:45:::1;::::0;;;;;;;-1:-1:-1;;;;;15707:27:0;;::::1;::::0;15697:43:::1;::::0;:45:::1;::::0;;::::1;::::0;;;;;;15707:27;;15697:45;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;15686:3:0::1;::::0;;::::1;::::0;-1:-1:-1;15632:116:0::1;::::0;-1:-1:-1;15632:116:0::1;;;15556:196::o:0;11492:107::-;11544:7;11571:20;-1:-1:-1;;;;;11571:20:0;11492:107;:::o;14879:132::-;14962:7;14983:9;14993:12;;14983:23;;;;;;;;;;;;;;;;-1:-1:-1;;14983:23:0;;;;;;;;;;;;-1:-1:-1;;;;;14983:23:0;;-1:-1:-1;;;14879:132:0;;;;:::o;14209:480::-;13532:15;:13;:15::i;:::-;-1:-1:-1;;;;;13518:29:0;:10;-1:-1:-1;;;;;13518:29:0;;:68;;;;13565:21;:19;:21::i;:::-;-1:-1:-1;;;;;13551:35:0;:10;-1:-1:-1;;;;;13551:35:0;;13518:68;:114;;;-1:-1:-1;13604:28:0;;;;;;:8;:28;;;;;;;;;;;;;;;13590:10;-1:-1:-1;;;;;13604:28:0;;;13590:42;13518:114;13510:250;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14356:15:::1;14355:16;:38;;;-1:-1:-1::0;;;;;;14375:18:0;::::1;::::0;::::1;14355:38;14347:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14443:46;14465:9;14475:12;;14465:23;;;;;;;;;::::0;;;::::1;::::0;;;-1:-1:-1;;14465:23:0::1;::::0;;;;;::::1;::::0;;;;;-1:-1:-1;;;;;14465:23:0::1;::::0;-1:-1:-1;14443:21:0::1;::::0;-1:-1:-1;14443:46:0:i:1;:::-;14520:4;14494:9;14504:12;;14494:23;;;;;;;;;::::0;;;::::1;::::0;;;-1:-1:-1;;14494:23:0::1;::::0;;;;;::::1;::::0;;;;:30;;-1:-1:-1;;;;;14494:30:0;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;;14529:57:0;::::1;;;14556:24;14575:4;14556:18;:24::i;:::-;14595:59;14618:12;;14632:4;14638:15;14595:59;;;;;;;-1:-1:-1::0;;;;;14595:59:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;;::::1;::::0;-1:-1:-1;14595:59:0;;-1:-1:-1;;;;;;14595:59:0::1;14659:25;:23;:25::i;:::-;14209:480:::0;;;;:::o;11906:123::-;11963:4;11987:20;-1:-1:-1;;;;;11987:20:0;:34;11906:123;:::o;10675:110::-;10754:21;;-1:-1:-1;;;;;10754:21:0;10675:110;:::o;15888:200::-;13532:15;:13;:15::i;:::-;-1:-1:-1;;;;;13518:29:0;:10;-1:-1:-1;;;;;13518:29:0;;:68;;;;13565:21;:19;:21::i;:::-;-1:-1:-1;;;;;13551:35:0;:10;-1:-1:-1;;;;;13551:35:0;;13518:68;:114;;;-1:-1:-1;13604:28:0;;;;;;:8;:28;;;;;;;;;;;;;;;13590:10;-1:-1:-1;;;;;13604:28:0;;;13590:42;13518:114;13510:250;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15971:6:::1;15966:118;15987:24;:31:::0;15983:35;::::1;15966:118;;;16041:24;16066:1;16041:27;;;;;;;;;::::0;;;::::1;::::0;;::::1;::::0;16031:47:::1;::::0;;;;;;;-1:-1:-1;;;;;16041:27:0;;::::1;::::0;16031:45:::1;::::0;:47:::1;::::0;;::::1;::::0;;;;;;16041:27;;16031:47;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;16020:3:0::1;::::0;;::::1;::::0;-1:-1:-1;15966:118:0::1;::::0;-1:-1:-1;15966:118:0::1;17264:383:::0;13298:15;:13;:15::i;:::-;-1:-1:-1;;;;;13284:29:0;:10;-1:-1:-1;;;;;13284:29:0;;:68;;;;13331:21;:19;:21::i;:::-;-1:-1:-1;;;;;13317:35:0;:10;-1:-1:-1;;;;;13317:35:0;;13284:68;13276:174;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17365:6:::1;17360:228;17381:24;:31:::0;17377:35;::::1;17360:228;;;17451:24;17476:1;17451:27;;;;;;;;;::::0;;;::::1;::::0;;::::1;::::0;17425:87:::1;::::0;;;;;-1:-1:-1;;;;;17425:87:0;;::::1;;::::0;::::1;::::0;;;17451:27;;;::::1;::::0;17425:74:::1;::::0;:87;;;;;;;;;;;17451:27;;17425:87;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;17535:24;17560:1;17535:27;;;;;;;;;::::0;;;::::1;::::0;;::::1;::::0;17518:64:::1;::::0;;;;;;;-1:-1:-1;;;;;17535:27:0;;::::1;::::0;17518:62:::1;::::0;:64:::1;::::0;;::::1;::::0;;;;;;17535:27;;17518:64;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;17414:3:0::1;::::0;;::::1;::::0;-1:-1:-1;17360:228:0::1;::::0;-1:-1:-1;17360:228:0::1;;-1:-1:-1::0;17597:45:0::1;::::0;;-1:-1:-1;;;;;17597:45:0;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;::::1;17264:383:::0;:::o;8154:95::-;8227:14;;-1:-1:-1;;;;;8227:14:0;8154:95;:::o;15236:122::-;15299:16;15329:24;15322:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15322:31:0;;;;;;;;;;;;;;;;;;;;;;;15236:122;:::o;9104:182::-;8398:17;:15;:17::i;:::-;8390:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9213:14:::1;::::0;9183:57:::1;::::0;9237:1:::1;::::0;-1:-1:-1;;;;;9213:14:0::1;::::0;9183:57:::1;::::0;9237:1;;9183:57:::1;9251:14;:27:::0;;;::::1;::::0;;9104:182::o;16447:160::-;13298:15;:13;:15::i;:::-;-1:-1:-1;;;;;13284:29:0;:10;-1:-1:-1;;;;;13284:29:0;;:68;;;;13331:21;:19;:21::i;:::-;-1:-1:-1;;;;;13317:35:0;:10;-1:-1:-1;;;;;13317:35:0;;13284:68;13276:174;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16556:7:::1;16539:8;16548:4;;16539:14;;;;;;;;;::::0;;;::::1;::::0;;;-1:-1:-1;;16539:14:0::1;::::0;;::::1;::::0;;;;;;;;:24;;;::::1;-1:-1:-1::0;;;;;16539:24:0;;::::1;;::::0;;16573:29;;::::1;::::0;;::::1;::::0;;;;-1:-1:-1;;16573:29:0;;;;;;;;::::1;::::0;16588:4;;16573:29;;;;16539:14;16573:29;;;16588:4;16573:29;;16588:4;16573:29;::::1;;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;;::::1;::::0;-1:-1:-1;16573:29:0;;-1:-1:-1;;;;;16573:29:0::1;16447:160:::0;;;:::o;10413:183::-;9892:21;;-1:-1:-1;;;;;9892:21:0;9878:10;:35;9870:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10521:21:::1;::::0;10493:50:::1;::::0;-1:-1:-1;;;;;10521:21:0::1;10493:27;:50::i;:::-;10554:21;:34:::0;;;::::1;::::0;;10413:183::o;6899:106::-;6987:10;6899:106;:::o;18670:364::-;18742:24;:31;18728:11;18778:252;18799:6;18795:1;:10;18778:252;;;18853:4;-1:-1:-1;;;;;18822:35:0;:24;18847:1;18822:27;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18822:27:0;:35;18818:207;;;18884:1;18875:6;:10;18870:1;:15;18866:101;;18925:24;18957:1;18950:6;:8;18925:34;;;;;;;;;;;;;;;;;;18895:24;:27;;-1:-1:-1;;;;;18925:34:0;;;;18920:1;;18895:27;;;;;;;;;;;;;;:64;;;;;-1:-1:-1;;;;;18895:64:0;;;;;-1:-1:-1;;;;;18895:64:0;;;;;;18866:101;18973:24;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19010:8;;;;;18818:207;18807:3;;18778:252;;;;18670:364;;:::o;18494:95::-;18549:24;:35;;;;;;;-1:-1:-1;18549:35:0;;;;;;;;;;-1:-1:-1;;;;;18549:35:0;;;;;;;;;;18494:95::o;18227:187::-;18280:6;18275:135;18296:24;:31;18292:35;;18275:135;;;18357:24;18382:1;18357:27;;;;;;;;;;;;;;;;;18340:64;;;;;;;;-1:-1:-1;;;;;18357:27:0;;;;18340:62;;:64;;;;;;;;;;18357:27;;18340:64;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18329:3:0;;;;;-1:-1:-1;18275:135:0;;-1:-1:-1;18275:135:0;9403:309;-1:-1:-1;;;;;9494:30:0;;9486:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9627:14;;9597:63;;-1:-1:-1;;;;;9597:63:0;;;;9627:14;;9597:63;;9627:14;;9597:63;9671:14;:33;;;;-1:-1:-1;;;;;9671:33:0;;;;;;;;;;9403:309::o
Swarm Source
ipfs://d7b48cc81d2497958d37681963f966b7e213d41fdc55f74f5a207d4c2f0235d8
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.