ETH Price: $2,031.21 (-0.92%)
Gas: 37 Gwei
 
Transaction Hash
Method
Block
From
To
Value
Safe Create2186719132023-11-28 18:29:351 day 4 hrs ago1701196175IN
Keyless CREATE2 Factory
0 ETH0.0122712866.64033981
Safe Create2186707872023-11-28 14:42:231 day 8 hrs ago1701182543IN
Keyless CREATE2 Factory
0 ETH0.0124978964.89347537
Safe Create2186706362023-11-28 14:11:471 day 8 hrs ago1701180707IN
Keyless CREATE2 Factory
0 ETH0.0904856360.15695824
Safe Create2186628712023-11-27 12:06:232 days 10 hrs ago1701086783IN
Keyless CREATE2 Factory
0 ETH0.1164803339.16567939
Safe Create2186553052023-11-26 10:38:473 days 12 hrs ago1700995127IN
Keyless CREATE2 Factory
0 ETH0.046206620.11905293
Safe Create2186537832023-11-26 5:32:353 days 17 hrs ago1700976755IN
Keyless CREATE2 Factory
0 ETH0.0064156417.9370676
Safe Create2186537692023-11-26 5:29:473 days 17 hrs ago1700976587IN
Keyless CREATE2 Factory
0 ETH0.0068132119.11661309
Safe Create2186537252023-11-26 5:20:593 days 17 hrs ago1700976059IN
Keyless CREATE2 Factory
0 ETH0.0073399820.61602778
Safe Create2186411742023-11-24 11:09:355 days 11 hrs ago1700824175IN
Keyless CREATE2 Factory
0 ETH0.130356128.77541289
Safe Create2186378632023-11-24 0:00:355 days 22 hrs ago1700784035IN
Keyless CREATE2 Factory
0 ETH0.0926873824.39672141
Safe Create2186378632023-11-24 0:00:355 days 22 hrs ago1700784035IN
Keyless CREATE2 Factory
0 ETH0.0354690224.39672141
Safe Create2186378632023-11-24 0:00:355 days 22 hrs ago1700784035IN
Keyless CREATE2 Factory
0 ETH0.0263811924.39672141
Safe Create2186282242023-11-22 15:39:237 days 7 hrs ago1700667563IN
Keyless CREATE2 Factory
0 ETH0.0430687648.4599829
Safe Create2186282242023-11-22 15:39:237 days 7 hrs ago1700667563IN
Keyless CREATE2 Factory
0 ETH0.2728511248.4599829
Safe Create2185977752023-11-18 9:15:3511 days 13 hrs ago1700298935IN
Keyless CREATE2 Factory
0 ETH0.0098743618.59352347
Safe Create2185916552023-11-17 12:39:4712 days 10 hrs ago1700224787IN
Keyless CREATE2 Factory
0 ETH0.0427355532.16907326
Safe Create2185830372023-11-16 7:44:5913 days 15 hrs ago1700120699IN
Keyless CREATE2 Factory
0 ETH0.0027353625.48410821
Safe Create2185828912023-11-16 7:15:4713 days 15 hrs ago1700118947IN
Keyless CREATE2 Factory
0 ETH0.0185580425.03469388
Safe Create2185781542023-11-15 15:23:1114 days 7 hrs ago1700061791IN
Keyless CREATE2 Factory
0 ETH0.0196398438.47118832
Safe Create2185776992023-11-15 13:51:2314 days 9 hrs ago1700056283IN
Keyless CREATE2 Factory
0 ETH0.06704440
Safe Create2185720322023-11-14 18:48:2315 days 4 hrs ago1699987703IN
Keyless CREATE2 Factory
0 ETH0.0292144257.22888085
Safe Create2185609322023-11-13 5:34:1116 days 17 hrs ago1699853651IN
Keyless CREATE2 Factory
0 ETH0.0037324926.07675419
Safe Create2185540782023-11-12 6:34:2317 days 16 hrs ago1699770863IN
Keyless CREATE2 Factory
0 ETH0.0023996516.76498627
Safe Create2185238602023-11-08 1:08:1121 days 21 hrs ago1699405691IN
Keyless CREATE2 Factory
0 ETH0.053812417.92277807
Safe Create2185103362023-11-06 3:41:5923 days 19 hrs ago1699242119IN
Keyless CREATE2 Factory
0 ETH0.0960599724.36460096
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Txn Hash Block From To Value
186790482023-11-29 18:26:594 hrs 26 mins ago1701282419
Keyless CREATE2 Factory
 Contract Creation0 ETH
