ETH Price: $3,100.85 (+1.11%)
Gas: 0.04 Gwei
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Execute Transact...219636872025-03-03 3:31:35285 days ago1740972695IN
0x3345702F...d159Bc0c8
0 ETH0.000088981.16935578
Confirm Transact...219636722025-03-03 3:28:35285 days ago1740972515IN
0x3345702F...d159Bc0c8
0 ETH0.000069411.20798314
Submit Transacti...219636572025-03-03 3:25:35285 days ago1740972335IN
0x3345702F...d159Bc0c8
0 ETH0.000199221.15589532
Execute Transact...219636232025-03-03 3:18:47285 days ago1740971927IN
0x3345702F...d159Bc0c8
0 ETH0.000088421.26915238
Confirm Transact...219636192025-03-03 3:17:59285 days ago1740971879IN
0x3345702F...d159Bc0c8
0 ETH0.000068391.19033557
Submit Transacti...219635952025-03-03 3:13:11285 days ago1740971591IN
0x3345702F...d159Bc0c8
0 ETH0.000203561.18264092
Execute Transact...199373542024-05-24 4:28:11568 days ago1716524891IN
0x3345702F...d159Bc0c8
0 ETH0.000779276.70856878
Confirm Transact...199373312024-05-24 4:23:35568 days ago1716524615IN
0x3345702F...d159Bc0c8
0 ETH0.000385716.71273795
Submit Transacti...199372882024-05-24 4:14:59568 days ago1716524099IN
0x3345702F...d159Bc0c8
0 ETH0.000970055.62812435
Execute Transact...198733562024-05-15 5:42:11577 days ago1715751731IN
0x3345702F...d159Bc0c8
0 ETH0.000462663.98328889
Confirm Transact...198733502024-05-15 5:40:59577 days ago1715751659IN
0x3345702F...d159Bc0c8
0 ETH0.000252384.39240652
Submit Transacti...198733062024-05-15 5:32:11577 days ago1715751131IN
0x3345702F...d159Bc0c8
0 ETH0.000574513.33328816
Execute Transact...192425812024-02-16 19:37:59665 days ago1708112279IN
0x3345702F...d159Bc0c8
0 ETH0.002715723.36852463
Confirm Transact...192422432024-02-16 18:29:59665 days ago1708108199IN
0x3345702F...d159Bc0c8
0 ETH0.0019088633.22083175
Submit Transacti...192392102024-02-16 8:14:59666 days ago1708071299IN
0x3345702F...d159Bc0c8
0 ETH0.0042004124.37028573
Execute Transact...190237062024-01-17 2:44:11696 days ago1705459451IN
0x3345702F...d159Bc0c8
0 ETH0.0018540230.03002524
Execute Transact...190236992024-01-17 2:42:47696 days ago1705459367IN
0x3345702F...d159Bc0c8
0 ETH0.003031531.3934453
Confirm Transact...190192532024-01-16 11:48:59697 days ago1705405739IN
0x3345702F...d159Bc0c8
0 ETH0.001715529.85561097
Confirm Transact...190192432024-01-16 11:46:59697 days ago1705405619IN
0x3345702F...d159Bc0c8
0 ETH0.0018501432.19881346
Submit Transacti...190173162024-01-16 5:19:47697 days ago1705382387IN
0x3345702F...d159Bc0c8
0 ETH0.0046620127.04841583
Submit Transacti...190172812024-01-16 5:12:47697 days ago1705381967IN
0x3345702F...d159Bc0c8
0 ETH0.0047260727.42013214
Execute Transact...186248522023-11-22 4:18:11752 days ago1700626691IN
0x3345702F...d159Bc0c8
0 ETH0.0069588432.20435236
Confirm Transact...186248512023-11-22 4:17:59752 days ago1700626679IN
0x3345702F...d159Bc0c8
0 ETH0.0017262530.04273586
Submit Transacti...186246462023-11-22 3:36:47752 days ago1700624207IN
0x3345702F...d159Bc0c8
0 ETH0.0101583630.71303869
Execute Transact...182588432023-10-01 23:03:47803 days ago1696201427IN
0x3345702F...d159Bc0c8
0 ETH0.0016820414.27320575
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Multisig

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 9999 runs

Other Settings:
default evmVersion
// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

import "../libs/MemberSet.sol";
import "./Multisigable.sol";

