Contract 0x862ab2A5E8fEEca125519b5C6F948Eb7954cFACB 4

Contract Overview

Balance:
1.85 Ether
Txn Hash
Method
Block
From
To
Value
0xa3dadbf0af65afc95f8d69d27458993c0f019acf0b2698029b14f60b98fe1636Create ERC20109645742022-07-04 9:05:152 days 10 hrs ago0x18356cf57f28dd69fa6b89bf6f80452ba7639b30 IN  0x862ab2a5e8feeca125519b5c6f948eb7954cfacb0.05 Ether0.00021898 1.20000891
0x73ec02de9246c2419b1ea475e8386dd5afc2707d0e1f2ed7088f6accce86fe21Create ERC20107019542022-05-19 7:23:4648 days 11 hrs ago0x3f65c1b294f218588c9b5ed549ed97a3d06ef855 IN  0x862ab2a5e8feeca125519b5c6f948eb7954cfacb0.05 Ether0.0002189 1.2
0x16fe27a76792e5abe389b510e8fe73429b4170eedeb125929125009b6b5c8236Create ERC20105659682022-04-25 12:56:1572 days 6 hrs ago0xcc7d31966aca607f1078a2443c23086d1fff63de IN  0x862ab2a5e8feeca125519b5c6f948eb7954cfacb0.05 Ether0.00018245 1.00000001
0x51d8ec8dcbd2bb4cb4f1c3c9ec14af9dd5b3ffe281b7b950020430205f50279cCreate ERC20105552162022-04-23 16:00:2274 days 3 hrs ago0x4291a5024bce6582b615446b8013448ad6cfc0a8 IN  0x862ab2a5e8feeca125519b5c6f948eb7954cfacb0.05 Ether0.000200821.1
0xfffc27e4c62ec18616ec2a61dcbe5694d5abbf02833d4c0b9ea980facc7f361eCreate ERC20104623462022-04-07 10:20:4090 days 8 hrs ago0x781fd460973af57e3ec5fbf3d1f6ae4b642a92ef IN  0x862ab2a5e8feeca125519b5c6f948eb7954cfacb0.05 Ether0.00036598 2.00570977
0x40308e35796f06dabc3b6f29048cc74cecc36ebd2bbce81dd4f88536985e8667Create ERC20104623322022-04-07 10:17:0990 days 8 hrs ago0x781fd460973af57e3ec5fbf3d1f6ae4b642a92ef IN  0x862ab2a5e8feeca125519b5c6f948eb7954cfacb0.05 Ether0.0003655 2.00296015
0xe13a2f64366551dbab82c5cc4d1769fec42548d5e9d4758401ba22b0a7f152e8Create ERC20103888612022-03-25 15:32:37103 days 3 hrs ago0x2d4a3308db0d52104f48e93abdc4449f3d539ccb IN  0x862ab2a5e8feeca125519b5c6f948eb7954cfacb0.05 Ether0.00018248 1.00000019
0x12228d18dca1e5c54d3edf6adbc52137b7a576eb19f6532cc671e1c41f6ad392Create ERC20102230792022-02-24 8:44:44132 days 10 hrs ago0xf949ef7d96d58554848c2c0d5406e675390a18ed IN  0x862ab2a5e8feeca125519b5c6f948eb7954cfacb0.05 Ether0.00018247 1.00000002
0x01088c96c4e54ccb9eb472d891bb3d484aa055956896a0c0185d9f6af8055211Create ERC20101885802022-02-18 8:52:03138 days 10 hrs ago0xebe064b7940c1ba2700a90fdaf0146375025ff32 IN  0x862ab2a5e8feeca125519b5c6f948eb7954cfacb0.05 Ether0.00020069 1.09987351
0xad20c6f8623a1336ee59cade33e2acc51214ed12f8b90e9784d57dfbbe9ed1aaCreate ERC20100939732022-02-01 16:08:38155 days 3 hrs ago0xa718a69ba161e97fed2ce15c41c5868330f0dcc4 IN  0x862ab2a5e8feeca125519b5c6f948eb7954cfacb0.05 Ether0.00018241 1.00000001
0xbec210cd056a74783282a7ed36ab889dc62918703d8f23941a1f35b25516efb9Create ERC20100939682022-02-01 16:07:23155 days 3 hrs ago0xa718a69ba161e97fed2ce15c41c5868330f0dcc4 IN  0x862ab2a5e8feeca125519b5c6f948eb7954cfacb0.05 Ether0.00018254 1.00000001
0xa79079bcf9f6239be7cde8c7420c3685db2477eec02329c89e504f9ec3af474bCreate ERC2098909292021-12-28 2:35:03190 days 16 hrs ago0x00ba95b4561a147f8a5f9a90193e8bbb0471bb73 IN  0x862ab2a5e8feeca125519b5c6f948eb7954cfacb0.05 Ether0.00027367 1.5
0x48ba815900133315905e856ac3b6bf66ba97218db18059baf2206f4444261141Create ERC2098713452021-12-24 16:57:44194 days 2 hrs ago0x0f8af2df27bc2ad6a666d8698d950d35f36f0d12 IN  0x862ab2a5e8feeca125519b5c6f948eb7954cfacb0.05 Ether0.00018237 1
0x4f4347f2469f5a9451c9db2f96729f1b5974f3544d84bda7790ae811b333aae4Create ERC2098713152021-12-24 16:50:14194 days 2 hrs ago0x0f8af2df27bc2ad6a666d8698d950d35f36f0d12 IN  0x862ab2a5e8feeca125519b5c6f948eb7954cfacb0.05 Ether0.00018237 1
0x277474f192e2ab71426a30c363c0dfddae8869ced921078684ddf422e9f8e4baCreate ERC2098507872021-12-21 3:16:30197 days 15 hrs ago0x6ed0e0a9fdb1e48eb8d09b10b327ee510efb7007 IN  0x862ab2a5e8feeca125519b5c6f948eb7954cfacb0.05 Ether0.00018251.00000001
0x9f140240ebba101abfa861d3308ea028e6ab9c075a334e87f8575f3ad8561b3bCreate ERC2098019222021-12-12 12:52:14206 days 6 hrs ago0xda9a8dfc92d776b099c3b16834528c5cb73d8b4a IN  0x862ab2a5e8feeca125519b5c6f948eb7954cfacb0.05 Ether0.00018249 1.00000001
0x39bce942db3b60fc451126879366b01262a3aa94195718f121742a4d5991fa73Create ERC2097718252021-12-07 7:11:55211 days 11 hrs ago0xdb92f3247a9098d017b281fefeaae0866755129a IN  0x862ab2a5e8feeca125519b5c6f948eb7954cfacb0.05 Ether0.00018249 1
0x7b42da11b3ebc26aff59c3c2b4b31c7a1f8fa7d3ecf9b820f10d905c805f827fCreate ERC2097716882021-12-07 6:37:37211 days 12 hrs ago0xdb92f3247a9098d017b281fefeaae0866755129a IN  0x862ab2a5e8feeca125519b5c6f948eb7954cfacb0.05 Ether0.00018244 1
0xf6abf40e6ef9e61117873a71f05301c5cb3df821d1546013971b866702e12da6Create ERC2097450872021-12-02 15:43:39216 days 3 hrs ago0xa22c489cbadfc96f46d6b8ee13dd33499e8cf9d3 IN  0x862ab2a5e8feeca125519b5c6f948eb7954cfacb0.05 Ether0.00035902 1.96781991
0xd636cd703d61c353ea42f3b56be185128b0662a2ee134efc31e197c53258b8d2Create ERC2095952642021-11-06 14:47:50242 days 4 hrs ago0x3b449c92830c7e7eb2373855baf0bf8f7ad73681 IN  0x862ab2a5e8feeca125519b5c6f948eb7954cfacb0.05 Ether0.00018251 1
0x0ff430fef0609e42b1269c12893a8feb7f20c3d00a2e2e3652a3beced3573ab8Create ERC2095952102021-11-06 14:34:20242 days 4 hrs ago0x3b449c92830c7e7eb2373855baf0bf8f7ad73681 IN  0x862ab2a5e8feeca125519b5c6f948eb7954cfacb0.05 Ether0.00018251 1
0x53e3a4793f8255402655cfeee0f71b7206ed607a918074a846fc3a09cd6be301Create ERC2095947402021-11-06 12:36:44242 days 6 hrs ago0x3b449c92830c7e7eb2373855baf0bf8f7ad73681 IN  0x862ab2a5e8feeca125519b5c6f948eb7954cfacb0.05 Ether0.00018251 1.00000001
0x2168fa0ddd3bd44883ee7aa4a00e59464a705b2e611a92abdfc97f6da499c1afCreate ERC2095947202021-11-06 12:31:43242 days 6 hrs ago0x3b449c92830c7e7eb2373855baf0bf8f7ad73681 IN  0x862ab2a5e8feeca125519b5c6f948eb7954cfacb0.05 Ether0.00018251 1
0xb0176ff45fb52f062548ee00c260238067508ba673c1026f6627b1b014dfa34dCreate ERC2095946892021-11-06 12:23:56242 days 6 hrs ago0x3b449c92830c7e7eb2373855baf0bf8f7ad73681 IN  0x862ab2a5e8feeca125519b5c6f948eb7954cfacb0.05 Ether0.00018251 1
0x8a712849d77756e7da2e8192742b8b78b83d890c934c26ec6c793583a8186e43Create ERC2095946462021-11-06 12:13:11242 days 6 hrs ago0x3b449c92830c7e7eb2373855baf0bf8f7ad73681 IN  0x862ab2a5e8feeca125519b5c6f948eb7954cfacb0.05 Ether0.00018251 1
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xa3dadbf0af65afc95f8d69d27458993c0f019acf0b2698029b14f60b98fe1636109645742022-07-04 9:05:152 days 10 hrs ago 0x862ab2a5e8feeca125519b5c6f948eb7954cfacb 0x841152040d036174a7a7d49b376f324ead10992e0 Ether
0xa3dadbf0af65afc95f8d69d27458993c0f019acf0b2698029b14f60b98fe1636109645742022-07-04 9:05:152 days 10 hrs ago 0x862ab2a5e8feeca125519b5c6f948eb7954cfacb  Contract Creation0 Ether
0x73ec02de9246c2419b1ea475e8386dd5afc2707d0e1f2ed7088f6accce86fe21107019542022-05-19 7:23:4648 days 11 hrs ago 0x862ab2a5e8feeca125519b5c6f948eb7954cfacb 0x6c112954c2bdf4a3f0a7c67ebfe5c556a52b301c0 Ether
0x73ec02de9246c2419b1ea475e8386dd5afc2707d0e1f2ed7088f6accce86fe21107019542022-05-19 7:23:4648 days 11 hrs ago 0x862ab2a5e8feeca125519b5c6f948eb7954cfacb  Contract Creation0 Ether
0x16fe27a76792e5abe389b510e8fe73429b4170eedeb125929125009b6b5c8236105659682022-04-25 12:56:1572 days 6 hrs ago 0x862ab2a5e8feeca125519b5c6f948eb7954cfacb 0x4721b1e451f67d95b1e9f60ef8b0666b36dc2d610 Ether
0x16fe27a76792e5abe389b510e8fe73429b4170eedeb125929125009b6b5c8236105659682022-04-25 12:56:1572 days 6 hrs ago 0x862ab2a5e8feeca125519b5c6f948eb7954cfacb  Contract Creation0 Ether
0x51d8ec8dcbd2bb4cb4f1c3c9ec14af9dd5b3ffe281b7b950020430205f50279c105552162022-04-23 16:00:2274 days 3 hrs ago 0x862ab2a5e8feeca125519b5c6f948eb7954cfacb 0x336665b917b7db6efd8809f515dee21087ec08130 Ether
0x51d8ec8dcbd2bb4cb4f1c3c9ec14af9dd5b3ffe281b7b950020430205f50279c105552162022-04-23 16:00:2274 days 3 hrs ago 0x862ab2a5e8feeca125519b5c6f948eb7954cfacb  Contract Creation0 Ether
0xfffc27e4c62ec18616ec2a61dcbe5694d5abbf02833d4c0b9ea980facc7f361e104623462022-04-07 10:20:4090 days 8 hrs ago 0x862ab2a5e8feeca125519b5c6f948eb7954cfacb 0x28ae00a477b14f598ca166fb99a3e8cf37d797350 Ether
0xfffc27e4c62ec18616ec2a61dcbe5694d5abbf02833d4c0b9ea980facc7f361e104623462022-04-07 10:20:4090 days 8 hrs ago 0x862ab2a5e8feeca125519b5c6f948eb7954cfacb  Contract Creation0 Ether
0x40308e35796f06dabc3b6f29048cc74cecc36ebd2bbce81dd4f88536985e8667104623322022-04-07 10:17:0990 days 8 hrs ago 0x862ab2a5e8feeca125519b5c6f948eb7954cfacb 0x4ac75a677dd71d46ab6851f3fc5a265581e90c650 Ether
0x40308e35796f06dabc3b6f29048cc74cecc36ebd2bbce81dd4f88536985e8667104623322022-04-07 10:17:0990 days 8 hrs ago 0x862ab2a5e8feeca125519b5c6f948eb7954cfacb  Contract Creation0 Ether
0xe13a2f64366551dbab82c5cc4d1769fec42548d5e9d4758401ba22b0a7f152e8103888612022-03-25 15:32:37103 days 3 hrs ago 0x862ab2a5e8feeca125519b5c6f948eb7954cfacb 0xfb5ff4eff3bc3efb0c214522c733c3474d7b61250 Ether
0xe13a2f64366551dbab82c5cc4d1769fec42548d5e9d4758401ba22b0a7f152e8103888612022-03-25 15:32:37103 days 3 hrs ago 0x862ab2a5e8feeca125519b5c6f948eb7954cfacb  Contract Creation0 Ether
0x12228d18dca1e5c54d3edf6adbc52137b7a576eb19f6532cc671e1c41f6ad392102230792022-02-24 8:44:44132 days 10 hrs ago 0x862ab2a5e8feeca125519b5c6f948eb7954cfacb 0x905941d519346635ad302385b9771ee3dc2159290 Ether
0x12228d18dca1e5c54d3edf6adbc52137b7a576eb19f6532cc671e1c41f6ad392102230792022-02-24 8:44:44132 days 10 hrs ago 0x862ab2a5e8feeca125519b5c6f948eb7954cfacb  Contract Creation0 Ether
0x01088c96c4e54ccb9eb472d891bb3d484aa055956896a0c0185d9f6af8055211101885802022-02-18 8:52:03138 days 10 hrs ago 0x862ab2a5e8feeca125519b5c6f948eb7954cfacb 0x6f4bd0c5221e3c27d934cba795d0073dc6288ee20 Ether
0x01088c96c4e54ccb9eb472d891bb3d484aa055956896a0c0185d9f6af8055211101885802022-02-18 8:52:03138 days 10 hrs ago 0x862ab2a5e8feeca125519b5c6f948eb7954cfacb  Contract Creation0 Ether
0xad20c6f8623a1336ee59cade33e2acc51214ed12f8b90e9784d57dfbbe9ed1aa100939732022-02-01 16:08:38155 days 3 hrs ago 0x862ab2a5e8feeca125519b5c6f948eb7954cfacb 0x0a0497e4187ceb6dac4876b52495576e86f6ea340 Ether
0xad20c6f8623a1336ee59cade33e2acc51214ed12f8b90e9784d57dfbbe9ed1aa100939732022-02-01 16:08:38155 days 3 hrs ago 0x862ab2a5e8feeca125519b5c6f948eb7954cfacb  Contract Creation0 Ether
0xbec210cd056a74783282a7ed36ab889dc62918703d8f23941a1f35b25516efb9100939682022-02-01 16:07:23155 days 3 hrs ago 0x862ab2a5e8feeca125519b5c6f948eb7954cfacb 0x55016d230dc1193c10491c5dbdd120834b892b550 Ether
0xbec210cd056a74783282a7ed36ab889dc62918703d8f23941a1f35b25516efb9100939682022-02-01 16:07:23155 days 3 hrs ago 0x862ab2a5e8feeca125519b5c6f948eb7954cfacb  Contract Creation0 Ether
0xa79079bcf9f6239be7cde8c7420c3685db2477eec02329c89e504f9ec3af474b98909292021-12-28 2:35:03190 days 16 hrs ago 0x862ab2a5e8feeca125519b5c6f948eb7954cfacb 0xdbd6ad3a98446a491679e971fc25336728a4f7200 Ether
0xa79079bcf9f6239be7cde8c7420c3685db2477eec02329c89e504f9ec3af474b98909292021-12-28 2:35:03190 days 16 hrs ago 0x862ab2a5e8feeca125519b5c6f948eb7954cfacb  Contract Creation0 Ether
0x48ba815900133315905e856ac3b6bf66ba97218db18059baf2206f444426114198713452021-12-24 16:57:44194 days 2 hrs ago 0x862ab2a5e8feeca125519b5c6f948eb7954cfacb 0xdd6d7b2f69e14012dcb64ea8a63cf8e15730da850 Ether
[ Download CSV Export 
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.

Contract Source Code Verified (Exact Match)

Contract Name:
ERC20Factory

Compiler Version
v0.8.1+commit.df193b15

Optimization Enabled:
Yes with 999999 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 1 of 2: ERC20Factory.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "./IERC20Lib.sol";


/// @title MinimalProxy Factory
/// @author coinstructor.io
/// @dev Refer to https://eips.ethereum.org/EIPS/eip-1167 for details
/// @notice The Factory contract creates Minimal Proxies using EIP1167,
/// @notice which point to ERC20 contracts implementation, this saving on gas
contract ERC20Factory {
  // Service fee for each MinimalProxy creation
  uint256 constant serviceFee = 50000000000000000; // 0.05 ETH

  // The owner of the contract, who receives the funds
  address payable immutable public owner;

  address immutable public signer;
  bool public requireSigned;

  /// @notice Event will be emitted every time a new ERC20 MinimalProxy is created
  /// @param newERC20Address is an address of the newly created ERC20 token MinimalProxy
  event ERC20Created(address newERC20Address);

  // EIP712 niceties
  bytes32 public DOMAIN_SEPARATOR;

  string public constant version = "1";

  constructor(address payable _owner, address _signer) {
    owner = _owner;
    signer = _signer;
    uint256 chainId = 0;
    assembly {
        chainId := chainid()
    }
    DOMAIN_SEPARATOR = keccak256(abi.encode(
        keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"),
        keccak256(bytes("ERC20Factory")),
        keccak256(bytes(version)),
        1, //chainId,
        address(this)
    ));
  }

  /// @notice Creates a MinimalProxy contract via EIP1167 assembly code
  /// @dev Using this implementation: https://github.com/optionality/clone-factory
  /// @param target is an address of implementation, to which the MinimalProxy will point to
  /// @return result is an address of a newly created MinimalProxy
  function createClone(address target) internal returns (address result) {
    bytes20 targetBytes = bytes20(target);
    assembly {
      let clone := mload(0x40)
      mstore(clone, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000)
      mstore(add(clone, 0x14), targetBytes)
      mstore(add(clone, 0x28), 0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000)
      result := create(0, clone, 0x37)
    }
  }

  /// @notice Tests if MinimalProxy instance really points to the correct implementation
  /// @param target is an address of implementation, to which the MinimalProxy should point to
  /// @param query is an address of MinimalProxy that needs to be tested
  /// @return result is true if MinimalProxy really points to the implementation address
  function isClone(address target, address query) external view returns (bool result) {
    bytes20 targetBytes = bytes20(target);
    assembly {
      let clone := mload(0x40)
      mstore(clone, 0x363d3d373d3d3d363d7300000000000000000000000000000000000000000000)
      mstore(add(clone, 0xa), targetBytes)
      mstore(add(clone, 0x1e), 0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000)

      let other := add(clone, 0x40)
      extcodecopy(query, other, 0, 0x2d)
      result := and(
        eq(mload(clone), mload(other)),
        eq(mload(add(clone, 0xd)), mload(add(other, 0xd)))
      )
    }
  }

  /// @notice Pays out all Factory ETH balance to owners address
  function payout() external {
    require(owner.send(address(this).balance));
  }

  /// @notice Pays out all Factory ERC20 token balance to owners address
  /// @param _tokenAddress is an address of the ERC20 token to payout
  function payoutToken(address _tokenAddress) external {
    IERC20Lib token = IERC20Lib(_tokenAddress);
    uint256 amount = token.balanceOf(address(this));
    require(amount > 0, "Nothing to payout");
    token.transfer(owner, amount);
  }

  /// @notice Creates and initializes the ERC20 MinimalProxy contract
  /// @param libraryAddress_ is an address of implementation, to which the MinimalProxy should point to
  /// @param name_ is the ERC20 token name
  /// @param symbol_ is the ERC20 token symbol
  /// @param totalSupply_ is the ERC20 token totalSupply that will be minted to msg.sender
  function createERC20(address libraryAddress_, string memory name_, string memory symbol_, uint256 totalSupply_) payable external {
    // The service fee should be paid when calling this function
    require(msg.value >= serviceFee, "Service Fee of 0.05ETH wasn't paid");
    address clone = createClone(libraryAddress_);
    IERC20Lib(clone).init(msg.sender, name_, symbol_, totalSupply_);
    emit ERC20Created(clone);
  }

  /// @notice Creates and initializes the ERC20 MinimalProxy contract
  /// @param libraryAddress_ is an address of implementation, to which the MinimalProxy should point to
  /// @param name_ is the ERC20 token name
  /// @param symbol_ is the ERC20 token symbol
  /// @param totalSupply_ is the ERC20 token totalSupply that will be minted to msg.sender
  /// @param referral_ is the referral, who will receive 0.01 ETH from the deployment
  function createERC20WithReferral(address libraryAddress_, string memory name_, string memory symbol_, uint256 totalSupply_, address payable referral_) payable external {
    // The service fee should be paid when calling this function
    require(msg.value >= serviceFee, "Service Fee of 0.05ETH wasn't paid");
    require(requireSigned == false, "Only Signed referrals are allowed");
    address clone = createClone(libraryAddress_);
    IERC20Lib(clone).init(msg.sender, name_, symbol_, totalSupply_);
    emit ERC20Created(clone);

    // Referral must accept money, otherwise he will not be paid (saves gas and eliminates security risks)
    referral_.send(0.01 ether);
  }

  /// @notice Restricts referral creation to be signed by the service
  /// @param requireSigned_ true if signature is required
  function setRequireSigned(bool requireSigned_) external {
    require(msg.sender == signer);
    requireSigned = requireSigned_;
  }

  bytes32 public constant PERMIT_TYPEHASH = keccak256("createERC20WithReferralSigned(address libraryAddress,string name,string symbol,uint256 totalSupply,address referral)");

  /// @notice Creates and initializes the ERC20 MinimalProxy contract using a referral link and signatures
  /// @param libraryAddress_ is an address of implementation, to which the MinimalProxy should point to
  /// @param name_ is the ERC20 token name
  /// @param symbol_ is the ERC20 token symbol
  /// @param totalSupply_ is the ERC20 token totalSupply that will be minted to msg.sender
  /// @param referral_ is the referral, who will receive 0.01 ETH from the deployment
  /// @param v_ A final byte of signature (ECDSA component)
  /// @param r_ The first 32 bytes of signature (ECDSA component)
  /// @param s_ The second 32 bytes of signature (ECDSA component)
  function createERC20WithReferralSigned(address libraryAddress_,
                                   string memory name_,
                                   string memory symbol_,
                                   uint256 totalSupply_,
                                   address payable referral_,
                                   uint8 v_,
                                   bytes32 r_,
                                   bytes32 s_) payable external {
    // The service fee should be paid when calling this function
    require(msg.value >= serviceFee, "Service Fee of 0.05ETH wasn't paid");

    bytes32 digest = keccak256(abi.encodePacked(
                                "\x19\x01",
                                DOMAIN_SEPARATOR,
                                keccak256(abi.encode(
                                  PERMIT_TYPEHASH,
                                  libraryAddress_,
                                  keccak256(bytes(name_)),
                                  keccak256(bytes(symbol_)),
                                  totalSupply_,
                                  referral_
                                ))
                              ));
    
    require(signer == ecrecover(digest, v_, r_, s_), "invalid signature or parameters");

    address clone = createClone(libraryAddress_);
    IERC20Lib(clone).init(msg.sender, name_, symbol_, totalSupply_);

    emit ERC20Created(clone);

    // Referral must accept money, otherwise he will not be paid (saves gas and eliminates security risks)
    referral_.send(0.01 ether);
  }
}

File 2 of 2: IERC20Lib.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

interface IERC20Lib {
  function init(address owner_, string memory name_, string memory symbol_, uint256 totalSupply_) external;
  function balanceOf(address account) external view returns (uint256);
  function allowance(address owner, address spender) external view returns (uint256);
  function approve(address spender, uint256 amount) external returns (bool);
  function transfer(address recipient, uint256 amount) external returns (bool);
  function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

  event Transfer(address indexed from, address indexed to, uint256 value);
  event Approval(address indexed owner, address indexed spender, uint256 value);
}

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"_owner","type":"address"},{"internalType":"address","name":"_signer","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newERC20Address","type":"address"}],"name":"ERC20Created","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"libraryAddress_","type":"address"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint256","name":"totalSupply_","type":"uint256"}],"name":"createERC20","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"libraryAddress_","type":"address"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint256","name":"totalSupply_","type":"uint256"},{"internalType":"address payable","name":"referral_","type":"address"}],"name":"createERC20WithReferral","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"libraryAddress_","type":"address"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint256","name":"totalSupply_","type":"uint256"},{"internalType":"address payable","name":"referral_","type":"address"},{"internalType":"uint8","name":"v_","type":"uint8"},{"internalType":"bytes32","name":"r_","type":"bytes32"},{"internalType":"bytes32","name":"s_","type":"bytes32"}],"name":"createERC20WithReferralSigned","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"address","name":"query","type":"address"}],"name":"isClone","outputs":[{"internalType":"bool","name":"result","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"payout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"}],"name":"payoutToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"requireSigned","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"requireSigned_","type":"bool"}],"name":"setRequireSigned","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"signer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]

