0 txs
0 calls
constructor
constructor(address lut)
functions
calcLpTokenSupply
viewfunction calcLpTokenSupply(uint256[] reserves, bytes data) view returns (uint256 lpTokenSupply)
calcLPTokenUnderlying
purefunction calcLPTokenUnderlying(uint256 lpTokenAmount, uint256[] reserves, uint256 lpTokenSupply, bytes) pure returns (uint256[] underlyingAmounts)
calcRate
viewfunction calcRate(uint256[] reserves, uint256 i, uint256 j, bytes data) view returns (uint256 rate)
calcReserve
viewfunction calcReserve(uint256[] reserves, uint256 j, uint256 lpTokenSupply, bytes data) view returns (uint256 reserve)
calcReserveAtRatioLiquidity
viewfunction calcReserveAtRatioLiquidity(uint256[] reserves, uint256 j, uint256[] ratios, bytes data) view returns (uint256 reserve)
calcReserveAtRatioSwap
viewfunction calcReserveAtRatioSwap(uint256[] reserves, uint256 j, uint256[] ratios, bytes data) view returns (uint256 reserve)
decodeWellData
viewfunction decodeWellData(bytes data) view returns (uint256[] decimals)
name
purefunction name() pure returns (string)
ratioPrecision
purefunction ratioPrecision(uint256, bytes) pure returns (uint256 precision)
symbol
purefunction symbol() pure returns (string)
version
purefunction version() pure returns (string)
events
No events.
errors
InvalidJArgument
error InvalidJArgument()
InvalidLUT
error InvalidLUT()
InvalidTokenDecimals
error InvalidTokenDecimals()
creation bytecode
0x60c060405234801561000f575f5ffd5b5060405161237338038061237383398101604081905261002e916100ca565b6001600160a01b03811661005557604051638005fdb760e01b815260040160405180910390fd5b6001600160a01b038116608081905260408051633e2a0a2960e01b81529051633e2a0a29916004808201926020929091908290030181865afa15801561009d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100c191906100f7565b60a0525061010e565b5f602082840312156100da575f5ffd5b81516001600160a01b03811681146100f0575f5ffd5b9392505050565b5f60208284031215610107575f5ffd5b5051919050565b60805160a05161223661013d5f395f818161025f0152610bca01525f81816106a10152610e1801526122365ff3fe608060405234801561000f575f5ffd5b50600436106100c4575f3560e01c80637f35e83d1161007d578063a11686b811610058578063a11686b8146101a9578063b1d35841146101c9578063bf66642a146101dc575f5ffd5b80637f35e83d1461016557806380be8c981461017857806395d89b411461018b575f5ffd5b80632b227ea9116100ad5780632b227ea91461011e57806354fd4d50146101315780635a84467c14610152575f5ffd5b806306fdde03146100c857806314c15fc0146100fd575b5f5ffd5b60408051808201909152600781526629ba30b136329960c91b60208201525b6040516100f49190611a95565b60405180910390f35b61011061010b366004611bf1565b6101ef565b6040519081526020016100f4565b61011061012c366004611c56565b6104f1565b6040805180820190915260058152640312e312e360dc1b60208201526100e7565b610110610160366004611d53565b61055a565b610110610173366004611c56565b610ba3565b610110610186366004611dfb565b610d37565b604080518082019091526002815261299960f11b60208201526100e7565b6101bc6101b7366004611e99565b6113fc565b6040516100f49190611ecb565b6101106101d7366004611f0d565b6114c2565b6101bc6101ea366004611f55565b6114ce565b5f825f8151811061020257610202611fd7565b60200260200101515f14801561023157508260018151811061022657610226611fd7565b60200260200101515f145b1561023d57505f6104eb565b5f610247836113fc565b90505f6102548583611571565b90505f6002610283817f0000000000000000000000000000000000000000000000000000000000000000611fff565b61028d9190611fff565b90505f826001815181106102a3576102a3611fd7565b6020026020010151835f815181106102bd576102bd611fd7565b60200260200101516102cf9190612016565b94508490505f805b60ff811015610492575f8790506002865f815181106102f8576102f8611fd7565b602002602001015161030a9190611fff565b6103148983611fff565b61031e919061203d565b905060028660018151811061033557610335611fd7565b60200260200101516103479190611fff565b6103518983611fff565b61035b919061203d565b9050878161036b60026001612016565b6103759190611fff565b60648a610382828a61205c565b61038c9190611fff565b610396919061203d565b6103a09190612016565b896103ac600285611fff565b60646103b8898b611fff565b6103c2919061203d565b6103cc9190612016565b6103d69190611fff565b6103e0919061203d565b985080891115610443576103f4818a61205c565b60020361042057831561041b5761040c60018a61205c565b985050505050505050506104eb565b600193505b600161042c828b61205c565b1161043e5750505050505050506104eb565b610488565b61044d898261205c565b60020361046a5783156104655761040c896001612016565b600193505b60016104768a8361205c565b116104885750505050505050506104eb565b50506001016102d7565b5060405162461bcd60e51b815260206004820152602260248201527f4e6f6e20636f6e76657267656e63653a2063616c634c70546f6b656e537570706044820152616c7960f01b60648201526084015b60405180910390fd5b92915050565b5f5f6104fc836113fc565b90505f6105098783611571565b60408051601260208201819052918101919091529091505f906105409083906060015b6040516020818303038152906040526101ef565b905061054e82888884611680565b98975050505050505050565b5f5f8660011461056b57600161056d565b5f5b60ff1690505f6105b185858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506113fc92505050565b90505f6105f18b8b808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250869250611571915050565b90506105fb611a34565b5f6106398a8a808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250889250611571915050565b9050808b8151811061064d5761064d611fd7565b6020026020010151620f424082878151811061066b5761066b611fd7565b602002602001015161067d9190611fff565b610687919061203d565b808352604051630a9028c960e41b815260048101919091527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063a9028c909060240160e060405180830381865afa1580156106fb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061071f919061206f565b608083018190526060015182516107369190611779565b60808301515183516107489190611779565b11156107c357816080015160c00151826080015160a0015184878151811061077257610772611fd7565b60200260200101516107849190611fff565b61078e919061203d565b838c815181106107a0576107a0611fd7565b60200260200101818152505081608001516060015182602001818152505061082f565b816080015160c001518260800151604001518487815181106107e7576107e7611fd7565b60200260200101516107f99190611fff565b610803919061203d565b838c8151811061081557610815611fd7565b602090810291909101810191909152608083015151908301525b608082015160a0810151604090910151610849908261205c565b848d8151811061085b5761085b611fd7565b602002602001015161086d9190611fff565b610877919061203d565b60608301525f5b60ff811015610b29576108aa83858e8151811061089d5761089d611fd7565b60200260200101516117ec565b848d815181106108bc576108bc611fd7565b60200260200101818152505061090584878e6012806040516020016108f192919060ff92831681529116602082015260400190565b6040516020818303038152906040526104f1565b60408401819052835110801561091f575060208301518351115b156109905783868151811061093657610936611fd7565b6020026020010151848d8151811061095057610950611fd7565b6020026020010151670de0b6b3a764000061096b9190611fff565b610975919061203d565b60808401805160409081019290925290840151905152610a17565b825160408401511080156109a8575060208301518351105b15610a17578386815181106109bf576109bf611fd7565b6020026020010151848d815181106109d9576109d9611fd7565b6020026020010151670de0b6b3a76400006109f49190611fff565b6109fe919061203d565b60808401805160a0019190915260408401519051606001525b608083015160a0810151604090910151610a31908261205c565b858e81518110610a4357610a43611fd7565b6020026020010151610a559190611fff565b610a5f919061203d565b606084015260408301516020840181905283511015610af75782516020840151600a91610a8b9161205c565b11610af257848c81518110610aa257610aa2611fd7565b60200260200101516012610ab6919061205c565b610ac190600a6121d3565b848d81518110610ad357610ad3611fd7565b6020026020010151610ae5919061203d565b9650505050505050610b98565b610b21565b60208301518351600a91610b0a9161205c565b11610b2157848c81518110610aa257610aa2611fd7565b60010161087e565b5060405162461bcd60e51b815260206004820152602c60248201527f4e6f6e20636f6e76657267656e63653a2063616c63526573657276654174526160448201527f74696f4c6971756964697479000000000000000000000000000000000000000060648201526084016104e2565b979650505050505050565b5f5f610bae836113fc565b90505f610bbb8783611571565b90505f80610c316002610bee817f0000000000000000000000000000000000000000000000000000000000000000611fff565b610bf89190611fff565b888a15610c1e57855f81518110610c1157610c11611fd7565b6020026020010151611897565b85600181518110610c1157610c11611fd7565b915091508694505f5f5b60ff811015610ce657869150610c538784868c611910565b965081871115610cbb576001610c69838961205c565b11610cb657858a81518110610c8057610c80611fd7565b60200260200101516012610c94919061205c565b610c9f90600a6121d3565b610ca9908861203d565b9650505050505050610d2f565b610cde565b6001610cc7888461205c565b11610cde57858a81518110610c8057610c80611fd7565b600101610c3b565b5060405162461bcd60e51b815260206004820152601c60248201527f4e6f6e20636f6e76657267656e63653a2063616c63526573657276650000000060448201526064016104e2565b949350505050565b5f5f85600114610d48576001610d4a565b5f5b60ff1690505f610d8e85858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506113fc92505050565b90505f610d9b8983611571565b9050610da5611a34565b5f610db08985611571565b9050808a81518110610dc457610dc4611fd7565b6020026020010151620f4240828781518110610de257610de2611fd7565b6020026020010151610df49190611fff565b610dfe919061203d565b80835260405163958581e560e01b815260048101919091527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063958581e59060240160e060405180830381865afa158015610e72573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e96919061206f565b608083015260408051601260208201819052918101919091525f90610ebf90859060600161052c565b90505f610ecd60028361203d565b9050610ee4846080015160600151855f0151611779565b6080850151518551610ef69190611779565b1115610f945760808085015160c0810151910151610f149083611fff565b610f1e919061203d565b858881518110610f3057610f30611fd7565b6020908102919091010152608084015160c081015160a090910151610f559083611fff565b610f5f919061203d565b858d81518110610f7157610f71611fd7565b602002602001018181525050836080015160600151846020018181525050611025565b608084015160c0810151602090910151610fae9083611fff565b610fb8919061203d565b858881518110610fca57610fca611fd7565b6020908102919091010152608084015160c0810151604090910151610fef9083611fff565b610ff9919061203d565b858d8151811061100b5761100b611fd7565b602090810291909101810191909152608085015151908501525b608084015160a081015160409091015161103f908261205c565b868e8151811061105157611051611fd7565b60200260200101516110639190611fff565b61106d919061203d565b60608501525f5b60ff81101561139a5761109385878f8151811061089d5761089d611fd7565b868e815181106110a5576110a5611fd7565b6020026020010181815250506110ee8689856012806040516020016110da92919060ff92831681529116602082015260400190565b604051602081830303815290604052610ba3565b86898151811061110057611100611fd7565b60200260200101818152505061111886898f86611680565b604086018190526020860151108015611135575084516040860151115b156111d05781868e8151811061114d5761114d611fd7565b6020026020010151670de0b6b3a76400006111689190611fff565b611172919061203d565b6080860151604001528551829087908a90811061119157611191611fd7565b6020026020010151670de0b6b3a76400006111ac9190611fff565b6111b6919061203d565b608086018051602001919091526040860151905152611286565b846020015185604001511080156111eb575084516040860151105b156112865781868e8151811061120357611203611fd7565b6020026020010151670de0b6b3a764000061121e9190611fff565b611228919061203d565b608086015160a001528551829087908a90811061124757611247611fd7565b6020026020010151670de0b6b3a76400006112629190611fff565b61126c919061203d565b608080870180519091019190915260408601519051606001525b608085015160a08101516040909101516112a0908261205c565b878f815181106112b2576112b2611fd7565b60200260200101516112c49190611fff565b6112ce919061203d565b6060860152604085015160208601819052855110156113685784516020860151600a916112fa9161205c565b1161136357868d8151811061131157611311611fd7565b60200260200101516012611325919061205c565b61133090600a6121d3565b868e8151811061134257611342611fd7565b6020026020010151611354919061203d565b985050505050505050506113f3565b611392565b60208501518551600a9161137b9161205c565b1161139257868d8151811061131157611311611fd7565b600101611074565b5060405162461bcd60e51b815260206004820152602760248201527f4e6f6e20636f6e76657267656e63653a2063616c635265736572766541745261604482015266074696f537761760cc1b60648201526084016104e2565b95945050505050565b60605f5f8380602001905181019061141491906121de565b91509150815f0361142457601291505b805f0361142f575060125b601282118061143e5750601281115b1561145c5760405163686d360760e01b815260040160405180910390fd5b604080516002808252606082018352909160208301908036833701905050925081835f8151811061148f5761148f611fd7565b60200260200101818152505080836001815181106114af576114af611fd7565b6020026020010181815250505050919050565b620f42405b9392505050565b604080516002808252606080830184529260208301908036833701905050905061151486865f81811061150357611503611fd7565b8a9260209091020135905086611947565b815f8151811061152657611526611fd7565b6020026020010181815250506115488686600181811061150357611503611fd7565b8160018151811061155b5761155b611fd7565b6020026020010181815250509695505050505050565b6040805160028082526060808301845292602083019080368337019050509050815f815181106115a3576115a3611fd7565b602002602001015160126115b7919061205c565b6115c290600a6121d3565b835f815181106115d4576115d4611fd7565b60200260200101516115e69190611fff565b815f815181106115f8576115f8611fd7565b6020026020010181815250508160018151811061161757611617611fd7565b6020026020010151601261162b919061205c565b61163690600a6121d3565b8360018151811061164957611649611fd7565b602002602001015161165b9190611fff565b8160018151811061166e5761166e611fd7565b60200260200101818152505092915050565b6040805160028082526060820183525f92839291906020830190803683370190505090508585815181106116b6576116b6611fd7565b60200260200101518186815181106116d0576116d0611fd7565b602002602001018181525050620f42408685815181106116f2576116f2611fd7565b60200260200101516117049190612016565b81858151811061171657611716611fd7565b60200260200101818152505061174b8186856012806040516020016110da92919060ff92831681529116602082015260400190565b81868151811061175d5761175d611fd7565b602002602001015161176f919061205c565b9695505050505050565b5f81830361178857505f6104eb565b5f82841161179f5761179a848461205c565b6117a9565b6117a9838561205c565b90505f60026117b88587612016565b6117c2919061203d565b9050806117d0836064611fff565b6117e290670de0b6b3a7640000611fff565b6113f3919061203d565b5f8260200151835f0151111561184d57608083015160608101519051611812919061205c565b60208401518451611823919061205c565b84606001516118329190611fff565b61183c919061203d565b611846908361205c565b90506104eb565b608083015160608101519051611863919061205c565b83516020850151611874919061205c565b84606001516118839190611fff565b61188d919061203d565b6118469083612016565b5f806118a4600286611fff565b6064856118b2600287611fff565b6118bc8880611fff565b6118c6919061203d565b6118d09190611fff565b6118da9190611fff565b6118e4919061203d565b9150846118f2606486611fff565b6118fc919061203d565b6119069084612016565b9050935093915050565b5f818461191e876002611fff565b6119289190612016565b611932919061205c565b8361193d8780611fff565b6117e29190612016565b5f80805f19858709858702925082811083820303915050805f0361197e5783828161197457611974612029565b04925050506114c7565b8084116119cd5760405162461bcd60e51b815260206004820152601560248201527f4d6174683a206d756c446976206f766572666c6f77000000000000000000000060448201526064016104e2565b5f8486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091025f889003889004909101858311909403939093029303949094049190911702949350505050565b6040518060a001604052805f81526020015f81526020015f81526020015f8152602001611a906040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b905290565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611b0757611b07611aca565b604052919050565b5f82601f830112611b1e575f5ffd5b813567ffffffffffffffff811115611b3857611b38611aca565b8060051b611b4860208201611ade565b91825260208185018101929081019086841115611b63575f5ffd5b6020860192505b8383101561176f578235825260209283019290910190611b6a565b5f82601f830112611b94575f5ffd5b813567ffffffffffffffff811115611bae57611bae611aca565b611bc1601f8201601f1916602001611ade565b818152846020838601011115611bd5575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f60408385031215611c02575f5ffd5b823567ffffffffffffffff811115611c18575f5ffd5b611c2485828601611b0f565b925050602083013567ffffffffffffffff811115611c40575f5ffd5b611c4c85828601611b85565b9150509250929050565b5f5f5f5f60808587031215611c69575f5ffd5b843567ffffffffffffffff811115611c7f575f5ffd5b611c8b87828801611b0f565b9450506020850135925060408501359150606085013567ffffffffffffffff811115611cb5575f5ffd5b611cc187828801611b85565b91505092959194509250565b5f5f83601f840112611cdd575f5ffd5b50813567ffffffffffffffff811115611cf4575f5ffd5b6020830191508360208260051b8501011115611d0e575f5ffd5b9250929050565b5f5f83601f840112611d25575f5ffd5b50813567ffffffffffffffff811115611d3c575f5ffd5b602083019150836020828501011115611d0e575f5ffd5b5f5f5f5f5f5f5f6080888a031215611d69575f5ffd5b873567ffffffffffffffff811115611d7f575f5ffd5b611d8b8a828b01611ccd565b90985096505060208801359450604088013567ffffffffffffffff811115611db1575f5ffd5b611dbd8a828b01611ccd565b909550935050606088013567ffffffffffffffff811115611ddc575f5ffd5b611de88a828b01611d15565b989b979a50959850939692959293505050565b5f5f5f5f5f60808688031215611e0f575f5ffd5b853567ffffffffffffffff811115611e25575f5ffd5b611e3188828901611b0f565b95505060208601359350604086013567ffffffffffffffff811115611e54575f5ffd5b611e6088828901611b0f565b935050606086013567ffffffffffffffff811115611e7c575f5ffd5b611e8888828901611d15565b969995985093965092949392505050565b5f60208284031215611ea9575f5ffd5b813567ffffffffffffffff811115611ebf575f5ffd5b610d2f84828501611b85565b602080825282518282018190525f918401906040840190835b81811015611f02578351835260209384019390920191600101611ee4565b509095945050505050565b5f5f5f60408486031215611f1f575f5ffd5b83359250602084013567ffffffffffffffff811115611f3c575f5ffd5b611f4886828701611d15565b9497909650939450505050565b5f5f5f5f5f5f60808789031215611f6a575f5ffd5b86359550602087013567ffffffffffffffff811115611f87575f5ffd5b611f9389828a01611ccd565b90965094505060408701359250606087013567ffffffffffffffff811115611fb9575f5ffd5b611fc589828a01611d15565b979a9699509497509295939492505050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176104eb576104eb611feb565b808201808211156104eb576104eb611feb565b634e487b7160e01b5f52601260045260245ffd5b5f8261205757634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156104eb576104eb611feb565b5f60e0828403128015612080575f5ffd5b5060405160e0810167ffffffffffffffff811182821017156120a4576120a4611aca565b604090815283518252602080850151908301528381015190820152606080840151908201526080808401519082015260a0808401519082015260c0928301519281019290925250919050565b6001815b600184111561212b5780850481111561210f5761210f611feb565b600184161561211d57908102905b60019390931c9280026120f4565b935093915050565b5f82612141575060016104eb565b8161214d57505f6104eb565b8160018114612163576002811461216d57612189565b60019150506104eb565b60ff84111561217e5761217e611feb565b50506001821b6104eb565b5060208310610133831016604e8410600b84101617156121ac575081810a6104eb565b6121b85f1984846120f0565b805f19048211156121cb576121cb611feb565b029392505050565b5f6114c78383612133565b5f5f604083850312156121ef575f5ffd5b50508051602090910151909290915056fea26469706673582212200b33e0c11d81e5986af34d56c91d6306d7f9f00d02cb129cdb08396be315fc2264736f6c634300081c0033000000000000000000000000ba51055dad14d3920e1798d2e8a152d91cadb461