// LightLink 2023
contract Multisig is Multisigable {
  using MemberSet for MemberSet.Record;

  struct Transaction {
    bool executed;
    address target;
    bytes data;
    uint256 value;
    uint256 numConfirmations;
  }

  // variables
  MemberSet.Record internal members;
  // mapping from tx index => owner => bool
  mapping(uint256 => mapping(address => bool)) public isConfirmed;
  Transaction[] public transactions;

  event SubmitTransaction(uint256 indexed txIndex, address indexed account, uint256 value, bytes data);
  event ConfirmTransaction(uint256 indexed txIndex, address indexed owner);
  event RevokeConfirmation(uint256 indexed txIndex, address indexed owner);
  event ExecuteTransaction(uint256 indexed txIndex, address indexed owner);

  constructor() {
    __Multisigable_init(address(this));
    members.add(0xdE2552948aacb82dCa7a04AffbcB1B8e3C97D590);
    members.add(0x26623571D709862776a0E061617634e6474393F2);
  }

  /** Modifier */
  // verified
  modifier requireOwner() {
    require(members.contains(msg.sender), "Owner required");
    _;
  }

  // verified
  modifier requireTxExists(uint256 _txIndex) {
    require(_txIndex < transactions.length, "Nonexistent tx");
    _;
  }

  modifier requireTxNotExecuted(uint256 _txIndex) {
    require(!transactions[_txIndex].executed, "Tx already executed");
    _;
  }

  /* View */
  // verified
  function isOwner(address _account) public view returns (bool) {
    return members.contains(_account);
  }

  // verified
  function getMembers() public view returns (address[] memory) {
    uint256 size = members.size();
    address[] memory records = new address[](size);

    for (uint256 i = 0; i < size; i++) {
      records[i] = members.at(i);
    }
    return records;
  }

  // verified
  function getMemberByIndex(uint256 _index) public view returns (address) {
    return members.at(_index);
  }

  // verified
  function getTransactionCount() public view returns (uint256) {
    return transactions.length;
  }

  // verified
  function getTransaction(uint256 _idx) public view returns (Transaction memory, bytes4 funcSelector) {
    bytes memory data = transactions[_idx].data;
    assembly {
      funcSelector := mload(add(data, 32))
    }
    return (transactions[_idx], funcSelector);
  }

  // verified
  function getSelector(string calldata _func) public pure returns (bytes4) {
    return bytes4(keccak256(bytes(_func)));
  }

  /* Admins */
  // verified
  function addMember(address _account) public virtual requireMultisig {
    members.add(_account);
  }

  // verified
  function removeMember(address _account) public virtual requireMultisig {
    require(members.size() > 1, "Cannot remove last member");
    members.remove(_account);
  }

  // verified
  function submitTransaction(address _target, uint256 _value, bytes calldata _data) public requireOwner {
    _beforeAddTransaction(_data);

    uint256 txIndex = transactions.length;

    transactions.push(Transaction({ executed: false, target: _target, data: _data, value: _value, numConfirmations: 0 }));

    confirmTransaction(txIndex);

    emit SubmitTransaction(txIndex, msg.sender, _value, _data);
  }

  // verified
  function confirmTransaction(uint256 _txIndex) public requireOwner requireTxExists(_txIndex) requireTxNotExecuted(_txIndex) {
    Transaction storage transaction = transactions[_txIndex];

    require(!isConfirmed[_txIndex][msg.sender], "Already confirmed");

    transaction.numConfirmations += 1;
    isConfirmed[_txIndex][msg.sender] = true;

    emit ConfirmTransaction(_txIndex, msg.sender);
  }

  // verified
  function executeTransaction(uint256 _txIndex) public requireOwner requireTxExists(_txIndex) requireTxNotExecuted(_txIndex) {
    Transaction storage transaction = transactions[_txIndex];
    uint256 numConfirmationsRequired = members.size() / 2 + 1;

    require(transaction.numConfirmations >= numConfirmationsRequired, "Confirmations required");

    transaction.executed = true;

    (bool success, ) = transaction.target.call{ value: transaction.value }(transaction.data);
    require(success, "Tx failed");

    emit ExecuteTransaction(_txIndex, msg.sender);
  }

  // verified
  function revokeConfirmation(uint256 _txIndex) public requireOwner requireTxExists(_txIndex) requireTxNotExecuted(_txIndex) {
    Transaction storage transaction = transactions[_txIndex];

    require(isConfirmed[_txIndex][msg.sender], "Confirmation required");

    transaction.numConfirmations -= 1;
    isConfirmed[_txIndex][msg.sender] = false;

    emit RevokeConfirmation(_txIndex, msg.sender);
  }

  /* Internal */
  // verified
  function _beforeAddTransaction(bytes calldata _data) internal pure virtual {
    // bytes4 funcSelector = bytes4(_data[:4]);
  }
}

// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