60c060405234801561001057600080fd5b5060405161143638038061143683398101604081905261002f91610120565b6001600160601b0319606083811b821660805282901b1660a052604080518082018252600c81526b4552433230466163746f727960a01b602091820152815180830183526001808252603160f81b91830191909152915146926100fc927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f927f082f918cdb0b84f26749cd14291a52df41d3056b2947624e97cf92c4a5b62250927fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6929091309101610159565b604051602081830303815290604052805190602001206001819055505050506101a0565b60008060408385031215610132578182fd5b825161013d81610188565b602084015190925061014e81610188565b809150509250929050565b9485526020850193909352604084019190915260ff1660608301526001600160a01b0316608082015260a00190565b6001600160a01b038116811461019d57600080fd5b50565b60805160601c60a05160601c61124f6101e76000396000818161024401528181610580015261084b01526000818161036e015281816104e601526105dd015261124f6000f3fe6080604052600436106100d25760003560e01c806363bd1d4a1161007f5780638da5cb5b116100595780638da5cb5b146101f4578063b5bf2cc714610209578063bac0ecd21461021c578063df62a87d1461022f576100d2565b806363bd1d4a1461019d57806370d3c747146101b45780637c5dd88b146101d4576100d2565b80633644e515116100b05780633644e5151461014657806343b66dac1461015b57806354fd4d501461017b576100d2565b8063238ac933146100d757806330adf81f146101025780633351da3f14610124575b600080fd5b3480156100e357600080fd5b506100ec610242565b6040516100f99190610f6f565b60405180910390f35b34801561010e57600080fd5b50610117610266565b6040516100f99190611014565b34801561013057600080fd5b5061013961028a565b6040516100f99190611009565b34801561015257600080fd5b50610117610293565b34801561016757600080fd5b50610139610176366004610c80565b610299565b34801561018757600080fd5b5061019061031b565b6040516100f9919061107c565b3480156101a957600080fd5b506101b2610354565b005b3480156101c057600080fd5b506101b26101cf366004610c5d565b6103b0565b3480156101e057600080fd5b506101b26101ef366004610e80565b610568565b34801561020057600080fd5b506100ec6105db565b6101b2610217366004610cb8565b6105ff565b6101b261022a366004610dc5565b610716565b6101b261023d366004610d33565b6109c6565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f8fd143b530165a7ad1789e2d77220f2e7f4ba45ee1f45bc678d7c6c6c9820db481565b60005460ff1681565b60015481565b6000808360601b90506040517f363d3d373d3d3d363d7300000000000000000000000000000000000000000000815281600a8201527f5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000601e82015260408101602d600082873c600d810151600d83015114815183511416935050505092915050565b6040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525081565b60405173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016904780156108fc02916000818181858888f193505050506103ae57600080fd5b565b6040517f70a08231000000000000000000000000000000000000000000000000000000008152819060009073ffffffffffffffffffffffffffffffffffffffff8316906370a0823190610407903090600401610f6f565b60206040518083038186803b15801561041f57600080fd5b505afa158015610433573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104579190610eb8565b90506000811161049c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049390611180565b60405180910390fd5b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83169063a9059cbb90610510907f0000000000000000000000000000000000000000000000000000000000000000908590600401610f90565b602060405180830381600087803b15801561052a57600080fd5b505af115801561053e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105629190610e9c565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146105aa57600080fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b7f000000000000000000000000000000000000000000000000000000000000000081565b66b1a2bc2ec50000341015610640576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049390611123565b600061064b85610b4f565b6040517fd2209ad900000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff82169063d2209ad9906106a6903390889088908890600401610fb6565b600060405180830381600087803b1580156106c057600080fd5b505af11580156106d4573d6000803e3d6000fd5b505050507f41039c8b82bb5a365f56b4f9d87cee99e069b450bfdc3d87696fcd87783f24c1816040516107079190610f6f565b60405180910390a15050505050565b66b1a2bc2ec50000341015610757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049390611123565b60006001547f8fd143b530165a7ad1789e2d77220f2e7f4ba45ee1f45bc678d7c6c6c9820db48a8a805190602001208a805190602001208a8a6040516020016107a59695949392919061101d565b604051602081830303815290604052805190602001206040516020016107cc929190610f39565b60405160208183030381529060405280519060200120905060018185858560405160008152602001604052604051610807949392919061105e565b6020604051602081039080840390855afa158015610829573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146108b7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610493906110ec565b60006108c28a610b4f565b6040517fd2209ad900000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff82169063d2209ad99061091d9033908d908d908d90600401610fb6565b600060405180830381600087803b15801561093757600080fd5b505af115801561094b573d6000803e3d6000fd5b505050507f41039c8b82bb5a365f56b4f9d87cee99e069b450bfdc3d87696fcd87783f24c18160405161097e9190610f6f565b60405180910390a160405173ffffffffffffffffffffffffffffffffffffffff871690600090662386f26fc100009082818181858883f1505050505050505050505050505050565b66b1a2bc2ec50000341015610a07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049390611123565b60005460ff1615610a44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104939061108f565b6000610a4f86610b4f565b6040517fd2209ad900000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff82169063d2209ad990610aaa903390899089908990600401610fb6565b600060405180830381600087803b158015610ac457600080fd5b505af1158015610ad8573d6000803e3d6000fd5b505050507f41039c8b82bb5a365f56b4f9d87cee99e069b450bfdc3d87696fcd87783f24c181604051610b0b9190610f6f565b60405180910390a160405173ffffffffffffffffffffffffffffffffffffffff831690600090662386f26fc100009082818181858883f15050505050505050505050565b6000808260601b90506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f0949350505050565b600082601f830112610bc8578081fd5b813567ffffffffffffffff80821115610be357610be36111b7565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610c2957610c296111b7565b81604052838152866020858801011115610c41578485fd5b8360208701602083013792830160200193909352509392505050565b600060208284031215610c6e578081fd5b8135610c79816111e6565b9392505050565b60008060408385031215610c92578081fd5b8235610c9d816111e6565b91506020830135610cad816111e6565b809150509250929050565b60008060008060808587031215610ccd578182fd5b8435610cd8816111e6565b9350602085013567ffffffffffffffff80821115610cf4578384fd5b610d0088838901610bb8565b94506040870135915080821115610d15578384fd5b50610d2287828801610bb8565b949793965093946060013593505050565b600080600080600060a08688031215610d4a578081fd5b8535610d55816111e6565b9450602086013567ffffffffffffffff80821115610d71578283fd5b610d7d89838a01610bb8565b95506040880135915080821115610d92578283fd5b50610d9f88828901610bb8565b935050606086013591506080860135610db7816111e6565b809150509295509295909350565b600080600080600080600080610100898b031215610de1578283fd5b8835610dec816111e6565b9750602089013567ffffffffffffffff80821115610e08578485fd5b610e148c838d01610bb8565b985060408b0135915080821115610e29578485fd5b50610e368b828c01610bb8565b965050606089013594506080890135610e4e816111e6565b935060a089013560ff81168114610e63578384fd5b979a969950949793969295929450505060c08201359160e0013590565b600060208284031215610e91578081fd5b8135610c798161120b565b600060208284031215610ead578081fd5b8151610c798161120b565b600060208284031215610ec9578081fd5b5051919050565b60008151808452815b81811015610ef557602081850181015186830182015201610ed9565b81811115610f065782602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b7f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b600073ffffffffffffffffffffffffffffffffffffffff8616825260806020830152610fe56080830186610ed0565b8281036040840152610ff78186610ed0565b91505082606083015295945050505050565b901515815260200190565b90815260200190565b95865273ffffffffffffffffffffffffffffffffffffffff94851660208701526040860193909352606085019190915260808401521660a082015260c00190565b93845260ff9290921660208401526040830152606082015260800190565b600060208252610c796020830184610ed0565b60208082526021908201527f4f6e6c79205369676e656420726566657272616c732061726520616c6c6f776560408201527f6400000000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601f908201527f696e76616c6964207369676e6174757265206f7220706172616d657465727300604082015260600190565b60208082526022908201527f5365727669636520466565206f6620302e3035455448207761736e277420706160408201527f6964000000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526011908201527f4e6f7468696e6720746f207061796f7574000000000000000000000000000000604082015260600190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff8116811461120857600080fd5b50565b801515811461120857600080fdfea2646970667358221220929c19ff52cbce79a698f75eec9f8f508af5893349a41927ac71acdd4faeefc164736f6c63430008010033000000000000000000000000dceb7fd8e239876b7d4baea54e753e4d0fc4486200000000000000000000000094889a2f6c4c30f59f18ca18f3c0906825f40383

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000dceb7fd8e239876b7d4baea54e753e4d0fc4486200000000000000000000000094889a2f6c4c30f59f18ca18f3c0906825f40383