186719132023-11-28 18:29:351 day 4 hrs ago1701196175
Keyless CREATE2 Factory
 Contract Creation0 ETH
186716962023-11-28 17:45:591 day 5 hrs ago1701193559
Keyless CREATE2 Factory
 Contract Creation0 ETH
186707872023-11-28 14:42:231 day 8 hrs ago1701182543
Keyless CREATE2 Factory
 Contract Creation0 ETH
186706362023-11-28 14:11:471 day 8 hrs ago1701180707
Keyless CREATE2 Factory
 Contract Creation0 ETH
186646152023-11-27 17:57:472 days 4 hrs ago1701107867
Keyless CREATE2 Factory
 Contract Creation0 ETH
186628712023-11-27 12:06:232 days 10 hrs ago1701086783
Keyless CREATE2 Factory
 Contract Creation0 ETH
186611632023-11-27 6:20:592 days 16 hrs ago1701066059
Keyless CREATE2 Factory
 Contract Creation0 ETH
186588432023-11-26 22:33:113 days 20 mins ago1701037991
Keyless CREATE2 Factory
 Contract Creation0 ETH
186577252023-11-26 18:47:593 days 4 hrs ago1701024479
Keyless CREATE2 Factory
 Contract Creation0 ETH
186553052023-11-26 10:38:473 days 12 hrs ago1700995127
Keyless CREATE2 Factory
 Contract Creation0 ETH
186542042023-11-26 6:56:593 days 15 hrs ago1700981819
Keyless CREATE2 Factory
 Contract Creation0 ETH
186537832023-11-26 5:32:353 days 17 hrs ago1700976755
Keyless CREATE2 Factory
 Contract Creation0 ETH
186537692023-11-26 5:29:473 days 17 hrs ago1700976587
Keyless CREATE2 Factory
 Contract Creation0 ETH
186537252023-11-26 5:20:593 days 17 hrs ago1700976059
Keyless CREATE2 Factory
 Contract Creation0 ETH
186422592023-11-24 14:48:235 days 8 hrs ago1700837303
Keyless CREATE2 Factory
 Contract Creation0 ETH
186411742023-11-24 11:09:355 days 11 hrs ago1700824175
Keyless CREATE2 Factory
 Contract Creation0 ETH
186409182023-11-24 10:17:595 days 12 hrs ago1700821079
Keyless CREATE2 Factory
 Contract Creation0 ETH
186378632023-11-24 0:00:355 days 22 hrs ago1700784035
Keyless CREATE2 Factory
 Contract Creation0 ETH
186378632023-11-24 0:00:355 days 22 hrs ago1700784035
Keyless CREATE2 Factory
 Contract Creation0 ETH
186378632023-11-24 0:00:355 days 22 hrs ago1700784035
Keyless CREATE2 Factory
 Contract Creation0 ETH
186360112023-11-23 17:46:356 days 5 hrs ago1700761595
Keyless CREATE2 Factory
 Contract Creation0 ETH
186359402023-11-23 17:32:236 days 5 hrs ago1700760743
Keyless CREATE2 Factory
 Contract Creation0 ETH
186338612023-11-23 10:33:476 days 12 hrs ago1700735627
Keyless CREATE2 Factory
 Contract Creation0 ETH
186338572023-11-23 10:32:596 days 12 hrs ago1700735579
Keyless CREATE2 Factory
 Contract Creation0 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ImmutableCreate2Factory

Compiler Version
v0.5.10+commit.5a6ea5b1

Optimization Enabled:
Yes with 99999 runs

Other Settings:
petersburg EvmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2019-07-30
*/

pragma solidity 0.5.10; // optimization enabled, 99999 runs, evm: petersburg


/**
 * @title Immutable Create2 Contract Factory
 * @author 0age
 * @notice This contract provides a safeCreate2 function that takes a salt value
 * and a block of initialization code as arguments and passes them into inline
 * assembly. The contract prevents redeploys by maintaining a mapping of all
 * contracts that have already been deployed, and prevents frontrunning or other
 * collisions by requiring that the first 20 bytes of the salt are equal to the
 * address of the caller (this can be bypassed by setting the first 20 bytes to
 * the null address). There is also a view function that computes the address of
 * the contract that will be created when submitting a given salt or nonce along
 * with a given block of initialization code.
 * @dev This contract has not yet been fully tested or audited - proceed with
 * caution and please share any exploits or optimizations you discover.
 */