// LightLink 2023
library MemberSet {
  struct Record {
    address[] values;
    mapping(address => uint256) indexes; // value to index
  }

  function add(Record storage _record, address _value) internal {
    if (contains(_record, _value)) return; // exist
    _record.values.push(_value);
    _record.indexes[_value] = _record.values.length;
  }

  function remove(Record storage _record, address _value) internal {
    uint256 valueIndex = _record.indexes[_value];
    if (valueIndex == 0) return; // removed non-exist value
    uint256 toDeleteIndex = valueIndex - 1; // dealing with out of bounds
    uint256 lastIndex = _record.values.length - 1;
    if (lastIndex != toDeleteIndex) {
      address lastvalue = _record.values[lastIndex];
      _record.values[toDeleteIndex] = lastvalue;
      _record.indexes[lastvalue] = valueIndex; // Replace lastvalue's index to valueIndex
    }
    _record.values.pop();
    _record.indexes[_value] = 0; // set to 0
  }

  function contains(Record storage _record, address _value) internal view returns (bool) {
    return _record.indexes[_value] != 0;
  }

  function size(Record storage _record) internal view returns (uint256) {
    return _record.values.length;
  }

  function at(Record storage _record, uint256 _index) internal view returns (address) {
    return _record.values[_index];
  }
}

// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

