Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 6 internal transactions
Advanced mode:
Parent Transaction Hash | Method | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|---|
- | 7862114 | 2127 days ago | Contract Creation | 0 ETH | |||
- | 7862114 | 2127 days ago | Contract Creation | 0 ETH | |||
- | 7861650 | 2127 days ago | Contract Creation | 0 ETH | |||
- | 7861650 | 2127 days ago | Contract Creation | 0 ETH | |||
- | 7150502 | 2247 days ago | Contract Creation | 0 ETH | |||
- | 7150502 | 2247 days ago | Contract Creation | 0 ETH |
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
AraRegistry
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2019-01-30 */ pragma solidity ^0.4.24; // File: contracts/AraProxy.sol /** * @title AraProxy * @dev Gives the possibility to delegate any call to a foreign implementation. */ contract AraProxy { bytes32 private constant registryPosition_ = keccak256("io.ara.proxy.registry"); bytes32 private constant implementationPosition_ = keccak256("io.ara.proxy.implementation"); modifier restricted() { bytes32 registryPosition = registryPosition_; address registryAddress; assembly { registryAddress := sload(registryPosition) } require( msg.sender == registryAddress, "Only the AraRegistry can upgrade this proxy." ); _; } /** * @dev the constructor sets the AraRegistry address */ constructor(address _registryAddress, address _implementationAddress) public { bytes32 registryPosition = registryPosition_; bytes32 implementationPosition = implementationPosition_; assembly { sstore(registryPosition, _registryAddress) sstore(implementationPosition, _implementationAddress) } } function setImplementation(address _newImplementation) public restricted { require(_newImplementation != address(0)); bytes32 implementationPosition = implementationPosition_; assembly { sstore(implementationPosition, _newImplementation) } } /** * @dev Fallback function allowing to perform a delegatecall to the given implementation. * This function will return whatever the implementation call returns */ function () payable public { bytes32 implementationPosition = implementationPosition_; address _impl; assembly { _impl := sload(implementationPosition) } assembly { let ptr := mload(0x40) calldatacopy(ptr, 0, calldatasize) let result := delegatecall(gas, _impl, ptr, calldatasize, 0, 0) let size := returndatasize returndatacopy(ptr, 0, size) switch result case 0 { revert(ptr, size) } default { return(ptr, size) } } } } // File: contracts/AraRegistry.sol contract AraRegistry { address public owner_; mapping (bytes32 => UpgradeableContract) private contracts_; // keccak256(contractname) => struct struct UpgradeableContract { bool initialized_; address proxy_; string latestVersion_; mapping (string => address) versions_; } event UpgradeableContractAdded(bytes32 _contractName, string _version, address _address); event ContractUpgraded(bytes32 _contractName, string _version, address _address); event ProxyDeployed(bytes32 _contractName, address _address); constructor() public { owner_ = msg.sender; } modifier restricted() { require ( msg.sender == owner_, "Sender not authorized." ); _; } function getLatestVersionAddress(bytes32 _contractName) public view returns (address) { return contracts_[_contractName].versions_[contracts_[_contractName].latestVersion_]; } function getUpgradeableContractAddress(bytes32 _contractName, string _version) public view returns (address) { return contracts_[_contractName].versions_[_version]; } function addNewUpgradeableContract(bytes32 _contractName, string _version, bytes _code, bytes _data) public restricted { require(!contracts_[_contractName].initialized_, "Upgradeable contract already exists. Try upgrading instead."); address deployedAddress; assembly { deployedAddress := create(0, add(_code, 0x20), mload(_code)) } contracts_[_contractName].initialized_ = true; contracts_[_contractName].latestVersion_ = _version; contracts_[_contractName].versions_[_version] = deployedAddress; _deployProxy(_contractName, deployedAddress, _data); emit UpgradeableContractAdded(_contractName, _version, deployedAddress); } function upgradeContract(bytes32 _contractName, string _version, bytes _code) public restricted { require(contracts_[_contractName].initialized_, "Upgradeable contract must exist before it can be upgraded. Try adding one instead."); address deployedAddress; assembly { deployedAddress := create(0, add(_code, 0x20), mload(_code)) } AraProxy proxy = AraProxy(contracts_[_contractName].proxy_); proxy.setImplementation(deployedAddress); contracts_[_contractName].latestVersion_ = _version; contracts_[_contractName].versions_[_version] = deployedAddress; emit ContractUpgraded(_contractName, _version, deployedAddress); } function _deployProxy(bytes32 _contractName, address _implementationAddress, bytes _data) private { require(contracts_[_contractName].proxy_ == address(0), "Only one proxy can exist per upgradeable contract."); AraProxy proxy = new AraProxy(address(this), _implementationAddress); require(address(proxy).call(abi.encodeWithSignature("init(bytes)", _data)), "Init failed."); contracts_[_contractName].proxy_ = proxy; emit ProxyDeployed(_contractName, proxy); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":false,"inputs":[{"name":"_contractName","type":"bytes32"},{"name":"_version","type":"string"},{"name":"_code","type":"bytes"},{"name":"_data","type":"bytes"}],"name":"addNewUpgradeableContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_contractName","type":"bytes32"}],"name":"getLatestVersionAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_contractName","type":"bytes32"},{"name":"_version","type":"string"},{"name":"_code","type":"bytes"}],"name":"upgradeContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner_","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_contractName","type":"bytes32"},{"name":"_version","type":"string"}],"name":"getUpgradeableContractAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_contractName","type":"bytes32"},{"indexed":false,"name":"_version","type":"string"},{"indexed":false,"name":"_address","type":"address"}],"name":"UpgradeableContractAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_contractName","type":"bytes32"},{"indexed":false,"name":"_version","type":"string"},{"indexed":false,"name":"_address","type":"address"}],"name":"ContractUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_contractName","type":"bytes32"},{"indexed":false,"name":"_address","type":"address"}],"name":"ProxyDeployed","type":"event"}]
Contract Creation Code
608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061164c806100606000396000f30060806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630726755b14610072578063a9a2f2eb14610175578063d4520d22146101e6578063e7663079146102a3578063f8df27b1146102fa575b600080fd5b34801561007e57600080fd5b506101736004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506103b1565b005b34801561018157600080fd5b506101a4600480360381019080803560001916906020019092919050505061076a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101f257600080fd5b506102a16004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061083e565b005b3480156102af57600080fd5b506102b8610cd0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561030657600080fd5b5061036f6004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610cf5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610477576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b60016000866000191660001916815260200190815260200160002060000160009054906101000a900460ff1615151561053e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b8152602001807f5570677261646561626c6520636f6e747261637420616c72656164792065786981526020017f7374732e2054727920757067726164696e6720696e73746561642e000000000081525060400191505060405180910390fd5b8251602084016000f090506001806000876000191660001916815260200190815260200160002060000160006101000a81548160ff0219169083151502179055508360016000876000191660001916815260200190815260200160002060010190805190602001906105b1929190611205565b5080600160008760001916600019168152602001908152602001600020600201856040518082805190602001908083835b60208310151561060757805182526020820191506020810190506020830392506105e2565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610683858284610da7565b7f931f56ddf3dd3773b55ba19012b5eed0c84937b72b693d6bf57ac3986143295a858583604051808460001916600019168152602001806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561072757808201518184015260208101905061070c565b50505050905090810190601f1680156107545780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050505050565b600060016000836000191660001916815260200190815260200160002060020160016000846000191660001916815260200190815260200160002060010160405180828054600181600116156101000203166002900480156108035780601f106107e1576101008083540402835291820191610803565b820191906000526020600020905b8154815290600101906020018083116107ef575b5050915050908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610905576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b60016000866000191660001916815260200190815260200160002060000160009054906101000a900460ff1615156109f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260528152602001807f5570677261646561626c6520636f6e7472616374206d7573742065786973742081526020017f6265666f72652069742063616e2062652075706772616465642e20547279206181526020017f6464696e67206f6e6520696e73746561642e000000000000000000000000000081525060600191505060405180910390fd5b8251602084016000f0915060016000866000191660001916815260200190815260200160002060000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663d784d426836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015610ad857600080fd5b505af1158015610aec573d6000803e3d6000fd5b50505050836001600087600019166000191681526020019081526020016000206001019080519060200190610b22929190611205565b5081600160008760001916600019168152602001908152602001600020600201856040518082805190602001908083835b602083101515610b785780518252602082019150602081019050602083039250610b53565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f6d4b7661ad48c3dedcdd78313e4ae8888ee40a2e08ee256b9e33c2d5f749dbeb858584604051808460001916600019168152602001806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015610c8d578082015181840152602081019050610c72565b50505050905090810190601f168015610cba5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008460001916600019168152602001908152602001600020600201826040518082805190602001908083835b602083101515610d4b5780518252602082019150602081019050602083039250610d26565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff1660016000866000191660001916815260200190815260200160002060000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610eb0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f4f6e6c79206f6e652070726f78792063616e206578697374207065722075706781526020017f7261646561626c6520636f6e74726163742e000000000000000000000000000081525060400191505060405180910390fd5b3083610eba611285565b808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050604051809103906000f080158015610f3f573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff16826040516024018080602001828103825283818151815260200191508051906020019080838360005b83811015610f9d578082015181840152602081019050610f82565b50505050905090810190601f168015610fca5780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040527f4ddf47d4000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405180828051906020019080838360005b8381101561107957808201518184015260208101905061105e565b50505050905090810190601f1680156110a65780820380516001836020036101000a031916815260200191505b509150506000604051808303816000865af1915050151561112f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f496e6974206661696c65642e000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060016000866000191660001916815260200190815260200160002060000160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f90f293438888f9eb36cfc860a1bccfc3da50bef1e3e97422deadaede67c93a9f84826040518083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061124657805160ff1916838001178555611274565b82800160010185558215611274579182015b82811115611273578251825591602001919060010190611258565b5b5090506112819190611295565b5090565b604051610366806112bb83390190565b6112b791905b808211156112b357600081600090555060010161129b565b5090565b905600608060405234801561001057600080fd5b50604051604080610366833981018060405281019080805190602001909291908051906020019092919050505060008060405180807f696f2e6172612e70726f78792e7265676973747279000000000000000000000081525060150190506040518091039020915060405180807f696f2e6172612e70726f78792e696d706c656d656e746174696f6e0000000000815250601b019050604051809103902090508382558281555050505061029d806100c96000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063d784d426146100a7575b60008060405180807f696f2e6172612e70726f78792e696d706c656d656e746174696f6e0000000000815250601b019050604051809103902091508154905060405136600082376000803683855af43d806000843e81600081146100a3578184f35b8184fd5b3480156100b357600080fd5b506100e8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506100ea565b005b600080600060405180807f696f2e6172612e70726f78792e72656769737472790000000000000000000000815250601501905060405180910390209150815490508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156101f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4f6e6c79207468652041726152656769737472792063616e207570677261646581526020017f20746869732070726f78792e000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561023057600080fd5b60405180807f696f2e6172612e70726f78792e696d706c656d656e746174696f6e0000000000815250601b01905060405180910390209250838355505050505600a165627a7a7230582005642ac97894b238b61c8ffa819c5dc691441cccd53318629232345ba3846b4a0029a165627a7a723058207d3419398c4d599785e79eecefec172631e086031ce6074caf141272207de3080029
Deployed Bytecode
0x60806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630726755b14610072578063a9a2f2eb14610175578063d4520d22146101e6578063e7663079146102a3578063f8df27b1146102fa575b600080fd5b34801561007e57600080fd5b506101736004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506103b1565b005b34801561018157600080fd5b506101a4600480360381019080803560001916906020019092919050505061076a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101f257600080fd5b506102a16004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061083e565b005b3480156102af57600080fd5b506102b8610cd0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561030657600080fd5b5061036f6004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610cf5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610477576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b60016000866000191660001916815260200190815260200160002060000160009054906101000a900460ff1615151561053e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b8152602001807f5570677261646561626c6520636f6e747261637420616c72656164792065786981526020017f7374732e2054727920757067726164696e6720696e73746561642e000000000081525060400191505060405180910390fd5b8251602084016000f090506001806000876000191660001916815260200190815260200160002060000160006101000a81548160ff0219169083151502179055508360016000876000191660001916815260200190815260200160002060010190805190602001906105b1929190611205565b5080600160008760001916600019168152602001908152602001600020600201856040518082805190602001908083835b60208310151561060757805182526020820191506020810190506020830392506105e2565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610683858284610da7565b7f931f56ddf3dd3773b55ba19012b5eed0c84937b72b693d6bf57ac3986143295a858583604051808460001916600019168152602001806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561072757808201518184015260208101905061070c565b50505050905090810190601f1680156107545780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050505050565b600060016000836000191660001916815260200190815260200160002060020160016000846000191660001916815260200190815260200160002060010160405180828054600181600116156101000203166002900480156108035780601f106107e1576101008083540402835291820191610803565b820191906000526020600020905b8154815290600101906020018083116107ef575b5050915050908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610905576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b60016000866000191660001916815260200190815260200160002060000160009054906101000a900460ff1615156109f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260528152602001807f5570677261646561626c6520636f6e7472616374206d7573742065786973742081526020017f6265666f72652069742063616e2062652075706772616465642e20547279206181526020017f6464696e67206f6e6520696e73746561642e000000000000000000000000000081525060600191505060405180910390fd5b8251602084016000f0915060016000866000191660001916815260200190815260200160002060000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663d784d426836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015610ad857600080fd5b505af1158015610aec573d6000803e3d6000fd5b50505050836001600087600019166000191681526020019081526020016000206001019080519060200190610b22929190611205565b5081600160008760001916600019168152602001908152602001600020600201856040518082805190602001908083835b602083101515610b785780518252602082019150602081019050602083039250610b53565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f6d4b7661ad48c3dedcdd78313e4ae8888ee40a2e08ee256b9e33c2d5f749dbeb858584604051808460001916600019168152602001806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015610c8d578082015181840152602081019050610c72565b50505050905090810190601f168015610cba5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008460001916600019168152602001908152602001600020600201826040518082805190602001908083835b602083101515610d4b5780518252602082019150602081019050602083039250610d26565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff1660016000866000191660001916815260200190815260200160002060000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610eb0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f4f6e6c79206f6e652070726f78792063616e206578697374207065722075706781526020017f7261646561626c6520636f6e74726163742e000000000000000000000000000081525060400191505060405180910390fd5b3083610eba611285565b808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050604051809103906000f080158015610f3f573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff16826040516024018080602001828103825283818151815260200191508051906020019080838360005b83811015610f9d578082015181840152602081019050610f82565b50505050905090810190601f168015610fca5780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040527f4ddf47d4000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405180828051906020019080838360005b8381101561107957808201518184015260208101905061105e565b50505050905090810190601f1680156110a65780820380516001836020036101000a031916815260200191505b509150506000604051808303816000865af1915050151561112f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f496e6974206661696c65642e000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060016000866000191660001916815260200190815260200160002060000160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f90f293438888f9eb36cfc860a1bccfc3da50bef1e3e97422deadaede67c93a9f84826040518083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061124657805160ff1916838001178555611274565b82800160010185558215611274579182015b82811115611273578251825591602001919060010190611258565b5b5090506112819190611295565b5090565b604051610366806112bb83390190565b6112b791905b808211156112b357600081600090555060010161129b565b5090565b905600608060405234801561001057600080fd5b50604051604080610366833981018060405281019080805190602001909291908051906020019092919050505060008060405180807f696f2e6172612e70726f78792e7265676973747279000000000000000000000081525060150190506040518091039020915060405180807f696f2e6172612e70726f78792e696d706c656d656e746174696f6e0000000000815250601b019050604051809103902090508382558281555050505061029d806100c96000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063d784d426146100a7575b60008060405180807f696f2e6172612e70726f78792e696d706c656d656e746174696f6e0000000000815250601b019050604051809103902091508154905060405136600082376000803683855af43d806000843e81600081146100a3578184f35b8184fd5b3480156100b357600080fd5b506100e8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506100ea565b005b600080600060405180807f696f2e6172612e70726f78792e72656769737472790000000000000000000000815250601501905060405180910390209150815490508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156101f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4f6e6c79207468652041726152656769737472792063616e207570677261646581526020017f20746869732070726f78792e000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561023057600080fd5b60405180807f696f2e6172612e70726f78792e696d706c656d656e746174696f6e0000000000815250601b01905060405180910390209250838355505050505600a165627a7a7230582005642ac97894b238b61c8ffa819c5dc691441cccd53318629232345ba3846b4a0029a165627a7a723058207d3419398c4d599785e79eecefec172631e086031ce6074caf141272207de3080029
Swarm Source
bzzr://7d3419398c4d599785e79eecefec172631e086031ce6074caf141272207de308
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.