24 txs
28 calls
constructor
constructor(address owner_, address recoveryController, address treasury_)
functions
getRedeemableAmount
viewfunction getRedeemableAmount(address user, uint256 maxRedeemable, bytes32[] merkleProofs) view returns (bool isValidProof, uint256 redeemable)
isRoot
viewfunction isRoot(bytes32 root) view returns (bool)
merkleRoot
viewfunction merkleRoot() view returns (bytes32)
owner
viewfunction owner() view returns (address)
RECOVERY_TOKEN
viewfunction RECOVERY_TOKEN() view returns (address)
redeemed
viewfunction redeemed(bytes32 root, address user) view returns (uint256 amount)
treasury
viewfunction treasury() view returns (address)
UNDERLYING_TOKEN
viewfunction UNDERLYING_TOKEN() view returns (address)
redeem
nonpayablefunction redeem(uint256 amount, uint256 maxRedeemable, bytes32[] merkleProofs)
setMerkleRoot
nonpayablefunction setMerkleRoot(bytes32 merkleRoot_)
setTreasury
nonpayablefunction setTreasury(address treasury_)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
MerkleRootSet
event MerkleRootSet(bytes32 indexed merkleRoot)
OwnershipTransferred
event OwnershipTransferred(address indexed user, address indexed newOwner)
Redeemed
event Redeemed(bytes32 indexed root, address indexed user, uint256 amount)
TreasurySet
event TreasurySet(address indexed treasury)
errors
AlreadyRedeemed
error AlreadyRedeemed()
InvalidProof
error InvalidProof()
InvalidRoot
error InvalidRoot()
ZeroAmount
error ZeroAmount()
creation bytecode
0x60c060405234801561000f575f5ffd5b506040516115ac3803806115ac833981810160405281019061003191906102f3565b82805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3508173ffffffffffffffffffffffffffffffffffffffff1663bdb1e3406040518163ffffffff1660e01b8152600401602060405180830381865afa158015610115573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101399190610343565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff166329db1be66040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d99190610343565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905573ffffffffffffffffffffffffffffffffffffffff167f3c864541ef71378c6229510ed90f376565ee42d9c5e0904a984a9e863e6db44f60405160405180910390a250505061036e565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102c282610299565b9050919050565b6102d2816102b8565b81146102dc575f5ffd5b50565b5f815190506102ed816102c9565b92915050565b5f5f5f6060848603121561030a57610309610295565b5b5f610317868287016102df565b9350506020610328868287016102df565b9250506040610339868287016102df565b9150509250925092565b5f6020828403121561035857610357610295565b5b5f610365848285016102df565b91505092915050565b60805160a0516112086103a45f395f818161026f01526107a401525f81816106b0015281816106f7015261084501526112085ff3fe608060405234801561000f575f5ffd5b50600436106100b2575f3560e01c80638da5cb5b1161006f5780638da5cb5b1461018d578063b97bff1a146101ab578063bdb1e340146101c7578063caadea17146101e5578063f0f4426014610215578063f2fde38b14610231576100b2565b80630fb128fd146100b657806329db1be6146100e65780632eb4a7ab1461010457806356bd06bf1461012257806361d027b3146101535780637cb6475914610171575b5f5ffd5b6100d060048036038101906100cb9190610c7f565b61024d565b6040516100dd9190610cd5565b60405180910390f35b6100ee61026d565b6040516100fb9190610d49565b60405180910390f35b61010c610291565b6040516101199190610d71565b60405180910390f35b61013c60048036038101906101379190610e15565b610297565b60405161014a929190610ea0565b60405180910390f35b61015b61036d565b6040516101689190610ed6565b60405180910390f35b61018b60048036038101906101869190610eef565b610392565b005b6101956104d3565b6040516101a29190610ed6565b60405180910390f35b6101c560048036038101906101c09190610f1a565b6104f7565b005b6101cf610843565b6040516101dc9190610ed6565b60405180910390f35b6101ff60048036038101906101fa9190610eef565b610867565b60405161020c9190610f8b565b60405180910390f35b61022f600480360381019061022a9190610fa4565b610884565b005b61024b60048036038101906102469190610fa4565b610996565b005b6004602052815f5260405f20602052805f5260405f205f91509150505481565b7f000000000000000000000000000000000000000000000000000000000000000081565b60015481565b5f5f5f60015490505f60045f8381526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8888604051602001610303929190611034565b60405160208183030381529060405280519060200120905061032787878584610ac0565b94508461033c575f5f94509450505050610364565b8782106103525760015f94509450505050610364565b818861035e919061108c565b93505050505b94509492505050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610420576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041790611119565b60405180910390fd5b60035f8281526020019081526020015f205f9054906101000a900460ff1615610475576040517f504570e300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160035f8381526020019081526020015f205f6101000a81548160ff0219169083151502179055508060018190557f42cbc405e4dbf1b691e85b9a34b08ecfcf7a9ad9078bf4d645ccfa1fac11c10b60405160405180910390a250565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8403610530576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60015490505f60045f8381526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f338660405160200161059a929190611034565b6040516020818303038152906040528051906020012090505f6105bf86868685610ac0565b9050806105f8576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b868310610631576040517f1b4e0c3c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f838861063e919061108c565b90508881101561064c578098505b88846106589190611137565b60045f8781526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506106f533308b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610b16909392919063ffffffff16565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166342966c688a6040518263ffffffff1660e01b815260040161074e9190610cd5565b5f604051808303815f87803b158015610765575f5ffd5b505af1158015610777573d5f5f3e3d5ffd5b505050506107e960025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16338b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610b16909392919063ffffffff16565b3373ffffffffffffffffffffffffffffffffffffffff16857f61d905e697374527439f5c64f060ae521e3b586e8f61ef3f160057e7150e153e8b6040516108309190610cd5565b60405180910390a3505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6003602052805f5260405f205f915054906101000a900460ff1681565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610912576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090990611119565b60405180910390fd5b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905573ffffffffffffffffffffffffffffffffffffffff167f3c864541ef71378c6229510ed90f376565ee42d9c5e0904a984a9e863e6db44f60405160405180910390a250565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1b90611119565b60405180910390fd5b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b5f8315610b09578360051b8501855b600115610b06578035841160051b8481528135602082185260405f209450602082019150828210610b005750610b06565b50610acf565b50505b8282149050949350505050565b5f6040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015273ffffffffffffffffffffffffffffffffffffffff8416602482015282604482015260205f6064835f8a5af1915081601f3d1160015f511416151615610ba2573d863b15171591505b5080610be3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bda906111b4565b60405180910390fd5b5050505050565b5f5ffd5b5f5ffd5b5f819050919050565b610c0481610bf2565b8114610c0e575f5ffd5b50565b5f81359050610c1f81610bfb565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610c4e82610c25565b9050919050565b610c5e81610c44565b8114610c68575f5ffd5b50565b5f81359050610c7981610c55565b92915050565b5f5f60408385031215610c9557610c94610bea565b5b5f610ca285828601610c11565b9250506020610cb385828601610c6b565b9150509250929050565b5f819050919050565b610ccf81610cbd565b82525050565b5f602082019050610ce85f830184610cc6565b92915050565b5f819050919050565b5f610d11610d0c610d0784610c25565b610cee565b610c25565b9050919050565b5f610d2282610cf7565b9050919050565b5f610d3382610d18565b9050919050565b610d4381610d29565b82525050565b5f602082019050610d5c5f830184610d3a565b92915050565b610d6b81610bf2565b82525050565b5f602082019050610d845f830184610d62565b92915050565b610d9381610cbd565b8114610d9d575f5ffd5b50565b5f81359050610dae81610d8a565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f840112610dd557610dd4610db4565b5b8235905067ffffffffffffffff811115610df257610df1610db8565b5b602083019150836020820283011115610e0e57610e0d610dbc565b5b9250929050565b5f5f5f5f60608587031215610e2d57610e2c610bea565b5b5f610e3a87828801610c6b565b9450506020610e4b87828801610da0565b935050604085013567ffffffffffffffff811115610e6c57610e6b610bee565b5b610e7887828801610dc0565b925092505092959194509250565b5f8115159050919050565b610e9a81610e86565b82525050565b5f604082019050610eb35f830185610e91565b610ec06020830184610cc6565b9392505050565b610ed081610c44565b82525050565b5f602082019050610ee95f830184610ec7565b92915050565b5f60208284031215610f0457610f03610bea565b5b5f610f1184828501610c11565b91505092915050565b5f5f5f5f60608587031215610f3257610f31610bea565b5b5f610f3f87828801610da0565b9450506020610f5087828801610da0565b935050604085013567ffffffffffffffff811115610f7157610f70610bee565b5b610f7d87828801610dc0565b925092505092959194509250565b5f602082019050610f9e5f830184610e91565b92915050565b5f60208284031215610fb957610fb8610bea565b5b5f610fc684828501610c6b565b91505092915050565b5f8160601b9050919050565b5f610fe582610fcf565b9050919050565b5f610ff682610fdb565b9050919050565b61100e61100982610c44565b610fec565b82525050565b5f819050919050565b61102e61102982610cbd565b611014565b82525050565b5f61103f8285610ffd565b60148201915061104f828461101d565b6020820191508190509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61109682610cbd565b91506110a183610cbd565b92508282039050818111156110b9576110b861105f565b5b92915050565b5f82825260208201905092915050565b7f554e415554484f52495a454400000000000000000000000000000000000000005f82015250565b5f611103600c836110bf565b915061110e826110cf565b602082019050919050565b5f6020820190508181035f830152611130816110f7565b9050919050565b5f61114182610cbd565b915061114c83610cbd565b92508282019050808211156111645761116361105f565b5b92915050565b7f5452414e534645525f46524f4d5f4641494c45440000000000000000000000005f82015250565b5f61119e6014836110bf565b91506111a98261116a565b602082019050919050565b5f6020820190508181035f8301526111cb81611192565b905091905056fea2646970667358221220c3dc8365a7f9eef37003aea7a92c134ffe672517a3f799fa1caa5ce681c2125764736f6c634300081e0033000000000000000000000000b4d72b1c91e640e4ed7d7397f3244de4d8acc50b0000000000000000000000003889255c5a9a55137dfdf870a0c30a285978176a0000000000000000000000001a214795d6a8c5eef9a2e0183788742e367f04aa