0 txs
1 call
constructor
constructor()
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
decimals
viewfunction decimals() view returns (uint8)
donationReceiver
viewfunction donationReceiver() view returns (address donationReceiverAddress)
name
viewfunction name() view returns (string)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
skimmable
viewfunction skimmable() view returns (uint256 amount)
symbol
viewfunction symbol() view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
underlying
viewfunction underlying() view returns (address)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
approve
nonpayablefunction approve(address spender, uint256 value) returns (bool)
depositFor
nonpayablefunction depositFor(address account, uint256 value) returns (bool)
initialize
nonpayablefunction initialize(address _accessControl, address _donationReceiver, address _asset)
setDonationReceiver
nonpayablefunction setDonationReceiver(address _donationReceiver)
skim
nonpayablefunction skim() returns (uint256 amount)
transfer
nonpayablefunction transfer(address to, uint256 value) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 value) returns (bool)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
withdrawTo
nonpayablefunction withdrawTo(address account, uint256 value) returns (bool)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
Initialized
event Initialized(uint64 version)
SetDonationReceiver
event SetDonationReceiver(address donationReceiver)
Skim
event Skim(address indexed donationReceiver, uint256 amount)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
Upgraded
event Upgraded(address indexed implementation)
errors
AccessDenied
error AccessDenied()
AddressEmptyCode
error AddressEmptyCode(address target)
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
ERC20InsufficientAllowance
error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed)
ERC20InsufficientBalance
error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed)
ERC20InvalidApprover
error ERC20InvalidApprover(address approver)
ERC20InvalidReceiver
error ERC20InvalidReceiver(address receiver)
ERC20InvalidSender
error ERC20InvalidSender(address sender)
ERC20InvalidSpender
error ERC20InvalidSpender(address spender)
ERC20InvalidUnderlying
error ERC20InvalidUnderlying(address token)
FailedCall
error FailedCall()
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
ZeroAddress
error ZeroAddress()
creation bytecode
0x60a060405230608052348015610013575f5ffd5b5061001c610021565b6100d3565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100715760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100d05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051611bf86100f95f395f8181610e7601528181610e9f0152610fcc0152611bf85ff3fe60806040526004361061011b575f3560e01c80634f1ef2861161009d5780639f97fdbb116100625780639f97fdbb14610332578063a9059cbb14610351578063ad3cb1cc14610370578063c0c53b8b146103a0578063dd62ed3e146103bf575f5ffd5b80634f1ef2861461028c57806352d1902d146102a15780636f307dc3146102b557806370a08231146102de57806395d89b411461031e575f5ffd5b8063205c2878116100e3578063205c2878146101dd578063213ea6bb146101fc57806323b872dd146102285780632f4f21e214610247578063313ce56714610266575f5ffd5b806306fdde031461011f578063095ea7b31461014957806318160ddd14610178578063183dcad9146101b55780631dd19cb4146101c9575b5f5ffd5b34801561012a575f5ffd5b506101336103de565b60405161014091906116a0565b60405180910390f35b348015610154575f5ffd5b506101686101633660046116f0565b61049e565b6040519015158152602001610140565b348015610183575f5ffd5b507f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02545b604051908152602001610140565b3480156101c0575f5ffd5b506101a76104b7565b3480156101d4575f5ffd5b506101a7610586565b3480156101e8575f5ffd5b506101686101f73660046116f0565b6105e4565b348015610207575f5ffd5b5061021061064c565b6040516001600160a01b039091168152602001610140565b348015610233575f5ffd5b50610168610242366004611718565b61067e565b348015610252575f5ffd5b506101686102613660046116f0565b6106a3565b348015610271575f5ffd5b5061027a610735565b60405160ff9091168152602001610140565b61029f61029a3660046117be565b6107b4565b005b3480156102ac575f5ffd5b506101a76107d3565b3480156102c0575f5ffd5b505f516020611b835f395f51905f52546001600160a01b0316610210565b3480156102e9575f5ffd5b506101a76102f8366004611849565b6001600160a01b03165f9081525f516020611b635f395f51905f52602052604090205490565b348015610329575f5ffd5b506101336107ee565b34801561033d575f5ffd5b5061029f61034c366004611849565b61082c565b34801561035c575f5ffd5b5061016861036b3660046116f0565b6108d9565b34801561037b575f5ffd5b50610133604051806040016040528060058152602001640352e302e360dc1b81525081565b3480156103ab575f5ffd5b5061029f6103ba366004611862565b6108e6565b3480156103ca575f5ffd5b506101a76103d93660046118a2565b610b98565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0380546060915f516020611b635f395f51905f529161041c906118d3565b80601f0160208091040260200160405190810160405280929190818152602001828054610448906118d3565b80156104935780601f1061046a57610100808354040283529160200191610493565b820191905f5260205f20905b81548152906001019060200180831161047657829003601f168201915b505050505091505090565b5f336104ab818585610be1565b60019150505b92915050565b5f5f6104d75f516020611b835f395f51905f52546001600160a01b031690565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa15801561051b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061053f919061190b565b90505f61056a7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace025490565b9050808211156105815761057e8183611936565b92505b505090565b5f5f61059061064c565b905061059b81610bf3565b9150806001600160a01b03167f5e99aaf6d3588fb2497fde044168e8c046704a3223559cfe107f8f94b42cefdd836040516105d891815260200190565b60405180910390a25090565b5f5f516020611b835f395f51905f52306001600160a01b0385160361062c5760405163ec442f0560e01b81526001600160a01b03851660048201526024015b60405180910390fd5b6106363384610caa565b80546104ab906001600160a01b03168585610cde565b5f7fcefd3d92422fccee73a9741c1e2fdb5ab7eafa1253faeebee5a888e84df9f2005b546001600160a01b0316919050565b5f3361068b858285610d3d565b610696858585610da1565b60019150505b9392505050565b5f5f516020611b835f395f51905f52333081036106d557604051634b637e8f60e11b8152306004820152602401610623565b306001600160a01b038616036107095760405163ec442f0560e01b81526001600160a01b0386166004820152602401610623565b8154610720906001600160a01b0316823087610dfe565b61072a8585610e37565b506001949350505050565b5f516020611b835f395f51905f5280546040805163313ce56760e01b815290515f93926001600160a01b03169163313ce5679160048083019260209291908290030181865afa9250505080156107a8575060408051601f3d908101601f191682019092526107a591810190611949565b60015b6104b157601291505090565b6107bc610e6b565b6107c582610efb565b6107cf8282610f05565b5050565b5f6107dc610fc1565b505f516020611ba35f395f51905f5290565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060915f516020611b635f395f51905f529161041c906118d3565b639f97fdbb60e01b61083d8161100a565b6001600160a01b0382166108645760405163d92e233d60e01b815260040160405180910390fd5b817fcefd3d92422fccee73a9741c1e2fdb5ab7eafa1253faeebee5a888e84df9f20080546001600160a01b0319166001600160a01b0392831617905560405190831681527ff2ad3351988985514027fee9b8c348e8b4fbe15f57f3bb47d555d3943d7e618f9060200160405180910390a15050565b5f336104ab818585610da1565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f8115801561092b5750825b90505f8267ffffffffffffffff1660011480156109475750303b155b905081158015610955575080155b156109735760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561099d57845460ff60401b1916600160401b1785555b6001600160a01b03881615806109ba57506001600160a01b038716155b806109cc57506001600160a01b038616155b156109ea5760405163d92e233d60e01b815260040160405180910390fd5b6109f3886110ca565b610afd866001600160a01b03166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa158015610a31573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610a589190810190611969565b604051602001610a6891906119f5565b604051602081830303815290604052876001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610ab2573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610ad99190810190611969565b604051602001610ae99190611a11565b6040516020818303038152906040526110de565b610b06866110f0565b610b0e611101565b7fcefd3d92422fccee73a9741c1e2fdb5ab7eafa1253faeebee5a888e84df9f20080546001600160a01b0319166001600160a01b0389161790558315610b8e57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b610bee8383836001611109565b505050565b5f5f516020611b835f395f51905f5281610c2b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace025490565b82546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610c70573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c94919061190b565b610c9e9190611936565b905061069c8482610e37565b6001600160a01b038216610cd357604051634b637e8f60e11b81525f6004820152602401610623565b6107cf825f836111ed565b6040516001600160a01b03838116602483015260448201839052610bee91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050611326565b5f610d488484610b98565b90505f19811015610d9b5781811015610d8d57604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610623565b610d9b84848484035f611109565b50505050565b6001600160a01b038316610dca57604051634b637e8f60e11b81525f6004820152602401610623565b6001600160a01b038216610df35760405163ec442f0560e01b81525f6004820152602401610623565b610bee8383836111ed565b6040516001600160a01b038481166024830152838116604483015260648201839052610d9b9186918216906323b872dd90608401610d0b565b6001600160a01b038216610e605760405163ec442f0560e01b81525f6004820152602401610623565b6107cf5f83836111ed565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610edb57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610ecf611392565b6001600160a01b031614155b15610ef95760405163703e46dd60e11b815260040160405180910390fd5b565b5f6107cf8161100a565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610f5f575060408051601f3d908101601f19168201909252610f5c9181019061190b565b60015b610f8757604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610623565b5f516020611ba35f395f51905f528114610fb757604051632a87526960e21b815260048101829052602401610623565b610bee83836113a6565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610ef95760405163703e46dd60e11b815260040160405180910390fd5b5f7fb413d65cb88f23816c329284a0d3eb15a99df7963ab7402ade4c5da22bff6b0054604051633657648360e21b81526001600160e01b0319841660048201523060248201523360448201526001600160a01b039091169063d95d920c90606401602060405180830381865afa158015611086573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110aa9190611a26565b9050806107cf57604051634ca8886760e01b815260040160405180910390fd5b6110d26113fb565b6110db81611444565b50565b6110e66113fb565b6107cf8282611490565b6110f86113fb565b6110db816114e0565b610ef96113fb565b5f516020611b635f395f51905f526001600160a01b0385166111405760405163e602df0560e01b81525f6004820152602401610623565b6001600160a01b03841661116957604051634a1406b160e11b81525f6004820152602401610623565b6001600160a01b038086165f908152600183016020908152604080832093881683529290522083905581156111e657836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040516111dd91815260200190565b60405180910390a35b5050505050565b5f516020611b635f395f51905f526001600160a01b0384166112275781816002015f82825461121c9190611a45565b909155506112979050565b6001600160a01b0384165f90815260208290526040902054828110156112795760405163391434e360e21b81526001600160a01b03861660048201526024810182905260448101849052606401610623565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b0383166112b55760028101805483900390556112d3565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161131891815260200190565b60405180910390a350505050565b5f5f60205f8451602086015f885af180611345576040513d5f823e3d81fd5b50505f513d9150811561135c578060011415611369565b6001600160a01b0384163b155b15610d9b57604051635274afe760e01b81526001600160a01b0385166004820152602401610623565b5f5f516020611ba35f395f51905f5261066f565b6113af82611541565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156113f357610bee828261158a565b6107cf6115fc565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610ef957604051631afcd79f60e31b815260040160405180910390fd5b61144c6113fb565b807fb413d65cb88f23816c329284a0d3eb15a99df7963ab7402ade4c5da22bff6b005b80546001600160a01b0319166001600160a01b039290921691909117905550565b6114986113fb565b5f516020611b635f395f51905f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace036114d18482611a9c565b5060048101610d9b8382611a9c565b6114e86113fb565b5f516020611b835f395f51905f52306001600160a01b038316036115215760405163438d6fe360e01b8152306004820152602401610623565b80546001600160a01b0319166001600160a01b0392909216919091179055565b806001600160a01b03163b5f0361157657604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610623565b805f516020611ba35f395f51905f5261146f565b60605f5f846001600160a01b0316846040516115a69190611b57565b5f60405180830381855af49150503d805f81146115de576040519150601f19603f3d011682016040523d82523d5f602084013e6115e3565b606091505b50915091506115f385838361161b565b95945050505050565b3415610ef95760405163b398979f60e01b815260040160405180910390fd5b6060826116305761162b82611677565b61069c565b815115801561164757506001600160a01b0384163b155b1561167057604051639996b31560e01b81526001600160a01b0385166004820152602401610623565b508061069c565b8051156116875780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146116eb575f5ffd5b919050565b5f5f60408385031215611701575f5ffd5b61170a836116d5565b946020939093013593505050565b5f5f5f6060848603121561172a575f5ffd5b611733846116d5565b9250611741602085016116d5565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561178f5761178f611752565b604052919050565b5f67ffffffffffffffff8211156117b0576117b0611752565b50601f01601f191660200190565b5f5f604083850312156117cf575f5ffd5b6117d8836116d5565b9150602083013567ffffffffffffffff8111156117f3575f5ffd5b8301601f81018513611803575f5ffd5b803561181661181182611797565b611766565b81815286602083850101111561182a575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f60208284031215611859575f5ffd5b61069c826116d5565b5f5f5f60608486031215611874575f5ffd5b61187d846116d5565b925061188b602085016116d5565b9150611899604085016116d5565b90509250925092565b5f5f604083850312156118b3575f5ffd5b6118bc836116d5565b91506118ca602084016116d5565b90509250929050565b600181811c908216806118e757607f821691505b60208210810361190557634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121561191b575f5ffd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156104b1576104b1611922565b5f60208284031215611959575f5ffd5b815160ff8116811461069c575f5ffd5b5f60208284031215611979575f5ffd5b815167ffffffffffffffff81111561198f575f5ffd5b8201601f8101841361199f575f5ffd5b80516119ad61181182611797565b8181528560208385010111156119c1575f5ffd5b8160208401602083015e5f91810160200191909152949350505050565b5f81518060208401855e5f93019283525090919050565b6702bb930b83832b2160c51b81525f61069c60088301846119de565b607760f81b81525f61069c60018301846119de565b5f60208284031215611a36575f5ffd5b8151801515811461069c575f5ffd5b808201808211156104b1576104b1611922565b601f821115610bee57805f5260205f20601f840160051c81016020851015611a7d5750805b601f840160051c820191505b818110156111e6575f8155600101611a89565b815167ffffffffffffffff811115611ab657611ab6611752565b611aca81611ac484546118d3565b84611a58565b6020601f821160018114611afc575f8315611ae55750848201515b5f19600385901b1c1916600184901b1784556111e6565b5f84815260208120601f198516915b82811015611b2b5787850151825560209485019460019092019101611b0b565b5084821015611b4857868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f61069c82846119de56fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace003b5a617e0d4c238430871a64fe18212794b0c8d05a4eac064a8c9039fb5e0700360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212209f22938e5f9a633608bb3067827eb11e76cd32bb6191c106da692b072e1e1a3a64736f6c634300081c0033