Source Code
Overview
ETH Balance
0 ETH
More Info
ContractCreator
Multichain Info
N/A
Latest 9 from a total of 9 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Accept Ownership | 5947135 | 147 days ago | IN | 0 ETH | 0.00324322 | ||||
Nominate New Own... | 5947134 | 147 days ago | IN | 0 ETH | 0.00482333 | ||||
Add Available Br... | 5039664 | 282 days ago | IN | 0 ETH | 0.00046401 | ||||
Rebuild Caches | 5034782 | 283 days ago | IN | 0 ETH | 0.05466424 | ||||
Import Addresses | 5034780 | 283 days ago | IN | 0 ETH | 0.00565079 | ||||
Import Addresses | 5034604 | 283 days ago | IN | 0 ETH | 0.01118007 | ||||
Import Addresses | 5034289 | 283 days ago | IN | 0 ETH | 0.00670911 | ||||
Add Available Br... | 5034215 | 283 days ago | IN | 0 ETH | 0.00378803 | ||||
0x60806040 | 5028191 | 284 days ago | IN | 0 ETH | 0.02376292 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
AddressResolverLightChain
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; // Inheritance import "./Owned.sol"; import "../interfaces/IAddressResolver.sol"; // Internal references import "../interfaces/IIssuer.sol"; import "./MixinResolver.sol"; contract AddressResolverLightChain is Owned, IAddressResolver { mapping(bytes32 => address) public repository; mapping(bytes32 => address) public availableBridge; mapping(address => bool) public isBridge; bytes32[] public bridgeList; constructor(address _owner) Owned(_owner) {} /* ========== RESTRICTED FUNCTIONS ========== */ function importAddresses(bytes32[] calldata names, address[] calldata destinations) external onlyOwner { require(names.length == destinations.length, "Input lengths must match"); for (uint256 i = 0; i < names.length; i++) { bytes32 name = names[i]; address destination = destinations[i]; repository[name] = destination; emit AddressImported(name, destination); } } function addAvailableBridge(bytes32 bridgeName, address bridgeAddress) external onlyOwner { _addAvailableBridge(bridgeName, bridgeAddress); } function removeAvailableBridge(bytes32 bridgeName) external onlyOwner { _removeAvailableBridge(bridgeName); } /* ========= PUBLIC FUNCTIONS ========== */ function rebuildCaches(MixinResolver[] calldata destinations) external { for (uint256 i = 0; i < destinations.length; i++) { destinations[i].rebuildCache(); } } /* ========== PRIVATE FUNCTIONS ========== */ function _addAvailableBridge(bytes32 bridgeName, address bridgeAddress) private { if (availableBridge[bridgeName] != address(0)) { _removeAvailableBridge(bridgeName); } availableBridge[bridgeName] = bridgeAddress; isBridge[bridgeAddress] = true; bridgeList.push(bridgeName); emit AddBridge(bridgeName, bridgeAddress); } function _removeAvailableBridge(bytes32 bridgeName) private { require(availableBridge[bridgeName] != address(0), "The bridge no exist."); uint lastBridgeNumber = bridgeList.length - 1; for (uint ii = 0; ii <= lastBridgeNumber; ii++) { if (bridgeList[ii] == bridgeName) { bridgeList[ii] = bridgeList[lastBridgeNumber]; bridgeList.pop(); break; } } address bridgeToRemove = availableBridge[bridgeName]; delete availableBridge[bridgeName]; delete isBridge[bridgeToRemove]; emit RemoveBridge(bridgeName, bridgeToRemove); } /* ========== VIEWS ========== */ function areAddressesImported(bytes32[] calldata names, address[] calldata destinations) external view returns (bool) { for (uint256 i = 0; i < names.length; i++) { if (repository[names[i]] != destinations[i]) { return false; } } return true; } function getAddress(bytes32 name) external view returns (address) { return repository[name]; } function requireAndGetAddress(bytes32 name, string calldata reason) external view returns (address) { address _foundAddress = repository[name]; require(_foundAddress != address(0), reason); return _foundAddress; } function getSynth(bytes32 key) external view returns (address) { IIssuer issuer = IIssuer(repository["Issuer"]); require(address(issuer) != address(0), "Cannot find Issuer address"); return address(issuer.synths(key)); } function getAvailableBridge(bytes32 bridgeName) external view returns (address) { return availableBridge[bridgeName]; } function getBridgeList() external view returns (bytes32[] memory) { return bridgeList; } /* ========== EVENTS ========== */ event AddressImported(bytes32 name, address destination); event AddBridge(bytes32 indexed bridgeName, address bridgeAddress); event RemoveBridge(bytes32 indexed bridgeName, address bridgeAddress); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; interface IAddressResolver { function getAddress(bytes32 name) external view returns (address); function getSynth(bytes32 key) external view returns (address); function getAvailableBridge(bytes32 bridgeName) external view returns (address); function getBridgeList() external view returns (bytes32[] memory); function requireAndGetAddress(bytes32 name, string calldata reason) external view returns (address); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "../interfaces/ISynth.sol"; interface IIssuer { // Views function allNetworksDebtInfo() external view returns (uint256 debt, uint256 sharesSupply); function availableCurrencyKeys() external view returns (bytes32[] memory); function availableSynthCount() external view returns (uint256); function availableSynths(uint256 index) external view returns (ISynth); function canBurnSynths(address account) external view returns (bool); function collateral(address account) external view returns (uint256); function collateralisationRatio(address issuer) external view returns (uint256); function collateralisationRatioAndAnyRatesInvalid( address _issuer ) external view returns (uint256 cratio, bool anyRateIsInvalid); function debtBalanceOf(address issuer) external view returns (uint256 debtBalance); function issuanceRatio() external view returns (uint256); function lastIssueEvent(address account) external view returns (uint256); function maxIssuableSynths(address issuer) external view returns (uint256 maxIssuable); function minimumStakeTime() external view returns (uint256); function remainingIssuableSynths( address issuer ) external view returns (uint256 maxIssuable, uint256 alreadyIssued, uint256 totalSystemDebt); function synths(bytes32 currencyKey) external view returns (ISynth); function getSynths(bytes32[] calldata currencyKeys) external view returns (ISynth[] memory); function synthsByAddress(address synthAddress) external view returns (bytes32); function totalIssuedSynths(bytes32 currencyKey) external view returns (uint256); function checkFreeCollateral( address _issuer, bytes32 _collateralKey, uint16 _chainId ) external view returns (uint256 withdrawableSynthr); function issueSynths( address from, uint256 amount, uint256 destChainId ) external returns (uint256 synthAmount, uint256 debtShare); function issueMaxSynths(address from, uint256 destChainId) external returns (uint256 synthAmount, uint256 debtShare); function burnSynths( address from, bytes32 synthKey, uint256 amount ) external returns (uint256 synthAmount, uint256 debtShare, uint256 reclaimed, uint256 refunded); function burnSynthsToTarget( address from, bytes32 synthKey ) external returns (uint256 synthAmount, uint256 debtShare, uint256 reclaimed, uint256 refunded); function burnForRedemption(address deprecatedSynthProxy, address account, uint256 balance) external; function burnSynthsWithoutDebt(bytes32 currencyKey, address from, uint amount) external returns (uint256 burnAmount); function synthIssueFromSynthrSwap(address _account, bytes32 _synthKey, uint256 _synthAmount) external; function liquidateAccount( address account, bytes32 collateralKey, uint16 chainId, bool isSelfLiquidation ) external returns (uint256 totalRedeemed, uint256 amountToLiquidate, uint256 sharesToRemove); function destIssue(address _account, bytes32 _synthKey, uint256 _synthAmount) external; function destBurn(address _account, bytes32 _synthKey, uint256 _synthAmount) external returns (uint256); function transferMargin(address account, uint256 marginDelta) external returns (uint256); function destTransferMargin(address _account, uint256 _marginDelta, bytes32 _marketKey) external returns (bool); function setCurrentPeriodId(uint128 periodId) external; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; interface ISynth { // Views function balanceOf(address _account) external view returns (uint256); function currencyKey() external view returns (bytes32); function transferableSynths(address account) external view returns (uint256); // Mutative functions function transferAndSettle(address to, uint256 value) external payable returns (bool); function transferFromAndSettle(address from, address to, uint256 value) external payable returns (bool); function burn(address account, uint256 amount) external; function issue(address account, uint256 amount) external; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; // Internal references import "./AddressResolverLightChain.sol"; contract MixinResolver { AddressResolverLightChain public resolver; mapping(bytes32 => address) private addressCache; constructor(address _resolver) { resolver = AddressResolverLightChain(_resolver); } /* ========== INTERNAL FUNCTIONS ========== */ function combineArrays(bytes32[] memory first, bytes32[] memory second) internal pure returns (bytes32[] memory combination) { combination = new bytes32[](first.length + second.length); for (uint256 i = 0; i < first.length; i++) { combination[i] = first[i]; } for (uint256 j = 0; j < second.length; j++) { combination[first.length + j] = second[j]; } } /* ========== PUBLIC FUNCTIONS ========== */ // Note: this function is public not external in order for it to be overridden and invoked via super in subclasses function resolverAddressesRequired() public view virtual returns (bytes32[] memory addresses) {} function rebuildCache() public { bytes32[] memory requiredAddresses = resolverAddressesRequired(); // The resolver must call this function whenver it updates its state for (uint256 i = 0; i < requiredAddresses.length; i++) { bytes32 name = requiredAddresses[i]; // Note: can only be invoked once the resolver has all the targets needed added address destination = resolver.requireAndGetAddress( name, string(abi.encodePacked("Resolver missing target: ", name)) ); addressCache[name] = destination; emit CacheUpdated(name, destination); } } /* ========== VIEWS ========== */ function isResolverCached() external view returns (bool) { bytes32[] memory requiredAddresses = resolverAddressesRequired(); for (uint256 i = 0; i < requiredAddresses.length; i++) { bytes32 name = requiredAddresses[i]; // false if our cache is invalid or if the resolver doesn't have the required address if (resolver.getAddress(name) != addressCache[name] || addressCache[name] == address(0)) { return false; } } return true; } /* ========== INTERNAL FUNCTIONS ========== */ function requireAndGetAddress(bytes32 name) internal view returns (address) { address _foundAddress = addressCache[name]; require(_foundAddress != address(0), string(abi.encodePacked("Missing address: ", name))); return _foundAddress; } /* ========== EVENTS ========== */ event CacheUpdated(bytes32 name, address destination); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract Owned { address public owner; address public nominatedOwner; constructor(address _owner) { require(_owner != address(0), "Owner address cannot be 0"); owner = _owner; emit OwnerChanged(address(0), _owner); } function nominateNewOwner(address _owner) external onlyOwner { nominatedOwner = _owner; emit OwnerNominated(_owner); } function acceptOwnership() external { require(msg.sender == nominatedOwner, "You must be nominated before you can accept ownership"); emit OwnerChanged(owner, nominatedOwner); owner = nominatedOwner; nominatedOwner = address(0); } modifier onlyOwner() { _onlyOwner(); _; } function _onlyOwner() private view { require(msg.sender == owner, "Only the contract owner may perform this action"); } event OwnerNominated(address newOwner); event OwnerChanged(address oldOwner, address newOwner); }
{ "evmVersion": "london", "libraries": {}, "metadata": { "bytecodeHash": "ipfs", "useLiteralContent": true }, "optimizer": { "enabled": true, "runs": 200 }, "remappings": [], "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"bridgeName","type":"bytes32"},{"indexed":false,"internalType":"address","name":"bridgeAddress","type":"address"}],"name":"AddBridge","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"name","type":"bytes32"},{"indexed":false,"internalType":"address","name":"destination","type":"address"}],"name":"AddressImported","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerNominated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"bridgeName","type":"bytes32"},{"indexed":false,"internalType":"address","name":"bridgeAddress","type":"address"}],"name":"RemoveBridge","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"bridgeName","type":"bytes32"},{"internalType":"address","name":"bridgeAddress","type":"address"}],"name":"addAvailableBridge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"names","type":"bytes32[]"},{"internalType":"address[]","name":"destinations","type":"address[]"}],"name":"areAddressesImported","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"availableBridge","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"bridgeList","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"name","type":"bytes32"}],"name":"getAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"bridgeName","type":"bytes32"}],"name":"getAvailableBridge","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBridgeList","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"name":"getSynth","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"names","type":"bytes32[]"},{"internalType":"address[]","name":"destinations","type":"address[]"}],"name":"importAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBridge","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"nominateNewOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"nominatedOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract MixinResolver[]","name":"destinations","type":"address[]"}],"name":"rebuildCaches","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"bridgeName","type":"bytes32"}],"name":"removeAvailableBridge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"repository","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"name","type":"bytes32"},{"internalType":"string","name":"reason","type":"string"}],"name":"requireAndGetAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50604051610fd9380380610fd983398101604081905261002f916100e8565b806001600160a01b03811661008a5760405162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015260640160405180910390fd5b600080546001600160a01b0319166001600160a01b03831690811782556040805192835260208301919091527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a15050610118565b6000602082840312156100fa57600080fd5b81516001600160a01b038116811461011157600080fd5b9392505050565b610eb2806101276000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063766f7815116100a2578063ab0b8f7711610071578063ab0b8f771461028a578063bcbd5ae71461029d578063dacb2d01146102be578063f388dbd1146102d1578063f64646a5146102fa57600080fd5b8063766f78151461024957806379ba50971461025c5780638da5cb5b146102645780639f42102f1461027757600080fd5b80634490b3b5116100e95780634490b3b5146101c857806351456061146101dd57806353a47bb7146101f05780635f177d1b14610203578063726600ce1461021657600080fd5b80630c8ac9701461011b5780631627540c14610161578063187f79351461017657806321f8a7211461019f575b600080fd5b610144610129366004610b87565b6000908152600360205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020015b60405180910390f35b61017461016f366004610bb5565b61030d565b005b610144610184366004610b87565b6002602052600090815260409020546001600160a01b031681565b6101446101ad366004610b87565b6000908152600260205260409020546001600160a01b031690565b6101d0610369565b6040516101589190610bd2565b6101446101eb366004610b87565b6103c1565b600154610144906001600160a01b031681565b610174610211366004610c16565b6104d1565b610239610224366004610bb5565b60046020526000908152604090205460ff1681565b6040519015158152602001610158565b610174610257366004610c92565b6104e7565b610174610583565b600054610144906001600160a01b031681565b610239610285366004610cd4565b61066d565b610174610298366004610cd4565b610711565b6102b06102ab366004610b87565b61083a565b604051908152602001610158565b6101446102cc366004610d40565b61085b565b6101446102df366004610b87565b6003602052600090815260409020546001600160a01b031681565b610174610308366004610b87565b61089f565b6103156108b3565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229060200160405180910390a150565b606060058054806020026020016040519081016040528092919081815260200182805480156103b757602002820191906000526020600020905b8154815260200190600101908083116103a3575b5050505050905090565b6524b9b9bab2b960d11b600090815260026020527f0651498423135bdecab48e2d306f14d560a72d49179b71410fd95b5d25ce349a546001600160a01b0316806104525760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f742066696e6420497373756572206164647265737300000000000060448201526064015b60405180910390fd5b604051633260803960e01b8152600481018490526001600160a01b0382169063326080399060240160206040518083038186803b15801561049257600080fd5b505afa1580156104a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ca9190610dbc565b9392505050565b6104d96108b3565b6104e38282610927565b5050565b60005b8181101561057e5782828281811061050457610504610dd9565b90506020020160208101906105199190610bb5565b6001600160a01b031663741853606040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561055357600080fd5b505af1158015610567573d6000803e3d6000fd5b50505050808061057690610e05565b9150506104ea565b505050565b6001546001600160a01b031633146105fb5760405162461bcd60e51b815260206004820152603560248201527f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7560448201527402063616e20616363657074206f776e65727368697605c1b6064820152608401610449565b600054600154604080516001600160a01b0393841681529290911660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000805b848110156107035783838281811061068b5761068b610dd9565b90506020020160208101906106a09190610bb5565b6001600160a01b0316600260008888858181106106bf576106bf610dd9565b60209081029290920135835250810191909152604001600020546001600160a01b0316146106f1576000915050610709565b806106fb81610e05565b915050610671565b50600190505b949350505050565b6107196108b3565b8281146107685760405162461bcd60e51b815260206004820152601860248201527f496e707574206c656e67746873206d757374206d6174636800000000000000006044820152606401610449565b60005b8381101561083357600085858381811061078757610787610dd9565b90506020020135905060008484848181106107a4576107a4610dd9565b90506020020160208101906107b99190610bb5565b60008381526002602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251868152918201529192507fefe884cc7f82a6cf3cf68f64221519dcf96b5cae9048e1bb008ee32cd05aaa91910160405180910390a15050808061082b90610e05565b91505061076b565b5050505050565b6005818154811061084a57600080fd5b600091825260209091200154905081565b6000838152600260205260408120546001600160a01b03168383826108945760405162461bcd60e51b8152600401610449929190610e20565b509095945050505050565b6108a76108b3565b6108b0816109fa565b50565b6000546001600160a01b031633146109255760405162461bcd60e51b815260206004820152602f60248201527f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726660448201526e37b936903a3434b99030b1ba34b7b760891b6064820152608401610449565b565b6000828152600360205260409020546001600160a01b03161561094d5761094d826109fa565b600082815260036020908152604080832080546001600160a01b0319166001600160a01b03861690811790915580845260048352818420805460ff191660019081179091556005805491820181559094527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db09093018590555191825283917f52935702da593df2adf6e5b8b3db128e34ef0ad1cdfbd6548dfb0cc0e26949e4910160405180910390a25050565b6000818152600360205260409020546001600160a01b0316610a555760405162461bcd60e51b81526020600482015260146024820152732a343290313934b233b29037379032bc34b9ba1760611b6044820152606401610449565b600554600090610a6790600190610e4f565b905060005b818111610b13578260058281548110610a8757610a87610dd9565b90600052602060002001541415610b015760058281548110610aab57610aab610dd9565b906000526020600020015460058281548110610ac957610ac9610dd9565b6000918252602090912001556005805480610ae657610ae6610e66565b60019003818190600052602060002001600090559055610b13565b80610b0b81610e05565b915050610a6c565b50600082815260036020908152604080832080546001600160a01b031981169091556001600160a01b03168084526004835292819020805460ff191690555182815284917f410f7af1c70db61e76fae740edd95a3edd7c4c59b6e0f5d813d04ef6d3983e86910160405180910390a2505050565b600060208284031215610b9957600080fd5b5035919050565b6001600160a01b03811681146108b057600080fd5b600060208284031215610bc757600080fd5b81356104ca81610ba0565b6020808252825182820181905260009190848201906040850190845b81811015610c0a57835183529284019291840191600101610bee565b50909695505050505050565b60008060408385031215610c2957600080fd5b823591506020830135610c3b81610ba0565b809150509250929050565b60008083601f840112610c5857600080fd5b50813567ffffffffffffffff811115610c7057600080fd5b6020830191508360208260051b8501011115610c8b57600080fd5b9250929050565b60008060208385031215610ca557600080fd5b823567ffffffffffffffff811115610cbc57600080fd5b610cc885828601610c46565b90969095509350505050565b60008060008060408587031215610cea57600080fd5b843567ffffffffffffffff80821115610d0257600080fd5b610d0e88838901610c46565b90965094506020870135915080821115610d2757600080fd5b50610d3487828801610c46565b95989497509550505050565b600080600060408486031215610d5557600080fd5b83359250602084013567ffffffffffffffff80821115610d7457600080fd5b818601915086601f830112610d8857600080fd5b813581811115610d9757600080fd5b876020828501011115610da957600080fd5b6020830194508093505050509250925092565b600060208284031215610dce57600080fd5b81516104ca81610ba0565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415610e1957610e19610def565b5060010190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b600082821015610e6157610e61610def565b500390565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220f372f41c944acc9a706ed8791c629c6f9658fce76ab2f898c981f09de704acdd64736f6c634300080900330000000000000000000000006f808ae3445a711ecaa4da5c8330b051541a4de0
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063766f7815116100a2578063ab0b8f7711610071578063ab0b8f771461028a578063bcbd5ae71461029d578063dacb2d01146102be578063f388dbd1146102d1578063f64646a5146102fa57600080fd5b8063766f78151461024957806379ba50971461025c5780638da5cb5b146102645780639f42102f1461027757600080fd5b80634490b3b5116100e95780634490b3b5146101c857806351456061146101dd57806353a47bb7146101f05780635f177d1b14610203578063726600ce1461021657600080fd5b80630c8ac9701461011b5780631627540c14610161578063187f79351461017657806321f8a7211461019f575b600080fd5b610144610129366004610b87565b6000908152600360205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020015b60405180910390f35b61017461016f366004610bb5565b61030d565b005b610144610184366004610b87565b6002602052600090815260409020546001600160a01b031681565b6101446101ad366004610b87565b6000908152600260205260409020546001600160a01b031690565b6101d0610369565b6040516101589190610bd2565b6101446101eb366004610b87565b6103c1565b600154610144906001600160a01b031681565b610174610211366004610c16565b6104d1565b610239610224366004610bb5565b60046020526000908152604090205460ff1681565b6040519015158152602001610158565b610174610257366004610c92565b6104e7565b610174610583565b600054610144906001600160a01b031681565b610239610285366004610cd4565b61066d565b610174610298366004610cd4565b610711565b6102b06102ab366004610b87565b61083a565b604051908152602001610158565b6101446102cc366004610d40565b61085b565b6101446102df366004610b87565b6003602052600090815260409020546001600160a01b031681565b610174610308366004610b87565b61089f565b6103156108b3565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229060200160405180910390a150565b606060058054806020026020016040519081016040528092919081815260200182805480156103b757602002820191906000526020600020905b8154815260200190600101908083116103a3575b5050505050905090565b6524b9b9bab2b960d11b600090815260026020527f0651498423135bdecab48e2d306f14d560a72d49179b71410fd95b5d25ce349a546001600160a01b0316806104525760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f742066696e6420497373756572206164647265737300000000000060448201526064015b60405180910390fd5b604051633260803960e01b8152600481018490526001600160a01b0382169063326080399060240160206040518083038186803b15801561049257600080fd5b505afa1580156104a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ca9190610dbc565b9392505050565b6104d96108b3565b6104e38282610927565b5050565b60005b8181101561057e5782828281811061050457610504610dd9565b90506020020160208101906105199190610bb5565b6001600160a01b031663741853606040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561055357600080fd5b505af1158015610567573d6000803e3d6000fd5b50505050808061057690610e05565b9150506104ea565b505050565b6001546001600160a01b031633146105fb5760405162461bcd60e51b815260206004820152603560248201527f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7560448201527402063616e20616363657074206f776e65727368697605c1b6064820152608401610449565b600054600154604080516001600160a01b0393841681529290911660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000805b848110156107035783838281811061068b5761068b610dd9565b90506020020160208101906106a09190610bb5565b6001600160a01b0316600260008888858181106106bf576106bf610dd9565b60209081029290920135835250810191909152604001600020546001600160a01b0316146106f1576000915050610709565b806106fb81610e05565b915050610671565b50600190505b949350505050565b6107196108b3565b8281146107685760405162461bcd60e51b815260206004820152601860248201527f496e707574206c656e67746873206d757374206d6174636800000000000000006044820152606401610449565b60005b8381101561083357600085858381811061078757610787610dd9565b90506020020135905060008484848181106107a4576107a4610dd9565b90506020020160208101906107b99190610bb5565b60008381526002602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251868152918201529192507fefe884cc7f82a6cf3cf68f64221519dcf96b5cae9048e1bb008ee32cd05aaa91910160405180910390a15050808061082b90610e05565b91505061076b565b5050505050565b6005818154811061084a57600080fd5b600091825260209091200154905081565b6000838152600260205260408120546001600160a01b03168383826108945760405162461bcd60e51b8152600401610449929190610e20565b509095945050505050565b6108a76108b3565b6108b0816109fa565b50565b6000546001600160a01b031633146109255760405162461bcd60e51b815260206004820152602f60248201527f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726660448201526e37b936903a3434b99030b1ba34b7b760891b6064820152608401610449565b565b6000828152600360205260409020546001600160a01b03161561094d5761094d826109fa565b600082815260036020908152604080832080546001600160a01b0319166001600160a01b03861690811790915580845260048352818420805460ff191660019081179091556005805491820181559094527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db09093018590555191825283917f52935702da593df2adf6e5b8b3db128e34ef0ad1cdfbd6548dfb0cc0e26949e4910160405180910390a25050565b6000818152600360205260409020546001600160a01b0316610a555760405162461bcd60e51b81526020600482015260146024820152732a343290313934b233b29037379032bc34b9ba1760611b6044820152606401610449565b600554600090610a6790600190610e4f565b905060005b818111610b13578260058281548110610a8757610a87610dd9565b90600052602060002001541415610b015760058281548110610aab57610aab610dd9565b906000526020600020015460058281548110610ac957610ac9610dd9565b6000918252602090912001556005805480610ae657610ae6610e66565b60019003818190600052602060002001600090559055610b13565b80610b0b81610e05565b915050610a6c565b50600082815260036020908152604080832080546001600160a01b031981169091556001600160a01b03168084526004835292819020805460ff191690555182815284917f410f7af1c70db61e76fae740edd95a3edd7c4c59b6e0f5d813d04ef6d3983e86910160405180910390a2505050565b600060208284031215610b9957600080fd5b5035919050565b6001600160a01b03811681146108b057600080fd5b600060208284031215610bc757600080fd5b81356104ca81610ba0565b6020808252825182820181905260009190848201906040850190845b81811015610c0a57835183529284019291840191600101610bee565b50909695505050505050565b60008060408385031215610c2957600080fd5b823591506020830135610c3b81610ba0565b809150509250929050565b60008083601f840112610c5857600080fd5b50813567ffffffffffffffff811115610c7057600080fd5b6020830191508360208260051b8501011115610c8b57600080fd5b9250929050565b60008060208385031215610ca557600080fd5b823567ffffffffffffffff811115610cbc57600080fd5b610cc885828601610c46565b90969095509350505050565b60008060008060408587031215610cea57600080fd5b843567ffffffffffffffff80821115610d0257600080fd5b610d0e88838901610c46565b90965094506020870135915080821115610d2757600080fd5b50610d3487828801610c46565b95989497509550505050565b600080600060408486031215610d5557600080fd5b83359250602084013567ffffffffffffffff80821115610d7457600080fd5b818601915086601f830112610d8857600080fd5b813581811115610d9757600080fd5b876020828501011115610da957600080fd5b6020830194508093505050509250925092565b600060208284031215610dce57600080fd5b81516104ca81610ba0565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415610e1957610e19610def565b5060010190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b600082821015610e6157610e61610def565b500390565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220f372f41c944acc9a706ed8791c629c6f9658fce76ab2f898c981f09de704acdd64736f6c63430008090033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000006f808ae3445a711ecaa4da5c8330b051541a4de0
-----Decoded View---------------
Arg [0] : _owner (address): 0x6F808aE3445A711ecAa4DA5c8330B051541A4dE0
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000006f808ae3445a711ecaa4da5c8330b051541a4de0
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.