0 txs
2 calls
constructor
constructor()
functions
authority
viewfunction authority() view returns (address)
CALLBACK_SUCCESS
viewfunction CALLBACK_SUCCESS() view returns (bytes32)
flashFee
viewfunction flashFee(address token, uint256 amount) view returns (uint256)
flashLoanFeeRecipient
viewfunction flashLoanFeeRecipient() view returns (address)
isConsumingScheduledOp
viewfunction isConsumingScheduledOp() view returns (bytes4)
maxFlashLoan
viewfunction maxFlashLoan(address token) view returns (uint256)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
tokenMap
viewfunction tokenMap(address) view returns (uint256 maxBorrowable, uint16 feesRate, bool isActive)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
accrueInterestToFeeRecipient
nonpayablefunction accrueInterestToFeeRecipient(address[] tokens) returns (uint256[] balances)
flashLoan
nonpayablefunction flashLoan(address receiver, address token, uint256 amount, bytes data) returns (bool)
initialize
nonpayablefunction initialize(address _accessManager, address _flashLoanFeeRecipient)
setAuthority
nonpayablefunction setAuthority(address newAuthority)
setFlashLoanFeeRecipient
nonpayablefunction setFlashLoanFeeRecipient(address _newFlashLoanFeeRecipient)
setFlashLoanParameters
nonpayablefunction setFlashLoanParameters(address _token, uint16 _feesRate, uint256 _maxBorrowable, bool _isActive)
toggleActiveToken
nonpayablefunction toggleActiveToken(address _token)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
ActiveTokenToggled
event ActiveTokenToggled(address token, bool isActive)
AuthorityUpdated
event AuthorityUpdated(address authority)
FlashLoan
event FlashLoan(address token, uint256 amount, address receiver)
FlashLoanFeeRecipientUpdated
event FlashLoanFeeRecipientUpdated(address newFlashLoanFeeRecipient)
FlashLoanParametersUpdated
event FlashLoanParametersUpdated(address token, uint16 feesRate, uint256 maxBorrowable, bool isActive)
Initialized
event Initialized(uint64 version)
Upgraded
event Upgraded(address indexed implementation)
errors
AccessManagedInvalidAuthority
error AccessManagedInvalidAuthority(address authority)
AccessManagedRequiredDelay
error AccessManagedRequiredDelay(address caller, uint32 delay)
AccessManagedUnauthorized
error AccessManagedUnauthorized(address caller)
AddressEmptyCode
error AddressEmptyCode(address target)
AddressZero
error AddressZero()
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
FailedCall
error FailedCall()
InvalidInitialization
error InvalidInitialization()
InvalidReturnMessage
error InvalidReturnMessage()
MaxFeesRateExceeded
error MaxFeesRateExceeded()
NotInitializing
error NotInitializing()
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
TooBigAmount
error TooBigAmount()
UnsupportedToken
error UnsupportedToken()
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60a060405230608052348015610013575f5ffd5b507ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff1615906001600160401b03165f8115801561005d5750825b90505f826001600160401b031660011480156100785750303b155b905081158015610086575080155b156100a45760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b031916600117855583156100d257845460ff60401b1916680100000000000000001785555b831561011857845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505060805161203e6101435f395f8181610fa701528181610fd00152611186015261203e5ff3fe608060405260043610610108575f3560e01c80638237e538116100a1578063b914cc6411610071578063bf86304511610057578063bf863045146103b2578063c33a8769146103d1578063d9d98ce4146103fd575f5ffd5b8063b914cc6414610357578063bf7e214f14610376575f5ffd5b80638237e538146102545780638fb3603714610287578063a16e5112146102cc578063ad3cb1cc14610302575f5ffd5b80635c83afd8116100dc5780635c83afd8146101c85780635cffe9de146101e7578063613255ab146102165780637a9e5e4b14610235575f5ffd5b80624aca6e1461010c578063485cc955146101725780634f1ef2861461019357806352d1902d146101a6575b5f5ffd5b348015610117575f5ffd5b5061014d610126366004611ab2565b600160208190525f9182526040909120805491015461ffff81169062010000900460ff1683565b6040805193845261ffff90921660208401521515908201526060015b60405180910390f35b34801561017d575f5ffd5b5061019161018c366004611acd565b61041c565b005b6101916101a1366004611b31565b61065d565b3480156101b1575f5ffd5b506101ba61067c565b604051908152602001610169565b3480156101d3575f5ffd5b506101916101e2366004611c05565b6106aa565b3480156101f2575f5ffd5b50610206610201366004611c5b565b6107be565b6040519015158152602001610169565b348015610221575f5ffd5b506101ba610230366004611ab2565b610ad8565b348015610240575f5ffd5b5061019161024f366004611ab2565b610b25565b34801561025f575f5ffd5b506101ba7f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd981565b348015610292575f5ffd5b5061029b610c08565b6040517fffffffff000000000000000000000000000000000000000000000000000000009091168152602001610169565b3480156102d7575f5ffd5b505f546102ea906001600160a01b031681565b6040516001600160a01b039091168152602001610169565b34801561030d575f5ffd5b5061034a6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6040516101699190611cf4565b348015610362575f5ffd5b50610191610371366004611ab2565b610c7b565b348015610381575f5ffd5b507ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00546001600160a01b03166102ea565b3480156103bd575f5ffd5b506101916103cc366004611ab2565b610d30565b3480156103dc575f5ffd5b506103f06103eb366004611d29565b610dc9565b6040516101699190611d9a565b348015610408575f5ffd5b506101ba610417366004611ddc565b610f10565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f811580156104665750825b90505f8267ffffffffffffffff1660011480156104825750303b155b905081158015610490575080155b156104c7576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156105285784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6001600160a01b038716610568576040517f9fabe1c100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0386166105a8576040517f9fabe1c100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105b0610f7e565b6105b8610f7e565b6105c187610f88565b5f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03881617905583156106545784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b610665610f9c565b61066e8261106c565b6106788282611075565b5050565b5f61068561117b565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b6106b6335b5f366111dd565b6127108361ffff1611156106f6576040517f0d058af500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080516060808201835284825261ffff86811660208085018281528715158688018181526001600160a01b038d165f8181526001808752908b902099518a5593519890930180549151151562010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000090921698909616979097179690961790935585519283528201529283018590528201527f70caeb09267f2e4536beafe0789538691f159135003a0c0f377e7d598f2f03c19060800160405180910390a150505050565b5f6107c76113a1565b6001600160a01b0385165f9081526001602081905260409091200154859062010000900460ff16610824576040517f6a17288200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f61082f8787611427565b6001600160a01b0388165f90815260016020526040902054909150861115610883576040517ff7432d9600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b038981166004830152602482018890528816906340c10f19906044015f604051808303815f87803b1580156108e3575f5ffd5b505af11580156108f5573d5f5f3e3d5ffd5b50506040517f23e30c8b0000000000000000000000000000000000000000000000000000000081527f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd992506001600160a01b038b1691506323e30c8b9061096a9033908c908c9088908d908d90600401611e2f565b6020604051808303815f875af1158015610986573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109aa9190611e78565b146109e1576040517fee418e3700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a0288306109f0848a611e8f565b6001600160a01b038b16929190611458565b6040517f2b471d8e000000000000000000000000000000000000000000000000000000008152600481018790523060248201526001600160a01b03881690632b471d8e906044015f604051808303815f87803b158015610a60575f5ffd5b505af1158015610a72573d5f5f3e3d5ffd5b5050604080516001600160a01b038b81168252602082018b90528c168183015290517f5931a93eeea518d0bc5077cf5bc1c1862e0277a160701fec6383d09edf305fbd9350908190036060019150a1600192505050610acf6114da565b95945050505050565b6001600160a01b0381165f9081526001602081905260408220015462010000900460ff16610b06575f610b1f565b6001600160a01b0382165f908152600160205260409020545b92915050565b33610b577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00546001600160a01b031690565b6001600160a01b0316816001600160a01b031614610bb1576040517f068ca9d80000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201526024015b60405180910390fd5b816001600160a01b03163b5f03610bff576040517fc2f31e5e0000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610ba8565b61067882611504565b7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0080545f919074010000000000000000000000000000000000000000900460ff16610c53575f610c75565b7f8fb36037000000000000000000000000000000000000000000000000000000005b91505090565b610c84336106af565b6001600160a01b038116610cc4576040517f9fabe1c100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527f4e6bfe5db9fcde78581b4a443f11ab73a9b8450ee4a783b4be4e143f4bd461ea906020015b60405180910390a150565b610d39336106af565b6001600160a01b0381165f81815260016020818152604092839020909101805460ff6201000080830482161581027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff909316929092179283905584519586529104161515908301527fc60e97bd3038424fbc43b39c5b549c265bedace2864021f05c7be92636fb71ff9101610d25565b60608167ffffffffffffffff811115610de457610de4611b04565b604051908082528060200260200182016040528015610e0d578160200160208202803683370190505b5090505f5b82811015610f09575f848483818110610e2d57610e2d611ec7565b9050602002016020810190610e429190611ab2565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529091505f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610ea2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec69190611e78565b905080848481518110610edb57610edb611ec7565b60209081029190910101525f54610eff906001600160a01b0384811691168361158f565b5050600101610e12565b5092915050565b6001600160a01b0382165f90815260016020819052604082200154839062010000900460ff16610f6c576040517f6a17288200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f768484611427565b949350505050565b610f866115c0565b565b610f906115c0565b610f9981611627565b50565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061103557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166110297f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b15610f86576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f99336106af565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156110cf575060408051601f3d908101601f191682019092526110cc91810190611e78565b60015b611110576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610ba8565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc811461116c576040517faa1d49a400000000000000000000000000000000000000000000000000000000815260048101829052602401610ba8565b6111768383611638565b505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f86576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005f806112516112347ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00546001600160a01b031690565b873061124360045f8a8c611ef4565b61124c91611f1b565b61168d565b91509150816113995763ffffffff81161561135c5782547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001783556112d47ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00546001600160a01b031690565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b815260040161130393929190611f80565b5f604051808303815f87803b15801561131a575f5ffd5b505af115801561132c573d5f5f3e3d5ffd5b505084547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff168555506113999050565b6040517f068ca9d80000000000000000000000000000000000000000000000000000000081526001600160a01b0387166004820152602401610ba8565b505050505050565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c156113fa576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f8660017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005b906117db565b6001600160a01b0382165f9081526001602081905260408220015461145190839061ffff166117e2565b9392505050565b6040516001600160a01b0384811660248301528381166044830152606482018390526114d49186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611821565b50505050565b610f865f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00611421565b7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0080546001600160a01b0383167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b6040516001600160a01b0383811660248301526044820183905261117691859182169063a9059cbb9060640161148d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16610f86576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61162f6115c0565b610f9981611504565b611641826118a6565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a280511561168557611176828261194d565b6106786119b6565b6040516001600160a01b03848116602483015283811660448301527fffffffff00000000000000000000000000000000000000000000000000000000831660648301525f9182918291829189169060840160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb700961300000000000000000000000000000000000000000000000000000000179052516117419190611fa2565b5f60405180830381855afa9150503d805f8114611779576040519150601f19603f3d011682016040523d82523d5f602084013e61177e565b606091505b509150915081156117d05760408151106117b057808060200190518101906117a69190611fb8565b90945092506117d0565b60208151106117d057808060200190518101906117cd9190611fed565b93505b505094509492505050565b80825d5050565b5f817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec77048311820215611813575f5ffd5b506127109102611388010490565b5f5f60205f8451602086015f885af180611840576040513d5f823e3d81fd5b50505f513d91508115611857578060011415611864565b6001600160a01b0384163b155b156114d4576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610ba8565b806001600160a01b03163b5f036118f4576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b0382166004820152602401610ba8565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60605f5f846001600160a01b0316846040516119699190611fa2565b5f60405180830381855af49150503d805f81146119a1576040519150601f19603f3d011682016040523d82523d5f602084013e6119a6565b606091505b5091509150610acf8583836119ee565b3415610f86576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606082611a03576119fe82611a5c565b611451565b8151158015611a1a57506001600160a01b0384163b155b15610f09576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610ba8565b805115611a6c5780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0381168114610f99575f5ffd5b5f60208284031215611ac2575f5ffd5b813561145181611a9e565b5f5f60408385031215611ade575f5ffd5b8235611ae981611a9e565b91506020830135611af981611a9e565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f5f60408385031215611b42575f5ffd5b8235611b4d81611a9e565b9150602083013567ffffffffffffffff811115611b68575f5ffd5b8301601f81018513611b78575f5ffd5b803567ffffffffffffffff811115611b9257611b92611b04565b604051601f19603f601f19601f8501160116810181811067ffffffffffffffff82111715611bc257611bc2611b04565b604052818152828201602001871015611bd9575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b8015158114610f99575f5ffd5b5f5f5f5f60808587031215611c18575f5ffd5b8435611c2381611a9e565b9350602085013561ffff81168114611c39575f5ffd5b9250604085013591506060850135611c5081611bf8565b939692955090935050565b5f5f5f5f5f60808688031215611c6f575f5ffd5b8535611c7a81611a9e565b94506020860135611c8a81611a9e565b935060408601359250606086013567ffffffffffffffff811115611cac575f5ffd5b8601601f81018813611cbc575f5ffd5b803567ffffffffffffffff811115611cd2575f5ffd5b886020828401011115611ce3575f5ffd5b959894975092955050506020019190565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f5f60208385031215611d3a575f5ffd5b823567ffffffffffffffff811115611d50575f5ffd5b8301601f81018513611d60575f5ffd5b803567ffffffffffffffff811115611d76575f5ffd5b8560208260051b8401011115611d8a575f5ffd5b6020919091019590945092505050565b602080825282518282018190525f918401906040840190835b81811015611dd1578351835260209384019390920191600101611db3565b509095945050505050565b5f5f60408385031215611ded575f5ffd5b8235611df881611a9e565b946020939093013593505050565b81835281816020850137505f602082840101525f6020601f19601f840116840101905092915050565b6001600160a01b03871681526001600160a01b038616602082015284604082015283606082015260a060808201525f611e6c60a083018486611e06565b98975050505050505050565b5f60208284031215611e88575f5ffd5b5051919050565b80820180821115610b1f577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f5f85851115611f02575f5ffd5b83861115611f0e575f5ffd5b5050820193919092039150565b80357fffffffff000000000000000000000000000000000000000000000000000000008116906004841015610f09577fffffffff00000000000000000000000000000000000000000000000000000000808560040360031b1b82161691505092915050565b6001600160a01b0384168152604060208201525f610acf604083018486611e06565b5f82518060208501845e5f920191825250919050565b5f5f60408385031215611fc9575f5ffd5b8251611fd481611bf8565b602084015190925063ffffffff81168114611af9575f5ffd5b5f60208284031215611ffd575f5ffd5b815161145181611bf856fea26469706673582212205ffa64803dd8fec60c6886aa8d1b78d25cc8793729ea786ba7f3fa1d85e2e71f64736f6c634300081c0033