Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Multichain Info
No addresses found
Latest 12 from a total of 12 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Update Observati... | 22073532 | 7 days ago | IN | 0 ETH | 0.00027412 | ||||
Update Observati... | 21076406 | 146 days ago | IN | 0 ETH | 0.00083423 | ||||
Update Observati... | 20322734 | 251 days ago | IN | 0 ETH | 0.00051011 | ||||
Update Observati... | 20120382 | 279 days ago | IN | 0 ETH | 0.00038548 | ||||
Update Observati... | 19933345 | 305 days ago | IN | 0 ETH | 0.00115574 | ||||
Update Observati... | 19933339 | 305 days ago | IN | 0 ETH | 0.0011307 | ||||
Update Observati... | 19933336 | 305 days ago | IN | 0 ETH | 0.00106836 | ||||
Update Observati... | 19933124 | 305 days ago | IN | 0 ETH | 0.0010873 | ||||
Transfer Ownersh... | 19819305 | 321 days ago | IN | 0 ETH | 0.00022451 | ||||
Set Operator | 19819284 | 321 days ago | IN | 0 ETH | 0.00024227 | ||||
Transfer Ownersh... | 19732128 | 334 days ago | IN | 0 ETH | 0.00038818 | ||||
Set Threshold | 19484252 | 368 days ago | IN | 0 ETH | 0.00154238 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
Oracle
Compiler Version
v0.8.16+commit.07a7930e
Optimization Enabled:
Yes with 690 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// contracts/Oracle.sol // SPDX-License-Identifier: UNLICENSED // Copyright © 2023 SolarExplorer pragma solidity ^0.8.14; import "periphery/Operatable.sol"; import "interfaces/IOracle.sol"; contract Oracle is IOracle, Operatable { // EIP712 related variables and functions bytes32 private constant DOMAIN_SEPARATOR_SIGNATURE_HASH = keccak256("EIP712Domain(string name,uint256 chainId,address verifyingContract)"); // See https://eips.ethereum.org/EIPS/eip-191 string private constant EIP191_PREFIX_FOR_EIP712_STRUCTURED_DATA = "\x19\x01"; bytes32 private constant APPROVAL_SIGNATURE_HASH = keccak256("LogUpdateObservation(uint144 value,uint256 deadline)"); // solhint-disable-next-line var-name-mixedcase bytes32 private immutable _DOMAIN_SEPARATOR; // solhint-disable-next-line var-name-mixedcase uint256 private immutable DOMAIN_SEPARATOR_CHAIN_ID; uint256 public constant PRECISION = 1e6; uint256 public constant HEARTBEAT = 5 minutes; uint8 public constant FROZEN = 1; uint8 public constant UNFROZEN = 0; uint256 public latestInteraction; struct StorageType { uint144 observation; uint64 lastUpdate; uint32 deltaPercentage; uint8 frozen; uint8 signerThreshold; } StorageType public observation; event LogMaxDeltaPercentageChanged(uint256 timestamp, uint32 maxDeltaPercentage); event LogFrozenChanged(uint256 timestamp, uint8 frozen); event LogSignerThresholdChanged(uint256 timestamp, uint8 signerThreshold); event LogUpdateObservation(uint256 timestamp, uint144 observation); constructor(address to) { // Set default roles emit OwnershipTransferred(owner, to); owner = to; uint256 chainId; assembly { chainId := chainid() } _DOMAIN_SEPARATOR = _calculateDomainSeparator(DOMAIN_SEPARATOR_CHAIN_ID = chainId); } function _calculateDomainSeparator(uint256 chainId) private view returns (bytes32) { return keccak256(abi.encode(DOMAIN_SEPARATOR_SIGNATURE_HASH, keccak256("Oracle"), chainId, address(this))); } function DOMAIN_SEPARATOR() public view returns (bytes32) { uint256 chainId; assembly { chainId := chainid() } return chainId == DOMAIN_SEPARATOR_CHAIN_ID ? _DOMAIN_SEPARATOR : _calculateDomainSeparator(chainId); } function _checkDeltaPercentage(uint256 existingValue, uint256 updatedValue, uint256 maxDelta) internal pure { uint256 deltaPercentage; if (existingValue <= updatedValue) { deltaPercentage = PRECISION - (PRECISION * existingValue / updatedValue); } else { deltaPercentage = PRECISION - (PRECISION * updatedValue / existingValue); } require(deltaPercentage < maxDelta, "Delta percentage"); } function _verifySignature(address signer, uint144 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) internal view { require(operators[signer], "Oracle: not operator"); // Also, ecrecover returns address(0) on failure. So we check this. require(signer != address(0), "PermissionMgr: Operator cannot be 0"); require(deadline >= block.timestamp && deadline <= (block.timestamp + 15 minutes), 'Oracle: EXPIRED'); bytes32 digest = keccak256( abi.encodePacked( EIP191_PREFIX_FOR_EIP712_STRUCTURED_DATA, DOMAIN_SEPARATOR(), keccak256( abi.encode( APPROVAL_SIGNATURE_HASH, value, deadline ) ) ) ); address recoveredAddress = ecrecover(digest, v, r, s); require(recoveredAddress == signer, "Oracle: Invalid Signature"); } function updateObservation(uint144 value, address[] calldata signers, uint256[] calldata deadline, uint8[] calldata v, bytes32[] calldata r, bytes32[] calldata s) external { StorageType memory oldObservation = observation; require(signers.length >= oldObservation.signerThreshold, "Too few signers"); require(block.timestamp != oldObservation.lastUpdate, "Cooldown period"); address lastSigner; for (uint256 i = 0; i < signers.length; i++) { require(signers[i] > lastSigner, "Duplicated signer"); _verifySignature(signers[i], value, deadline[i], v[i], r[i], s[i]); lastSigner = signers[i]; } if (oldObservation.observation != 0) { _checkDeltaPercentage(uint256(oldObservation.observation), uint256(value), uint256(oldObservation.deltaPercentage)); } observation = StorageType(value, uint64(block.timestamp), oldObservation.deltaPercentage, oldObservation.frozen, oldObservation.signerThreshold); emit LogUpdateObservation(block.timestamp, value); } function get(bytes memory) public view override returns (bool, uint256) { StorageType memory oldObservation = observation; bool isValid = oldObservation.frozen != FROZEN && block.timestamp - oldObservation.lastUpdate < HEARTBEAT; return (isValid, uint256(oldObservation.observation)); } function freeze() external onlyOperators { observation.frozen = FROZEN; emit LogFrozenChanged(block.timestamp, FROZEN); } function setMaximumDeltaPercentage(uint32 maximumDeltaPercentage) external onlyOwner { observation.deltaPercentage = maximumDeltaPercentage; emit LogMaxDeltaPercentageChanged(block.timestamp, maximumDeltaPercentage); } function unfreeze() external onlyOwner { observation.frozen = UNFROZEN; emit LogFrozenChanged(block.timestamp, UNFROZEN); } function setThreshold(uint8 threshold) external onlyOwner { observation.signerThreshold = threshold; emit LogSignerThresholdChanged(block.timestamp, threshold); } // Check the last exchange rate without any state changes /// @inheritdoc IOracle function peek(bytes calldata data) public view override returns (bool, uint256) { return get(data); } // Check the current spot exchange rate without any state changes /// @inheritdoc IOracle function peekSpot(bytes calldata data) external view override returns (uint256 rate) { (,rate) = peek(data); } /// @inheritdoc IOracle function name(bytes calldata) public pure override returns (string memory) { return "Oracle"; } /// @inheritdoc IOracle function symbol(bytes calldata) public pure override returns (string memory) { return "Oracle"; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; // Source: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol + Claimable.sol // Simplified by BoringCrypto contract BoringOwnableData { address public owner; address public pendingOwner; } contract BoringOwnable is BoringOwnableData { event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /// @notice `owner` defaults to msg.sender on construction. constructor() { owner = msg.sender; emit OwnershipTransferred(address(0), msg.sender); } /// @notice Transfers ownership to `newOwner`. Either directly or claimable by the new pending owner. /// Can only be invoked by the current `owner`. /// @param newOwner Address of the new owner. /// @param direct True if `newOwner` should be set immediately. False if `newOwner` needs to use `claimOwnership`. /// @param renounce Allows the `newOwner` to be `address(0)` if `direct` and `renounce` is True. Has no effect otherwise. function transferOwnership( address newOwner, bool direct, bool renounce ) public onlyOwner { if (direct) { // Checks require(newOwner != address(0) || renounce, "Ownable: zero address"); // Effects emit OwnershipTransferred(owner, newOwner); owner = newOwner; pendingOwner = address(0); } else { // Effects pendingOwner = newOwner; } } /// @notice Needs to be called by `pendingOwner` to claim ownership. function claimOwnership() public { address _pendingOwner = pendingOwner; // Checks require(msg.sender == _pendingOwner, "Ownable: caller != pending owner"); // Effects emit OwnershipTransferred(owner, _pendingOwner); owner = _pendingOwner; pendingOwner = address(0); } /// @notice Only allows the `owner` to execute the function. modifier onlyOwner() { require(msg.sender == owner, "Ownable: caller is not the owner"); _; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; interface IERC20 { // transfer and tranferFrom have been removed, because they don't work on all tokens (some aren't ERC20 complaint). // By removing them you can't accidentally use them. // name, symbol and decimals have been removed, because they are optional and sometimes wrongly implemented (MKR). // Use BoringERC20 with `using BoringERC20 for IERC20` and call `safeTransfer`, `safeTransferFrom`, etc instead. function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); /// @notice EIP 2612 function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; } interface IStrictERC20 { // This is the strict ERC20 interface. Don't use this, certainly not if you don't control the ERC20 token you're calling. function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address _owner) external view returns (uint256 balance); function transfer(address _to, uint256 _value) external returns (bool success); function transferFrom(address _from, address _to, uint256 _value) external returns (bool success); function approve(address _spender, uint256 _value) external returns (bool success); function allowance(address _owner, address _spender) external view returns (uint256 remaining); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); /// @notice EIP 2612 function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; }
// SPDX-License-Identifier: MIT pragma solidity >=0.8.0; interface IOracle { /// @notice Get the latest exchange rate. /// @param data Usually abi encoded, implementation specific data that contains information and arguments to & about the oracle. /// For example: /// (string memory collateralSymbol, string memory assetSymbol, uint256 division) = abi.decode(data, (string, string, uint256)); /// @return success if no valid (recent) rate is available, return false else true. /// @return rate The rate of the requested asset / pair / pool. function get(bytes calldata data) external returns (bool success, uint256 rate); /// @notice Check the last exchange rate without any state changes. /// @param data Usually abi encoded, implementation specific data that contains information and arguments to & about the oracle. /// For example: /// (string memory collateralSymbol, string memory assetSymbol, uint256 division) = abi.decode(data, (string, string, uint256)); /// @return success if no valid (recent) rate is available, return false else true. /// @return rate The rate of the requested asset / pair / pool. function peek(bytes calldata data) external view returns (bool success, uint256 rate); /// @notice Check the current spot exchange rate without any state changes. For oracles like TWAP this will be different from peek(). /// @param data Usually abi encoded, implementation specific data that contains information and arguments to & about the oracle. /// For example: /// (string memory collateralSymbol, string memory assetSymbol, uint256 division) = abi.decode(data, (string, string, uint256)); /// @return rate The rate of the requested asset / pair / pool. function peekSpot(bytes calldata data) external view returns (uint256 rate); /// @notice Returns a human readable (short) name about this oracle. /// @param data Usually abi encoded, implementation specific data that contains information and arguments to & about the oracle. /// For example: /// (string memory collateralSymbol, string memory assetSymbol, uint256 division) = abi.decode(data, (string, string, uint256)); /// @return (string) A human readable symbol name about this oracle. function symbol(bytes calldata data) external view returns (string memory); /// @notice Returns a human readable name about this oracle. /// @param data Usually abi encoded, implementation specific data that contains information and arguments to & about the oracle. /// For example: /// (string memory collateralSymbol, string memory assetSymbol, uint256 division) = abi.decode(data, (string, string, uint256)); /// @return (string) A human readable name about this oracle. function name(bytes calldata data) external view returns (string memory); }
// SPDX-License-Identifier: MIT pragma solidity >=0.8.0; import "BoringSolidity/interfaces/IERC20.sol"; import "BoringSolidity/BoringOwnable.sol"; contract Operatable is BoringOwnable { event OperatorChanged(address indexed, bool); error NotAllowedOperator(); mapping(address => bool) public operators; constructor() { operators[msg.sender] = true; } modifier onlyOperators() { if (!operators[msg.sender]) { revert NotAllowedOperator(); } _; } function setOperator(address operator, bool status) external onlyOwner { operators[operator] = status; emit OperatorChanged(operator, status); } }
{ "optimizer": { "enabled": true, "runs": 690 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "metadata": { "useLiteralContent": true }, "remappings": [ "/=src/", "BoringSolidity/=lib/BoringSolidity/contracts/", "OpenZeppelin/=lib/openzeppelin-contracts/contracts/", "cauldrons/=src/cauldrons/", "ds-test/=lib/forge-std/lib/ds-test/src/", "forge-std/=lib/forge-std/src/", "interfaces/=src/interfaces/", "lenses/=src/lenses/", "libraries/=src/libraries/", "mocks/=src/mocks/", "oracles/=src/oracles/", "periphery/=src/periphery/", "solidity-stringutils/=lib/surl/lib/solidity-stringutils/src/", "solmate/=lib/solmate/src/", "strategies/=src/strategies/", "surl/=lib/surl/src/", "swappers/=src/swappers/", "tokens/=src/tokens/", "utils/=utils/", "OpenZeppelin-Upgrades/=lib/openzeppelin-contracts-upgradeable/contracts/" ], "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"to","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"NotAllowedOperator","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"frozen","type":"uint8"}],"name":"LogFrozenChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"uint32","name":"maxDeltaPercentage","type":"uint32"}],"name":"LogMaxDeltaPercentageChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"signerThreshold","type":"uint8"}],"name":"LogSignerThresholdChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"uint144","name":"observation","type":"uint144"}],"name":"LogUpdateObservation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"bool","name":"","type":"bool"}],"name":"OperatorChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FROZEN","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"HEARTBEAT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PRECISION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNFROZEN","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"freeze","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"get","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestInteraction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"observation","outputs":[{"internalType":"uint144","name":"observation","type":"uint144"},{"internalType":"uint64","name":"lastUpdate","type":"uint64"},{"internalType":"uint32","name":"deltaPercentage","type":"uint32"},{"internalType":"uint8","name":"frozen","type":"uint8"},{"internalType":"uint8","name":"signerThreshold","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"operators","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"name":"peek","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"name":"peekSpot","outputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"maximumDeltaPercentage","type":"uint32"}],"name":"setMaximumDeltaPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"threshold","type":"uint8"}],"name":"setThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"},{"internalType":"bool","name":"direct","type":"bool"},{"internalType":"bool","name":"renounce","type":"bool"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unfreeze","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint144","name":"value","type":"uint144"},{"internalType":"address[]","name":"signers","type":"address[]"},{"internalType":"uint256[]","name":"deadline","type":"uint256[]"},{"internalType":"uint8[]","name":"v","type":"uint8[]"},{"internalType":"bytes32[]","name":"r","type":"bytes32[]"},{"internalType":"bytes32[]","name":"s","type":"bytes32[]"}],"name":"updateObservation","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60c060405234801561001057600080fd5b50604051620019703803806200197083398101604081905261003191610151565b600080546001600160a01b03191633908117825560405190919060008051602062001950833981519152908290a333600090815260026020526040808220805460ff19166001179055815490516001600160a01b03848116939216916000805160206200195083398151915291a3600080546001600160a01b0319166001600160a01b0383161790554660a081905261014681604080517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86660208201527f1a4461ab9f0dcef4a35a8660e8bbb361ae4c140fabb5b8c363bd6282ded34a90918101919091526060810182905230608082015260009060a001604051602081830303815290604052805190602001209050919050565b608052506101819050565b60006020828403121561016357600080fd5b81516001600160a01b038116811461017a57600080fd5b9392505050565b60805160a0516117a9620001a76000396000610542015260006105e901526117a96000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c80636a28f000116100e3578063d39bbef01161008c578063e30c397811610066578063e30c39781461039e578063e5a98603146103b1578063eeb8a8d3146103c457600080fd5b8063d39bbef014610361578063d568866c14610341578063d6d7d5251461037457600080fd5b8063abee062b116100bd578063abee062b1461031b578063b27938bf1461032e578063c699c4d61461034157600080fd5b80636a28f000146102de5780638da5cb5b146102e6578063aaf5eb681461031157600080fd5b80633644e515116101455780634e71e0c81161011f5780634e71e0c8146102bb578063558a7297146102c357806362a5af3b146102d657600080fd5b80633644e515146102915780633b5764eb146102995780633bb865b9146102b357600080fd5b80630d2242a9116101765780630d2242a91461023e57806313e7c9d8146102555780631586b3881461028857600080fd5b8063078dfbe71461019257806309be76c9146101a7575b600080fd5b6101a56101a03660046112cc565b6103d7565b005b6004546101f0906001600160901b0381169067ffffffffffffffff600160901b8204169063ffffffff600160d01b8204169060ff600160f01b8204811691600160f81b90041685565b604080516001600160901b03909616865267ffffffffffffffff909416602086015263ffffffff9092169284019290925260ff918216606084015216608082015260a0015b60405180910390f35b61024760035481565b604051908152602001610235565b61027861026336600461130f565b60026020526000908152604090205460ff1681565b6040519015158152602001610235565b61024761012c81565b61024761053d565b6102a1600181565b60405160ff9091168152602001610235565b6102a1600081565b6101a561060f565b6101a56102d1366004611331565b6106d9565b6101a5610792565b6101a5610811565b6000546102f9906001600160a01b031681565b6040516001600160a01b039091168152602001610235565b610247620f424081565b6101a5610329366004611364565b6108ae565b6101a561033c3660046113e6565b610982565b61035461034f3660046114ed565b610d65565b6040516102359190611583565b61024761036f3660046114ed565b610d89565b6103876103823660046115cc565b610d9d565b604080519215158352602083019190915201610235565b6001546102f9906001600160a01b031681565b6101a56103bf36600461167d565b610e4a565b6103876103d23660046114ed565b610efb565b6000546001600160a01b031633146104365760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b811561050e576001600160a01b0383161515806104505750805b61049c5760405162461bcd60e51b815260206004820152601560248201527f4f776e61626c653a207a65726f20616464726573730000000000000000000000604482015260640161042d565b600080546040516001600160a01b03808716939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03851673ffffffffffffffffffffffffffffffffffffffff1991821617909155600180549091169055505050565b600180546001600160a01b03851673ffffffffffffffffffffffffffffffffffffffff19909116179055505050565b6000467f000000000000000000000000000000000000000000000000000000000000000081146105e757604080517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8666020808301919091527f1a4461ab9f0dcef4a35a8660e8bbb361ae4c140fabb5b8c363bd6282ded34a908284015260608201849052306080808401919091528351808403909101815260a09092019092528051910120610609565b7f00000000000000000000000000000000000000000000000000000000000000005b91505090565b6001546001600160a01b031633811461066a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e6572604482015260640161042d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0390921673ffffffffffffffffffffffffffffffffffffffff19928316179055600180549091169055565b6000546001600160a01b031633146107335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042d565b6001600160a01b038216600081815260026020908152604091829020805460ff191685151590811790915591519182527f193de8d500b5cb7b720089b258a39e9c1d0b840019a73ae7c51c3f9101732b02910160405180910390a25050565b3360009081526002602052604090205460ff166107c25760405163de19c8b360e01b815260040160405180910390fd5b6004805460ff60f01b1916600160f01b17905560408051428152600160208201527fb07c78c0c10a182d467af5ad4614b52dd7e8f37f153665394bca2866a38d252091015b60405180910390a1565b6000546001600160a01b0316331461086b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042d565b6004805460ff60f01b1916905560408051428152600060208201527fb07c78c0c10a182d467af5ad4614b52dd7e8f37f153665394bca2866a38d25209101610807565b6000546001600160a01b031633146109085760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042d565b600480547fffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffff16600160d01b63ffffffff8416908102919091179091556040805142815260208101929092527fa9f87fe67efb850d48acefd4d96c627e025b53bac2f7831cf5037daa0355800191015b60405180910390a150565b6040805160a0810182526004546001600160901b038116825267ffffffffffffffff600160901b820416602083015263ffffffff600160d01b8204169282019290925260ff600160f01b830481166060830152600160f81b909204909116608082018190528a1015610a365760405162461bcd60e51b815260206004820152600f60248201527f546f6f20666577207369676e6572730000000000000000000000000000000000604482015260640161042d565b806020015167ffffffffffffffff164203610a935760405162461bcd60e51b815260206004820152600f60248201527f436f6f6c646f776e20706572696f640000000000000000000000000000000000604482015260640161042d565b6000805b8b811015610c0357816001600160a01b03168d8d83818110610abb57610abb6116a0565b9050602002016020810190610ad0919061130f565b6001600160a01b031611610b265760405162461bcd60e51b815260206004820152601160248201527f4475706c696361746564207369676e6572000000000000000000000000000000604482015260640161042d565b610bc88d8d83818110610b3b57610b3b6116a0565b9050602002016020810190610b50919061130f565b8f8d8d85818110610b6357610b636116a0565b905060200201358c8c86818110610b7c57610b7c6116a0565b9050602002016020810190610b91919061167d565b8b8b87818110610ba357610ba36116a0565b905060200201358a8a88818110610bbc57610bbc6116a0565b90506020020135610f49565b8c8c82818110610bda57610bda6116a0565b9050602002016020810190610bef919061130f565b915080610bfb816116cc565b915050610a97565b5081516001600160901b031615610c3f57610c3f82600001516001600160901b03168e6001600160901b0316846040015163ffffffff166111ee565b6040805160a0810182526001600160901b038f168082524267ffffffffffffffff811660208085018290528786015163ffffffff168587018190526060808a015160ff9081169188018290526080808c01519091169701879052600480547fffffffffffff0000000000000000000000000000000000000000000000000000168717600160901b909502949094177fff0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff16600160d01b90920260ff60f01b191691909117600160f01b909102176001600160f81b0316600160f81b9095029490941790558351908152918201527f8d5b7dfd36756115de1bf344f2d5268ed31bd23fb5f1fd73233aecba2ebfe5dc910160405180910390a150505050505050505050505050565b6040805180820190915260068152654f7261636c6560d01b60208201525b92915050565b6000610d958383610efb565b949350505050565b6040805160a0810182526004546001600160901b038116825267ffffffffffffffff600160901b820416602083015263ffffffff600160d01b8204169282019290925260ff600160f01b8304811660608301819052600160f81b9093041660808201526000918291908290600114801590610e32575061012c826020015167ffffffffffffffff1642610e3091906116e5565b105b915191956001600160901b0390921694509092505050565b6000546001600160a01b03163314610ea45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042d565b600480546001600160f81b0316600160f81b60ff8416908102919091179091556040805142815260208101929092527f7e5216ced32aeca8e67408772764eb48b7c58cec187b9cca4b300206b68256079101610977565b600080610f3d84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610d9d92505050565b915091505b9250929050565b6001600160a01b03861660009081526002602052604090205460ff16610fb15760405162461bcd60e51b815260206004820152601460248201527f4f7261636c653a206e6f74206f70657261746f72000000000000000000000000604482015260640161042d565b6001600160a01b0386166110135760405162461bcd60e51b815260206004820152602360248201527f5065726d697373696f6e4d67723a204f70657261746f722063616e6e6f74206260448201526206520360ec1b606482015260840161042d565b42841015801561102e575061102a426103846116f8565b8411155b61107a5760405162461bcd60e51b815260206004820152600f60248201527f4f7261636c653a20455850495245440000000000000000000000000000000000604482015260640161042d565b600060405180604001604052806002815260200161190160f01b81525061109f61053d565b604080517f20907ceb44bc150c98ea3e61448c974f15c63306ae5dce6afed9a58ca7d15b7c60208201526001600160901b038a1691810191909152606081018890526080016040516020818303038152906040528051906020012060405160200161110c9392919061170b565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015611177573d6000803e3d6000fd5b505050602060405103519050876001600160a01b0316816001600160a01b0316146111e45760405162461bcd60e51b815260206004820152601960248201527f4f7261636c653a20496e76616c6964205369676e617475726500000000000000604482015260640161042d565b5050505050505050565b6000828411611223578261120585620f4240611732565b61120f9190611751565b61121c90620f42406116e5565b905061124b565b8361123184620f4240611732565b61123b9190611751565b61124890620f42406116e5565b90505b81811061129a5760405162461bcd60e51b815260206004820152601060248201527f44656c74612070657263656e7461676500000000000000000000000000000000604482015260640161042d565b50505050565b80356001600160a01b03811681146112b757600080fd5b919050565b803580151581146112b757600080fd5b6000806000606084860312156112e157600080fd5b6112ea846112a0565b92506112f8602085016112bc565b9150611306604085016112bc565b90509250925092565b60006020828403121561132157600080fd5b61132a826112a0565b9392505050565b6000806040838503121561134457600080fd5b61134d836112a0565b915061135b602084016112bc565b90509250929050565b60006020828403121561137657600080fd5b813563ffffffff8116811461132a57600080fd5b80356001600160901b03811681146112b757600080fd5b60008083601f8401126113b357600080fd5b50813567ffffffffffffffff8111156113cb57600080fd5b6020830191508360208260051b8501011115610f4257600080fd5b600080600080600080600080600080600060c08c8e03121561140757600080fd5b6114108c61138a565b9a5067ffffffffffffffff8060208e0135111561142c57600080fd5b61143c8e60208f01358f016113a1565b909b50995060408d013581101561145257600080fd5b6114628e60408f01358f016113a1565b909950975060608d013581101561147857600080fd5b6114888e60608f01358f016113a1565b909750955060808d013581101561149e57600080fd5b6114ae8e60808f01358f016113a1565b909550935060a08d01358110156114c457600080fd5b506114d58d60a08e01358e016113a1565b81935080925050509295989b509295989b9093969950565b6000806020838503121561150057600080fd5b823567ffffffffffffffff8082111561151857600080fd5b818501915085601f83011261152c57600080fd5b81358181111561153b57600080fd5b86602082850101111561154d57600080fd5b60209290920196919550909350505050565b60005b8381101561157a578181015183820152602001611562565b50506000910152565b60208152600082518060208401526115a281604085016020870161155f565b601f01601f19169190910160400192915050565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156115de57600080fd5b813567ffffffffffffffff808211156115f657600080fd5b818401915084601f83011261160a57600080fd5b81358181111561161c5761161c6115b6565b604051601f8201601f19908116603f01168101908382118183101715611644576116446115b6565b8160405282815287602084870101111561165d57600080fd5b826020860160208301376000928101602001929092525095945050505050565b60006020828403121561168f57600080fd5b813560ff8116811461132a57600080fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016116de576116de6116b6565b5060010190565b81810381811115610d8357610d836116b6565b80820180821115610d8357610d836116b6565b6000845161171d81846020890161155f565b91909101928352506020820152604001919050565b600081600019048311821515161561174c5761174c6116b6565b500290565b60008261176e57634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212205639b058a22ddf2d254064c972aea87dc6b74a25bc1271c695b2dac5c284091b64736f6c634300081000338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e00000000000000000000000001da4ebf84afae68915206855213a70a4fb693da6
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061018d5760003560e01c80636a28f000116100e3578063d39bbef01161008c578063e30c397811610066578063e30c39781461039e578063e5a98603146103b1578063eeb8a8d3146103c457600080fd5b8063d39bbef014610361578063d568866c14610341578063d6d7d5251461037457600080fd5b8063abee062b116100bd578063abee062b1461031b578063b27938bf1461032e578063c699c4d61461034157600080fd5b80636a28f000146102de5780638da5cb5b146102e6578063aaf5eb681461031157600080fd5b80633644e515116101455780634e71e0c81161011f5780634e71e0c8146102bb578063558a7297146102c357806362a5af3b146102d657600080fd5b80633644e515146102915780633b5764eb146102995780633bb865b9146102b357600080fd5b80630d2242a9116101765780630d2242a91461023e57806313e7c9d8146102555780631586b3881461028857600080fd5b8063078dfbe71461019257806309be76c9146101a7575b600080fd5b6101a56101a03660046112cc565b6103d7565b005b6004546101f0906001600160901b0381169067ffffffffffffffff600160901b8204169063ffffffff600160d01b8204169060ff600160f01b8204811691600160f81b90041685565b604080516001600160901b03909616865267ffffffffffffffff909416602086015263ffffffff9092169284019290925260ff918216606084015216608082015260a0015b60405180910390f35b61024760035481565b604051908152602001610235565b61027861026336600461130f565b60026020526000908152604090205460ff1681565b6040519015158152602001610235565b61024761012c81565b61024761053d565b6102a1600181565b60405160ff9091168152602001610235565b6102a1600081565b6101a561060f565b6101a56102d1366004611331565b6106d9565b6101a5610792565b6101a5610811565b6000546102f9906001600160a01b031681565b6040516001600160a01b039091168152602001610235565b610247620f424081565b6101a5610329366004611364565b6108ae565b6101a561033c3660046113e6565b610982565b61035461034f3660046114ed565b610d65565b6040516102359190611583565b61024761036f3660046114ed565b610d89565b6103876103823660046115cc565b610d9d565b604080519215158352602083019190915201610235565b6001546102f9906001600160a01b031681565b6101a56103bf36600461167d565b610e4a565b6103876103d23660046114ed565b610efb565b6000546001600160a01b031633146104365760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b811561050e576001600160a01b0383161515806104505750805b61049c5760405162461bcd60e51b815260206004820152601560248201527f4f776e61626c653a207a65726f20616464726573730000000000000000000000604482015260640161042d565b600080546040516001600160a01b03808716939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03851673ffffffffffffffffffffffffffffffffffffffff1991821617909155600180549091169055505050565b600180546001600160a01b03851673ffffffffffffffffffffffffffffffffffffffff19909116179055505050565b6000467f000000000000000000000000000000000000000000000000000000000000000181146105e757604080517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8666020808301919091527f1a4461ab9f0dcef4a35a8660e8bbb361ae4c140fabb5b8c363bd6282ded34a908284015260608201849052306080808401919091528351808403909101815260a09092019092528051910120610609565b7f908fa95e2404b83a5db7b1d36897c689bc0c8afdbfca781ccc274d3fe381aa2c5b91505090565b6001546001600160a01b031633811461066a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e6572604482015260640161042d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0390921673ffffffffffffffffffffffffffffffffffffffff19928316179055600180549091169055565b6000546001600160a01b031633146107335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042d565b6001600160a01b038216600081815260026020908152604091829020805460ff191685151590811790915591519182527f193de8d500b5cb7b720089b258a39e9c1d0b840019a73ae7c51c3f9101732b02910160405180910390a25050565b3360009081526002602052604090205460ff166107c25760405163de19c8b360e01b815260040160405180910390fd5b6004805460ff60f01b1916600160f01b17905560408051428152600160208201527fb07c78c0c10a182d467af5ad4614b52dd7e8f37f153665394bca2866a38d252091015b60405180910390a1565b6000546001600160a01b0316331461086b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042d565b6004805460ff60f01b1916905560408051428152600060208201527fb07c78c0c10a182d467af5ad4614b52dd7e8f37f153665394bca2866a38d25209101610807565b6000546001600160a01b031633146109085760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042d565b600480547fffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffff16600160d01b63ffffffff8416908102919091179091556040805142815260208101929092527fa9f87fe67efb850d48acefd4d96c627e025b53bac2f7831cf5037daa0355800191015b60405180910390a150565b6040805160a0810182526004546001600160901b038116825267ffffffffffffffff600160901b820416602083015263ffffffff600160d01b8204169282019290925260ff600160f01b830481166060830152600160f81b909204909116608082018190528a1015610a365760405162461bcd60e51b815260206004820152600f60248201527f546f6f20666577207369676e6572730000000000000000000000000000000000604482015260640161042d565b806020015167ffffffffffffffff164203610a935760405162461bcd60e51b815260206004820152600f60248201527f436f6f6c646f776e20706572696f640000000000000000000000000000000000604482015260640161042d565b6000805b8b811015610c0357816001600160a01b03168d8d83818110610abb57610abb6116a0565b9050602002016020810190610ad0919061130f565b6001600160a01b031611610b265760405162461bcd60e51b815260206004820152601160248201527f4475706c696361746564207369676e6572000000000000000000000000000000604482015260640161042d565b610bc88d8d83818110610b3b57610b3b6116a0565b9050602002016020810190610b50919061130f565b8f8d8d85818110610b6357610b636116a0565b905060200201358c8c86818110610b7c57610b7c6116a0565b9050602002016020810190610b91919061167d565b8b8b87818110610ba357610ba36116a0565b905060200201358a8a88818110610bbc57610bbc6116a0565b90506020020135610f49565b8c8c82818110610bda57610bda6116a0565b9050602002016020810190610bef919061130f565b915080610bfb816116cc565b915050610a97565b5081516001600160901b031615610c3f57610c3f82600001516001600160901b03168e6001600160901b0316846040015163ffffffff166111ee565b6040805160a0810182526001600160901b038f168082524267ffffffffffffffff811660208085018290528786015163ffffffff168587018190526060808a015160ff9081169188018290526080808c01519091169701879052600480547fffffffffffff0000000000000000000000000000000000000000000000000000168717600160901b909502949094177fff0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff16600160d01b90920260ff60f01b191691909117600160f01b909102176001600160f81b0316600160f81b9095029490941790558351908152918201527f8d5b7dfd36756115de1bf344f2d5268ed31bd23fb5f1fd73233aecba2ebfe5dc910160405180910390a150505050505050505050505050565b6040805180820190915260068152654f7261636c6560d01b60208201525b92915050565b6000610d958383610efb565b949350505050565b6040805160a0810182526004546001600160901b038116825267ffffffffffffffff600160901b820416602083015263ffffffff600160d01b8204169282019290925260ff600160f01b8304811660608301819052600160f81b9093041660808201526000918291908290600114801590610e32575061012c826020015167ffffffffffffffff1642610e3091906116e5565b105b915191956001600160901b0390921694509092505050565b6000546001600160a01b03163314610ea45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042d565b600480546001600160f81b0316600160f81b60ff8416908102919091179091556040805142815260208101929092527f7e5216ced32aeca8e67408772764eb48b7c58cec187b9cca4b300206b68256079101610977565b600080610f3d84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610d9d92505050565b915091505b9250929050565b6001600160a01b03861660009081526002602052604090205460ff16610fb15760405162461bcd60e51b815260206004820152601460248201527f4f7261636c653a206e6f74206f70657261746f72000000000000000000000000604482015260640161042d565b6001600160a01b0386166110135760405162461bcd60e51b815260206004820152602360248201527f5065726d697373696f6e4d67723a204f70657261746f722063616e6e6f74206260448201526206520360ec1b606482015260840161042d565b42841015801561102e575061102a426103846116f8565b8411155b61107a5760405162461bcd60e51b815260206004820152600f60248201527f4f7261636c653a20455850495245440000000000000000000000000000000000604482015260640161042d565b600060405180604001604052806002815260200161190160f01b81525061109f61053d565b604080517f20907ceb44bc150c98ea3e61448c974f15c63306ae5dce6afed9a58ca7d15b7c60208201526001600160901b038a1691810191909152606081018890526080016040516020818303038152906040528051906020012060405160200161110c9392919061170b565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015611177573d6000803e3d6000fd5b505050602060405103519050876001600160a01b0316816001600160a01b0316146111e45760405162461bcd60e51b815260206004820152601960248201527f4f7261636c653a20496e76616c6964205369676e617475726500000000000000604482015260640161042d565b5050505050505050565b6000828411611223578261120585620f4240611732565b61120f9190611751565b61121c90620f42406116e5565b905061124b565b8361123184620f4240611732565b61123b9190611751565b61124890620f42406116e5565b90505b81811061129a5760405162461bcd60e51b815260206004820152601060248201527f44656c74612070657263656e7461676500000000000000000000000000000000604482015260640161042d565b50505050565b80356001600160a01b03811681146112b757600080fd5b919050565b803580151581146112b757600080fd5b6000806000606084860312156112e157600080fd5b6112ea846112a0565b92506112f8602085016112bc565b9150611306604085016112bc565b90509250925092565b60006020828403121561132157600080fd5b61132a826112a0565b9392505050565b6000806040838503121561134457600080fd5b61134d836112a0565b915061135b602084016112bc565b90509250929050565b60006020828403121561137657600080fd5b813563ffffffff8116811461132a57600080fd5b80356001600160901b03811681146112b757600080fd5b60008083601f8401126113b357600080fd5b50813567ffffffffffffffff8111156113cb57600080fd5b6020830191508360208260051b8501011115610f4257600080fd5b600080600080600080600080600080600060c08c8e03121561140757600080fd5b6114108c61138a565b9a5067ffffffffffffffff8060208e0135111561142c57600080fd5b61143c8e60208f01358f016113a1565b909b50995060408d013581101561145257600080fd5b6114628e60408f01358f016113a1565b909950975060608d013581101561147857600080fd5b6114888e60608f01358f016113a1565b909750955060808d013581101561149e57600080fd5b6114ae8e60808f01358f016113a1565b909550935060a08d01358110156114c457600080fd5b506114d58d60a08e01358e016113a1565b81935080925050509295989b509295989b9093969950565b6000806020838503121561150057600080fd5b823567ffffffffffffffff8082111561151857600080fd5b818501915085601f83011261152c57600080fd5b81358181111561153b57600080fd5b86602082850101111561154d57600080fd5b60209290920196919550909350505050565b60005b8381101561157a578181015183820152602001611562565b50506000910152565b60208152600082518060208401526115a281604085016020870161155f565b601f01601f19169190910160400192915050565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156115de57600080fd5b813567ffffffffffffffff808211156115f657600080fd5b818401915084601f83011261160a57600080fd5b81358181111561161c5761161c6115b6565b604051601f8201601f19908116603f01168101908382118183101715611644576116446115b6565b8160405282815287602084870101111561165d57600080fd5b826020860160208301376000928101602001929092525095945050505050565b60006020828403121561168f57600080fd5b813560ff8116811461132a57600080fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016116de576116de6116b6565b5060010190565b81810381811115610d8357610d836116b6565b80820180821115610d8357610d836116b6565b6000845161171d81846020890161155f565b91909101928352506020820152604001919050565b600081600019048311821515161561174c5761174c6116b6565b500290565b60008261176e57634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212205639b058a22ddf2d254064c972aea87dc6b74a25bc1271c695b2dac5c284091b64736f6c63430008100033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000001da4ebf84afae68915206855213a70a4fb693da6
-----Decoded View---------------
Arg [0] : to (address): 0x1dA4EbF84afAE68915206855213a70A4Fb693Da6
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000001da4ebf84afae68915206855213a70a4fb693da6
Loading...
Loading
Loading...
Loading
Loading...
Loading
Loading...
Loading
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.