Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Multichain Info
No addresses found
Latest 4 from a total of 4 transactions
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
PassportLogicRegistry
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2019-03-19 */ pragma solidity ^0.4.24; // File: openzeppelin-solidity/contracts/ownership/Ownable.sol /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract Ownable { address public owner; event OwnershipRenounced(address indexed previousOwner); event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ constructor() public { owner = msg.sender; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner); _; } /** * @dev Allows the current owner to relinquish control of the contract. * @notice Renouncing to ownership will leave the contract without an owner. * It will not be possible to call the functions with the `onlyOwner` * modifier anymore. */ function renounceOwnership() public onlyOwner { emit OwnershipRenounced(owner); owner = address(0); } /** * @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) public onlyOwner { _transferOwnership(_newOwner); } /** * @dev Transfers control of the contract to a newOwner. * @param _newOwner The address to transfer ownership to. */ function _transferOwnership(address _newOwner) internal { require(_newOwner != address(0)); emit OwnershipTransferred(owner, _newOwner); owner = _newOwner; } } // File: openzeppelin-solidity/contracts/ownership/HasNoEther.sol /** * @title Contracts that should not own Ether * @author Remco Bloemen <remco@2π.com> * @dev This tries to block incoming ether to prevent accidental loss of Ether. Should Ether end up * in the contract, it will allow the owner to reclaim this Ether. * @notice Ether can still be sent to this contract by: * calling functions labeled `payable` * `selfdestruct(contract_address)` * mining directly to the contract address */ contract HasNoEther is Ownable { /** * @dev Constructor that rejects incoming Ether * The `payable` flag is added so we can access `msg.value` without compiler warning. If we * leave out payable, then Solidity will allow inheriting contracts to implement a payable * constructor. By doing it this way we prevent a payable constructor from working. Alternatively * we could use assembly to access msg.value. */ constructor() public payable { require(msg.value == 0); } /** * @dev Disallows direct send by setting a default function without the `payable` flag. */ function() external { } /** * @dev Transfer all Ether held by the contract to the owner. */ function reclaimEther() external onlyOwner { owner.transfer(address(this).balance); } } // File: openzeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol /** * @title ERC20Basic * @dev Simpler version of ERC20 interface * See https://github.com/ethereum/EIPs/issues/179 */ contract ERC20Basic { function totalSupply() public view returns (uint256); function balanceOf(address _who) public view returns (uint256); function transfer(address _to, uint256 _value) public returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); } // File: openzeppelin-solidity/contracts/token/ERC20/ERC20.sol /** * @title ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20 is ERC20Basic { function allowance(address _owner, address _spender) public view returns (uint256); function transferFrom(address _from, address _to, uint256 _value) public returns (bool); function approve(address _spender, uint256 _value) public returns (bool); event Approval( address indexed owner, address indexed spender, uint256 value ); } // File: openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol /** * @title SafeERC20 * @dev Wrappers around ERC20 operations that throw on failure. * To use this library you can add a `using SafeERC20 for ERC20;` statement to your contract, * which allows you to call the safe operations as `token.safeTransfer(...)`, etc. */ library SafeERC20 { function safeTransfer( ERC20Basic _token, address _to, uint256 _value ) internal { require(_token.transfer(_to, _value)); } function safeTransferFrom( ERC20 _token, address _from, address _to, uint256 _value ) internal { require(_token.transferFrom(_from, _to, _value)); } function safeApprove( ERC20 _token, address _spender, uint256 _value ) internal { require(_token.approve(_spender, _value)); } } // File: openzeppelin-solidity/contracts/ownership/CanReclaimToken.sol /** * @title Contracts that should be able to recover tokens * @author SylTi * @dev This allow a contract to recover any ERC20 token received in a contract by transferring the balance to the contract owner. * This will prevent any accidental loss of tokens. */ contract CanReclaimToken is Ownable { using SafeERC20 for ERC20Basic; /** * @dev Reclaim all ERC20Basic compatible tokens * @param _token ERC20Basic The address of the token contract */ function reclaimToken(ERC20Basic _token) external onlyOwner { uint256 balance = _token.balanceOf(this); _token.safeTransfer(owner, balance); } } // File: openzeppelin-solidity/contracts/ownership/HasNoTokens.sol /** * @title Contracts that should not own Tokens * @author Remco Bloemen <remco@2π.com> * @dev This blocks incoming ERC223 tokens to prevent accidental loss of tokens. * Should tokens (any ERC20Basic compatible) end up in the contract, it allows the * owner to reclaim the tokens. */ contract HasNoTokens is CanReclaimToken { /** * @dev Reject all ERC223 compatible tokens * @param _from address The address that is transferring the tokens * @param _value uint256 the amount of the specified token * @param _data Bytes The data passed from the caller. */ function tokenFallback( address _from, uint256 _value, bytes _data ) external pure { _from; _value; _data; revert(); } } // File: contracts/IPassportLogicRegistry.sol interface IPassportLogicRegistry { /** * @dev This event will be emitted every time a new passport logic implementation is registered * @param version representing the version name of the registered passport logic implementation * @param implementation representing the address of the registered passport logic implementation */ event PassportLogicAdded(string version, address implementation); /** * @dev This event will be emitted every time a new passport logic implementation is set as current one * @param version representing the version name of the current passport logic implementation * @param implementation representing the address of the current passport logic implementation */ event CurrentPassportLogicSet(string version, address implementation); /** * @dev Tells the address of the passport logic implementation for a given version * @param _version to query the implementation of * @return address of the passport logic implementation registered for the given version */ function getPassportLogic(string _version) external view returns (address); /** * @dev Tells the version of the current passport logic implementation * @return version of the current passport logic implementation */ function getCurrentPassportLogicVersion() external view returns (string); /** * @dev Tells the address of the current passport logic implementation * @return address of the current passport logic implementation */ function getCurrentPassportLogic() external view returns (address); } // File: contracts/PassportLogicRegistry.sol /** * @title PassportImplRegistry * @dev This contract works as a registry of passport implementations, it holds the implementations for the registered versions. */ contract PassportLogicRegistry is IPassportLogicRegistry, Ownable, HasNoEther, HasNoTokens { // current passport version/implementation string internal currentPassportLogicVersion; address internal currentPassportLogic; // Mapping of versions to passport implementations mapping(string => address) internal passportLogicImplementations; /** * @dev The PassportImplRegistry constructor sets the current passport version and implementation. */ constructor (string _version, address _implementation) public { _addPassportLogic(_version, _implementation); _setCurrentPassportLogic(_version); } /** * @dev Registers a new passport version with its logic implementation address * @param _version representing the version name of the new passport logic implementation to be registered * @param _implementation representing the address of the new passport logic implementation to be registered */ function addPassportLogic(string _version, address _implementation) public onlyOwner { _addPassportLogic(_version, _implementation); } /** * @dev Tells the address of the passport logic implementation for a given version * @param _version to query the implementation of * @return address of the passport logic implementation registered for the given version */ function getPassportLogic(string _version) external view returns (address) { return passportLogicImplementations[_version]; } /** * @dev Sets a new passport logic implementation as current one * @param _version representing the version name of the passport logic implementation to be set as current one */ function setCurrentPassportLogic(string _version) public onlyOwner { _setCurrentPassportLogic(_version); } /** * @dev Tells the version of the current passport logic implementation * @return version of the current passport logic implementation */ function getCurrentPassportLogicVersion() external view returns (string) { return currentPassportLogicVersion; } /** * @dev Tells the address of the current passport logic implementation * @return address of the current passport logic implementation */ function getCurrentPassportLogic() external view returns (address) { return currentPassportLogic; } function _addPassportLogic(string _version, address _implementation) internal { require(_implementation != 0x0, "Cannot set implementation to a zero address"); require(passportLogicImplementations[_version] == 0x0, "Cannot replace existing version implementation"); passportLogicImplementations[_version] = _implementation; emit PassportLogicAdded(_version, _implementation); } function _setCurrentPassportLogic(string _version) internal { require(passportLogicImplementations[_version] != 0x0, "Cannot set non-existing passport logic as current implementation"); currentPassportLogicVersion = _version; currentPassportLogic = passportLogicImplementations[_version]; emit CurrentPassportLogicSet(currentPassportLogicVersion, currentPassportLogic); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"reclaimToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_version","type":"string"}],"name":"setCurrentPassportLogic","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getCurrentPassportLogic","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","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":"_version","type":"string"}],"name":"getPassportLogic","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"reclaimEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getCurrentPassportLogicVersion","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"tokenFallback","outputs":[],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_version","type":"string"},{"name":"_implementation","type":"address"}],"name":"addPassportLogic","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_version","type":"string"},{"name":"_implementation","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":false,"stateMutability":"nonpayable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"version","type":"string"},{"indexed":false,"name":"implementation","type":"address"}],"name":"PassportLogicAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"version","type":"string"},{"indexed":false,"name":"implementation","type":"address"}],"name":"CurrentPassportLogicSet","type":"event"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040516200135738038062001357833981016040528051602082015160008054600160a060020a0319163317905591019034156200004f57600080fd5b62000064828264010000000062000080810204565b620000788264010000000062000342810204565b505062000642565b600160a060020a03811615156200011e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f43616e6e6f742073657420696d706c656d656e746174696f6e20746f2061207a60448201527f65726f2061646472657373000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003826040518082805190602001908083835b60208310620001525780518252601f19909201916020918201910162000131565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054600160a060020a03161591506200021e905057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f43616e6e6f74207265706c616365206578697374696e672076657273696f6e2060448201527f696d706c656d656e746174696f6e000000000000000000000000000000000000606482015290519081900360840190fd5b806003836040518082805190602001908083835b60208310620002535780518252601f19909201916020918201910162000232565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208054600160a060020a031916600160a060020a0397881617905594861684820152848452865194840194909452505083517f7471eb04045ae72adb2fb73deb1e873113901110dd66dbde715232f2495a0cd8928592859290918291606083019186019080838360005b8381101562000302578181015183820152602001620002e8565b50505050905090810190601f168015620003305780820380516001836020036101000a031916815260200191505b50935050505060405180910390a15050565b6003816040518082805190602001908083835b60208310620003765780518252601f19909201916020918201910162000355565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054600160a060020a03161515915062000443905057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602481018290527f43616e6e6f7420736574206e6f6e2d6578697374696e672070617373706f727460448201527f206c6f6769632061732063757272656e7420696d706c656d656e746174696f6e606482015290519081900360840190fd5b8051620004589060019060208401906200059d565b506003816040518082805190602001908083835b602083106200048d5780518252601f1990920191602091820191016200046c565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188205460028054600160a060020a031916600160a060020a03928316178082559091169289018390528189526001805480821615909702909401909516949094049387018490527f4e366bf178b123bb29442cddeceedf743c23cbb40cffa5f577217fe2c54a0b19969195509350918291506060820190859080156200058b5780601f106200055f576101008083540402835291602001916200058b565b820191906000526020600020905b8154815290600101906020018083116200056d57829003601f168201915b5050935050505060405180910390a150565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620005e057805160ff191683800117855562000610565b8280016001018555821562000610579182015b8281111562000610578251825591602001919060010190620005f3565b506200061e92915062000622565b5090565b6200063f91905b808211156200061e576000815560010162000629565b90565b610d0580620006526000396000f3006080604052600436106100ae5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166317ffc32081146100bd578063593efdf1146100e0578063609725ef14610139578063715018a61461016a5780638da5cb5b1461017f5780639a1295d9146101945780639f727c27146101b4578063ba612493146101c9578063c0ee0b8a14610253578063c7c40fbb14610284578063f2fde38b146102e8575b3480156100ba57600080fd5b50005b3480156100c957600080fd5b506100de600160a060020a0360043516610309565b005b3480156100ec57600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526100de9436949293602493928401919081908401838280828437509497506103d59650505050505050565b34801561014557600080fd5b5061014e6103f8565b60408051600160a060020a039092168252519081900360200190f35b34801561017657600080fd5b506100de610408565b34801561018b57600080fd5b5061014e610474565b3480156101a057600080fd5b5061014e6004803560248101910135610483565b3480156101c057600080fd5b506100de6104bc565b3480156101d557600080fd5b506101de61050e565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610218578181015183820152602001610200565b50505050905090810190601f1680156102455780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025f57600080fd5b506100de60048035600160a060020a03169060248035916044359182019101356105a3565b34801561029057600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526100de94369492936024939284019190819084018382808284375094975050509235600160a060020a031693506105a892505050565b3480156102f457600080fd5b506100de600160a060020a03600435166105c9565b60008054600160a060020a0316331461032157600080fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b15801561038257600080fd5b505af1158015610396573d6000803e3d6000fd5b505050506040513d60208110156103ac57600080fd5b50516000549091506103d190600160a060020a0384811691168363ffffffff6105e916565b5050565b600054600160a060020a031633146103ec57600080fd5b6103f5816106a1565b50565b600254600160a060020a03165b90565b600054600160a060020a0316331461041f57600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a031681565b6000600383836040518083838082843790910194855250506040519283900360200190922054600160a060020a03169250505092915050565b600054600160a060020a031633146104d357600080fd5b60008054604051600160a060020a0390911691303180156108fc02929091818181858888f193505050501580156103f5573d6000803e3d6000fd5b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156105995780601f1061056e57610100808354040283529160200191610599565b820191906000526020600020905b81548152906001019060200180831161057c57829003601f168201915b5050505050905090565b600080fd5b600054600160a060020a031633146105bf57600080fd5b6103d182826108fe565b600054600160a060020a031633146105e057600080fd5b6103f581610bc4565b82600160a060020a031663a9059cbb83836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561066557600080fd5b505af1158015610679573d6000803e3d6000fd5b505050506040513d602081101561068f57600080fd5b5051151561069c57600080fd5b505050565b6003816040518082805190602001908083835b602083106106d35780518252601f1990920191602091820191016106b4565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054600160a060020a03161515915061079f905057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602481018290527f43616e6e6f7420736574206e6f6e2d6578697374696e672070617373706f727460448201527f206c6f6769632061732063757272656e7420696d706c656d656e746174696f6e606482015290519081900360840190fd5b80516107b2906001906020840190610c41565b506003816040518082805190602001908083835b602083106107e55780518252601f1990920191602091820191016107c6565b518151600019602094850361010090810a82019283169219939093169190911790925294909201968752604080519788900382018820546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03928316178082559091169289018390528189526001805480821615909702909401909516949094049387018490527f4e366bf178b123bb29442cddeceedf743c23cbb40cffa5f577217fe2c54a0b19969195509350918291506060820190859080156108ec5780601f106108c1576101008083540402835291602001916108ec565b820191906000526020600020905b8154815290600101906020018083116108cf57829003601f168201915b5050935050505060405180910390a150565b600160a060020a038116151561099b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f43616e6e6f742073657420696d706c656d656e746174696f6e20746f2061207a60448201527f65726f2061646472657373000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003826040518082805190602001908083835b602083106109cd5780518252601f1990920191602091820191016109ae565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054600160a060020a0316159150610a98905057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f43616e6e6f74207265706c616365206578697374696e672076657273696f6e2060448201527f696d706c656d656e746174696f6e000000000000000000000000000000000000606482015290519081900360840190fd5b806003836040518082805190602001908083835b60208310610acb5780518252601f199092019160209182019101610aac565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0397881617905594861684820152848452865194840194909452505083517f7471eb04045ae72adb2fb73deb1e873113901110dd66dbde715232f2495a0cd8928592859290918291606083019186019080838360005b83811015610b85578181015183820152602001610b6d565b50505050905090810190601f168015610bb25780820380516001836020036101000a031916815260200191505b50935050505060405180910390a15050565b600160a060020a0381161515610bd957600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610c8257805160ff1916838001178555610caf565b82800160010185558215610caf579182015b82811115610caf578251825591602001919060010190610c94565b50610cbb929150610cbf565b5090565b61040591905b80821115610cbb5760008155600101610cc55600a165627a7a7230582030be6f6b69b04014d32f60ed59003aff34c27c83b36b507d48ae67ba320048f50029000000000000000000000000000000000000000000000000000000000000004000000000000000000000000076e2fe5c37c47fe09dcfa55bec9fd34318922f270000000000000000000000000000000000000000000000000000000000000003302e310000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106100ae5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166317ffc32081146100bd578063593efdf1146100e0578063609725ef14610139578063715018a61461016a5780638da5cb5b1461017f5780639a1295d9146101945780639f727c27146101b4578063ba612493146101c9578063c0ee0b8a14610253578063c7c40fbb14610284578063f2fde38b146102e8575b3480156100ba57600080fd5b50005b3480156100c957600080fd5b506100de600160a060020a0360043516610309565b005b3480156100ec57600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526100de9436949293602493928401919081908401838280828437509497506103d59650505050505050565b34801561014557600080fd5b5061014e6103f8565b60408051600160a060020a039092168252519081900360200190f35b34801561017657600080fd5b506100de610408565b34801561018b57600080fd5b5061014e610474565b3480156101a057600080fd5b5061014e6004803560248101910135610483565b3480156101c057600080fd5b506100de6104bc565b3480156101d557600080fd5b506101de61050e565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610218578181015183820152602001610200565b50505050905090810190601f1680156102455780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025f57600080fd5b506100de60048035600160a060020a03169060248035916044359182019101356105a3565b34801561029057600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526100de94369492936024939284019190819084018382808284375094975050509235600160a060020a031693506105a892505050565b3480156102f457600080fd5b506100de600160a060020a03600435166105c9565b60008054600160a060020a0316331461032157600080fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b15801561038257600080fd5b505af1158015610396573d6000803e3d6000fd5b505050506040513d60208110156103ac57600080fd5b50516000549091506103d190600160a060020a0384811691168363ffffffff6105e916565b5050565b600054600160a060020a031633146103ec57600080fd5b6103f5816106a1565b50565b600254600160a060020a03165b90565b600054600160a060020a0316331461041f57600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a031681565b6000600383836040518083838082843790910194855250506040519283900360200190922054600160a060020a03169250505092915050565b600054600160a060020a031633146104d357600080fd5b60008054604051600160a060020a0390911691303180156108fc02929091818181858888f193505050501580156103f5573d6000803e3d6000fd5b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156105995780601f1061056e57610100808354040283529160200191610599565b820191906000526020600020905b81548152906001019060200180831161057c57829003601f168201915b5050505050905090565b600080fd5b600054600160a060020a031633146105bf57600080fd5b6103d182826108fe565b600054600160a060020a031633146105e057600080fd5b6103f581610bc4565b82600160a060020a031663a9059cbb83836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561066557600080fd5b505af1158015610679573d6000803e3d6000fd5b505050506040513d602081101561068f57600080fd5b5051151561069c57600080fd5b505050565b6003816040518082805190602001908083835b602083106106d35780518252601f1990920191602091820191016106b4565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054600160a060020a03161515915061079f905057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602481018290527f43616e6e6f7420736574206e6f6e2d6578697374696e672070617373706f727460448201527f206c6f6769632061732063757272656e7420696d706c656d656e746174696f6e606482015290519081900360840190fd5b80516107b2906001906020840190610c41565b506003816040518082805190602001908083835b602083106107e55780518252601f1990920191602091820191016107c6565b518151600019602094850361010090810a82019283169219939093169190911790925294909201968752604080519788900382018820546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03928316178082559091169289018390528189526001805480821615909702909401909516949094049387018490527f4e366bf178b123bb29442cddeceedf743c23cbb40cffa5f577217fe2c54a0b19969195509350918291506060820190859080156108ec5780601f106108c1576101008083540402835291602001916108ec565b820191906000526020600020905b8154815290600101906020018083116108cf57829003601f168201915b5050935050505060405180910390a150565b600160a060020a038116151561099b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f43616e6e6f742073657420696d706c656d656e746174696f6e20746f2061207a60448201527f65726f2061646472657373000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003826040518082805190602001908083835b602083106109cd5780518252601f1990920191602091820191016109ae565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054600160a060020a0316159150610a98905057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f43616e6e6f74207265706c616365206578697374696e672076657273696f6e2060448201527f696d706c656d656e746174696f6e000000000000000000000000000000000000606482015290519081900360840190fd5b806003836040518082805190602001908083835b60208310610acb5780518252601f199092019160209182019101610aac565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0397881617905594861684820152848452865194840194909452505083517f7471eb04045ae72adb2fb73deb1e873113901110dd66dbde715232f2495a0cd8928592859290918291606083019186019080838360005b83811015610b85578181015183820152602001610b6d565b50505050905090810190601f168015610bb25780820380516001836020036101000a031916815260200191505b50935050505060405180910390a15050565b600160a060020a0381161515610bd957600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610c8257805160ff1916838001178555610caf565b82800160010185558215610caf579182015b82811115610caf578251825591602001919060010190610c94565b50610cbb929150610cbf565b5090565b61040591905b80821115610cbb5760008155600101610cc55600a165627a7a7230582030be6f6b69b04014d32f60ed59003aff34c27c83b36b507d48ae67ba320048f50029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000004000000000000000000000000076e2fe5c37c47fe09dcfa55bec9fd34318922f270000000000000000000000000000000000000000000000000000000000000003302e310000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _version (string): 0.1
Arg [1] : _implementation (address): 0x76E2fe5C37c47Fe09DCFa55Bec9Fd34318922F27
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 00000000000000000000000076e2fe5c37c47fe09dcfa55bec9fd34318922f27
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [3] : 302e310000000000000000000000000000000000000000000000000000000000
Swarm Source
bzzr://30be6f6b69b04014d32f60ed59003aff34c27c83b36b507d48ae67ba320048f5
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.