0 txs
1 call
constructor
constructor(address carrot, address puffer, address initialOwner)
functions
calculateClaimableAmount
viewfunction calculateClaimableAmount(address user) view returns (uint128)
CARROT
viewfunction CARROT() view returns (address)
duration
viewfunction duration() view returns (uint32)
EXCHANGE_RATE
viewfunction EXCHANGE_RATE() view returns (uint256)
MAX_CARROT_AMOUNT
viewfunction MAX_CARROT_AMOUNT() view returns (uint256)
MIN_TIME_TO_START_PUFFER_RECOVERY
viewfunction MIN_TIME_TO_START_PUFFER_RECOVERY() view returns (uint256)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
PUFFER_RECOVERY_GRACE_PERIOD
viewfunction PUFFER_RECOVERY_GRACE_PERIOD() view returns (uint256)
PUFFER
viewfunction PUFFER() view returns (address)
pufferRecoveryStartTimestamp
viewfunction pufferRecoveryStartTimestamp() view returns (uint48)
pufferRecoveryStatus
viewfunction pufferRecoveryStatus() view returns (uint8)
startTimestamp
viewfunction startTimestamp() view returns (uint48)
steps
viewfunction steps() view returns (uint32)
TOTAL_PUFFER_REWARDS
viewfunction TOTAL_PUFFER_REWARDS() view returns (uint256)
totalDepositedAmount
viewfunction totalDepositedAmount() view returns (uint128)
vestings
viewfunction vestings(address user) view returns (uint128 depositedAmount, uint128 claimedAmount, uint48 lastClaimedTimestamp, uint48 depositedTimestamp)
acceptOwnership
nonpayablefunction acceptOwnership()
claim
nonpayablefunction claim() returns (uint128)
completePufferRecovery
nonpayablefunction completePufferRecovery(address to) returns (uint256)
initialize
nonpayablefunction initialize(uint48 _startTimestamp, uint32 _duration, uint32 _steps)
renounceOwnership
nonpayablefunction renounceOwnership()
startPufferRecovery
nonpayablefunction startPufferRecovery()
startVesting
nonpayablefunction startVesting(uint256 amount)
startVestingWithPermit
nonpayablefunction startVestingWithPermit(tuple permitData)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
Claimed
event Claimed(address indexed user, uint256 claimedAmount)
Initialized
event Initialized(uint256 startTimestamp, uint256 duration, uint256 steps)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
PufferRecoveryCompleted
event PufferRecoveryCompleted(uint256 pufferAmountWithdrawn)
PufferRecoveryStarted
event PufferRecoveryStarted(uint256 pufferRecoveryStartTimestamp)
VestingStarted
event VestingStarted(address indexed user, uint256 amount)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
AlreadyDeposited
error AlreadyDeposited()
AlreadyInitialized
error AlreadyInitialized()
FailedInnerCall
error FailedInnerCall()
InvalidAddress
error InvalidAddress()
InvalidAmount
error InvalidAmount()
InvalidDuration
error InvalidDuration()
InvalidPufferRecoveryStatus
error InvalidPufferRecoveryStatus(uint8 status)
InvalidStartTimestamp
error InvalidStartTimestamp()
InvalidSteps
error InvalidSteps()
NoClaimableAmount
error NoClaimableAmount()
NotEnoughTimePassed
error NotEnoughTimePassed()
NotStarted
error NotStarted()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x60c06040526002805465ffffffffffff191665ffffffffffff179055348015610026575f5ffd5b5060405161172f38038061172f83398101604081905261004591610169565b806001600160a01b03811661007357604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61007c816100e3565b506001600160a01b0383166100a45760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0382166100cb5760405163e6c4247b60e01b815260040160405180910390fd5b506001600160a01b039182166080521660a0526101a9565b600180546001600160a01b03191690556100fc816100ff565b50565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114610164575f5ffd5b919050565b5f5f5f6060848603121561017b575f5ffd5b6101848461014e565b92506101926020850161014e565b91506101a06040850161014e565b90509250925092565b60805160a05161153b6101f45f395f81816102bd015281816105b901528181610631015281816107e40152610cf501525f818161036701528181610b2e0152610fb3015261153b5ff3fe608060405234801561000f575f5ffd5b5060043610610187575f3560e01c8063715018a6116100d9578063c17c1e6411610093578063daf498631161006e578063daf498631461039c578063e30c397814610423578063e6fd48bc14610434578063f2fde38b14610446575f5ffd5b8063c17c1e641461034f578063ccc3aeec14610362578063d23a80c414610389575f5ffd5b8063715018a6146103025780637274f7fd1461030a578063787dd1c21461031d57806379ba5097146103255780638da5cb5b1461032d57806394fbb6861461033d575f5ffd5b80633a4dc2fb116101445780635e0b334f1161011f5780635e0b334f1461028057806360192799146102a157806364e29a0c146102b857806368e03c67146102f7575f5ffd5b80633a4dc2fb146102505780633ac4c57c146102655780634e71d92d14610278575f5ffd5b8063074b85d01461018b5780630e0c29b1146101c05780630fb5a6b4146101e057806314a8bd0d1461020c57806317295894146102145780631e2a64b314610246575b5f5ffd5b6001546101a490600160a01b900465ffffffffffff1681565b60405165ffffffffffff90911681526020015b60405180910390f35b6101d26a2d7eb3f96e070d9700000081565b6040519081526020016101b7565b6002546101f790600160301b900463ffffffff1681565b60405163ffffffff90911681526020016101b7565b6101d2610459565b60025461022e90600160701b90046001600160801b031681565b6040516001600160801b0390911681526020016101b7565b6101d2624f1a0081565b61026361025e3660046112af565b61048f565b005b6101d26102733660046112c6565b61049b565b61022e610693565b60015461029490600160d01b900460ff1681565b6040516101b79190611300565b6002546101f790600160501b900463ffffffff1681565b6102df7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101b7565b6101d26301e1338081565b610263610814565b61022e6103183660046112c6565b610827565b6102636109e6565b610263610ae3565b5f546001600160a01b03166102df565b6101d26a52b7d2dcc80cd2e400000081565b61026361035d366004611326565b610b24565b6102df7f000000000000000000000000000000000000000000000000000000000000000081565b610263610397366004611352565b610bff565b6103ea6103aa3660046112c6565b60036020525f9081526040902080546001909101546001600160801b0380831692600160801b9004169065ffffffffffff80821691600160301b90041684565b604080516001600160801b03958616815294909316602085015265ffffffffffff918216928401929092521660608201526080016101b7565b6001546001600160a01b03166102df565b6002546101a49065ffffffffffff1681565b6102636104543660046112c6565b610d88565b6a52b7d2dcc80cd2e40000006104826a2d7eb3f96e070d97000000670de0b6b3a76400006113b2565b61048c91906113dd565b81565b61049881610df8565b50565b5f6104a4610fe1565b6001600160a01b0382166104cb5760405163e6c4247b60e01b815260040160405180910390fd5b60018054600160d01b900460ff1660028111156104ea576104ea6112ec565b600154600160d01b900460ff1691146105205760405163c969940560e01b81526004016105179190611300565b60405180910390fd5b50600254600154624f1a009161055391600160301b90910463ffffffff1690600160a01b900465ffffffffffff166113f0565b65ffffffffffff16610565919061140e565b42101561058557604051635ada9a9960e01b815260040160405180910390fd5b60018054600160d11b60ff60d01b199091161790556040516370a0823160e01b81523060048201525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa1580156105fe573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106229190611421565b90506106586001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016848361100d565b6040518181527f198aba790cf55bd5dad894936f6fa3b53172d095b87009cc5f9e3e00b4a3300e9060200160405180910390a190505b919050565b5f6002600154600160d01b900460ff1660028111156106b4576106b46112ec565b600154600160d01b900460ff1691036106e15760405163c969940560e01b81526004016105179190611300565b505f6106ec33610827565b90505f816001600160801b0316116107175760405163493c1ab760e01b815260040160405180910390fd5b335f90815260036020526040902060018101805465ffffffffffff19164265ffffffffffff161790558054829190601090610763908490600160801b90046001600160801b0316611438565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550336001600160a01b03167fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a826040516107cf91906001600160801b0391909116815260200190565b60405180910390a261068e6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016336001600160801b03841661100d565b61081c610fe1565b6108255f611071565b565b6001600160a01b0381165f908152600360209081526040808320815160808101835281546001600160801b03808216808452600160801b909204169482019490945260019091015465ffffffffffff80821693830193909352600160301b9004909116606082015290820361089e57505f92915050565b60025460608201515f916108c091600160301b90910463ffffffff16906113f0565b65ffffffffffff16905080826040015165ffffffffffff16106108e657505f9392505050565b5f4282116108f457816108f6565b425b6002549091505f9061091e9063ffffffff600160501b8204811691600160301b900416611457565b63ffffffff16846060015165ffffffffffff168361093c919061147e565b61094691906113dd565b60025485519192505f91600160501b90910463ffffffff16906109739084906001600160801b03166113b2565b61097d91906113dd565b90505f670de0b6b3a76400006a52b7d2dcc80cd2e40000006109aa6a2d7eb3f96e070d97000000836113b2565b6109b491906113dd565b6109be90846113b2565b6109c891906113dd565b90508560200151816109da9190611491565b98975050505050505050565b6109ee610fe1565b5f600154600160d01b900460ff166002811115610a0d57610a0d6112ec565b600154600160d01b900460ff169114610a3a5760405163c969940560e01b81526004016105179190611300565b50600254610a55906301e133809065ffffffffffff1661140e565b421015610a7557604051635ada9a9960e01b815260040160405180910390fd5b6001805465ffffffffffff428116600160a01b90810266ffffffffffffff60a01b1990931692909217600160d01b17928390556040519190920490911681527f101d5931c3464252cdb900a3498ebbe8d4e651f2b03195a1e6e5c422a21657a49060200160405180910390a1565b60015433906001600160a01b03168114610b1b5760405163118cdaa760e01b81526001600160a01b0382166004820152602401610517565b61049881611071565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663d505accf333060208501358535610b6c60608801604089016114b0565b6040516001600160e01b031960e088901b1681526001600160a01b0395861660048201529490931660248501526044840191909152606483015260ff166084820152606084013560a4820152608084013560c482015260e4015f604051808303815f87803b158015610bdc575f5ffd5b505af1158015610bee573d5f5f3e3d5ffd5b505050506104988160200135610df8565b610c07610fe1565b60025465ffffffffffff90811614610c315760405162dc149f60e41b815260040160405180910390fd5b428365ffffffffffff161015610c5a576040516307f5e89560e51b815260040160405180910390fd5b5f8263ffffffff1611610c8057604051637616640160e01b815260040160405180910390fd5b5f8163ffffffff1611610ca65760405163ae29451b60e01b815260040160405180910390fd5b6002805465ffffffffffff851669ffffffffffffffffffff1990911617600160301b63ffffffff858116919091029190911763ffffffff60501b1916600160501b8483160217909155610d35907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690339030906a2d7eb3f96e070d970000009061108a16565b6040805165ffffffffffff8516815263ffffffff848116602083015283168183015290517f7c8b2bb4ba88603ecaf8a835a16f5dc600d81cc928f239a94f1ab037549017ca9181900360600190a1505050565b610d90610fe1565b600180546001600160a01b0383166001600160a01b03199091168117909155610dc05f546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f600154600160d01b900460ff166002811115610e1757610e176112ec565b600154600160d01b900460ff169114610e445760405163c969940560e01b81526004016105179190611300565b5060025465ffffffffffff16421015610e7057604051636f312cbd60e01b815260040160405180910390fd5b335f90815260036020526040902080546001600160801b031615610ea75760405163d5a8211560e01b815260040160405180910390fd5b5f8211610ec75760405163162908e360e11b815260040160405180910390fd5b80546fffffffffffffffffffffffffffffffff19166001600160801b038381169190911782556001820180546bffffffffffffffffffffffff1916600160301b4265ffffffffffff1690810265ffffffffffff191691909117179055600280548492600e91610f3f918591600160701b900416611438565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550336001600160a01b03167f7b97dcefcb9fdae22321c09ae87ed7865e06d2477325d246f8f1ff039a701a3d83604051610f9e91815260200190565b60405180910390a2610fdd6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163361dead8561108a565b5050565b5f546001600160a01b031633146108255760405163118cdaa760e01b8152336004820152602401610517565b6040516001600160a01b0383811660248301526044820183905261106c91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b0383818316178352505050506110c9565b505050565b600180546001600160a01b03191690556104988161112a565b6040516001600160a01b0384811660248301528381166044830152606482018390526110c39186918216906323b872dd9060840161103a565b50505050565b5f6110dd6001600160a01b03841683611179565b905080515f141580156111015750808060200190518101906110ff91906114d0565b155b1561106c57604051635274afe760e01b81526001600160a01b0384166004820152602401610517565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b606061118683835f61118f565b90505b92915050565b6060814710156111b45760405163cd78605960e01b8152306004820152602401610517565b5f5f856001600160a01b031684866040516111cf91906114ef565b5f6040518083038185875af1925050503d805f8114611209576040519150601f19603f3d011682016040523d82523d5f602084013e61120e565b606091505b509150915061121e86838361122a565b925050505b9392505050565b60608261123f5761123a82611286565b611223565b815115801561125657506001600160a01b0384163b155b1561127f57604051639996b31560e01b81526001600160a01b0385166004820152602401610517565b5080611223565b8051156112965780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b5f602082840312156112bf575f5ffd5b5035919050565b5f602082840312156112d6575f5ffd5b81356001600160a01b0381168114611223575f5ffd5b634e487b7160e01b5f52602160045260245ffd5b602081016003831061132057634e487b7160e01b5f52602160045260245ffd5b91905290565b5f60a0828403128015611337575f5ffd5b509092915050565b803563ffffffff8116811461068e575f5ffd5b5f5f5f60608486031215611364575f5ffd5b833565ffffffffffff81168114611379575f5ffd5b92506113876020850161133f565b91506113956040850161133f565b90509250925092565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176111895761118961139e565b634e487b7160e01b5f52601260045260245ffd5b5f826113eb576113eb6113c9565b500490565b65ffffffffffff81811683821601908111156111895761118961139e565b808201808211156111895761118961139e565b5f60208284031215611431575f5ffd5b5051919050565b6001600160801b0381811683821601908111156111895761118961139e565b5f63ffffffff83168061146c5761146c6113c9565b8063ffffffff84160491505092915050565b818103818111156111895761118961139e565b6001600160801b0382811682821603908111156111895761118961139e565b5f602082840312156114c0575f5ffd5b813560ff81168114611223575f5ffd5b5f602082840312156114e0575f5ffd5b81518015158114611223575f5ffd5b5f82518060208501845e5f92019182525091905056fea264697066735822122040ee3828393d4e5121889f886b392771bfb8f382e6f9ac3d17b12f3f6fd29c0364736f6c634300081c0033000000000000000000000000282a69142bac47855c3fbe1693fcc4ba3b4d5ed60000000000000000000000004d1c297d39c5c1277964d0e3f8aa901493664530000000000000000000000000e06a1ad7346dfda7ce9bcfba751dabfd754bafad