0 txs
34 calls
constructor
constructor(address _systemRegistry)
functions
accessController
viewfunction accessController() 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)
lpToken
viewfunction lpToken() view returns (address)
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
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)
MissingRole
error MissingRole(bytes32 role, address user)
NoSnapshotTaken
error NoSnapshotTaken()
UndefinedAddress
error UndefinedAddress()
ZeroAddress
error ZeroAddress(string paramName)
ZeroDivisor
error ZeroDivisor()
creation bytecode
0x60c060405234801562000010575f80fd5b5060405162001d0038038062001d0083398101604081905262000033916200022c565b808080816001600160a01b031663bc43cbaf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000073573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200009991906200022c565b6001600160a01b038116620000c157604051630cbe126f60e11b815260040160405180910390fd5b6001600160a01b031660805260408051808201909152600f81526e5f73797374656d526567697374727960881b6020820152620001009082906200011f565b6001600160a01b031660a0526200011662000158565b5050506200029f565b6001600160a01b03821662000154578060405163eac0d38960e01b81526004016200014b919062000251565b60405180910390fd5b5050565b5f54610100900460ff1615620001c15760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016200014b565b5f5460ff908116101562000212575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811462000229575f80fd5b50565b5f602082840312156200023d575f80fd5b81516200024a8162000214565b9392505050565b5f602080835283518060208501525f5b818110156200027f5785810183015185820160400152820162000261565b505f604082860101526040601f19601f8301168501019250505092915050565b60805160a051611a23620002dd5f395f818161023a0152818161038f01528181610590015261097e01525f81816101e80152610f310152611a235ff3fe608060405234801561000f575f80fd5b5060043610610106575f3560e01c8063947fbd981161009e578063bc43cbaf1161006e578063bc43cbaf146101e3578063ca08c6631461020a578063cbd0a0cd1461021d578063d031370b14610225578063f12baf5c14610238575f80fd5b8063947fbd98146101a05780639711715a146101bd5780639fa6a6e3146101c5578063a29ed410146101da575f80fd5b80633635e2d5116100d95780633635e2d5146101725780635fcbd2851461017b5780636f6604921461018e5780638e499bcf14610197575f80fd5b80630a4df6171461010a5780631755ff2114610121578063243a6cdf1461014c5780632b5663ec14610161575b5f80fd5b600a545b6040519081526020015b60405180910390f35b600454610134906001600160a01b031681565b6040516001600160a01b039091168152602001610118565b61015f61015a3660046112b8565b61025e565b005b6005546001600160a01b0316610134565b61010e60095481565b600554610134906001600160a01b031681565b61010e60085481565b61010e60035481565b6007546101ad9060ff1681565b6040519015158152602001610118565b61015f6108d5565b6101cd610973565b6040516101189190611469565b61010e60065481565b6101347f000000000000000000000000000000000000000000000000000000000000000081565b610134610218366004611570565b610d58565b6101ad610d80565b610134610233366004611570565b610db7565b7f0000000000000000000000000000000000000000000000000000000000000000610134565b5f54610100900460ff161580801561027c57505f54600160ff909116105b806102955750303b15801561029557505f5460ff166001145b6102fd5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff19166001179055801561031e575f805461ff0019166101001790555b5f61032b838501856115ff565b905061035d815f01516040518060400160405280600b81526020016a706f6f6c4164647265737360a81b815250610dc6565b8051600480546001600160a01b0319166001600160a01b0392831617815560408051631b09faa960e21b815290515f937f00000000000000000000000000000000000000000000000000000000000000001692636c27eaa4928082019260209290918290030181865afa1580156103d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103fa9190611649565b60048054604051631386d81360e01b81526001600160a01b039182169281019290925291925090821690631386d8139060240161016060405180830381865afa158015610449573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061046d919061167a565b50600580546001600160a01b0319166001600160a01b038316179055600382905561049b6002846008611193565b505060055460408051808201909152600781526636382a37b5b2b760c91b60208201526104d593506001600160a01b039091169150610dc6565b6003545f036105095760048054604051630f4c971b60e21b81526001600160a01b03909116918101919091526024016102f4565b600354861461053957600354604051638736773d60e01b81526102f4918891600401918252602082015260400190565b6004546040805160208082018390526005606083015264637572766560d81b6080808401919091526001600160a01b03909416828401528251808303909401845260a09091019091528151910120600a819055505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632fd784fe6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061060e9190611649565b905060035467ffffffffffffffff81111561062b5761062b611587565b604051908082528060200260200182016040528015610654578160200160208202803683370190505b50805161066991600191602090910190611193565b505f5b60035481101561086c575f89898381811061068957610689611727565b9050602002013590505f600283815481106106a6576106a6611727565b5f91825260209182902001546040805180840193909352600b908301526a1393d3d417d0541497d25160aa1b60608301526001600160a01b031691506080016040516020818303038152906040528051906020012082146108585760405163e46df75760e01b8152600481018390525f906001600160a01b0386169063e46df75790602401602060405180830381865afa158015610746573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061076a9190611649565b9050816001600160a01b0316816001600160a01b0316632b5663ec6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107d69190611649565b6001600160a01b0316146108175760405163032f97c960e31b8152600481018490526001600160a01b038083166024830152831660448201526064016102f4565b806001858154811061082b5761082b611727565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550505b61086181610df3565b50505060010161066c565b5042600855610879610e8f565b60095550506007805460ff191690555080156108ce575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6108ff7fb24d60b8ec6e13b591c36c81b8ba9e01422aace0ada340f101db25935eac6d9433610f09565b610944576040516301d4003760e61b81527fb24d60b8ec6e13b591c36c81b8ba9e01422aace0ada340f101db25935eac6d9460048201523360248201526044016102f4565b61094c610d80565b6109695760405163e80707e160e01b815260040160405180910390fd5b610971610fa5565b565b61097b6111f6565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f3c274f76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109fc9190611649565b90505f60035467ffffffffffffffff811115610a1a57610a1a611587565b604051908082528060200260200182016040528015610a5357816020015b610a40611254565b815260200190600190039081610a385790505b5090505f60035467ffffffffffffffff811115610a7257610a72611587565b604051908082528060200260200182016040528015610a9b578160200160208202803683370190505b5090505f5b600354811015610cdd575f60028281548110610abe57610abe611727565b5f9182526020822001546001600160a01b03169150610adc82610df3565b610ae790600a61182f565b60048054604051634903b0d160e01b815291820186905291925082916001600160a01b031690634903b0d190602401602060405180830381865afa158015610b31573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b55919061183a565b6040516334ff2eeb60e01b81526001600160a01b0385811660048301528916906334ff2eeb906024016020604051808303815f875af1158015610b9a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bbe919061183a565b610bc89190611851565b610bd29190611868565b848481518110610be457610be4611727565b6020026020010181815250505f6001600160a01b031660018481548110610c0d57610c0d611727565b5f918252602090912001546001600160a01b031614610cd35760018381548110610c3957610c39611727565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b0316639fa6a6e36040518163ffffffff1660e01b81526004016101c0604051808303815f875af1158015610c91573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cb5919061189b565b858481518110610cc757610cc7611727565b60200260200101819052505b5050600101610aa0565b50610d116040518060a001604052805f81526020016060815260200160608152602001606081526020015f60ff1681525090565b6040805160a08101909152600754819060ff16610d2e5742610d32565b6008545b815260200160065481526020018381526020018281526020018481525094505050505090565b60018181548110610d67575f80fd5b5f918252602090912001546001600160a01b0316905081565b6007545f9060ff1615610da65762015180600854610d9e9190611942565b421015905090565b620bdd80600854610d9e9190611942565b60028181548110610d67575f80fd5b6001600160a01b038216610def578060405163eac0d38960e01b81526004016102f49190611955565b5050565b5f73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03831601610e2157506012919050565b816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e5d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e8191906119a1565b60ff1692915050565b919050565b5f60045f9054906101000a90046001600160a01b03166001600160a01b031663bb7b8b806040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ee0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f04919061183a565b905090565b604051632474521560e21b8152600481018390526001600160a01b0382811660248301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906391d1485490604401602060405180830381865afa158015610f78573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f9c91906119c1565b90505b92915050565b5f610fae610e8f565b90505f610fc16008546009544285611058565b6007549091505f9060ff1615610fed57610fe667016345785d8a000060065484611105565b9050610ffd565b506007805460ff19166001179055805b6006546040805142815260208101929092528101829052606081018390527f76aeb9d52de553700d9e326d79a60a21a5c85a31b911c644bdce2ab973a00bda9060800160405180910390a14260085560099290925550600655565b5f835f0361107957604051631071d4d360e11b815260040160405180910390fd5b8483116110995760405163218f7e0d60e21b815260040160405180910390fd5b8382116110a757505f6110fd565b5f670de0b6b3a7640000856110bc8583611851565b6110c69190611868565b6110d091906119da565b90505f6110dd87866119da565b9050806110ee6301e1338084611851565b6110f89190611868565b925050505b949350505050565b5f670de0b6b3a764000084118061111a575083155b1561115057604051634389d5ab60e01b8152602060048201526005602482015264616c70686160d81b60448201526064016102f4565b670de0b6b3a76400006111638584611851565b61117586670de0b6b3a76400006119da565b61117f9086611851565b6111899190611942565b6110fd9190611868565b828054828255905f5260205f209081019282156111e6579160200282015b828111156111e657825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906111b1565b506111f2929150611285565b5090565b6040518060a001604052805f81526020015f8152602001606081526020016112476040518060a001604052805f81526020016060815260200160608152602001606081526020015f60ff1681525090565b8152602001606081525090565b6040518060a001604052805f81526020015f81526020015f8152602001611279611299565b81525f60209091015290565b5b808211156111f2575f8155600101611286565b604051806101400160405280600a906020820280368337509192915050565b5f805f80604085870312156112cb575f80fd5b843567ffffffffffffffff808211156112e2575f80fd5b818701915087601f8301126112f5575f80fd5b813581811115611303575f80fd5b8860208260051b8501011115611317575f80fd5b602092830196509450908601359080821115611331575f80fd5b818701915087601f830112611344575f80fd5b813581811115611352575f80fd5b886020828501011115611363575f80fd5b95989497505060200194505050565b5f815180845260208085019450602084015f5b838110156113a157815187529582019590820190600101611385565b509495945050505050565b5f815180845260208085019450602084015f5b838110156113a157815164ffffffffff16875295820195908201906001016113bf565b5f8151808452602080850194508084015f5b838110156113a157815180518852838101518489015260408082015190890152606080820151908901905f5b600a81101561144257815162ffffff1683529186019190860190600101611420565b5050506080015164ffffffffff166101a08801526101c090960195908201906001016113f4565b5f6020808352835181840152808401516040840152604084015160a0606085015261149760c0850182611372565b90506060850151601f198086840301608087015260a08301825184528483015160a08686015281815180845260c08701915087830193505f92505b808310156114fb5783516001600160a01b031682529287019260019290920191908701906114d2565b506040850151965085810360408701526115158188611372565b96505050506060820151838503606085015261153185826113ac565b9450506080820151915061154a608084018360ff169052565b60808701519250808685030160a0870152505061156782826113e2565b95945050505050565b5f60208284031215611580575f80fd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b60405160a0810167ffffffffffffffff811182821017156115be576115be611587565b60405290565b604051610140810167ffffffffffffffff811182821017156115be576115be611587565b6001600160a01b03811681146115fc575f80fd5b50565b5f6020828403121561160f575f80fd5b6040516020810181811067ffffffffffffffff8211171561163257611632611587565b6040528235611640816115e8565b81529392505050565b5f60208284031215611659575f80fd5b8151611664816115e8565b9392505050565b80518015158114610e8a575f80fd5b5f805f80610160858703121561168e575f80fd5b85601f86011261169c575f80fd5b60405161010080820182811067ffffffffffffffff821117156116c1576116c1611587565b604052860181888211156116d3575f80fd5b875b828110156116f65780516116e8816115e8565b8252602091820191016116d5565b505051610120870151919550935061170d816115e8565b915061171c610140860161166b565b905092959194509250565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561178957815f190482111561176f5761176f61173b565b8085161561177c57918102915b93841c9390800290611754565b509250929050565b5f8261179f57506001610f9f565b816117ab57505f610f9f565b81600181146117c157600281146117cb576117e7565b6001915050610f9f565b60ff8411156117dc576117dc61173b565b50506001821b610f9f565b5060208310610133831016604e8410600b841016171561180a575081810a610f9f565b611814838361174f565b805f19048211156118275761182761173b565b029392505050565b5f610f9c8383611791565b5f6020828403121561184a575f80fd5b5051919050565b8082028115828204841417610f9f57610f9f61173b565b5f8261188257634e487b7160e01b5f52601260045260245ffd5b500490565b805164ffffffffff81168114610e8a575f80fd5b5f6101c082840312156118ac575f80fd5b6118b461159b565b8251815260208084015160208301526040840151604083015284607f8501126118db575f80fd5b6118e36115c4565b806101a08601878111156118f5575f80fd5b606087015b8181101561192157805162ffffff81168114611914575f80fd5b84529284019284016118fa565b5081606086015261193181611887565b608086015250929695505050505050565b80820180821115610f9f57610f9f61173b565b5f602080835283518060208501525f5b8181101561198157858101830151858201604001528201611965565b505f604082860101526040601f19601f8301168501019250505092915050565b5f602082840312156119b1575f80fd5b815160ff81168114611664575f80fd5b5f602082840312156119d1575f80fd5b610f9c8261166b565b81810381811115610f9f57610f9f61173b56fea26469706673582212204ff13e34268eab995df187c357aa02a8a08b44ded1d9e1eb466f1a79408768a164736f6c634300081800330000000000000000000000002218f90a98b0c070676f249ef44834686daa4285