Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 6,625 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Claim_untargeted | 19928564 | 335 days ago | IN | 0 ETH | 0.00061849 | ||||
Commit_untargete... | 19928561 | 335 days ago | IN | 0 ETH | 0.0002693 | ||||
Claim_untargeted | 19928467 | 335 days ago | IN | 0 ETH | 0.00106551 | ||||
Claim_untargeted | 19896407 | 339 days ago | IN | 0 ETH | 0.00029336 | ||||
Commit_untargete... | 19896402 | 339 days ago | IN | 0 ETH | 0.00015718 | ||||
Claim_untargeted | 19896396 | 339 days ago | IN | 0 ETH | 0.00052721 | ||||
Commit_untargete... | 19896393 | 339 days ago | IN | 0 ETH | 0.00015742 | ||||
Claim_untargeted | 19852824 | 345 days ago | IN | 0 ETH | 0.00051758 | ||||
Commit_untargete... | 19852820 | 345 days ago | IN | 0 ETH | 0.00015438 | ||||
Claim_untargeted | 19814592 | 351 days ago | IN | 0 ETH | 0.00030092 | ||||
Commit_untargete... | 19814220 | 351 days ago | IN | 0 ETH | 0.00016813 | ||||
Claim_untargeted | 19814158 | 351 days ago | IN | 0 ETH | 0.0003286 | ||||
Commit_untargete... | 19809498 | 351 days ago | IN | 0 ETH | 0.00017098 | ||||
Claim_untargeted | 19809471 | 351 days ago | IN | 0 ETH | 0.00034987 | ||||
Commit_untargete... | 19809438 | 351 days ago | IN | 0 ETH | 0.00018879 | ||||
Claim_untargeted | 19809376 | 351 days ago | IN | 0 ETH | 0.00034 | ||||
Commit_untargete... | 19809084 | 351 days ago | IN | 0 ETH | 0.00017177 | ||||
Claim_untargeted | 19809069 | 351 days ago | IN | 0 ETH | 0.00031657 | ||||
Commit_untargete... | 19809046 | 351 days ago | IN | 0 ETH | 0.00017151 | ||||
Claim_untargeted | 19688737 | 368 days ago | IN | 0 ETH | 0.00088353 | ||||
Commit_untargete... | 19688734 | 368 days ago | IN | 0 ETH | 0.00050195 | ||||
Claim_untargeted | 19688718 | 368 days ago | IN | 0 ETH | 0.00073019 | ||||
Commit_untargete... | 19688714 | 368 days ago | IN | 0 ETH | 0.00040269 | ||||
Claim_untargeted | 19688704 | 368 days ago | IN | 0 ETH | 0.00076809 | ||||
Commit_untargete... | 19688702 | 368 days ago | IN | 0 ETH | 0.00037289 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
Claim_Codes
Compiler Version
v0.8.7+commit.e28d00a7
Optimization Enabled:
Yes with 20000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// 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); _; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.4; interface IVesting { function issue_into_tranche ( address user, uint8 tranche, uint256 amount ) external; }
{ "remappings": [], "optimizer": { "enabled": true, "runs": 20000 }, "evmVersion": "london", "libraries": {}, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
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"}]
Contract Creation Code
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
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.