Overview
xDAI Balance
xDAI Value
$0.00More Info
Private Name Tags
ContractCreator
View more zero value Internal Transactions in Advanced View mode
Loading...
Loading
Contract Name:
HashiManager
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
Yes with 100 runs
Other Settings:
byzantium EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
pragma solidity 0.4.24; import "./Ownable.sol"; import "openzeppelin-solidity/contracts/math/SafeMath.sol"; import "./InitializableBridge.sol"; contract HashiManager is InitializableBridge, Ownable { bytes32 internal constant N_ADAPTERS = 0xdcf7815b28c450099ee39fe328212215e261dd8ce26acdea76caf742d778991e; // keccak256(abi.encodePacked("nAdapters")) bytes32 internal constant N_REPORTERS = 0x7759f17e5239c7f5c713a5c2ca4f103cbe6896de01dabfb0d08276642d579e33; // keccak256(abi.encodePacked("nReporters")) bytes32 internal constant YAHO = 0xb947d41ce6141eb4dc972fcad3b49fe0eb8d5f59730728c86b8f6e1427912f0e; // keccak256(abi.encodePacked("yaho")) bytes32 internal constant YARU = 0x524607f5322f856f1415d60956f8220a13a3abe3281979fdb843027035724c76; // keccak256(abi.encodePacked("yaru")) bytes32 internal constant TARGET_ADDRESS = 0x2f1696ba9bd43014bc580768c9270c32ad765cbf97d2a2ba5e81ab9f1ee90561; // keccak256(abi.encodePacked("targetAddress")) bytes32 internal constant TARGET_CHAIN_ID = 0xbd2b577e24554caf96874c1f333079c108fe5afbd441f36a76920df41d10820c; // keccak256(abi.encodePacked("targetChainId")) bytes32 internal constant THRESHOLD = 0xd46c2b20c7303c2e50535d224276492e8a1eda2a3d7398e0bea254640c1154e7; // keccak256(abi.encodePacked("threshold")) bytes32 internal constant EXPECTED_THRESHOLD = 0x8d22a2c372a80e72edabc4af18641f1c8144f8c3c74dce591bace2af2a167b88; // keccak256(abi.encodePacked("expectedThreshold")) bytes32 internal constant EXPECTED_ADAPTERS_HASH = 0x21aa67cae9293b939ada82eb9133293e592da66aa847a5596523bd6d2bf2529b; // keccak256(abi.encodePacked("expectedAdapters")) function initialize(address _owner) external onlyRelevantSender returns (bool) { require(!isInitialized()); _setOwner(_owner); setInitialize(); return isInitialized(); } function setReportersAdaptersAndThreshold(address[] reporters, address[] adapters, uint256 threshold) external onlyOwner { _setArray(N_REPORTERS, "reporters", reporters); _setArray(N_ADAPTERS, "adapters", adapters); uintStorage[THRESHOLD] = threshold; } function adapters() external view returns (address[]) { return _getArray(N_ADAPTERS, "adapters"); } function reporters() external view returns (address[]) { return _getArray(N_REPORTERS, "reporters"); } function expectedAdaptersHash() external view returns (bytes32) { return bytes32(uintStorage[EXPECTED_ADAPTERS_HASH]); } function setExpectedAdaptersHash(address[] adapters_) external onlyOwner { uintStorage[EXPECTED_ADAPTERS_HASH] = uint256(keccak256(abi.encodePacked(adapters_))); } function expectedThreshold() external view returns (uint256) { return uintStorage[EXPECTED_THRESHOLD]; } function setExpectedThreshold(uint256 expectedThreshold_) external onlyOwner { uintStorage[EXPECTED_THRESHOLD] = expectedThreshold_; } function yaho() external view returns (address) { return addressStorage[YAHO]; } function setYaho(address yaho_) external onlyOwner { addressStorage[YAHO] = yaho_; } function yaru() external view returns (address) { return addressStorage[YARU]; } function setYaru(address yaru_) external onlyOwner { addressStorage[YARU] = yaru_; } function targetAddress() external view returns (address) { return addressStorage[TARGET_ADDRESS]; } function setTargetAddress(address targetAddress_) external onlyOwner { addressStorage[TARGET_ADDRESS] = targetAddress_; } function targetChainId() external view returns (uint256) { return uintStorage[TARGET_CHAIN_ID]; } function setTargetChainId(uint256 targetChainId_) external onlyOwner { uintStorage[TARGET_CHAIN_ID] = targetChainId_; } function threshold() external view returns (uint256) { return uintStorage[THRESHOLD]; } function _getArray(bytes32 keyLength, bytes32 key) internal view returns (address[]) { uint256 n = uintStorage[keyLength]; address[] memory values = new address[](n); for (uint256 i = 0; i < n; i++) values[i] = addressStorage[keccak256(abi.encodePacked(key, i))]; return values; } function _setArray(bytes32 keyLength, bytes32 key, address[] values) internal { uint256 n = uintStorage[keyLength]; for (uint256 i = 0; i < n; i++) delete addressStorage[keccak256(abi.encodePacked(key, i))]; uintStorage[keyLength] = values.length; for (uint256 j = 0; j < values.length; j++) addressStorage[keccak256(abi.encodePacked(key, j))] = values[j]; } }
pragma solidity 0.4.24; interface IUpgradeabilityOwnerStorage { function upgradeabilityOwner() external view returns (address); }
pragma solidity 0.4.24; /** * @title EternalStorage * @dev This contract holds all the necessary state variables to carry out the storage of any contract. */ contract EternalStorage { mapping(bytes32 => uint256) internal uintStorage; mapping(bytes32 => string) internal stringStorage; mapping(bytes32 => address) internal addressStorage; mapping(bytes32 => bytes) internal bytesStorage; mapping(bytes32 => bool) internal boolStorage; mapping(bytes32 => int256) internal intStorage; }
pragma solidity 0.4.24; import "../upgradeability/EternalStorage.sol"; contract Initializable is EternalStorage { bytes32 internal constant INITIALIZED = 0x0a6f646cd611241d8073675e00d1a1ff700fbf1b53fcf473de56d1e6e4b714ba; // keccak256(abi.encodePacked("isInitialized")) function setInitialize() internal { boolStorage[INITIALIZED] = true; } function isInitialized() public view returns (bool) { return boolStorage[INITIALIZED]; } }
pragma solidity 0.4.24; import "./Initializable.sol"; contract InitializableBridge is Initializable { bytes32 internal constant DEPLOYED_AT_BLOCK = 0xb120ceec05576ad0c710bc6e85f1768535e27554458f05dcbb5c65b8c7a749b0; // keccak256(abi.encodePacked("deployedAtBlock")) function deployedAtBlock() external view returns (uint256) { return uintStorage[DEPLOYED_AT_BLOCK]; } }
pragma solidity 0.4.24; import "../upgradeability/EternalStorage.sol"; import "../interfaces/IUpgradeabilityOwnerStorage.sol"; /** * @title Ownable * @dev This contract has an owner address providing basic authorization control */ contract Ownable is EternalStorage { bytes4 internal constant UPGRADEABILITY_OWNER = 0x6fde8202; // upgradeabilityOwner() /** * @dev Event to show ownership has been transferred * @param previousOwner representing the address of the previous owner * @param newOwner representing the address of the new owner */ event OwnershipTransferred(address previousOwner, address newOwner); /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner()); /* solcov ignore next */ _; } /** * @dev Throws if called by any account other than contract itself or owner. */ modifier onlyRelevantSender() { // proxy owner if used through proxy, address(0) otherwise require( !address(this).call(abi.encodeWithSelector(UPGRADEABILITY_OWNER)) || // covers usage without calling through storage proxy msg.sender == IUpgradeabilityOwnerStorage(this).upgradeabilityOwner() || // covers usage through regular proxy calls msg.sender == address(this) // covers calls through upgradeAndCall proxy method ); /* solcov ignore next */ _; } bytes32 internal constant OWNER = 0x02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c0; // keccak256(abi.encodePacked("owner")) /** * @dev Tells the address of the owner * @return the address of the owner */ function owner() public view returns (address) { return addressStorage[OWNER]; } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param newOwner the address to transfer ownership to. */ function transferOwnership(address newOwner) external onlyOwner { _setOwner(newOwner); } /** * @dev Sets a new owner address */ function _setOwner(address newOwner) internal { require(newOwner != address(0)); emit OwnershipTransferred(owner(), newOwner); addressStorage[OWNER] = newOwner; } }
pragma solidity ^0.4.24; /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 _a, uint256 _b) internal pure returns (uint256 c) { // Gas optimization: this is cheaper than asserting 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522 if (_a == 0) { return 0; } c = _a * _b; assert(c / _a == _b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ function div(uint256 _a, uint256 _b) internal pure returns (uint256) { // assert(_b > 0); // Solidity automatically throws when dividing by 0 // uint256 c = _a / _b; // assert(_a == _b * c + _a % _b); // There is no case in which this doesn't hold return _a / _b; } /** * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 _a, uint256 _b) internal pure returns (uint256) { assert(_b <= _a); return _a - _b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 _a, uint256 _b) internal pure returns (uint256 c) { c = _a + _b; assert(c >= _a); return c; } }
{ "optimizer": { "enabled": true, "runs": 100 }, "evmVersion": "byzantium", "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":false,"inputs":[{"name":"expectedThreshold_","type":"uint256"}],"name":"setExpectedThreshold","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"yaho_","type":"address"}],"name":"setYaho","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"targetChainId","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"reporters","type":"address[]"},{"name":"adapters","type":"address[]"},{"name":"threshold","type":"uint256"}],"name":"setReportersAdaptersAndThreshold","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"expectedThreshold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isInitialized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"threshold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"targetAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adapters","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"yaru","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"deployedAtBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"initialize","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"targetChainId_","type":"uint256"}],"name":"setTargetChainId","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"yaru_","type":"address"}],"name":"setYaru","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"adapters_","type":"address[]"}],"name":"setExpectedAdaptersHash","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"yaho","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reporters","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"expectedAdaptersHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"targetAddress_","type":"address"}],"name":"setTargetAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"previousOwner","type":"address"},{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]
Contract Creation Code
608060405234801561001057600080fd5b5061121a806100206000396000f3006080604052600436106101035763ffffffff60e060020a6000350416630b4a8bbb81146101085780630c0546ca14610122578063146ffb26146101435780631945c31f1461016a5780632690ff8b14610199578063392e53cd146101ae57806342cde4e8146101d75780635210eb56146101ec5780636b6e93d51461021d578063789b11d7146102825780638da5cb5b146102975780639a454b99146102ac578063c4d66de8146102c1578063dbe64a15146102e2578063dfa3e78f146102fa578063e155e6471461031b578063ee4937ba1461033b578063f144d48614610350578063f238ca2614610365578063f2fde38b1461037a578063fd8b23701461039b575b600080fd5b34801561011457600080fd5b506101206004356103bc565b005b34801561012e57600080fd5b50610120600160a060020a0360043516610425565b34801561014f57600080fd5b506101586104ab565b60408051918252519081900360200190f35b34801561017657600080fd5b5061012060246004803582810192908201359181359182019101356044356104f9565b3480156101a557600080fd5b5061015861065c565b3480156101ba57600080fd5b506101c36106aa565b604080519115158252519081900360200190f35b3480156101e357600080fd5b506101586106fb565b3480156101f857600080fd5b50610201610749565b60408051600160a060020a039092168252519081900360200190f35b34801561022957600080fd5b506102326107a0565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561026e578181015183820152602001610256565b505050509050019250505060405180910390f35b34801561028e57600080fd5b506102016107f1565b3480156102a357600080fd5b50610201610848565b3480156102b857600080fd5b5061015861089f565b3480156102cd57600080fd5b506101c3600160a060020a03600435166108ed565b3480156102ee57600080fd5b50610120600435610a73565b34801561030657600080fd5b50610120600160a060020a0360043516610adc565b34801561032757600080fd5b506101206004803560248101910135610b62565b34801561034757600080fd5b50610201610c4f565b34801561035c57600080fd5b50610232610ca6565b34801561037157600080fd5b50610158610cf2565b34801561038657600080fd5b50610120600160a060020a0360043516610d40565b3480156103a757600080fd5b50610120600160a060020a0360043516610d68565b6103c4610848565b600160a060020a031633146103d857600080fd5b7f8d22a2c372a80e72edabc4af18641f1c8144f8c3c74dce591bace2af2a167b8860009081526020527fcafa7e41014ddabd84add1a71d8e09bb89a48a4c5a138bd26d9755a66a2f99f555565b61042d610848565b600160a060020a0316331461044157600080fd5b7fb947d41ce6141eb4dc972fcad3b49fe0eb8d5f59730728c86b8f6e1427912f0e60005260026020527f0dadc510f212f2a92515c853e3683a83ce49ff155625dd5456929348b51dec068054600160a060020a031916600160a060020a0392909216919091179055565b7fbd2b577e24554caf96874c1f333079c108fe5afbd441f36a76920df41d10820c60009081526020527fe504c555886dd0dd62c7df3d04fe466666eaa051060b2567353319bed2d7ca5c5490565b610501610848565b600160a060020a0316331461051557600080fd5b6105907f7759f17e5239c7f5c713a5c2ca4f103cbe6896de01dabfb0d08276642d579e336001027f7265706f7274657273000000000000000000000000000000000000000000000087878080602002602001604051908101604052809392919081815260200183836020028082843750610dee945050505050565b61060b7fdcf7815b28c450099ee39fe328212215e261dd8ce26acdea76caf742d778991e6001027f616461707465727300000000000000000000000000000000000000000000000085858080602002602001604051908101604052809392919081815260200183836020028082843750610dee945050505050565b7fd46c2b20c7303c2e50535d224276492e8a1eda2a3d7398e0bea254640c1154e760009081526020527f31926f5037b9212811db282c90f46da69755c6ca200913531b96083e9c1bc42b5550505050565b7f8d22a2c372a80e72edabc4af18641f1c8144f8c3c74dce591bace2af2a167b8860009081526020527fcafa7e41014ddabd84add1a71d8e09bb89a48a4c5a138bd26d9755a66a2f99f55490565b7f0a6f646cd611241d8073675e00d1a1ff700fbf1b53fcf473de56d1e6e4b714ba60005260046020527f078d888f9b66f3f8bfa10909e31f1e16240db73449f0500afdbbe3a70da457cc5460ff1690565b7fd46c2b20c7303c2e50535d224276492e8a1eda2a3d7398e0bea254640c1154e760009081526020527f31926f5037b9212811db282c90f46da69755c6ca200913531b96083e9c1bc42b5490565b7f2f1696ba9bd43014bc580768c9270c32ad765cbf97d2a2ba5e81ab9f1ee9056160005260026020527f0f0d504bd19845c69f8d799010412045606611d637d1764172e2e3257b54526b54600160a060020a031690565b60606107ec7fdcf7815b28c450099ee39fe328212215e261dd8ce26acdea76caf742d778991e7f6164617074657273000000000000000000000000000000000000000000000000610faa565b905090565b7f524607f5322f856f1415d60956f8220a13a3abe3281979fdb843027035724c7660005260026020527f71ae00b468404f7b1185c0b13cbb80b40213288bb12eef462014ce80f3720b9754600160a060020a031690565b7f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c060005260026020527fb7802e97e87ef2842a6cce7da7ffaeaedaa2f61a6a7870b23d9d01fc9b73712e54600160a060020a031690565b7fb120ceec05576ad0c710bc6e85f1768535e27554458f05dcbb5c65b8c7a749b060009081526020527fe66bef0282a446f9848e2903380099bb6e431483ee78778868f33b4a154c818b5490565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f6fde8202000000000000000000000000000000000000000000000000000000001781529151815160009330939291829190808383895b8381101561096e578181015183820152602001610956565b50505050905090810190601f16801561099b5780820380516001836020036101000a031916815260200191505b509150506000604051808303816000865af19150501580610a2d575030600160a060020a0316636fde82026040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156109f557600080fd5b505af1158015610a09573d6000803e3d6000fd5b505050506040513d6020811015610a1f57600080fd5b5051600160a060020a031633145b80610a3757503330145b1515610a4257600080fd5b610a4a6106aa565b15610a5457600080fd5b610a5d826110cd565b610a65611197565b610a6d6106aa565b92915050565b610a7b610848565b600160a060020a03163314610a8f57600080fd5b7fbd2b577e24554caf96874c1f333079c108fe5afbd441f36a76920df41d10820c60009081526020527fe504c555886dd0dd62c7df3d04fe466666eaa051060b2567353319bed2d7ca5c55565b610ae4610848565b600160a060020a03163314610af857600080fd5b7f524607f5322f856f1415d60956f8220a13a3abe3281979fdb843027035724c7660005260026020527f71ae00b468404f7b1185c0b13cbb80b40213288bb12eef462014ce80f3720b978054600160a060020a031916600160a060020a0392909216919091179055565b610b6a610848565b600160a060020a03163314610b7e57600080fd5b8181604051602001808383602002808284378201915050925050506040516020818303038152906040526040518082805190602001908083835b60208310610bd75780518252601f199092019160209182019101610bb8565b51815160209384036101000a60001901801990921691161790526040519190930181900390207f21aa67cae9293b939ada82eb9133293e592da66aa847a5596523bd6d2bf2529b6000908152909252507f804a4d5bac981629ca8de14c2a7f7d91bcaba03d4cb4f521b42784ab471b37b85550505050565b7fb947d41ce6141eb4dc972fcad3b49fe0eb8d5f59730728c86b8f6e1427912f0e60005260026020527f0dadc510f212f2a92515c853e3683a83ce49ff155625dd5456929348b51dec0654600160a060020a031690565b60606107ec7f7759f17e5239c7f5c713a5c2ca4f103cbe6896de01dabfb0d08276642d579e337f7265706f72746572730000000000000000000000000000000000000000000000610faa565b7f21aa67cae9293b939ada82eb9133293e592da66aa847a5596523bd6d2bf2529b60009081526020527f804a4d5bac981629ca8de14c2a7f7d91bcaba03d4cb4f521b42784ab471b37b85490565b610d48610848565b600160a060020a03163314610d5c57600080fd5b610d65816110cd565b50565b610d70610848565b600160a060020a03163314610d8457600080fd5b7f2f1696ba9bd43014bc580768c9270c32ad765cbf97d2a2ba5e81ab9f1ee9056160005260026020527f0f0d504bd19845c69f8d799010412045606611d637d1764172e2e3257b54526b8054600160a060020a031916600160a060020a0392909216919091179055565b60008381526020819052604081205490805b82821015610eb357604080516020808201889052818301859052825180830384018152606090920192839052815160029360009392909182918401908083835b60208310610e5f5780518252601f199092019160209182019101610e40565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000208054600160a060020a031916905550505060019190910190610e00565b5082516000868152602081905260408120919091555b8351811015610fa2578381815181101515610ee057fe5b60209081029091018101516040805180840189905280820185905281518082038301815260609091019182905280519293600293600093918291908401908083835b60208310610f415780518252601f199092019160209182019101610f22565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000208054600160a060020a031916600160a060020a039590951694909417909355505050600101610ec9565b505050505050565b60008281526020818152604080832054815181815281840281019093019091526060929091839190838015610fe9578160200160208202803883390190505b509150600090505b828110156110c457604080516020808201889052818301849052825180830384018152606090920192839052815160029360009392909182918401908083835b602083106110505780518252601f199092019160209182019101611031565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020548551600160a060020a03909116935085925084915081106110a557fe5b600160a060020a03909216602092830290910190910152600101610ff1565b50949350505050565b600160a060020a03811615156110e257600080fd5b7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e061110b610848565b60408051600160a060020a03928316815291841660208301528051918290030190a17f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c060005260026020527fb7802e97e87ef2842a6cce7da7ffaeaedaa2f61a6a7870b23d9d01fc9b73712e8054600160a060020a031916600160a060020a0392909216919091179055565b7f0a6f646cd611241d8073675e00d1a1ff700fbf1b53fcf473de56d1e6e4b714ba60005260046020527f078d888f9b66f3f8bfa10909e31f1e16240db73449f0500afdbbe3a70da457cc805460ff191660011790555600a165627a7a7230582033d7b03bf05bc77fc261d54a616ecc84407245de6a40eba6f014604553b5d3310029
Deployed Bytecode
0x6080604052600436106101035763ffffffff60e060020a6000350416630b4a8bbb81146101085780630c0546ca14610122578063146ffb26146101435780631945c31f1461016a5780632690ff8b14610199578063392e53cd146101ae57806342cde4e8146101d75780635210eb56146101ec5780636b6e93d51461021d578063789b11d7146102825780638da5cb5b146102975780639a454b99146102ac578063c4d66de8146102c1578063dbe64a15146102e2578063dfa3e78f146102fa578063e155e6471461031b578063ee4937ba1461033b578063f144d48614610350578063f238ca2614610365578063f2fde38b1461037a578063fd8b23701461039b575b600080fd5b34801561011457600080fd5b506101206004356103bc565b005b34801561012e57600080fd5b50610120600160a060020a0360043516610425565b34801561014f57600080fd5b506101586104ab565b60408051918252519081900360200190f35b34801561017657600080fd5b5061012060246004803582810192908201359181359182019101356044356104f9565b3480156101a557600080fd5b5061015861065c565b3480156101ba57600080fd5b506101c36106aa565b604080519115158252519081900360200190f35b3480156101e357600080fd5b506101586106fb565b3480156101f857600080fd5b50610201610749565b60408051600160a060020a039092168252519081900360200190f35b34801561022957600080fd5b506102326107a0565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561026e578181015183820152602001610256565b505050509050019250505060405180910390f35b34801561028e57600080fd5b506102016107f1565b3480156102a357600080fd5b50610201610848565b3480156102b857600080fd5b5061015861089f565b3480156102cd57600080fd5b506101c3600160a060020a03600435166108ed565b3480156102ee57600080fd5b50610120600435610a73565b34801561030657600080fd5b50610120600160a060020a0360043516610adc565b34801561032757600080fd5b506101206004803560248101910135610b62565b34801561034757600080fd5b50610201610c4f565b34801561035c57600080fd5b50610232610ca6565b34801561037157600080fd5b50610158610cf2565b34801561038657600080fd5b50610120600160a060020a0360043516610d40565b3480156103a757600080fd5b50610120600160a060020a0360043516610d68565b6103c4610848565b600160a060020a031633146103d857600080fd5b7f8d22a2c372a80e72edabc4af18641f1c8144f8c3c74dce591bace2af2a167b8860009081526020527fcafa7e41014ddabd84add1a71d8e09bb89a48a4c5a138bd26d9755a66a2f99f555565b61042d610848565b600160a060020a0316331461044157600080fd5b7fb947d41ce6141eb4dc972fcad3b49fe0eb8d5f59730728c86b8f6e1427912f0e60005260026020527f0dadc510f212f2a92515c853e3683a83ce49ff155625dd5456929348b51dec068054600160a060020a031916600160a060020a0392909216919091179055565b7fbd2b577e24554caf96874c1f333079c108fe5afbd441f36a76920df41d10820c60009081526020527fe504c555886dd0dd62c7df3d04fe466666eaa051060b2567353319bed2d7ca5c5490565b610501610848565b600160a060020a0316331461051557600080fd5b6105907f7759f17e5239c7f5c713a5c2ca4f103cbe6896de01dabfb0d08276642d579e336001027f7265706f7274657273000000000000000000000000000000000000000000000087878080602002602001604051908101604052809392919081815260200183836020028082843750610dee945050505050565b61060b7fdcf7815b28c450099ee39fe328212215e261dd8ce26acdea76caf742d778991e6001027f616461707465727300000000000000000000000000000000000000000000000085858080602002602001604051908101604052809392919081815260200183836020028082843750610dee945050505050565b7fd46c2b20c7303c2e50535d224276492e8a1eda2a3d7398e0bea254640c1154e760009081526020527f31926f5037b9212811db282c90f46da69755c6ca200913531b96083e9c1bc42b5550505050565b7f8d22a2c372a80e72edabc4af18641f1c8144f8c3c74dce591bace2af2a167b8860009081526020527fcafa7e41014ddabd84add1a71d8e09bb89a48a4c5a138bd26d9755a66a2f99f55490565b7f0a6f646cd611241d8073675e00d1a1ff700fbf1b53fcf473de56d1e6e4b714ba60005260046020527f078d888f9b66f3f8bfa10909e31f1e16240db73449f0500afdbbe3a70da457cc5460ff1690565b7fd46c2b20c7303c2e50535d224276492e8a1eda2a3d7398e0bea254640c1154e760009081526020527f31926f5037b9212811db282c90f46da69755c6ca200913531b96083e9c1bc42b5490565b7f2f1696ba9bd43014bc580768c9270c32ad765cbf97d2a2ba5e81ab9f1ee9056160005260026020527f0f0d504bd19845c69f8d799010412045606611d637d1764172e2e3257b54526b54600160a060020a031690565b60606107ec7fdcf7815b28c450099ee39fe328212215e261dd8ce26acdea76caf742d778991e7f6164617074657273000000000000000000000000000000000000000000000000610faa565b905090565b7f524607f5322f856f1415d60956f8220a13a3abe3281979fdb843027035724c7660005260026020527f71ae00b468404f7b1185c0b13cbb80b40213288bb12eef462014ce80f3720b9754600160a060020a031690565b7f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c060005260026020527fb7802e97e87ef2842a6cce7da7ffaeaedaa2f61a6a7870b23d9d01fc9b73712e54600160a060020a031690565b7fb120ceec05576ad0c710bc6e85f1768535e27554458f05dcbb5c65b8c7a749b060009081526020527fe66bef0282a446f9848e2903380099bb6e431483ee78778868f33b4a154c818b5490565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f6fde8202000000000000000000000000000000000000000000000000000000001781529151815160009330939291829190808383895b8381101561096e578181015183820152602001610956565b50505050905090810190601f16801561099b5780820380516001836020036101000a031916815260200191505b509150506000604051808303816000865af19150501580610a2d575030600160a060020a0316636fde82026040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156109f557600080fd5b505af1158015610a09573d6000803e3d6000fd5b505050506040513d6020811015610a1f57600080fd5b5051600160a060020a031633145b80610a3757503330145b1515610a4257600080fd5b610a4a6106aa565b15610a5457600080fd5b610a5d826110cd565b610a65611197565b610a6d6106aa565b92915050565b610a7b610848565b600160a060020a03163314610a8f57600080fd5b7fbd2b577e24554caf96874c1f333079c108fe5afbd441f36a76920df41d10820c60009081526020527fe504c555886dd0dd62c7df3d04fe466666eaa051060b2567353319bed2d7ca5c55565b610ae4610848565b600160a060020a03163314610af857600080fd5b7f524607f5322f856f1415d60956f8220a13a3abe3281979fdb843027035724c7660005260026020527f71ae00b468404f7b1185c0b13cbb80b40213288bb12eef462014ce80f3720b978054600160a060020a031916600160a060020a0392909216919091179055565b610b6a610848565b600160a060020a03163314610b7e57600080fd5b8181604051602001808383602002808284378201915050925050506040516020818303038152906040526040518082805190602001908083835b60208310610bd75780518252601f199092019160209182019101610bb8565b51815160209384036101000a60001901801990921691161790526040519190930181900390207f21aa67cae9293b939ada82eb9133293e592da66aa847a5596523bd6d2bf2529b6000908152909252507f804a4d5bac981629ca8de14c2a7f7d91bcaba03d4cb4f521b42784ab471b37b85550505050565b7fb947d41ce6141eb4dc972fcad3b49fe0eb8d5f59730728c86b8f6e1427912f0e60005260026020527f0dadc510f212f2a92515c853e3683a83ce49ff155625dd5456929348b51dec0654600160a060020a031690565b60606107ec7f7759f17e5239c7f5c713a5c2ca4f103cbe6896de01dabfb0d08276642d579e337f7265706f72746572730000000000000000000000000000000000000000000000610faa565b7f21aa67cae9293b939ada82eb9133293e592da66aa847a5596523bd6d2bf2529b60009081526020527f804a4d5bac981629ca8de14c2a7f7d91bcaba03d4cb4f521b42784ab471b37b85490565b610d48610848565b600160a060020a03163314610d5c57600080fd5b610d65816110cd565b50565b610d70610848565b600160a060020a03163314610d8457600080fd5b7f2f1696ba9bd43014bc580768c9270c32ad765cbf97d2a2ba5e81ab9f1ee9056160005260026020527f0f0d504bd19845c69f8d799010412045606611d637d1764172e2e3257b54526b8054600160a060020a031916600160a060020a0392909216919091179055565b60008381526020819052604081205490805b82821015610eb357604080516020808201889052818301859052825180830384018152606090920192839052815160029360009392909182918401908083835b60208310610e5f5780518252601f199092019160209182019101610e40565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000208054600160a060020a031916905550505060019190910190610e00565b5082516000868152602081905260408120919091555b8351811015610fa2578381815181101515610ee057fe5b60209081029091018101516040805180840189905280820185905281518082038301815260609091019182905280519293600293600093918291908401908083835b60208310610f415780518252601f199092019160209182019101610f22565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000208054600160a060020a031916600160a060020a039590951694909417909355505050600101610ec9565b505050505050565b60008281526020818152604080832054815181815281840281019093019091526060929091839190838015610fe9578160200160208202803883390190505b509150600090505b828110156110c457604080516020808201889052818301849052825180830384018152606090920192839052815160029360009392909182918401908083835b602083106110505780518252601f199092019160209182019101611031565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020548551600160a060020a03909116935085925084915081106110a557fe5b600160a060020a03909216602092830290910190910152600101610ff1565b50949350505050565b600160a060020a03811615156110e257600080fd5b7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e061110b610848565b60408051600160a060020a03928316815291841660208301528051918290030190a17f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c060005260026020527fb7802e97e87ef2842a6cce7da7ffaeaedaa2f61a6a7870b23d9d01fc9b73712e8054600160a060020a031916600160a060020a0392909216919091179055565b7f0a6f646cd611241d8073675e00d1a1ff700fbf1b53fcf473de56d1e6e4b714ba60005260046020527f078d888f9b66f3f8bfa10909e31f1e16240db73449f0500afdbbe3a70da457cc805460ff191660011790555600a165627a7a7230582033d7b03bf05bc77fc261d54a616ecc84407245de6a40eba6f014604553b5d3310029
Loading...
Loading
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
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.