0 txs
145 calls
constructor
constructor(address _registry, address _balancerVaultExplorer)
functions
accessController
viewfunction accessController() view returns (address)
balancerVaultExplorer
viewfunction balancerVaultExplorer() view returns (address)
feeApr
viewfunction feeApr() view returns (uint256)
feeAprFilterInitialized
viewfunction feeAprFilterInitialized() view returns (bool)
getAddressId
viewfunction getAddressId() view returns (address)
getAprId
viewfunction getAprId() view returns (bytes32)
getSystemRegistry
viewfunction getSystemRegistry() view returns (address)
lastSnapshotTimestamp
viewfunction lastSnapshotTimestamp() view returns (uint256)
lastVirtualPrice
viewfunction lastVirtualPrice() view returns (uint256)
lstStats
viewfunction lstStats(uint256) view returns (address)
numTokens
viewfunction numTokens() view returns (uint256)
poolAddress
viewfunction poolAddress() view returns (address)
reserveTokens
viewfunction reserveTokens(uint256) view returns (address)
shouldSnapshot
viewfunction shouldSnapshot() view returns (bool)
current
nonpayablefunction current() returns (tuple)
initialize
nonpayablefunction initialize(bytes32[] dependentAprIds, bytes initData)
snapshot
nonpayablefunction snapshot()
events
DexSnapshotTaken
event DexSnapshotTaken(uint256 snapshotTimestamp, uint256 priorFeeApr, uint256 newFeeApr, uint256 unfilteredFeeApr)
Initialized
event Initialized(uint8 version)
errors
ArrayLengthMismatch
error ArrayLengthMismatch(uint256 length1, uint256 length2, string details)
CalculatorAssetMismatch
error CalculatorAssetMismatch(bytes32 aprId, address calculator, address coin)
IncorrectTimestamps
error IncorrectTimestamps()
InvalidAddress
error InvalidAddress(address addr)
InvalidConfiguration
error InvalidConfiguration()
InvalidParam
error InvalidParam(string paramName)
MissingRole
error MissingRole(bytes32 role, address user)
NoSnapshotTaken
error NoSnapshotTaken()
UndefinedAddress
error UndefinedAddress()
ZeroAddress
error ZeroAddress(string paramName)
ZeroDivisor
error ZeroDivisor()
creation bytecode
0x60e060405234801562000010575f80fd5b506040516200265838038062002658833981016040819052620000339162000282565b81818180816001600160a01b031663bc43cbaf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000074573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200009a9190620002bf565b6001600160a01b038116620000c257604051630cbe126f60e11b815260040160405180910390fd5b6001600160a01b031660805260408051808201909152600f81526e5f73797374656d526567697374727960881b60208201526200010190829062000175565b6001600160a01b031660a05262000117620001ae565b506200015f816040518060400160405280601681526020017f5f62616c616e6365725661756c744578706c6f726572000000000000000000008152506200017560201b60201c565b6001600160a01b031660c0525062000332915050565b6001600160a01b038216620001aa578060405163eac0d38960e01b8152600401620001a19190620002e4565b60405180910390fd5b5050565b5f54610100900460ff1615620002175760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401620001a1565b5f5460ff908116101562000268575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200027f575f80fd5b50565b5f806040838503121562000294575f80fd5b8251620002a1816200026a565b6020840151909250620002b4816200026a565b809150509250929050565b5f60208284031215620002d0575f80fd5b8151620002dd816200026a565b9392505050565b5f602080835283518060208501525f5b818110156200031257858101830151858201604001528201620002f4565b505f604082860101526040601f19601f8301168501019250505092915050565b60805160a05160c0516122d1620003875f395f818161018a015281816103ce01528181610e9a0152610fd001525f818161025e015281816105120152610aa301525f818161020c015261106601526122d15ff3fe608060405234801561000f575f80fd5b5060043610610106575f3560e01c8063947fbd981161009e578063bc43cbaf1161006e578063bc43cbaf14610207578063ca08c6631461022e578063cbd0a0cd14610241578063d031370b14610249578063f12baf5c1461025c575f80fd5b8063947fbd98146101be5780639711715a146101e15780639fa6a6e3146101e9578063a29ed410146101fe575f80fd5b80633635e2d5116100d95780633635e2d51461017c57806357e3da83146101855780636f660492146101ac5780638e499bcf146101b5575f80fd5b80630a4df6171461010a5780631755ff2114610121578063243a6cdf146101515780632b5663ec14610166575b5f80fd5b6005545b6040519081526020015b60405180910390f35b5f54610139906201000090046001600160a01b031681565b6040516001600160a01b039091168152602001610118565b61016461015f366004611762565b610282565b005b5f546201000090046001600160a01b0316610139565b61010e60035481565b6101397f000000000000000000000000000000000000000000000000000000000000000081565b61010e60025481565b61010e60015481565b5f546101d190600160b01b900460ff1681565b6040519015158152602001610118565b6101646109fa565b6101f1610a98565b6040516101189190611910565b61010e60045481565b6101397f000000000000000000000000000000000000000000000000000000000000000081565b61013961023c366004611a0e565b610d61565b6101d1610d89565b610139610257366004611a0e565b610dc5565b7f0000000000000000000000000000000000000000000000000000000000000000610139565b5f54610100900460ff16158080156102a057505f54600160ff909116105b806102b95750303b1580156102b957505f5460ff166001145b6103215760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff191660011790558015610342575f805461ff0019166101001790555b5f828060200190518101906103579190611b34565b805160408051808201909152601081526f646174612e706f6f6c4164647265737360801b60208201529192509061038f908290610dd4565b5f80546001600160a01b0383811662010000810262010000600160b01b03199093169290921783556040516333a18c3560e21b815260048101929092527f0000000000000000000000000000000000000000000000000000000000000000169063ce8630d49060240161016060405180830381865afa158015610414573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104389190611c1d565b9050610448836020015182610e01565b5f610451610e6d565b5090505f81519050610489816040518060400160405280600e81526020016d6c6f63616c4e756d546f6b656e7360901b815250610f11565b806001819055506104b481895160405180606001604052806025815260200161227760259139610f33565b5f5460408051602080820183905260086060830152673130b630b731b2b960c11b608080840191909152620100009094046001600160a01b0316828401528251808303909401845260a090910190915281519101206005819055505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632fd784fe6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561056c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105909190611c38565b9050816001600160401b038111156105aa576105aa611601565b6040519080825280602002602001820160405280156105d3578160200160208202803683370190505b5080516105e8916006916020909101906114dc565b506001546001600160401b0381111561060357610603611601565b60405190808252806020026020018201604052801561062c578160200160208202803683370190505b508051610641916007916020909101906114dc565b505f5b82811015610998575f8a828151811061065f5761065f611c5a565b602002602001015190505f85838151811061067c5761067c611c5a565b602002602001015190506106b6826040518060400160405280600e81526020016d19195c195b99195b9d105c1c925960921b815250610f59565b6040805160048152602481019091526020810180516001600160e01b031663313ce56760e01b1790525f906106f5906001600160a01b03841690610f79565b905080515f0361072357604051634726455360e11b81526001600160a01b0383166004820152602401610318565b816007858154811061073757610737611c5a565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550604051602001610791906020808252600b908201526a1393d3d417d0541497d25160aa1b604082015260600190565b60405160208183030381529060405280519060200120831461098a5760405163e46df75760e01b8152600481018490525f906001600160a01b0387169063e46df75790602401602060405180830381865afa1580156107f2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108169190611c38565b90508a60400151858151811061082e5761082e611c5a565b60200260200101511561089e57826001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610877573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061089b9190611c38565b92505b826001600160a01b0316816001600160a01b0316632b5663ec6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109089190611c38565b6001600160a01b0316146109495760405163032f97c960e31b8152600481018590526001600160a01b03808316602483015284166044820152606401610318565b806006868154811061095d5761095d611c5a565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550505b505050806001019050610644565b50426002556109a5610fa7565b6003555050841593506109f592505050575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b610a247fb24d60b8ec6e13b591c36c81b8ba9e01422aace0ada340f101db25935eac6d943361103e565b610a69576040516301d4003760e61b81527fb24d60b8ec6e13b591c36c81b8ba9e01422aace0ada340f101db25935eac6d946004820152336024820152604401610318565b610a71610d89565b610a8e5760405163e80707e160e01b815260040160405180910390fd5b610a966110d1565b565b610aa061153f565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f3c274f76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610afd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b219190611c38565b6001549091505f816001600160401b03811115610b4057610b40611601565b604051908082528060200260200182016040528015610b69578160200160208202803683370190505b5090505f826001600160401b03811115610b8557610b85611601565b604051908082528060200260200182016040528015610bbe57816020015b610bab61159d565b815260200190600190039081610ba35790505b5090505f80610bcb610e6d565b915091505f5b85811015610cfc57610c1687848381518110610bef57610bef611c5a565b6020026020010151848481518110610c0957610c09611c5a565b6020026020010151611195565b858281518110610c2857610c28611c5a565b6020026020010181815250505f60068281548110610c4857610c48611c5a565b5f918252602090912001546001600160a01b031690508015610cf3575f816001600160a01b0316639fa6a6e36040518163ffffffff1660e01b81526004016101c0604051808303815f875af1158015610ca3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc79190611c82565b90505f81602001818152505080868481518110610ce657610ce6611c5a565b6020026020010181905250505b50600101610bd1565b50610d306040518060a001604052805f81526020016060815260200160608152602001606081526020015f60ff1681525090565b6040805160a08101825260025481526004546020820152908101959095526060850152505060808201529392505050565b60068181548110610d70575f80fd5b5f918252602090912001546001600160a01b0316905081565b5f8054600160b01b900460ff1615610db45762015180600254610dac9190611d3d565b421015905090565b62069780600254610dac9190611d3d565b60078181548110610d70575f80fd5b6001600160a01b038216610dfd578060405163eac0d38960e01b81526004016103189190611d9d565b5050565b80604051602001610e129190611daf565b6040516020818303038152906040528051906020012082604051602001610e399190611daf565b6040516020818303038152906040528051906020012014610dfd5760405163c52a9bd360e01b815260040160405180910390fd5b5f546040516333f0703b60e11b8152620100009091046001600160a01b03908116600483015260609182917f000000000000000000000000000000000000000000000000000000000000000016906367e0e076906024015f60405180830381865afa158015610ede573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f059190810190611f8d565b50919491935090915050565b815f03610dfd5780604051634389d5ab60e01b81526004016103189190611d9d565b8183146109f5578282826040516358da50eb60e01b815260040161031893929190612091565b81610dfd5780604051634389d5ab60e01b81526004016103189190611d9d565b6060610f9e838360405180606001604052806025815260200161225260259139611290565b90505b92915050565b5f8054604051634f037ee760e01b8152620100009091046001600160a01b0390811660048301527f00000000000000000000000000000000000000000000000000000000000000001690634f037ee790602401602060405180830381865afa158015611015573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061103991906120af565b905090565b604051632474521560e21b8152600481018390526001600160a01b0382811660248301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906391d1485490604401602060405180830381865afa1580156110ad573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f9e91906120c6565b5f6110da610fa7565b90505f4290505f6110f16002546003548486611304565b5f805491925090600160b01b900460ff16156111235761111c67016345785d8a0000600454846113b1565b9050611138565b505f805460ff60b01b1916600160b01b179055805b6004546040805185815260208101929092528101829052606081018390527f76aeb9d52de553700d9e326d79a60a21a5c85a31b911c644bdce2ab973a00bda9060800160405180910390a160029290925550600391909155600455565b5f80836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111f791906120df565b61120290600a6121df565b6040516334ff2eeb60e01b81526001600160a01b03868116600483015291925082918591908816906334ff2eeb906024016020604051808303815f875af115801561124f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061127391906120af565b61127d91906121ed565b6112879190612204565b95945050505050565b60605f80856001600160a01b0316856040516112ac9190612223565b5f60405180830381855afa9150503d805f81146112e4576040519150601f19603f3d011682016040523d82523d5f602084013e6112e9565b606091505b50915091506112fa8683838761143f565b9695505050505050565b5f835f0361132557604051631071d4d360e11b815260040160405180910390fd5b8483116113455760405163218f7e0d60e21b815260040160405180910390fd5b83821161135357505f6113a9565b5f670de0b6b3a76400008561136885836121ed565b6113729190612204565b61137c919061223e565b90505f611389878661223e565b90508061139a6301e13380846121ed565b6113a49190612204565b925050505b949350505050565b5f670de0b6b3a76400008411806113c6575083155b156113fc57604051634389d5ab60e01b8152602060048201526005602482015264616c70686160d81b6044820152606401610318565b670de0b6b3a764000061140f85846121ed565b61142186670de0b6b3a764000061223e565b61142b90866121ed565b6114359190611d3d565b6113a99190612204565b606083156114ad5782515f036114a6576001600160a01b0385163b6114a65760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610318565b50816113a9565b6113a983838151156114c25781518083602001fd5b8060405162461bcd60e51b81526004016103189190611d9d565b828054828255905f5260205f2090810192821561152f579160200282015b8281111561152f57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906114fa565b5061153b9291506115ce565b5090565b6040518060a001604052805f81526020015f8152602001606081526020016115906040518060a001604052805f81526020016060815260200160608152602001606081526020015f60ff1681525090565b8152602001606081525090565b6040518060a001604052805f81526020015f81526020015f81526020016115c26115e2565b81525f60209091015290565b5b8082111561153b575f81556001016115cf565b604051806101400160405280600a906020820280368337509192915050565b634e487b7160e01b5f52604160045260245ffd5b60405161016081016001600160401b038111828210171561163857611638611601565b60405290565b604051606081016001600160401b038111828210171561163857611638611601565b60405160a081016001600160401b038111828210171561163857611638611601565b60405161014081016001600160401b038111828210171561163857611638611601565b604051601f8201601f191681016001600160401b03811182821017156116cd576116cd611601565b604052919050565b5f6001600160401b038211156116ed576116ed611601565b5060051b60200190565b5f82601f830112611706575f80fd5b81356001600160401b0381111561171f5761171f611601565b611732601f8201601f19166020016116a5565b818152846020838601011115611746575f80fd5b816020850160208301375f918101602001919091529392505050565b5f8060408385031215611773575f80fd5b82356001600160401b0380821115611789575f80fd5b818501915085601f83011261179c575f80fd5b813560206117b16117ac836116d5565b6116a5565b82815260059290921b840181019181810190898411156117cf575f80fd5b948201945b838610156117ed578535825294820194908201906117d4565b96505086013592505080821115611802575f80fd5b5061180f858286016116f7565b9150509250929050565b5f815180845260208085019450602084015f5b838110156118485781518752958201959082019060010161182c565b509495945050505050565b5f815180845260208085019450602084015f5b8381101561184857815164ffffffffff1687529582019590820190600101611866565b5f8151808452602080850194508084015f5b8381101561184857815180518852838101518489015260408082015190890152606080820151908901905f5b600a8110156118e957815162ffffff16835291860191908601906001016118c7565b5050506080015164ffffffffff166101a08801526101c0909601959082019060010161189b565b5f6020808352835181840152808401516040840152604084015160a0606085015261193e60c0850182611819565b90506060850151601f198086840301608087015260a08301825184528483015160a08686015281815180845260c08701915087830193505f92505b808310156119a25783516001600160a01b03168252928701926001929092019190870190611979565b506040850151965085810360408701526119bc8188611819565b9650505050606082015183850360608501526119d88582611853565b945050608082015191506119f1608084018360ff169052565b60808701519250808685030160a087015250506112878282611889565b5f60208284031215611a1e575f80fd5b5035919050565b6001600160a01b0381168114611a39575f80fd5b50565b8051611a4781611a25565b919050565b80518015158114611a47575f80fd5b5f6101608284031215611a6c575f80fd5b611a74611615565b9050611a7f82611a4c565b8152611a8d60208301611a4c565b6020820152611a9e60408301611a4c565b6040820152611aaf60608301611a4c565b6060820152611ac060808301611a4c565b6080820152611ad160a08301611a4c565b60a0820152611ae260c08301611a4c565b60c0820152611af360e08301611a4c565b60e0820152610100611b06818401611a4c565b90820152610120611b18838201611a4c565b90820152610140611b2a838201611a3c565b9082015292915050565b5f6020808385031215611b45575f80fd5b82516001600160401b0380821115611b5b575f80fd5b908401906101a08287031215611b6f575f80fd5b611b7761163e565b8251611b8281611a25565b8152611b9087848601611a5b565b8482015261018083015182811115611ba6575f80fd5b80840193505086601f840112611bba575f80fd5b82519150611bca6117ac836116d5565b82815260059290921b83018401918481019088841115611be8575f80fd5b938501935b83851015611c0d57611bfe85611a4c565b82529385019390850190611bed565b6040830152509695505050505050565b5f6101608284031215611c2e575f80fd5b610f9e8383611a5b565b5f60208284031215611c48575f80fd5b8151611c5381611a25565b9392505050565b634e487b7160e01b5f52603260045260245ffd5b805164ffffffffff81168114611a47575f80fd5b5f6101c08284031215611c93575f80fd5b611c9b611660565b8251815260208084015160208301526040840151604083015284607f850112611cc2575f80fd5b611cca611682565b806101a0860187811115611cdc575f80fd5b606087015b81811015611d0857805162ffffff81168114611cfb575f80fd5b8452928401928401611ce1565b50816060860152611d1881611c6e565b608086015250929695505050505050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610fa157610fa1611d29565b5f5b83811015611d6a578181015183820152602001611d52565b50505f910152565b5f8151808452611d89816020860160208601611d50565b601f01601f19169290920160200192915050565b602081525f610f9e6020830184611d72565b81511515815261016081016020830151611dcd602084018215159052565b506040830151611de1604084018215159052565b506060830151611df5606084018215159052565b506080830151611e09608084018215159052565b5060a0830151611e1d60a084018215159052565b5060c0830151611e3160c084018215159052565b5060e0830151611e4560e084018215159052565b506101008381015115159083015261012080840151151590830152610140928301516001600160a01b0316929091019190915290565b5f82601f830112611e8a575f80fd5b81516020611e9a6117ac836116d5565b82815260609283028501820192828201919087851115611eb8575f80fd5b8387015b85811015611f195781818a031215611ed2575f80fd5b611eda61163e565b815160028110611ee8575f80fd5b815281860151611ef781611a25565b818701526040611f08838201611a4c565b908201528452928401928101611ebc565b5090979650505050505050565b5f82601f830112611f35575f80fd5b81516020611f456117ac836116d5565b8083825260208201915060208460051b870101935086841115611f66575f80fd5b602086015b84811015611f825780518352918301918301611f6b565b509695505050505050565b5f805f8060808587031215611fa0575f80fd5b84516001600160401b0380821115611fb6575f80fd5b818701915087601f830112611fc9575f80fd5b81516020611fd96117ac836116d5565b82815260059290921b8401810191818101908b841115611ff7575f80fd5b948201945b8386101561201e57855161200f81611a25565b82529482019490820190611ffc565b918a0151919850909350505080821115612036575f80fd5b61204288838901611e7b565b94506040870151915080821115612057575f80fd5b61206388838901611f26565b93506060870151915080821115612078575f80fd5b5061208587828801611f26565b91505092959194509250565b838152826020820152606060408201525f6112876060830184611d72565b5f602082840312156120bf575f80fd5b5051919050565b5f602082840312156120d6575f80fd5b610f9e82611a4c565b5f602082840312156120ef575f80fd5b815160ff81168114611c53575f80fd5b600181815b8085111561213957815f190482111561211f5761211f611d29565b8085161561212c57918102915b93841c9390800290612104565b509250929050565b5f8261214f57506001610fa1565b8161215b57505f610fa1565b8160018114612171576002811461217b57612197565b6001915050610fa1565b60ff84111561218c5761218c611d29565b50506001821b610fa1565b5060208310610133831016604e8410600b84101617156121ba575081810a610fa1565b6121c483836120ff565b805f19048211156121d7576121d7611d29565b029392505050565b5f610f9e60ff841683612141565b8082028115828204841417610fa157610fa1611d29565b5f8261221e57634e487b7160e01b5f52601260045260245ffd5b500490565b5f8251612234818460208701611d50565b9190910192915050565b81810381811115610fa157610fa1611d2956fe416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c65646c6f63616c4e756d546f6b656e732b646570656e64656e744170724964732e6c656e677468a2646970667358221220bdf903a0f04ced316670a17b125bd2d6d03a040fb4fec5ebfb2fa85730e1d6bd64736f6c634300081800330000000000000000000000002218f90a98b0c070676f249ef44834686daa4285000000000000000000000000774cb66e2b2db59a9daf175e9b2b7a142e17eb94