ETH Price: $1,769.96 (+12.23%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Claim_untargeted199285642024-05-22 23:00:35335 days ago1716418835IN
0x0Ee1Fb38...4654020f3
0 ETH0.000618497.54199115
Commit_untargete...199285612024-05-22 22:59:59335 days ago1716418799IN
0x0Ee1Fb38...4654020f3
0 ETH0.00026936.08727074
Claim_untargeted199284672024-05-22 22:41:11335 days ago1716417671IN
0x0Ee1Fb38...4654020f3
0 ETH0.001065517.09490184
Claim_untargeted198964072024-05-18 11:03:35339 days ago1716030215IN
0x0Ee1Fb38...4654020f3
0 ETH0.000293363.57782548
Commit_untargete...198964022024-05-18 11:02:23339 days ago1716030143IN
0x0Ee1Fb38...4654020f3
0 ETH0.000157183.5529146
Claim_untargeted198963962024-05-18 11:01:11339 days ago1716030071IN
0x0Ee1Fb38...4654020f3
0 ETH0.000527213.51055639
Commit_untargete...198963932024-05-18 11:00:35339 days ago1716030035IN
0x0Ee1Fb38...4654020f3
0 ETH0.000157423.55832864
Claim_untargeted198528242024-05-12 8:43:35345 days ago1715503415IN
0x0Ee1Fb38...4654020f3
0 ETH0.000517583.4464399
Commit_untargete...198528202024-05-12 8:42:47345 days ago1715503367IN
0x0Ee1Fb38...4654020f3
0 ETH0.000154383.48953224
Claim_untargeted198145922024-05-07 0:23:11351 days ago1715041391IN
0x0Ee1Fb38...4654020f3
0 ETH0.000300923.66898299
Commit_untargete...198142202024-05-06 23:08:11351 days ago1715036891IN
0x0Ee1Fb38...4654020f3
0 ETH0.000168133.80036234
Claim_untargeted198141582024-05-06 22:55:35351 days ago1715036135IN
0x0Ee1Fb38...4654020f3
0 ETH0.00032864.0076474
Commit_untargete...198094982024-05-06 7:16:59351 days ago1714979819IN
0x0Ee1Fb38...4654020f3
0 ETH0.000170983.86482153
Claim_untargeted198094712024-05-06 7:11:11351 days ago1714979471IN
0x0Ee1Fb38...4654020f3
0 ETH0.000349874.2663709
Commit_untargete...198094382024-05-06 7:04:11351 days ago1714979051IN
0x0Ee1Fb38...4654020f3
0 ETH0.000188794.26737635
Claim_untargeted198093762024-05-06 6:51:47351 days ago1714978307IN
0x0Ee1Fb38...4654020f3
0 ETH0.000344.14546668
Commit_untargete...198090842024-05-06 5:53:11351 days ago1714974791IN
0x0Ee1Fb38...4654020f3
0 ETH0.000171773.88274797
Claim_untargeted198090692024-05-06 5:49:59351 days ago1714974599IN
0x0Ee1Fb38...4654020f3
0 ETH0.000316573.85979099
Commit_untargete...198090462024-05-06 5:45:23351 days ago1714974323IN
0x0Ee1Fb38...4654020f3
0 ETH0.000171513.87677153
Claim_untargeted196887372024-04-19 9:57:59368 days ago1713520679IN
0x0Ee1Fb38...4654020f3
0 ETH0.0008835310.77387074
Commit_untargete...196887342024-04-19 9:57:23368 days ago1713520643IN
0x0Ee1Fb38...4654020f3
0 ETH0.0005019511.34602806
Claim_untargeted196887182024-04-19 9:53:59368 days ago1713520439IN
0x0Ee1Fb38...4654020f3
0 ETH0.000730198.90403321
Commit_untargete...196887142024-04-19 9:53:11368 days ago1713520391IN
0x0Ee1Fb38...4654020f3
0 ETH0.000402699.10225063
Claim_untargeted196887042024-04-19 9:50:59368 days ago1713520259IN
0x0Ee1Fb38...4654020f3
0 ETH0.000768099.36624369
Commit_untargete...196887022024-04-19 9:50:35368 days ago1713520235IN
0x0Ee1Fb38...4654020f3
0 ETH0.000372898.42877002
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Claim_Codes

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 20000 runs

Other Settings:
default evmVersion
File 1 of 2 : Claim_Codes.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;

import "./IVesting.sol";

// Structs are used here as they do not incur any overhead, and
// make the function specifications below less tedious

struct Claim {
  uint256 amount;
  uint8 tranche;
  uint32 expiry;
  // This is simply here for reference. Solidity does not have optional params
  // and after the London fork, zero bytes are charged more in calldata, so we
  // simply leave it out of the struct and add it as an argument where it's
  // needed
  /* address optionalTarget; */
}

// ECDSA signature as struct
struct Signature {
  uint8 v; // Must be 27 or 28
  bytes32 r;
  bytes32 s; // Must be small order
}

function hash_claim (
  uint chainid,
  Claim calldata c,
  address target
) pure returns (bytes32) {
  bytes memory _msg = abi.encodePacked(chainid, c.amount, c.tranche, c.expiry);
  if (target != address(0)) {
    _msg = abi.encodePacked(_msg, target);
  }

  return keccak256(_msg);
}

contract Claim_Codes {
  // Only address able to perform management operations
  address public controller;

  // Vega vesting contract, which must have this contract registered as an
  // issuer for `issue_into_tranche` to work. Marked immutable to assist the
  // solidity compiler in inlining
  IVesting immutable trusted_vesting_contract;

  // Track committed and spent signatures (codes). The next constants are used
  // as special placeholders. Note that uninitialised slots in a map always will
  // have the default value (eg address 0x0 in this case)
  mapping (bytes32 => address) public commitments;
  address constant UNCLAIMED_CODE = address(0);
  address constant SPENT_CODE = address(1);

  // Map issuers to their max allowed spending. We may consider here whether we
  // actually care about limiting each issuer (signer) spending or not
  mapping (address => uint256) public issuers;

  // Allow list of countries that can use claim codes. Mapping uppercase ascii
  // ISO 2-letter country codes.
  mapping (bytes2 => bool) public allowed_countries;

  constructor (address vesting_address) {
    trusted_vesting_contract = IVesting(vesting_address);
    controller = msg.sender;
  }

  // To prevent front running on untargeted codes, the user can precommit to the
  // S part of the signature (ie. the one-time key)
  function commit_untargeted (bytes32 s) external {
    require(commitments[s] == UNCLAIMED_CODE);
    commitments[s] = msg.sender;
  }

  // Since solidity/web3 do not support optional arguments, we must have a
  // separate function with and without the target argument
  function claim_targeted (
    Signature calldata sig,
    Claim calldata clm,
    bytes2 country,
    address target
  ) external {
    _claim(sig, clm, target, country);
  }

  function claim_untargeted (
    Signature calldata sig,
    Claim calldata clm,
    bytes2 country
  ) external {
    _claim(sig, clm, address(0), country);
  }

  function _claim (
    Signature calldata sig,
    Claim calldata clm,
    address target,
    bytes2 country
  ) internal {
    require(clm.expiry > block.timestamp, "Claim code has expired");
    require(allowed_countries[country], "Claim code is not available in your country");

    // Verify the claim was signed by an issuer
    bytes32 hash = hash_claim(block.chainid, clm, target);
    address issuer = verify(hash, sig);
    require(issuer != address(0), "Invalid claim code");

    // Burn the claim
    target = burn_claim(sig, target);

    require(issuer != target, "Cannot claim to yourself");
    uint256 issuer_amount = issuers[issuer];
    require(clm.amount <= issuer_amount, "Out of funds");
    issuers[issuer] = issuer_amount - clm.amount;

    trusted_vesting_contract.issue_into_tranche(target, clm.tranche, clm.amount);
  }

  function allow_countries (
    bytes2[] calldata countries
  ) only_controller external {
    for (uint i = 0; i < countries.length; i++) {
      allowed_countries[countries[i]] = true;
    }
  }

  function block_countries (
    bytes2[] calldata countries
  ) only_controller external {
    for (uint i = 0; i < countries.length; i++) {
      allowed_countries[countries[i]] = false;
    }
  }

  function permit_issuer (address issuer, uint256 amount) only_controller external {
    issuers[issuer] = amount;
  }

  function revoke_issuer (address issuer) only_controller external {
    delete(issuers[issuer]);
  }

  function swap_controller(address _controller) only_controller external {
    require(_controller != address(0));
    controller = _controller;
  }

  function destroy () only_controller external {
    selfdestruct(payable(msg.sender));
  }

  // Strict ECDSA recovery;
  // - Only allow small-order s
  // - Only allow correct v encoding (27 or 28)
  function verify (
    bytes32 hash,
    Signature calldata _sig
  ) internal pure returns (address) {
    if (_sig.s > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) return address(0);
    return ecrecover(hash, _sig.v, bytes32(_sig.r), bytes32(_sig.s));
  }

  function burn_claim (
    Signature calldata sig,
    address target
  ) internal returns (address) {
    address _tmp = commitments[sig.s];

    // If targeted code, just check that it's unspent
    if (target != address(0)) {
      require(_tmp != SPENT_CODE, "Claim code already spent");
    }
    // If untargeted, check that it was committed or unspent
    else {
      require(_tmp == msg.sender || _tmp == UNCLAIMED_CODE, "Claim code already spent");
      target = msg.sender;
    }

    commitments[sig.s] = SPENT_CODE;
    return target;
  }

  modifier only_controller () {
    require(msg.sender == controller);
    _;
  }
}

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

interface IVesting {
  function issue_into_tranche (
    address user,
    uint8 tranche,
    uint256 amount
  ) external;
}

Settings
{
  "remappings": [],
  "optimizer": {
    "enabled": true,
    "runs": 20000
  },
  "evmVersion": "london",
  "libraries": {},
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"vesting_address","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes2[]","name":"countries","type":"bytes2[]"}],"name":"allow_countries","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes2","name":"","type":"bytes2"}],"name":"allowed_countries","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes2[]","name":"countries","type":"bytes2[]"}],"name":"block_countries","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct Signature","name":"sig","type":"tuple"},{"components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint8","name":"tranche","type":"uint8"},{"internalType":"uint32","name":"expiry","type":"uint32"}],"internalType":"struct Claim","name":"clm","type":"tuple"},{"internalType":"bytes2","name":"country","type":"bytes2"},{"internalType":"address","name":"target","type":"address"}],"name":"claim_targeted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct Signature","name":"sig","type":"tuple"},{"components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint8","name":"tranche","type":"uint8"},{"internalType":"uint32","name":"expiry","type":"uint32"}],"internalType":"struct Claim","name":"clm","type":"tuple"},{"internalType":"bytes2","name":"country","type":"bytes2"}],"name":"claim_untargeted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"commit_untargeted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"commitments","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"controller","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"destroy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"issuers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"issuer","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"permit_issuer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"issuer","type":"address"}],"name":"revoke_issuer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_controller","type":"address"}],"name":"swap_controller","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60a060405234801561001057600080fd5b506040516111c03803806111c083398101604081905261002f91610058565b60601b6001600160601b03191660805260008054336001600160a01b0319909116179055610088565b60006020828403121561006a57600080fd5b81516001600160a01b038116811461008157600080fd5b9392505050565b60805160601c61111a6100a66000396000610937015261111a6000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c806383197ef01161008c5780639cef4355116100665780639cef43551461020e578063b7d00d0c14610221578063c342cd9b14610234578063f77c47911461024757600080fd5b806383197ef014610198578063839df945146101a057806394a4ff3f146101fb57600080fd5b806334b4947b116100bd57806334b4947b1461011f57806338a7543e146101575780637eb1b5d71461018557600080fd5b806304df9479146100e457806326bc922a146100f9578063277817c71461010c575b600080fd5b6100f76100f2366004610f2d565b610267565b005b6100f7610107366004610e3f565b610279565b6100f761011a366004610e15565b61034b565b61014261012d366004610eb4565b60036020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b610177610165366004610df3565b60026020526000908152604090205481565b60405190815260200161014e565b6100f7610193366004610df3565b610398565b6100f7610423565b6101d66101ae366004610ecf565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161014e565b6100f7610209366004610df3565b61044a565b6100f761021c366004610e3f565b610495565b6100f761022f366004610ee8565b610562565b6100f7610242366004610ecf565b61056f565b6000546101d69073ffffffffffffffffffffffffffffffffffffffff1681565b610273848483856105d6565b50505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461029d57600080fd5b60005b81811015610346576000600360008585858181106102c0576102c06110b5565b90506020020160208101906102d59190610eb4565b7fffff000000000000000000000000000000000000000000000000000000000000168152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790558061033e8161104d565b9150506102a0565b505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461036f57600080fd5b73ffffffffffffffffffffffffffffffffffffffff909116600090815260026020526040902055565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103bc57600080fd5b73ffffffffffffffffffffffffffffffffffffffff81166103dc57600080fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff16331461044757600080fd5b33ff5b60005473ffffffffffffffffffffffffffffffffffffffff16331461046e57600080fd5b73ffffffffffffffffffffffffffffffffffffffff16600090815260026020526040812055565b60005473ffffffffffffffffffffffffffffffffffffffff1633146104b957600080fd5b60005b81811015610346576001600360008585858181106104dc576104dc6110b5565b90506020020160208101906104f19190610eb4565b7fffff000000000000000000000000000000000000000000000000000000000000168152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790558061055a8161104d565b9150506104bc565b61034683836000846105d6565b60008181526001602052604090205473ffffffffffffffffffffffffffffffffffffffff161561059e57600080fd5b600090815260016020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055565b426105e76060850160408601610f84565b63ffffffff1611610659576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f436c61696d20636f64652068617320657870697265640000000000000000000060448201526064015b60405180910390fd5b7fffff000000000000000000000000000000000000000000000000000000000000811660009081526003602052604090205460ff1661071a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f436c61696d20636f6465206973206e6f7420617661696c61626c6520696e207960448201527f6f757220636f756e7472790000000000000000000000000000000000000000006064820152608401610650565b6000610727468585610a1b565b905060006107358287610b35565b905073ffffffffffffffffffffffffffffffffffffffff81166107b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e76616c696420636c61696d20636f646500000000000000000000000000006044820152606401610650565b6107be8685610be2565b93508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610856576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f43616e6e6f7420636c61696d20746f20796f757273656c6600000000000000006044820152606401610650565b73ffffffffffffffffffffffffffffffffffffffff811660009081526002602052604090205485358110156108e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4f7574206f662066756e647300000000000000000000000000000000000000006044820152606401610650565b6108f2863582611036565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e2de6e6d868860200160208101906109859190610faa565b60405160e084901b7fffffffff0000000000000000000000000000000000000000000000000000000016815273ffffffffffffffffffffffffffffffffffffffff909216600483015260ff16602482015288356044820152606401600060405180830381600087803b1580156109fa57600080fd5b505af1158015610a0e573d6000803e3d6000fd5b5050505050505050505050565b600080848435610a316040870160208801610faa565b610a416060880160408901610f84565b604051602001610ab49493929190938452602084019290925260f81b7fff0000000000000000000000000000000000000000000000000000000000000016604083015260e01b7fffffffff0000000000000000000000000000000000000000000000000000000016604182015260450190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905073ffffffffffffffffffffffffffffffffffffffff831615610b25578083604051602001610b13929190610fcd565b60405160208183030381529060405290505b8051602090910120949350505050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a060408301351115610b6b57506000610bdc565b600183610b7b6020850185610faa565b604080516000815260208181018084529490945260ff9092168282015291850135606082015290840135608082015260a0016020604051602081039080840390855afa158015610bcf573d6000803e3d6000fd5b5050506020604051035190505b92915050565b604080830135600090815260016020529081205473ffffffffffffffffffffffffffffffffffffffff90811690831615610c9c5773ffffffffffffffffffffffffffffffffffffffff811660011415610c97576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f436c61696d20636f646520616c7265616479207370656e7400000000000000006044820152606401610650565b610d3e565b73ffffffffffffffffffffffffffffffffffffffff8116331480610cd4575073ffffffffffffffffffffffffffffffffffffffff8116155b610d3a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f436c61696d20636f646520616c7265616479207370656e7400000000000000006044820152606401610650565b3392505b505060409182013560009081526001602081905292902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690921790915590565b803573ffffffffffffffffffffffffffffffffffffffff81168114610da657600080fd5b919050565b80357fffff00000000000000000000000000000000000000000000000000000000000081168114610da657600080fd5b600060608284031215610ded57600080fd5b50919050565b600060208284031215610e0557600080fd5b610e0e82610d82565b9392505050565b60008060408385031215610e2857600080fd5b610e3183610d82565b946020939093013593505050565b60008060208385031215610e5257600080fd5b823567ffffffffffffffff80821115610e6a57600080fd5b818501915085601f830112610e7e57600080fd5b813581811115610e8d57600080fd5b8660208260051b8501011115610ea257600080fd5b60209290920196919550909350505050565b600060208284031215610ec657600080fd5b610e0e82610dab565b600060208284031215610ee157600080fd5b5035919050565b600080600060e08486031215610efd57600080fd5b610f078585610ddb565b9250610f168560608601610ddb565b9150610f2460c08501610dab565b90509250925092565b6000806000806101008587031215610f4457600080fd5b610f4e8686610ddb565b9350610f5d8660608701610ddb565b9250610f6b60c08601610dab565b9150610f7960e08601610d82565b905092959194509250565b600060208284031215610f9657600080fd5b813563ffffffff81168114610e0e57600080fd5b600060208284031215610fbc57600080fd5b813560ff81168114610e0e57600080fd5b6000835160005b81811015610fee5760208187018101518583015201610fd4565b81811115610ffd576000828501525b5060609390931b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190920190815260140192915050565b60008282101561104857611048611086565b500390565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561107f5761107f611086565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea26469706673582212202cc95c42f0a51f091c5ebc99a835d7215c8d0dff3046a6ca534be0104e81178664736f6c6343000807003300000000000000000000000023d1bfe8fa50a167816fbd79d7932577c06011f4

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100df5760003560e01c806383197ef01161008c5780639cef4355116100665780639cef43551461020e578063b7d00d0c14610221578063c342cd9b14610234578063f77c47911461024757600080fd5b806383197ef014610198578063839df945146101a057806394a4ff3f146101fb57600080fd5b806334b4947b116100bd57806334b4947b1461011f57806338a7543e146101575780637eb1b5d71461018557600080fd5b806304df9479146100e457806326bc922a146100f9578063277817c71461010c575b600080fd5b6100f76100f2366004610f2d565b610267565b005b6100f7610107366004610e3f565b610279565b6100f761011a366004610e15565b61034b565b61014261012d366004610eb4565b60036020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b610177610165366004610df3565b60026020526000908152604090205481565b60405190815260200161014e565b6100f7610193366004610df3565b610398565b6100f7610423565b6101d66101ae366004610ecf565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161014e565b6100f7610209366004610df3565b61044a565b6100f761021c366004610e3f565b610495565b6100f761022f366004610ee8565b610562565b6100f7610242366004610ecf565b61056f565b6000546101d69073ffffffffffffffffffffffffffffffffffffffff1681565b610273848483856105d6565b50505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461029d57600080fd5b60005b81811015610346576000600360008585858181106102c0576102c06110b5565b90506020020160208101906102d59190610eb4565b7fffff000000000000000000000000000000000000000000000000000000000000168152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790558061033e8161104d565b9150506102a0565b505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461036f57600080fd5b73ffffffffffffffffffffffffffffffffffffffff909116600090815260026020526040902055565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103bc57600080fd5b73ffffffffffffffffffffffffffffffffffffffff81166103dc57600080fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff16331461044757600080fd5b33ff5b60005473ffffffffffffffffffffffffffffffffffffffff16331461046e57600080fd5b73ffffffffffffffffffffffffffffffffffffffff16600090815260026020526040812055565b60005473ffffffffffffffffffffffffffffffffffffffff1633146104b957600080fd5b60005b81811015610346576001600360008585858181106104dc576104dc6110b5565b90506020020160208101906104f19190610eb4565b7fffff000000000000000000000000000000000000000000000000000000000000168152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790558061055a8161104d565b9150506104bc565b61034683836000846105d6565b60008181526001602052604090205473ffffffffffffffffffffffffffffffffffffffff161561059e57600080fd5b600090815260016020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055565b426105e76060850160408601610f84565b63ffffffff1611610659576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f436c61696d20636f64652068617320657870697265640000000000000000000060448201526064015b60405180910390fd5b7fffff000000000000000000000000000000000000000000000000000000000000811660009081526003602052604090205460ff1661071a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f436c61696d20636f6465206973206e6f7420617661696c61626c6520696e207960448201527f6f757220636f756e7472790000000000000000000000000000000000000000006064820152608401610650565b6000610727468585610a1b565b905060006107358287610b35565b905073ffffffffffffffffffffffffffffffffffffffff81166107b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e76616c696420636c61696d20636f646500000000000000000000000000006044820152606401610650565b6107be8685610be2565b93508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610856576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f43616e6e6f7420636c61696d20746f20796f757273656c6600000000000000006044820152606401610650565b73ffffffffffffffffffffffffffffffffffffffff811660009081526002602052604090205485358110156108e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4f7574206f662066756e647300000000000000000000000000000000000000006044820152606401610650565b6108f2863582611036565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f00000000000000000000000023d1bfe8fa50a167816fbd79d7932577c06011f473ffffffffffffffffffffffffffffffffffffffff1663e2de6e6d868860200160208101906109859190610faa565b60405160e084901b7fffffffff0000000000000000000000000000000000000000000000000000000016815273ffffffffffffffffffffffffffffffffffffffff909216600483015260ff16602482015288356044820152606401600060405180830381600087803b1580156109fa57600080fd5b505af1158015610a0e573d6000803e3d6000fd5b5050505050505050505050565b600080848435610a316040870160208801610faa565b610a416060880160408901610f84565b604051602001610ab49493929190938452602084019290925260f81b7fff0000000000000000000000000000000000000000000000000000000000000016604083015260e01b7fffffffff0000000000000000000000000000000000000000000000000000000016604182015260450190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905073ffffffffffffffffffffffffffffffffffffffff831615610b25578083604051602001610b13929190610fcd565b60405160208183030381529060405290505b8051602090910120949350505050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a060408301351115610b6b57506000610bdc565b600183610b7b6020850185610faa565b604080516000815260208181018084529490945260ff9092168282015291850135606082015290840135608082015260a0016020604051602081039080840390855afa158015610bcf573d6000803e3d6000fd5b5050506020604051035190505b92915050565b604080830135600090815260016020529081205473ffffffffffffffffffffffffffffffffffffffff90811690831615610c9c5773ffffffffffffffffffffffffffffffffffffffff811660011415610c97576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f436c61696d20636f646520616c7265616479207370656e7400000000000000006044820152606401610650565b610d3e565b73ffffffffffffffffffffffffffffffffffffffff8116331480610cd4575073ffffffffffffffffffffffffffffffffffffffff8116155b610d3a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f436c61696d20636f646520616c7265616479207370656e7400000000000000006044820152606401610650565b3392505b505060409182013560009081526001602081905292902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690921790915590565b803573ffffffffffffffffffffffffffffffffffffffff81168114610da657600080fd5b919050565b80357fffff00000000000000000000000000000000000000000000000000000000000081168114610da657600080fd5b600060608284031215610ded57600080fd5b50919050565b600060208284031215610e0557600080fd5b610e0e82610d82565b9392505050565b60008060408385031215610e2857600080fd5b610e3183610d82565b946020939093013593505050565b60008060208385031215610e5257600080fd5b823567ffffffffffffffff80821115610e6a57600080fd5b818501915085601f830112610e7e57600080fd5b813581811115610e8d57600080fd5b8660208260051b8501011115610ea257600080fd5b60209290920196919550909350505050565b600060208284031215610ec657600080fd5b610e0e82610dab565b600060208284031215610ee157600080fd5b5035919050565b600080600060e08486031215610efd57600080fd5b610f078585610ddb565b9250610f168560608601610ddb565b9150610f2460c08501610dab565b90509250925092565b6000806000806101008587031215610f4457600080fd5b610f4e8686610ddb565b9350610f5d8660608701610ddb565b9250610f6b60c08601610dab565b9150610f7960e08601610d82565b905092959194509250565b600060208284031215610f9657600080fd5b813563ffffffff81168114610e0e57600080fd5b600060208284031215610fbc57600080fd5b813560ff81168114610e0e57600080fd5b6000835160005b81811015610fee5760208187018101518583015201610fd4565b81811115610ffd576000828501525b5060609390931b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190920190815260140192915050565b60008282101561104857611048611086565b500390565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561107f5761107f611086565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea26469706673582212202cc95c42f0a51f091c5ebc99a835d7215c8d0dff3046a6ca534be0104e81178664736f6c63430008070033

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

00000000000000000000000023d1bfe8fa50a167816fbd79d7932577c06011f4

-----Decoded View---------------
Arg [0] : vesting_address (address): 0x23d1bFE8fA50a167816fBD79D7932577c06011f4

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000023d1bfe8fa50a167816fbd79d7932577c06011f4


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

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