1.4k txs
1.4k calls
constructor
constructor(address _owner, address _updater, address _wNative)
functions
claimed
viewfunction claimed(address user, address pool, address token, bytes identifier) view returns (uint256 amount)
getUnclaimedAmount
viewfunction getUnclaimedAmount(address user, address pool, address token, uint256 amount, bytes identifier) view returns (uint256)
isHarvested
viewfunction isHarvested(address user, address pool, address token, uint256 amount, bytes identifier) view returns (bool)
merkleUpdater
viewfunction merkleUpdater() view returns (address)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
root
viewfunction root() view returns (bytes32)
wNative
viewfunction wNative() view returns (address)
harvest
nonpayablefunction harvest(address user, address pool, address token, uint256 amount, bytes identifier, bytes32[] proof)
multiHarvest
nonpayablefunction multiHarvest(address user, address[] pools, address[] tokens, uint256[] amounts, bytes[] identifiers, bytes32[][] proofs)
pause
nonpayablefunction pause()
recoverERC20
nonpayablefunction recoverERC20(address to, address token, uint256 amount)
renounceOwnership
nonpayablefunction renounceOwnership()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
updateMerkleUpdater
nonpayablefunction updateMerkleUpdater(address updater)
updateRoot
nonpayablefunction updateRoot(bytes32 newRoot)
events
Claimed
event Claimed(address indexed user, address indexed pool, address indexed token, uint256 amount, uint256 accAmount, bytes identifier)
DistributorPaused
event DistributorPaused()
DistributorUnpaused
event DistributorUnpaused()
MerkleUpdaterChanged
event MerkleUpdaterChanged(address old, address merkleUpdater)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RecoveredERC20
event RecoveredERC20(address indexed to, address indexed token, uint256 amount)
RootUpdated
event RootUpdated(bytes32 root)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
AlreadyClaimed
error AlreadyClaimed()
ContractIsPaused
error ContractIsPaused()
FailedInnerCall
error FailedInnerCall()
FailedToSendNative
error FailedToSendNative()
InvalidLengths
error InvalidLengths()
InvalidMerkleUpdater
error InvalidMerkleUpdater()
InvalidProof
error InvalidProof()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
Unauthorized
error Unauthorized()
creation bytecode
0x60a06040523480156200001157600080fd5b50604051620018e1380380620018e1833981016040819052620000349162000130565b826001600160a01b0381166200006457604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200006f81620000c3565b50600180556001600160a01b0382166200009c5760405163594692f160e11b815260040160405180910390fd5b600480546001600160a01b0319166001600160a01b0393841617905516608052506200017a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200012b57600080fd5b919050565b6000806000606084860312156200014657600080fd5b620001518462000113565b9250620001616020850162000113565b9150620001716040850162000113565b90509250925092565b60805161173d620001a46000396000818161017201528181610c6a0152610e6d015261173d6000f3fe6080604052600436106101125760003560e01c80638456cb59116100a5578063a3f7957311610074578063cf986ed011610059578063cf986ed014610358578063ebf0c71714610378578063f2fde38b1461038e57600080fd5b8063a3f7957314610318578063bb43878e1461033857600080fd5b80638456cb591461025d5780638da5cb5b14610272578063935809b914610290578063a106b8b2146102f857600080fd5b80633f4ba83a116100e15780633f4ba83a146101d15780635495c1ba146101e65780635c975abb14610206578063715018a61461024857600080fd5b80631171bda91461011e57806321ff9970146101405780632d68efc91461016057806337e81ba5146101b157600080fd5b3661011957005b600080fd5b34801561012a57600080fd5b5061013e6101393660046110f0565b6103ae565b005b34801561014c57600080fd5b5061013e61015b36600461112c565b61041c565b34801561016c57600080fd5b506101947f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101bd57600080fd5b5061013e6101cc366004611145565b61045f565b3480156101dd57600080fd5b5061013e610520565b3480156101f257600080fd5b50600454610194906001600160a01b031681565b34801561021257600080fd5b506004546102389074010000000000000000000000000000000000000000900460ff1681565b60405190151581526020016101a8565b34801561025457600080fd5b5061013e61057b565b34801561026957600080fd5b5061013e61058f565b34801561027e57600080fd5b506000546001600160a01b0316610194565b34801561029c57600080fd5b506102ea6102ab366004611176565b60036020908152600094855260408086208252938552838520815291845291909220815180830184018051928152908401929093019190912091525481565b6040519081526020016101a8565b34801561030457600080fd5b506102386103133660046112a2565b610601565b34801561032457600080fd5b506102ea6103333660046112a2565b610662565b34801561034457600080fd5b5061013e610353366004611366565b6106dc565b34801561036457600080fd5b5061013e610373366004611411565b61070f565b34801561038457600080fd5b506102ea60025481565b34801561039a57600080fd5b5061013e6103a9366004611145565b610866565b6103b66108c2565b6103ca6001600160a01b0383168483610906565b816001600160a01b0316836001600160a01b03167f0469918f24999e267065319b4027a9fcb08e498e4081aa6a8d216836ae36f1018360405161040f91815260200190565b60405180910390a3505050565b61042461098b565b60028190556040518181527f2cbc14f49c068133583f7cb530018af451c87c1cf1327cf2a4ff4698c4730aa49060200160405180910390a150565b6104676108c2565b6001600160a01b0381166104a7576040517fb28d25e200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600480546001600160a01b038381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527fdc90ef7a58fa8bddfaca013af8d0cbc3a1d0b7e5cbf47cf4eb9766a0c544cd95910160405180910390a15050565b6105286108c2565b600480547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690556040517f25ac1b405565d9cbab310b6787dfda9d645367be51a035bca4f2e1a07fd79bae90600090a1565b6105836109cf565b61058d6000610a15565b565b6105976108c2565b600480547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790556040517f11815a76a62c222c2f1d8107b98e2991448632c1a23f298fd9c8a958f8c61ed890600090a1565b6001600160a01b0380871660009081526003602090815260408083208985168452825280832093881683529290528181209151909185916106459086908690611518565b908152602001604051809103902054101590509695505050505050565b6001600160a01b0380871660009081526003602090815260408083208985168452825280832093881683529290528181209151909182916106a69086908690611518565b90815260200160405180910390205490508085106106cd576106c8818661153e565b6106d0565b60005b98975050505050505050565b6106e4610a7d565b6106ec610ac0565b6106fc8888888888888888610b15565b61070560018055565b5050505050505050565b610717610a7d565b61071f610ac0565b86158061072c5750868914155b806107375750868514155b806107425750868314155b8061074d5750868114155b15610784576040517f1df89e8b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b8781101561084f576108478c8c8c848181106107a5576107a5611551565b90506020020160208101906107ba9190611145565b8b8b858181106107cc576107cc611551565b90506020020160208101906107e19190611145565b8a8a868181106107f3576107f3611551565b9050602002013589898781811061080c5761080c611551565b905060200281019061081e9190611567565b89898981811061083057610830611551565b905060200281019061084291906115ae565b610b15565b600101610787565b5061085960018055565b5050505050505050505050565b61086e6109cf565b6001600160a01b0381166108b6576040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b6108bf81610a15565b50565b6000546001600160a01b0316331461058d576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610986908490610daa565b505050565b6004546001600160a01b0316331461058d576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000546001600160a01b0316331461058d576040517f118cdaa70000000000000000000000000000000000000000000000000000000081523360048201526024016108ad565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600260015403610ab9576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600155565b60045474010000000000000000000000000000000000000000900460ff161561058d576040517f6d39fcd000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000888888888888604051602001610b3296959493929190611623565b604051602081830303815290604052805190602001209050610b8b838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506002549150849050610e26565b610bc1576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610bd18a8a8a8a8a8a610662565b905080600003610c0d576040517f646cf55800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808b1660009081526003602090815260408083208d851684528252808320938c1683529290528190209051889190610c509089908990611518565b908152604051908190036020019020556001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811690891603610d2f57610c9c87610e3e565b60008a6001600160a01b03168860405160006040518083038185875af1925050503d8060008114610ce9576040519150601f19603f3d011682016040523d82523d6000602084013e610cee565b606091505b5050905080610d29576040517f950b247900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50610d43565b610d436001600160a01b0389168b83610906565b876001600160a01b0316896001600160a01b03168b6001600160a01b03167fa73fece7acac7190af61ffcd42b1fc253c2cad9cc5d1b4ac2cb151d43a385efa848b8b8b604051610d96949392919061165e565b60405180910390a450505050505050505050565b6000610dbf6001600160a01b03841683610ed4565b90508051600014158015610de4575080806020019051810190610de2919061167e565b155b15610986576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024016108ad565b600082610e338584610eeb565b1490505b9392505050565b6040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b158015610eb957600080fd5b505af1158015610ecd573d6000803e3d6000fd5b5050505050565b6060610ee283836000610f38565b90505b92915050565b600081815b8451811015610f3057610f1c82868381518110610f0f57610f0f611551565b6020026020010151610fee565b915080610f28816116a0565b915050610ef0565b509392505050565b606081471015610f76576040517fcd7860590000000000000000000000000000000000000000000000000000000081523060048201526024016108ad565b600080856001600160a01b03168486604051610f9291906116d8565b60006040518083038185875af1925050503d8060008114610fcf576040519150601f19603f3d011682016040523d82523d6000602084013e610fd4565b606091505b5091509150610fe486838361101d565b9695505050505050565b600081831061100a576000828152602084905260409020610ee2565b6000838152602083905260409020610ee2565b6060826110325761102d82611092565b610e37565b815115801561104957506001600160a01b0384163b155b1561108b576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024016108ad565b5080610e37565b8051156110a25780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80356001600160a01b03811681146110eb57600080fd5b919050565b60008060006060848603121561110557600080fd5b61110e846110d4565b925061111c602085016110d4565b9150604084013590509250925092565b60006020828403121561113e57600080fd5b5035919050565b60006020828403121561115757600080fd5b610ee2826110d4565b634e487b7160e01b600052604160045260246000fd5b6000806000806080858703121561118c57600080fd5b611195856110d4565b93506111a3602086016110d4565b92506111b1604086016110d4565b9150606085013567ffffffffffffffff808211156111ce57600080fd5b818701915087601f8301126111e257600080fd5b8135818111156111f4576111f4611160565b604051601f8201601f19908116603f0116810190838211818310171561121c5761121c611160565b816040528281528a602084870101111561123557600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008083601f84011261126b57600080fd5b50813567ffffffffffffffff81111561128357600080fd5b60208301915083602082850101111561129b57600080fd5b9250929050565b60008060008060008060a087890312156112bb57600080fd5b6112c4876110d4565b95506112d2602088016110d4565b94506112e0604088016110d4565b935060608701359250608087013567ffffffffffffffff81111561130357600080fd5b61130f89828a01611259565b979a9699509497509295939492505050565b60008083601f84011261133357600080fd5b50813567ffffffffffffffff81111561134b57600080fd5b6020830191508360208260051b850101111561129b57600080fd5b60008060008060008060008060c0898b03121561138257600080fd5b61138b896110d4565b975061139960208a016110d4565b96506113a760408a016110d4565b955060608901359450608089013567ffffffffffffffff808211156113cb57600080fd5b6113d78c838d01611259565b909650945060a08b01359150808211156113f057600080fd5b506113fd8b828c01611321565b999c989b5096995094979396929594505050565b600080600080600080600080600080600060c08c8e03121561143257600080fd5b61143b8c6110d4565b9a5067ffffffffffffffff8060208e0135111561145757600080fd5b6114678e60208f01358f01611321565b909b50995060408d013581101561147d57600080fd5b61148d8e60408f01358f01611321565b909950975060608d01358110156114a357600080fd5b6114b38e60608f01358f01611321565b909750955060808d01358110156114c957600080fd5b6114d98e60808f01358f01611321565b909550935060a08d01358110156114ef57600080fd5b506115008d60a08e01358e01611321565b81935080925050509295989b509295989b9093969950565b8183823760009101908152919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610ee557610ee5611528565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261157e57600080fd5b83018035915067ffffffffffffffff82111561159957600080fd5b60200191503681900382131561129b57600080fd5b6000808335601e198436030181126115c557600080fd5b83018035915067ffffffffffffffff8211156115e057600080fd5b6020019150600581901b360382131561129b57600080fd5b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b60006001600160a01b038089168352808816602084015280871660408401525084606083015260a060808301526106d060a0830184866115f8565b848152836020820152606060408201526000610fe46060830184866115f8565b60006020828403121561169057600080fd5b81518015158114610e3757600080fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036116d1576116d1611528565b5060010190565b6000825160005b818110156116f957602081860181015185830152016116df565b50600092019182525091905056fea2646970667358221220b43adb6d5301064e27740f00d3ae14502bd7bb537496d9919790bc42ff51f9e564736f6c6343000814003300000000000000000000000001bb7b44cc398aaa2b76ac6253f0f5634279db9d000000000000000000000000ac864c0713fa2d83acabd99c61c40eea5f02976200000000000000000000000082af49447d8a07e3bd95bd0d56f35241523fbab1