-----Decoded View---------------
Arg [0] : _owner (address): 0xdceb7fd8e239876b7d4baea54e753e4d0fc44862
Arg [1] : _signer (address): 0x94889a2f6c4c30f59f18ca18f3c0906825f40383

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000dceb7fd8e239876b7d4baea54e753e4d0fc44862
Arg [1] : 00000000000000000000000094889a2f6c4c30f59f18ca18f3c0906825f40383


Deployed ByteCode Sourcemap

365:7926:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;601:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5877:171;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;636:25::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;907:31::-;;;;;;;;;;;;;:::i;2548:620::-;;;;;;;;;;-1:-1:-1;2548:620:0;;;;;:::i;:::-;;:::i;943:36::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3237:80::-;;;;;;;;;;;;;:::i;:::-;;3464:240;;;;;;;;;;-1:-1:-1;3464:240:0;;;;;:::i;:::-;;:::i;5741:132::-;;;;;;;;;;-1:-1:-1;5741:132:0;;;;;:::i;:::-;;:::i;558:38::-;;;;;;;;;;;;;:::i;4063:424::-;;;;;;:::i;:::-;;:::i;6724:1565::-;;;;;;:::i;:::-;;:::i;4932:677::-;;;;;;:::i;:::-;;:::i;601:31::-;;;:::o;5877:171::-;5919:129;5877:171;:::o;636:25::-;;;;;;:::o;907:31::-;;;;:::o;2548:620::-;2619:11;2638:19;2668:6;2660:15;;2638:37;;2717:4;2711:11;2743:66;2736:5;2729:81;2841:11;2835:3;2828:5;2824:15;2817:36;2885:66;2878:4;2871:5;2867:16;2860:92;2984:4;2977:5;2973:16;3025:4;3022:1;3015:5;3008;2996:34;3144:3;3137:5;3133:15;3127:22;3120:3;3113:5;3109:15;3103:22;3100:50;3083:5;3077:12;3069:5;3063:12;3060:30;3047:111;3037:121;;;;2690:474;;;;;:::o;943:36::-;;;;;;;;;;;;;;;;;;;:::o;3237:80::-;3278:33;;:10;:5;:10;;3289:21;3278:33;;;;;;;;;3289:21;3278:10;:33;;;;;;;3270:42;;;;;;3237:80::o;3464:240::-;3588:30;;;;;3551:13;;3523:15;;3588;;;;;;:30;;3612:4;;3588:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3571:47;;3641:1;3632:6;:10;3624:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;3670:29;;;;;:14;;;;;;:29;;3685:5;;3692:6;;3670:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3464:240;;;:::o;5741:132::-;5811:10;:20;5825:6;5811:20;;5803:29;;;;;;5838:13;:30;;;;;;;;;;;;;5741:132::o;558:38::-;;;:::o;4063:424::-;469:17;4271:9;:23;;4263:70;;;;;;;;;;;;:::i;:::-;4339:13;4355:28;4367:15;4355:11;:28::i;:::-;4389:63;;;;;4339:44;;-1:-1:-1;4389:21:0;;;;;;:63;;4411:10;;4423:5;;4430:7;;4439:12;;4389:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4463:19;4476:5;4463:19;;;;;;:::i;:::-;;;;;;;;4063:424;;;;;:::o;6724:1565::-;469:17;7256:9;:23;;7248:70;;;;;;;;;;;;:::i;:::-;7325:14;7446:16;;5919:129;7603:15;7670:5;7654:23;;;;;;7729:7;7713:25;;;;;;7774:12;7822:9;7506:359;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7496:370;;;;;;7352:546;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7342:557;;;;;;7325:574;;7928:29;7938:6;7946:2;7950;7954;7928:29;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7918:39;;:6;:39;;;7910:83;;;;;;;;;;;;:::i;:::-;8000:13;8016:28;8028:15;8016:11;:28::i;:::-;8050:63;;;;;8000:44;;-1:-1:-1;8050:21:0;;;;;;:63;;8072:10;;8084:5;;8091:7;;8100:12;;8050:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8125:19;8138:5;8125:19;;;;;;:::i;:::-;;;;;;;;8258:26;;:14;;;;:26;;8273:10;;8258:26;;;;8273:10;8258:14;:26;;-1:-1:-1;;;;;;;;;;;;;;;6724:1565:0:o;4932:677::-;469:17;5179:9;:23;;5171:70;;;;;;;;;;;;:::i;:::-;5255:13;;;;:22;5247:68;;;;;;;;;;;;:::i;:::-;5321:13;5337:28;5349:15;5337:11;:28::i;:::-;5371:63;;;;;5321:44;;-1:-1:-1;5371:21:0;;;;;;:63;;5393:10;;5405:5;;5412:7;;5421:12;;5371:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5445:19;5458:5;5445:19;;;;;;:::i;:::-;;;;;;;;5578:26;;:14;;;;:26;;5593:10;;5578:26;;;;5593:10;5578:14;:26;;-1:-1:-1;;;;;;;;;;;4932:677:0:o;1757:441::-;1812:14;1834:19;1864:6;1856:15;;1834:37;;1913:4;1907:11;1939:66;1932:5;1925:81;2038:11;2031:4;2024:5;2020:16;2013:37;2082:66;2075:4;2068:5;2064:16;2057:92;2183:4;2176:5;2173:1;2166:22;2156:32;1886:308;-1:-1:-1;;;;1886:308:0:o;14:800:2:-;;112:3;105:4;97:6;93:17;89:27;79:2;;134:5;127;120:20;79:2;174:6;161:20;200:18;237:2;233;230:10;227:2;;;243:18;;:::i;:::-;377:2;371:9;439:4;431:13;;282:66;427:22;;;451:2;423:31;419:40;407:53;;;475:18;;;495:22;;;472:46;469:2;;;521:18;;:::i;:::-;561:10;557:2;550:22;596:2;588:6;581:18;642:3;635:4;630:2;622:6;618:15;614:26;611:35;608:2;;;663:5;656;649:20;608:2;731;724:4;716:6;712:17;705:4;697:6;693:17;680:54;754:15;;;771:4;750:26;743:41;;;;-1:-1:-1;758:6:2;69:745;-1:-1:-1;;;69:745:2:o;819:259::-;;931:2;919:9;910:7;906:23;902:32;899:2;;;952:6;944;937:22;899:2;996:9;983:23;1015:33;1042:5;1015:33;:::i;:::-;1067:5;889:189;-1:-1:-1;;;889:189:2:o;1083:402::-;;;1212:2;1200:9;1191:7;1187:23;1183:32;1180:2;;;1233:6;1225;1218:22;1180:2;1277:9;1264:23;1296:33;1323:5;1296:33;:::i;:::-;1348:5;-1:-1:-1;1405:2:2;1390:18;;1377:32;1418:35;1377:32;1418:35;:::i;:::-;1472:7;1462:17;;;1170:315;;;;;:::o;1490:783::-;;;;;1673:3;1661:9;1652:7;1648:23;1644:33;1641:2;;;1695:6;1687;1680:22;1641:2;1739:9;1726:23;1758:33;1785:5;1758:33;:::i;:::-;1810:5;-1:-1:-1;1866:2:2;1851:18;;1838:32;1889:18;1919:14;;;1916:2;;;1951:6;1943;1936:22;1916:2;1979:52;2023:7;2014:6;2003:9;1999:22;1979:52;:::i;:::-;1969:62;;2084:2;2073:9;2069:18;2056:32;2040:48;;2113:2;2103:8;2100:16;2097:2;;;2134:6;2126;2119:22;2097:2;;2162:54;2208:7;2197:8;2186:9;2182:24;2162:54;:::i;:::-;1631:642;;;;-1:-1:-1;2152:64:2;;2263:2;2248:18;2235:32;;-1:-1:-1;;;1631:642:2:o;2278:935::-;;;;;;2486:3;2474:9;2465:7;2461:23;2457:33;2454:2;;;2508:6;2500;2493:22;2454:2;2552:9;2539:23;2571:33;2598:5;2571:33;:::i;:::-;2623:5;-1:-1:-1;2679:2:2;2664:18;;2651:32;2702:18;2732:14;;;2729:2;;;2764:6;2756;2749:22;2729:2;2792:52;2836:7;2827:6;2816:9;2812:22;2792:52;:::i;:::-;2782:62;;2897:2;2886:9;2882:18;2869:32;2853:48;;2926:2;2916:8;2913:16;2910:2;;;2947:6;2939;2932:22;2910:2;;2975:54;3021:7;3010:8;2999:9;2995:24;2975:54;:::i;:::-;2965:64;;;3076:2;3065:9;3061:18;3048:32;3038:42;;3132:3;3121:9;3117:19;3104:33;3146:35;3173:7;3146:35;:::i;:::-;3200:7;3190:17;;;2444:769;;;;;;;;:::o;3218:1249::-;;;;;;;;;3475:3;3463:9;3454:7;3450:23;3446:33;3443:2;;;3497:6;3489;3482:22;3443:2;3541:9;3528:23;3560:33;3587:5;3560:33;:::i;:::-;3612:5;-1:-1:-1;3668:2:2;3653:18;;3640:32;3691:18;3721:14;;;3718:2;;;3753:6;3745;3738:22;3718:2;3781:52;3825:7;3816:6;3805:9;3801:22;3781:52;:::i;:::-;3771:62;;3886:2;3875:9;3871:18;3858:32;3842:48;;3915:2;3905:8;3902:16;3899:2;;;3936:6;3928;3921:22;3899:2;;3964:54;4010:7;3999:8;3988:9;3984:24;3964:54;:::i;:::-;3954:64;;;4065:2;4054:9;4050:18;4037:32;4027:42;;4121:3;4110:9;4106:19;4093:33;4135:35;4162:7;4135:35;:::i;:::-;4189:7;-1:-1:-1;4248:3:2;4233:19;;4220:33;4297:4;4284:18;;4272:31;;4262:2;;4322:6;4314;4307:22;4262:2;3433:1034;;;;-1:-1:-1;3433:1034:2;;;;;;4350:7;;-1:-1:-1;;;4404:3:2;4389:19;;4376:33;;4456:3;4441:19;4428:33;;3433:1034::o;4472:253::-;;4581:2;4569:9;4560:7;4556:23;4552:32;4549:2;;;4602:6;4594;4587:22;4549:2;4646:9;4633:23;4665:30;4689:5;4665:30;:::i;4730:257::-;;4850:2;4838:9;4829:7;4825:23;4821:32;4818:2;;;4871:6;4863;4856:22;4818:2;4908:9;4902:16;4927:30;4951:5;4927:30;:::i;4992:194::-;;5115:2;5103:9;5094:7;5090:23;5086:32;5083:2;;;5136:6;5128;5121:22;5083:2;-1:-1:-1;5164:16:2;;5073:113;-1:-1:-1;5073:113:2:o;5191:537::-;;5273:5;5267:12;5300:6;5295:3;5288:19;5325:3;5337:162;5351:6;5348:1;5345:13;5337:162;;;5413:4;5469:13;;;5465:22;;5459:29;5441:11;;;5437:20;;5430:59;5366:12;5337:162;;;5517:6;5514:1;5511:13;5508:2;;;5583:3;5576:4;5567:6;5562:3;5558:16;5554:27;5547:40;5508:2;-1:-1:-1;5642:2:2;5630:15;5647:66;5626:88;5617:98;;;;5717:4;5613:109;;5243:485;-1:-1:-1;;5243:485:2:o;5733:444::-;6003:66;5991:79;;6095:1;6086:11;;6079:27;;;;6131:2;6122:12;;6115:28;6168:2;6159:12;;5981:196::o;6182:226::-;6358:42;6346:55;;;;6328:74;;6316:2;6301:18;;6283:125::o;6660:305::-;6872:42;6860:55;;;;6842:74;;6947:2;6932:18;;6925:34;6830:2;6815:18;;6797:168::o;6970:580::-;;7235:42;7227:6;7223:55;7212:9;7205:74;7315:3;7310:2;7299:9;7295:18;7288:31;7342:48;7385:3;7374:9;7370:19;7362:6;7342:48;:::i;:::-;7438:9;7430:6;7426:22;7421:2;7410:9;7406:18;7399:50;7466:35;7494:6;7486;7466:35;:::i;:::-;7458:43;;;7537:6;7532:2;7521:9;7517:18;7510:34;7195:355;;;;;;;:::o;7555:187::-;7720:14;;7713:22;7695:41;;7683:2;7668:18;;7650:92::o;7747:177::-;7893:25;;;7881:2;7866:18;;7848:76::o;7929:630::-;8232:25;;;8276:42;8354:15;;;8349:2;8334:18;;8327:43;8401:2;8386:18;;8379:34;;;;8444:2;8429:18;;8422:34;;;;8487:3;8472:19;;8465:35;8537:15;8531:3;8516:19;;8509:44;8219:3;8204:19;;8186:373::o;8564:398::-;8791:25;;;8864:4;8852:17;;;;8847:2;8832:18;;8825:45;8901:2;8886:18;;8879:34;8944:2;8929:18;;8922:34;8778:3;8763:19;;8745:217::o;8967:222::-;;9116:2;9105:9;9098:21;9136:47;9179:2;9168:9;9164:18;9156:6;9136:47;:::i;9194:397::-;9396:2;9378:21;;;9435:2;9415:18;;;9408:30;9474:34;9469:2;9454:18;;9447:62;9545:3;9540:2;9525:18;;9518:31;9581:3;9566:19;;9368:223::o;9596:355::-;9798:2;9780:21;;;9837:2;9817:18;;;9810:30;9876:33;9871:2;9856:18;;9849:61;9942:2;9927:18;;9770:181::o;9956:398::-;10158:2;10140:21;;;10197:2;10177:18;;;10170:30;10236:34;10231:2;10216:18;;10209:62;10307:4;10302:2;10287:18;;10280:32;10344:3;10329:19;;10130:224::o;10359:341::-;10561:2;10543:21;;;10600:2;10580:18;;;10573:30;10639:19;10634:2;10619:18;;10612:47;10691:2;10676:18;;10533:167::o;10705:184::-;10757:77;10754:1;10747:88;10854:4;10851:1;10844:15;10878:4;10875:1;10868:15;10894:156;10982:42;10975:5;10971:54;10964:5;10961:65;10951:2;;11040:1;11037;11030:12;10951:2;10941:109;:::o;11055:120::-;11143:5;11136:13;11129:21;11122:5;11119:32;11109:2;;11165:1;11162;11155:12

Swarm Source

ipfs://929c19ff52cbce79a698f75eec9f8f508af5893349a41927ac71acdd4faeefc1
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.