From 5b0f4832dfb893d469ee972326c65a188d016db9 Mon Sep 17 00:00:00 2001 From: rhinestone-bot Date: Fri, 6 Mar 2026 16:24:19 +0000 Subject: [PATCH] chore(orchestrator): update OpenAPI spec from rhinestonewtf/orchestrator@7410d87377e0abe4392e08ebb12e8ed6d30d0715 --- orchestrator.json | 1448 ++++++++++++++++++++++++++++++++++++++------- 1 file changed, 1218 insertions(+), 230 deletions(-) diff --git a/orchestrator.json b/orchestrator.json index 94b9394..38b5cdd 100644 --- a/orchestrator.json +++ b/orchestrator.json @@ -337,13 +337,18 @@ "WETH", "USDT0", "USDT", + "BNB", + "WBNB", "XDAI", "POL", "WPOL", "S", "WS", + "HYPE", + "WHYPE", "XPL", - "WXPL" + "WXPL", + "MockUSD" ] } ] @@ -366,13 +371,18 @@ "WETH", "USDT0", "USDT", + "BNB", + "WBNB", "XDAI", "POL", "WPOL", "S", "WS", + "HYPE", + "WHYPE", "XPL", - "WXPL" + "WXPL", + "MockUSD" ] } ] @@ -404,13 +414,18 @@ "WETH", "USDT0", "USDT", + "BNB", + "WBNB", "XDAI", "POL", "WPOL", "S", "WS", + "HYPE", + "WHYPE", "XPL", - "WXPL" + "WXPL", + "MockUSD" ] } ] @@ -433,13 +448,18 @@ "WETH", "USDT0", "USDT", + "BNB", + "WBNB", "XDAI", "POL", "WPOL", "S", "WS", + "HYPE", + "WHYPE", "XPL", - "WXPL" + "WXPL", + "MockUSD" ] } ] @@ -687,9 +707,7 @@ "type": "string", "enum": [ "ACROSS", - "ECO", - "RELAY", - "OFT" + "ECO" ] }, "description": "The settlement layer to be used to settle intents", @@ -753,13 +771,18 @@ "WETH", "USDT0", "USDT", + "BNB", + "WBNB", "XDAI", "POL", "WPOL", "S", "WS", + "HYPE", + "WHYPE", "XPL", - "WXPL" + "WXPL", + "MockUSD" ] }, "executionTokensReceived": { @@ -771,6 +794,22 @@ "example": [ "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913" ] + }, + "auxiliaryFunds": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + }, + "description": "Additional token balances to consider during route finding", + "example": { + "42161": { + "0xaf88d065e77c8cC2239327C5EDb3A432268e5831": "500000000" + } + } } }, "description": "Intent options", @@ -819,6 +858,12 @@ "description": "Transaction nonce", "example": "0" }, + "targetExecutionNonce": { + "type": "integer", + "format": "int64", + "description": "Target execution nonce", + "example": "0" + }, "expires": { "type": "integer", "format": "int64", @@ -941,63 +986,257 @@ "description": "Must be NO_FUNDING for INTENT_EXECUTOR", "example": "NO_FUNDING" }, - "bridge": { - "discriminator": { - "propertyName": "type" - }, - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "OFT" - ] - }, - "oftToken": { - "type": "string", - "description": "OFT token symbol (e.g., USDT0)", - "example": "USDT0" - }, - "dstChainId": { - "type": "number", - "description": "Destination chain id (where tokens are delivered)", - "example": 8453 - }, - "dstEid": { - "type": "number", - "description": "LayerZero destination endpoint id", - "example": 30383 - }, - "minAmountLD": { - "type": "integer", - "format": "int64", - "description": "Minimum amount on destination (LD units)", - "example": "990000" - }, - "adapter": { - "type": "string", - "description": "OFT adapter contract on origin chain" - } - }, - "required": [ - "type", - "oftToken", - "dstChainId", - "dstEid", - "minAmountLD", - "adapter" - ] + "gasRefund": { + "0": "g", + "1": "a", + "2": "s", + "3": " ", + "4": "r", + "5": "e", + "6": "f", + "7": "u", + "8": "n", + "9": "d", + "10": " ", + "11": "i", + "12": "n", + "13": "f", + "14": "o", + "15": "r", + "16": "m", + "17": "a", + "18": "t", + "19": "i", + "20": "o", + "21": "n", + "type": "object", + "properties": { + "overhead": { + "0": "O", + "1": "v", + "2": "e", + "3": "r", + "4": "h", + "5": "e", + "6": "a", + "7": "d", + "8": " ", + "9": "g", + "10": "a", + "11": "s", + "12": " ", + "13": "a", + "14": "m", + "15": "o", + "16": "u", + "17": "n", + "18": "t", + "19": " ", + "20": "a", + "21": "d", + "22": "d", + "23": " ", + "24": "t", + "25": "o", + "26": " ", + "27": "g", + "28": "a", + "29": "s", + "30": " ", + "31": "s", + "32": "p", + "33": "e", + "34": "n", + "35": "t", + "36": " ", + "37": "w", + "38": "h", + "39": "e", + "40": "n", + "41": " ", + "42": "e", + "43": "x", + "44": "e", + "45": "c", + "46": "u", + "47": "t", + "48": "i", + "49": "n", + "50": "g", + "51": " ", + "52": "d", + "53": "e", + "54": "s", + "55": "t", + "56": "i", + "57": "n", + "58": "a", + "59": "t", + "60": "i", + "61": "o", + "62": "n", + "63": " ", + "64": "o", + "65": "p", + "66": "s", + "type": "integer", + "format": "int64" + }, + "exchangeRate": { + "0": "E", + "1": "x", + "2": "c", + "3": "h", + "4": "a", + "5": "n", + "6": "g", + "7": "e", + "8": " ", + "9": "r", + "10": "a", + "11": "t", + "12": "e", + "13": " ", + "14": "b", + "15": "e", + "16": "t", + "17": "w", + "18": "e", + "19": "e", + "20": "n", + "21": " ", + "22": "t", + "23": "o", + "24": "k", + "25": "e", + "26": "n", + "27": " ", + "28": "s", + "29": "e", + "30": "l", + "31": "e", + "32": "c", + "33": "t", + "34": "e", + "35": "d", + "36": " ", + "37": "f", + "38": "o", + "39": "r", + "40": " ", + "41": "g", + "42": "a", + "43": "s", + "44": " ", + "45": "r", + "46": "e", + "47": "f", + "48": "u", + "49": "n", + "50": "d", + "51": " ", + "52": "a", + "53": "n", + "54": "d", + "55": " ", + "56": "n", + "57": "a", + "58": "t", + "59": "i", + "60": "v", + "61": "e", + "62": " ", + "63": "t", + "64": "o", + "65": "k", + "66": "e", + "67": "n", + "68": " ", + "69": "c", + "70": "o", + "71": "n", + "72": "s", + "73": "u", + "74": "m", + "75": "e", + "76": "d", + "77": " ", + "78": "f", + "79": "o", + "80": "r", + "81": " ", + "82": "g", + "83": "a", + "84": "s", + "type": "integer", + "format": "int64" + }, + "token": { + "0": "t", + "1": "o", + "2": "k", + "3": "e", + "4": "n", + "5": " ", + "6": "a", + "7": "d", + "8": "d", + "9": "r", + "10": "e", + "11": "s", + "12": "s", + "13": " ", + "14": "w", + "15": "h", + "16": "i", + "17": "c", + "18": "h", + "19": " ", + "20": "w", + "21": "i", + "22": "l", + "23": "l", + "24": " ", + "25": "b", + "26": "e", + "27": " ", + "28": "u", + "29": "s", + "30": "e", + "31": "d", + "32": " ", + "33": "f", + "34": "o", + "35": "r", + "36": " ", + "37": "g", + "38": "a", + "39": "s", + "40": " ", + "41": "r", + "42": "e", + "43": "f", + "44": "u", + "45": "n", + "46": "d", + "47": "i", + "48": "n", + "49": "g", + "type": "string" } - ], - "description": "Optional metadata when INTENT_EXECUTOR is used as flow but settlement is via another mechanism (e.g. OFT/LayerZero)." + }, + "required": [ + "overhead", + "exchangeRate", + "token" + ] } }, "required": [ "settlementLayer", "using7579", - "fundingMethod" + "fundingMethod", + "gasRefund" ] }, { @@ -1140,57 +1379,6 @@ "fundingMethod", "requestId" ] - }, - { - "type": "object", - "properties": { - "settlementLayer": { - "type": "string", - "enum": [ - "OFT" - ], - "description": "Settlement layer for LayerZero OFT bridging (supports USDT0, etc.)", - "example": "OFT" - }, - "using7579": { - "type": "boolean", - "description": "Whether to use 7579", - "example": false - }, - "fundingMethod": { - "type": "string", - "enum": [ - "COMPACT", - "PERMIT2", - "NO_FUNDING" - ], - "description": "The method of funding the intent", - "example": "PERMIT2" - }, - "oftToken": { - "type": "string", - "description": "OFT token symbol (e.g., USDT0)", - "example": "USDT0" - }, - "dstEid": { - "type": "number", - "description": "LayerZero endpoint ID for the destination chain", - "example": 30383 - }, - "guid": { - "type": "string", - "pattern": "^0x[a-fA-F0-9]*$", - "description": "LayerZero message GUID (set after send)", - "example": "0x0000000000000000000000000000000000000000000000000000000000000000" - } - }, - "required": [ - "settlementLayer", - "using7579", - "fundingMethod", - "oftToken", - "dstEid" - ] } ] }, @@ -1212,6 +1400,85 @@ "format": "int64", "description": "Mininimum gas for preclaim ops", "example": "0" + }, + "swapDestinations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "tokenIn": { + "type": "string" + }, + "amountIn": { + "type": "integer", + "format": "int64" + }, + "amountOut": { + "type": "integer", + "format": "int64" + }, + "slippage": { + "type": "number" + }, + "quoter": { + "type": "string" + }, + "executions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "to": { + "type": "string", + "description": "Target contract address for execution", + "example": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913" + }, + "value": { + "type": "integer", + "format": "int64", + "description": "Amount of ETH (in wei) sent in the execution", + "example": "0" + }, + "data": { + "type": "string", + "pattern": "^0x[a-fA-F0-9]*$", + "description": "Encoded function call data", + "example": "0xa9059cbb000000000000000000000000579d5631f76126991c00fb8fe5467fa9d49e5f6a00000000000000000000000000000000000000000000000000000000000f4240" + }, + "senderAddressPlaceholder": { + "type": "string" + }, + "recipientAddressPlaceholder": { + "type": "string" + } + }, + "required": [ + "to", + "value", + "data" + ] + } + }, + "outputDecimals": { + "type": "number" + }, + "outputSymbol": { + "type": "string" + } + }, + "required": [ + "tokenIn", + "amountIn", + "amountOut", + "slippage", + "quoter", + "executions", + "outputDecimals", + "outputSymbol" + ], + "nullable": true + }, + "description": "Swap execution data for arbitrary output tokens, aligned by index with tokenOut" } }, "required": [ @@ -1225,6 +1492,93 @@ "minGas" ], "description": "Mandate containing execution details" + }, + "swapOrigins": { + "type": "array", + "items": { + "type": "object", + "properties": { + "tokenIn": { + "type": "string" + }, + "tokenOut": { + "type": "string" + }, + "amountIn": { + "type": "integer", + "format": "int64" + }, + "amountOut": { + "type": "integer", + "format": "int64" + }, + "slippage": { + "type": "number" + }, + "quoter": { + "type": "string" + }, + "executions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "to": { + "type": "string", + "description": "Target contract address for execution", + "example": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913" + }, + "value": { + "type": "integer", + "format": "int64", + "description": "Amount of ETH (in wei) sent in the execution", + "example": "0" + }, + "data": { + "type": "string", + "pattern": "^0x[a-fA-F0-9]*$", + "description": "Encoded function call data", + "example": "0xa9059cbb000000000000000000000000579d5631f76126991c00fb8fe5467fa9d49e5f6a00000000000000000000000000000000000000000000000000000000000f4240" + }, + "senderAddressPlaceholder": { + "type": "string" + }, + "recipientAddressPlaceholder": { + "type": "string" + } + }, + "required": [ + "to", + "value", + "data" + ] + } + }, + "inputDecimals": { + "type": "number" + }, + "inputSymbol": { + "type": "string" + }, + "price": { + "type": "number" + } + }, + "required": [ + "tokenIn", + "tokenOut", + "amountIn", + "amountOut", + "slippage", + "quoter", + "executions", + "inputDecimals", + "inputSymbol", + "price" + ], + "nullable": true + }, + "description": "Swap execution data for arbitrary input tokens, aligned by index with spendTokens" } }, "required": [ @@ -1264,6 +1618,12 @@ "USDT": { "type": "number" }, + "BNB": { + "type": "number" + }, + "WBNB": { + "type": "number" + }, "XDAI": { "type": "number" }, @@ -1279,11 +1639,20 @@ "WS": { "type": "number" }, + "HYPE": { + "type": "number" + }, + "WHYPE": { + "type": "number" + }, "XPL": { "type": "number" }, "WXPL": { "type": "number" + }, + "MockUSD": { + "type": "number" } }, "required": [ @@ -1292,13 +1661,18 @@ "WETH", "USDT0", "USDT", + "BNB", + "WBNB", "XDAI", "POL", "WPOL", "S", "WS", + "HYPE", + "WHYPE", "XPL", - "WXPL" + "WXPL", + "MockUSD" ], "description": "Token prices in USD", "example": { @@ -1362,13 +1736,6 @@ } } }, - "quotes": { - "type": "object", - "additionalProperties": { - "nullable": true - }, - "description": "Swap quotes per token address" - }, "account": { "type": "object", "properties": { @@ -2158,13 +2525,73 @@ "protocol" ], "description": "Transaction fees" + }, + "gasCost": { + "type": "object", + "properties": { + "originChains": { + "type": "array", + "items": { + "type": "object", + "properties": { + "chainId": { + "type": "number", + "description": "Chain ID where the gas cost was incurred", + "example": 8453 + }, + "gasUSD": { + "type": "number", + "description": "Gas cost in USD", + "example": 1.2 + } + }, + "required": [ + "chainId", + "gasUSD" + ] + }, + "description": "Gas costs per origin chain" + }, + "destination": { + "type": "object", + "properties": { + "chainId": { + "type": "number", + "description": "Chain ID where the gas cost was incurred", + "example": 8453 + }, + "gasUSD": { + "type": "number", + "description": "Gas cost in USD", + "example": 1.2 + } + }, + "required": [ + "chainId", + "gasUSD" + ], + "description": "Gas cost on the destination chain" + }, + "totalUSD": { + "type": "number", + "description": "Total gas cost in USD across all chains", + "example": 4.15 + } + }, + "required": [ + "originChains", + "destination", + "totalUSD" + ], + "description": "Breakdown of gas costs across origin and destination chains" } }, "required": [ "hasFulfilledAll", "tokensSpent", "tokensReceived", - "sponsorFee" + "sponsorFee", + "gasCost" ] }, { @@ -2384,6 +2811,229 @@ } } }, + "/intents/split": { + "post": { + "description": "Splits token amounts into multiple intents based on available relayer liquidity. Each returned intent can be filled by a single relayer.", + "summary": "Split Intent by Liquidity", + "tags": [ + "Intents" + ], + "parameters": [ + { + "name": "x-api-key", + "in": "header", + "required": true, + "schema": { + "type": "string", + "description": "Rhinestone API key" + } + } + ], + "requestBody": { + "description": "Body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "chainId": { + "type": "integer", + "minimum": 0, + "exclusiveMinimum": 0, + "description": "The destination chain ID", + "example": 42161 + }, + "tokens": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + }, + "description": "Map of token addresses to amounts", + "example": { + "0xaf88d065e77c8cc2239327c5edb3a432268e5831": "5000000000000" + } + }, + "settlementLayers": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "INTENT_EXECUTOR", + "SAME_CHAIN", + "ACROSS", + "ECO", + "RELAY", + "OFT" + ] + }, + "description": "Optional array of settlement layers to filter by. If not provided, all layers are considered.", + "example": [ + "ACROSS", + "ECO" + ] + } + }, + "required": [ + "chainId", + "tokens" + ] + } + } + } + }, + "responses": { + "200": { + "description": "200", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "intents": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "description": "Array of intents, each mapping token addresses to amounts that can be filled by a single relayer", + "example": [ + { + "0xaf88d065e77c8cc2239327c5edb3a432268e5831": "2400000000000" + }, + { + "0xaf88d065e77c8cc2239327c5edb3a432268e5831": "1700000000000" + }, + { + "0xaf88d065e77c8cc2239327c5edb3a432268e5831": "900000000000" + } + ] + } + }, + "required": [ + "intents" + ], + "description": "Successfully split the intent by available liquidity" + } + } + } + }, + "400": { + "description": "400", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Error message", + "example": "Invalid input" + }, + "context": { + "nullable": true, + "description": "Additional error context" + } + }, + "required": [ + "message" + ] + } + }, + "traceId": { + "type": "string", + "description": "Trace ID", + "example": "eb0ba4657f36364b33ec565c15f98368" + } + }, + "required": [ + "errors", + "traceId" + ], + "description": "Invalid request parameters" + } + } + } + }, + "422": { + "description": "422", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "enum": [ + "INSUFFICIENT_LIQUIDITY" + ], + "description": "Error code indicating insufficient liquidity" + }, + "message": { + "type": "string", + "description": "Human-readable error message", + "example": "Insufficient liquidity to fill the requested amounts. Partial splits available." + }, + "availableIntents": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "description": "Intents that can be filled with available liquidity" + }, + "unfillable": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Token amounts that cannot be filled due to insufficient liquidity" + } + }, + "required": [ + "error", + "message", + "availableIntents", + "unfillable" + ], + "description": "Insufficient liquidity to fill the full amount. Partial splits returned." + } + } + } + }, + "500": { + "description": "500", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "description": "Error message describing the server-side issue", + "example": "An unknown error occurred" + } + }, + "required": [ + "error" + ], + "description": "Server error" + } + } + } + } + } + } + }, "/intent-operations": { "post": { "description": "Submit signed intent operations for processing. This endpoint accepts signed intent operations containing cross-chain token transfers and executions.", @@ -2421,6 +3071,12 @@ "description": "Transaction nonce", "example": "0" }, + "targetExecutionNonce": { + "type": "integer", + "format": "int64", + "description": "Target execution nonce", + "example": "0" + }, "expires": { "type": "integer", "format": "int64", @@ -2543,63 +3199,257 @@ "description": "Must be NO_FUNDING for INTENT_EXECUTOR", "example": "NO_FUNDING" }, - "bridge": { - "discriminator": { - "propertyName": "type" - }, - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "OFT" - ] - }, - "oftToken": { - "type": "string", - "description": "OFT token symbol (e.g., USDT0)", - "example": "USDT0" - }, - "dstChainId": { - "type": "number", - "description": "Destination chain id (where tokens are delivered)", - "example": 8453 - }, - "dstEid": { - "type": "number", - "description": "LayerZero destination endpoint id", - "example": 30383 - }, - "minAmountLD": { - "type": "integer", - "format": "int64", - "description": "Minimum amount on destination (LD units)", - "example": "990000" - }, - "adapter": { - "type": "string", - "description": "OFT adapter contract on origin chain" - } - }, - "required": [ - "type", - "oftToken", - "dstChainId", - "dstEid", - "minAmountLD", - "adapter" - ] + "gasRefund": { + "0": "g", + "1": "a", + "2": "s", + "3": " ", + "4": "r", + "5": "e", + "6": "f", + "7": "u", + "8": "n", + "9": "d", + "10": " ", + "11": "i", + "12": "n", + "13": "f", + "14": "o", + "15": "r", + "16": "m", + "17": "a", + "18": "t", + "19": "i", + "20": "o", + "21": "n", + "type": "object", + "properties": { + "overhead": { + "0": "O", + "1": "v", + "2": "e", + "3": "r", + "4": "h", + "5": "e", + "6": "a", + "7": "d", + "8": " ", + "9": "g", + "10": "a", + "11": "s", + "12": " ", + "13": "a", + "14": "m", + "15": "o", + "16": "u", + "17": "n", + "18": "t", + "19": " ", + "20": "a", + "21": "d", + "22": "d", + "23": " ", + "24": "t", + "25": "o", + "26": " ", + "27": "g", + "28": "a", + "29": "s", + "30": " ", + "31": "s", + "32": "p", + "33": "e", + "34": "n", + "35": "t", + "36": " ", + "37": "w", + "38": "h", + "39": "e", + "40": "n", + "41": " ", + "42": "e", + "43": "x", + "44": "e", + "45": "c", + "46": "u", + "47": "t", + "48": "i", + "49": "n", + "50": "g", + "51": " ", + "52": "d", + "53": "e", + "54": "s", + "55": "t", + "56": "i", + "57": "n", + "58": "a", + "59": "t", + "60": "i", + "61": "o", + "62": "n", + "63": " ", + "64": "o", + "65": "p", + "66": "s", + "type": "integer", + "format": "int64" + }, + "exchangeRate": { + "0": "E", + "1": "x", + "2": "c", + "3": "h", + "4": "a", + "5": "n", + "6": "g", + "7": "e", + "8": " ", + "9": "r", + "10": "a", + "11": "t", + "12": "e", + "13": " ", + "14": "b", + "15": "e", + "16": "t", + "17": "w", + "18": "e", + "19": "e", + "20": "n", + "21": " ", + "22": "t", + "23": "o", + "24": "k", + "25": "e", + "26": "n", + "27": " ", + "28": "s", + "29": "e", + "30": "l", + "31": "e", + "32": "c", + "33": "t", + "34": "e", + "35": "d", + "36": " ", + "37": "f", + "38": "o", + "39": "r", + "40": " ", + "41": "g", + "42": "a", + "43": "s", + "44": " ", + "45": "r", + "46": "e", + "47": "f", + "48": "u", + "49": "n", + "50": "d", + "51": " ", + "52": "a", + "53": "n", + "54": "d", + "55": " ", + "56": "n", + "57": "a", + "58": "t", + "59": "i", + "60": "v", + "61": "e", + "62": " ", + "63": "t", + "64": "o", + "65": "k", + "66": "e", + "67": "n", + "68": " ", + "69": "c", + "70": "o", + "71": "n", + "72": "s", + "73": "u", + "74": "m", + "75": "e", + "76": "d", + "77": " ", + "78": "f", + "79": "o", + "80": "r", + "81": " ", + "82": "g", + "83": "a", + "84": "s", + "type": "integer", + "format": "int64" + }, + "token": { + "0": "t", + "1": "o", + "2": "k", + "3": "e", + "4": "n", + "5": " ", + "6": "a", + "7": "d", + "8": "d", + "9": "r", + "10": "e", + "11": "s", + "12": "s", + "13": " ", + "14": "w", + "15": "h", + "16": "i", + "17": "c", + "18": "h", + "19": " ", + "20": "w", + "21": "i", + "22": "l", + "23": "l", + "24": " ", + "25": "b", + "26": "e", + "27": " ", + "28": "u", + "29": "s", + "30": "e", + "31": "d", + "32": " ", + "33": "f", + "34": "o", + "35": "r", + "36": " ", + "37": "g", + "38": "a", + "39": "s", + "40": " ", + "41": "r", + "42": "e", + "43": "f", + "44": "u", + "45": "n", + "46": "d", + "47": "i", + "48": "n", + "49": "g", + "type": "string" } - ], - "description": "Optional metadata when INTENT_EXECUTOR is used as flow but settlement is via another mechanism (e.g. OFT/LayerZero)." + }, + "required": [ + "overhead", + "exchangeRate", + "token" + ] } }, "required": [ "settlementLayer", "using7579", - "fundingMethod" + "fundingMethod", + "gasRefund" ] }, { @@ -2742,57 +3592,6 @@ "fundingMethod", "requestId" ] - }, - { - "type": "object", - "properties": { - "settlementLayer": { - "type": "string", - "enum": [ - "OFT" - ], - "description": "Settlement layer for LayerZero OFT bridging (supports USDT0, etc.)", - "example": "OFT" - }, - "using7579": { - "type": "boolean", - "description": "Whether to use 7579", - "example": false - }, - "fundingMethod": { - "type": "string", - "enum": [ - "COMPACT", - "PERMIT2", - "NO_FUNDING" - ], - "description": "The method of funding the intent", - "example": "PERMIT2" - }, - "oftToken": { - "type": "string", - "description": "OFT token symbol (e.g., USDT0)", - "example": "USDT0" - }, - "dstEid": { - "type": "number", - "description": "LayerZero endpoint ID for the destination chain", - "example": 30383 - }, - "guid": { - "type": "string", - "pattern": "^0x[a-fA-F0-9]*$", - "description": "LayerZero message GUID (set after send)", - "example": "0x0000000000000000000000000000000000000000000000000000000000000000" - } - }, - "required": [ - "settlementLayer", - "using7579", - "fundingMethod", - "oftToken", - "dstEid" - ] } ] }, @@ -2814,6 +3613,85 @@ "format": "int64", "description": "Mininimum gas for preclaim ops", "example": "0" + }, + "swapDestinations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "tokenIn": { + "type": "string" + }, + "amountIn": { + "type": "integer", + "format": "int64" + }, + "amountOut": { + "type": "integer", + "format": "int64" + }, + "slippage": { + "type": "number" + }, + "quoter": { + "type": "string" + }, + "executions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "to": { + "type": "string", + "description": "Target contract address for execution", + "example": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913" + }, + "value": { + "type": "integer", + "format": "int64", + "description": "Amount of ETH (in wei) sent in the execution", + "example": "0" + }, + "data": { + "type": "string", + "pattern": "^0x[a-fA-F0-9]*$", + "description": "Encoded function call data", + "example": "0xa9059cbb000000000000000000000000579d5631f76126991c00fb8fe5467fa9d49e5f6a00000000000000000000000000000000000000000000000000000000000f4240" + }, + "senderAddressPlaceholder": { + "type": "string" + }, + "recipientAddressPlaceholder": { + "type": "string" + } + }, + "required": [ + "to", + "value", + "data" + ] + } + }, + "outputDecimals": { + "type": "number" + }, + "outputSymbol": { + "type": "string" + } + }, + "required": [ + "tokenIn", + "amountIn", + "amountOut", + "slippage", + "quoter", + "executions", + "outputDecimals", + "outputSymbol" + ], + "nullable": true + }, + "description": "Swap execution data for arbitrary output tokens, aligned by index with tokenOut" } }, "required": [ @@ -2827,6 +3705,93 @@ "minGas" ], "description": "Mandate containing execution details" + }, + "swapOrigins": { + "type": "array", + "items": { + "type": "object", + "properties": { + "tokenIn": { + "type": "string" + }, + "tokenOut": { + "type": "string" + }, + "amountIn": { + "type": "integer", + "format": "int64" + }, + "amountOut": { + "type": "integer", + "format": "int64" + }, + "slippage": { + "type": "number" + }, + "quoter": { + "type": "string" + }, + "executions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "to": { + "type": "string", + "description": "Target contract address for execution", + "example": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913" + }, + "value": { + "type": "integer", + "format": "int64", + "description": "Amount of ETH (in wei) sent in the execution", + "example": "0" + }, + "data": { + "type": "string", + "pattern": "^0x[a-fA-F0-9]*$", + "description": "Encoded function call data", + "example": "0xa9059cbb000000000000000000000000579d5631f76126991c00fb8fe5467fa9d49e5f6a00000000000000000000000000000000000000000000000000000000000f4240" + }, + "senderAddressPlaceholder": { + "type": "string" + }, + "recipientAddressPlaceholder": { + "type": "string" + } + }, + "required": [ + "to", + "value", + "data" + ] + } + }, + "inputDecimals": { + "type": "number" + }, + "inputSymbol": { + "type": "string" + }, + "price": { + "type": "number" + } + }, + "required": [ + "tokenIn", + "tokenOut", + "amountIn", + "amountOut", + "slippage", + "quoter", + "executions", + "inputDecimals", + "inputSymbol", + "price" + ], + "nullable": true + }, + "description": "Swap execution data for arbitrary input tokens, aligned by index with spendTokens" } }, "required": [ @@ -2866,6 +3831,12 @@ "USDT": { "type": "number" }, + "BNB": { + "type": "number" + }, + "WBNB": { + "type": "number" + }, "XDAI": { "type": "number" }, @@ -2881,11 +3852,20 @@ "WS": { "type": "number" }, + "HYPE": { + "type": "number" + }, + "WHYPE": { + "type": "number" + }, "XPL": { "type": "number" }, "WXPL": { "type": "number" + }, + "MockUSD": { + "type": "number" } }, "required": [ @@ -2894,13 +3874,18 @@ "WETH", "USDT0", "USDT", + "BNB", + "WBNB", "XDAI", "POL", "WPOL", "S", "WS", + "HYPE", + "WHYPE", "XPL", - "WXPL" + "WXPL", + "MockUSD" ], "description": "Token prices in USD", "example": { @@ -2964,13 +3949,6 @@ } } }, - "quotes": { - "type": "object", - "additionalProperties": { - "nullable": true - }, - "description": "Swap quotes per token address" - }, "account": { "type": "object", "properties": { @@ -3666,6 +4644,12 @@ "description": "Destination (target chain) signature", "example": "0x..." }, + "targetExecutionSignature": { + "type": "string", + "pattern": "^0x[a-fA-F0-9]*$", + "description": "Target execution signature", + "example": "0x..." + }, "originSignatures": { "type": "array", "items": { @@ -4868,13 +5852,17 @@ }, "supportsSwaps": { "type": "boolean" + }, + "testnet": { + "type": "boolean" } }, "required": [ "name", "settlementLayers", "supportedTokens", - "supportsSwaps" + "supportsSwaps", + "testnet" ] }, "description": "The supported chains and tokens with additional metadata"