// LightLink 2023
abstract contract Multisigable {
  address public multisig;

  /** Modifier */
  // verified
  modifier requireMultisig() {
    require(msg.sender == multisig, "Multisig required");
    _;
  }

  function modifyMultisig(address _multisig) public requireMultisig {
    require(_multisig != address(0), "Multisig address cannot be zero");
    multisig = _multisig;
  }

  function __Multisigable_init(address _multisig) internal {
    require(_multisig != address(0), "Multisig address cannot be zero");
    multisig = _multisig;
  }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 9999
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"txIndex","type":"uint256"},{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"ConfirmTransaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"txIndex","type":"uint256"},{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"ExecuteTransaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"txIndex","type":"uint256"},{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"RevokeConfirmation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"txIndex","type":"uint256"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"SubmitTransaction","type":"event"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"addMember","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_txIndex","type":"uint256"}],"name":"confirmTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_txIndex","type":"uint256"}],"name":"executeTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"getMemberByIndex","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMembers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_func","type":"string"}],"name":"getSelector","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_idx","type":"uint256"}],"name":"getTransaction","outputs":[{"components":[{"internalType":"bool","name":"executed","type":"bool"},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"numConfirmations","type":"uint256"}],"internalType":"struct Multisig.Transaction","name":"","type":"tuple"},{"internalType":"bytes4","name":"funcSelector","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTransactionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"isConfirmed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_multisig","type":"address"}],"name":"modifyMultisig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"multisig","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"removeMember","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_txIndex","type":"uint256"}],"name":"revokeConfirmation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"submitTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"transactions","outputs":[{"internalType":"bool","name":"executed","type":"bool"},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"numConfirmations","type":"uint256"}],"stateMutability":"view","type":"function"}]

60806040523480156200001157600080fd5b506200001d3062000065565b6200003e600173de2552948aacb82dca7a04affbcb1b8e3c97d590620000e2565b6200005f60017326623571d709862776a0e061617634e6474393f2620000e2565b6200014b565b6001600160a01b038116620000c05760405162461bcd60e51b815260206004820152601f60248201527f4d756c746973696720616464726573732063616e6e6f74206265207a65726f00604482015260640160405180910390fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526001830160205260409020541562000107575050565b8154600181810184556000848152602080822090930180546001600160a01b039095166001600160a01b031990951685179055845493815293019052604090912055565b611c84806200015b6000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806380f59a6511610097578063c01a8c8411610066578063c01a8c841461029d578063c6427474146102b0578063ca6d56dc146102c3578063ee22610b146102d657600080fd5b806380f59a65146102235780639ace38c2146102515780639eab525314610275578063bce73b451461028a57600080fd5b806333ea3dc8116100d357806333ea3dc8146101665780634783c35b146101875780636ad00461146101cc57806380a003ff146101df57600080fd5b80630b1ca49a1461010557806320ea8d861461011a5780632e7700f01461012d5780632f54bf6e14610143575b600080fd5b610118610113366004611563565b6102e9565b005b610118610128366004611585565b6103b4565b6004546040519081526020015b60405180910390f35b610156610151366004611563565b6105ee565b604051901515815260200161013a565b610179610174366004611585565b61061d565b60405161013a929190611602565b6000546101a79073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161013a565b6101186101da366004611563565b610837565b6101f26101ed3660046116d8565b610948565b6040517fffffffff00000000000000000000000000000000000000000000000000000000909116815260200161013a565b61015661023136600461171a565b600360209081526000928352604080842090915290825290205460ff1681565b61026461025f366004611585565b61096a565b60405161013a959493929190611746565b61027d610a4e565b60405161013a9190611791565b6101a7610298366004611585565b610b0a565b6101186102ab366004611585565b610b17565b6101186102be3660046117eb565b610d55565b6101186102d1366004611563565b610f51565b6101186102e4366004611585565b610fc3565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103555760405162461bcd60e51b815260206004820152601160248201527f4d756c746973696720726571756972656400000000000000000000000000000060448201526064015b60405180910390fd5b60018054116103a65760405162461bcd60e51b815260206004820152601960248201527f43616e6e6f742072656d6f7665206c617374206d656d62657200000000000000604482015260640161034c565b6103b16001826112ae565b50565b336000908152600260205260409020546104105760405162461bcd60e51b815260206004820152600e60248201527f4f776e6572207265717569726564000000000000000000000000000000000000604482015260640161034c565b600454819081106104635760405162461bcd60e51b815260206004820152600e60248201527f4e6f6e6578697374656e74207478000000000000000000000000000000000000604482015260640161034c565b816004818154811061047757610477611845565b600091825260209091206004909102015460ff16156104d85760405162461bcd60e51b815260206004820152601360248201527f547820616c726561647920657865637574656400000000000000000000000000604482015260640161034c565b6000600484815481106104ed576104ed611845565b600091825260208083208784526003825260408085203386529092529220546004909102909101915060ff166105655760405162461bcd60e51b815260206004820152601560248201527f436f6e6669726d6174696f6e2072657175697265640000000000000000000000604482015260640161034c565b600181600301600082825461057a91906118a3565b9091555050600084815260036020908152604080832033808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551909186917f7f8ce8e4f5a5b480ff78c18404639350996fd63efc83ace55b1d6a3e12158e249190a350505050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526002602052604081205415155b92915050565b6106676040518060a00160405280600015158152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160008152602001600081525090565b6000806004848154811061067d5761067d611845565b90600052602060002090600402016001018054610699906118b6565b80601f01602080910402602001604051908101604052809291908181526020018280546106c5906118b6565b80156107125780601f106106e757610100808354040283529160200191610712565b820191906000526020600020905b8154815290600101906020018083116106f557829003601f168201915b50505050509050602081015191506004848154811061073357610733611845565b60009182526020918290206040805160a0810182526004909302909101805460ff81161515845273ffffffffffffffffffffffffffffffffffffffff6101009091041693830193909352600183018054869392859290840191610795906118b6565b80601f01602080910402602001604051908101604052809291908181526020018280546107c1906118b6565b801561080e5780601f106107e35761010080835404028352916020019161080e565b820191906000526020600020905b8154815290600101906020018083116107f157829003601f168201915b505050505081526020016002820154815260200160038201548152505091509250925050915091565b60005473ffffffffffffffffffffffffffffffffffffffff16331461089e5760405162461bcd60e51b815260206004820152601160248201527f4d756c7469736967207265717569726564000000000000000000000000000000604482015260640161034c565b73ffffffffffffffffffffffffffffffffffffffff81166109015760405162461bcd60e51b815260206004820152601f60248201527f4d756c746973696720616464726573732063616e6e6f74206265207a65726f00604482015260640161034c565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000828260405161095a929190611909565b6040518091039020905092915050565b6004818154811061097a57600080fd5b60009182526020909120600490910201805460018201805460ff8316945061010090920473ffffffffffffffffffffffffffffffffffffffff1692916109bf906118b6565b80601f01602080910402602001604051908101604052809291908181526020018280546109eb906118b6565b8015610a385780601f10610a0d57610100808354040283529160200191610a38565b820191906000526020600020905b815481529060010190602001808311610a1b57829003601f168201915b5050505050908060020154908060030154905085565b60606000610a5b60015490565b905060008167ffffffffffffffff811115610a7857610a78611919565b604051908082528060200260200182016040528015610aa1578160200160208202803683370190505b50905060005b82811015610b0357610aba600182611460565b828281518110610acc57610acc611845565b73ffffffffffffffffffffffffffffffffffffffff9092166020928302919091019091015280610afb81611948565b915050610aa7565b5092915050565b6000610617600183611460565b33600090815260026020526040902054610b735760405162461bcd60e51b815260206004820152600e60248201527f4f776e6572207265717569726564000000000000000000000000000000000000604482015260640161034c565b60045481908110610bc65760405162461bcd60e51b815260206004820152600e60248201527f4e6f6e6578697374656e74207478000000000000000000000000000000000000604482015260640161034c565b8160048181548110610bda57610bda611845565b600091825260209091206004909102015460ff1615610c3b5760405162461bcd60e51b815260206004820152601360248201527f547820616c726561647920657865637574656400000000000000000000000000604482015260640161034c565b600060048481548110610c5057610c50611845565b600091825260208083208784526003825260408085203386529092529220546004909102909101915060ff1615610cc95760405162461bcd60e51b815260206004820152601160248201527f416c726561647920636f6e6669726d6564000000000000000000000000000000604482015260640161034c565b6001816003016000828254610cde9190611980565b9091555050600084815260036020908152604080832033808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905551909186917fcb0f87c749501e9cd0f274dc3a2c62b91b6a4f2909001c6c13663072b739d3d69190a350505050565b33600090815260026020526040902054610db15760405162461bcd60e51b815260206004820152600e60248201527f4f776e6572207265717569726564000000000000000000000000000000000000604482015260640161034c565b6000600480549050905060046040518060a001604052806000151581526020018773ffffffffffffffffffffffffffffffffffffffff16815260200185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250938552505050602080830189905260409283018290528454600180820187559583529181902084516004909302018054918501517fffffffffffffffffffffff0000000000000000000000000000000000000000009092169215157fffffffffffffffffffffff0000000000000000000000000000000000000000ff169290921761010073ffffffffffffffffffffffffffffffffffffffff90921691909102178155908201519192909190820190610ed890826119e2565b5060608201518160020155608082015181600301555050610ef881610b17565b3373ffffffffffffffffffffffffffffffffffffffff16817ec2937519b07b47ea25f52e915dd99023f9b3e1aaeef041ddecbac3e9400bbe868686604051610f4293929190611afc565b60405180910390a35050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610fb85760405162461bcd60e51b815260206004820152601160248201527f4d756c7469736967207265717569726564000000000000000000000000000000604482015260640161034c565b6103b16001826114a0565b3360009081526002602052604090205461101f5760405162461bcd60e51b815260206004820152600e60248201527f4f776e6572207265717569726564000000000000000000000000000000000000604482015260640161034c565b600454819081106110725760405162461bcd60e51b815260206004820152600e60248201527f4e6f6e6578697374656e74207478000000000000000000000000000000000000604482015260640161034c565b816004818154811061108657611086611845565b600091825260209091206004909102015460ff16156110e75760405162461bcd60e51b815260206004820152601360248201527f547820616c726561647920657865637574656400000000000000000000000000604482015260640161034c565b6000600484815481106110fc576110fc611845565b906000526020600020906004020190506000600261111960015490565b6111239190611b50565b61112e906001611980565b905080826003015410156111845760405162461bcd60e51b815260206004820152601660248201527f436f6e6669726d6174696f6e7320726571756972656400000000000000000000604482015260640161034c565b815460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009091168117808455600284015460405160009361010090930473ffffffffffffffffffffffffffffffffffffffff16926111e69190870190611b8b565b60006040518083038185875af1925050503d8060008114611223576040519150601f19603f3d011682016040523d82523d6000602084013e611228565b606091505b50509050806112795760405162461bcd60e51b815260206004820152600960248201527f5478206661696c65640000000000000000000000000000000000000000000000604482015260640161034c565b604051339087907fff0d827e815551ef359e2272c2751de1c593cdff65e6e59efab752e10e9ef6d290600090a3505050505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600183016020526040812054908190036112e357505050565b60006112f06001836118a3565b8454909150600090611304906001906118a3565b90508181146113c257600085600001828154811061132457611324611845565b600091825260209091200154865473ffffffffffffffffffffffffffffffffffffffff9091169150819087908590811061136057611360611845565b600091825260208083209190910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff94851617905592909116815260018701909152604090208390555b84548590806113d3576113d3611c1f565b6000828152602080822083017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905590920190925573ffffffffffffffffffffffffffffffffffffffff9590951681526001959095019093525050604082209190915550565b600082600001828154811061147757611477611845565b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff169392505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600183016020526040902054156114d1575050565b81546001818101845560008481526020808220909301805473ffffffffffffffffffffffffffffffffffffffff9095167fffffffffffffffffffffffff000000000000000000000000000000000000000090951685179055845493815293019052604090912055565b803573ffffffffffffffffffffffffffffffffffffffff8116811461155e57600080fd5b919050565b60006020828403121561157557600080fd5b61157e8261153a565b9392505050565b60006020828403121561159757600080fd5b5035919050565b6000815180845260005b818110156115c4576020818501810151868301820152016115a8565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6040815282511515604082015273ffffffffffffffffffffffffffffffffffffffff60208401511660608201526000604084015160a0608084015261164a60e084018261159e565b606086015160a085015260809095015160c084015250507fffffffff000000000000000000000000000000000000000000000000000000009190911660209091015290565b60008083601f8401126116a157600080fd5b50813567ffffffffffffffff8111156116b957600080fd5b6020830191508360208285010111156116d157600080fd5b9250929050565b600080602083850312156116eb57600080fd5b823567ffffffffffffffff81111561170257600080fd5b61170e8582860161168f565b90969095509350505050565b6000806040838503121561172d57600080fd5b8235915061173d6020840161153a565b90509250929050565b851515815273ffffffffffffffffffffffffffffffffffffffff8516602082015260a06040820152600061177d60a083018661159e565b606083019490945250608001529392505050565b6020808252825182820181905260009190848201906040850190845b818110156117df57835173ffffffffffffffffffffffffffffffffffffffff16835292840192918401916001016117ad565b50909695505050505050565b6000806000806060858703121561180157600080fd5b61180a8561153a565b935060208501359250604085013567ffffffffffffffff81111561182d57600080fd5b6118398782880161168f565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561061757610617611874565b600181811c908216806118ca57607f821691505b602082108103611903577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8183823760009101908152919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361197957611979611874565b5060010190565b8082018082111561061757610617611874565b601f8211156119dd57600081815260208120601f850160051c810160208610156119ba5750805b601f850160051c820191505b818110156119d9578281556001016119c6565b5050505b505050565b815167ffffffffffffffff8111156119fc576119fc611919565b611a1081611a0a84546118b6565b84611993565b602080601f831160018114611a635760008415611a2d5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556119d9565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015611ab057888601518255948401946001909101908401611a91565b5085821015611aec57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b83815260406020820152816040820152818360608301376000818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b600082611b86577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000808354611b99816118b6565b60018281168015611bb15760018114611be457611c13565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0084168752821515830287019450611c13565b8760005260208060002060005b85811015611c0a5781548a820152908401908201611bf1565b50505082870194505b50929695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220fa01a7a59e11d8a7e947688d1cb4705a743a62130f19bfb2d5fc44197d7e77e564736f6c63430008130033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101005760003560e01c806380f59a6511610097578063c01a8c8411610066578063c01a8c841461029d578063c6427474146102b0578063ca6d56dc146102c3578063ee22610b146102d657600080fd5b806380f59a65146102235780639ace38c2146102515780639eab525314610275578063bce73b451461028a57600080fd5b806333ea3dc8116100d357806333ea3dc8146101665780634783c35b146101875780636ad00461146101cc57806380a003ff146101df57600080fd5b80630b1ca49a1461010557806320ea8d861461011a5780632e7700f01461012d5780632f54bf6e14610143575b600080fd5b610118610113366004611563565b6102e9565b005b610118610128366004611585565b6103b4565b6004546040519081526020015b60405180910390f35b610156610151366004611563565b6105ee565b604051901515815260200161013a565b610179610174366004611585565b61061d565b60405161013a929190611602565b6000546101a79073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161013a565b6101186101da366004611563565b610837565b6101f26101ed3660046116d8565b610948565b6040517fffffffff00000000000000000000000000000000000000000000000000000000909116815260200161013a565b61015661023136600461171a565b600360209081526000928352604080842090915290825290205460ff1681565b61026461025f366004611585565b61096a565b60405161013a959493929190611746565b61027d610a4e565b60405161013a9190611791565b6101a7610298366004611585565b610b0a565b6101186102ab366004611585565b610b17565b6101186102be3660046117eb565b610d55565b6101186102d1366004611563565b610f51565b6101186102e4366004611585565b610fc3565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103555760405162461bcd60e51b815260206004820152601160248201527f4d756c746973696720726571756972656400000000000000000000000000000060448201526064015b60405180910390fd5b60018054116103a65760405162461bcd60e51b815260206004820152601960248201527f43616e6e6f742072656d6f7665206c617374206d656d62657200000000000000604482015260640161034c565b6103b16001826112ae565b50565b336000908152600260205260409020546104105760405162461bcd60e51b815260206004820152600e60248201527f4f776e6572207265717569726564000000000000000000000000000000000000604482015260640161034c565b600454819081106104635760405162461bcd60e51b815260206004820152600e60248201527f4e6f6e6578697374656e74207478000000000000000000000000000000000000604482015260640161034c565b816004818154811061047757610477611845565b600091825260209091206004909102015460ff16156104d85760405162461bcd60e51b815260206004820152601360248201527f547820616c726561647920657865637574656400000000000000000000000000604482015260640161034c565b6000600484815481106104ed576104ed611845565b600091825260208083208784526003825260408085203386529092529220546004909102909101915060ff166105655760405162461bcd60e51b815260206004820152601560248201527f436f6e6669726d6174696f6e2072657175697265640000000000000000000000604482015260640161034c565b600181600301600082825461057a91906118a3565b9091555050600084815260036020908152604080832033808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551909186917f7f8ce8e4f5a5b480ff78c18404639350996fd63efc83ace55b1d6a3e12158e249190a350505050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526002602052604081205415155b92915050565b6106676040518060a00160405280600015158152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160008152602001600081525090565b6000806004848154811061067d5761067d611845565b90600052602060002090600402016001018054610699906118b6565b80601f01602080910402602001604051908101604052809291908181526020018280546106c5906118b6565b80156107125780601f106106e757610100808354040283529160200191610712565b820191906000526020600020905b8154815290600101906020018083116106f557829003601f168201915b50505050509050602081015191506004848154811061073357610733611845565b60009182526020918290206040805160a0810182526004909302909101805460ff81161515845273ffffffffffffffffffffffffffffffffffffffff6101009091041693830193909352600183018054869392859290840191610795906118b6565b80601f01602080910402602001604051908101604052809291908181526020018280546107c1906118b6565b801561080e5780601f106107e35761010080835404028352916020019161080e565b820191906000526020600020905b8154815290600101906020018083116107f157829003601f168201915b505050505081526020016002820154815260200160038201548152505091509250925050915091565b60005473ffffffffffffffffffffffffffffffffffffffff16331461089e5760405162461bcd60e51b815260206004820152601160248201527f4d756c7469736967207265717569726564000000000000000000000000000000604482015260640161034c565b73ffffffffffffffffffffffffffffffffffffffff81166109015760405162461bcd60e51b815260206004820152601f60248201527f4d756c746973696720616464726573732063616e6e6f74206265207a65726f00604482015260640161034c565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000828260405161095a929190611909565b6040518091039020905092915050565b6004818154811061097a57600080fd5b60009182526020909120600490910201805460018201805460ff8316945061010090920473ffffffffffffffffffffffffffffffffffffffff1692916109bf906118b6565b80601f01602080910402602001604051908101604052809291908181526020018280546109eb906118b6565b8015610a385780601f10610a0d57610100808354040283529160200191610a38565b820191906000526020600020905b815481529060010190602001808311610a1b57829003601f168201915b5050505050908060020154908060030154905085565b60606000610a5b60015490565b905060008167ffffffffffffffff811115610a7857610a78611919565b604051908082528060200260200182016040528015610aa1578160200160208202803683370190505b50905060005b82811015610b0357610aba600182611460565b828281518110610acc57610acc611845565b73ffffffffffffffffffffffffffffffffffffffff9092166020928302919091019091015280610afb81611948565b915050610aa7565b5092915050565b6000610617600183611460565b33600090815260026020526040902054610b735760405162461bcd60e51b815260206004820152600e60248201527f4f776e6572207265717569726564000000000000000000000000000000000000604482015260640161034c565b60045481908110610bc65760405162461bcd60e51b815260206004820152600e60248201527f4e6f6e6578697374656e74207478000000000000000000000000000000000000604482015260640161034c565b8160048181548110610bda57610bda611845565b600091825260209091206004909102015460ff1615610c3b5760405162461bcd60e51b815260206004820152601360248201527f547820616c726561647920657865637574656400000000000000000000000000604482015260640161034c565b600060048481548110610c5057610c50611845565b600091825260208083208784526003825260408085203386529092529220546004909102909101915060ff1615610cc95760405162461bcd60e51b815260206004820152601160248201527f416c726561647920636f6e6669726d6564000000000000000000000000000000604482015260640161034c565b6001816003016000828254610cde9190611980565b9091555050600084815260036020908152604080832033808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905551909186917fcb0f87c749501e9cd0f274dc3a2c62b91b6a4f2909001c6c13663072b739d3d69190a350505050565b33600090815260026020526040902054610db15760405162461bcd60e51b815260206004820152600e60248201527f4f776e6572207265717569726564000000000000000000000000000000000000604482015260640161034c565b6000600480549050905060046040518060a001604052806000151581526020018773ffffffffffffffffffffffffffffffffffffffff16815260200185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250938552505050602080830189905260409283018290528454600180820187559583529181902084516004909302018054918501517fffffffffffffffffffffff0000000000000000000000000000000000000000009092169215157fffffffffffffffffffffff0000000000000000000000000000000000000000ff169290921761010073ffffffffffffffffffffffffffffffffffffffff90921691909102178155908201519192909190820190610ed890826119e2565b5060608201518160020155608082015181600301555050610ef881610b17565b3373ffffffffffffffffffffffffffffffffffffffff16817ec2937519b07b47ea25f52e915dd99023f9b3e1aaeef041ddecbac3e9400bbe868686604051610f4293929190611afc565b60405180910390a35050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610fb85760405162461bcd60e51b815260206004820152601160248201527f4d756c7469736967207265717569726564000000000000000000000000000000604482015260640161034c565b6103b16001826114a0565b3360009081526002602052604090205461101f5760405162461bcd60e51b815260206004820152600e60248201527f4f776e6572207265717569726564000000000000000000000000000000000000604482015260640161034c565b600454819081106110725760405162461bcd60e51b815260206004820152600e60248201527f4e6f6e6578697374656e74207478000000000000000000000000000000000000604482015260640161034c565b816004818154811061108657611086611845565b600091825260209091206004909102015460ff16156110e75760405162461bcd60e51b815260206004820152601360248201527f547820616c726561647920657865637574656400000000000000000000000000604482015260640161034c565b6000600484815481106110fc576110fc611845565b906000526020600020906004020190506000600261111960015490565b6111239190611b50565b61112e906001611980565b905080826003015410156111845760405162461bcd60e51b815260206004820152601660248201527f436f6e6669726d6174696f6e7320726571756972656400000000000000000000604482015260640161034c565b815460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009091168117808455600284015460405160009361010090930473ffffffffffffffffffffffffffffffffffffffff16926111e69190870190611b8b565b60006040518083038185875af1925050503d8060008114611223576040519150601f19603f3d011682016040523d82523d6000602084013e611228565b606091505b50509050806112795760405162461bcd60e51b815260206004820152600960248201527f5478206661696c65640000000000000000000000000000000000000000000000604482015260640161034c565b604051339087907fff0d827e815551ef359e2272c2751de1c593cdff65e6e59efab752e10e9ef6d290600090a3505050505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600183016020526040812054908190036112e357505050565b60006112f06001836118a3565b8454909150600090611304906001906118a3565b90508181146113c257600085600001828154811061132457611324611845565b600091825260209091200154865473ffffffffffffffffffffffffffffffffffffffff9091169150819087908590811061136057611360611845565b600091825260208083209190910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff94851617905592909116815260018701909152604090208390555b84548590806113d3576113d3611c1f565b6000828152602080822083017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905590920190925573ffffffffffffffffffffffffffffffffffffffff9590951681526001959095019093525050604082209190915550565b600082600001828154811061147757611477611845565b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff169392505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600183016020526040902054156114d1575050565b81546001818101845560008481526020808220909301805473ffffffffffffffffffffffffffffffffffffffff9095167fffffffffffffffffffffffff000000000000000000000000000000000000000090951685179055845493815293019052604090912055565b803573ffffffffffffffffffffffffffffffffffffffff8116811461155e57600080fd5b919050565b60006020828403121561157557600080fd5b61157e8261153a565b9392505050565b60006020828403121561159757600080fd5b5035919050565b6000815180845260005b818110156115c4576020818501810151868301820152016115a8565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6040815282511515604082015273ffffffffffffffffffffffffffffffffffffffff60208401511660608201526000604084015160a0608084015261164a60e084018261159e565b606086015160a085015260809095015160c084015250507fffffffff000000000000000000000000000000000000000000000000000000009190911660209091015290565b60008083601f8401126116a157600080fd5b50813567ffffffffffffffff8111156116b957600080fd5b6020830191508360208285010111156116d157600080fd5b9250929050565b600080602083850312156116eb57600080fd5b823567ffffffffffffffff81111561170257600080fd5b61170e8582860161168f565b90969095509350505050565b6000806040838503121561172d57600080fd5b8235915061173d6020840161153a565b90509250929050565b851515815273ffffffffffffffffffffffffffffffffffffffff8516602082015260a06040820152600061177d60a083018661159e565b606083019490945250608001529392505050565b6020808252825182820181905260009190848201906040850190845b818110156117df57835173ffffffffffffffffffffffffffffffffffffffff16835292840192918401916001016117ad565b50909695505050505050565b6000806000806060858703121561180157600080fd5b61180a8561153a565b935060208501359250604085013567ffffffffffffffff81111561182d57600080fd5b6118398782880161168f565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561061757610617611874565b600181811c908216806118ca57607f821691505b602082108103611903577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8183823760009101908152919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361197957611979611874565b5060010190565b8082018082111561061757610617611874565b601f8211156119dd57600081815260208120601f850160051c810160208610156119ba5750805b601f850160051c820191505b818110156119d9578281556001016119c6565b5050505b505050565b815167ffffffffffffffff8111156119fc576119fc611919565b611a1081611a0a84546118b6565b84611993565b602080601f831160018114611a635760008415611a2d5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556119d9565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015611ab057888601518255948401946001909101908401611a91565b5085821015611aec57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b83815260406020820152816040820152818360608301376000818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b600082611b86577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000808354611b99816118b6565b60018281168015611bb15760018114611be457611c13565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0084168752821515830287019450611c13565b8760005260208060002060005b85811015611c0a5781548a820152908401908201611bf1565b50505082870194505b50929695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220fa01a7a59e11d8a7e947688d1cb4705a743a62130f19bfb2d5fc44197d7e77e564736f6c63430008130033

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
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.