0 txs
0 calls
constructor
No constructor.
functions
getExecutionPrice
viewfunction getExecutionPrice(DataStore dataStore, tuple market, tuple indexTokenPrice, 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
0x61214a61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061004b5760003560e01c8063146fa98e1461005057806381eba89e1461008a578063dafa66bf146100b8575b600080fd5b61006361005e3660046118de565b61012a565b60408051825181526020808401519082015291810151908201526060015b60405180910390f35b61009d61009836600461195b565b6102ff565b60408051938452602084019290925290820152606001610081565b6100cb6100c63660046119e6565b610488565b604080519384526020808501939093528151848201529181015160608085019190915291810151608080850191909152918101516001600160a01b031660a0808501919091529181015160c0840152015160e082015261010001610081565b6101326114cf565b61013a6114f0565b80516001600160a01b038a1690526020810188905261016961015b856107f2565b604083810151602001510152565b604081810151015183151590526000808513908161018857841561018a565b845b90506101ae8161019b57600061019f565b6000195b60408501516020015160a00152565b6080830180516020908101518a9052815181015101889052516040015185151590526101d86114cf565b60008713156102695760405163358daa8960e01b815273c4bb9a78e82aa1cd437db1bed9285bab3e3c85119063358daa899061021a9087908e90600401611dbf565b608060405180830381865af4158015610237573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025b9190611ea7565b6040850152505081526102f0565b60405163103b6c3760e31b815273c4bb9a78e82aa1cd437db1bed9285bab3e3c8511906381db61b8906102a29087908e90600401611dbf565b606060405180830381865af41580156102bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e39190611edd565b6040840152602083015281525b9b9a5050505050505050505050565b600080600073ca0e32f0b16bbd4cbbcba46bdd3f103c312397d3633b89b2366040518061012001604052808d6001600160a01b031681526020018c81526020018b6001600160a01b031681526020018a6001600160a01b031681526020016103668961080d565b81526020016103748861080d565b81526020016103946103858a61080d565b61038f908c611f21565b61082f565b81526020016103a56103858a61080d565b6103ae90611f38565b815260016020909101526040516001600160e01b031960e084901b1681526103d99190600401611f54565b602060405180830381865af41580156103f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041a9190611fea565b925060008313156104665760006104388b8b600001518a8888610899565b909350905080156104605761045c8b8b600001518b896104578661082f565b610899565b5091505b5061047b565b6104778a8a600001518a8887610899565b5091505b9750975097945050505050565b600080610493611586565b61049b6115c5565b88604001516001600160a01b0316876001600160a01b0316141580156104d7575088606001516001600160a01b0316876001600160a01b031614155b156105025788516040516353f8171160e01b81526104f9918991600401612003565b60405180910390fd5b61050c8a8a610922565b610516878a61096d565b6001600160a01b0316815261052c878a8a6109dc565b6020820152805161053e908a8a6109dc565b8160400181905250600073ca0e32f0b16bbd4cbbcba46bdd3f103c312397d3633b89b2366040518061012001604052808e6001600160a01b031681526020018d81526020018b6001600160a01b0316815260200185600001516001600160a01b031681526020016105b2866020015161080d565b81526020016105c4866040015161080d565b81526020016105e36105d9876020015161080d565b61038f908d611f21565b81526020016105f86105d9876020015161080d565b61060190611f38565b815260016020909101526040516001600160e01b031960e084901b16815261062c9190600401611f54565b602060405180830381865af4158015610649573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066d9190611fea565b905060006106878c8c600001518a600086138b6000610a7d565b90506000808313156107675781604001518460600181815250506106ba8d8d600001518660000151876040015187610899565b61012086018190529091501561070e576106e78d8d600001518c876020015161045789610120015161082f565b5061014085018190526106f990610daf565b8460600181815161070a919061201d565b9052505b836040015160200151846020015160000151856060015161072f9190611f21565b6107399190612046565b60a0850181905260c085015261074e81610daf565b8460a00181815161075f919061201d565b9052506107d9565b61077c8d8d600001518c876020015187610899565b50905061079061078b82611f38565b610daf565b826040015161079f919061205a565b606085018190526040850151602090810151908601515190916107c29190611f21565b6107cc9190612046565b60a0850181905260c08501525b60a093909301519c929b50995090975050505050505050565b6000808212156108055781600003610807565b815b92915050565b6000600282600001518360200151610825919061201d565b6108079190612046565b60006001600160ff1b038211156108055760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b60648201526084016104f9565b6000806000806000851315610903576108b5866020015161082f565b6108bf908661206d565b915060006108d161038f8b8b8b610e01565b9050808313156108fd5760208701516108ed61078b838661209b565b6108f79190611f21565b91508092505b50610914565b610911858760000151610e83565b91505b909890975095505050505050565b61092c8282610ef7565b80606001516001600160a01b031681604001516001600160a01b0316036109695780516040516332e6f44d60e21b81526104f991906004016120bb565b5050565b600081604001516001600160a01b0316836001600160a01b03160361099757506060810151610807565b81606001516001600160a01b0316836001600160a01b0316036109bf57506040810151610807565b8151604051637a0ca68160e01b81526104f9918591600401612003565b6109e4611634565b82604001516001600160a01b0316846001600160a01b031603610a0c57506020810151610a76565b82606001516001600160a01b0316846001600160a01b031603610a3457506040810151610a76565b82602001516001600160a01b0316846001600160a01b031603610a5957508051610a76565b8251604051635f2394d160e11b81526104f9918691600401612003565b9392505050565b610a85611586565b610a8d611586565b600080846005811115610aa257610aa2611b4f565b03610b2657886001600160a01b031663bd02d0f5610ac08a89610fc5565b6040518263ffffffff1660e01b8152600401610ade91815260200190565b602060405180830381865afa158015610afb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1f9190611fea565b9050610c67565b6001846005811115610b3a57610b3a611b4f565b14610c67576005846005811115610b5357610b53611b4f565b03610b7057886001600160a01b031663bd02d0f5610ac08a61104e565b6003846005811115610b8457610b84611b4f565b03610ba257886001600160a01b031663bd02d0f5610ac08a896110d4565b6004846005811115610bb657610bb6611b4f565b03610bd457886001600160a01b031663bd02d0f5610ac08a8961110c565b6002846005811115610be857610be8611b4f565b03610c6757886001600160a01b031663bd02d0f5610c058a611147565b6040518263ffffffff1660e01b8152600401610c2391815260200190565b602060405180830381865afa158015610c40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c649190611fea565b90505b6000896001600160a01b031663bd02d0f5604051602001610cb49060208082526018908201527729aba0a82fa322a2afa922a1a2a4ab22a92fa320a1aa27a960411b604082015260600190565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b8152600401610ce891815260200190565b602060405180830381865afa158015610d05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d299190611fea565b90506000610d378984611189565b9050610d438183611189565b808552610d50908261205a565b60208501526001600160a01b0387166060850152610d6e8b886111a2565b60808501819052610d80908a90611189565b60a08501819052610d91828b61205a565b610d9b919061205a565b604085015250919998505050505050505050565b6000808212156108055760405162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f73697469766560448201526064016104f9565b6000836001600160a01b031663bd02d0f5610e1c85856112f3565b6040518263ffffffff1660e01b8152600401610e3a91815260200190565b602060405180830381865afa158015610e57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7b9190611fea565b949350505050565b600080831215610ec557610e968261082f565b610e9f8361082f565b610ea9908561209b565b610eb49060016120cf565b610ebe919061206d565b9050610807565b610ece8261082f565b6001610ed98461082f565b610ee390866120cf565b610eed919061209b565b610a76919061206d565b80516001600160a01b0316610f1f576040516302fde0d760e11b815260040160405180910390fd5b6000826001600160a01b0316637ae1cfca610f3d846000015161136d565b6040518263ffffffff1660e01b8152600401610f5b91815260200190565b602060405180830381865afa158015610f78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9c91906120f7565b90508015610fc05781516040516309f8c93760e01b81526104f991906004016120bb565b505050565b6000604051602001610ffa906020808252600f908201526e29aba0a82fa322a2afa320a1aa27a960891b604082015260600190565b60408051601f198184030181528282528051602091820120908301526001600160a01b0385169082015282151560608201526080015b60405160208183030381529060405280519060200120905092915050565b600060405160200161108a9060208082526016908201527520aa27a6a4a1afa9aba0a82fa322a2afa320a1aa27a960511b604082015260600190565b60408051601f198184030181528282528051602091820120908301526001600160a01b03841690820152606001604051602081830303815290604052805190602001209050919050565b6000604051602001610ffa906020808252601290820152712222a827a9a4aa2fa322a2afa320a1aa27a960711b604082015260600190565b6000604051602001610ffa906020808252601590820152742ba4aa24222920aba0a62fa322a2afa320a1aa27a960591b604082015260600190565b600060405160200161108a906020808252601c908201527b20aa27a6a4a1afaba4aa24222920aba0a62fa322a2afa320a1aa27a960211b604082015260600190565b6000610a76838368327cb2734119d3b7a9601e1b6113a5565b600080836001600160a01b031663bd02d0f56040516020016111e99060208082526011908201527026a0ac2faaa4afa322a2afa320a1aa27a960791b604082015260600190565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b815260040161121d91815260200190565b602060405180830381865afa15801561123a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125e9190611fea565b90506000846001600160a01b031663bd02d0f561127a866113b2565b6040518263ffffffff1660e01b815260040161129891815260200190565b602060405180830381865afa1580156112b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d99190611fea565b90508181106112e857816112ea565b805b95945050505050565b60006040516020016113309060208082526017908201527614d5d05417d253541050d517d413d3d317d05353d55395604a1b604082015260600190565b60408051601f198184030181528282528051602091820120908301526001600160a01b038086169183019190915283166060820152608001611030565b600060405160200161108a906020808252601290820152711254d7d3505492d15517d11254d05093115160721b604082015260600190565b6000610e7b8484846113e5565b600060405160200161108a906020808252600d908201526c2aa4afa322a2afa320a1aa27a960991b604082015260600190565b600080806000198587098587029250828110838203039150508060000361141f5783828161141557611415612030565b0492505050610a76565b8084116114665760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b60448201526064016104f9565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b60405180606001604052806000815260200160008152602001600081525090565b604080516101a081018252600060e082018181526101008301829052610120830182905261014083018290526101608301829052610180830182905282528251608081018452818152602080820183905281850183905260608201929092529082015290810161155e61164e565b815260006020820152604001611572611725565b815260006020820181905260409091015290565b6040518060c0016040528060008152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001600081525090565b60405180610160016040528060006001600160a01b031681526020016115e9611634565b81526020016115f6611634565b815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b604051806040016040528060008152602001600081525090565b604080516101608101909152600060608083018281526080840183905260a0840183905260c0840183905260e0840183905261010084018390526101208401929092526101408301528152602081016116fb6040805161016081019091528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b81526040805160808101825260008082526020828101829052928201819052606082015291015290565b6040805160c081019091526000606082018181526080830182905260a08301919091528190815260200161179e6040518061012001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b81526040805160208181019092526000815291015290565b6001600160a01b03811681146117cb57600080fd5b50565b80356117d9816117b6565b919050565b6000608082840312156117f057600080fd5b604051608081016001600160401b038111828210171561182057634e487b7160e01b600052604160045260246000fd5b6040529050808235611831816117b6565b81526020830135611841816117b6565b60208201526040830135611854816117b6565b60408201526060830135611867816117b6565b6060919091015292915050565b60006040828403121561188657600080fd5b604080519081016001600160401b03811182821017156118b657634e487b7160e01b600052604160045260246000fd5b604052823581526020928301359281019290925250919050565b80151581146117cb57600080fd5b6000806000806000806000610160888a0312156118fa57600080fd5b8735611905816117b6565b96506119148960208a016117de565b95506119238960a08a01611874565b945060e088013593506101008801359250610120880135915061014088013561194b816118d0565b8091505092959891949750929550565b6000806000806000806000610180888a03121561197757600080fd5b8735611982816117b6565b96506119918960208a016117de565b955060a08801356119a1816117b6565b945060c08801356119b1816117b6565b935060e088013592506119c8896101008a01611874565b91506119d8896101408a01611874565b905092959891949750929550565b6000806000806000808688036101c0811215611a0157600080fd5b8735611a0c816117b6565b9650611a1b8960208a016117de565b955060c0609f1982011215611a2f57600080fd5b50604051606081016001600160401b0381118282101715611a6057634e487b7160e01b600052604160045260246000fd5b604052611a708960a08a01611874565b8152611a7f8960e08a01611874565b6020820152611a92896101208a01611874565b60408201529350610160870135611aa8816117b6565b92506101808701359150611abf6101a088016117ce565b90509295509295509295565b6001600160a01b03169052565b80516001600160a01b03908116835260208083015182169084015260408083015182169084015260609182015116910152565b600081518084526020808501945080840160005b83811015611b445781516001600160a01b031687529582019590820190600101611b1f565b509495945050505050565b634e487b7160e01b600052602160045260246000fd5b60098110611b7557611b75611b4f565b9052565b60038110611b7557611b75611b4f565b611b94828251611b65565b6020810151611ba66020840182611b79565b5060408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e08301526101008082015181840152506101208082015181840152506101408082015181840152505050565b805161020080845281516001600160a01b03908116918501919091526020820151166102208401526040810151600091611c49610240860183611acb565b60608101519150611c5e610260860183611acb565b60808101519150611c73610280860183611acb565b60a08101519150611c886102a0860183611acb565b60c08101519150611c9d6102c0860183611acb565b60e001516101006102e08601529050611cba610300850182611b0b565b90506020830151611cce6020860182611b89565b5060408381015180511515610180870152602081015115156101a08701529081015115156101c0860152606081015115156101e0860152509392505050565b805160018060a01b03808251168452806020830151166020850152806040830151166040850152505060208101518051606084015260208101516080840152604081015160a0840152606081015160c0840152608081015160e084015260a0810151610100818186015260c083015161012086015260e0830151610140860152808301516101608601525050506040810151610fc06101808401825115159052565b60028110611b7557611b75611b4f565b606081526000835160018060a01b038082511660608501528060208301511660808501528060408301511660a08501528060608301511660c08501528060808301511660e08501525060a08101519050611e1d610100840182611acb565b506020840151611e31610120840182611ad8565b5060408401516103606101a0840152611e4e6103c0840182611c0b565b905060608501516101c08401526080850151611e6e6101e0850182611d0d565b5060a085015161038084015260c0850151611e8d6103a0850182611daf565b509050610a76602083018480518252602090810151910152565b60008060008060808587031215611ebd57600080fd5b505082516020840151604085015160609095015191969095509092509050565b600080600060608486031215611ef257600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761080757610807611f0b565b6000600160ff1b8201611f4d57611f4d611f0b565b5060000390565b81516001600160a01b03168152602080830151610180830191611f7990840182611ad8565b506040830151611f8c60a0840182611acb565b506060830151611f9f60c0840182611acb565b50608083015160e083015260a0830151610100818185015260c085015161012085015260e085015161014085015280850151915050611fe361016084018215159052565b5092915050565b600060208284031215611ffc57600080fd5b5051919050565b6001600160a01b0392831681529116602082015260400190565b8082018082111561080757610807611f0b565b634e487b7160e01b600052601260045260246000fd5b60008261205557612055612030565b500490565b8181038181111561080757610807611f0b565b60008261207c5761207c612030565b600160ff1b82146000198414161561209657612096611f0b565b500590565b8181036000831280158383131683831282161715611fe357611fe3611f0b565b6001600160a01b0391909116815260200190565b80820182811260008312801582168215821617156120ef576120ef611f0b565b505092915050565b60006020828403121561210957600080fd5b8151610a76816118d056fea2646970667358221220bc31343d3531a4fff918f03b45e961c6542f6df55021bbee0134afc17565f11864736f6c63430008120033