0 txs
7 calls
constructor
constructor(address _systemRegistry, address _balancerVault)
functions
accessController
viewfunction accessController() view returns (address)
balancerVault
viewfunction balancerVault() 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)
isExemptFromYieldProtocolFee
viewfunction isExemptFromYieldProtocolFee() view returns (bool)
lastEthPerShare
viewfunction lastEthPerShare(uint256) view returns (uint256)
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)
poolId
viewfunction poolId() view returns (bytes32)
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
CalculatorAssetMismatch
error CalculatorAssetMismatch(bytes32 aprId, address calculator, address coin)
DependentAprIdsMismatchTokens
error DependentAprIdsMismatchTokens(uint256 numDependentAprIds, uint256 numCoins)
IncorrectTimestamps
error IncorrectTimestamps()
InvalidParam
error InvalidParam(string paramName)
InvalidPool
error InvalidPool(address poolAddress)
InvalidPoolId
error InvalidPoolId(address poolAddress)
MissingRole
error MissingRole(bytes32 role, address user)
NoSnapshotTaken
error NoSnapshotTaken()
UndefinedAddress
error UndefinedAddress()
ZeroAddress
error ZeroAddress(string paramName)
ZeroDivisor
error ZeroDivisor()
creation bytecode
0x60e060405234801562000010575f80fd5b506040516200276238038062002762833981016040819052620000339162000273565b81818180816001600160a01b031663bc43cbaf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000074573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200009a9190620002b0565b6001600160a01b038116620000c257604051630cbe126f60e11b815260040160405180910390fd5b6001600160a01b031660805260408051808201909152600f81526e5f73797374656d526567697374727960881b60208201526200010190829062000166565b6001600160a01b031660a052620001176200019f565b5062000150816040518060400160405280600e81526020016d17d8985b185b98d95c95985d5b1d60921b8152506200016660201b60201c565b6001600160a01b031660c0525062000323915050565b6001600160a01b0382166200019b578060405163eac0d38960e01b8152600401620001929190620002d5565b60405180910390fd5b5050565b5f54610100900460ff1615620002085760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840162000192565b5f5460ff908116101562000259575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811462000270575f80fd5b50565b5f806040838503121562000285575f80fd5b825162000292816200025b565b6020840151909250620002a5816200025b565b809150509250929050565b5f60208284031215620002c1575f80fd5b8151620002ce816200025b565b9392505050565b5f602080835283518060208501525f5b818110156200030357858101830151858201604001528201620002e5565b505f604082860101526040601f19601f8301168501019250505092915050565b60805160a05160c0516123ea620003785f395f818161014701528181610eac015261157501525f81816102980152818161053801528181610b2901526110c001525f8181610233015261104901526123ea5ff3fe608060405234801561000f575f80fd5b5060043610610127575f3560e01c8063947fbd98116100a9578063ca08c6631161006e578063ca08c66314610255578063cbd0a0cd14610268578063d031370b14610270578063eb7c945c14610283578063f12baf5c14610296575f80fd5b8063947fbd98146101fb5780639711715a146102085780639fa6a6e314610210578063a29ed41014610225578063bc43cbaf1461022e575f80fd5b80633635e2d5116100ef5780633635e2d5146101ba5780633e0dc34e146101c35780636f660492146101cc57806377151bee146101d55780638e499bcf146101f2575f80fd5b80630a4df6171461012b578063158274a5146101425780631755ff2114610181578063243a6cdf146101945780632b5663ec146101a9575b5f80fd5b600c545b6040519081526020015b60405180910390f35b6101697f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610139565b600454610169906001600160a01b031681565b6101a76101a2366004611bb4565b6102bc565b005b6004546001600160a01b0316610169565b61012f60095481565b61012f60055481565b61012f60085481565b600b546101e29060ff1681565b6040519015158152602001610139565b61012f60035481565b6007546101e29060ff1681565b6101a7610a80565b610218610b1e565b6040516101399190611d64565b61012f60065481565b6101697f000000000000000000000000000000000000000000000000000000000000000081565b610169610263366004611e6b565b610de4565b6101e2610e0c565b61016961027e366004611e6b565b610e43565b61012f610291366004611e6b565b610e52565b7f0000000000000000000000000000000000000000000000000000000000000000610169565b5f54610100900460ff16158080156102da57505f54600160ff909116105b806102f35750303b1580156102f357505f5460ff166001145b61035b5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff19166001179055801561037c575f805461ff0019166101001790555b5f61038983850185611f28565b90506103bb815f01516040518060400160405280600b81526020016a706f6f6c4164647265737360a81b815250610e71565b8051600480546001600160a01b0319166001600160a01b0390921691821781556040805163038fff2d60e41b815290516338fff2d0928281019260209291908290030181865afa158015610411573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104359190611f71565b60058190556104695760048054604051635702fbc160e11b81526001600160a01b0390911691810191909152602401610352565b5f610472610e9e565b50805160038190559091505f036104ae5760048054604051630f4c971b60e21b81526001600160a01b0390911691810191909152602401610352565b60035486146104de57600354604051638736773d60e01b8152610352918891600401918252602082015260400190565b60045460408051602080820183905260086060830152673130b630b731b2b960c11b6080808401919091526001600160a01b03909416828401528251808303909401845260a09091019091528151910120600c819055505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632fd784fe6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610592573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105b69190611f88565b90506003546001600160401b038111156105d2576105d2611e82565b6040519080825280602002602001820160405280156105fb578160200160208202803683370190505b50805161061091600191602090910190611a56565b506003546001600160401b0381111561062b5761062b611e82565b604051908082528060200260200182016040528015610654578160200160208202803683370190505b50805161066991600291602090910190611a56565b506003546001600160401b0381111561068457610684611e82565b6040519080825280602002602001820160405280156106ad578160200160208202803683370190505b5080516106c291600a91602090910190611ab9565b505f5b6003548110156109fd575f8989838181106106e2576106e2611fa3565b9050602002013590505f8483815181106106fe576106fe611fa3565b6020026020010151905061072e816040518060400160405280600481526020016331b7b4b760e11b815250610e71565b806002848154811061074257610742611fa3565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550806001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107a9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107cd9190611fb7565b506040516020016107fd906020808252600b908201526a1393d3d417d0541497d25160aa1b604082015260600190565b6040516020818303038152906040528051906020012082146109f35760405163e46df75760e01b8152600481018390525f906001600160a01b0386169063e46df75790602401602060405180830381865afa15801561085e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108829190611f88565b9050816001600160a01b0316816001600160a01b0316632b5663ec6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ee9190611f88565b6001600160a01b03161461092f5760405163032f97c960e31b8152600481018490526001600160a01b03808316602483015283166044820152606401610352565b5f819050806001868154811061094757610947611fa3565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550806001600160a01b031663b78c7ea06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109d29190611f71565b600a86815481106109e5576109e5611fa3565b5f9182526020909120015550505b50506001016106c5565b5042600855610a0a610ee3565b6009556007805460ff19169055610a1f610f5d565b600b805460ff1916911515919091179055505081159050610a79575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b610aaa7fb24d60b8ec6e13b591c36c81b8ba9e01422aace0ada340f101db25935eac6d9433611021565b610aef576040516301d4003760e61b81527fb24d60b8ec6e13b591c36c81b8ba9e01422aace0ada340f101db25935eac6d946004820152336024820152604401610352565b610af7610e0c565b610b145760405163e80707e160e01b815260040160405180910390fd5b610b1c6110bd565b565b610b26611af2565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f3c274f76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b83573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ba79190611f88565b90505f6003546001600160401b03811115610bc457610bc4611e82565b604051908082528060200260200182016040528015610bed578160200160208202803683370190505b5090505f6003546001600160401b03811115610c0b57610c0b611e82565b604051908082528060200260200182016040528015610c4457816020015b610c31611b50565b815260200190600190039081610c295790505b5090505f610c50610e9e565b600b5490925060ff1690505f5b600354811015610d6757610c738684835f611434565b858281518110610c8557610c85611fa3565b6020026020010181815250505f60018281548110610ca557610ca5611fa3565b5f918252602090912001546001600160a01b031690508015610d5e575f816001600160a01b0316639fa6a6e36040518163ffffffff1660e01b81526004016101c0604051808303815f875af1158015610d00573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d249190611ff0565b905083610d3e57610d388160200151611571565b60208201525b80868481518110610d5157610d51611fa3565b6020026020010181905250505b50600101610c5d565b50610d9b6040518060a001604052805f81526020016060815260200160608152602001606081526020015f60ff1681525090565b6040805160a08101909152600754819060ff16610db85742610dbc565b6008545b8152602001600654815260200186815260200182815260200185815250965050505050505090565b60018181548110610df3575f80fd5b5f918252602090912001546001600160a01b0316905081565b6007545f9060ff1615610e325762015180600854610e2a91906120ab565b421015905090565b620bdd80600854610e2a91906120ab565b60028181548110610df3575f80fd5b600a8181548110610e61575f80fd5b5f91825260209091200154905081565b6001600160a01b038216610e9a578060405163eac0d38960e01b815260040161035291906120be565b5050565b6004546060908190610eda907f0000000000000000000000000000000000000000000000000000000000000000906001600160a01b031661168a565b90939092509050565b5f60045f9054906101000a90046001600160a01b03166001600160a01b031663679aefce6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f34573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f589190611f71565b905090565b5f805b60035481101561101a57600454600280546001600160a01b039092169163ab7759f1919084908110610f9457610f94611fa3565b5f9182526020909120015460405160e083901b6001600160e01b03191681526001600160a01b039091166004820152602401602060405180830381865afa158015610fe1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611005919061210a565b1561101257600191505090565b600101610f60565b505f905090565b604051632474521560e21b8152600481018390526001600160a01b0382811660248301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906391d1485490604401602060405180830381865afa158015611090573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110b4919061210a565b90505b92915050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f3c274f76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561111a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061113e9190611f88565b90505f611149610ee3565b90505f611154610e9e565b9150505f6003546001600160401b0381111561117257611172611e82565b60405190808252806020026020018201604052801561119b578160200160208202803683370190505b5090505f6003546001600160401b038111156111b9576111b9611e82565b6040519080825280602002602001820160405280156111e2578160200160208202803683370190505b5090505f805f5b60035481101561132b575f6112018988846001611434565b90508085838151811061121657611216611fa3565b602090810291909101015261122b81846120ab565b92505f6001838154811061124157611241611fa3565b5f918252602090912001546001600160a01b031690508015611321575f816001600160a01b031663b78c7ea06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561129a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112be9190611f71565b9050808885815181106112d3576112d3611fa3565b60200260200101818152505082611309600854600a87815481106112f9576112f9611fa3565b905f5260205f2001544285611855565b6113139190612129565b61131d90876120ab565b9550505b50506001016111e9565b505f81156113405761133d8284612140565b90505b600b5460ff166113565761135381611571565b90505b5f611367600854600954428b611855565b9050818111156113825761137b828261215f565b9050611385565b505f5b6007545f9060ff16156113ae576113a767016345785d8a0000600654846118eb565b90506113be565b506007805460ff19166001179055805b6006546040805142815260208101929092528101829052606081018390527f76aeb9d52de553700d9e326d79a60a21a5c85a31b911c644bdce2ab973a00bda9060800160405180910390a1426008556009899055865161142590600a9060208a0190611ab9565b50600655505050505050505050565b5f806002848154811061144957611449611fa3565b5f9182526020808320909101546040805163313ce56760e01b815290516001600160a01b039092169450849263313ce567926004808401938290030181865afa158015611498573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114bc9190611fb7565b6114c790600a612252565b9050808686815181106114dc576114dc611fa3565b60209081029190910101516040516334ff2eeb60e01b81526001600160a01b0385811660048301528a16906334ff2eeb906024016020604051808303815f875af115801561152c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115509190611f71565b61155a9190612129565b6115649190612140565b925050505b949350505050565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d2946c2b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115cf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115f39190611f88565b6001600160a01b03166355c676286040518163ffffffff1660e01b8152600401602060405180830381865afa15801561162e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116529190611f71565b61166490670de0b6b3a764000061215f565b9050670de0b6b3a76400006116798285612129565b6116839190612140565b9392505050565b6060805f806116998686611979565b815191935091506116ab60018261215f565b6001600160401b038111156116c2576116c2611e82565b6040519080825280602002602001820160405280156116eb578160200160208202803683370190505b5094506116f960018261215f565b6001600160401b0381111561171057611710611e82565b604051908082528060200260200182016040528015611739578160200160208202803683370190505b5093505f80876001600160a01b03166382687a566040518163ffffffff1660e01b8152600401602060405180830381865afa15801561177a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061179e9190611f71565b90505f5b83811015611848578181036117b9576001016117a2565b8581815181106117cb576117cb611fa3565b60200260200101518884815181106117e5576117e5611fa3565b60200260200101906001600160a01b031690816001600160a01b03168152505084818151811061181757611817611fa3565b602002602001015187848151811061183157611831611fa3565b6020908102919091010152600192830192016117a2565b5050505050509250929050565b5f835f0361187657604051631071d4d360e11b815260040160405180910390fd5b8483116118965760405163218f7e0d60e21b815260040160405180910390fd5b8382116118a457505f611569565b5f670de0b6b3a7640000856118b98583612129565b6118c39190612140565b6118cd919061215f565b90505f6118da878661215f565b90508061155a6301e1338084612129565b5f670de0b6b3a7640000841180611900575083155b1561193657604051634389d5ab60e01b8152602060048201526005602482015264616c70686160d81b6044820152606401610352565b670de0b6b3a76400006119498584612129565b61195b86670de0b6b3a764000061215f565b6119659086612129565b61196f91906120ab565b6115699190612140565b6060805f836001600160a01b03166338fff2d06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119dd9190611f71565b604051631f29a8cd60e31b8152600481018290529091506001600160a01b0386169063f94d4668906024015f60405180830381865afa158015611a22573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611a4991908101906122ee565b5090969095509350505050565b828054828255905f5260205f20908101928215611aa9579160200282015b82811115611aa957825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611a74565b50611ab5929150611b81565b5090565b828054828255905f5260205f20908101928215611aa9579160200282015b82811115611aa9578251825591602001919060010190611ad7565b6040518060a001604052805f81526020015f815260200160608152602001611b436040518060a001604052805f81526020016060815260200160608152602001606081526020015f60ff1681525090565b8152602001606081525090565b6040518060a001604052805f81526020015f81526020015f8152602001611b75611b95565b81525f60209091015290565b5b80821115611ab5575f8155600101611b82565b604051806101400160405280600a906020820280368337509192915050565b5f805f8060408587031215611bc7575f80fd5b84356001600160401b0380821115611bdd575f80fd5b818701915087601f830112611bf0575f80fd5b813581811115611bfe575f80fd5b8860208260051b8501011115611c12575f80fd5b602092830196509450908601359080821115611c2c575f80fd5b818701915087601f830112611c3f575f80fd5b813581811115611c4d575f80fd5b886020828501011115611c5e575f80fd5b95989497505060200194505050565b5f815180845260208085019450602084015f5b83811015611c9c57815187529582019590820190600101611c80565b509495945050505050565b5f815180845260208085019450602084015f5b83811015611c9c57815164ffffffffff1687529582019590820190600101611cba565b5f8151808452602080850194508084015f5b83811015611c9c57815180518852838101518489015260408082015190890152606080820151908901905f5b600a811015611d3d57815162ffffff1683529186019190860190600101611d1b565b5050506080015164ffffffffff166101a08801526101c09096019590820190600101611cef565b5f6020808352835181840152808401516040840152604084015160a06060850152611d9260c0850182611c6d565b90506060850151601f198086840301608087015260a08301825184528483015160a08686015281815180845260c08701915087830193505f92505b80831015611df65783516001600160a01b03168252928701926001929092019190870190611dcd565b50604085015196508581036040870152611e108188611c6d565b965050505060608201518385036060850152611e2c8582611ca7565b94505060808201519150611e45608084018360ff169052565b60808701519250808685030160a08701525050611e628282611cdd565b95945050505050565b5f60208284031215611e7b575f80fd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b60405160a081016001600160401b0381118282101715611eb857611eb8611e82565b60405290565b60405161014081016001600160401b0381118282101715611eb857611eb8611e82565b604051601f8201601f191681016001600160401b0381118282101715611f0957611f09611e82565b604052919050565b6001600160a01b0381168114611f25575f80fd5b50565b5f60208284031215611f38575f80fd5b604051602081018181106001600160401b0382111715611f5a57611f5a611e82565b6040528235611f6881611f11565b81529392505050565b5f60208284031215611f81575f80fd5b5051919050565b5f60208284031215611f98575f80fd5b815161168381611f11565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611fc7575f80fd5b815160ff81168114611683575f80fd5b805164ffffffffff81168114611feb575f80fd5b919050565b5f6101c08284031215612001575f80fd5b612009611e96565b8251815260208084015160208301526040840151604083015284607f850112612030575f80fd5b612038611ebe565b806101a086018781111561204a575f80fd5b606087015b8181101561207657805162ffffff81168114612069575f80fd5b845292840192840161204f565b5081606086015261208681611fd7565b608086015250929695505050505050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156110b7576110b7612097565b5f602080835283518060208501525f5b818110156120ea578581018301518582016040015282016120ce565b505f604082860101526040601f19601f8301168501019250505092915050565b5f6020828403121561211a575f80fd5b81518015158114611683575f80fd5b80820281158282048414176110b7576110b7612097565b5f8261215a57634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156110b7576110b7612097565b600181815b808511156121ac57815f190482111561219257612192612097565b8085161561219f57918102915b93841c9390800290612177565b509250929050565b5f826121c2575060016110b7565b816121ce57505f6110b7565b81600181146121e457600281146121ee5761220a565b60019150506110b7565b60ff8411156121ff576121ff612097565b50506001821b6110b7565b5060208310610133831016604e8410600b841016171561222d575081810a6110b7565b6122378383612172565b805f190482111561224a5761224a612097565b029392505050565b5f6110b460ff8416836121b4565b5f6001600160401b0382111561227857612278611e82565b5060051b60200190565b5f82601f830112612291575f80fd5b815160206122a66122a183612260565b611ee1565b8083825260208201915060208460051b8701019350868411156122c7575f80fd5b602086015b848110156122e357805183529183019183016122cc565b509695505050505050565b5f805f60608486031215612300575f80fd5b83516001600160401b0380821115612316575f80fd5b818601915086601f830112612329575f80fd5b815160206123396122a183612260565b82815260059290921b8401810191818101908a841115612357575f80fd5b948201945b8386101561237e57855161236f81611f11565b8252948201949082019061235c565b91890151919750909350505080821115612396575f80fd5b506123a386828701612282565b92505060408401519050925092509256fea2646970667358221220e0b0f7bfd429240fad8ad4b610d999d01bf4aff7a1ae40bcdc50e08c9a28d48364736f6c634300081800330000000000000000000000002218f90a98b0c070676f249ef44834686daa4285000000000000000000000000ba12222222228d8ba445958a75a0704d566bf2c8