Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
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.
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xd6534762...248E67E5B The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
IVTUser
Compiler Version
v0.5.2+commit.1df8f40c
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2019-08-26 */ pragma solidity ^0.5.2; /** * @title IVTUser * @dev Contract for upgradeable applications. * It handles the creation and upgrading of proxies. */ contract IVTUser { /// @dev 签名所需最少签名 uint256 public required; /// @dev owner地址 address public owner; /// @dev (签名地址==》标志位) mapping (address => bool) public signers; /// @dev (交易历史==》标志位) mapping (uint256 => bool) public transactions; /// @dev 代理地址 IVTProxyInterface public proxy; event Deposit(address _sender, uint256 _value); /** * @dev Constructor function. */ constructor(address[] memory _signers, IVTProxyInterface _proxy, uint8 _required) public { require(_required <= _signers.length && _required > 0 && _signers.length > 0); for (uint8 i = 0; i < _signers.length; i++){ require(_signers[i] != address(0)); signers[_signers[i]] = true; } required = _required; owner = msg.sender; proxy = _proxy; } modifier onlyOwner() { require(msg.sender == owner); _; } /** * @dev 充值接口 * @return {[null]} */ function() payable external { if (msg.value > 0) emit Deposit(msg.sender, msg.value); } /** * @dev 向逻辑合约发送请求的通用接口 * @param _data Data to send as msg.data in the low level call. * It should include the signature and the parameters of the function to be called, as described in * https://solidity.readthedocs.io/en/v0.4.24/abi-spec.html#function-selector-and-argument-encoding. */ function callImpl(bytes calldata _data) external onlyOwner { address implAddress = proxy.getImplAddress(); implAddress.delegatecall(_data);// 必须用delegatecall } /** * @dev 设置Id * @param _id _time to set */ function setTransactionId(uint256 _id) public { transactions[_id] = true; } /** * @dev 获取多签required * @return {[uint256]} */ function getRequired() public view returns (uint256) { return required; } /** * @dev 是否包含签名者 * @param _signer _signer to sign * @return {[bool]} */ function hasSigner(address _signer) public view returns (bool) { return signers[_signer]; } /** * @dev 是否包含交易Id * @param _transactionId _transactionTime to get * @return {[bool]} */ function hasTransactionId(uint256 _transactionId) public view returns (bool) { return transactions[_transactionId]; } } /** * @title IVTProxyInterface * @dev Contract for ProxyInterface */ contract IVTProxyInterface { function getImplAddress() external view returns (address); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"getRequired","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_transactionId","type":"uint256"}],"name":"hasTransactionId","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_data","type":"bytes"}],"name":"callImpl","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_signer","type":"address"}],"name":"hasSigner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"signers","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"uint256"}],"name":"setTransactionId","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":"","type":"uint256"}],"name":"transactions","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"required","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"proxy","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_signers","type":"address[]"},{"name":"_proxy","type":"address"},{"name":"_required","type":"uint8"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Deposit","type":"event"}]
Deployed Bytecode
0x6080604052600436106100ae576000357c01000000000000000000000000000000000000000000000000000000009004806376e747d31161007657806376e747d3146102fb5780638da5cb5b146103365780639ace38c21461038d578063dc8452cd146103e0578063ec5568891461040b576100ae565b80631398a5f6146101255780631ce87fbd146101505780634465ee2c146101a3578063614be26114610229578063736c0d5b14610292575b6000341115610123577fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c3334604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b005b34801561013157600080fd5b5061013a610462565b6040518082815260200191505060405180910390f35b34801561015c57600080fd5b506101896004803603602081101561017357600080fd5b810190808035906020019092919050505061046b565b604051808215151515815260200191505060405180910390f35b3480156101af57600080fd5b50610227600480360360208110156101c657600080fd5b81019080803590602001906401000000008111156101e357600080fd5b8201836020820111156101f557600080fd5b8035906020019184600183028401116401000000008311171561021757600080fd5b9091929391929390505050610495565b005b34801561023557600080fd5b506102786004803603602081101561024c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061062a565b604051808215151515815260200191505060405180910390f35b34801561029e57600080fd5b506102e1600480360360208110156102b557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610680565b604051808215151515815260200191505060405180910390f35b34801561030757600080fd5b506103346004803603602081101561031e57600080fd5b81019080803590602001909291905050506106a0565b005b34801561034257600080fd5b5061034b6106cf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561039957600080fd5b506103c6600480360360208110156103b057600080fd5b81019080803590602001909291905050506106f5565b604051808215151515815260200191505060405180910390f35b3480156103ec57600080fd5b506103f5610715565b6040518082815260200191505060405180910390f35b34801561041757600080fd5b5061042061071b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008054905090565b60006003600083815260200190815260200160002060009054906101000a900460ff169050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156104f157600080fd5b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637311ad816040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b15801561057757600080fd5b505afa15801561058b573d6000803e3d6000fd5b505050506040513d60208110156105a157600080fd5b810190808051906020019092919050505090508073ffffffffffffffffffffffffffffffffffffffff168383604051808383808284378083019250505092505050600060405180830381855af49150503d806000811461061d576040519150601f19603f3d011682016040523d82523d6000602084013e610622565b606091505b505050505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60026020528060005260406000206000915054906101000a900460ff1681565b60016003600083815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60036020528060005260406000206000915054906101000a900460ff1681565b60005481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fea165627a7a7230582014cf97f23139e5c5b43687ff828d56e50ed205a2134e78ee8e745604219bb0ae0029
Deployed Bytecode Sourcemap
158:2447:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1251:1;1239:9;:13;1235:65;;;1270:30;1278:10;1290:9;1270:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;1235:65;158:2447;2060:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2060:81:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2475:125;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2475:125:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2475:125:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1654:179;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1654:179:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1654:179:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1654:179:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1654:179:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1654:179:0;;;;;;;;;;;;:::i;:::-;;2251:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2251:100:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2251:100:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;352:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;352:40:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;352:40:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1900:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1900:83:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1900:83:0;;;;;;;;;;;;;;;;;:::i;:::-;;281:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;281:20:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;447:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;447:45:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;447:45:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;224:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;224:23:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;527:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;527:30:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2060:81;2104:7;2127:8;;2120:15;;2060:81;:::o;2475:125::-;2546:4;2566:12;:28;2579:14;2566:28;;;;;;;;;;;;;;;;;;;;;2559:35;;2475:125;;;:::o;1654:179::-;1112:5;;;;;;;;;;;1098:19;;:10;:19;;;1090:28;;;;;;;;1721:19;1743:5;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1743:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1743:22:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1743:22:0;;;;;;;;;;;;;;;;1721:44;;1772:11;:24;;1797:5;;1772:31;;;;;30:3:-1;22:6;14;1:33;57:3;49:6;45:16;35:26;;1772:31:0;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;1772:31:0;;1125:1;1654:179;;:::o;2251:100::-;2309:4;2329:7;:16;2337:7;2329:16;;;;;;;;;;;;;;;;;;;;;;;;;2322:23;;2251:100;;;:::o;352:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;1900:83::-;1973:4;1953:12;:17;1966:3;1953:17;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;1900:83;:::o;281:20::-;;;;;;;;;;;;;:::o;447:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;224:23::-;;;;:::o;527:30::-;;;;;;;;;;;;;:::o
Swarm Source
bzzr://14cf97f23139e5c5b43687ff828d56e50ed205a2134e78ee8e745604219bb0ae
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.