0 txs
0 calls
constructor
No constructor.
functions
computeTotalAssets
viewfunction computeTotalAssets() view returns (uint256 totalBaseBalance)
convertAssetToBase
viewfunction convertAssetToBase(address asset_, uint256 assets) view returns (uint256 baseAssets)
convertBaseToAsset
viewfunction convertBaseToAsset(address asset_, uint256 baseAssets) view returns (uint256 assets)
convertToAssets
viewfunction convertToAssets(address asset_, uint256 shares, Math.Rounding rounding) view returns (uint256 assets, uint256 baseAssets)
convertToShares
viewfunction convertToShares(address asset_, uint256 assets, Math.Rounding rounding) view returns (uint256, uint256)
events
DeleteAsset
event DeleteAsset(uint256 indexed index, address indexed asset)
NewAsset
event NewAsset(address indexed asset, uint256 decimals, uint256 index)
ProcessSuccess
event ProcessSuccess(address[] targets, uint256[] values, bytes[] data)
SetBuffer
event SetBuffer(address indexed buffer)
SetProcessorRule
event SetProcessorRule(address indexed target, bytes4, (bool isActive, (uint8 paramType, bool isArray, address[] allowList)[] paramRules, address validator))
SetProvider
event SetProvider(address indexed provider)
UpdateAsset
event UpdateAsset(uint256 indexed index, address indexed asset, (bool active) fields)
errors
AddressNotInAllowlist
error AddressNotInAllowlist(address)
AssetNotEmpty
error AssetNotEmpty(address)
BaseAsset
error BaseAsset()
DefaultAsset
error DefaultAsset()
DuplicateAsset
error DuplicateAsset(address asset)
InvalidAsset
error InvalidAsset(address)
InvalidAssetDecimals
error InvalidAssetDecimals(uint256 decimals)
InvalidNativeAssetDecimals
error InvalidNativeAssetDecimals(uint256 decimals)
MathOverflowedMulDiv
error MathOverflowedMulDiv()
ProcessFailed
error ProcessFailed(bytes, bytes)
RuleNotActive
error RuleNotActive(address, bytes4)
ZeroAddress
error ZeroAddress()
creation bytecode
0x612400610035600b8282823980515f1a60731461002957634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe7300000000000000000000000000000000000000003014608060405260043610610127575f3560e01c8063935f5543116100b4578063d8e2cbbd11610079578063d8e2cbbd146102cf578063de23aad0146102f5578063e95c41c314610314578063f38ff3de14610333578063ff37df7214610346575f80fd5b8063935f554314610239578063a2719b8114610258578063b272e8d21461027e578063b9008f011461029d578063cfd8d6c0146102b0575f80fd5b80637c77e8df116100fa5780637c77e8df146101ab5780637eb79b53146101be5780637fa38e51146101df5780638523c787146101f257806388bd3bb31461021a575f80fd5b806315be22881461012b578063343ddaa3146101605780636d00cfdf14610190578063734ab30114610198575b5f80fd5b818015610136575f80fd5b5061014a6101453660046117a5565b610365565b60405161015791906118ed565b60405180910390f35b7fde924653ae91bd33356774e603163bd5862c93462f31acccae5f965be6e6599b5b604051908152602001610157565b6101826105af565b6101826101a6366004611966565b610741565b5f8051602061234b833981519152610182565b8180156101c9575f80fd5b506101dd6101d8366004611990565b610838565b005b6101826101ed366004611966565b610ad2565b6102056102003660046119a7565b610bc2565b60408051928352602083019190915201610157565b818015610225575f80fd5b506101dd6102343660046119f6565b610c89565b818015610244575f80fd5b506101dd610253366004611a38565b610f62565b7f52bb806a772c899365572e319d3d6f49ed2259348d19ab0da8abccd4bd46abb5610182565b818015610289575f80fd5b506101dd610298366004611990565b611004565b5f805160206123ab833981519152610182565b8180156102bb575f80fd5b506101dd6102ca366004611a9d565b61104c565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00610182565b818015610300575f80fd5b506101dd61030f366004611ab8565b6110db565b81801561031f575f80fd5b506101dd61032e366004611a9d565b6111bf565b6102056103413660046119a7565b61123b565b818015610351575f80fd5b506101dd610360366004611990565b6112fd565b6060848067ffffffffffffffff81111561038157610381611791565b6040519080825280602002602001820160405280156103b457816020015b606081526020019060019003908161039f5790505b5091505f5b818110156105675761042e8888838181106103d6576103d6611aed565b90506020020160208101906103eb9190611a9d565b8783815181106103fd576103fd611aed565b602002602001015187878581811061041757610417611aed565b90506020028101906104299190611b01565b61133b565b5f8089898481811061044257610442611aed565b90506020020160208101906104579190611a9d565b6001600160a01b031688848151811061047257610472611aed565b602002602001015188888681811061048c5761048c611aed565b905060200281019061049e9190611b01565b6040516104ac929190611b44565b5f6040518083038185875af1925050503d805f81146104e6576040519150601f19603f3d011682016040523d82523d5f602084013e6104eb565b606091505b50915091508161053f5786868481811061050757610507611aed565b90506020028101906105199190611b01565b8260405163c9e7efc960e01b815260040161053693929190611b7b565b60405180910390fd5b8085848151811061055257610552611aed565b602090810291909101015250506001016103b9565b507fcd6393b052b36b7ebe02f7e5620835c851fefc2d5594c858b836a3d26e73faa98787878560405161059d9493929190611bf1565b60405180910390a15095945050505050565b5f8051602061238b833981519152545f905f805160206123ab83398151915290600160b01b900460ff166105e3575f6105e5565b475b5f8051602061236b8339815191528054604080516020808402820181019092528281529395505f8051602061234b833981519152935f939092909183018282801561065757602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610639575b505083519394505f925050505b81811015610739575f83828151811061067f5761067f611aed565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156106cd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106f19190611c9b565b9050805f036107005750610731565b61072384838151811061071557610715611aed565b602002602001015182610ad2565b61072d9088611cc6565b9650505b600101610664565b505050505090565b5f6001600160a01b0383166107695760405163d92e233d60e01b815260040160405180910390fd5b5f5f805160206123ab833981519152600101546040516337cef79160e01b81526001600160a01b038681166004830152909116906337cef79190602401602060405180830381865afa1580156107c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e59190611c9b565b90506108305f8051602061234b8339815191526001600160a01b0386165f908152602091909152604090206001015461082790610100900460ff16600a611db9565b8490835f61156a565b949350505050565b5f805160206123ab8339815191525f8290036108675760405163aeca768b60e01b815260040160405180910390fd5b8060030154820361088b576040516346e1610f60e11b815260040160405180910390fd5b5f8051602061236b833981519152545f8051602061234b8339815191529083106108ca576040516337bce3c560e11b81525f6004820152602401610536565b5f8160010184815481106108e0576108e0611aed565b5f9182526020822001546040516370a0823160e01b81523060048201526001600160a01b03909116925082906370a0823190602401602060405180830381865afa158015610930573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109549190611c9b565b111561097e57604051631972344d60e21b81526001600160a01b0382166004820152602401610536565b60018083018054909161099091611dc7565b815481106109a0576109a0611aed565b5f918252602090912001546001830180546001600160a01b0390921691869081106109cd576109cd611aed565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555081600101805480610a0b57610a0b611dda565b5f828152602080822083015f1990810180546001600160a01b03191690559092019092556001600160a01b0383168252839052604081209081556001908101805461ffff19169055820154841015610a97575f826001018581548110610a7357610a73611aed565b5f9182526020808320909101546001600160a01b0316825284905260409020859055505b6040516001600160a01b0382169085907f55639b789496f22efbdef4e7ca0ea59a4dfb67efc564dd5b5e8d82ba78be9014905f90a350505050565b5f6001600160a01b038316610afa5760405163d92e233d60e01b815260040160405180910390fd5b5f5f805160206123ab833981519152600101546040516337cef79160e01b81526001600160a01b038681166004830152909116906337cef79190602401602060405180830381865afa158015610b52573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b769190611c9b565b9050610830815f8051602061234b8339815191526001600160a01b0387165f9081526020919091526040902060010154610bb990610100900460ff16600a611db9565b8591905f61156a565b5f805f306001600160a01b031663c02add896040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c01573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c259190611c9b565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02549091505f610c558888610ad2565b90505f610c7a610c66846001611cc6565b610c71866001611cc6565b8491908a61156a565b99919850909650505050505050565b6001600160a01b038316610cb05760405163d92e233d60e01b815260040160405180910390fd5b5f8051602061236b833981519152545f8051602061234b833981519152905f805160206123ab83398151915281158015610cf557506002810154600160b01b900460ff165b8015610d0557508460ff16601214155b15610d28576040516304c4082360e51b815260ff86166004820152602401610536565b81158015610d475750600281015460ff868116600160a81b9092041614155b15610d6a5760405163057735c560e21b815260ff86166004820152602401610536565b8115610de6575f835f015f856001015f81548110610d8a57610d8a611aed565b5f9182526020808320909101546001600160a01b0316835282019290925260400190206001015460ff610100909104811691508616811015610de45760405163057735c560e21b815260ff87166004820152602401610536565b505b5f82118015610e1f5750826001015f81548110610e0557610e05611aed565b5f918252602090912001546001600160a01b038781169116145b15610e485760405163437a40b160e01b81526001600160a01b0387166004820152602401610536565b5f82118015610e6d57506001600160a01b0386165f9081526020849052604090205415155b15610e965760405163437a40b160e01b81526001600160a01b0387166004820152602401610536565b60408051606081018252838152851515602080830191825260ff8981168486018181526001600160a01b038d165f8181528b865288812097518855955160019788018054935161ffff1990941691151561ff0019169190911761010093909516929092029390931790558489018054958601815584529282902090930180546001600160a01b031916841790558351918252810185905290917fd93ca2bf31583ff5850987b8678e801e6d849b96ca359c8214887da8fbfac8e9910160405180910390a2505050505050565b6001600160a01b0383165f9081527f52bb806a772c899365572e319d3d6f49ed2259348d19ab0da8abccd4bd46abb7602090815260408083206001600160e01b03198616845290915290208190610fb98282611fc0565b905050826001600160a01b03167f8bbaf1a6b378451fa824636b7db10623c63a9b03c980c9241a459efb4af8ae0c8383604051610ff792919061213f565b60405180910390a2505050565b5f8051602061238b833981519152545f805160206123ab83398151915290600160b81b900460ff166110485781815f015f8282546110429190611dc7565b90915550505b5050565b6001600160a01b0381166110735760405163d92e233d60e01b815260040160405180910390fd5b7f22cdba5640455d74cb7564fb236bbbbaf66b93a0cc1bd221f1ee2a6b2d0a242880546001600160a01b0319166001600160a01b0383169081179091556040517fbf9f81cf873afb788df682289248b0d3be26bc879544f6d61a4d4f74ad3ddb8b905f90a250565b5f8051602061236b833981519152545f8051602061234b83398151915290831061111a576040516337bce3c560e11b81525f6004820152602401610536565b5f81600101848154811061113057611130611aed565b5f9182526020808320909101546001600160a01b0316808352848252604090922091925061116090850185612257565b60018201805460ff19169115159190911790556040516001600160a01b0383169086907f88b7f981e67c3a837b1f4f5f57e1e6b992ff566e2bfb106903b1da85a6b8449d906111b0908890612272565b60405180910390a35050505050565b6001600160a01b0381166111e65760405163d92e233d60e01b815260040160405180910390fd5b5f8051602061238b83398151915280546001600160a01b0319166001600160a01b0383169081179091556040517f72a78ca3cf4f544c2d012bbd9541ecccc4467d444cf8ed664d8096540a917716905f90a250565b5f805f306001600160a01b031663c02add896040518163ffffffff1660e01b8152600401602060405180830381865afa15801561127a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061129e9190611c9b565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02549091506112e56112d1836001611cc6565b6112dc836001611cc6565b8891908861156a565b92506112f18784610741565b93505050935093915050565b5f8051602061238b833981519152545f805160206123ab83398151915290600160b81b900460ff166110485781815f015f8282546110429190611cc6565b5f611349600482848661228b565b611352916122b2565b90505f73d19c84487847b699ae9eb48de864fc3b9f85231b63a2719b816040518163ffffffff1660e01b8152600401602060405180830381865af415801561139c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113c09190611c9b565b6001600160a01b0387165f908152600291909101602090815260408083206001600160e01b0319861684529091529020805490915060ff1661143057604051630379577d60e21b81526001600160a01b03871660048201526001600160e01b031983166024820152604401610536565b60028101546001600160a01b031680156114aa57604051631edc477360e31b81526001600160a01b0382169063f6e23b9890611476908a908a908a908a906004016122e2565b5f6040518083038186803b15801561148c575f80fd5b505afa15801561149e573d5f803e3d5ffd5b50505050505050611564565b5f5b600183015481101561155f5760018360010182815481106114cf576114cf611aed565b5f91825260209091206002909102015460ff1660018111156114f3576114f3611ea1565b03611557575f8686611506846020611e52565b611511906004611cc6565b61151c92829061228b565b8101906115299190611a9d565b90506115558185600101848154811061154457611544611aed565b905f5260205f2090600202016115b9565b505b6001016114ac565b505050505b50505050565b5f806115778686866115ff565b9050611582836116bf565b801561159d57505f848061159857611598612309565b868809115b156115b0576115ad600182611cc6565b90505b95945050505050565b6001810154158015906115d657506115d482826001016116eb565b155b156110485760405163574fdba560e01b81526001600160a01b0383166004820152602401610536565b5f838302815f1985870982811083820303915050805f036116335783828161162957611629612309565b04925050506116b8565b8084116116535760405163227bc15360e01b815260040160405180910390fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b5f60028260038111156116d4576116d4611ea1565b6116de919061231d565b60ff166001149050919050565b5f805b825481101561173e57836001600160a01b031683828154811061171357611713611aed565b5f918252602090912001546001600160a01b031603611736576001915050611743565b6001016116ee565b505f90505b92915050565b5f8083601f840112611759575f80fd5b50813567ffffffffffffffff811115611770575f80fd5b6020830191508360208260051b850101111561178a575f80fd5b9250929050565b634e487b7160e01b5f52604160045260245ffd5b5f805f805f606086880312156117b9575f80fd5b853567ffffffffffffffff808211156117d0575f80fd5b6117dc89838a01611749565b90975095506020915087820135818111156117f5575f80fd5b8801601f81018a13611805575f80fd5b80358281111561181757611817611791565b8060051b604051601f19603f8301168101818110868211171561183c5761183c611791565b6040529182528281018501918581018d841115611857575f80fd5b938601935b83851015611873578435815293860193860161185c565b509750505050604088013591508082111561188c575f80fd5b5061189988828901611749565b969995985093965092949392505050565b5f81518084525f5b818110156118ce576020818501810151868301820152016118b2565b505f602082860101526020601f19601f83011685010191505092915050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101561194257603f198886030184526119308583516118aa565b94509285019290850190600101611914565b5092979650505050505050565b6001600160a01b0381168114611963575f80fd5b50565b5f8060408385031215611977575f80fd5b82356119828161194f565b946020939093013593505050565b5f602082840312156119a0575f80fd5b5035919050565b5f805f606084860312156119b9575f80fd5b83356119c48161194f565b9250602084013591506040840135600481106119de575f80fd5b809150509250925092565b8015158114611963575f80fd5b5f805f60608486031215611a08575f80fd5b8335611a138161194f565b9250602084013560ff81168114611a28575f80fd5b915060408401356119de816119e9565b5f805f60608486031215611a4a575f80fd5b8335611a558161194f565b925060208401356001600160e01b031981168114611a71575f80fd5b9150604084013567ffffffffffffffff811115611a8c575f80fd5b8401606081870312156119de575f80fd5b5f60208284031215611aad575f80fd5b81356116b88161194f565b5f808284036040811215611aca575f80fd5b833592506020601f1982011215611adf575f80fd5b506020830190509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f808335601e19843603018112611b16575f80fd5b83018035915067ffffffffffffffff821115611b30575f80fd5b60200191503681900382131561178a575f80fd5b818382375f9101908152919050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b604081525f611b8e604083018587611b53565b8281036020840152611ba081856118aa565b9695505050505050565b8183525f60208085019450825f5b85811015611be6578135611bcb8161194f565b6001600160a01b031687529582019590820190600101611bb8565b509495945050505050565b606081525f611c04606083018688611baa565b8281036020848101919091528551808352868201928201905f5b81811015611c3a57845183529383019391830191600101611c1e565b5050848103604086015285518082528282019350600581901b820183018388015f5b83811015611c8a57601f19858403018752611c788383516118aa565b96860196925090850190600101611c5c565b50909b9a5050505050505050505050565b5f60208284031215611cab575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561174357611743611cb2565b600181815b80851115611d1357815f1904821115611cf957611cf9611cb2565b80851615611d0657918102915b93841c9390800290611cde565b509250929050565b5f82611d2957506001611743565b81611d3557505f611743565b8160018114611d4b5760028114611d5557611d71565b6001915050611743565b60ff841115611d6657611d66611cb2565b50506001821b611743565b5060208310610133831016604e8410600b8410161715611d94575081810a611743565b611d9e8383611cd9565b805f1904821115611db157611db1611cb2565b029392505050565b5f6116b860ff841683611d1b565b8181038181111561174357611743611cb2565b634e487b7160e01b5f52603160045260245ffd5b5f808335601e19843603018112611e03575f80fd5b83018035915067ffffffffffffffff821115611e1d575f80fd5b6020019150600581901b360382131561178a575f80fd5b5f8235605e19833603018112611e48575f80fd5b9190910192915050565b808202811582820484141761174357611743611cb2565b80545f8255801561104857815f5260205f208181015b80821015611564575f8255600182019150611e7f565b60028110611963575f80fd5b634e487b7160e01b5f52602160045260245ffd5b8135611ec081611e95565b60028110611edc57634e487b7160e01b5f52602160045260245ffd5b815460ff821691508160ff198216178355602080850135611efc816119e9565b61ffff199290921690921790151560081b61ff001617825560019081830190611f286040860186611dee565b67ffffffffffffffff811115611f4057611f40611791565b600160401b811115611f5457611f54611791565b835481855580821015611f87575f858152602090208281019082015b80821015611f84575f825590870190611f70565b50505b505f93845260208420935b8181101561155f578235611fa58161194f565b85820155918301918501611f92565b5f81356117438161194f565b8135611fcb816119e9565b815490151560ff1660ff199190911617815560018082016020611ff085820186611dee565b600160401b81111561200457612004611791565b835481855580821015612076576001600160ff1b03818116821461202a5761202a611cb2565b808316831461203b5761203b611cb2565b50845f5260205f208160011b81018360011b820191505b80821015612073575f8255612068888301611e69565b600282019150612052565b50505b505f938452602084209382905b828110156120b05761209e6120988386611e34565b87611eb5565b60029590950194908401908601612083565b505050505050506110486120c660408401611fb4565b6002830180546001600160a01b0319166001600160a01b0392909216919091179055565b5f808335601e198436030181126120ff575f80fd5b830160208101925035905067ffffffffffffffff81111561211e575f80fd5b8060051b360382131561178a575f80fd5b803561213a8161194f565b919050565b5f604063ffffffff60e01b85168352602060408185015260a084018535612165816119e9565b15156040860152612178868301876120ea565b60608060608901528382855260c08901905060c08360051b8a01019450835f5b8481101561222f578a870360bf19018352813536879003605e190181126121bd575f80fd5b860180356121ca81611e95565b600281106121e657634e487b7160e01b5f52602160045260245ffd5b8852808901356121f5816119e9565b1515888a0152612207818b01826120ea565b9150858b8a015261221b868a018383611baa565b985050509187019190870190600101612198565b5050505050506122416040870161212f565b6001600160a01b03811660808701529250611ba0565b5f60208284031215612267575f80fd5b81356116b8816119e9565b602081018235612281816119e9565b1515909152919050565b5f8085851115612299575f80fd5b838611156122a5575f80fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156122da5780818660040360031b1b83161692505b505092915050565b60018060a01b0385168152836020820152606060408201525f611ba0606083018486611b53565b634e487b7160e01b5f52601260045260245ffd5b5f60ff83168061233b57634e487b7160e01b5f52601260045260245ffd5b8060ff8416069150509291505056fe2dd192a2474c87efcf5ffda906a4b4f8a678b0e41f9245666251cfed8041e6802dd192a2474c87efcf5ffda906a4b4f8a678b0e41f9245666251cfed8041e68122cdba5640455d74cb7564fb236bbbbaf66b93a0cc1bd221f1ee2a6b2d0a242922cdba5640455d74cb7564fb236bbbbaf66b93a0cc1bd221f1ee2a6b2d0a2427a2646970667358221220832f64b49001fc59024f6ab85dd24110284a5943d2aeb99d814bf54bc608014c64736f6c63430008180033