0 txs
1 call
constructor
No constructor.
functions
getExecutionPrice
viewfunction getExecutionPrice(DataStore dataStore, tuple market, tuple prices, uint256 positionSizeInUsd, uint256 positionSizeInTokens, int256 sizeDeltaUsd, int256 pendingImpactAmount, bool isLong) view returns (tuple)
getSwapAmountOut
viewfunction getSwapAmountOut(DataStore dataStore, tuple market, tuple prices, address tokenIn, uint256 amountIn, address uiFeeReceiver) view returns (uint256, int256, tuple)
getSwapPriceImpact
viewfunction getSwapPriceImpact(DataStore dataStore, tuple market, address tokenIn, address tokenOut, uint256 amountIn, tuple tokenInPrice, tuple tokenOutPrice) view returns (int256 priceImpactUsdBeforeCap, int256 priceImpactAmount, int256 tokenInPriceImpactAmount)
events
No events.
errors
DisabledMarket
error DisabledMarket(address market)
EmptyMarket
error EmptyMarket()
InvalidSwapMarket
error InvalidSwapMarket(address market)
InvalidTokenIn
error InvalidTokenIn(address tokenIn, address market)
UnableToGetCachedTokenPrice
error UnableToGetCachedTokenPrice(address token, address market)
UnableToGetOppositeToken
error UnableToGetOppositeToken(address inputToken, address market)
creation bytecode
0x61297e610039600b82828239805160001a607314602c57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061004b5760003560e01c806381eba89e14610050578063da1d77b914610083578063dafa66bf146100e4575b600080fd5b61006361005e366004611e15565b610156565b604080519384526020840192909252908201526060015b60405180910390f35b610096610091366004611f2d565b6102df565b60405161007a9190600060c0820190508251825260208301516020830152604083015115156040830152606083015160608301526080830151608083015260a083015160a083015292915050565b6100f76100f2366004611fb5565b610672565b604080519384526020808501939093528151848201529181015160608085019190915291810151608080850191909152918101516001600160a01b031660a0808501919091529181015160c0840152015160e08201526101000161007a565b600080600073308c86de8b7ff4c7411f4fe7e70a507edefa249b633b89b2366040518061012001604052808d6001600160a01b031681526020018c81526020018b6001600160a01b031681526020018a6001600160a01b031681526020016101bd89610a85565b81526020016101cb88610a85565b81526020016101eb6101dc8a610a85565b6101e6908c612053565b610aad565b81526020016101fc6101dc8a610a85565b6102059061206a565b815260016020909101526040516001600160e01b031960e084901b16815261023091906004016120b9565b6040805180830381865af415801561024c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610270919061214c565b50925060008313156102bd57600061028f8b8b600001518a8888610b1b565b909350905080156102b7576102b38b8b600001518b896102ae86610aad565b610b1b565b5091505b506102d2565b6102ce8a8a600001518a8887610b1b565b5091505b9750975097945050505050565b6102e7611a21565b6102ef611a59565b80516001600160a01b038b1690526020810189905261031e61031086610ba4565b604083810151602001510152565b604081810151015183151590526000808613908161033d57841561033f565b845b905061036381610350576000610354565b6000195b60408501516020015160a00152565b6080830180516020908101518b9052815181015181018a9052815160400151871515905290510151606001869052610399611a21565b60008813156104315760405163610e3cb960e01b8152734ef055da26000c807ea986cc8632e00b68f8ff4b9063610e3cb9906103db9087908f906004016125b9565b60a060405180830381865af41580156103f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041c91906125db565b15156040860152602085015250508152610662565b6000734ef055da26000c807ea986cc8632e00b68f8ff4b63e22de7938f8f8f89608001516104688b60400151602001516040015190565b6040518663ffffffff1660e01b815260040161048895949392919061262a565b606060405180830381865af41580156104a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c99190612674565b8e5160405163bd92474d60e01b8152919450734ef055da26000c807ea986cc8632e00b68f8ff4b935063bd92474d925061050a9189919086906004016126a2565b606060405180830381865af4158015610527573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054b91906126d2565b1515604085015260208401528252608085015161058e9061056e90602001515190565b608087015160200151606001516040808901516020015101518f51610bb7565b6060830181905282516105a09161270c565b60808301819052600013156106235760006105c18f8f600001516000610c12565b905060006105e46101e66105de8960400151602001516040015190565b84610c3e565b6105ed9061206a565b905080846080015112156106205761061384608001518261060e9190612734565b610c57565b60a0850152608084018190525b50505b84515160208601515160808401516106459291906106408d61206a565b610ca9565b6080830181905261065b908f908f908f90610cf2565b6080830152505b9c9b505050505050505050505050565b6000806106b76040518060c0016040528060008152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001600081525090565b6106bf611af7565b88604001516001600160a01b0316876001600160a01b0316141580156106fb575088606001516001600160a01b0316876001600160a01b031614155b156107265788516040516353f8171160e01b815261071d918991600401612754565b60405180910390fd5b6107308a8a610ee8565b61073a878a610f33565b6001600160a01b03168152610750878a8a610fa2565b60208201528051610762908a8a610fa2565b816040018190525060008073308c86de8b7ff4c7411f4fe7e70a507edefa249b633b89b2366040518061012001604052808f6001600160a01b031681526020018e81526020018c6001600160a01b0316815260200186600001516001600160a01b031681526020016107d78760200151610a85565b81526020016107e98760400151610a85565b81526020016108086107fe8860200151610a85565b6101e6908e612053565b815260200161081d6107fe8860200151610a85565b6108269061206a565b815260016020909101526040516001600160e01b031960e084901b16815261085191906004016120b9565b6040805180830381865af415801561086d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610891919061214c565b91509150600073308c86de8b7ff4c7411f4fe7e70a507edefa249b63b5f97bcd8e8e600001518c868d60006040518763ffffffff1660e01b81526004016108dd9695949392919061276e565b60c060405180830381865af41580156108fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091e91906127be565b90506000808413156109fe5781604001518560600181815250506109518e8e600001518760000151886040015188610b1b565b6101408701819052909150156109a55761097e8e8e600001518d88602001516102ae8a6101400151610aad565b50610160860181905261099090610c57565b856060018181516109a19190612850565b9052505b84604001516020015185602001516000015186606001516109c69190612053565b6109d09190612879565b60a0860181905260c08601526109e581610c57565b8560a0018181516109f69190612850565b905250610a6b565b610a138e8e600001518d886020015188610b1b565b509050610a2261060e8261206a565b8260400151610a31919061288d565b60608601819052604086015160209081015190870151519091610a549190612053565b610a5e9190612879565b60a0860181905260c08601525b60a094909401519d939c509a509198505050505050505050565b6000600282600001518360200151610a9d9190612850565b610aa79190612879565b92915050565b60006001600160ff1b03821115610b175760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b606482015260840161071d565b5090565b6000806000806000851315610b8557610b378660200151610aad565b610b4190866128a0565b91506000610b536101e68b8b8b61103c565b905080831315610b7f576020870151610b6f61060e8386612734565b610b799190612053565b91508092505b50610b96565b610b938587600001516110b6565b91505b909890975095505050505050565b600080821215610b175781600003610aa7565b600080610bc98585886000891261112a565b90506000808213610bf057610be18460200151610aad565b610beb90836128ce565b610c05565b8351610bfb90610aad565b610c0590836128ce565b925050505b949350505050565b6000806000610c218686611175565b9150915083610c305780610c32565b815b925050505b9392505050565b6000610c37838368327cb2734119d3b7a9601e1b611289565b600080821215610b175760405162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f736974697665604482015260640161071d565b600080831215610cba575081610c0a565b6000610cc886866001610c12565b90506000610cd96101e68584610c3e565b905080851315610ce7578094505b509295945050505050565b6000808213610d02575080610c0a565b610d4a60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b610d58868660000151611296565b808252845151610d6791612053565b60208201819052610d7784610c57565b1115610d9b578060200151610d8b84610c57565b610d95919061288d565b60e08201525b60e081015115610ede57856001600160a01b031663bd02d0f5610dc1876000015161130f565b6040518263ffffffff1660e01b8152600401610ddf91815260200190565b602060405180830381865afa158015610dfc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2091906128fe565b816040018181525050836020015160000151610e418787886040015161139a565b610e4b9190612053565b816060018181525050836040015160000151610e6c8787886060015161139a565b610e769190612053565b6080820181905285516060830151610ea592899291610e959190612850565b8751602001516040860151611441565b60a0820181905260e08201511115610ede57610ec48160a00151610aad565b610ed18260200151610aad565b610edb919061270c565b92505b5090949350505050565b610ef2828261158d565b80606001516001600160a01b031681604001516001600160a01b031603610f2f5780516040516332e6f44d60e21b815261071d9190600401612917565b5050565b600081604001516001600160a01b0316836001600160a01b031603610f5d57506060810151610aa7565b81606001516001600160a01b0316836001600160a01b031603610f8557506040810151610aa7565b8151604051637a0ca68160e01b815261071d918591600401612754565b610faa611b6f565b82604001516001600160a01b0316846001600160a01b031603610fd257506020810151610c37565b82606001516001600160a01b0316846001600160a01b031603610ffa57506040810151610c37565b82602001516001600160a01b0316846001600160a01b03160361101f57508051610c37565b8251604051635f2394d160e11b815261071d918691600401612754565b6000836001600160a01b031663bd02d0f5611057858561165b565b6040518263ffffffff1660e01b815260040161107591815260200190565b602060405180830381865afa158015611092573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0a91906128fe565b6000808312156110f8576110c982610aad565b6110d283610aad565b6110dc9085612734565b6110e790600161270c565b6110f191906128a0565b9050610aa7565b61110182610aad565b600161110c84610aad565b611116908661270c565b6111209190612734565b610c3791906128a0565b60008061114161113987610ba4565b8686866116ef565b9050600086136111625761115481610aad565b61115d9061206a565b61116b565b61116b81610aad565b9695505050505050565b6000806000846001600160a01b031663bd02d0f5611194866001611716565b6040518263ffffffff1660e01b81526004016111b291815260200190565b602060405180830381865afa1580156111cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f391906128fe565b90506000856001600160a01b031663bd02d0f5611211876000611716565b6040518263ffffffff1660e01b815260040161122f91815260200190565b602060405180830381865afa15801561124c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061127091906128fe565b90508082111561127e578091505b909590945092505050565b6000610c0a848484611790565b6000826001600160a01b031663bd02d0f56112b08461187a565b6040518263ffffffff1660e01b81526004016112ce91815260200190565b602060405180830381865afa1580156112eb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3791906128fe565b6000604051602001611350906020808252818101527f4c454e545f504f534954494f4e5f494d504143545f504f4f4c5f414d4f554e54604082015260600190565b60408051601f198184030181528282528051602091820120908301526001600160a01b03841690820152606001604051602081830303815290604052805190602001209050919050565b6000806113af846040015185606001516118bb565b905080856001600160a01b031663bd02d0f56113cf8760000151876118ea565b6040518263ffffffff1660e01b81526004016113ed91815260200190565b602060405180830381865afa15801561140a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142e91906128fe565b6114389190612879565b95945050505050565b600080866001600160a01b031663bd02d0f561145c8861191b565b6040518263ffffffff1660e01b815260040161147a91815260200190565b602060405180830381865afa158015611497573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114bb91906128fe565b905060006114c98683610c3e565b90506000886001600160a01b031663bd02d0f56114e58a61195b565b6040518263ffffffff1660e01b815260040161150391815260200190565b602060405180830381865afa158015611520573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154491906128fe565b905080821115611552578091505b600061155e8787612053565b905082811115611575576000945050505050611438565b61157f818461288d565b9a9950505050505050505050565b80516001600160a01b03166115b5576040516302fde0d760e11b815260040160405180910390fd5b6000826001600160a01b0316637ae1cfca6115d38460000151611998565b6040518263ffffffff1660e01b81526004016115f191815260200190565b602060405180830381865afa15801561160e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611632919061292b565b905080156116565781516040516309f8c93760e01b815261071d9190600401612917565b505050565b60006040516020016116989060208082526017908201527614d5d05417d253541050d517d413d3d317d05353d55395604a1b604082015260600190565b60408051601f198184030181528282528051602091820120908301526001600160a01b0380861691830191909152831660608201526080015b60405160208183030381529060405280519060200120905092915050565b6000811561170b5761170485858560016119d0565b9050610c0a565b611438858585611790565b6000604051602001611756906020808252601a908201527926a0ac2fa827a9a4aa24a7a72fa4a6a820a1aa2fa320a1aa27a960311b604082015260600190565b60408051601f198184030181528282528051602091820120908301526001600160a01b0385169082015282151560608201526080016116d1565b60008080600019858709858702925082811083820303915050806000036117ca578382816117c0576117c0612863565b0492505050610c37565b8084116118115760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b604482015260640161071d565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b6000604051602001611350906020808252601b908201527a1413d4d2551253d397d253541050d517d413d3d317d05353d55395602a1b604082015260600190565b6000816001600160a01b0316836001600160a01b0316146118dd5760016118e0565b60025b60ff169392505050565b6000604051602001611698906020808252600b908201526a1413d3d317d05353d5539560aa1b604082015260600190565b6000604051602001611350906020808252601a908201527926a0ac2fa622a72220a12622afa4a6a820a1aa2fa320a1aa27a960311b604082015260600190565b60006040516020016113509060208082526017908201527613505617d31153911050931157d253541050d517d554d1604a1b604082015260600190565b6000604051602001611350906020808252601290820152711254d7d3505492d15517d11254d05093115160721b604082015260600190565b6000806119de868686611790565b905060018360028111156119f4576119f46121c2565b148015611a11575060008480611a0c57611a0c612863565b868809115b156114385761116b600182612850565b6040518060c0016040528060008152602001600081526020016000151581526020016000815260200160008152602001600081525090565b604080516101c081018252600060e08201818152610100830182905261012083018290526101408301829052610160830182905261018083018290526101a08301829052825282516080810184528181526020808201839052818501839052606082019290925290820152908101611acf611b89565b815260006020820152604001611ae3611c73565b815260006020820181905260409091015290565b60405180610180016040528060006001600160a01b03168152602001611b1b611b6f565b8152602001611b28611b6f565b815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160001515815260200160008152602001600081525090565b604051806040016040528060008152602001600081525090565b60408051610180810190915260006080820181815260a0830182905260c0830182905260e08301829052610100830182905261012083018290526101408301919091526060610160830152815260208101611c3f604080516101808101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b8152604080516080810182526000808252602082810182905292820181905260608201529101908152602001606081525090565b6040805160c081019091526000606082018181526080830182905260a083019190915281908152602001611cf3604051806101400160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b81526040805160208181019092526000815291015290565b6001600160a01b0381168114611d2057600080fd5b50565b600060808284031215611d3557600080fd5b604051608081016001600160401b0381118282101715611d6557634e487b7160e01b600052604160045260246000fd5b6040529050808235611d7681611d0b565b81526020830135611d8681611d0b565b60208201526040830135611d9981611d0b565b60408201526060830135611dac81611d0b565b6060919091015292915050565b600060408284031215611dcb57600080fd5b604080519081016001600160401b0381118282101715611dfb57634e487b7160e01b600052604160045260246000fd5b604052823581526020928301359281019290925250919050565b6000806000806000806000610180888a031215611e3157600080fd5b8735611e3c81611d0b565b9650611e4b8960208a01611d23565b955060a0880135611e5b81611d0b565b945060c0880135611e6b81611d0b565b935060e08801359250611e82896101008a01611db9565b9150611e92896101408a01611db9565b905092959891949750929550565b600060c08284031215611eb257600080fd5b604051606081016001600160401b0381118282101715611ee257634e487b7160e01b600052604160045260246000fd5b604052905080611ef28484611db9565b8152611f018460408501611db9565b6020820152611f138460808501611db9565b60408201525092915050565b8015158114611d2057600080fd5b600080600080600080600080610200898b031215611f4a57600080fd5b8835611f5581611d0b565b9750611f648a60208b01611d23565b9650611f738a60a08b01611ea0565b9550610160890135945061018089013593506101a089013592506101c089013591506101e0890135611fa481611f1f565b809150509295985092959890939650565b6000806000806000806101c08789031215611fcf57600080fd5b8635611fda81611d0b565b9550611fe98860208901611d23565b9450611ff88860a08901611ea0565b935061016087013561200981611d0b565b925061018087013591506101a087013561202281611d0b565b809150509295509295509295565b6001600160a01b03169052565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610aa757610aa761203d565b6000600160ff1b820161207f5761207f61203d565b5060000390565b80516001600160a01b03908116835260208083015182169084015260408083015182169084015260609182015116910152565b81516001600160a01b031681526020808301516101808301916120de90840182612086565b5060408301516120f160a0840182612030565b50606083015161210460c0840182612030565b50608083015160e083015260a083015161010083015260c083015161012083015260e083015161014083015261010083015161214561016084018215159052565b5092915050565b6000806040838503121561215f57600080fd5b8251602084015190925061217281611f1f565b809150509250929050565b600081518084526020840193506020830160005b828110156121b85781516001600160a01b0316865260209586019590910190600101612191565b5093949350505050565b634e487b7160e01b600052602160045260246000fd5b600981106121e8576121e86121c2565b9052565b600381106121e8576121e86121c2565b6122078282516121d8565b602081015161221960208401826121ec565b5060408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e08301526101008101516101008301526101208101516101208301526101408101516101408301526101608101516101608301525050565b600081518084526020840193506020830160005b828110156121b857815186526020958601959091019060010161229e565b805161024080845281516001600160a01b03908116918501919091526020820151166102608401526040810151600091906122fb610280860182612030565b50606081015161230f6102a0860182612030565b5060808101516123236102c0860182612030565b5060a08101516123376102e0860182612030565b5060c081015161234b610300860182612030565b5060e0015161010061032085015261236761034085018261217d565b9050602083015161237b60208601826121fc565b50604083810151805115156101a0870152602081015115156101c08701529081015115156101e08601526060908101511515610200860152830151848203610220860152611438828261228a565b805160018060a01b03815116835260018060a01b03602082015116602084015260018060a01b0360408201511660408401525060208101518051606084015260208101516080840152604081015160a0840152606081015160c0840152608081015160e084015260a081015161010084015260c081015161012084015260e08101516101408401526101008101516101608401526101208101516101808401525060408101516116566101a08401825115159052565b600281106121e8576121e86121c2565b805180516001600160a01b03908116845260208083015182169085015260408083015182169085015260608083015190911690840152608080820151600092916124db90860182612030565b5060a08101516124ee60a0860182612030565b5060c0810151905061250360c0850182612030565b50602082015161251660e0850182612086565b5060408201516103a06101608501526125336103a08501826122bc565b9050606083015161018085015260808301516125536101a08601826123c9565b5060a083015161036085015260c083015161257261038086018261247f565b509392505050565b80518252602090810151910152565b61259482825161257a565b60208101516125a6604084018261257a565b506040810151611656608084018261257a565b60e0815260006125cc60e083018561248f565b9050610c376020830184612589565b600080600080600060a086880312156125f357600080fd5b855160208701516040880151606089015160808a01519398509196509450925061261c81611f1f565b809150509295509295909350565b6001600160a01b038616815261034081016126486020830187612086565b61265560a0830186612589565b6126636101608301856123c9565b826103208301529695505050505050565b60008060006060848603121561268957600080fd5b5050815160208301516040909301519094929350919050565b6080815260006126b5608083018661248f565b90506126c4602083018561257a565b826060830152949350505050565b6000806000606084860312156126e757600080fd5b835160208501516040860151919450925061270181611f1f565b809150509250925092565b808201828112600083128015821682158216171561272c5761272c61203d565b505092915050565b81810360008312801583831316838312821617156121455761214561203d565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03878116825286811660208301526040820186905284151560608301528316608082015260c08101600683106127ad576127ad6121c2565b8260a0830152979650505050505050565b600060c08284031280156127d157600080fd5b5060405160009060c081016001600160401b038111828210171561280357634e487b7160e01b83526041600452602483fd5b604090815284518252602080860151908301528481015190820152606084015161282c81611d0b565b60608201526080848101519082015260a09384015193810193909352509092915050565b80820180821115610aa757610aa761203d565b634e487b7160e01b600052601260045260246000fd5b60008261288857612888612863565b500490565b81810381811115610aa757610aa761203d565b6000826128af576128af612863565b600160ff1b8214600019841416156128c9576128c961203d565b500590565b80820260008212600160ff1b841416156128ea576128ea61203d565b8181058314821517610aa757610aa761203d565b60006020828403121561291057600080fd5b5051919050565b6001600160a01b0391909116815260200190565b60006020828403121561293d57600080fd5b8151610c3781611f1f56fea2646970667358221220f019ab947a30474ed32533bcc554de22c89bb435a64113fcc3bacde84fe9a8e364736f6c634300081d0033