ETH Price: $3,193.84 (-0.25%)

Contract

0x0CE1e3F7A5C610d4cBF18c2e8C3B35Ecb34823e8
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Call Impl85709472019-09-18 3:21:491881 days ago1568776909IN
0x0CE1e3F7...cb34823e8
0 ETH0.0047279820
Call Impl81544382019-07-15 8:08:251946 days ago1563178105IN
0x0CE1e3F7...cb34823e8
0 ETH0.0026633510
Call Impl80456642019-06-28 9:58:571963 days ago1561715937IN
0x0CE1e3F7...cb34823e8
0 ETH0.001331355
0x6080604080455622019-06-28 9:34:091963 days ago1561714449IN
 Contract Creation
0 ETH0.0069930510

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

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

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license
/**
 *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

Contract ABI

[{"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

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.