diff --git a/jupiter/client.gen.go b/jupiter/client.gen.go index 8753a94..e93309f 100644 --- a/jupiter/client.gen.go +++ b/jupiter/client.gen.go @@ -1,6 +1,6 @@ // Package jupiter provides primitives to interact with the openapi HTTP API. // -// Code generated by github.com/deepmap/oapi-codegen/v2 version v2.0.0 DO NOT EDIT. +// Code generated by github.com/deepmap/oapi-codegen/v2 version v2.1.0 DO NOT EDIT. package jupiter import ( @@ -75,6 +75,7 @@ type PlatformFee struct { // QuoteResponse defines model for QuoteResponse. type QuoteResponse struct { + ComputedAutoSlippage *int32 `json:"computedAutoSlippage,omitempty"` ContextSlot *float32 `json:"contextSlot,omitempty"` InAmount string `json:"inAmount"` InputMint string `json:"inputMint"` @@ -144,7 +145,10 @@ type SwapRequest struct { // PrioritizationFeeLamports Prioritization fee lamports paid for the transaction in addition to the signatures fee. Mutually exclusive with compute_unit_price_micro_lamports. If `auto` is used, Jupiter will automatically set a priority fee and it will be capped at 5,000,000 lamports / 0.005 SOL. PrioritizationFeeLamports *SwapRequest_PrioritizationFeeLamports `json:"prioritizationFeeLamports,omitempty"` - QuoteResponse QuoteResponse `json:"quoteResponse"` + + // ProgramAuthorityId The program authority id [0;7], load balanced across the available set by default + ProgramAuthorityId *int `json:"programAuthorityId,omitempty"` + QuoteResponse QuoteResponse `json:"quoteResponse"` // SkipUserAccountsRpcCalls When enabled, it will not do any rpc calls check on user's accounts. Enable it only when you already setup all the accounts needed for the trasaction, like wrapping or unwrapping sol, destination account is already created. SkipUserAccountsRpcCalls *bool `json:"skipUserAccountsRpcCalls,omitempty"` @@ -197,6 +201,15 @@ type AmountParameter = int // AsLegacyTransactionParameter defines model for AsLegacyTransactionParameter. type AsLegacyTransactionParameter = bool +// AutoSlippageCollisionValueParameter defines model for AutoSlippageCollisionValueParameter. +type AutoSlippageCollisionValueParameter = int + +// AutoSlippageParameter defines model for AutoSlippageParameter. +type AutoSlippageParameter = bool + +// ComputeAutoSlippageParameter defines model for ComputeAutoSlippageParameter. +type ComputeAutoSlippageParameter = bool + // DexesParameter defines model for DexesParameter. type DexesParameter = []string @@ -209,6 +222,12 @@ type InputMintParameter = string // MaxAccountsParameter defines model for MaxAccountsParameter. type MaxAccountsParameter = int +// MaxAutoSlippageBpsParameter defines model for MaxAutoSlippageBpsParameter. +type MaxAutoSlippageBpsParameter = int + +// MinimizeSlippage defines model for MinimizeSlippage. +type MinimizeSlippage = bool + // OnlyDirectRoutesParameter defines model for OnlyDirectRoutesParameter. type OnlyDirectRoutesParameter = bool @@ -247,6 +266,18 @@ type GetQuoteParams struct { // SlippageBps The slippage in basis points, 1 basis point is 0.01%. If the output token amount exceeds the slippage then the swap transaction will fail. SlippageBps *SlippageParameter `form:"slippageBps,omitempty" json:"slippageBps,omitempty"` + // AutoSlippage Automatically calculate the slippage based on pairs. + AutoSlippage *AutoSlippageParameter `form:"autoSlippage,omitempty" json:"autoSlippage,omitempty"` + + // AutoSlippageCollisionUsdValue Automatic slippage collision value. + AutoSlippageCollisionUsdValue *AutoSlippageCollisionValueParameter `form:"autoSlippageCollisionUsdValue,omitempty" json:"autoSlippageCollisionUsdValue,omitempty"` + + // ComputeAutoSlippage Compute auto slippage value without using it. + ComputeAutoSlippage *ComputeAutoSlippageParameter `form:"computeAutoSlippage,omitempty" json:"computeAutoSlippage,omitempty"` + + // MaxAutoSlippageBps Max slippage in basis points for auto slippage calculation. Default is 400. + MaxAutoSlippageBps *MaxAutoSlippageBpsParameter `form:"maxAutoSlippageBps,omitempty" json:"maxAutoSlippageBps,omitempty"` + // SwapMode (ExactIn or ExactOut) Defaults to ExactIn. ExactOut is for supporting use cases where you need an exact token amount, like payments. In this case the slippage is on the input token. SwapMode *GetQuoteParamsSwapMode `form:"swapMode,omitempty" json:"swapMode,omitempty"` @@ -270,6 +301,9 @@ type GetQuoteParams struct { // MaxAccounts Rough estimate of the max accounts to be used for the quote, so that you can compose with your own accounts MaxAccounts *MaxAccountsParameter `form:"maxAccounts,omitempty" json:"maxAccounts,omitempty"` + + // MinimizeSlippage Default is false. Miminize slippage attempts to find routes with lower slippage. + MinimizeSlippage *MinimizeSlippage `form:"minimizeSlippage,omitempty" json:"minimizeSlippage,omitempty"` } // GetQuoteParamsSwapMode defines parameters for GetQuote. @@ -302,7 +336,7 @@ func (t *SwapRequest_ComputeUnitPriceMicroLamports) MergeSwapRequestComputeUnitP return err } - merged, err := runtime.JsonMerge(t.union, b) + merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } @@ -328,7 +362,7 @@ func (t *SwapRequest_ComputeUnitPriceMicroLamports) MergeSwapRequestComputeUnitP return err } - merged, err := runtime.JsonMerge(t.union, b) + merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } @@ -364,7 +398,7 @@ func (t *SwapRequest_PrioritizationFeeLamports) MergeSwapRequestPrioritizationFe return err } - merged, err := runtime.JsonMerge(t.union, b) + merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } @@ -390,7 +424,7 @@ func (t *SwapRequest_PrioritizationFeeLamports) MergeSwapRequestPrioritizationFe return err } - merged, err := runtime.JsonMerge(t.union, b) + merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } @@ -747,6 +781,70 @@ func NewGetQuoteRequest(server string, params *GetQuoteParams) (*http.Request, e } + if params.AutoSlippage != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "autoSlippage", runtime.ParamLocationQuery, *params.AutoSlippage); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.AutoSlippageCollisionUsdValue != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "autoSlippageCollisionUsdValue", runtime.ParamLocationQuery, *params.AutoSlippageCollisionUsdValue); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.ComputeAutoSlippage != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "computeAutoSlippage", runtime.ParamLocationQuery, *params.ComputeAutoSlippage); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.MaxAutoSlippageBps != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "maxAutoSlippageBps", runtime.ParamLocationQuery, *params.MaxAutoSlippageBps); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + if params.SwapMode != nil { if queryFrag, err := runtime.StyleParamWithLocation("form", true, "swapMode", runtime.ParamLocationQuery, *params.SwapMode); err != nil { @@ -875,6 +973,22 @@ func NewGetQuoteRequest(server string, params *GetQuoteParams) (*http.Request, e } + if params.MinimizeSlippage != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "minimizeSlippage", runtime.ParamLocationQuery, *params.MinimizeSlippage); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + queryURL.RawQuery = queryValues.Encode() } diff --git a/jupiter/openapi/jupiter-swagger.yaml b/jupiter/openapi/jupiter-swagger.yaml index bd2d8e8..e98b8ad 100644 --- a/jupiter/openapi/jupiter-swagger.yaml +++ b/jupiter/openapi/jupiter-swagger.yaml @@ -28,6 +28,10 @@ paths: - $ref: '#/components/parameters/OutputMintParameter' - $ref: '#/components/parameters/AmountParameter' - $ref: '#/components/parameters/SlippageParameter' + - $ref: '#/components/parameters/AutoSlippageParameter' + - $ref: '#/components/parameters/AutoSlippageCollisionValueParameter' + - $ref: '#/components/parameters/ComputeAutoSlippageParameter' + - $ref: '#/components/parameters/MaxAutoSlippageBpsParameter' - $ref: '#/components/parameters/SwapModeParameter' - $ref: '#/components/parameters/DexesParameter' - $ref: '#/components/parameters/ExcludeDexesParameter' @@ -36,6 +40,7 @@ paths: - $ref: '#/components/parameters/AsLegacyTransactionParameter' - $ref: '#/components/parameters/PlatformFeeBpsParameter' - $ref: '#/components/parameters/MaxAccountsParameter' + - $ref: '#/components/parameters/MinimizeSlippage' responses: '200': description: Successful response @@ -183,6 +188,9 @@ components: slippageBps: type: integer format: int32 + computedAutoSlippage: + type: integer + format: int32 platformFee: $ref: '#/components/schemas/PlatformFee' priceImpactPct: @@ -300,6 +308,9 @@ components: skipUserAccountsRpcCalls: description: When enabled, it will not do any rpc calls check on user's accounts. Enable it only when you already setup all the accounts needed for the trasaction, like wrapping or unwrapping sol, destination account is already created. type: boolean + programAuthorityId: + description: The program authority id [0;7], load balanced across the available set by default + type: integer quoteResponse: $ref: '#/components/schemas/QuoteResponse' @@ -405,6 +416,30 @@ components: in: query schema: type: integer + AutoSlippageParameter: + name: autoSlippage + description: Automatically calculate the slippage based on pairs. + in: query + schema: + type: boolean + AutoSlippageCollisionValueParameter: + name: autoSlippageCollisionUsdValue + description: Automatic slippage collision value. + in: query + schema: + type: integer + MaxAutoSlippageBpsParameter: + name: maxAutoSlippageBps + description: Max slippage in basis points for auto slippage calculation. Default is 400. + in: query + schema: + type: integer + ComputeAutoSlippageParameter: + name: computeAutoSlippage + description: Compute auto slippage value without using it. + in: query + schema: + type: boolean SwapModeParameter: name: swapMode description: (ExactIn or ExactOut) Defaults to ExactIn. ExactOut is for supporting use cases where you need an exact token amount, like payments. In this case the slippage is on the input token. @@ -458,3 +493,9 @@ components: in: query schema: type: integer + MinimizeSlippage: + name: minimizeSlippage + description: Default is false. Miminize slippage attempts to find routes with lower slippage. + in: query + schema: + type: boolean