diff --git a/api-reference/trails-api.gen.json b/api-reference/trails-api.gen.json index f746b67..baa2f8d 100644 --- a/api-reference/trails-api.gen.json +++ b/api-reference/trails-api.gen.json @@ -15,7 +15,7 @@ "ApiKeyAuth": { "type": "apiKey", "in": "header", - "description": "API Key for authenticating requests, get an access key at https://trails.build and request early access", + "description": "Project access key for authenticating requests, get an access key at https://sequence.build", "name": "X-Access-Key" } }, @@ -1332,6 +1332,36 @@ "CCTPV2_MESSAGE" ] }, + "IntentStatus": { + "type": "string", + "description": "Represented as uint8 on the server side", + "enum": [ + "QUOTED", + "COMMITTED", + "EXECUTING", + "FAILED", + "SUCCEEDED" + ] + }, + "TransactionType": { + "type": "string", + "description": "Represented as uint8 on the server side", + "enum": [ + "UNKNOWN", + "DEPOSIT", + "ORIGIN", + "DESTINATION", + "ROUTE" + ] + }, + "TransactionContext": { + "type": "string", + "description": "Represented as uint8 on the server side", + "enum": [ + "NONE", + "CCTPV2_MESSAGE" + ] + }, "TransactionStatus": { "type": "string", "description": "Represented as uint8 on the server side", @@ -3094,6 +3124,179 @@ } } }, + "GetTokenPricesRequest": { + "type": "object", + "required": [ + "tokens" + ], + "properties": { + "tokens": { + "type": "array", + "description": "[]Token", + "items": { + "$ref": "#/components/schemas/Token" + } + } + } + }, + "GetTokenPricesResponse": { + "type": "object", + "required": [ + "tokenPrices" + ], + "properties": { + "tokenPrices": { + "type": "array", + "description": "[]TokenPrice", + "items": { + "$ref": "#/components/schemas/TokenPrice" + } + } + } + }, + "GetChainsRequest": { + "type": "object", + "properties": { + "routeProvider": { + "type": "string" + } + } + }, + "GetChainsResponse": { + "type": "object", + "required": [ + "chains" + ], + "properties": { + "chains": { + "type": "array", + "description": "[]ChainInfo", + "items": { + "$ref": "#/components/schemas/ChainInfo" + } + } + } + }, + "GetExactOutputRoutesRequest": { + "type": "object", + "required": [ + "destinationChainId", + "destinationTokenAddress" + ], + "properties": { + "destinationChainId": { + "type": "number" + }, + "destinationTokenAddress": { + "type": "string" + }, + "originChainId": { + "type": "number" + }, + "originTokenAddress": { + "type": "string" + }, + "ownerAddress": { + "type": "string" + } + } + }, + "GetExactOutputRoutesResponse": { + "type": "object", + "required": [ + "tokens" + ], + "properties": { + "tokens": { + "type": "array", + "description": "[]TokenInfo", + "items": { + "$ref": "#/components/schemas/TokenInfo" + } + } + } + }, + "GetExactInputRoutesRequest": { + "type": "object", + "required": [ + "originChainId", + "originTokenAddress" + ], + "properties": { + "originChainId": { + "type": "number" + }, + "originTokenAddress": { + "type": "string" + }, + "destinationChainId": { + "type": "number" + }, + "destinationTokenAddress": { + "type": "string" + } + } + }, + "GetExactInputRoutesResponse": { + "type": "object", + "required": [ + "tokens" + ], + "properties": { + "tokens": { + "type": "array", + "description": "[]TokenInfo", + "items": { + "$ref": "#/components/schemas/TokenInfo" + } + } + } + }, + "GetTokenListRequest": { + "type": "object", + "required": [ + "chainIds" + ], + "properties": { + "chainIds": { + "type": "array", + "description": "[]uint64", + "items": { + "type": "number" + } + }, + "searchQuery": { + "type": "string" + }, + "limit": { + "type": "number" + }, + "tokenAddress": { + "type": "string" + }, + "includeAllListed": { + "type": "boolean" + }, + "includeExternal": { + "type": "boolean" + } + } + }, + "GetTokenListResponse": { + "type": "object", + "required": [ + "tokens" + ], + "properties": { + "tokens": { + "type": "array", + "description": "[]TokenInfo", + "items": { + "$ref": "#/components/schemas/TokenInfo" + } + } + } + }, "Page": { "type": "object", "properties": { diff --git a/api-reference/trails-api.gen.yaml b/api-reference/trails-api.gen.yaml index 58d1351..fa63d4e 100644 --- a/api-reference/trails-api.gen.yaml +++ b/api-reference/trails-api.gen.yaml @@ -1,17 +1,15 @@ -# trails-api v1.0.0 005f3be0cfe130e92ee5ab03d992cac2bf9d2919 +# trails-api v1 9923827ab0683bd37e4aa9e713fa728b4c930297 # -- -# Code generated by webrpc-gen@v0.30.3 with openapi generator; DO NOT EDIT +# Code generated by webrpc-gen@v0.32.2 with openapi generator; DO NOT EDIT # -# webrpc-gen -service=Trails -match=@public -schema=proto/trails-api.ridl -target=openapi -title=Trails API -securityAnnotation=@auth -securitySchemes={ 'ApiKeyAuth': { 'type': 'apiKey', 'in': 'header', 'description': 'Project access key for authenticating requests, get an access key at https://sequence.build', 'name': 'X-Access-Key' }, } -out=proto/docs/trails-api.gen.yaml +# webrpc-gen -service=Trails -methodTreeShake -service=Trails -schema=proto/trails-api.ridl -target=openapi -title=Trails API -securityAnnotation=@auth -securitySchemes={'ApiKeyAuth': {'type': 'apiKey', 'in': 'header', 'description': 'Project access key for authenticating requests, get an access key at https://dashboard.trails.build', 'name': 'X-Access-Key'}} -out=proto/docs/trails-api.gen.yaml openapi: 3.0.0 info: title: 'Trails API' version: '' -servers: - - url: https://trails-api.sequence.app - description: Trails API + components: - securitySchemes: {'ApiKeyAuth': {'type': 'apiKey', 'in': 'header', 'description': 'API Key for authenticating requests, get an access key at https://trails.build and request early access', 'name': 'X-Access-Key'}} + securitySchemes: {'ApiKeyAuth': {'type': 'apiKey', 'in': 'header', 'description': 'Project access key for authenticating requests, get an access key at https://dashboard.trails.build', 'name': 'X-Access-Key'}} schemas: ErrorWebrpcEndpoint: type: object @@ -849,6 +847,72 @@ components: status: type: number example: 422 + ErrorClientOutdated: + type: object + required: + - error + - code + - msg + - status + properties: + error: + type: string + example: "ClientOutdated" + code: + type: number + example: 8009 + msg: + type: string + example: "Client is outdated" + cause: + type: string + status: + type: number + example: 422 + ErrorIntentsSkipped: + type: object + required: + - error + - code + - msg + - status + properties: + error: + type: string + example: "IntentsSkipped" + code: + type: number + example: 7000 + msg: + type: string + example: "Intents skipped as client is attempting a transaction that does not require intents" + cause: + type: string + status: + type: number + example: 400 + ErrorQuoteExpired: + type: object + required: + - error + - code + - msg + - status + properties: + error: + type: string + example: "QuoteExpired" + code: + type: number + example: 7001 + msg: + type: string + example: "Intent quote has expired. Please try again." + cause: + type: string + status: + type: number + example: 400 ErrorIntentsDisabled: type: object required: @@ -877,13 +941,52 @@ components: enum: - EXACT_INPUT - EXACT_OUTPUT - QuoteProviderType: + RouteProvider: type: string description: Represented as string on the server side enum: - - RELAY - - CCTPV2 + - AUTO + - CCTP - LIFI + - RELAY + - SUSHI + - WETH + - ZEROX + FundMethod: + type: string + description: Represented as string on the server side + enum: + - WALLET + - DIRECT_TRANSFER + - ONRAMP_MESH + - ONRAMP_MELD + IntentStatus: + type: string + description: Represented as uint8 on the server side + enum: + - QUOTED + - COMMITTED + - EXECUTING + - FAILED + - SUCCEEDED + - ABORTED + - REFUNDED + TransactionType: + type: string + description: Represented as uint8 on the server side + enum: + - UNKNOWN + - DEPOSIT + - ORIGIN + - DESTINATION + - ROUTE + - REFUND + TransactionContext: + type: string + description: Represented as uint8 on the server side + enum: + - NONE + - CCTPV2_MESSAGE TransactionStatus: type: string description: Represented as uint8 on the server side @@ -898,15 +1001,7 @@ components: - SUCCEEDED - FAILED - ABORTED - IntentStatus: - type: string - description: Represented as uint8 on the server side - enum: - - QUOTED - - COMMITTED - - EXECUTING - - FAILED - - SUCCEEDED + - REVERTED ChainGasUsageStatus: type: string description: Represented as string on the server side @@ -914,6 +1009,27 @@ components: - NORMAL - BUSY - VERY_BUSY + CCTPTransferStatus: + type: string + description: Represented as uint8 on the server side + enum: + - UNKNOWN + - ON_HOLD + - PENDING + - FETCHING + - COMPLETE + - FAILED + RelayTransferStatus: + type: string + description: Represented as uint8 on the server side + enum: + - UNKNOWN + - ON_HOLD + - PENDING + - FETCHING + - COMPLETE + - REFUNDED + - FAILED QuoteIntentRequest: type: object required: @@ -922,7 +1038,6 @@ components: - originTokenAddress - destinationChainId - destinationTokenAddress - - destinationToAddress properties: ownerAddress: type: string @@ -939,24 +1054,44 @@ components: destinationCallData: type: string destinationCallValue: - type: string + type: number originTokenAmount: type: number destinationTokenAmount: type: number tradeType: $ref: '#/components/schemas/TradeType' + fundMethod: + $ref: '#/components/schemas/FundMethod' + onlyNativeGasFee: + type: boolean options: $ref: '#/components/schemas/QuoteIntentRequestOptions' QuoteIntentRequestOptions: type: object properties: - quoteProvider: - $ref: '#/components/schemas/QuoteProviderType' + swapProvider: + $ref: '#/components/schemas/RouteProvider' + bridgeProvider: + $ref: '#/components/schemas/RouteProvider' slippageTolerance: type: number trailsAddressOverrides: $ref: '#/components/schemas/TrailsAddressOverrides' + PassthroughInfo: + type: object + required: + - eligible + properties: + eligible: + type: boolean + passthroughTransaction: + $ref: '#/components/schemas/PassThroughTransaction' + transactionStates: + type: array + description: '[]TransactionStateInfo' + items: + $ref: '#/components/schemas/TransactionStateInfo' Intent: type: object required: @@ -966,16 +1101,18 @@ components: - status - quoteRequest - ownerAddress + - originChainId + - destinationChainId - originIntentAddress - - destinationIntentAddress - - destinationSalt + - salt - depositTransaction - - calls - - preconditions - - metaTxns + - originCalls + - originPrecondition + - originMetaTxn - quote - fees - trailsVersion + - trailsContracts - expiresAt properties: id: @@ -990,35 +1127,40 @@ components: $ref: '#/components/schemas/QuoteIntentRequest' ownerAddress: type: string + originChainId: + type: number + destinationChainId: + type: number originIntentAddress: type: string destinationIntentAddress: type: string - destinationSalt: + salt: type: number depositTransaction: $ref: '#/components/schemas/DepositTransaction' - calls: - type: array - description: '[]IntentCalls' - items: - $ref: '#/components/schemas/IntentCalls' - preconditions: - type: array - description: '[]TransactionPrecondition' - items: - $ref: '#/components/schemas/TransactionPrecondition' - metaTxns: - type: array - description: '[]MetaTxn' - items: - $ref: '#/components/schemas/MetaTxn' + passthrough: + type: boolean + originCalls: + $ref: '#/components/schemas/IntentCalls' + destinationCalls: + $ref: '#/components/schemas/IntentCalls' + originPrecondition: + $ref: '#/components/schemas/TransactionPrecondition' + destinationPrecondition: + $ref: '#/components/schemas/TransactionPrecondition' + originMetaTxn: + $ref: '#/components/schemas/MetaTxn' + destinationMetaTxn: + $ref: '#/components/schemas/MetaTxn' quote: $ref: '#/components/schemas/IntentProviderQuote' fees: $ref: '#/components/schemas/IntentFees' trailsVersion: type: string + trailsContracts: + $ref: '#/components/schemas/TrailsContracts' expiresAt: type: string updatedAt: @@ -1031,6 +1173,37 @@ components: - toAddress - tokenAddress - amount + - chainId + - to + - data + - value + properties: + toAddress: + type: string + tokenAddress: + type: string + decimals: + type: number + amount: + type: number + chainId: + type: number + to: + type: string + data: + type: string + value: + type: number + PassThroughTransaction: + type: object + required: + - toAddress + - tokenAddress + - amount + - chainId + - to + - data + - value properties: toAddress: type: string @@ -1040,6 +1213,27 @@ components: type: number amount: type: number + chainId: + type: number + to: + type: string + data: + type: string + value: + type: number + TransactionStateInfo: + type: object + required: + - id + - label + - chainId + properties: + id: + type: string + label: + type: string + chainId: + type: number IntentCalls: type: object required: @@ -1114,6 +1308,96 @@ components: type: string input: type: string + IntentHistory: + type: object + required: + - intentId + - status + - expiresAt + - receipt + properties: + intentId: + type: string + status: + $ref: '#/components/schemas/IntentStatus' + expiresAt: + type: string + updatedAt: + type: string + createdAt: + type: string + receipt: + $ref: '#/components/schemas/IntentReceipt' + IntentReceiptSummary: + type: object + required: + - intentId + - status + - ownerAddress + - originChainId + - destinationChainId + - tradeType + - routeProviders + - originIntentAddress + - originTokenAddress + - originTokenAmount + - originTokenMetadata + - destinationIntentAddress + - destinationTokenMetadata + - destinationHasCallData + - destinationHasCallValue + - createdAt + - expiresAt + properties: + intentId: + type: string + status: + $ref: '#/components/schemas/IntentStatus' + ownerAddress: + type: string + originChainId: + type: number + destinationChainId: + type: number + tradeType: + $ref: '#/components/schemas/TradeType' + routeProviders: + type: array + description: '[]RouteProvider' + items: + $ref: '#/components/schemas/RouteProvider' + originIntentAddress: + type: string + originTokenAddress: + type: string + originTokenAmount: + type: number + originTokenMetadata: + $ref: '#/components/schemas/TokenMetadata' + destinationIntentAddress: + type: string + destinationTokenAddress: + type: string + destinationTokenAmount: + type: number + destinationToAddress: + type: string + destinationTokenMetadata: + $ref: '#/components/schemas/TokenMetadata' + destinationHasCallData: + type: boolean + destinationHasCallValue: + type: boolean + memo: + type: string + createdAt: + type: string + expiresAt: + type: string + startedAt: + type: string + finishedAt: + type: string IntentReceipt: type: object required: @@ -1128,6 +1412,7 @@ components: - depositTransaction - originTransactionId - originTransaction + - summary properties: id: type: number @@ -1155,6 +1440,12 @@ components: type: number destinationTransaction: $ref: '#/components/schemas/IntentTransaction' + refundTransactionId: + type: number + refundTransaction: + $ref: '#/components/schemas/IntentTransaction' + summary: + $ref: '#/components/schemas/IntentReceiptSummary' updatedAt: type: string createdAt: @@ -1164,19 +1455,29 @@ components: required: - id - intentId + - status - chainId + - type + - context - fromAddress - toAddress - tokenAddress - tokenAmount - - status properties: id: type: number intentId: type: string + status: + $ref: '#/components/schemas/TransactionStatus' + statusReason: + type: string chainId: type: number + type: + $ref: '#/components/schemas/TransactionType' + context: + $ref: '#/components/schemas/TransactionContext' fromAddress: type: string toAddress: @@ -1199,56 +1500,114 @@ components: type: string txnMinedAt: type: string - status: - $ref: '#/components/schemas/TransactionStatus' - statusReason: - type: string updatedAt: type: string createdAt: type: string + PriceImpact: + type: object + required: + - priceImpact + - priceImpactUsd + properties: + priceImpact: + type: number + priceImpactUsd: + type: number + PriceImpactDetails: + type: object + required: + - executionPriceImpact + - marketPriceImpact + - providerFeesPriceImpact + - trailsFeesPriceImpact + - netPriceImpact + properties: + executionPriceImpact: + $ref: '#/components/schemas/PriceImpact' + marketPriceImpact: + $ref: '#/components/schemas/PriceImpact' + providerFeesPriceImpact: + $ref: '#/components/schemas/PriceImpact' + trailsFeesPriceImpact: + $ref: '#/components/schemas/PriceImpact' + netPriceImpact: + $ref: '#/components/schemas/PriceImpact' IntentProviderQuote: type: object required: - - quoteProvider - - quoteProviderRequestId - - quoteProviderFeeUsd + - routeProviders + - routeProvidersRequestIds + - routeProvidersFeeUsd - fromAmount - fromAmountMin + - fromAmountUsd + - fromAmountMinUsd - toAmount - toAmountMin + - toAmountUsd + - toAmountMinUsd - maxSlippage - priceImpact - priceImpactUsd + - priceImpactDetails properties: - quoteProvider: - type: string - quoteProviderRequestId: - type: string - quoteProviderFeeUsd: - type: number + routeProviders: + type: array + description: '[]RouteProvider' + items: + $ref: '#/components/schemas/RouteProvider' + routeProvidersRequestIds: + type: array + description: '[]string' + items: + type: string + routeProvidersFeeUsd: + type: array + description: '[]float64' + items: + type: number fromAmount: type: number fromAmountMin: type: number + fromAmountUsd: + type: number + fromAmountMinUsd: + type: number toAmount: type: number toAmountMin: type: number + toAmountUsd: + type: number + toAmountMinUsd: + type: number maxSlippage: type: number priceImpact: type: number priceImpactUsd: type: number + priceImpactDetails: + $ref: '#/components/schemas/PriceImpactDetails' IntentFees: type: object required: - originGas - - destinationGas - provider - feeTokenAddress + - feeTokenAmount + - feeTokenUsd - feeTokenTotal + - gasFeeTotal + - gasFeeUsd + - trailsFeeTotal + - trailsFeeUsd + - collectorFeeTotal + - collectorFeeUsd + - providerFeeTotal + - providerFeeUsd - totalFeeAmount - totalFeeUsd properties: @@ -1260,8 +1619,28 @@ components: $ref: '#/components/schemas/IntentProviderFees' feeTokenAddress: type: string + feeTokenAmount: + type: number + feeTokenUsd: + type: number feeTokenTotal: type: number + gasFeeTotal: + type: number + gasFeeUsd: + type: number + trailsFeeTotal: + type: number + trailsFeeUsd: + type: number + collectorFeeTotal: + type: number + collectorFeeUsd: + type: number + providerFeeTotal: + type: number + providerFeeUsd: + type: number totalFeeAmount: type: number totalFeeUsd: @@ -1274,6 +1653,8 @@ components: - quoteProviderFeeUsd - trailsFee - trailsFeeUsd + - quoteProviderWithTrailsFee + - providerWithTrailsFeeUsd - totalFeeAmount - totalFeeUsd properties: @@ -1287,55 +1668,13 @@ components: type: number trailsFeeUsd: type: number - totalFeeAmount: - type: number - totalFeeUsd: - type: number - IntentTransactionGasFee: - type: object - required: - - chainId - - totalGasLimit - - gasPrice - - nativeTokenSymbol - - chainGasUsageStatus - - totalFeeAmount - - totalFeeUsd - - metaTxnFeeDetails - - metaTxnGasQuote - properties: - chainId: - type: number - totalGasLimit: - type: number - gasPrice: + quoteProviderWithTrailsFee: type: number - nativeTokenSymbol: - type: string - nativeTokenPriceUsd: + providerWithTrailsFeeUsd: type: number - chainGasUsageStatus: - $ref: '#/components/schemas/ChainGasUsageStatus' totalFeeAmount: type: number totalFeeUsd: - type: string - metaTxnFeeDetails: - $ref: '#/components/schemas/MetaTxnFeeDetails' - metaTxnGasQuote: - type: string - MetaTxnFeeDetails: - type: object - required: - - metaTxnId - - estimatedGasLimit - - feeNative - properties: - metaTxnId: - type: string - estimatedGasLimit: - type: number - feeNative: type: number IntentSummary: type: object @@ -1357,6 +1696,8 @@ components: - destinationTokenAddress - destinationTokenAmount - destinationTokenMetadata + - destinationToAddress + - expiresAt - createdAt properties: id: @@ -1399,10 +1740,60 @@ components: type: number destinationTokenMetadata: $ref: '#/components/schemas/TokenMetadata' + destinationToAddress: + type: string + expiresAt: + type: string updatedAt: type: string createdAt: type: string + IntentTransactionGasFee: + type: object + required: + - chainId + - totalGasLimit + - gasPrice + - nativeTokenSymbol + - chainGasUsageStatus + - totalFeeAmount + - totalFeeUsd + - metaTxnFeeDetails + - metaTxnGasQuote + properties: + chainId: + type: number + totalGasLimit: + type: number + gasPrice: + type: number + nativeTokenSymbol: + type: string + nativeTokenPriceUsd: + type: number + chainGasUsageStatus: + $ref: '#/components/schemas/ChainGasUsageStatus' + totalFeeAmount: + type: number + totalFeeUsd: + type: string + metaTxnFeeDetails: + $ref: '#/components/schemas/MetaTxnFeeDetails' + metaTxnGasQuote: + type: string + MetaTxnFeeDetails: + type: object + required: + - metaTxnId + - estimatedGasLimit + - feeNative + properties: + metaTxnId: + type: string + estimatedGasLimit: + type: number + feeNative: + type: number ChainMetadata: type: object required: @@ -1461,35 +1852,106 @@ components: type: number updatedAt: type: string + ExchangeRate: + type: object + required: + - name + - symbol + - value + - vsCurrency + - currencyType + properties: + name: + type: string + symbol: + type: string + value: + type: number + vsCurrency: + type: string + currencyType: + type: string CCTPTransfer: type: object required: - id - - sourceTxHash - - sourceChainId + - intentId + - originChainId - destinationChainId + - originTxnId + - originTxnHash + - destinationTxnId - message - attestation - status + - createdAt + - updatedAt properties: id: + type: number + intentId: type: string - sourceTxHash: - type: string - sourceChainId: + originChainId: type: number destinationChainId: type: number + originTxnId: + type: number + originTxnHash: + type: string + destinationTxnId: + type: number message: type: string attestation: type: string status: + type: number + statusReason: + type: string + createdAt: type: string updatedAt: type: string + RelayTransfer: + type: object + required: + - id + - intentId + - originChainId + - destinationChainId + - originTxnId + - originTxnHash + - destinationTxnId + - destinationTxnHash + - status + - createdAt + - updatedAt + properties: + id: + type: number + intentId: + type: string + originChainId: + type: number + destinationChainId: + type: number + originTxnId: + type: number + originTxnHash: + type: string + destinationTxnId: + type: number + destinationTxnHash: + type: string + status: + type: number + statusReason: + type: string createdAt: type: string + updatedAt: + type: string GasFeeOptions: type: object required: @@ -1534,6 +1996,7 @@ components: - amount - amountUsd - feeCollectorAddress + - is2612 properties: tokenAddress: type: string @@ -1547,6 +2010,10 @@ components: type: number feeCollectorAddress: type: string + is2612: + type: boolean + isPassthroughEligible: + type: boolean DepositSignature: type: object required: @@ -1610,73 +2077,294 @@ components: type: string sequenceWalletUtilsAddress: type: string - SortOrder: - type: string - description: Represented as uint32 on the server side - enum: - - DESC - - ASC - Version: + TrailsContracts: type: object required: - - webrpcVersion - - schemaVersion - - schemaHash - - appVersion + - trailsIntentEntrypointAddress + - trailsRouterAddress + - trailsRouterShimAddress properties: - webrpcVersion: - type: string - schemaVersion: + trailsIntentEntrypointAddress: type: string - schemaHash: + trailsRouterAddress: type: string - appVersion: + trailsRouterShimAddress: type: string - RuntimeStatus: + ChainInfo: type: object required: - - healthOK - - startTime - - uptime - - ver - - branch - - commitHash - - runnables - - services + - id + - name + - tokenName + - tokenSymbol + - tokenDecimals + - isTestnet + - supportsBridging properties: - healthOK: - type: boolean - startTime: - type: string - uptime: + id: type: number - ver: + name: type: string - branch: + tokenName: type: string - commitHash: + tokenSymbol: type: string - runnables: - type: object - services: - type: array - description: '[]ServiceStatus' - items: - $ref: '#/components/schemas/ServiceStatus' - ServiceStatus: + tokenDecimals: + type: number + isTestnet: + type: boolean + supportsBridging: + type: boolean + logoUri: + type: string + blockExplorerUrl: + type: string + TokenInfo: type: object required: + - chainId + - address - name - - healthy - - latency + - symbol + - decimals + - featured + - featureIndex properties: - name: + chainId: + type: number + address: type: string - healthy: - type: boolean - error: + name: type: string - latency: + symbol: + type: string + decimals: + type: number + supportsBridging: + type: boolean + logoUri: + type: string + featured: + type: boolean + featureIndex: + type: number + EarnPool: + type: object + required: + - id + - name + - protocol + - chainId + - apy + - tvl + - token + - depositAddress + - isActive + properties: + id: + type: string + name: + type: string + protocol: + type: string + chainId: + type: number + apy: + type: number + tvl: + type: number + token: + $ref: '#/components/schemas/PoolTokenInfo' + depositAddress: + type: string + isActive: + type: boolean + poolUrl: + type: string + protocolUrl: + type: string + wrappedTokenGatewayAddress: + type: string + PoolTokenInfo: + type: object + required: + - symbol + - name + - address + - decimals + properties: + symbol: + type: string + name: + type: string + address: + type: string + decimals: + type: number + logoUrl: + type: string + CountryRegion: + type: object + required: + - regionCode + - name + properties: + regionCode: + type: string + name: + type: string + Country: + type: object + required: + - countryCode + - name + - flag + - flagImageUrl + properties: + countryCode: + type: string + name: + type: string + flag: + type: string + flagImageUrl: + type: string + regions: + type: array + description: '[]CountryRegion' + items: + $ref: '#/components/schemas/CountryRegion' + FiatCurrency: + type: object + required: + - code + - symbol + - name + - flag + - decimals + properties: + code: + type: string + symbol: + type: string + name: + type: string + flag: + type: string + decimals: + type: number + MeldQuote: + type: object + required: + - transactionType + - sourceAmount + - sourceAmountWithoutFees + - fiatAmountWithoutFees + - sourceCurrencyCode + - countryCode + - totalFee + - networkFee + - transactionFee + - destinationAmount + - destinationCurrencyCode + - exchangeRate + - paymentMethodType + - customerScore + - serviceProvider + - partnerFee + properties: + transactionType: + type: string + sourceAmount: + type: number + sourceAmountWithoutFees: + type: number + fiatAmountWithoutFees: + type: number + destinationAmountWithoutFees: + type: number + sourceCurrencyCode: + type: string + countryCode: + type: string + totalFee: + type: number + networkFee: + type: number + transactionFee: + type: number + destinationAmount: + type: number + destinationCurrencyCode: + type: string + exchangeRate: + type: number + paymentMethodType: + type: string + customerScore: + type: number + serviceProvider: + type: string + institutionName: + type: string + lowKyc: + type: boolean + partnerFee: + type: number + SortOrder: + type: string + description: Represented as uint32 on the server side + enum: + - DESC + - ASC + RuntimeStatus: + type: object + required: + - healthOK + - version + - branch + - commitHash + - startTime + - uptime + - hostname + - runnables + - services + properties: + healthOK: + type: boolean + version: + type: string + branch: + type: string + commitHash: + type: string + startTime: + type: string + uptime: + type: string + hostname: + type: string + runnables: + type: object + services: + type: array + description: '[]ServiceStatus' + items: + $ref: '#/components/schemas/ServiceStatus' + ServiceStatus: + type: object + required: + - name + - healthy + - latency + properties: + name: + type: string + healthy: + type: boolean + error: + type: string + latency: type: string QuoteIntentResponse: type: object @@ -1688,6 +2376,13 @@ components: $ref: '#/components/schemas/Intent' gasFeeOptions: $ref: '#/components/schemas/GasFeeOptions' + transactionStates: + type: array + description: '[]TransactionStateInfo' + items: + $ref: '#/components/schemas/TransactionStateInfo' + passthrough: + $ref: '#/components/schemas/PassthroughInfo' CommitIntentRequest: type: object required: @@ -1744,14 +2439,25 @@ components: properties: intentId: type: string + lastReceiptStates: + type: array + description: '[]TransactionStatus' + items: + $ref: '#/components/schemas/TransactionStatus' WaitIntentReceiptResponse: type: object required: - intentReceipt + - receiptStates - done properties: intentReceipt: $ref: '#/components/schemas/IntentReceipt' + receiptStates: + type: array + description: '[]TransactionStatus' + items: + $ref: '#/components/schemas/TransactionStatus' done: type: boolean GetIntentRequest: @@ -1781,6 +2487,10 @@ components: type: string byOriginIntentAddress: type: string + byDestinationIntentAddress: + type: string + byQueryString: + type: string SearchIntentsResponse: type: object required: @@ -1791,7 +2501,7 @@ components: description: '[]Intent' items: $ref: '#/components/schemas/Intent' - GetIntentTransactionHistoryRequest: + GetIntentHistoryRequest: type: object properties: page: @@ -1800,290 +2510,1940 @@ components: type: number byOwnerAddress: type: string - GetIntentTransactionHistoryResponse: + GetIntentHistoryResponse: type: object required: - intents properties: intents: type: array - description: '[]IntentSummary' + description: '[]IntentHistory' items: - $ref: '#/components/schemas/IntentSummary' + $ref: '#/components/schemas/IntentHistory' nextPage: $ref: '#/components/schemas/Page' - Page: + AbortIntentRequest: type: object + required: + - intentId + - chainId + - abortTransactionHash properties: - column: + intentId: type: string - before: - type: object - after: - type: object - sort: + chainId: + type: number + abortTransactionHash: + type: string + AbortIntentResponse: + type: object + required: + - intentId + - status + properties: + intentId: + type: string + status: + $ref: '#/components/schemas/IntentStatus' + GetTokenPricesRequest: + type: object + required: + - tokens + properties: + tokens: type: array - description: '[]SortBy' + description: '[]Token' items: - $ref: '#/components/schemas/SortBy' - pageSize: + $ref: '#/components/schemas/Token' + GetTokenPricesResponse: + type: object + required: + - tokenPrices + properties: + tokenPrices: + type: array + description: '[]TokenPrice' + items: + $ref: '#/components/schemas/TokenPrice' + GetChainsRequest: + type: object + properties: + routeProvider: + type: string + GetChainsResponse: + type: object + required: + - chains + properties: + chains: + type: array + description: '[]ChainInfo' + items: + $ref: '#/components/schemas/ChainInfo' + GetExactOutputRoutesRequest: + type: object + required: + - destinationChainId + - destinationTokenAddress + properties: + destinationChainId: type: number - more: - type: boolean - SortBy: + destinationTokenAddress: + type: string + originChainId: + type: number + originTokenAddress: + type: string + ownerAddress: + type: string + GetExactOutputRoutesResponse: type: object required: - - column - - order + - tokens properties: - column: + tokens: + type: array + description: '[]TokenInfo' + items: + $ref: '#/components/schemas/TokenInfo' + GetExactInputRoutesRequest: + type: object + required: + - originChainId + - originTokenAddress + properties: + originChainId: + type: number + originTokenAddress: type: string - order: - $ref: '#/components/schemas/SortOrder' -paths: - /rpc/Trails/QuoteIntent: - post: - summary: Quote Intent - description: Request a quote for a cross-chain intent transaction - operationId: quoteIntent - security: - - ApiKeyAuth: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/QuoteIntentRequest' - responses: - '200': - description: Successful response - content: - application/json: - schema: - $ref: '#/components/schemas/QuoteIntentResponse' - '400': - description: Bad request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorWebrpcBadRequest' - /rpc/Trails/CommitIntent: - post: - summary: Commit Intent - description: Commit an intent to the Trails system - operationId: commitIntent - security: - - ApiKeyAuth: [] - requestBody: - required: true - content: - application/json: + destinationChainId: + type: number + destinationTokenAddress: + type: string + GetExactInputRoutesResponse: + type: object + required: + - tokens + properties: + tokens: + type: array + description: '[]TokenInfo' + items: + $ref: '#/components/schemas/TokenInfo' + GetTokenListRequest: + type: object + required: + - chainIds + properties: + chainIds: + type: array + description: '[]uint64' + items: + type: number + searchQuery: + type: string + limit: + type: number + tokenAddress: + type: string + includeAllListed: + type: boolean + includeExternal: + type: boolean + excludeTokens: + type: array + description: '[]string' + items: + type: string + GetTokenListResponse: + type: object + required: + - tokens + properties: + tokens: + type: array + description: '[]TokenInfo' + items: + $ref: '#/components/schemas/TokenInfo' + GetEarnPoolsRequest: + type: object + properties: + chainIds: + type: array + description: '[]uint64' + items: + type: number + protocols: + type: array + description: '[]string' + items: + type: string + minTvl: + type: number + maxApy: + type: number + GetEarnPoolsResponse: + type: object + required: + - pools + - timestamp + - cached + properties: + pools: + type: array + description: '[]EarnPool' + items: + $ref: '#/components/schemas/EarnPool' + timestamp: + type: string + cached: + type: boolean + Page: + type: object + properties: + column: + type: string + before: + type: number + after: + type: number + sort: + type: array + description: '[]SortBy' + items: + $ref: '#/components/schemas/SortBy' + pageSize: + type: number + more: + type: boolean + SortBy: + type: object + required: + - column + - order + properties: + column: + type: string + order: + $ref: '#/components/schemas/SortOrder' + GetIntentTransactionHistoryRequest: + type: object + properties: + page: + $ref: '#/components/schemas/Page' + byProjectId: + type: number + byOwnerAddress: + type: string + GetIntentTransactionHistoryResponse: + type: object + required: + - intents + properties: + intents: + type: array + description: '[]IntentSummary' + items: + $ref: '#/components/schemas/IntentSummary' + nextPage: + $ref: '#/components/schemas/Page' + Trails_Ping_Request: + type: object + Trails_RuntimeStatus_Request: + type: object + Trails_Clock_Request: + type: object + Trails_GetExchangeRate_Request: + type: object + properties: + toCurrency: + type: string + Trails_GetCountryList_Request: + type: object + Trails_GetTrailsContracts_Request: + type: object + Trails_GetFiatCurrencyList_Request: + type: object + Trails_Ping_Response: + type: object + properties: + version: + type: string + Trails_RuntimeStatus_Response: + type: object + properties: + status: + $ref: '#/components/schemas/RuntimeStatus' + Trails_Clock_Response: + type: object + properties: + serverTime: + type: string + Trails_GetExchangeRate_Response: + type: object + properties: + exchangeRate: + $ref: '#/components/schemas/ExchangeRate' + Trails_GetCountryList_Response: + type: object + properties: + countries: + type: array + description: '[]Country' + items: + $ref: '#/components/schemas/Country' + Trails_GetTrailsContracts_Response: + type: object + properties: + TrailsContracts: + $ref: '#/components/schemas/TrailsContracts' + Trails_GetFiatCurrencyList_Response: + type: object + properties: + currencies: + type: array + description: '[]FiatCurrency' + items: + $ref: '#/components/schemas/FiatCurrency' + +paths: + /rpc/Trails/Ping: + post: + operationId: Trails-Ping + tags: ["Trails"] + summary: "" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Trails_Ping_Request' + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Trails_Ping_Response' + '4XX': + description: Client error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcEndpoint' + - $ref: '#/components/schemas/ErrorWebrpcRequestFailed' + - $ref: '#/components/schemas/ErrorWebrpcBadRoute' + - $ref: '#/components/schemas/ErrorWebrpcBadMethod' + - $ref: '#/components/schemas/ErrorWebrpcBadRequest' + - $ref: '#/components/schemas/ErrorWebrpcClientAborted' + - $ref: '#/components/schemas/ErrorWebrpcStreamLost' + - $ref: '#/components/schemas/ErrorUnauthorized' + - $ref: '#/components/schemas/ErrorPermissionDenied' + - $ref: '#/components/schemas/ErrorSessionExpired' + - $ref: '#/components/schemas/ErrorMethodNotFound' + - $ref: '#/components/schemas/ErrorRequestConflict' + - $ref: '#/components/schemas/ErrorAborted' + - $ref: '#/components/schemas/ErrorGeoblocked' + - $ref: '#/components/schemas/ErrorRateLimited' + - $ref: '#/components/schemas/ErrorProjectNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyMismatch' + - $ref: '#/components/schemas/ErrorInvalidOrigin' + - $ref: '#/components/schemas/ErrorInvalidService' + - $ref: '#/components/schemas/ErrorUnauthorizedUser' + - $ref: '#/components/schemas/ErrorQuotaExceeded' + - $ref: '#/components/schemas/ErrorQuotaRateLimit' + - $ref: '#/components/schemas/ErrorNoDefaultKey' + - $ref: '#/components/schemas/ErrorMaxAccessKeys' + - $ref: '#/components/schemas/ErrorAtLeastOneKey' + - $ref: '#/components/schemas/ErrorTimeout' + - $ref: '#/components/schemas/ErrorInvalidArgument' + - $ref: '#/components/schemas/ErrorUnavailable' + - $ref: '#/components/schemas/ErrorQueryFailed' + - $ref: '#/components/schemas/ErrorIntentStatus' + - $ref: '#/components/schemas/ErrorNotFound' + - $ref: '#/components/schemas/ErrorUnsupportedNetwork' + - $ref: '#/components/schemas/ErrorClientOutdated' + - $ref: '#/components/schemas/ErrorIntentsSkipped' + - $ref: '#/components/schemas/ErrorQuoteExpired' + - $ref: '#/components/schemas/ErrorIntentsDisabled' + '5XX': + description: Server error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcBadResponse' + - $ref: '#/components/schemas/ErrorWebrpcServerPanic' + - $ref: '#/components/schemas/ErrorWebrpcInternalError' + - $ref: '#/components/schemas/ErrorUnexpected' + /rpc/Trails/RuntimeStatus: + post: + operationId: Trails-RuntimeStatus + tags: ["Trails"] + summary: "" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Trails_RuntimeStatus_Request' + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Trails_RuntimeStatus_Response' + '4XX': + description: Client error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcEndpoint' + - $ref: '#/components/schemas/ErrorWebrpcRequestFailed' + - $ref: '#/components/schemas/ErrorWebrpcBadRoute' + - $ref: '#/components/schemas/ErrorWebrpcBadMethod' + - $ref: '#/components/schemas/ErrorWebrpcBadRequest' + - $ref: '#/components/schemas/ErrorWebrpcClientAborted' + - $ref: '#/components/schemas/ErrorWebrpcStreamLost' + - $ref: '#/components/schemas/ErrorUnauthorized' + - $ref: '#/components/schemas/ErrorPermissionDenied' + - $ref: '#/components/schemas/ErrorSessionExpired' + - $ref: '#/components/schemas/ErrorMethodNotFound' + - $ref: '#/components/schemas/ErrorRequestConflict' + - $ref: '#/components/schemas/ErrorAborted' + - $ref: '#/components/schemas/ErrorGeoblocked' + - $ref: '#/components/schemas/ErrorRateLimited' + - $ref: '#/components/schemas/ErrorProjectNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyMismatch' + - $ref: '#/components/schemas/ErrorInvalidOrigin' + - $ref: '#/components/schemas/ErrorInvalidService' + - $ref: '#/components/schemas/ErrorUnauthorizedUser' + - $ref: '#/components/schemas/ErrorQuotaExceeded' + - $ref: '#/components/schemas/ErrorQuotaRateLimit' + - $ref: '#/components/schemas/ErrorNoDefaultKey' + - $ref: '#/components/schemas/ErrorMaxAccessKeys' + - $ref: '#/components/schemas/ErrorAtLeastOneKey' + - $ref: '#/components/schemas/ErrorTimeout' + - $ref: '#/components/schemas/ErrorInvalidArgument' + - $ref: '#/components/schemas/ErrorUnavailable' + - $ref: '#/components/schemas/ErrorQueryFailed' + - $ref: '#/components/schemas/ErrorIntentStatus' + - $ref: '#/components/schemas/ErrorNotFound' + - $ref: '#/components/schemas/ErrorUnsupportedNetwork' + - $ref: '#/components/schemas/ErrorClientOutdated' + - $ref: '#/components/schemas/ErrorIntentsSkipped' + - $ref: '#/components/schemas/ErrorQuoteExpired' + - $ref: '#/components/schemas/ErrorIntentsDisabled' + '5XX': + description: Server error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcBadResponse' + - $ref: '#/components/schemas/ErrorWebrpcServerPanic' + - $ref: '#/components/schemas/ErrorWebrpcInternalError' + - $ref: '#/components/schemas/ErrorUnexpected' + /rpc/Trails/Clock: + post: + operationId: Trails-Clock + tags: ["Trails"] + summary: "" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Trails_Clock_Request' + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Trails_Clock_Response' + '4XX': + description: Client error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcEndpoint' + - $ref: '#/components/schemas/ErrorWebrpcRequestFailed' + - $ref: '#/components/schemas/ErrorWebrpcBadRoute' + - $ref: '#/components/schemas/ErrorWebrpcBadMethod' + - $ref: '#/components/schemas/ErrorWebrpcBadRequest' + - $ref: '#/components/schemas/ErrorWebrpcClientAborted' + - $ref: '#/components/schemas/ErrorWebrpcStreamLost' + - $ref: '#/components/schemas/ErrorUnauthorized' + - $ref: '#/components/schemas/ErrorPermissionDenied' + - $ref: '#/components/schemas/ErrorSessionExpired' + - $ref: '#/components/schemas/ErrorMethodNotFound' + - $ref: '#/components/schemas/ErrorRequestConflict' + - $ref: '#/components/schemas/ErrorAborted' + - $ref: '#/components/schemas/ErrorGeoblocked' + - $ref: '#/components/schemas/ErrorRateLimited' + - $ref: '#/components/schemas/ErrorProjectNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyMismatch' + - $ref: '#/components/schemas/ErrorInvalidOrigin' + - $ref: '#/components/schemas/ErrorInvalidService' + - $ref: '#/components/schemas/ErrorUnauthorizedUser' + - $ref: '#/components/schemas/ErrorQuotaExceeded' + - $ref: '#/components/schemas/ErrorQuotaRateLimit' + - $ref: '#/components/schemas/ErrorNoDefaultKey' + - $ref: '#/components/schemas/ErrorMaxAccessKeys' + - $ref: '#/components/schemas/ErrorAtLeastOneKey' + - $ref: '#/components/schemas/ErrorTimeout' + - $ref: '#/components/schemas/ErrorInvalidArgument' + - $ref: '#/components/schemas/ErrorUnavailable' + - $ref: '#/components/schemas/ErrorQueryFailed' + - $ref: '#/components/schemas/ErrorIntentStatus' + - $ref: '#/components/schemas/ErrorNotFound' + - $ref: '#/components/schemas/ErrorUnsupportedNetwork' + - $ref: '#/components/schemas/ErrorClientOutdated' + - $ref: '#/components/schemas/ErrorIntentsSkipped' + - $ref: '#/components/schemas/ErrorQuoteExpired' + - $ref: '#/components/schemas/ErrorIntentsDisabled' + '5XX': + description: Server error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcBadResponse' + - $ref: '#/components/schemas/ErrorWebrpcServerPanic' + - $ref: '#/components/schemas/ErrorWebrpcInternalError' + - $ref: '#/components/schemas/ErrorUnexpected' + /rpc/Trails/QuoteIntent: + post: + operationId: Trails-QuoteIntent + tags: ["Trails"] + summary: "" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/QuoteIntentRequest' + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/QuoteIntentResponse' + '4XX': + description: Client error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcEndpoint' + - $ref: '#/components/schemas/ErrorWebrpcRequestFailed' + - $ref: '#/components/schemas/ErrorWebrpcBadRoute' + - $ref: '#/components/schemas/ErrorWebrpcBadMethod' + - $ref: '#/components/schemas/ErrorWebrpcBadRequest' + - $ref: '#/components/schemas/ErrorWebrpcClientAborted' + - $ref: '#/components/schemas/ErrorWebrpcStreamLost' + - $ref: '#/components/schemas/ErrorUnauthorized' + - $ref: '#/components/schemas/ErrorPermissionDenied' + - $ref: '#/components/schemas/ErrorSessionExpired' + - $ref: '#/components/schemas/ErrorMethodNotFound' + - $ref: '#/components/schemas/ErrorRequestConflict' + - $ref: '#/components/schemas/ErrorAborted' + - $ref: '#/components/schemas/ErrorGeoblocked' + - $ref: '#/components/schemas/ErrorRateLimited' + - $ref: '#/components/schemas/ErrorProjectNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyMismatch' + - $ref: '#/components/schemas/ErrorInvalidOrigin' + - $ref: '#/components/schemas/ErrorInvalidService' + - $ref: '#/components/schemas/ErrorUnauthorizedUser' + - $ref: '#/components/schemas/ErrorQuotaExceeded' + - $ref: '#/components/schemas/ErrorQuotaRateLimit' + - $ref: '#/components/schemas/ErrorNoDefaultKey' + - $ref: '#/components/schemas/ErrorMaxAccessKeys' + - $ref: '#/components/schemas/ErrorAtLeastOneKey' + - $ref: '#/components/schemas/ErrorTimeout' + - $ref: '#/components/schemas/ErrorInvalidArgument' + - $ref: '#/components/schemas/ErrorUnavailable' + - $ref: '#/components/schemas/ErrorQueryFailed' + - $ref: '#/components/schemas/ErrorIntentStatus' + - $ref: '#/components/schemas/ErrorNotFound' + - $ref: '#/components/schemas/ErrorUnsupportedNetwork' + - $ref: '#/components/schemas/ErrorClientOutdated' + - $ref: '#/components/schemas/ErrorIntentsSkipped' + - $ref: '#/components/schemas/ErrorQuoteExpired' + - $ref: '#/components/schemas/ErrorIntentsDisabled' + '5XX': + description: Server error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcBadResponse' + - $ref: '#/components/schemas/ErrorWebrpcServerPanic' + - $ref: '#/components/schemas/ErrorWebrpcInternalError' + - $ref: '#/components/schemas/ErrorUnexpected' + /rpc/Trails/CommitIntent: + post: + operationId: Trails-CommitIntent + tags: ["Trails"] + summary: "" + requestBody: + content: + application/json: schema: $ref: '#/components/schemas/CommitIntentRequest' responses: '200': - description: Successful response + description: OK content: application/json: schema: $ref: '#/components/schemas/CommitIntentResponse' - '400': - description: Bad request + '4XX': + description: Client error content: application/json: schema: - $ref: '#/components/schemas/ErrorWebrpcBadRequest' + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcEndpoint' + - $ref: '#/components/schemas/ErrorWebrpcRequestFailed' + - $ref: '#/components/schemas/ErrorWebrpcBadRoute' + - $ref: '#/components/schemas/ErrorWebrpcBadMethod' + - $ref: '#/components/schemas/ErrorWebrpcBadRequest' + - $ref: '#/components/schemas/ErrorWebrpcClientAborted' + - $ref: '#/components/schemas/ErrorWebrpcStreamLost' + - $ref: '#/components/schemas/ErrorUnauthorized' + - $ref: '#/components/schemas/ErrorPermissionDenied' + - $ref: '#/components/schemas/ErrorSessionExpired' + - $ref: '#/components/schemas/ErrorMethodNotFound' + - $ref: '#/components/schemas/ErrorRequestConflict' + - $ref: '#/components/schemas/ErrorAborted' + - $ref: '#/components/schemas/ErrorGeoblocked' + - $ref: '#/components/schemas/ErrorRateLimited' + - $ref: '#/components/schemas/ErrorProjectNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyMismatch' + - $ref: '#/components/schemas/ErrorInvalidOrigin' + - $ref: '#/components/schemas/ErrorInvalidService' + - $ref: '#/components/schemas/ErrorUnauthorizedUser' + - $ref: '#/components/schemas/ErrorQuotaExceeded' + - $ref: '#/components/schemas/ErrorQuotaRateLimit' + - $ref: '#/components/schemas/ErrorNoDefaultKey' + - $ref: '#/components/schemas/ErrorMaxAccessKeys' + - $ref: '#/components/schemas/ErrorAtLeastOneKey' + - $ref: '#/components/schemas/ErrorTimeout' + - $ref: '#/components/schemas/ErrorInvalidArgument' + - $ref: '#/components/schemas/ErrorUnavailable' + - $ref: '#/components/schemas/ErrorQueryFailed' + - $ref: '#/components/schemas/ErrorIntentStatus' + - $ref: '#/components/schemas/ErrorNotFound' + - $ref: '#/components/schemas/ErrorUnsupportedNetwork' + - $ref: '#/components/schemas/ErrorClientOutdated' + - $ref: '#/components/schemas/ErrorIntentsSkipped' + - $ref: '#/components/schemas/ErrorQuoteExpired' + - $ref: '#/components/schemas/ErrorIntentsDisabled' + '5XX': + description: Server error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcBadResponse' + - $ref: '#/components/schemas/ErrorWebrpcServerPanic' + - $ref: '#/components/schemas/ErrorWebrpcInternalError' + - $ref: '#/components/schemas/ErrorUnexpected' /rpc/Trails/ExecuteIntent: post: - summary: Execute Intent - description: Execute a committed intent transaction - operationId: executeIntent - security: - - ApiKeyAuth: [] + operationId: Trails-ExecuteIntent + tags: ["Trails"] + summary: "" requestBody: - required: true content: application/json: schema: $ref: '#/components/schemas/ExecuteIntentRequest' responses: '200': - description: Successful response + description: OK content: application/json: schema: $ref: '#/components/schemas/ExecuteIntentResponse' - '400': - description: Bad request + '4XX': + description: Client error content: application/json: schema: - $ref: '#/components/schemas/ErrorWebrpcBadRequest' - /rpc/Trails/GetIntentReceipt: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcEndpoint' + - $ref: '#/components/schemas/ErrorWebrpcRequestFailed' + - $ref: '#/components/schemas/ErrorWebrpcBadRoute' + - $ref: '#/components/schemas/ErrorWebrpcBadMethod' + - $ref: '#/components/schemas/ErrorWebrpcBadRequest' + - $ref: '#/components/schemas/ErrorWebrpcClientAborted' + - $ref: '#/components/schemas/ErrorWebrpcStreamLost' + - $ref: '#/components/schemas/ErrorUnauthorized' + - $ref: '#/components/schemas/ErrorPermissionDenied' + - $ref: '#/components/schemas/ErrorSessionExpired' + - $ref: '#/components/schemas/ErrorMethodNotFound' + - $ref: '#/components/schemas/ErrorRequestConflict' + - $ref: '#/components/schemas/ErrorAborted' + - $ref: '#/components/schemas/ErrorGeoblocked' + - $ref: '#/components/schemas/ErrorRateLimited' + - $ref: '#/components/schemas/ErrorProjectNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyMismatch' + - $ref: '#/components/schemas/ErrorInvalidOrigin' + - $ref: '#/components/schemas/ErrorInvalidService' + - $ref: '#/components/schemas/ErrorUnauthorizedUser' + - $ref: '#/components/schemas/ErrorQuotaExceeded' + - $ref: '#/components/schemas/ErrorQuotaRateLimit' + - $ref: '#/components/schemas/ErrorNoDefaultKey' + - $ref: '#/components/schemas/ErrorMaxAccessKeys' + - $ref: '#/components/schemas/ErrorAtLeastOneKey' + - $ref: '#/components/schemas/ErrorTimeout' + - $ref: '#/components/schemas/ErrorInvalidArgument' + - $ref: '#/components/schemas/ErrorUnavailable' + - $ref: '#/components/schemas/ErrorQueryFailed' + - $ref: '#/components/schemas/ErrorIntentStatus' + - $ref: '#/components/schemas/ErrorNotFound' + - $ref: '#/components/schemas/ErrorUnsupportedNetwork' + - $ref: '#/components/schemas/ErrorClientOutdated' + - $ref: '#/components/schemas/ErrorIntentsSkipped' + - $ref: '#/components/schemas/ErrorQuoteExpired' + - $ref: '#/components/schemas/ErrorIntentsDisabled' + '5XX': + description: Server error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcBadResponse' + - $ref: '#/components/schemas/ErrorWebrpcServerPanic' + - $ref: '#/components/schemas/ErrorWebrpcInternalError' + - $ref: '#/components/schemas/ErrorUnexpected' + /rpc/Trails/WaitIntentReceipt: post: - summary: Get Intent Receipt - description: Retrieve the receipt for an executed intent - operationId: getIntentReceipt - security: - - ApiKeyAuth: [] + operationId: Trails-WaitIntentReceipt + tags: ["Trails"] + summary: "" requestBody: - required: true content: application/json: schema: - $ref: '#/components/schemas/GetIntentReceiptRequest' + $ref: '#/components/schemas/WaitIntentReceiptRequest' responses: '200': - description: Successful response + description: OK content: application/json: schema: - $ref: '#/components/schemas/GetIntentReceiptResponse' - '400': - description: Bad request + $ref: '#/components/schemas/WaitIntentReceiptResponse' + '4XX': + description: Client error content: application/json: schema: - $ref: '#/components/schemas/ErrorWebrpcBadRequest' - /rpc/Trails/WaitIntentReceipt: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcEndpoint' + - $ref: '#/components/schemas/ErrorWebrpcRequestFailed' + - $ref: '#/components/schemas/ErrorWebrpcBadRoute' + - $ref: '#/components/schemas/ErrorWebrpcBadMethod' + - $ref: '#/components/schemas/ErrorWebrpcBadRequest' + - $ref: '#/components/schemas/ErrorWebrpcClientAborted' + - $ref: '#/components/schemas/ErrorWebrpcStreamLost' + - $ref: '#/components/schemas/ErrorUnauthorized' + - $ref: '#/components/schemas/ErrorPermissionDenied' + - $ref: '#/components/schemas/ErrorSessionExpired' + - $ref: '#/components/schemas/ErrorMethodNotFound' + - $ref: '#/components/schemas/ErrorRequestConflict' + - $ref: '#/components/schemas/ErrorAborted' + - $ref: '#/components/schemas/ErrorGeoblocked' + - $ref: '#/components/schemas/ErrorRateLimited' + - $ref: '#/components/schemas/ErrorProjectNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyMismatch' + - $ref: '#/components/schemas/ErrorInvalidOrigin' + - $ref: '#/components/schemas/ErrorInvalidService' + - $ref: '#/components/schemas/ErrorUnauthorizedUser' + - $ref: '#/components/schemas/ErrorQuotaExceeded' + - $ref: '#/components/schemas/ErrorQuotaRateLimit' + - $ref: '#/components/schemas/ErrorNoDefaultKey' + - $ref: '#/components/schemas/ErrorMaxAccessKeys' + - $ref: '#/components/schemas/ErrorAtLeastOneKey' + - $ref: '#/components/schemas/ErrorTimeout' + - $ref: '#/components/schemas/ErrorInvalidArgument' + - $ref: '#/components/schemas/ErrorUnavailable' + - $ref: '#/components/schemas/ErrorQueryFailed' + - $ref: '#/components/schemas/ErrorIntentStatus' + - $ref: '#/components/schemas/ErrorNotFound' + - $ref: '#/components/schemas/ErrorUnsupportedNetwork' + - $ref: '#/components/schemas/ErrorClientOutdated' + - $ref: '#/components/schemas/ErrorIntentsSkipped' + - $ref: '#/components/schemas/ErrorQuoteExpired' + - $ref: '#/components/schemas/ErrorIntentsDisabled' + '5XX': + description: Server error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcBadResponse' + - $ref: '#/components/schemas/ErrorWebrpcServerPanic' + - $ref: '#/components/schemas/ErrorWebrpcInternalError' + - $ref: '#/components/schemas/ErrorUnexpected' + /rpc/Trails/GetIntentReceipt: post: - summary: Wait Intent Receipt - description: Wait for an intent receipt to be ready - operationId: waitIntentReceipt - security: - - ApiKeyAuth: [] + operationId: Trails-GetIntentReceipt + tags: ["Trails"] + summary: "" requestBody: - required: true content: application/json: schema: - $ref: '#/components/schemas/WaitIntentReceiptRequest' + $ref: '#/components/schemas/GetIntentReceiptRequest' responses: '200': - description: Successful response + description: OK content: application/json: schema: - $ref: '#/components/schemas/WaitIntentReceiptResponse' - '400': - description: Bad request + $ref: '#/components/schemas/GetIntentReceiptResponse' + '4XX': + description: Client error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcEndpoint' + - $ref: '#/components/schemas/ErrorWebrpcRequestFailed' + - $ref: '#/components/schemas/ErrorWebrpcBadRoute' + - $ref: '#/components/schemas/ErrorWebrpcBadMethod' + - $ref: '#/components/schemas/ErrorWebrpcBadRequest' + - $ref: '#/components/schemas/ErrorWebrpcClientAborted' + - $ref: '#/components/schemas/ErrorWebrpcStreamLost' + - $ref: '#/components/schemas/ErrorUnauthorized' + - $ref: '#/components/schemas/ErrorPermissionDenied' + - $ref: '#/components/schemas/ErrorSessionExpired' + - $ref: '#/components/schemas/ErrorMethodNotFound' + - $ref: '#/components/schemas/ErrorRequestConflict' + - $ref: '#/components/schemas/ErrorAborted' + - $ref: '#/components/schemas/ErrorGeoblocked' + - $ref: '#/components/schemas/ErrorRateLimited' + - $ref: '#/components/schemas/ErrorProjectNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyMismatch' + - $ref: '#/components/schemas/ErrorInvalidOrigin' + - $ref: '#/components/schemas/ErrorInvalidService' + - $ref: '#/components/schemas/ErrorUnauthorizedUser' + - $ref: '#/components/schemas/ErrorQuotaExceeded' + - $ref: '#/components/schemas/ErrorQuotaRateLimit' + - $ref: '#/components/schemas/ErrorNoDefaultKey' + - $ref: '#/components/schemas/ErrorMaxAccessKeys' + - $ref: '#/components/schemas/ErrorAtLeastOneKey' + - $ref: '#/components/schemas/ErrorTimeout' + - $ref: '#/components/schemas/ErrorInvalidArgument' + - $ref: '#/components/schemas/ErrorUnavailable' + - $ref: '#/components/schemas/ErrorQueryFailed' + - $ref: '#/components/schemas/ErrorIntentStatus' + - $ref: '#/components/schemas/ErrorNotFound' + - $ref: '#/components/schemas/ErrorUnsupportedNetwork' + - $ref: '#/components/schemas/ErrorClientOutdated' + - $ref: '#/components/schemas/ErrorIntentsSkipped' + - $ref: '#/components/schemas/ErrorQuoteExpired' + - $ref: '#/components/schemas/ErrorIntentsDisabled' + '5XX': + description: Server error content: application/json: schema: - $ref: '#/components/schemas/ErrorWebrpcBadRequest' + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcBadResponse' + - $ref: '#/components/schemas/ErrorWebrpcServerPanic' + - $ref: '#/components/schemas/ErrorWebrpcInternalError' + - $ref: '#/components/schemas/ErrorUnexpected' /rpc/Trails/GetIntent: post: - summary: Get Intent - description: Retrieve a specific intent by ID - operationId: getIntent - security: - - ApiKeyAuth: [] + operationId: Trails-GetIntent + tags: ["Trails"] + summary: "" requestBody: - required: true content: application/json: schema: $ref: '#/components/schemas/GetIntentRequest' responses: '200': - description: Successful response + description: OK content: application/json: schema: $ref: '#/components/schemas/GetIntentResponse' - '400': - description: Bad request + '4XX': + description: Client error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcEndpoint' + - $ref: '#/components/schemas/ErrorWebrpcRequestFailed' + - $ref: '#/components/schemas/ErrorWebrpcBadRoute' + - $ref: '#/components/schemas/ErrorWebrpcBadMethod' + - $ref: '#/components/schemas/ErrorWebrpcBadRequest' + - $ref: '#/components/schemas/ErrorWebrpcClientAborted' + - $ref: '#/components/schemas/ErrorWebrpcStreamLost' + - $ref: '#/components/schemas/ErrorUnauthorized' + - $ref: '#/components/schemas/ErrorPermissionDenied' + - $ref: '#/components/schemas/ErrorSessionExpired' + - $ref: '#/components/schemas/ErrorMethodNotFound' + - $ref: '#/components/schemas/ErrorRequestConflict' + - $ref: '#/components/schemas/ErrorAborted' + - $ref: '#/components/schemas/ErrorGeoblocked' + - $ref: '#/components/schemas/ErrorRateLimited' + - $ref: '#/components/schemas/ErrorProjectNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyMismatch' + - $ref: '#/components/schemas/ErrorInvalidOrigin' + - $ref: '#/components/schemas/ErrorInvalidService' + - $ref: '#/components/schemas/ErrorUnauthorizedUser' + - $ref: '#/components/schemas/ErrorQuotaExceeded' + - $ref: '#/components/schemas/ErrorQuotaRateLimit' + - $ref: '#/components/schemas/ErrorNoDefaultKey' + - $ref: '#/components/schemas/ErrorMaxAccessKeys' + - $ref: '#/components/schemas/ErrorAtLeastOneKey' + - $ref: '#/components/schemas/ErrorTimeout' + - $ref: '#/components/schemas/ErrorInvalidArgument' + - $ref: '#/components/schemas/ErrorUnavailable' + - $ref: '#/components/schemas/ErrorQueryFailed' + - $ref: '#/components/schemas/ErrorIntentStatus' + - $ref: '#/components/schemas/ErrorNotFound' + - $ref: '#/components/schemas/ErrorUnsupportedNetwork' + - $ref: '#/components/schemas/ErrorClientOutdated' + - $ref: '#/components/schemas/ErrorIntentsSkipped' + - $ref: '#/components/schemas/ErrorQuoteExpired' + - $ref: '#/components/schemas/ErrorIntentsDisabled' + '5XX': + description: Server error content: application/json: schema: - $ref: '#/components/schemas/ErrorWebrpcBadRequest' + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcBadResponse' + - $ref: '#/components/schemas/ErrorWebrpcServerPanic' + - $ref: '#/components/schemas/ErrorWebrpcInternalError' + - $ref: '#/components/schemas/ErrorUnexpected' /rpc/Trails/SearchIntents: post: - summary: Search Intents - description: Search for intents by various criteria - operationId: searchIntents - security: - - ApiKeyAuth: [] + operationId: Trails-SearchIntents + tags: ["Trails"] + summary: "" requestBody: - required: true content: application/json: schema: $ref: '#/components/schemas/SearchIntentsRequest' responses: '200': - description: Successful response + description: OK content: application/json: schema: $ref: '#/components/schemas/SearchIntentsResponse' - '400': - description: Bad request + '4XX': + description: Client error content: application/json: schema: - $ref: '#/components/schemas/ErrorWebrpcBadRequest' - /rpc/Trails/GetIntentTransactionHistory: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcEndpoint' + - $ref: '#/components/schemas/ErrorWebrpcRequestFailed' + - $ref: '#/components/schemas/ErrorWebrpcBadRoute' + - $ref: '#/components/schemas/ErrorWebrpcBadMethod' + - $ref: '#/components/schemas/ErrorWebrpcBadRequest' + - $ref: '#/components/schemas/ErrorWebrpcClientAborted' + - $ref: '#/components/schemas/ErrorWebrpcStreamLost' + - $ref: '#/components/schemas/ErrorUnauthorized' + - $ref: '#/components/schemas/ErrorPermissionDenied' + - $ref: '#/components/schemas/ErrorSessionExpired' + - $ref: '#/components/schemas/ErrorMethodNotFound' + - $ref: '#/components/schemas/ErrorRequestConflict' + - $ref: '#/components/schemas/ErrorAborted' + - $ref: '#/components/schemas/ErrorGeoblocked' + - $ref: '#/components/schemas/ErrorRateLimited' + - $ref: '#/components/schemas/ErrorProjectNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyMismatch' + - $ref: '#/components/schemas/ErrorInvalidOrigin' + - $ref: '#/components/schemas/ErrorInvalidService' + - $ref: '#/components/schemas/ErrorUnauthorizedUser' + - $ref: '#/components/schemas/ErrorQuotaExceeded' + - $ref: '#/components/schemas/ErrorQuotaRateLimit' + - $ref: '#/components/schemas/ErrorNoDefaultKey' + - $ref: '#/components/schemas/ErrorMaxAccessKeys' + - $ref: '#/components/schemas/ErrorAtLeastOneKey' + - $ref: '#/components/schemas/ErrorTimeout' + - $ref: '#/components/schemas/ErrorInvalidArgument' + - $ref: '#/components/schemas/ErrorUnavailable' + - $ref: '#/components/schemas/ErrorQueryFailed' + - $ref: '#/components/schemas/ErrorIntentStatus' + - $ref: '#/components/schemas/ErrorNotFound' + - $ref: '#/components/schemas/ErrorUnsupportedNetwork' + - $ref: '#/components/schemas/ErrorClientOutdated' + - $ref: '#/components/schemas/ErrorIntentsSkipped' + - $ref: '#/components/schemas/ErrorQuoteExpired' + - $ref: '#/components/schemas/ErrorIntentsDisabled' + '5XX': + description: Server error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcBadResponse' + - $ref: '#/components/schemas/ErrorWebrpcServerPanic' + - $ref: '#/components/schemas/ErrorWebrpcInternalError' + - $ref: '#/components/schemas/ErrorUnexpected' + /rpc/Trails/GetIntentHistory: post: - summary: Get Intent Transaction History - description: Retrieve transaction history for an intent - operationId: getIntentTransactionHistory - security: - - ApiKeyAuth: [] + operationId: Trails-GetIntentHistory + tags: ["Trails"] + summary: "" requestBody: - required: true content: application/json: schema: - $ref: '#/components/schemas/GetIntentTransactionHistoryRequest' + $ref: '#/components/schemas/GetIntentHistoryRequest' responses: '200': - description: Successful response + description: OK content: application/json: schema: - $ref: '#/components/schemas/GetIntentTransactionHistoryResponse' - '400': - description: Bad request + $ref: '#/components/schemas/GetIntentHistoryResponse' + '4XX': + description: Client error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcEndpoint' + - $ref: '#/components/schemas/ErrorWebrpcRequestFailed' + - $ref: '#/components/schemas/ErrorWebrpcBadRoute' + - $ref: '#/components/schemas/ErrorWebrpcBadMethod' + - $ref: '#/components/schemas/ErrorWebrpcBadRequest' + - $ref: '#/components/schemas/ErrorWebrpcClientAborted' + - $ref: '#/components/schemas/ErrorWebrpcStreamLost' + - $ref: '#/components/schemas/ErrorUnauthorized' + - $ref: '#/components/schemas/ErrorPermissionDenied' + - $ref: '#/components/schemas/ErrorSessionExpired' + - $ref: '#/components/schemas/ErrorMethodNotFound' + - $ref: '#/components/schemas/ErrorRequestConflict' + - $ref: '#/components/schemas/ErrorAborted' + - $ref: '#/components/schemas/ErrorGeoblocked' + - $ref: '#/components/schemas/ErrorRateLimited' + - $ref: '#/components/schemas/ErrorProjectNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyMismatch' + - $ref: '#/components/schemas/ErrorInvalidOrigin' + - $ref: '#/components/schemas/ErrorInvalidService' + - $ref: '#/components/schemas/ErrorUnauthorizedUser' + - $ref: '#/components/schemas/ErrorQuotaExceeded' + - $ref: '#/components/schemas/ErrorQuotaRateLimit' + - $ref: '#/components/schemas/ErrorNoDefaultKey' + - $ref: '#/components/schemas/ErrorMaxAccessKeys' + - $ref: '#/components/schemas/ErrorAtLeastOneKey' + - $ref: '#/components/schemas/ErrorTimeout' + - $ref: '#/components/schemas/ErrorInvalidArgument' + - $ref: '#/components/schemas/ErrorUnavailable' + - $ref: '#/components/schemas/ErrorQueryFailed' + - $ref: '#/components/schemas/ErrorIntentStatus' + - $ref: '#/components/schemas/ErrorNotFound' + - $ref: '#/components/schemas/ErrorUnsupportedNetwork' + - $ref: '#/components/schemas/ErrorClientOutdated' + - $ref: '#/components/schemas/ErrorIntentsSkipped' + - $ref: '#/components/schemas/ErrorQuoteExpired' + - $ref: '#/components/schemas/ErrorIntentsDisabled' + '5XX': + description: Server error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcBadResponse' + - $ref: '#/components/schemas/ErrorWebrpcServerPanic' + - $ref: '#/components/schemas/ErrorWebrpcInternalError' + - $ref: '#/components/schemas/ErrorUnexpected' + /rpc/Trails/AbortIntent: + post: + operationId: Trails-AbortIntent + tags: ["Trails"] + summary: "" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AbortIntentRequest' + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/AbortIntentResponse' + '4XX': + description: Client error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcEndpoint' + - $ref: '#/components/schemas/ErrorWebrpcRequestFailed' + - $ref: '#/components/schemas/ErrorWebrpcBadRoute' + - $ref: '#/components/schemas/ErrorWebrpcBadMethod' + - $ref: '#/components/schemas/ErrorWebrpcBadRequest' + - $ref: '#/components/schemas/ErrorWebrpcClientAborted' + - $ref: '#/components/schemas/ErrorWebrpcStreamLost' + - $ref: '#/components/schemas/ErrorUnauthorized' + - $ref: '#/components/schemas/ErrorPermissionDenied' + - $ref: '#/components/schemas/ErrorSessionExpired' + - $ref: '#/components/schemas/ErrorMethodNotFound' + - $ref: '#/components/schemas/ErrorRequestConflict' + - $ref: '#/components/schemas/ErrorAborted' + - $ref: '#/components/schemas/ErrorGeoblocked' + - $ref: '#/components/schemas/ErrorRateLimited' + - $ref: '#/components/schemas/ErrorProjectNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyMismatch' + - $ref: '#/components/schemas/ErrorInvalidOrigin' + - $ref: '#/components/schemas/ErrorInvalidService' + - $ref: '#/components/schemas/ErrorUnauthorizedUser' + - $ref: '#/components/schemas/ErrorQuotaExceeded' + - $ref: '#/components/schemas/ErrorQuotaRateLimit' + - $ref: '#/components/schemas/ErrorNoDefaultKey' + - $ref: '#/components/schemas/ErrorMaxAccessKeys' + - $ref: '#/components/schemas/ErrorAtLeastOneKey' + - $ref: '#/components/schemas/ErrorTimeout' + - $ref: '#/components/schemas/ErrorInvalidArgument' + - $ref: '#/components/schemas/ErrorUnavailable' + - $ref: '#/components/schemas/ErrorQueryFailed' + - $ref: '#/components/schemas/ErrorIntentStatus' + - $ref: '#/components/schemas/ErrorNotFound' + - $ref: '#/components/schemas/ErrorUnsupportedNetwork' + - $ref: '#/components/schemas/ErrorClientOutdated' + - $ref: '#/components/schemas/ErrorIntentsSkipped' + - $ref: '#/components/schemas/ErrorQuoteExpired' + - $ref: '#/components/schemas/ErrorIntentsDisabled' + '5XX': + description: Server error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcBadResponse' + - $ref: '#/components/schemas/ErrorWebrpcServerPanic' + - $ref: '#/components/schemas/ErrorWebrpcInternalError' + - $ref: '#/components/schemas/ErrorUnexpected' + /rpc/Trails/GetChains: + post: + operationId: Trails-GetChains + tags: ["Trails"] + summary: "GetChains will return the list of supported chains by Trails." + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GetChainsRequest' + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/GetChainsResponse' + '4XX': + description: Client error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcEndpoint' + - $ref: '#/components/schemas/ErrorWebrpcRequestFailed' + - $ref: '#/components/schemas/ErrorWebrpcBadRoute' + - $ref: '#/components/schemas/ErrorWebrpcBadMethod' + - $ref: '#/components/schemas/ErrorWebrpcBadRequest' + - $ref: '#/components/schemas/ErrorWebrpcClientAborted' + - $ref: '#/components/schemas/ErrorWebrpcStreamLost' + - $ref: '#/components/schemas/ErrorUnauthorized' + - $ref: '#/components/schemas/ErrorPermissionDenied' + - $ref: '#/components/schemas/ErrorSessionExpired' + - $ref: '#/components/schemas/ErrorMethodNotFound' + - $ref: '#/components/schemas/ErrorRequestConflict' + - $ref: '#/components/schemas/ErrorAborted' + - $ref: '#/components/schemas/ErrorGeoblocked' + - $ref: '#/components/schemas/ErrorRateLimited' + - $ref: '#/components/schemas/ErrorProjectNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyMismatch' + - $ref: '#/components/schemas/ErrorInvalidOrigin' + - $ref: '#/components/schemas/ErrorInvalidService' + - $ref: '#/components/schemas/ErrorUnauthorizedUser' + - $ref: '#/components/schemas/ErrorQuotaExceeded' + - $ref: '#/components/schemas/ErrorQuotaRateLimit' + - $ref: '#/components/schemas/ErrorNoDefaultKey' + - $ref: '#/components/schemas/ErrorMaxAccessKeys' + - $ref: '#/components/schemas/ErrorAtLeastOneKey' + - $ref: '#/components/schemas/ErrorTimeout' + - $ref: '#/components/schemas/ErrorInvalidArgument' + - $ref: '#/components/schemas/ErrorUnavailable' + - $ref: '#/components/schemas/ErrorQueryFailed' + - $ref: '#/components/schemas/ErrorIntentStatus' + - $ref: '#/components/schemas/ErrorNotFound' + - $ref: '#/components/schemas/ErrorUnsupportedNetwork' + - $ref: '#/components/schemas/ErrorClientOutdated' + - $ref: '#/components/schemas/ErrorIntentsSkipped' + - $ref: '#/components/schemas/ErrorQuoteExpired' + - $ref: '#/components/schemas/ErrorIntentsDisabled' + '5XX': + description: Server error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcBadResponse' + - $ref: '#/components/schemas/ErrorWebrpcServerPanic' + - $ref: '#/components/schemas/ErrorWebrpcInternalError' + - $ref: '#/components/schemas/ErrorUnexpected' + /rpc/Trails/GetExactOutputRoutes: + post: + operationId: Trails-GetExactOutputRoutes + tags: ["Trails"] + summary: "GetExactOutputRoutes will return a list of origin tokens, when given a destination chain and token," + description: | + that can be used to pay/send from an origin chain the exact output amount on the + destination chain. + + The request will include the destination chain and token desired. Optionally, the + user can specify an origin chain and token to filter results to only that specific + origin token. Additionally, an optional owner address can be provided to filter + results to only tokens the owner has a balance on (requires indexer gateway to be + configured). + + The response is a list of origin tokens and their chains which can be used to fulfill + the exact output request. These are tokens the user can send FROM to achieve the desired + destination token amount. + + aka, the "pay" routes + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GetExactOutputRoutesRequest' + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/GetExactOutputRoutesResponse' + '4XX': + description: Client error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcEndpoint' + - $ref: '#/components/schemas/ErrorWebrpcRequestFailed' + - $ref: '#/components/schemas/ErrorWebrpcBadRoute' + - $ref: '#/components/schemas/ErrorWebrpcBadMethod' + - $ref: '#/components/schemas/ErrorWebrpcBadRequest' + - $ref: '#/components/schemas/ErrorWebrpcClientAborted' + - $ref: '#/components/schemas/ErrorWebrpcStreamLost' + - $ref: '#/components/schemas/ErrorUnauthorized' + - $ref: '#/components/schemas/ErrorPermissionDenied' + - $ref: '#/components/schemas/ErrorSessionExpired' + - $ref: '#/components/schemas/ErrorMethodNotFound' + - $ref: '#/components/schemas/ErrorRequestConflict' + - $ref: '#/components/schemas/ErrorAborted' + - $ref: '#/components/schemas/ErrorGeoblocked' + - $ref: '#/components/schemas/ErrorRateLimited' + - $ref: '#/components/schemas/ErrorProjectNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyMismatch' + - $ref: '#/components/schemas/ErrorInvalidOrigin' + - $ref: '#/components/schemas/ErrorInvalidService' + - $ref: '#/components/schemas/ErrorUnauthorizedUser' + - $ref: '#/components/schemas/ErrorQuotaExceeded' + - $ref: '#/components/schemas/ErrorQuotaRateLimit' + - $ref: '#/components/schemas/ErrorNoDefaultKey' + - $ref: '#/components/schemas/ErrorMaxAccessKeys' + - $ref: '#/components/schemas/ErrorAtLeastOneKey' + - $ref: '#/components/schemas/ErrorTimeout' + - $ref: '#/components/schemas/ErrorInvalidArgument' + - $ref: '#/components/schemas/ErrorUnavailable' + - $ref: '#/components/schemas/ErrorQueryFailed' + - $ref: '#/components/schemas/ErrorIntentStatus' + - $ref: '#/components/schemas/ErrorNotFound' + - $ref: '#/components/schemas/ErrorUnsupportedNetwork' + - $ref: '#/components/schemas/ErrorClientOutdated' + - $ref: '#/components/schemas/ErrorIntentsSkipped' + - $ref: '#/components/schemas/ErrorQuoteExpired' + - $ref: '#/components/schemas/ErrorIntentsDisabled' + '5XX': + description: Server error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcBadResponse' + - $ref: '#/components/schemas/ErrorWebrpcServerPanic' + - $ref: '#/components/schemas/ErrorWebrpcInternalError' + - $ref: '#/components/schemas/ErrorUnexpected' + /rpc/Trails/GetExactInputRoutes: + post: + operationId: Trails-GetExactInputRoutes + tags: ["Trails"] + summary: "GetExactInputRoutes will return a list of destination tokens, when given an origin chain and token," + description: | + that can be used to send/swap to a destination chain and token. + + The request will include the origin chain and token used for input. Optionally, the + user can specify a destination chain and token to further filter the results. + + The response is a list of destination tokens and their chains which can be reached from + the origin token and chain. These are tokens the user can send TO from the given origin token. + + aka, the "swap" routes + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GetExactInputRoutesRequest' + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/GetExactInputRoutesResponse' + '4XX': + description: Client error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcEndpoint' + - $ref: '#/components/schemas/ErrorWebrpcRequestFailed' + - $ref: '#/components/schemas/ErrorWebrpcBadRoute' + - $ref: '#/components/schemas/ErrorWebrpcBadMethod' + - $ref: '#/components/schemas/ErrorWebrpcBadRequest' + - $ref: '#/components/schemas/ErrorWebrpcClientAborted' + - $ref: '#/components/schemas/ErrorWebrpcStreamLost' + - $ref: '#/components/schemas/ErrorUnauthorized' + - $ref: '#/components/schemas/ErrorPermissionDenied' + - $ref: '#/components/schemas/ErrorSessionExpired' + - $ref: '#/components/schemas/ErrorMethodNotFound' + - $ref: '#/components/schemas/ErrorRequestConflict' + - $ref: '#/components/schemas/ErrorAborted' + - $ref: '#/components/schemas/ErrorGeoblocked' + - $ref: '#/components/schemas/ErrorRateLimited' + - $ref: '#/components/schemas/ErrorProjectNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyMismatch' + - $ref: '#/components/schemas/ErrorInvalidOrigin' + - $ref: '#/components/schemas/ErrorInvalidService' + - $ref: '#/components/schemas/ErrorUnauthorizedUser' + - $ref: '#/components/schemas/ErrorQuotaExceeded' + - $ref: '#/components/schemas/ErrorQuotaRateLimit' + - $ref: '#/components/schemas/ErrorNoDefaultKey' + - $ref: '#/components/schemas/ErrorMaxAccessKeys' + - $ref: '#/components/schemas/ErrorAtLeastOneKey' + - $ref: '#/components/schemas/ErrorTimeout' + - $ref: '#/components/schemas/ErrorInvalidArgument' + - $ref: '#/components/schemas/ErrorUnavailable' + - $ref: '#/components/schemas/ErrorQueryFailed' + - $ref: '#/components/schemas/ErrorIntentStatus' + - $ref: '#/components/schemas/ErrorNotFound' + - $ref: '#/components/schemas/ErrorUnsupportedNetwork' + - $ref: '#/components/schemas/ErrorClientOutdated' + - $ref: '#/components/schemas/ErrorIntentsSkipped' + - $ref: '#/components/schemas/ErrorQuoteExpired' + - $ref: '#/components/schemas/ErrorIntentsDisabled' + '5XX': + description: Server error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcBadResponse' + - $ref: '#/components/schemas/ErrorWebrpcServerPanic' + - $ref: '#/components/schemas/ErrorWebrpcInternalError' + - $ref: '#/components/schemas/ErrorUnexpected' + /rpc/Trails/GetTokenList: + post: + operationId: Trails-GetTokenList + tags: ["Trails"] + summary: "GetTokenList will return a list of tokens based on the provided filters." + description: | + NOTE: there are many filters and options on GetTokenListRequest + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GetTokenListRequest' + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/GetTokenListResponse' + '4XX': + description: Client error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcEndpoint' + - $ref: '#/components/schemas/ErrorWebrpcRequestFailed' + - $ref: '#/components/schemas/ErrorWebrpcBadRoute' + - $ref: '#/components/schemas/ErrorWebrpcBadMethod' + - $ref: '#/components/schemas/ErrorWebrpcBadRequest' + - $ref: '#/components/schemas/ErrorWebrpcClientAborted' + - $ref: '#/components/schemas/ErrorWebrpcStreamLost' + - $ref: '#/components/schemas/ErrorUnauthorized' + - $ref: '#/components/schemas/ErrorPermissionDenied' + - $ref: '#/components/schemas/ErrorSessionExpired' + - $ref: '#/components/schemas/ErrorMethodNotFound' + - $ref: '#/components/schemas/ErrorRequestConflict' + - $ref: '#/components/schemas/ErrorAborted' + - $ref: '#/components/schemas/ErrorGeoblocked' + - $ref: '#/components/schemas/ErrorRateLimited' + - $ref: '#/components/schemas/ErrorProjectNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyMismatch' + - $ref: '#/components/schemas/ErrorInvalidOrigin' + - $ref: '#/components/schemas/ErrorInvalidService' + - $ref: '#/components/schemas/ErrorUnauthorizedUser' + - $ref: '#/components/schemas/ErrorQuotaExceeded' + - $ref: '#/components/schemas/ErrorQuotaRateLimit' + - $ref: '#/components/schemas/ErrorNoDefaultKey' + - $ref: '#/components/schemas/ErrorMaxAccessKeys' + - $ref: '#/components/schemas/ErrorAtLeastOneKey' + - $ref: '#/components/schemas/ErrorTimeout' + - $ref: '#/components/schemas/ErrorInvalidArgument' + - $ref: '#/components/schemas/ErrorUnavailable' + - $ref: '#/components/schemas/ErrorQueryFailed' + - $ref: '#/components/schemas/ErrorIntentStatus' + - $ref: '#/components/schemas/ErrorNotFound' + - $ref: '#/components/schemas/ErrorUnsupportedNetwork' + - $ref: '#/components/schemas/ErrorClientOutdated' + - $ref: '#/components/schemas/ErrorIntentsSkipped' + - $ref: '#/components/schemas/ErrorQuoteExpired' + - $ref: '#/components/schemas/ErrorIntentsDisabled' + '5XX': + description: Server error content: application/json: schema: - $ref: '#/components/schemas/ErrorWebrpcBadRequest' + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcBadResponse' + - $ref: '#/components/schemas/ErrorWebrpcServerPanic' + - $ref: '#/components/schemas/ErrorWebrpcInternalError' + - $ref: '#/components/schemas/ErrorUnexpected' /rpc/Trails/GetTokenPrices: post: - summary: Get Token Prices - description: Retrieve current USD prices for tokens - operationId: getTokenPrices + operationId: Trails-GetTokenPrices + tags: ["Trails"] + summary: "GetTokenPrices will return the live prices for a list of tokens." + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GetTokenPricesRequest' + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/GetTokenPricesResponse' + '4XX': + description: Client error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcEndpoint' + - $ref: '#/components/schemas/ErrorWebrpcRequestFailed' + - $ref: '#/components/schemas/ErrorWebrpcBadRoute' + - $ref: '#/components/schemas/ErrorWebrpcBadMethod' + - $ref: '#/components/schemas/ErrorWebrpcBadRequest' + - $ref: '#/components/schemas/ErrorWebrpcClientAborted' + - $ref: '#/components/schemas/ErrorWebrpcStreamLost' + - $ref: '#/components/schemas/ErrorUnauthorized' + - $ref: '#/components/schemas/ErrorPermissionDenied' + - $ref: '#/components/schemas/ErrorSessionExpired' + - $ref: '#/components/schemas/ErrorMethodNotFound' + - $ref: '#/components/schemas/ErrorRequestConflict' + - $ref: '#/components/schemas/ErrorAborted' + - $ref: '#/components/schemas/ErrorGeoblocked' + - $ref: '#/components/schemas/ErrorRateLimited' + - $ref: '#/components/schemas/ErrorProjectNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyMismatch' + - $ref: '#/components/schemas/ErrorInvalidOrigin' + - $ref: '#/components/schemas/ErrorInvalidService' + - $ref: '#/components/schemas/ErrorUnauthorizedUser' + - $ref: '#/components/schemas/ErrorQuotaExceeded' + - $ref: '#/components/schemas/ErrorQuotaRateLimit' + - $ref: '#/components/schemas/ErrorNoDefaultKey' + - $ref: '#/components/schemas/ErrorMaxAccessKeys' + - $ref: '#/components/schemas/ErrorAtLeastOneKey' + - $ref: '#/components/schemas/ErrorTimeout' + - $ref: '#/components/schemas/ErrorInvalidArgument' + - $ref: '#/components/schemas/ErrorUnavailable' + - $ref: '#/components/schemas/ErrorQueryFailed' + - $ref: '#/components/schemas/ErrorIntentStatus' + - $ref: '#/components/schemas/ErrorNotFound' + - $ref: '#/components/schemas/ErrorUnsupportedNetwork' + - $ref: '#/components/schemas/ErrorClientOutdated' + - $ref: '#/components/schemas/ErrorIntentsSkipped' + - $ref: '#/components/schemas/ErrorQuoteExpired' + - $ref: '#/components/schemas/ErrorIntentsDisabled' + '5XX': + description: Server error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcBadResponse' + - $ref: '#/components/schemas/ErrorWebrpcServerPanic' + - $ref: '#/components/schemas/ErrorWebrpcInternalError' + - $ref: '#/components/schemas/ErrorUnexpected' + /rpc/Trails/GetExchangeRate: + post: + operationId: Trails-GetExchangeRate + tags: ["Trails"] + summary: "GetExchangeRate returns the exchange rate from USD to a specified currency." + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Trails_GetExchangeRate_Request' + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Trails_GetExchangeRate_Response' + '4XX': + description: Client error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcEndpoint' + - $ref: '#/components/schemas/ErrorWebrpcRequestFailed' + - $ref: '#/components/schemas/ErrorWebrpcBadRoute' + - $ref: '#/components/schemas/ErrorWebrpcBadMethod' + - $ref: '#/components/schemas/ErrorWebrpcBadRequest' + - $ref: '#/components/schemas/ErrorWebrpcClientAborted' + - $ref: '#/components/schemas/ErrorWebrpcStreamLost' + - $ref: '#/components/schemas/ErrorUnauthorized' + - $ref: '#/components/schemas/ErrorPermissionDenied' + - $ref: '#/components/schemas/ErrorSessionExpired' + - $ref: '#/components/schemas/ErrorMethodNotFound' + - $ref: '#/components/schemas/ErrorRequestConflict' + - $ref: '#/components/schemas/ErrorAborted' + - $ref: '#/components/schemas/ErrorGeoblocked' + - $ref: '#/components/schemas/ErrorRateLimited' + - $ref: '#/components/schemas/ErrorProjectNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyMismatch' + - $ref: '#/components/schemas/ErrorInvalidOrigin' + - $ref: '#/components/schemas/ErrorInvalidService' + - $ref: '#/components/schemas/ErrorUnauthorizedUser' + - $ref: '#/components/schemas/ErrorQuotaExceeded' + - $ref: '#/components/schemas/ErrorQuotaRateLimit' + - $ref: '#/components/schemas/ErrorNoDefaultKey' + - $ref: '#/components/schemas/ErrorMaxAccessKeys' + - $ref: '#/components/schemas/ErrorAtLeastOneKey' + - $ref: '#/components/schemas/ErrorTimeout' + - $ref: '#/components/schemas/ErrorInvalidArgument' + - $ref: '#/components/schemas/ErrorUnavailable' + - $ref: '#/components/schemas/ErrorQueryFailed' + - $ref: '#/components/schemas/ErrorIntentStatus' + - $ref: '#/components/schemas/ErrorNotFound' + - $ref: '#/components/schemas/ErrorUnsupportedNetwork' + - $ref: '#/components/schemas/ErrorClientOutdated' + - $ref: '#/components/schemas/ErrorIntentsSkipped' + - $ref: '#/components/schemas/ErrorQuoteExpired' + - $ref: '#/components/schemas/ErrorIntentsDisabled' + '5XX': + description: Server error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcBadResponse' + - $ref: '#/components/schemas/ErrorWebrpcServerPanic' + - $ref: '#/components/schemas/ErrorWebrpcInternalError' + - $ref: '#/components/schemas/ErrorUnexpected' + /rpc/Trails/GetCountryList: + post: + operationId: Trails-GetCountryList + tags: ["Trails"] + summary: "GetCountryList returns the list of supported countries for onramp providers." + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Trails_GetCountryList_Request' + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Trails_GetCountryList_Response' + '4XX': + description: Client error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcEndpoint' + - $ref: '#/components/schemas/ErrorWebrpcRequestFailed' + - $ref: '#/components/schemas/ErrorWebrpcBadRoute' + - $ref: '#/components/schemas/ErrorWebrpcBadMethod' + - $ref: '#/components/schemas/ErrorWebrpcBadRequest' + - $ref: '#/components/schemas/ErrorWebrpcClientAborted' + - $ref: '#/components/schemas/ErrorWebrpcStreamLost' + - $ref: '#/components/schemas/ErrorUnauthorized' + - $ref: '#/components/schemas/ErrorPermissionDenied' + - $ref: '#/components/schemas/ErrorSessionExpired' + - $ref: '#/components/schemas/ErrorMethodNotFound' + - $ref: '#/components/schemas/ErrorRequestConflict' + - $ref: '#/components/schemas/ErrorAborted' + - $ref: '#/components/schemas/ErrorGeoblocked' + - $ref: '#/components/schemas/ErrorRateLimited' + - $ref: '#/components/schemas/ErrorProjectNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyMismatch' + - $ref: '#/components/schemas/ErrorInvalidOrigin' + - $ref: '#/components/schemas/ErrorInvalidService' + - $ref: '#/components/schemas/ErrorUnauthorizedUser' + - $ref: '#/components/schemas/ErrorQuotaExceeded' + - $ref: '#/components/schemas/ErrorQuotaRateLimit' + - $ref: '#/components/schemas/ErrorNoDefaultKey' + - $ref: '#/components/schemas/ErrorMaxAccessKeys' + - $ref: '#/components/schemas/ErrorAtLeastOneKey' + - $ref: '#/components/schemas/ErrorTimeout' + - $ref: '#/components/schemas/ErrorInvalidArgument' + - $ref: '#/components/schemas/ErrorUnavailable' + - $ref: '#/components/schemas/ErrorQueryFailed' + - $ref: '#/components/schemas/ErrorIntentStatus' + - $ref: '#/components/schemas/ErrorNotFound' + - $ref: '#/components/schemas/ErrorUnsupportedNetwork' + - $ref: '#/components/schemas/ErrorClientOutdated' + - $ref: '#/components/schemas/ErrorIntentsSkipped' + - $ref: '#/components/schemas/ErrorQuoteExpired' + - $ref: '#/components/schemas/ErrorIntentsDisabled' + '5XX': + description: Server error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcBadResponse' + - $ref: '#/components/schemas/ErrorWebrpcServerPanic' + - $ref: '#/components/schemas/ErrorWebrpcInternalError' + - $ref: '#/components/schemas/ErrorUnexpected' + /rpc/Trails/GetTrailsContracts: + post: + operationId: Trails-GetTrailsContracts + tags: ["Trails"] + summary: "GetTrailsContracts returns Trails contract addresses used by the Trails Intents stack." requestBody: - required: true content: application/json: schema: - type: object - required: - - tokens - properties: - tokens: - type: array - items: - $ref: '#/components/schemas/Token' + $ref: '#/components/schemas/Trails_GetTrailsContracts_Request' responses: '200': - description: Successful response + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Trails_GetTrailsContracts_Response' + '4XX': + description: Client error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcEndpoint' + - $ref: '#/components/schemas/ErrorWebrpcRequestFailed' + - $ref: '#/components/schemas/ErrorWebrpcBadRoute' + - $ref: '#/components/schemas/ErrorWebrpcBadMethod' + - $ref: '#/components/schemas/ErrorWebrpcBadRequest' + - $ref: '#/components/schemas/ErrorWebrpcClientAborted' + - $ref: '#/components/schemas/ErrorWebrpcStreamLost' + - $ref: '#/components/schemas/ErrorUnauthorized' + - $ref: '#/components/schemas/ErrorPermissionDenied' + - $ref: '#/components/schemas/ErrorSessionExpired' + - $ref: '#/components/schemas/ErrorMethodNotFound' + - $ref: '#/components/schemas/ErrorRequestConflict' + - $ref: '#/components/schemas/ErrorAborted' + - $ref: '#/components/schemas/ErrorGeoblocked' + - $ref: '#/components/schemas/ErrorRateLimited' + - $ref: '#/components/schemas/ErrorProjectNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyMismatch' + - $ref: '#/components/schemas/ErrorInvalidOrigin' + - $ref: '#/components/schemas/ErrorInvalidService' + - $ref: '#/components/schemas/ErrorUnauthorizedUser' + - $ref: '#/components/schemas/ErrorQuotaExceeded' + - $ref: '#/components/schemas/ErrorQuotaRateLimit' + - $ref: '#/components/schemas/ErrorNoDefaultKey' + - $ref: '#/components/schemas/ErrorMaxAccessKeys' + - $ref: '#/components/schemas/ErrorAtLeastOneKey' + - $ref: '#/components/schemas/ErrorTimeout' + - $ref: '#/components/schemas/ErrorInvalidArgument' + - $ref: '#/components/schemas/ErrorUnavailable' + - $ref: '#/components/schemas/ErrorQueryFailed' + - $ref: '#/components/schemas/ErrorIntentStatus' + - $ref: '#/components/schemas/ErrorNotFound' + - $ref: '#/components/schemas/ErrorUnsupportedNetwork' + - $ref: '#/components/schemas/ErrorClientOutdated' + - $ref: '#/components/schemas/ErrorIntentsSkipped' + - $ref: '#/components/schemas/ErrorQuoteExpired' + - $ref: '#/components/schemas/ErrorIntentsDisabled' + '5XX': + description: Server error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcBadResponse' + - $ref: '#/components/schemas/ErrorWebrpcServerPanic' + - $ref: '#/components/schemas/ErrorWebrpcInternalError' + - $ref: '#/components/schemas/ErrorUnexpected' + /rpc/Trails/GetEarnPools: + post: + operationId: Trails-GetEarnPools + tags: ["Trails"] + summary: "GetEarnPools returns aggregated pool information from DeFi protocols (Aave, Morpho)." + description: | + This endpoint provides yield-bearing opportunities across multiple chains. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GetEarnPoolsRequest' + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/GetEarnPoolsResponse' + '4XX': + description: Client error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcEndpoint' + - $ref: '#/components/schemas/ErrorWebrpcRequestFailed' + - $ref: '#/components/schemas/ErrorWebrpcBadRoute' + - $ref: '#/components/schemas/ErrorWebrpcBadMethod' + - $ref: '#/components/schemas/ErrorWebrpcBadRequest' + - $ref: '#/components/schemas/ErrorWebrpcClientAborted' + - $ref: '#/components/schemas/ErrorWebrpcStreamLost' + - $ref: '#/components/schemas/ErrorUnauthorized' + - $ref: '#/components/schemas/ErrorPermissionDenied' + - $ref: '#/components/schemas/ErrorSessionExpired' + - $ref: '#/components/schemas/ErrorMethodNotFound' + - $ref: '#/components/schemas/ErrorRequestConflict' + - $ref: '#/components/schemas/ErrorAborted' + - $ref: '#/components/schemas/ErrorGeoblocked' + - $ref: '#/components/schemas/ErrorRateLimited' + - $ref: '#/components/schemas/ErrorProjectNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyMismatch' + - $ref: '#/components/schemas/ErrorInvalidOrigin' + - $ref: '#/components/schemas/ErrorInvalidService' + - $ref: '#/components/schemas/ErrorUnauthorizedUser' + - $ref: '#/components/schemas/ErrorQuotaExceeded' + - $ref: '#/components/schemas/ErrorQuotaRateLimit' + - $ref: '#/components/schemas/ErrorNoDefaultKey' + - $ref: '#/components/schemas/ErrorMaxAccessKeys' + - $ref: '#/components/schemas/ErrorAtLeastOneKey' + - $ref: '#/components/schemas/ErrorTimeout' + - $ref: '#/components/schemas/ErrorInvalidArgument' + - $ref: '#/components/schemas/ErrorUnavailable' + - $ref: '#/components/schemas/ErrorQueryFailed' + - $ref: '#/components/schemas/ErrorIntentStatus' + - $ref: '#/components/schemas/ErrorNotFound' + - $ref: '#/components/schemas/ErrorUnsupportedNetwork' + - $ref: '#/components/schemas/ErrorClientOutdated' + - $ref: '#/components/schemas/ErrorIntentsSkipped' + - $ref: '#/components/schemas/ErrorQuoteExpired' + - $ref: '#/components/schemas/ErrorIntentsDisabled' + '5XX': + description: Server error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcBadResponse' + - $ref: '#/components/schemas/ErrorWebrpcServerPanic' + - $ref: '#/components/schemas/ErrorWebrpcInternalError' + - $ref: '#/components/schemas/ErrorUnexpected' + /rpc/Trails/GetFiatCurrencyList: + post: + operationId: Trails-GetFiatCurrencyList + tags: ["Trails"] + summary: "GetFiatCurrencyList returns the list of supported fiat currencies for display preferences." + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Trails_GetFiatCurrencyList_Request' + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Trails_GetFiatCurrencyList_Response' + '4XX': + description: Client error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcEndpoint' + - $ref: '#/components/schemas/ErrorWebrpcRequestFailed' + - $ref: '#/components/schemas/ErrorWebrpcBadRoute' + - $ref: '#/components/schemas/ErrorWebrpcBadMethod' + - $ref: '#/components/schemas/ErrorWebrpcBadRequest' + - $ref: '#/components/schemas/ErrorWebrpcClientAborted' + - $ref: '#/components/schemas/ErrorWebrpcStreamLost' + - $ref: '#/components/schemas/ErrorUnauthorized' + - $ref: '#/components/schemas/ErrorPermissionDenied' + - $ref: '#/components/schemas/ErrorSessionExpired' + - $ref: '#/components/schemas/ErrorMethodNotFound' + - $ref: '#/components/schemas/ErrorRequestConflict' + - $ref: '#/components/schemas/ErrorAborted' + - $ref: '#/components/schemas/ErrorGeoblocked' + - $ref: '#/components/schemas/ErrorRateLimited' + - $ref: '#/components/schemas/ErrorProjectNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyMismatch' + - $ref: '#/components/schemas/ErrorInvalidOrigin' + - $ref: '#/components/schemas/ErrorInvalidService' + - $ref: '#/components/schemas/ErrorUnauthorizedUser' + - $ref: '#/components/schemas/ErrorQuotaExceeded' + - $ref: '#/components/schemas/ErrorQuotaRateLimit' + - $ref: '#/components/schemas/ErrorNoDefaultKey' + - $ref: '#/components/schemas/ErrorMaxAccessKeys' + - $ref: '#/components/schemas/ErrorAtLeastOneKey' + - $ref: '#/components/schemas/ErrorTimeout' + - $ref: '#/components/schemas/ErrorInvalidArgument' + - $ref: '#/components/schemas/ErrorUnavailable' + - $ref: '#/components/schemas/ErrorQueryFailed' + - $ref: '#/components/schemas/ErrorIntentStatus' + - $ref: '#/components/schemas/ErrorNotFound' + - $ref: '#/components/schemas/ErrorUnsupportedNetwork' + - $ref: '#/components/schemas/ErrorClientOutdated' + - $ref: '#/components/schemas/ErrorIntentsSkipped' + - $ref: '#/components/schemas/ErrorQuoteExpired' + - $ref: '#/components/schemas/ErrorIntentsDisabled' + '5XX': + description: Server error + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcBadResponse' + - $ref: '#/components/schemas/ErrorWebrpcServerPanic' + - $ref: '#/components/schemas/ErrorWebrpcInternalError' + - $ref: '#/components/schemas/ErrorUnexpected' + /rpc/Trails/GetIntentTransactionHistory: + post: + operationId: Trails-GetIntentTransactionHistory + tags: ["Trails"] + summary: "Deprecated: please use GetIntentHistory instead" + deprecated: true + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GetIntentTransactionHistoryRequest' + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/GetIntentTransactionHistoryResponse' + '4XX': + description: Client error content: application/json: schema: - type: object - required: - - tokenPrices - properties: - tokenPrices: - type: array - items: - $ref: '#/components/schemas/TokenPrice' - '400': - description: Bad request + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcEndpoint' + - $ref: '#/components/schemas/ErrorWebrpcRequestFailed' + - $ref: '#/components/schemas/ErrorWebrpcBadRoute' + - $ref: '#/components/schemas/ErrorWebrpcBadMethod' + - $ref: '#/components/schemas/ErrorWebrpcBadRequest' + - $ref: '#/components/schemas/ErrorWebrpcClientAborted' + - $ref: '#/components/schemas/ErrorWebrpcStreamLost' + - $ref: '#/components/schemas/ErrorUnauthorized' + - $ref: '#/components/schemas/ErrorPermissionDenied' + - $ref: '#/components/schemas/ErrorSessionExpired' + - $ref: '#/components/schemas/ErrorMethodNotFound' + - $ref: '#/components/schemas/ErrorRequestConflict' + - $ref: '#/components/schemas/ErrorAborted' + - $ref: '#/components/schemas/ErrorGeoblocked' + - $ref: '#/components/schemas/ErrorRateLimited' + - $ref: '#/components/schemas/ErrorProjectNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyNotFound' + - $ref: '#/components/schemas/ErrorAccessKeyMismatch' + - $ref: '#/components/schemas/ErrorInvalidOrigin' + - $ref: '#/components/schemas/ErrorInvalidService' + - $ref: '#/components/schemas/ErrorUnauthorizedUser' + - $ref: '#/components/schemas/ErrorQuotaExceeded' + - $ref: '#/components/schemas/ErrorQuotaRateLimit' + - $ref: '#/components/schemas/ErrorNoDefaultKey' + - $ref: '#/components/schemas/ErrorMaxAccessKeys' + - $ref: '#/components/schemas/ErrorAtLeastOneKey' + - $ref: '#/components/schemas/ErrorTimeout' + - $ref: '#/components/schemas/ErrorInvalidArgument' + - $ref: '#/components/schemas/ErrorUnavailable' + - $ref: '#/components/schemas/ErrorQueryFailed' + - $ref: '#/components/schemas/ErrorIntentStatus' + - $ref: '#/components/schemas/ErrorNotFound' + - $ref: '#/components/schemas/ErrorUnsupportedNetwork' + - $ref: '#/components/schemas/ErrorClientOutdated' + - $ref: '#/components/schemas/ErrorIntentsSkipped' + - $ref: '#/components/schemas/ErrorQuoteExpired' + - $ref: '#/components/schemas/ErrorIntentsDisabled' + '5XX': + description: Server error content: application/json: schema: - $ref: '#/components/schemas/ErrorWebrpcBadRequest' + oneOf: + - $ref: '#/components/schemas/ErrorWebrpcBadResponse' + - $ref: '#/components/schemas/ErrorWebrpcServerPanic' + - $ref: '#/components/schemas/ErrorWebrpcInternalError' + - $ref: '#/components/schemas/ErrorUnexpected' \ No newline at end of file