Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 79 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Deploy_vesting_c... | 21313979 | 9 days ago | IN | 0 ETH | 0.0042028 | ||||
Deploy_vesting_c... | 21313916 | 9 days ago | IN | 0 ETH | 0.00469541 | ||||
Deploy_vesting_c... | 21242258 | 19 days ago | IN | 0 ETH | 0.00420281 | ||||
Deploy_vesting_c... | 21242087 | 19 days ago | IN | 0 ETH | 0.00370645 | ||||
Deploy_vesting_c... | 21192855 | 26 days ago | IN | 0 ETH | 0.00484608 | ||||
Deploy_vesting_c... | 21053702 | 46 days ago | IN | 0 ETH | 0.00128731 | ||||
Deploy_vesting_c... | 21053673 | 46 days ago | IN | 0 ETH | 0.00123992 | ||||
Deploy_vesting_c... | 21031160 | 49 days ago | IN | 0 ETH | 0.00341407 | ||||
Deploy_vesting_c... | 21031114 | 49 days ago | IN | 0 ETH | 0.0027423 | ||||
Deploy_vesting_c... | 21031089 | 49 days ago | IN | 0 ETH | 0.00312605 | ||||
Deploy_vesting_c... | 21031079 | 49 days ago | IN | 0 ETH | 0.00292349 | ||||
Deploy_vesting_c... | 20991407 | 54 days ago | IN | 0 ETH | 0.00911662 | ||||
Deploy_vesting_c... | 20979105 | 56 days ago | IN | 0 ETH | 0.00606912 | ||||
Deploy_vesting_c... | 20979008 | 56 days ago | IN | 0 ETH | 0.00614894 | ||||
Deploy_vesting_c... | 20978943 | 56 days ago | IN | 0 ETH | 0.00669814 | ||||
Deploy_vesting_c... | 20978937 | 56 days ago | IN | 0 ETH | 0.00700423 | ||||
Deploy_vesting_c... | 20978888 | 56 days ago | IN | 0 ETH | 0.00819472 | ||||
Deploy_vesting_c... | 20935040 | 62 days ago | IN | 0 ETH | 0.00400389 | ||||
Deploy_vesting_c... | 20892972 | 68 days ago | IN | 0 ETH | 0.00366337 | ||||
Deploy_vesting_c... | 20822233 | 78 days ago | IN | 0 ETH | 0.01186652 | ||||
Deploy_vesting_c... | 20822214 | 78 days ago | IN | 0 ETH | 0.01278411 | ||||
Deploy_vesting_c... | 20772479 | 85 days ago | IN | 0 ETH | 0.00622162 | ||||
Deploy_vesting_c... | 20772327 | 85 days ago | IN | 0 ETH | 0.00903094 | ||||
Deploy_vesting_c... | 20760508 | 87 days ago | IN | 0 ETH | 0.00049945 | ||||
Deploy_vesting_c... | 20635538 | 104 days ago | IN | 0 ETH | 0.001833 |
Latest 25 internal transactions (View All)
Advanced mode:
Loading...
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:
Vesting Escrow Factory
Compiler Version
vyper:0.3.10
Contract Source Code (Vyper language format)
# @version 0.3.10 """ @title Vesting Escrow Factory @author Curve Finance, Yearn Finance @license MIT @notice Stores and distributes ERC20 tokens by deploying `VestingEscrowSimple` contracts """ from vyper.interfaces import ERC20 interface VestingEscrowSimple: def initialize( owner: address, token: ERC20, recipient: address, amount: uint256, start_time: uint256, end_time: uint256, cliff_length: uint256, open_claim: bool, ) -> bool: nonpayable event VestingEscrowCreated: funder: indexed(address) token: indexed(ERC20) recipient: indexed(address) escrow: address amount: uint256 vesting_start: uint256 vesting_duration: uint256 cliff_length: uint256 open_claim: bool TARGET: public(immutable(address)) VYPER: public(immutable(address)) escrows_length: public(uint256) escrows: public(address[1000000000000]) @external def __init__(target: address, vyper_donate: address): """ @notice Contract constructor @dev Prior to deployment you must deploy one copy of `VestingEscrowSimple` which is used as a library for vesting contracts deployed by this factory @param target `VestingEscrowSimple` contract address @param vyper_donate Vyper Safe address for donations (vyperlang.eth on mainnet) """ TARGET = target VYPER = vyper_donate @external def deploy_vesting_contract( token: ERC20, recipient: address, amount: uint256, vesting_duration: uint256, vesting_start: uint256 = block.timestamp, cliff_length: uint256 = 0, open_claim: bool = True, support_vyper: uint256 = 0, owner: address = msg.sender, ) -> address: """ @notice Deploy a new vesting contract @dev Prior to deployment you must approve `amount` + `amount` * `support_vyper` / 10_000 tokens @param token ERC20 token being distributed @param recipient Address to vest tokens for @param amount Amount of tokens being vested for `recipient` @param vesting_duration Time period (in seconds) over which tokens are released @param vesting_start Epoch time when tokens begin to vest @param open_claim Switch if anyone can claim for `recipient` @param support_vyper Donation percentage in bps, 0% by default @param owner Vesting contract owner """ assert cliff_length <= vesting_duration # dev: incorrect vesting cliff assert vesting_start + vesting_duration > block.timestamp # dev: just use a transfer, dummy assert vesting_duration > 0 # dev: duration must be > 0 assert recipient not in [self, empty(address), token.address, owner] # dev: wrong recipient escrow: address = create_minimal_proxy_to(TARGET) VestingEscrowSimple(escrow).initialize( owner, token, recipient, amount, vesting_start, vesting_start + vesting_duration, cliff_length, open_claim, ) # skip transferFrom and approve and send directly to escrow assert token.transferFrom(msg.sender, escrow, amount, default_return_value=True) # dev: funding failed if support_vyper > 0: assert VYPER != empty(address) # dev: lost donation assert token.transferFrom( msg.sender, VYPER, amount * support_vyper / 10_000, default_return_value=True ) # dev: donation failed self.escrows[self.escrows_length] = escrow self.escrows_length += 1 log VestingEscrowCreated( msg.sender, token, recipient, escrow, amount, vesting_start, vesting_duration, cliff_length, open_claim, ) return escrow
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"name":"VestingEscrowCreated","inputs":[{"name":"funder","type":"address","indexed":true},{"name":"token","type":"address","indexed":true},{"name":"recipient","type":"address","indexed":true},{"name":"escrow","type":"address","indexed":false},{"name":"amount","type":"uint256","indexed":false},{"name":"vesting_start","type":"uint256","indexed":false},{"name":"vesting_duration","type":"uint256","indexed":false},{"name":"cliff_length","type":"uint256","indexed":false},{"name":"open_claim","type":"bool","indexed":false}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"target","type":"address"},{"name":"vyper_donate","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"deploy_vesting_contract","inputs":[{"name":"token","type":"address"},{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"},{"name":"vesting_duration","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"nonpayable","type":"function","name":"deploy_vesting_contract","inputs":[{"name":"token","type":"address"},{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"},{"name":"vesting_duration","type":"uint256"},{"name":"vesting_start","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"nonpayable","type":"function","name":"deploy_vesting_contract","inputs":[{"name":"token","type":"address"},{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"},{"name":"vesting_duration","type":"uint256"},{"name":"vesting_start","type":"uint256"},{"name":"cliff_length","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"nonpayable","type":"function","name":"deploy_vesting_contract","inputs":[{"name":"token","type":"address"},{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"},{"name":"vesting_duration","type":"uint256"},{"name":"vesting_start","type":"uint256"},{"name":"cliff_length","type":"uint256"},{"name":"open_claim","type":"bool"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"nonpayable","type":"function","name":"deploy_vesting_contract","inputs":[{"name":"token","type":"address"},{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"},{"name":"vesting_duration","type":"uint256"},{"name":"vesting_start","type":"uint256"},{"name":"cliff_length","type":"uint256"},{"name":"open_claim","type":"bool"},{"name":"support_vyper","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"nonpayable","type":"function","name":"deploy_vesting_contract","inputs":[{"name":"token","type":"address"},{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"},{"name":"vesting_duration","type":"uint256"},{"name":"vesting_start","type":"uint256"},{"name":"cliff_length","type":"uint256"},{"name":"open_claim","type":"bool"},{"name":"support_vyper","type":"uint256"},{"name":"owner","type":"address"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"TARGET","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"VYPER","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"escrows_length","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"escrows","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"address"}]}]
Contract Creation Code
61055f5150346100515760206105a95f395f518060a01c6100515760405260206105c95f395f518060a01c6100515760605260405161053f5260605161055f5261053f6100556100003961057f610000f35b5f80fd5f3560e01c6002600a820660011b61052b01601e395f51565b63cc1f2afa8118610523573461052757602061053f60403960206040f3610523565b636a81ec448118610523573461052757602061055f60403960206040f3610523565b63adf8e96381186100775734610527575f5460405260206040f35b63ab5eea5981186105235760a436103417610527576084356080525f60a052600160c0525f60e05233610100526101bf56610523565b63012f52ee81186100de576024361034176105275760043564e8d4a50fff8111610527576001015460405260206040f35b630551ebac81186105235760843610341761052757426080525f60a052600160c0525f60e05233610100526101bf56610523565b63c367cc8081186105235760c4361034176105275760406084608037600160c0525f60e05233610100526101bf56610523565b63e7eba643811861017d5760e436103417610527576040608460803760c4358060011c6105275760c0525f60e05233610100526101bf565b63babce1b981186105235761012436103417610527576040608460803760c4358060011c6105275760c05260e43560e052610104358060a01c61052757610100525b6004358060a01c610527576040526024358060a01c6105275760605260643560a0511161052757426080516064358082018281106105275790509050111561052757606435156105275760605130811461023a57801561023457604051811461022e576101005181141561023c565b5f61023c565b5f61023c565b5f5b905015610527577f602d3d8160093d39f3363d3d373d3d3d363d730000000000000000000000000061014052602061053f5f395f5160601b610153527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006101675260366101405ff0801561052757610120526101205163f586c19f610140526101005161016052604051610180526060516101a0526044356101c0526080516101e05260805160643580820182811061052757905090506102005260a0516102205260c05161024052602061014061010461015c5f855af1610320573d5f5f3e3d5ffd5b60203d1061052757610140518060011c610527576102605261026050506040516323b872dd61014052336101605261012051610180526044356101a0526020610140606461015c5f855af1610377573d5f5f3e3d5ffd5b3d61038e57803b156105275760016101c0526103a7565b60203d1061052757610140518060011c610527576101c0525b6101c0905051156105275760e0511561045d57602061055f5f395f5115610527576040516323b872dd610140523361016052602061055f6101803960443560e0518082028115838383041417156105275790509050612710810490506101a0526020610140606461015c5f855af1610421573d5f5f3e3d5ffd5b3d61043857803b156105275760016101c052610451565b60203d1061052757610140518060011c610527576101c0525b6101c090505115610527575b610120515f5464e8d4a50fff811161052757600101555f54600181018181106105275790505f55606051604051337f99fd02dbc65944923f77d3e5d3e77e8c4c1b4026201be5445a8e827183e993e2610120516101405260443561016052608051610180526064356101a05260a0516101c05260c0516101e05260c0610140a46020610120f3610523565b6373c258a981186105235761010436103417610527576040608460803760c4358060011c6105275760c05260e43560e05233610100526101bf565b5f5ffd5b5f80fd011204e80018005c003a05230523052300ad01458419053f81141840a16576797065728300030a00150000000000000000000000009dd5cf263327e2d6a608da8c30368eb27514bad20000000000000000000000009e282c47e7238493735a9264400559bb837bcadc
Deployed Bytecode
0x5f3560e01c6002600a820660011b61052b01601e395f51565b63cc1f2afa8118610523573461052757602061053f60403960206040f3610523565b636a81ec448118610523573461052757602061055f60403960206040f3610523565b63adf8e96381186100775734610527575f5460405260206040f35b63ab5eea5981186105235760a436103417610527576084356080525f60a052600160c0525f60e05233610100526101bf56610523565b63012f52ee81186100de576024361034176105275760043564e8d4a50fff8111610527576001015460405260206040f35b630551ebac81186105235760843610341761052757426080525f60a052600160c0525f60e05233610100526101bf56610523565b63c367cc8081186105235760c4361034176105275760406084608037600160c0525f60e05233610100526101bf56610523565b63e7eba643811861017d5760e436103417610527576040608460803760c4358060011c6105275760c0525f60e05233610100526101bf565b63babce1b981186105235761012436103417610527576040608460803760c4358060011c6105275760c05260e43560e052610104358060a01c61052757610100525b6004358060a01c610527576040526024358060a01c6105275760605260643560a0511161052757426080516064358082018281106105275790509050111561052757606435156105275760605130811461023a57801561023457604051811461022e576101005181141561023c565b5f61023c565b5f61023c565b5f5b905015610527577f602d3d8160093d39f3363d3d373d3d3d363d730000000000000000000000000061014052602061053f5f395f5160601b610153527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006101675260366101405ff0801561052757610120526101205163f586c19f610140526101005161016052604051610180526060516101a0526044356101c0526080516101e05260805160643580820182811061052757905090506102005260a0516102205260c05161024052602061014061010461015c5f855af1610320573d5f5f3e3d5ffd5b60203d1061052757610140518060011c610527576102605261026050506040516323b872dd61014052336101605261012051610180526044356101a0526020610140606461015c5f855af1610377573d5f5f3e3d5ffd5b3d61038e57803b156105275760016101c0526103a7565b60203d1061052757610140518060011c610527576101c0525b6101c0905051156105275760e0511561045d57602061055f5f395f5115610527576040516323b872dd610140523361016052602061055f6101803960443560e0518082028115838383041417156105275790509050612710810490506101a0526020610140606461015c5f855af1610421573d5f5f3e3d5ffd5b3d61043857803b156105275760016101c052610451565b60203d1061052757610140518060011c610527576101c0525b6101c090505115610527575b610120515f5464e8d4a50fff811161052757600101555f54600181018181106105275790505f55606051604051337f99fd02dbc65944923f77d3e5d3e77e8c4c1b4026201be5445a8e827183e993e2610120516101405260443561016052608051610180526064356101a05260a0516101c05260c0516101e05260c0610140a46020610120f3610523565b6373c258a981186105235761010436103417610527576040608460803760c4358060011c6105275760c05260e43560e05233610100526101bf565b5f5ffd5b5f80fd011204e80018005c003a05230523052300ad01450000000000000000000000009dd5cf263327e2d6a608da8c30368eb27514bad20000000000000000000000009e282c47e7238493735a9264400559bb837bcadc
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000009dd5cf263327e2d6a608da8c30368eb27514bad20000000000000000000000009e282c47e7238493735a9264400559bb837bcadc
-----Decoded View---------------
Arg [0] : target (address): 0x9dd5cF263327e2D6a608da8c30368Eb27514bAD2
Arg [1] : vyper_donate (address): 0x9e282C47e7238493735a9264400559Bb837BCAdC
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000009dd5cf263327e2d6a608da8c30368eb27514bad2
Arg [1] : 0000000000000000000000009e282c47e7238493735a9264400559bb837bcadc
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.