More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
View more zero value Internal Transactions in Advanced View mode
Loading...
Loading
Contract Name:
BrightID
Compiler Version
v0.8.3+commit.8d00100c
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at gnosisscan.io on 2022-08-04 */ // SPDX-License-Identifier: MIT // Verfification Token Contract: 0xBC51B8713F2f6F97cE20A8983448382544Db78e3 pragma solidity ^0.8.0; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } //-------------------Contracts------------------------------- contract BrightID is Ownable { //-------------------Storage----------------------------- IERC20 public verifierToken; // address of verification Token bytes32 public app; //Regiested BrightID app name uint32 constant public REGISTRATION_PERIOD = 86400; struct Verification { uint256 time; bool isVerified; } //-------------------Events----------------------------- event Verified(address indexed addr); event VerifierTokenSet(IERC20 verifierToken); event AppSet(bytes32 _app); event Sponsor(address indexed addr); //-------------------Mappings--------------------------- mapping(address => Verification) public verifications; mapping(address => address) public history; //-------------------Contructor------------------------- /** * @param _verifierToken verifier token * @param _app BrightID app used for verifying users */ constructor(IERC20 _verifierToken, bytes32 _app) { verifierToken = _verifierToken; app = _app; } // emits a sponsor event for brightID nodes // TODO Qeustion, is this correct? function sponsor(address addr) public { emit Sponsor(addr); } /** * @notice Set the app * @param _app BrightID app used for verifying users */ function setApp(bytes32 _app) public onlyOwner { app = _app; emit AppSet(_app); } /** * @notice Set verifier token * @param _verifierToken verifier token */ function setVerifierToken(IERC20 _verifierToken) public onlyOwner { verifierToken = _verifierToken; emit VerifierTokenSet(_verifierToken); } /** * @notice Register a user by BrightID verification * @param addrs The history of addresses used by this user in the app * @param timestamp The BrightID node's verification timestamp * @param v Component of signature * @param r Component of signature * @param s Component of signature */ function verify( address[] memory addrs, uint timestamp, uint8 v, bytes32 r, bytes32 s ) public { require(verifications[addrs[0]].time < timestamp, "newer verification registered before"); require (timestamp > block.timestamp - REGISTRATION_PERIOD, "Verification too old. Try linking again."); bytes32 message = keccak256(abi.encodePacked(app, addrs, timestamp)); address signer = ecrecover(message, v, r, s); require(verifierToken.balanceOf(signer) > 0, "not authorized"); verifications[addrs[0]].time = timestamp; verifications[addrs[0]].isVerified = true; for(uint i = 1; i < addrs.length; i++) { require(verifications[addrs[i]].time < block.timestamp - REGISTRATION_PERIOD * 2, "Address changed too recently. Wait for next registration period."); verifications[addrs[i]].time = timestamp; verifications[addrs[i]].isVerified = false; history[addrs[i - 1]] = addrs[i]; } emit Verified(addrs[0]); } /** * @notice Check an address is verified or not * @param addr The context id used for verifying users */ function isVerified(address addr) external view returns (bool) { return verifications[addr].isVerified; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"contract IERC20","name":"_verifierToken","type":"address"},{"internalType":"bytes32","name":"_app","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"_app","type":"bytes32"}],"name":"AppSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"}],"name":"Sponsor","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"}],"name":"Verified","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"contract IERC20","name":"verifierToken","type":"address"}],"name":"VerifierTokenSet","type":"event"},{"inputs":[],"name":"REGISTRATION_PERIOD","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"app","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"history","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"isVerified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_app","type":"bytes32"}],"name":"setApp","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_verifierToken","type":"address"}],"name":"setVerifierToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"sponsor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"verifications","outputs":[{"internalType":"uint256","name":"time","type":"uint256"},{"internalType":"bool","name":"isVerified","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"verifierToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addrs","type":"address[]"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"verify","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b5060405162001d2938038062001d2983398181016040528101906200003791906200016d565b6000620000496200013760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600281905550505062000234565b600033905090565b600081519050620001508162000200565b92915050565b60008151905062000167816200021a565b92915050565b600080604083850312156200018157600080fd5b6000620001918582860162000156565b9250506020620001a4858286016200013f565b9150509250929050565b6000620001bb82620001e0565b9050919050565b6000819050919050565b6000620001d982620001ae565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6200020b81620001c2565b81146200021757600080fd5b50565b6200022581620001cc565b81146200023157600080fd5b50565b611ae580620002446000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80638da5cb5b1161008c578063b9209e3311610066578063b9209e33146101ed578063e0f540971461021d578063f2fde38b1461023b578063ffde18d714610257576100cf565b80638da5cb5b14610181578063931c7c681461019f578063b76564bd146101cf576100cf565b80630213c0c5146100d4578063080c98da146100f0578063715018a614610121578063766c4f371461012b57806380d746b214610147578063867092b614610163575b600080fd5b6100ee60048036038101906100e9919061111f565b610273565b005b61010a600480360381019061010591906110f6565b6109e4565b6040516101189291906115c1565b60405180910390f35b610129610a15565b005b610145600480360381019061014091906110f6565b610b4f565b005b610161600480360381019061015c91906111d7565b610b95565b005b61016b610c8c565b60405161017891906114e6565b60405180910390f35b610189610cb2565b6040516101969190611450565b60405180910390f35b6101b960048036038101906101b491906110f6565b610cdb565b6040516101c69190611450565b60405180910390f35b6101d7610d0e565b6040516101e49190611486565b60405180910390f35b610207600480360381019061020291906110f6565b610d14565b604051610214919061146b565b60405180910390f35b610225610d6d565b60405161023291906115ea565b60405180910390f35b610255600480360381019061025091906110f6565b610d74565b005b610271600480360381019061026c91906111ae565b610f1d565b005b8360036000876000815181106102b2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410610338576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032f90611581565b60405180910390fd5b6201518063ffffffff164261034d91906116d8565b841161038e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610385906115a1565b60405180910390fd5b600060025486866040516020016103a793929190611417565b6040516020818303038152906040528051906020012090506000600182868686604051600081526020016040526040516103e494939291906114a1565b6020604051602081039080840390855afa158015610406573d6000803e3d6000fd5b5050506020604051035190506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b815260040161046f9190611450565b60206040518083038186803b15801561048757600080fd5b505afa15801561049b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104bf9190611200565b116104ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f690611541565b60405180910390fd5b85600360008960008151811061053e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550600160036000896000815181106105c7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff0219169083151502179055506000600190505b875181101561095657600262015180610643919061169a565b63ffffffff164261065491906116d8565b600360008a8481518110610691577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410610717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070e90611521565b60405180910390fd5b86600360008a8481518110610755577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506000600360008a84815181106107dd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff021916908315150217905550878181518110610872577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151600460008a60018561088c91906116d8565b815181106108c3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808061094e906117e2565b91505061062a565b5086600081518110610991577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff167f6a6455914f452787eb3985452aceedc1000fb545e394eb3b370e3d08958e0a5b60405160405180910390a250505050505050565b60036020528060005260406000206000915090508060000154908060010160009054906101000a900460ff16905082565b610a1d610fda565b73ffffffffffffffffffffffffffffffffffffffff16610a3b610cb2565b73ffffffffffffffffffffffffffffffffffffffff1614610a91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8890611561565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b8073ffffffffffffffffffffffffffffffffffffffff167f45731ed8c44f9ae4a6da66b49b81184a6565962041a2485f62942faa4da6df6060405160405180910390a250565b610b9d610fda565b73ffffffffffffffffffffffffffffffffffffffff16610bbb610cb2565b73ffffffffffffffffffffffffffffffffffffffff1614610c11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0890611561565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f6ebcfc706686427d67aa7da746fbe1ac9454e8908eda7b346b4062fc1ab6759281604051610c8191906114e6565b60405180910390a150565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff169050919050565b6201518081565b610d7c610fda565b73ffffffffffffffffffffffffffffffffffffffff16610d9a610cb2565b73ffffffffffffffffffffffffffffffffffffffff1614610df0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de790611561565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5790611501565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610f25610fda565b73ffffffffffffffffffffffffffffffffffffffff16610f43610cb2565b73ffffffffffffffffffffffffffffffffffffffff1614610f99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9090611561565b60405180910390fd5b806002819055507f6d7672b0bf8bc013123bcae6e8cbe39fb5fe29585efab460c4ce79b67d767bd781604051610fcf9190611486565b60405180910390a150565b600033905090565b6000610ff5610ff08461162a565b611605565b9050808382526020820190508285602086028201111561101457600080fd5b60005b85811015611044578161102a888261104e565b845260208401935060208301925050600181019050611017565b5050509392505050565b60008135905061105d81611a3c565b92915050565b600082601f83011261107457600080fd5b8135611084848260208601610fe2565b91505092915050565b60008135905061109c81611a53565b92915050565b6000813590506110b181611a6a565b92915050565b6000813590506110c681611a81565b92915050565b6000815190506110db81611a81565b92915050565b6000813590506110f081611a98565b92915050565b60006020828403121561110857600080fd5b60006111168482850161104e565b91505092915050565b600080600080600060a0868803121561113757600080fd5b600086013567ffffffffffffffff81111561115157600080fd5b61115d88828901611063565b955050602061116e888289016110b7565b945050604061117f888289016110e1565b93505060606111908882890161108d565b92505060806111a18882890161108d565b9150509295509295909350565b6000602082840312156111c057600080fd5b60006111ce8482850161108d565b91505092915050565b6000602082840312156111e957600080fd5b60006111f7848285016110a2565b91505092915050565b60006020828403121561121257600080fd5b6000611220848285016110cc565b91505092915050565b60006112358383611250565b60208301905092915050565b61124a8161170c565b82525050565b6112598161170c565b82525050565b600061126a82611666565b611274818561167e565b935061127f83611656565b8060005b838110156112b05781516112978882611229565b97506112a283611671565b925050600181019050611283565b5085935050505092915050565b6112c68161171e565b82525050565b6112d58161172a565b82525050565b6112ec6112e78261172a565b61182b565b82525050565b6112fb8161178d565b82525050565b600061130e602683611689565b9150611319826118ae565b604082019050919050565b6000611331604083611689565b915061133c826118fd565b604082019050919050565b6000611354600e83611689565b915061135f8261194c565b602082019050919050565b6000611377602083611689565b915061138282611975565b602082019050919050565b600061139a602483611689565b91506113a58261199e565b604082019050919050565b60006113bd602883611689565b91506113c8826119ed565b604082019050919050565b6113dc81611766565b82525050565b6113f36113ee82611766565b611835565b82525050565b61140281611770565b82525050565b61141181611780565b82525050565b600061142382866112db565b602082019150611433828561125f565b915061143f82846113e2565b602082019150819050949350505050565b60006020820190506114656000830184611241565b92915050565b600060208201905061148060008301846112bd565b92915050565b600060208201905061149b60008301846112cc565b92915050565b60006080820190506114b660008301876112cc565b6114c36020830186611408565b6114d060408301856112cc565b6114dd60608301846112cc565b95945050505050565b60006020820190506114fb60008301846112f2565b92915050565b6000602082019050818103600083015261151a81611301565b9050919050565b6000602082019050818103600083015261153a81611324565b9050919050565b6000602082019050818103600083015261155a81611347565b9050919050565b6000602082019050818103600083015261157a8161136a565b9050919050565b6000602082019050818103600083015261159a8161138d565b9050919050565b600060208201905081810360008301526115ba816113b0565b9050919050565b60006040820190506115d660008301856113d3565b6115e360208301846112bd565b9392505050565b60006020820190506115ff60008301846113f9565b92915050565b600061160f611620565b905061161b82826117b1565b919050565b6000604051905090565b600067ffffffffffffffff8211156116455761164461186e565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b6000602082019050919050565b600081905092915050565b600082825260208201905092915050565b60006116a582611770565b91506116b083611770565b92508163ffffffff04831182151516156116cd576116cc61183f565b5b828202905092915050565b60006116e382611766565b91506116ee83611766565b9250828210156117015761170061183f565b5b828203905092915050565b600061171782611746565b9050919050565b60008115159050919050565b6000819050919050565b600061173f8261170c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60006117988261179f565b9050919050565b60006117aa82611746565b9050919050565b6117ba8261189d565b810181811067ffffffffffffffff821117156117d9576117d861186e565b5b80604052505050565b60006117ed82611766565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156118205761181f61183f565b5b600182019050919050565b6000819050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f41646472657373206368616e67656420746f6f20726563656e746c792e20576160008201527f697420666f72206e65787420726567697374726174696f6e20706572696f642e602082015250565b7f6e6f7420617574686f72697a6564000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f6e6577657220766572696669636174696f6e207265676973746572656420626560008201527f666f726500000000000000000000000000000000000000000000000000000000602082015250565b7f566572696669636174696f6e20746f6f206f6c642e20547279206c696e6b696e60008201527f6720616761696e2e000000000000000000000000000000000000000000000000602082015250565b611a458161170c565b8114611a5057600080fd5b50565b611a5c8161172a565b8114611a6757600080fd5b50565b611a7381611734565b8114611a7e57600080fd5b50565b611a8a81611766565b8114611a9557600080fd5b50565b611aa181611780565b8114611aac57600080fd5b5056fea2646970667358221220d7f3fb635ed3361f1f60d2164b4eeec5f466f16491f465586191dbf67009051f64736f6c63430008030033000000000000000000000000bc51b8713f2f6f97ce20a8983448382544db78e372617265636f696e000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c80638da5cb5b1161008c578063b9209e3311610066578063b9209e33146101ed578063e0f540971461021d578063f2fde38b1461023b578063ffde18d714610257576100cf565b80638da5cb5b14610181578063931c7c681461019f578063b76564bd146101cf576100cf565b80630213c0c5146100d4578063080c98da146100f0578063715018a614610121578063766c4f371461012b57806380d746b214610147578063867092b614610163575b600080fd5b6100ee60048036038101906100e9919061111f565b610273565b005b61010a600480360381019061010591906110f6565b6109e4565b6040516101189291906115c1565b60405180910390f35b610129610a15565b005b610145600480360381019061014091906110f6565b610b4f565b005b610161600480360381019061015c91906111d7565b610b95565b005b61016b610c8c565b60405161017891906114e6565b60405180910390f35b610189610cb2565b6040516101969190611450565b60405180910390f35b6101b960048036038101906101b491906110f6565b610cdb565b6040516101c69190611450565b60405180910390f35b6101d7610d0e565b6040516101e49190611486565b60405180910390f35b610207600480360381019061020291906110f6565b610d14565b604051610214919061146b565b60405180910390f35b610225610d6d565b60405161023291906115ea565b60405180910390f35b610255600480360381019061025091906110f6565b610d74565b005b610271600480360381019061026c91906111ae565b610f1d565b005b8360036000876000815181106102b2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410610338576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032f90611581565b60405180910390fd5b6201518063ffffffff164261034d91906116d8565b841161038e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610385906115a1565b60405180910390fd5b600060025486866040516020016103a793929190611417565b6040516020818303038152906040528051906020012090506000600182868686604051600081526020016040526040516103e494939291906114a1565b6020604051602081039080840390855afa158015610406573d6000803e3d6000fd5b5050506020604051035190506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b815260040161046f9190611450565b60206040518083038186803b15801561048757600080fd5b505afa15801561049b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104bf9190611200565b116104ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f690611541565b60405180910390fd5b85600360008960008151811061053e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550600160036000896000815181106105c7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff0219169083151502179055506000600190505b875181101561095657600262015180610643919061169a565b63ffffffff164261065491906116d8565b600360008a8481518110610691577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410610717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070e90611521565b60405180910390fd5b86600360008a8481518110610755577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506000600360008a84815181106107dd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff021916908315150217905550878181518110610872577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151600460008a60018561088c91906116d8565b815181106108c3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808061094e906117e2565b91505061062a565b5086600081518110610991577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff167f6a6455914f452787eb3985452aceedc1000fb545e394eb3b370e3d08958e0a5b60405160405180910390a250505050505050565b60036020528060005260406000206000915090508060000154908060010160009054906101000a900460ff16905082565b610a1d610fda565b73ffffffffffffffffffffffffffffffffffffffff16610a3b610cb2565b73ffffffffffffffffffffffffffffffffffffffff1614610a91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8890611561565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b8073ffffffffffffffffffffffffffffffffffffffff167f45731ed8c44f9ae4a6da66b49b81184a6565962041a2485f62942faa4da6df6060405160405180910390a250565b610b9d610fda565b73ffffffffffffffffffffffffffffffffffffffff16610bbb610cb2565b73ffffffffffffffffffffffffffffffffffffffff1614610c11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0890611561565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f6ebcfc706686427d67aa7da746fbe1ac9454e8908eda7b346b4062fc1ab6759281604051610c8191906114e6565b60405180910390a150565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff169050919050565b6201518081565b610d7c610fda565b73ffffffffffffffffffffffffffffffffffffffff16610d9a610cb2565b73ffffffffffffffffffffffffffffffffffffffff1614610df0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de790611561565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5790611501565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610f25610fda565b73ffffffffffffffffffffffffffffffffffffffff16610f43610cb2565b73ffffffffffffffffffffffffffffffffffffffff1614610f99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9090611561565b60405180910390fd5b806002819055507f6d7672b0bf8bc013123bcae6e8cbe39fb5fe29585efab460c4ce79b67d767bd781604051610fcf9190611486565b60405180910390a150565b600033905090565b6000610ff5610ff08461162a565b611605565b9050808382526020820190508285602086028201111561101457600080fd5b60005b85811015611044578161102a888261104e565b845260208401935060208301925050600181019050611017565b5050509392505050565b60008135905061105d81611a3c565b92915050565b600082601f83011261107457600080fd5b8135611084848260208601610fe2565b91505092915050565b60008135905061109c81611a53565b92915050565b6000813590506110b181611a6a565b92915050565b6000813590506110c681611a81565b92915050565b6000815190506110db81611a81565b92915050565b6000813590506110f081611a98565b92915050565b60006020828403121561110857600080fd5b60006111168482850161104e565b91505092915050565b600080600080600060a0868803121561113757600080fd5b600086013567ffffffffffffffff81111561115157600080fd5b61115d88828901611063565b955050602061116e888289016110b7565b945050604061117f888289016110e1565b93505060606111908882890161108d565b92505060806111a18882890161108d565b9150509295509295909350565b6000602082840312156111c057600080fd5b60006111ce8482850161108d565b91505092915050565b6000602082840312156111e957600080fd5b60006111f7848285016110a2565b91505092915050565b60006020828403121561121257600080fd5b6000611220848285016110cc565b91505092915050565b60006112358383611250565b60208301905092915050565b61124a8161170c565b82525050565b6112598161170c565b82525050565b600061126a82611666565b611274818561167e565b935061127f83611656565b8060005b838110156112b05781516112978882611229565b97506112a283611671565b925050600181019050611283565b5085935050505092915050565b6112c68161171e565b82525050565b6112d58161172a565b82525050565b6112ec6112e78261172a565b61182b565b82525050565b6112fb8161178d565b82525050565b600061130e602683611689565b9150611319826118ae565b604082019050919050565b6000611331604083611689565b915061133c826118fd565b604082019050919050565b6000611354600e83611689565b915061135f8261194c565b602082019050919050565b6000611377602083611689565b915061138282611975565b602082019050919050565b600061139a602483611689565b91506113a58261199e565b604082019050919050565b60006113bd602883611689565b91506113c8826119ed565b604082019050919050565b6113dc81611766565b82525050565b6113f36113ee82611766565b611835565b82525050565b61140281611770565b82525050565b61141181611780565b82525050565b600061142382866112db565b602082019150611433828561125f565b915061143f82846113e2565b602082019150819050949350505050565b60006020820190506114656000830184611241565b92915050565b600060208201905061148060008301846112bd565b92915050565b600060208201905061149b60008301846112cc565b92915050565b60006080820190506114b660008301876112cc565b6114c36020830186611408565b6114d060408301856112cc565b6114dd60608301846112cc565b95945050505050565b60006020820190506114fb60008301846112f2565b92915050565b6000602082019050818103600083015261151a81611301565b9050919050565b6000602082019050818103600083015261153a81611324565b9050919050565b6000602082019050818103600083015261155a81611347565b9050919050565b6000602082019050818103600083015261157a8161136a565b9050919050565b6000602082019050818103600083015261159a8161138d565b9050919050565b600060208201905081810360008301526115ba816113b0565b9050919050565b60006040820190506115d660008301856113d3565b6115e360208301846112bd565b9392505050565b60006020820190506115ff60008301846113f9565b92915050565b600061160f611620565b905061161b82826117b1565b919050565b6000604051905090565b600067ffffffffffffffff8211156116455761164461186e565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b6000602082019050919050565b600081905092915050565b600082825260208201905092915050565b60006116a582611770565b91506116b083611770565b92508163ffffffff04831182151516156116cd576116cc61183f565b5b828202905092915050565b60006116e382611766565b91506116ee83611766565b9250828210156117015761170061183f565b5b828203905092915050565b600061171782611746565b9050919050565b60008115159050919050565b6000819050919050565b600061173f8261170c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60006117988261179f565b9050919050565b60006117aa82611746565b9050919050565b6117ba8261189d565b810181811067ffffffffffffffff821117156117d9576117d861186e565b5b80604052505050565b60006117ed82611766565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156118205761181f61183f565b5b600182019050919050565b6000819050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f41646472657373206368616e67656420746f6f20726563656e746c792e20576160008201527f697420666f72206e65787420726567697374726174696f6e20706572696f642e602082015250565b7f6e6f7420617574686f72697a6564000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f6e6577657220766572696669636174696f6e207265676973746572656420626560008201527f666f726500000000000000000000000000000000000000000000000000000000602082015250565b7f566572696669636174696f6e20746f6f206f6c642e20547279206c696e6b696e60008201527f6720616761696e2e000000000000000000000000000000000000000000000000602082015250565b611a458161170c565b8114611a5057600080fd5b50565b611a5c8161172a565b8114611a6757600080fd5b50565b611a7381611734565b8114611a7e57600080fd5b50565b611a8a81611766565b8114611a9557600080fd5b50565b611aa181611780565b8114611aac57600080fd5b5056fea2646970667358221220d7f3fb635ed3361f1f60d2164b4eeec5f466f16491f465586191dbf67009051f64736f6c63430008030033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000bc51b8713f2f6f97ce20a8983448382544db78e372617265636f696e000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _verifierToken (address): 0xBC51B8713F2f6F97cE20A8983448382544Db78e3
Arg [1] : _app (bytes32): 0x72617265636f696e000000000000000000000000000000000000000000000000
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000bc51b8713f2f6f97ce20a8983448382544db78e3
Arg [1] : 72617265636f696e000000000000000000000000000000000000000000000000
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.