contract ImmutableCreate2Factory {
  // mapping to track which addresses have already been deployed.
  mapping(address => bool) private _deployed;

  /**
   * @dev Create a contract using CREATE2 by submitting a given salt or nonce
   * along with the initialization code for the contract. Note that the first 20
   * bytes of the salt must match those of the calling address, which prevents
   * contract creation events from being submitted by unintended parties.
   * @param salt bytes32 The nonce that will be passed into the CREATE2 call.
   * @param initializationCode bytes The initialization code that will be passed
   * into the CREATE2 call.
   * @return Address of the contract that will be created, or the null address
   * if a contract already exists at that address.
   */
  function safeCreate2(
    bytes32 salt,
    bytes calldata initializationCode
  ) external payable containsCaller(salt) returns (address deploymentAddress) {
    // move the initialization code from calldata to memory.
    bytes memory initCode = initializationCode;

    // determine the target address for contract deployment.
    address targetDeploymentAddress = address(
      uint160(                    // downcast to match the address type.
        uint256(                  // convert to uint to truncate upper digits.
          keccak256(              // compute the CREATE2 hash using 4 inputs.
            abi.encodePacked(     // pack all inputs to the hash together.
              hex"ff",            // start with 0xff to distinguish from RLP.
              address(this),      // this contract will be the caller.
              salt,               // pass in the supplied salt value.
              keccak256(          // pass in the hash of initialization code.
                abi.encodePacked(
                  initCode
                )
              )
            )
          )
        )
      )
    );

    // ensure that a contract hasn't been previously deployed to target address.
    require(
      !_deployed[targetDeploymentAddress],
      "Invalid contract creation - contract has already been deployed."
    );

    // using inline assembly: load data and length of data, then call CREATE2.
    assembly {                                // solhint-disable-line
      let encoded_data := add(0x20, initCode) // load initialization code.
      let encoded_size := mload(initCode)     // load the init code's length.
      deploymentAddress := create2(           // call CREATE2 with 4 arguments.
        callvalue,                            // forward any attached value.
        encoded_data,                         // pass in initialization code.
        encoded_size,                         // pass in init code's length.
        salt                                  // pass in the salt value.
      )
    }

    // check address against target to ensure that deployment was successful.
    require(
      deploymentAddress == targetDeploymentAddress,
      "Failed to deploy contract using provided salt and initialization code."
    );

    // record the deployment of the contract to prevent redeploys.
    _deployed[deploymentAddress] = true;
  }

  /**
   * @dev Compute the address of the contract that will be created when
   * submitting a given salt or nonce to the contract along with the contract's
   * initialization code. The CREATE2 address is computed in accordance with
   * EIP-1014, and adheres to the formula therein of
   * `keccak256( 0xff ++ address ++ salt ++ keccak256(init_code)))[12:]` when
   * performing the computation. The computed address is then checked for any
   * existing contract code - if so, the null address will be returned instead.
   * @param salt bytes32 The nonce passed into the CREATE2 address calculation.
   * @param initCode bytes The contract initialization code to be used.
   * that will be passed into the CREATE2 address calculation.
   * @return Address of the contract that will be created, or the null address
   * if a contract has already been deployed to that address.
   */
  function findCreate2Address(
    bytes32 salt,
    bytes calldata initCode
  ) external view returns (address deploymentAddress) {
    // determine the address where the contract will be deployed.
    deploymentAddress = address(
      uint160(                      // downcast to match the address type.
        uint256(                    // convert to uint to truncate upper digits.
          keccak256(                // compute the CREATE2 hash using 4 inputs.
            abi.encodePacked(       // pack all inputs to the hash together.
              hex"ff",              // start with 0xff to distinguish from RLP.
              address(this),        // this contract will be the caller.
              salt,                 // pass in the supplied salt value.
              keccak256(            // pass in the hash of initialization code.
                abi.encodePacked(
                  initCode
                )
              )
            )
          )
        )
      )
    );

    // return null address to signify failure if contract has been deployed.
    if (_deployed[deploymentAddress]) {
      return address(0);
    }
  }

  /**
   * @dev Compute the address of the contract that will be created when
   * submitting a given salt or nonce to the contract along with the keccak256
   * hash of the contract's initialization code. The CREATE2 address is computed
   * in accordance with EIP-1014, and adheres to the formula therein of
   * `keccak256( 0xff ++ address ++ salt ++ keccak256(init_code)))[12:]` when
   * performing the computation. The computed address is then checked for any
   * existing contract code - if so, the null address will be returned instead.
   * @param salt bytes32 The nonce passed into the CREATE2 address calculation.
   * @param initCodeHash bytes32 The keccak256 hash of the initialization code
   * that will be passed into the CREATE2 address calculation.
   * @return Address of the contract that will be created, or the null address
   * if a contract has already been deployed to that address.
   */
  function findCreate2AddressViaHash(
    bytes32 salt,
    bytes32 initCodeHash
  ) external view returns (address deploymentAddress) {
    // determine the address where the contract will be deployed.
    deploymentAddress = address(
      uint160(                      // downcast to match the address type.
        uint256(                    // convert to uint to truncate upper digits.
          keccak256(                // compute the CREATE2 hash using 4 inputs.
            abi.encodePacked(       // pack all inputs to the hash together.
              hex"ff",              // start with 0xff to distinguish from RLP.
              address(this),        // this contract will be the caller.
              salt,                 // pass in the supplied salt value.
              initCodeHash          // pass in the hash of initialization code.
            )
          )
        )
      )
    );

    // return null address to signify failure if contract has been deployed.
    if (_deployed[deploymentAddress]) {
      return address(0);
    }
  }

  /**
   * @dev Determine if a contract has already been deployed by the factory to a
   * given address.
   * @param deploymentAddress address The contract address to check.
   * @return True if the contract has been deployed, false otherwise.
   */
  function hasBeenDeployed(
    address deploymentAddress
  ) external view returns (bool) {
    // determine if a contract has been deployed to the provided address.
    return _deployed[deploymentAddress];
  }

  /**
   * @dev Modifier to ensure that the first 20 bytes of a submitted salt match
   * those of the calling account. This provides protection against the salt
   * being stolen by frontrunners or other attackers. The protection can also be
   * bypassed if desired by setting each of the first 20 bytes to zero.
   * @param salt bytes32 The salt value to check against the calling address.
   */
  modifier containsCaller(bytes32 salt) {
    // prevent contract submissions from being stolen from tx.pool by requiring
    // that the first 20 bytes of the submitted salt match msg.sender.
    require(
      (address(bytes20(salt)) == msg.sender) ||
      (bytes20(salt) == bytes20(0)),
      "Invalid salt - first 20 bytes of the salt must match calling address."
    );
    _;
  }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"deploymentAddress","type":"address"}],"name":"hasBeenDeployed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"salt","type":"bytes32"},{"name":"initializationCode","type":"bytes"}],"name":"safeCreate2","outputs":[{"name":"deploymentAddress","type":"address"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"salt","type":"bytes32"},{"name":"initCode","type":"bytes"}],"name":"findCreate2Address","outputs":[{"name":"deploymentAddress","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"salt","type":"bytes32"},{"name":"initCodeHash","type":"bytes32"}],"name":"findCreate2AddressViaHash","outputs":[{"name":"deploymentAddress","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b50610833806100206000396000f3fe60806040526004361061003f5760003560e01c806308508b8f1461004457806364e030871461009857806385cf97ab14610138578063a49a7c90146101bc575b600080fd5b34801561005057600080fd5b506100846004803603602081101561006757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166101ec565b604080519115158252519081900360200190f35b61010f600480360360408110156100ae57600080fd5b813591908101906040810160208201356401000000008111156100d057600080fd5b8201836020820111156100e257600080fd5b8035906020019184600183028401116401000000008311171561010457600080fd5b509092509050610217565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561014457600080fd5b5061010f6004803603604081101561015b57600080fd5b8135919081019060408101602082013564010000000081111561017d57600080fd5b82018360208201111561018f57600080fd5b803590602001918460018302840111640100000000831117156101b157600080fd5b509092509050610592565b3480156101c857600080fd5b5061010f600480360360408110156101df57600080fd5b508035906020013561069e565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205460ff1690565b600083606081901c33148061024c57507fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008116155b6102a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260458152602001806107746045913960600191505060405180910390fd5b606084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250604051855195965090943094508b93508692506020918201918291908401908083835b6020831061033557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016102f8565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905260408051929094018281037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00183528085528251928201929092207fff000000000000000000000000000000000000000000000000000000000000008383015260609890981b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201969096526055808201979097528251808203909701875260750182525084519484019490942073ffffffffffffffffffffffffffffffffffffffff81166000908152938490529390922054929350505060ff16156104a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f815260200180610735603f913960400191505060405180910390fd5b81602001825188818334f5955050508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461053a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260468152602001806107b96046913960600191505060405180910390fd5b50505073ffffffffffffffffffffffffffffffffffffffff8116600090815260208190526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790559392505050565b6000308484846040516020018083838082843760408051919093018181037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001825280845281516020928301207fff000000000000000000000000000000000000000000000000000000000000008383015260609990991b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166021820152603581019790975260558088019890985282518088039098018852607590960182525085519585019590952073ffffffffffffffffffffffffffffffffffffffff81166000908152948590529490932054939450505060ff909116159050610697575060005b9392505050565b604080517fff000000000000000000000000000000000000000000000000000000000000006020808301919091523060601b6021830152603582018590526055808301859052835180840390910181526075909201835281519181019190912073ffffffffffffffffffffffffffffffffffffffff81166000908152918290529190205460ff161561072e575060005b9291505056fe496e76616c696420636f6e7472616374206372656174696f6e202d20636f6e74726163742068617320616c7265616479206265656e206465706c6f7965642e496e76616c69642073616c74202d206669727374203230206279746573206f66207468652073616c74206d757374206d617463682063616c6c696e6720616464726573732e4661696c656420746f206465706c6f7920636f6e7472616374207573696e672070726f76696465642073616c7420616e6420696e697469616c697a6174696f6e20636f64652ea265627a7a723058202bdc55310d97c4088f18acf04253db593f0914059f0c781a9df3624dcef0d1cf64736f6c634300050a0032

Deployed Bytecode

0x60806040526004361061003f5760003560e01c806308508b8f1461004457806364e030871461009857806385cf97ab14610138578063a49a7c90146101bc575b600080fd5b34801561005057600080fd5b506100846004803603602081101561006757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166101ec565b604080519115158252519081900360200190f35b61010f600480360360408110156100ae57600080fd5b813591908101906040810160208201356401000000008111156100d057600080fd5b8201836020820111156100e257600080fd5b8035906020019184600183028401116401000000008311171561010457600080fd5b509092509050610217565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561014457600080fd5b5061010f6004803603604081101561015b57600080fd5b8135919081019060408101602082013564010000000081111561017d57600080fd5b82018360208201111561018f57600080fd5b803590602001918460018302840111640100000000831117156101b157600080fd5b509092509050610592565b3480156101c857600080fd5b5061010f600480360360408110156101df57600080fd5b508035906020013561069e565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205460ff1690565b600083606081901c33148061024c57507fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008116155b6102a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260458152602001806107746045913960600191505060405180910390fd5b606084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250604051855195965090943094508b93508692506020918201918291908401908083835b6020831061033557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016102f8565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905260408051929094018281037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00183528085528251928201929092207fff000000000000000000000000000000000000000000000000000000000000008383015260609890981b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201969096526055808201979097528251808203909701875260750182525084519484019490942073ffffffffffffffffffffffffffffffffffffffff81166000908152938490529390922054929350505060ff16156104a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f815260200180610735603f913960400191505060405180910390fd5b81602001825188818334f5955050508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461053a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260468152602001806107b96046913960600191505060405180910390fd5b50505073ffffffffffffffffffffffffffffffffffffffff8116600090815260208190526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790559392505050565b6000308484846040516020018083838082843760408051919093018181037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001825280845281516020928301207fff000000000000000000000000000000000000000000000000000000000000008383015260609990991b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166021820152603581019790975260558088019890985282518088039098018852607590960182525085519585019590952073ffffffffffffffffffffffffffffffffffffffff81166000908152948590529490932054939450505060ff909116159050610697575060005b9392505050565b604080517fff000000000000000000000000000000000000000000000000000000000000006020808301919091523060601b6021830152603582018590526055808301859052835180840390910181526075909201835281519181019190912073ffffffffffffffffffffffffffffffffffffffff81166000908152918290529190205460ff161561072e575060005b9291505056fe496e76616c696420636f6e7472616374206372656174696f6e202d20636f6e74726163742068617320616c7265616479206265656e206465706c6f7965642e496e76616c69642073616c74202d206669727374203230206279746573206f66207468652073616c74206d757374206d617463682063616c6c696e6720616464726573732e4661696c656420746f206465706c6f7920636f6e7472616374207573696e672070726f76696465642073616c7420616e6420696e697469616c697a6174696f6e20636f64652ea265627a7a723058202bdc55310d97c4088f18acf04253db593f0914059f0c781a9df3624dcef0d1cf64736f6c634300050a0032

Deployed Bytecode Sourcemap

1002:8623:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8603:214;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8603:214:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8603:214:0;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1808:2438;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1808:2438:0;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;1808:2438:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1808:2438: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;-1:-1;1808:2438:0;;-1:-1:-1;1808:2438:0;-1:-1:-1;1808:2438:0;:::i;:::-;;;;;;;;;;;;;;;;;;;5152:1174;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5152:1174:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5152:1174:0;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;5152:1174:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5152:1174: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;-1:-1;5152:1174:0;;-1:-1:-1;5152:1174:0;-1:-1:-1;5152:1174:0;:::i;7261:1079::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7261:1079:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7261:1079:0;;;;;;;:::i;8603:214::-;8783:28;;8688:4;8783:28;;;;;;;;;;;;;;8603:214::o;1808:2438::-;1940:25;1925:4;9444:22;;;;9470:10;9444:36;;9443:78;;-1:-1:-1;9493:27:0;;;;9443:78;9427:181;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2036:21;2060:18;;2036:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;-1:-1;2819:64:0;;;;2036:42;;-1:-1:-1;99:1;;2603:4:0;;-1:-1:-1;2667:4:0;;-1:-1:-1;2036:42:0;;-1:-1:-1;2819:64:0;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;246:30;;311:9;;295:26;;;340:21;;377:20;365:33;;2819:64:0;;;;;;;26:21:-1;;;22:32;;6:49;;2819:64:0;;;2738:162;;;;;;;;;2438:477;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;2438:477:0;;;;-1:-1:-1;2357:571:0;;;;;;;;;2438:477;3063:34;;-1:-1:-1;3063:34:0;;;;;;;;;;;;2357:571;;-1:-1:-1;;;3063:34:0;;3062:35;3046:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3370:8;3364:4;3360:19;3442:8;3436:15;3813:4;3735:12;3656;3578:9;3516:370;3495:391;;3276:617;;4017:23;3996:44;;:17;:44;;;3980:148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4205:28:0;;;:9;:28;;;;;;;;;;:35;;;;4236:4;4205:35;;;4215:17;1808:2438;-1:-1:-1;;;1808:2438:0:o;5152:1174::-;5257:25;5808:4;5874;6067:8;;6030:64;;;;;;;30:3:-1;22:6;14;1:33;6030:64:0;;;45:16:-1;;;;26:21;;;22:32;;6:49;;6030:64:0;;;5947:164;;49:4:-1;5947:164:0;;;;5639:487;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;5639:487:0;;;;;;-1:-1:-1;5556:583:0;;;;;;;;;5639:487;6257:28;;-1:-1:-1;6257:28:0;;;;;;;;;;;;5556:583;;-1:-1:-1;;;6257:28:0;;;;6253:68;;-1:-1:-1;6253:68:0;;-1:-1:-1;6311:1:0;6253:68;5152:1174;;;;;:::o;7261:1079::-;7752:388;;;;;;;;;;;;7921:4;7752:388;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;7752:388:0;;;;;;7669:484;;;;;;;;;7752:388;8271:28;;7370:25;8271:28;;;;;;;;;;;;;8267:68;;;-1:-1:-1;8325:1:0;8267:68;7261:1079;;;;:::o

Swarm Source

bzzr://2bdc55310d97c4088f18acf04253db593f0914059f0c781a9df3624dcef0d1cf

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.

Validator Index Block Amount
View All Withdrawals

Txn Hash Block Value Eth2 PubKey Valid
View All Deposits
[ Download: CSV Export  ]
[ 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.