Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
Latest 5 from a total of 5 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Deploy_vesting_c... | 20089714 | 162 days ago | IN | 0 ETH | 0.00164632 | ||||
Deploy_vesting_c... | 17062318 | 586 days ago | IN | 0 ETH | 0.00870613 | ||||
Deploy_vesting_c... | 10671433 | 1560 days ago | IN | 0 ETH | 0.02464171 | ||||
Deploy_vesting_c... | 10657820 | 1562 days ago | IN | 0 ETH | 0.04998083 | ||||
0x74010000 | 10652415 | 1562 days ago | IN | 0 ETH | 0.0808465 |
Latest 4 internal transactions
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
20089714 | 162 days ago | Contract Creation | 0 ETH | |||
17062318 | 586 days ago | Contract Creation | 0 ETH | |||
10671433 | 1560 days ago | Contract Creation | 0 ETH | |||
10657820 | 1562 days ago | Contract Creation | 0 ETH |
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.
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x41Df5d28...ce52D2567 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
Vyper_contract
Compiler Version
vyper:0.2.4
Contract Source Code (Vyper language format)
# @version 0.2.4 """ @title Vesting Escrow Factory @author Curve Finance @license MIT @notice Stores and distributes `ERC20CRV` tokens by deploying `VestingEscrowSimple` contracts """ from vyper.interfaces import ERC20 MIN_VESTING_DURATION: constant(uint256) = 86400 * 365 interface VestingEscrowSimple: def initialize( _admin: address, _token: address, _recipient: address, _amount: uint256, _start_time: uint256, _end_time: uint256, _can_disable: bool ) -> bool: nonpayable event CommitOwnership: admin: address event ApplyOwnership: admin: address admin: public(address) future_admin: public(address) target: public(address) @external def __init__(_target: address, _admin: 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 """ self.target = _target self.admin = _admin @external def deploy_vesting_contract( _token: address, _recipient: address, _amount: uint256, _can_disable: bool, _vesting_duration: uint256, _vesting_start: uint256 = block.timestamp ) -> address: """ @notice Deploy a new vesting contract @dev Each contract holds tokens which vest for a single account. Tokens must be sent to this contract via the regular `ERC20.transfer` method prior to calling this method. @param _token Address of the ERC20 token being distributed @param _recipient Address to vest tokens for @param _amount Amount of tokens being vested for `_recipient` @param _can_disable Can admin disable recipient's ability to claim tokens? @param _vesting_duration Time period over which tokens are released @param _vesting_start Epoch time when tokens begin to vest """ assert msg.sender == self.admin # dev: admin only assert _vesting_start >= block.timestamp # dev: start time too soon assert _vesting_duration >= MIN_VESTING_DURATION # dev: duration too short _contract: address = create_forwarder_to(self.target) assert ERC20(_token).approve(_contract, _amount) # dev: approve failed VestingEscrowSimple(_contract).initialize( self.admin, _token, _recipient, _amount, _vesting_start, _vesting_start + _vesting_duration, _can_disable ) return _contract @external def commit_transfer_ownership(addr: address) -> bool: """ @notice Transfer ownership of GaugeController to `addr` @param addr Address to have ownership transferred to """ assert msg.sender == self.admin # dev: admin only self.future_admin = addr log CommitOwnership(addr) return True @external def apply_transfer_ownership() -> bool: """ @notice Apply pending ownership transfer """ assert msg.sender == self.admin # dev: admin only _admin: address = self.future_admin assert _admin != ZERO_ADDRESS # dev: admin not set self.admin = _admin log ApplyOwnership(_admin) return True
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"name":"CommitOwnership","inputs":[{"type":"address","name":"admin","indexed":false}],"anonymous":false,"type":"event"},{"name":"ApplyOwnership","inputs":[{"type":"address","name":"admin","indexed":false}],"anonymous":false,"type":"event"},{"outputs":[],"inputs":[{"type":"address","name":"_target"},{"type":"address","name":"_admin"}],"stateMutability":"nonpayable","type":"constructor"},{"name":"deploy_vesting_contract","outputs":[{"type":"address","name":""}],"inputs":[{"type":"address","name":"_token"},{"type":"address","name":"_recipient"},{"type":"uint256","name":"_amount"},{"type":"bool","name":"_can_disable"},{"type":"uint256","name":"_vesting_duration"}],"stateMutability":"nonpayable","type":"function"},{"name":"deploy_vesting_contract","outputs":[{"type":"address","name":""}],"inputs":[{"type":"address","name":"_token"},{"type":"address","name":"_recipient"},{"type":"uint256","name":"_amount"},{"type":"bool","name":"_can_disable"},{"type":"uint256","name":"_vesting_duration"},{"type":"uint256","name":"_vesting_start"}],"stateMutability":"nonpayable","type":"function"},{"name":"commit_transfer_ownership","outputs":[{"type":"bool","name":""}],"inputs":[{"type":"address","name":"addr"}],"stateMutability":"nonpayable","type":"function","gas":37672},{"name":"apply_transfer_ownership","outputs":[{"type":"bool","name":""}],"inputs":[],"stateMutability":"nonpayable","type":"function","gas":38572},{"name":"admin","outputs":[{"type":"address","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1241},{"name":"future_admin","outputs":[{"type":"address","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1271},{"name":"target","outputs":[{"type":"address","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1301}]
Deployed Bytecode
0x600436101561000d57610419565b600035601c52740100000000000000000000000000000000000000006020526f7fffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060605274012a05f1fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffed5fa0e000000000000000000000000000000000060a05263cff0e79f60005114156100b95742610140526100df565b6385f504f660005114156100d757602060a4610140376000506100df565b6000156102a8575b34156100ea57600080fd5b60043560205181106100fb57600080fd5b50602435602051811061010d57600080fd5b506064356002811061011e57600080fd5b50600054331461012d57600080fd5b4261014051101561013d57600080fd5b6301e13380608435101561015057600080fd5b7f6033600c60003960336000f33660006000376110006000366000730000000000610180526c010000000000000000000000006002540261019b527f5af4602c57600080fd5b6110006000f3000000000000000000000000000000006101af5260606101806000f0806101c257600080fd5b6101605260206102c0604463095ea7b36102205261016051610240526044356102605261023c60006004355af16101f857600080fd5b601f3d1161020557600080fd5b6000506102c05161021557600080fd5b602061042060e463c1561abe6102e0526000546103005260043561032052602435610340526044356103605261014051610380526101405160843581818301101561025f57600080fd5b808201905090506103a0526064356103c0526102fc6000610160515af161028557600080fd5b601f3d1161029257600080fd5b600050610420506101605160005260206000f350005b636b441a4060005114156103225734156102c157600080fd5b60043560205181106102d257600080fd5b5060005433146102e157600080fd5b600435600155600435610140527f2f56810a6bf40af059b96d3aea4db54081f378029a518390491093a7b67032e96020610140a1600160005260206000f350005b636a1c05ae60005114156103a357341561033b57600080fd5b600054331461034957600080fd5b600154610140526000610140511861036057600080fd5b6101405160005561014051610160527febee2d5739011062cb4f14113f3b36bf0ffe3da5c0568f64189d1012a11891056020610160a1600160005260206000f350005b63f851a44060005114156103ca5734156103bc57600080fd5b60005460005260206000f350005b6317f7182a60005114156103f15734156103e357600080fd5b60015460005260206000f350005b63d4b83992600051141561041857341561040a57600080fd5b60025460005260206000f350005b5b60006000fd
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.348504 | 7.112 | $2.48 |
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.