0 txs
35 calls
constructor
No constructor.
functions
getExecutionPrice
viewfunction getExecutionPrice(DataStore dataStore, tuple market, tuple prices, uint256 positionSizeInUsd, uint256 positionSizeInTokens, int256 sizeDeltaUsd, 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
0x611ce8610039600b82828239805160001a607314602c57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061004b5760003560e01c806319cc7fdc1461005057806381eba89e1461008c578063dafa66bf146100ba575b600080fd5b61006361005e3660046112cd565b61012c565b604080518251815260208084015190820152918101511515908201526060015b60405180910390f35b61009f61009a36600461134b565b61030a565b60408051938452602084019290925290820152606001610083565b6100cd6100c83660046113d6565b610493565b604080519384526020808501939093528151848201529181015160608085019190915291810151608080850191909152918101516001600160a01b031660a0808501919091529181015160c0840152015160e082015261010001610083565b610134610e61565b61013c610e84565b80516001600160a01b038a1690526020810188905261016b61015d856108ab565b604083810151602001510152565b604081810151015183151590526000808513908161018a57841561018c565b845b90506101b08161019d5760006101a1565b6000195b60408501516020015160a00152565b6080830180516020908101518a9052815181015101889052516040015185151590526101da610e61565b60008713156102725760405163610e3cb960e01b81527319b9ecd3fa2dc9272cd815ee05f300534b4f1d8b9063610e3cb99061021c9087908e906004016118a6565b60a060405180830381865af4158015610239573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025d91906118ee565b151560408601526020850152505081526102fb565b895160405163103b6c3760e31b81527319b9ecd3fa2dc9272cd815ee05f300534b4f1d8b916381db61b8916102ab91889160040161193d565b606060405180830381865af41580156102c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ec919061195f565b15156040840152602083015281525b9b9a5050505050505050505050565b600080600073985c24816385c4cce9fa48ca484fa174a279b89c633b89b2366040518061012001604052808d6001600160a01b031681526020018c81526020018b6001600160a01b031681526020018a6001600160a01b03168152602001610371896108c6565b815260200161037f886108c6565b815260200161039f6103908a6108c6565b61039a908c6119af565b6108e8565b81526020016103b06103908a6108c6565b6103b9906119c6565b815260016020909101526040516001600160e01b031960e084901b1681526103e491906004016119e2565b6040805180830381865af4158015610400573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104249190611a75565b50925060008313156104715760006104438b8b600001518a8888610952565b9093509050801561046b576104678b8b600001518b89610462866108e8565b610952565b5091505b50610486565b6104828a8a600001518a8887610952565b5091505b9750975097945050505050565b6000806104d86040518060c0016040528060008152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001600081525090565b6104e0610f22565b88604001516001600160a01b0316876001600160a01b03161415801561051c575088606001516001600160a01b0316876001600160a01b031614155b156105475788516040516353f8171160e01b815261053e918991600401611aa6565b60405180910390fd5b6105518a8a6109db565b61055b878a610a26565b6001600160a01b03168152610571878a8a610a95565b60208201528051610583908a8a610a95565b816040018190525060008073985c24816385c4cce9fa48ca484fa174a279b89c633b89b2366040518061012001604052808f6001600160a01b031681526020018e81526020018c6001600160a01b0316815260200186600001516001600160a01b031681526020016105f887602001516108c6565b815260200161060a87604001516108c6565b815260200161062961061f88602001516108c6565b61039a908e6119af565b815260200161063e61061f88602001516108c6565b610647906119c6565b815260016020909101526040516001600160e01b031960e084901b16815261067291906004016119e2565b6040805180830381865af415801561068e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b29190611a75565b91509150600073985c24816385c4cce9fa48ca484fa174a279b89c63b5f97bcd8e8e600001518c868d60006040518763ffffffff1660e01b81526004016106fe96959493929190611ac0565b60c060405180830381865af415801561071b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073f9190611b10565b905060008084131561081f5781604001518560600181815250506107728e8e600001518760000151886040015188610952565b6101408701819052909150156107c65761079f8e8e600001518d88602001516104628a61014001516108e8565b5061016086018190526107b190610b36565b856060018181516107c29190611ba2565b9052505b84604001516020015185602001516000015186606001516107e791906119af565b6107f19190611bcb565b60a0860181905260c086015261080681610b36565b8560a0018181516108179190611ba2565b905250610891565b6108348e8e600001518d886020015188610952565b509050610848610843826119c6565b610b36565b82604001516108579190611bdf565b6060860181905260408601516020908101519087015151909161087a91906119af565b6108849190611bcb565b60a0860181905260c08601525b60a094909401519d939c509a509198505050505050505050565b6000808212156108be57816000036108c0565b815b92915050565b60006002826000015183602001516108de9190611ba2565b6108c09190611bcb565b60006001600160ff1b038211156108be5760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b606482015260840161053e565b60008060008060008513156109bc5761096e86602001516108e8565b6109789086611bf2565b9150600061098a61039a8b8b8b610b88565b9050808313156109b65760208701516109a66108438386611c20565b6109b091906119af565b91508092505b506109cd565b6109ca858760000151610c0a565b91505b909890975095505050505050565b6109e58282610c7e565b80606001516001600160a01b031681604001516001600160a01b031603610a225780516040516332e6f44d60e21b815261053e9190600401611c40565b5050565b600081604001516001600160a01b0316836001600160a01b031603610a50575060608101516108c0565b81606001516001600160a01b0316836001600160a01b031603610a78575060408101516108c0565b8151604051637a0ca68160e01b815261053e918591600401611aa6565b610a9d610f9a565b82604001516001600160a01b0316846001600160a01b031603610ac557506020810151610b2f565b82606001516001600160a01b0316846001600160a01b031603610aed57506040810151610b2f565b82602001516001600160a01b0316846001600160a01b031603610b1257508051610b2f565b8251604051635f2394d160e11b815261053e918691600401611aa6565b9392505050565b6000808212156108be5760405162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f736974697665604482015260640161053e565b6000836001600160a01b031663bd02d0f5610ba38585610d4c565b6040518263ffffffff1660e01b8152600401610bc191815260200190565b602060405180830381865afa158015610bde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c029190611c54565b949350505050565b600080831215610c4c57610c1d826108e8565b610c26836108e8565b610c309085611c20565b610c3b906001611c6d565b610c459190611bf2565b90506108c0565b610c55826108e8565b6001610c60846108e8565b610c6a9086611c6d565b610c749190611c20565b610b2f9190611bf2565b80516001600160a01b0316610ca6576040516302fde0d760e11b815260040160405180910390fd5b6000826001600160a01b0316637ae1cfca610cc48460000151610ddf565b6040518263ffffffff1660e01b8152600401610ce291815260200190565b602060405180830381865afa158015610cff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d239190611c95565b90508015610d475781516040516309f8c93760e01b815261053e9190600401611c40565b505050565b6000604051602001610d899060208082526017908201527614d5d05417d253541050d517d413d3d317d05353d55395604a1b604082015260600190565b60408051601f198184030181528282528051602091820120908301526001600160a01b03808616918301919091528316606082015260800160405160208183030381529060405280519060200120905092915050565b6000604051602001610e17906020808252601290820152711254d7d3505492d15517d11254d05093115160721b604082015260600190565b60408051601f198184030181528282528051602091820120908301526001600160a01b03841690820152606001604051602081830303815290604052805190602001209050919050565b604051806060016040528060008152602001600081526020016000151581525090565b604080516101c081018252600060e08201818152610100830182905261012083018290526101408301829052610160830182905261018083018290526101a08301829052825282516080810184528181526020808201839052818501839052606082019290925290820152908101610efa610fb4565b815260006020820152604001610f0e61109e565b815260006020820181905260409091015290565b60405180610180016040528060006001600160a01b03168152602001610f46610f9a565b8152602001610f53610f9a565b815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160001515815260200160008152602001600081525090565b604051806040016040528060008152602001600081525090565b60408051610180810190915260006080820181815260a0830182905260c0830182905260e0830182905261010083018290526101208301829052610140830191909152606061016083015281526020810161106a604080516101808101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b8152604080516080810182526000808252602082810182905292820181905260608201529101908152602001606081525090565b6040805160c081019091526000606082018181526080830182905260a08301919091528190815260200161111e604051806101400160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b81526040805160208181019092526000815291015290565b6001600160a01b038116811461114b57600080fd5b50565b60006080828403121561116057600080fd5b604051608081016001600160401b038111828210171561119057634e487b7160e01b600052604160045260246000fd5b60405290508082356111a181611136565b815260208301356111b181611136565b602082015260408301356111c481611136565b604082015260608301356111d781611136565b6060919091015292915050565b6000604082840312156111f657600080fd5b604080519081016001600160401b038111828210171561122657634e487b7160e01b600052604160045260246000fd5b604052823581526020928301359281019290925250919050565b600060c0828403121561125257600080fd5b604051606081016001600160401b038111828210171561128257634e487b7160e01b600052604160045260246000fd5b60405290508061129284846111e4565b81526112a184604085016111e4565b60208201526112b384608085016111e4565b60408201525092915050565b801515811461114b57600080fd5b60008060008060008060006101e0888a0312156112e957600080fd5b87356112f481611136565b96506113038960208a0161114e565b95506113128960a08a01611240565b9450610160880135935061018088013592506101a088013591506101c088013561133b816112bf565b8091505092959891949750929550565b6000806000806000806000610180888a03121561136757600080fd5b873561137281611136565b96506113818960208a0161114e565b955060a088013561139181611136565b945060c08801356113a181611136565b935060e088013592506113b8896101008a016111e4565b91506113c8896101408a016111e4565b905092959891949750929550565b6000806000806000806101c087890312156113f057600080fd5b86356113fb81611136565b955061140a886020890161114e565b94506114198860a08901611240565b935061016087013561142a81611136565b925061018087013591506101a087013561144381611136565b809150509295509295509295565b6001600160a01b03169052565b80516001600160a01b03908116835260208083015182169084015260408083015182169084015260609182015116910152565b600081518084526020840193506020830160005b828110156114cc5781516001600160a01b03168652602095860195909101906001016114a5565b5093949350505050565b634e487b7160e01b600052602160045260246000fd5b600981106114fc576114fc6114d6565b9052565b600381106114fc576114fc6114d6565b61151b8282516114ec565b602081015161152d6020840182611500565b5060408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e08301526101008101516101008301526101208101516101208301526101408101516101408301526101608101516101608301525050565b600081518084526020840193506020830160005b828110156114cc5781518652602095860195909101906001016115b2565b805161024080845281516001600160a01b039081169185019190915260208201511661026084015260408101516000919061160f610280860182611451565b5060608101516116236102a0860182611451565b5060808101516116376102c0860182611451565b5060a081015161164b6102e0860182611451565b5060c081015161165f610300860182611451565b5060e0015161010061032085015261167b610340850182611491565b9050602083015161168f6020860182611510565b50604083810151805115156101a0870152602081015115156101c08701529081015115156101e086015260609081015115156102008601528301518482036102208601526116dd828261159e565b95945050505050565b805160018060a01b03815116835260018060a01b03602082015116602084015260018060a01b0360408201511660408401525060208101518051606084015260208101516080840152604081015160a0840152606081015160c0840152608081015160e084015260a081015161010084015260c081015161012084015260e0810151610140840152610100810151610160840152610120810151610180840152506040810151610d476101a08401825115159052565b600281106114fc576114fc6114d6565b805180516001600160a01b03908116845260208083015182169085015260408083015182169085015260608083015190911690840152608080820151600092916117f890860182611451565b5060a081015161180b60a0860182611451565b5060c0810151905061182060c0850182611451565b50602082015161183360e085018261145e565b5060408201516103a06101608501526118506103a08501826115d0565b9050606083015161018085015260808301516118706101a08601826116e6565b5060a083015161036085015260c083015161188f61038086018261179c565b509392505050565b80518252602090810151910152565b60e0815260006118b960e08301856117ac565b90506118c9602083018451611897565b60208301516118db6060840182611897565b50604083015161188f60a0840182611897565b600080600080600060a0868803121561190657600080fd5b855160208701516040880151606089015160808a01519398509196509450925061192f816112bf565b809150509295509295909350565b60608152600061195060608301856117ac565b9050610b2f6020830184611897565b60008060006060848603121561197457600080fd5b835160208501516040860151919450925061198e816112bf565b809150509250925092565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176108c0576108c0611999565b6000600160ff1b82016119db576119db611999565b5060000390565b81516001600160a01b03168152602080830151610180830191611a079084018261145e565b506040830151611a1a60a0840182611451565b506060830151611a2d60c0840182611451565b50608083015160e083015260a083015161010083015260c083015161012083015260e0830151610140830152610100830151611a6e61016084018215159052565b5092915050565b60008060408385031215611a8857600080fd5b82516020840151909250611a9b816112bf565b809150509250929050565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03878116825286811660208301526040820186905284151560608301528316608082015260c0810160068310611aff57611aff6114d6565b8260a0830152979650505050505050565b600060c0828403128015611b2357600080fd5b5060405160009060c081016001600160401b0381118282101715611b5557634e487b7160e01b83526041600452602483fd5b6040908152845182526020808601519083015284810151908201526060840151611b7e81611136565b60608201526080848101519082015260a09384015193810193909352509092915050565b808201808211156108c0576108c0611999565b634e487b7160e01b600052601260045260246000fd5b600082611bda57611bda611bb5565b500490565b818103818111156108c0576108c0611999565b600082611c0157611c01611bb5565b600160ff1b821460001984141615611c1b57611c1b611999565b500590565b8181036000831280158383131683831282161715611a6e57611a6e611999565b6001600160a01b0391909116815260200190565b600060208284031215611c6657600080fd5b5051919050565b8082018281126000831280158216821582161715611c8d57611c8d611999565b505092915050565b600060208284031215611ca757600080fd5b8151610b2f816112bf56fea2646970667358221220a4a4d76844aba466a53aa4aa520dc6a3b60a2496160bc4b468ec92f117f3823d64736f6c634300081c0033