diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 4ecf66a..86565b9 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -2,24 +2,21 @@ ## [0.3.5](https://github.com/sprintertech/sprinter-sdk/compare/docs-v0.3.4...docs-v0.3.5) (2025-05-28) - ### Bug Fixes -* **docs:** adding router addresses ([#163](https://github.com/sprintertech/sprinter-sdk/issues/163)) ([ff7f939](https://github.com/sprintertech/sprinter-sdk/commit/ff7f939bf87b6730fb5cdf409f1541c2c4aa95b7)) +- **docs:** adding router addresses ([#163](https://github.com/sprintertech/sprinter-sdk/issues/163)) ([ff7f939](https://github.com/sprintertech/sprinter-sdk/commit/ff7f939bf87b6730fb5cdf409f1541c2c4aa95b7)) ## [0.3.4](https://github.com/sprintertech/sprinter-sdk/compare/docs-v0.3.3...docs-v0.3.4) (2025-05-27) - ### Bug Fixes -* **docs:** typos ([#161](https://github.com/sprintertech/sprinter-sdk/issues/161)) ([9f5c2f0](https://github.com/sprintertech/sprinter-sdk/commit/9f5c2f09d873bff398fa350d91f36829c9ba6220)) +- **docs:** typos ([#161](https://github.com/sprintertech/sprinter-sdk/issues/161)) ([9f5c2f0](https://github.com/sprintertech/sprinter-sdk/commit/9f5c2f09d873bff398fa350d91f36829c9ba6220)) ## [0.3.3](https://github.com/sprintertech/sprinter-sdk/compare/docs-v0.3.2...docs-v0.3.3) (2025-05-21) - ### Bug Fixes -* added MPC details ([#159](https://github.com/sprintertech/sprinter-sdk/issues/159)) ([16fc0a2](https://github.com/sprintertech/sprinter-sdk/commit/16fc0a28ff7925c2643a313d572773d10f1b4619)) +- added MPC details ([#159](https://github.com/sprintertech/sprinter-sdk/issues/159)) ([16fc0a2](https://github.com/sprintertech/sprinter-sdk/commit/16fc0a28ff7925c2643a313d572773d10f1b4619)) ## [0.3.2](https://github.com/sprintertech/sprinter-sdk/compare/docs-v0.3.1...docs-v0.3.2) (2025-05-16) diff --git a/docs/docs/03-Solve/02-solve-quick-start.md b/docs/docs/03-Solve/02-solve-quick-start.md index ed0633f..6086152 100644 --- a/docs/docs/03-Solve/02-solve-quick-start.md +++ b/docs/docs/03-Solve/02-solve-quick-start.md @@ -29,7 +29,8 @@ flowchart TD F --> G[Send Transaction & Finalize Fill] -click E "solve-get-route-v2" "Borrow Quote" + +click E "solve-get-route-v1" "Borrow Quote" style E fill:#FF9B43,stroke:#333,stroke-width:2px,color:#000,font-weight:bold ``` @@ -38,7 +39,7 @@ style E fill:#FF9B43,stroke:#333,stroke-width:2px,color:#000,font-weight:bold ## 2. Geting the finalized route and call data execution package -Calling the [**Get Route API**](solve-get-route-v2) returns the finalized route, including call data, gas estimates and token out amounts. Use this executable call data `swap_call_data` after verifying a quote. +Calling the [**Get Route API**](solve-get-route-v1) returns the finalized route, including call data, gas estimates and token out amounts. Use this executable call data `swap_call_data` after verifying a quote. - **Mainnet:** `https://swaps.sprinter.tech/mainnet` - **Base:** `https://swaps.sprinter.tech/base` @@ -68,7 +69,7 @@ const fetchRoute = async () => { ## 3. Send transaction using `swap_call_data` -Once you've received a valid route from `/v2/route`, you'll use the `swap_call_data` in a transaction to execute the intent on-chain. +Once you've received a valid route from `/v1/route`, you'll use the `swap_call_data` in a transaction to execute the intent on-chain. Below is a simplified example using `ethers.js` to send the transaction from a connected signer: @@ -78,7 +79,7 @@ import { ethers } from "ethers"; const provider = new ethers.JsonRpcProvider("https://mainnet.base.org"); // or OP/Arbitrum const signer = new ethers.Wallet("", provider); -const routeResponse = await fetch("https://swaps.sprinter.tech/base/v2/route", { +const routeResponse = await fetch("https://swaps.sprinter.tech/base/1/route", { method: "POST", headers: { "Content-Type": "application/json", diff --git a/docs/docs/03-Solve/get-route-v-1.api.mdx b/docs/docs/03-Solve/get-route-v-1.api.mdx new file mode 100644 index 0000000..0e2867e --- /dev/null +++ b/docs/docs/03-Solve/get-route-v-1.api.mdx @@ -0,0 +1,280 @@ +--- +id: solve-get-route-v1 +title: "Get Route V1 API" +description: "Calculate the optimal swap route and generate execution parameters for a token exchange" +sidebar_label: "Get Route API V1 " +hide_title: true +hide_table_of_contents: true +api: eJztWEtvGzcQ/isEkaJOu5bWrn2obnLitj60DeykF0MFRtyRlskuuSaHilRh/3sx5OplKc4LAVI3N4mcnfnmmwfJWUrboAPS1lwVciCnSNc2EP51IjNZoFdON7wpB/IZVCpUQCioRGEb0jVUwr+FRjj+RIApxBQNq0OBc1SBvxQNOKiR0HkxsU6AIPsGjcC5KsFMUWZyIyEHt0up2dpdQLeQmTRQoxxIqG0wdGX2UL0sUaRNYSdCmyZQMuAF2YTuSJu09L0XvoaqQk8iGE1PZSa9KrEGOVje0ztc6wQjLq+fneYdbvACRIEqeU9Om6k4MlZ4pdGQnmgljKXIKOunRcP4k2D0lQgdW/j7Nj/+efTjExbSVLHUS7aQLMs2kw7vgnZYyAG5gG12mJoI6wAzz6whB4oEFIVD79kXjtwWR5EirKoHeLikEh2GWqj76o5OczFeEPqnAo2yBRbMTYlzWLHzVlMp8rloHE70/GEy8vktHE+Gx78wKcuzvN3mZZhMfiQnfwb6YFJsoB1WxmHx6EjxlW4amOJF4w+W0WpfkK3QgVGcK2IMXnvRWG3IiyPsTXuZOM9jKee98+92a6jzRRvCKTqZyYl1NVBa+ulUZrLWRtehloM8kzXM0++TPM9zhjSBUJEcnOc7Tk2g8tiOeMk31nj0bOs0z/cjcxOUQu8noaoWQq06VrHdpmIANu2pQAJdMSMlQhF70FJe411AT8dXz/dNvDL6LqBwSUToIpV9dHePiXVU10SUOH8oyKdn7RPZtm0mObfQECuDpqm0ij2l/9oziuU7c3OXAYfR/fd43oG149eouGY21N92nTfVUq277pT+Ergp8g8FVfUcCOQok43jE4V0CtLm66+yw+449FUi7Dj+6lvQOgX2kP6G8zUQliqAILYP7rtclx8B4Idt6xfspORSWa10V5frrk1wHbWZPDvUKC6gWJdwEbjnCW1mUOli68LyaJrCpXPWiVX7TAnwYeXPcZOZRFawX95x9x3WeE9oU0SMZhrDzZa4npK67P550a4MvUNljd5DvDLuMrmdA1FyHfmTQ6GCQKV1+h+ujNgs72cAm9LeM2rlMMYSHtER8b/NhrN9VX9YMdMwrnD7ijCxwRTrHjXVMzTfusKjyYPzQ+fBlWGS+ThHN0O3xvIt0v/ZSPP9Dqm03VwjEVzKgezPTvqx0Dk4Mdxp8BBcxbEgavyg3+d+4Hu+cYzO9QhV2a9BG4P7z8rf07q44R4yfHEl+Q32fnVj8Lin6wI8bikaMUYVnKZFBHkBXqthYEduR9u7Nxz7FJYtmXXSMY5VMvJ/ftepyJw2ExsFOwaj7fFCXFRg1B684YsrETwWa4mIVWaSaUwiJ728lx+PkYAj2lhPNcT07B6iUyQRr2pif8y03KT4F5w4dZwQzqnfVKANA43xWnZJcitnjC2lySiTpfXEq8slB+2Vq9qWl9MTm+NSaM/HyOq5+oBbR9ddfT0Vnzu9OujHG1zsTsxmUAUWi1n5STg/bpb0AKrNsOrLgTo8y3kfqPSk/URUnzU+eQDZ7shmA27Ef1y8t8Q2sDqnYiamT4dKYbPt0t55wVrWDfLXy5eybf8FfAyYow== +sidebar_class_name: "get api-method" +info_path: ../src/api/generated/solve/swap-by-blanc +custom_edit_url: null +--- + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + +Get the **finalized execution package** returned by `/v1/route` which contains all necessary data to execute a transaction. It builds on a quote by including calldata, selected liquidity paths, slippage tolerances, and chain-specific details. + +Routes are consumed directly by solvers or smart contracts to simulate and execute cross-chain swaps or intent fills. + + + + + + + + diff --git a/docs/docs/03-Solve/get-route-v-2.api.mdx b/docs/docs/03-Solve/get-route-v-2.api.mdx deleted file mode 100644 index 5658c5e..0000000 --- a/docs/docs/03-Solve/get-route-v-2.api.mdx +++ /dev/null @@ -1,232 +0,0 @@ ---- -id: solve-get-route-v2 -title: "Get Route" -description: "Get a route for execution with additional parameters" -sidebar_label: "Get Route API " -hide_title: true -hide_table_of_contents: true -api: eJztWG1vGjkQ/iuWdSclvYUsGwiBb4SQHrovVZJWJ0U5atYDuN21N34hcIj/fpr1Znmnbar70Lvybe3x+JnH48czLKjKQDMrlOxz2qZjsLfKWfgQ0YByMLEWGU7SNn0LljCicZaMlCYwg9jhHHkWdkIY5wK/WEIyplkKFrShAV37aD8sqEBXTw70nAZUshRom7JUOWkHQu7seT8B4meJGhGrPoM0xCpiIEmIkIRDLFKWEKlsHgMNqIknkDLaXmy56pRumCS9224Uen+EGcJKR8ZqIcfkRCpiYgHSipGIS/enNKB2niFmb5jHZy1o3OGvh7DSevztFxpQmLE0S9CuFu780Imw+ew9IvDI6DKgGp6c0MBp22oHX3KzDPbTmYd1iM0iZs41mJLKI7RFIRnOLZCenYAGl5ZLQcaKA/f0TWDms+BjOPtIMg0jMTvOVTh7YJVRp3KDnC3q4XKTtnB2cVVrNurNeu+yFbbq3Xr9mrUuh61GvQccOt16qxE1azy8WWOz46EdZ/IbPB8nWDn7dQwP3fz/RXA3jBjrnLeGUXR+07u8DjshNLr1m6gJnetWeHnebTYuunF0kGCTiCxjY9jL78sksSoBzWQMqAQZ6BikxfETqI6rAQmrjVynwmrj19ONAyhYky4dgqYBHSmdMkvbdJQotnURRywx6+GF1cbBtGB6DHbAndfTQWr250duRl7Mcox2AoWyGmA6nmBEqUgSYSBWkpt98IW0MN7EL6S9qB/HH4Xh8hENTKakAYMOozDczctbD8fFMRgzckkyJ2OQ+FYApwGNlbQgLa5jWZaIOA/m7JPBxYuD2X637i/WgN6KyLdfEQ6WicSsslwNP0GMd24V3QN9csrCQCCk4hnx9zIVcrAx4GlHIp9ZNohZkgw4swzdMSGH6nkgZOYsfQxopvFRtMKzU+6wE8x7KZ4cEMH9OwG6PMt8zZ77ubolT4NadF5vXDQv8bzWkP6QD9cW2z9kDEWC/FcEeivNd8L6HWZlBGiGVmX+4uJvQP9mG/r5JfBa87yVa9HG9drB0cdhsrF7seIQivWNqtUqXS5XBOSqdVuI24eILpc4W98ncFeME1QSMPb1etbTWmnyoqY+A75OuABX7qqNH949LZcySTQwzoYJkNyKpGCMfyUPUySkcaORyK8TUc4i2azI+TXe8jhKtmr7tI45O1Fa/A2cVEhfTlkiOOm865PPMP9J4DqBjX3p1pd4dVDlQE9BewQ/eVvxhs8I2Ikq2lAvNxPapmfT6CwvEfDxhthpYed5L9nJxB8w7zi0enjEsuZl+g5Z83GtG5W1E8sHaeDruAkwnhdSRSH3Z6Xzrl/xBlvvmE93T7cvu4j5PEjEFAZv8riEHKl8oyK+u2eWkeGcXCVMxnv9OQO8tCB3XvOmoI03qVXDalgZgmUoppkyNmV5ZhRgsZb0tdpuz75YZddr2/eCMAsze5YlTEhE4XSCzv35PNApbuxP6DGgE2Usji4WQ2bgvU6WSxz2xTIeGxcGc2lVnB7EfHJb5O0pecU/AXuho1ht/uMwZYlDu7wbeTW2Q331ERBrffq/hMF3nl+E4AvkV2L4npbsCLK1FvA7gL2y1zrG2L4mb4XwET+0QIi5JgUv4oKJ7z104hiydcJ3ZB+9lFL4tndPl8t/ANxtndI= -sidebar_class_name: "get api-method" -info_path: ../src/api/generated/solve/swap-by-blanc -custom_edit_url: null ---- - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - -Get the **finalized execution package** returned by `/v2/route` which contains all necessary data to execute a transaction. It builds on a quote by including calldata, selected liquidity paths, slippage tolerances, and chain-specific details. - -Routes are consumed directly by solvers or smart contracts to simulate and execute cross-chain swaps or intent fills. - - - - - - - - diff --git a/docs/docs/09 -Resources/01-Audits.md b/docs/docs/09 -Resources/01-Audits.md index 05770e1..24338d6 100644 --- a/docs/docs/09 -Resources/01-Audits.md +++ b/docs/docs/09 -Resources/01-Audits.md @@ -6,5 +6,8 @@ sidebar_position: 11 ## Audits -- [Sprinter Hub](https://github.com/sprintertech/sprinter-stash-contracts/blob/main/audits/VAR_Sygma_labs_Sprinter_liquidity_250212-final.pdf) -- [Sprinter Liquidity Pools](https://github.com/sprintertech/sprinter-stash-contracts/blob/main/audits/VAR_Sygma_labs_Sprinter_liquidity_250212-final.pdf) +Our audit partners include [Veridise](https://veridise.com/) and [Spearbit/Cantina](https://cantina.xyz/welcome) + +- [Sprinter Hub](https://github.com/sprintertech/sprinter-stash-contracts/blob/main/audits/VAR_Sygma_labs_Sprinter_liquidity_250212-final.pdf) - Veridise +- [Sprinter Liquidity Pools](https://github.com/sprintertech/sprinter-stash-contracts/blob/main/audits/VAR_Sygma_labs_Sprinter_liquidity_250212-final.pdf) - Veridise +- [Sprinter Stash](https://cantina.xyz/portfolio/fe3c634c-d06d-47c2-a70a-f19d2f820f58) - Spearbit/Cantina diff --git a/docs/src/api/generated/solve/get-route-v-1.api.mdx b/docs/src/api/generated/solve/get-route-v-1.api.mdx new file mode 100644 index 0000000..342ed6e --- /dev/null +++ b/docs/src/api/generated/solve/get-route-v-1.api.mdx @@ -0,0 +1,280 @@ +--- +id: get-route-v-1 +title: "getRouteV1" +description: "Calculate the optimal swap route and generate execution parameters for a token exchange" +sidebar_label: "getRouteV1" +hide_title: true +hide_table_of_contents: true +api: eJztWEtvGzcQ/isEkaJOu5bWrn2obnLitj60DeykF0MFRtyRlskuuSaHilRh/3sx5OplKc4LAVI3N4mcnfnmmwfJWUrboAPS1lwVciCnSNc2EP51IjNZoFdON7wpB/IZVCpUQCioRGEb0jVUwr+FRjj+RIApxBQNq0OBc1SBvxQNOKiR0HkxsU6AIPsGjcC5KsFMUWZyIyEHt0up2dpdQLeQmTRQoxxIqG0wdGX2UL0sUaRNYSdCmyZQMuAF2YTuSJu09L0XvoaqQk8iGE1PZSa9KrEGOVje0ztc6wQjLq+fneYdbvACRIEqeU9Om6k4MlZ4pdGQnmgljKXIKOunRcP4k2D0lQgdW/j7Nj/+efTjExbSVLHUS7aQLMs2kw7vgnZYyAG5gG12mJoI6wAzz6whB4oEFIVD79kXjtwWR5EirKoHeLikEh2GWqj76o5OczFeEPqnAo2yBRbMTYlzWLHzVlMp8rloHE70/GEy8vktHE+Gx78wKcuzvN3mZZhMfiQnfwb6YFJsoB1WxmHx6EjxlW4amOJF4w+W0WpfkK3QgVGcK2IMXnvRWG3IiyPsTXuZOM9jKee98+92a6jzRRvCKTqZyYl1NVBa+ulUZrLWRtehloM8kzXM0++TPM9zhjSBUJEcnOc7Tk2g8tiOeMk31nj0bOs0z/cjcxOUQu8noaoWQq06VrHdpmIANu2pQAJdMSMlQhF70FJe411AT8dXz/dNvDL6LqBwSUToIpV9dHePiXVU10SUOH8oyKdn7RPZtm0mObfQECuDpqm0ij2l/9oziuU7c3OXAYfR/fd43oG149eouGY21N92nTfVUq277pT+Ergp8g8FVfUcCOQok43jE4V0CtLm66+yw+449FUi7Dj+6lvQOgX2kP6G8zUQliqAILYP7rtclx8B4Idt6xfspORSWa10V5frrk1wHbWZPDvUKC6gWJdwEbjnCW1mUOli68LyaJrCpXPWiVX7TAnwYeXPcZOZRFawX95x9x3WeE9oU0SMZhrDzZa4npK67P550a4MvUNljd5DvDLuMrmdA1FyHfmTQ6GCQKV1+h+ujNgs72cAm9LeM2rlMMYSHtER8b/NhrN9VX9YMdMwrnD7ijCxwRTrHjXVMzTfusKjyYPzQ+fBlWGS+ThHN0O3xvIt0v/ZSPP9Dqm03VwjEVzKgezPTvqx0Dk4Mdxp8BBcxbEgavyg3+d+4Hu+cYzO9QhV2a9BG4P7z8rf07q44R4yfHEl+Q32fnVj8Lin6wI8bikaMUYVnKZFBHkBXqthYEduR9u7Nxz7FJYtmXXSMY5VMvJ/ftepyJw2ExsFOwaj7fFCXFRg1B684YsrETwWa4mIVWaSaUwiJ728lx+PkYAj2lhPNcT07B6iUyQRr2pif8y03KT4F5w4dZwQzqnfVKANA43xWnZJcitnjC2lySiTpfXEq8slB+2Vq9qWl9MTm+NSaM/HyOq5+oBbR9ddfT0Vnzu9OujHG1zsTsxmUAUWi1n5STg/bpb0AKrNsOrLgTo8y3kfqPSk/URUnzU+eQDZ7shmA27Ef1y8t8Q2sDqnYiamT4dKYbPt0t55wVrWDfLXy5eybf8FfAyYow== +sidebar_class_name: "get api-method" +info_path: ../src/api/generated/solve/swap-by-blanc +custom_edit_url: null +--- + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + +Calculate the optimal swap route and generate execution parameters for a token exchange + + + + + + + + diff --git a/docs/src/api/generated/solve/get-route-v-2.api.mdx b/docs/src/api/generated/solve/get-route-v-2.api.mdx index 48c487c..342ed6e 100644 --- a/docs/src/api/generated/solve/get-route-v-2.api.mdx +++ b/docs/src/api/generated/solve/get-route-v-2.api.mdx @@ -1,11 +1,11 @@ --- -id: get-route-v-2 -title: "getRouteV2" -description: "Get a route for execution with additional parameters" -sidebar_label: "getRouteV2" +id: get-route-v-1 +title: "getRouteV1" +description: "Calculate the optimal swap route and generate execution parameters for a token exchange" +sidebar_label: "getRouteV1" hide_title: true hide_table_of_contents: true -api: eJztWG1vGjkQ/iuWdSclvYUsGwiBb4SQHrovVZJWJ0U5atYDuN21N34hcIj/fpr1Znmnbar70Lvybe3x+JnH48czLKjKQDMrlOxz2qZjsLfKWfgQ0YByMLEWGU7SNn0LljCicZaMlCYwg9jhHHkWdkIY5wK/WEIyplkKFrShAV37aD8sqEBXTw70nAZUshRom7JUOWkHQu7seT8B4meJGhGrPoM0xCpiIEmIkIRDLFKWEKlsHgMNqIknkDLaXmy56pRumCS9224Uen+EGcJKR8ZqIcfkRCpiYgHSipGIS/enNKB2niFmb5jHZy1o3OGvh7DSevztFxpQmLE0S9CuFu780Imw+ew9IvDI6DKgGp6c0MBp22oHX3KzDPbTmYd1iM0iZs41mJLKI7RFIRnOLZCenYAGl5ZLQcaKA/f0TWDms+BjOPtIMg0jMTvOVTh7YJVRp3KDnC3q4XKTtnB2cVVrNurNeu+yFbbq3Xr9mrUuh61GvQccOt16qxE1azy8WWOz46EdZ/IbPB8nWDn7dQwP3fz/RXA3jBjrnLeGUXR+07u8DjshNLr1m6gJnetWeHnebTYuunF0kGCTiCxjY9jL78sksSoBzWQMqAQZ6BikxfETqI6rAQmrjVynwmrj19ONAyhYky4dgqYBHSmdMkvbdJQotnURRywx6+GF1cbBtGB6DHbAndfTQWr250duRl7Mcox2AoWyGmA6nmBEqUgSYSBWkpt98IW0MN7EL6S9qB/HH4Xh8hENTKakAYMOozDczctbD8fFMRgzckkyJ2OQ+FYApwGNlbQgLa5jWZaIOA/m7JPBxYuD2X637i/WgN6KyLdfEQ6WicSsslwNP0GMd24V3QN9csrCQCCk4hnx9zIVcrAx4GlHIp9ZNohZkgw4swzdMSGH6nkgZOYsfQxopvFRtMKzU+6wE8x7KZ4cEMH9OwG6PMt8zZ77ubolT4NadF5vXDQv8bzWkP6QD9cW2z9kDEWC/FcEeivNd8L6HWZlBGiGVmX+4uJvQP9mG/r5JfBa87yVa9HG9drB0cdhsrF7seIQivWNqtUqXS5XBOSqdVuI24eILpc4W98ncFeME1QSMPb1etbTWmnyoqY+A75OuABX7qqNH949LZcySTQwzoYJkNyKpGCMfyUPUySkcaORyK8TUc4i2azI+TXe8jhKtmr7tI45O1Fa/A2cVEhfTlkiOOm865PPMP9J4DqBjX3p1pd4dVDlQE9BewQ/eVvxhs8I2Ikq2lAvNxPapmfT6CwvEfDxhthpYed5L9nJxB8w7zi0enjEsuZl+g5Z83GtG5W1E8sHaeDruAkwnhdSRSH3Z6Xzrl/xBlvvmE93T7cvu4j5PEjEFAZv8riEHKl8oyK+u2eWkeGcXCVMxnv9OQO8tCB3XvOmoI03qVXDalgZgmUoppkyNmV5ZhRgsZb0tdpuz75YZddr2/eCMAsze5YlTEhE4XSCzv35PNApbuxP6DGgE2Usji4WQ2bgvU6WSxz2xTIeGxcGc2lVnB7EfHJb5O0pecU/AXuho1ht/uMwZYlDu7wbeTW2Q331ERBrffq/hMF3nl+E4AvkV2L4npbsCLK1FvA7gL2y1zrG2L4mb4XwET+0QIi5JgUv4oKJ7z104hiydcJ3ZB+9lFL4tndPl8t/ANxtndI= +api: eJztWEtvGzcQ/isEkaJOu5bWrn2obnLitj60DeykF0MFRtyRlskuuSaHilRh/3sx5OplKc4LAVI3N4mcnfnmmwfJWUrboAPS1lwVciCnSNc2EP51IjNZoFdON7wpB/IZVCpUQCioRGEb0jVUwr+FRjj+RIApxBQNq0OBc1SBvxQNOKiR0HkxsU6AIPsGjcC5KsFMUWZyIyEHt0up2dpdQLeQmTRQoxxIqG0wdGX2UL0sUaRNYSdCmyZQMuAF2YTuSJu09L0XvoaqQk8iGE1PZSa9KrEGOVje0ztc6wQjLq+fneYdbvACRIEqeU9Om6k4MlZ4pdGQnmgljKXIKOunRcP4k2D0lQgdW/j7Nj/+efTjExbSVLHUS7aQLMs2kw7vgnZYyAG5gG12mJoI6wAzz6whB4oEFIVD79kXjtwWR5EirKoHeLikEh2GWqj76o5OczFeEPqnAo2yBRbMTYlzWLHzVlMp8rloHE70/GEy8vktHE+Gx78wKcuzvN3mZZhMfiQnfwb6YFJsoB1WxmHx6EjxlW4amOJF4w+W0WpfkK3QgVGcK2IMXnvRWG3IiyPsTXuZOM9jKee98+92a6jzRRvCKTqZyYl1NVBa+ulUZrLWRtehloM8kzXM0++TPM9zhjSBUJEcnOc7Tk2g8tiOeMk31nj0bOs0z/cjcxOUQu8noaoWQq06VrHdpmIANu2pQAJdMSMlQhF70FJe411AT8dXz/dNvDL6LqBwSUToIpV9dHePiXVU10SUOH8oyKdn7RPZtm0mObfQECuDpqm0ij2l/9oziuU7c3OXAYfR/fd43oG149eouGY21N92nTfVUq277pT+Ergp8g8FVfUcCOQok43jE4V0CtLm66+yw+449FUi7Dj+6lvQOgX2kP6G8zUQliqAILYP7rtclx8B4Idt6xfspORSWa10V5frrk1wHbWZPDvUKC6gWJdwEbjnCW1mUOli68LyaJrCpXPWiVX7TAnwYeXPcZOZRFawX95x9x3WeE9oU0SMZhrDzZa4npK67P550a4MvUNljd5DvDLuMrmdA1FyHfmTQ6GCQKV1+h+ujNgs72cAm9LeM2rlMMYSHtER8b/NhrN9VX9YMdMwrnD7ijCxwRTrHjXVMzTfusKjyYPzQ+fBlWGS+ThHN0O3xvIt0v/ZSPP9Dqm03VwjEVzKgezPTvqx0Dk4Mdxp8BBcxbEgavyg3+d+4Hu+cYzO9QhV2a9BG4P7z8rf07q44R4yfHEl+Q32fnVj8Lin6wI8bikaMUYVnKZFBHkBXqthYEduR9u7Nxz7FJYtmXXSMY5VMvJ/ftepyJw2ExsFOwaj7fFCXFRg1B684YsrETwWa4mIVWaSaUwiJ728lx+PkYAj2lhPNcT07B6iUyQRr2pif8y03KT4F5w4dZwQzqnfVKANA43xWnZJcitnjC2lySiTpfXEq8slB+2Vq9qWl9MTm+NSaM/HyOq5+oBbR9ddfT0Vnzu9OujHG1zsTsxmUAUWi1n5STg/bpb0AKrNsOrLgTo8y3kfqPSk/URUnzU+eQDZ7shmA27Ef1y8t8Q2sDqnYiamT4dKYbPt0t55wVrWDfLXy5eybf8FfAyYow== sidebar_class_name: "get api-method" info_path: ../src/api/generated/solve/swap-by-blanc custom_edit_url: null @@ -22,16 +22,16 @@ import Heading from "@theme/Heading"; -Get a route for execution with additional parameters +Calculate the optimal swap route and generate execution parameters for a token exchange @@ -113,81 +105,81 @@ Get a route for execution with additional parameters label={undefined} responses={{ "200": { - description: "Route successfully generated", + description: "Successfully calculated swap route with execution details", + headers: { + "Request-ID": { + description: "Unique request identifier", + schema: { + type: "string", + format: "hex", + pattern: "^0x[a-fA-F0-9]{24}$", + }, + }, + }, content: { "application/json": { schema: { - description: "Successfully created route with additional details", + description: "Successfully created route with execution details", type: "object", - required: [ - "quote_id", - "amount_out", - "min_amount_out", - "target", - "swap_call_data", - "rainbow_input", - ], + required: ["amountOut", "minAmountOut", "target", "callData"], properties: { - quote_id: { - description: "Unique identifier for the quote", - type: "string", - example: "q_12345678", - }, - amount_out: { + amountOut: { description: "Amount of an ERC20 token as a decimal string (no scientific notation)", type: "string", pattern: "^[0-9]+$", - example: "1000000000000000000", title: "TokenAmount", }, - min_amount_out: { + minAmountOut: { description: "Amount of an ERC20 token as a decimal string (no scientific notation)", type: "string", pattern: "^[0-9]+$", - example: "1000000000000000000", title: "TokenAmount", }, target: { description: - "20 byte Ethereum address encoded as a hex with `0x` prefix", + "Ethereum contract address (20 bytes) encoded as hexadecimal with 0x prefix", type: "string", pattern: "^0x[a-fA-F0-9]{40}$", - example: "0x6B175474E89094C44Da98b954EedeAC495271d0F", title: "Address", }, - swap_call_data: { + callData: { description: "Hex encoded calldata for the swap", type: "string", pattern: "^0x[a-fA-F0-9]*$", - example: "0x38ed1739", - }, - rainbow_input: { - description: "Input data for the rainbow swap", - type: "string", - example: "0x...", + title: "Bytes", }, }, - title: "RouteResponseV2", + title: "RouteV1Response", }, }, }, }, "400": { - description: "Bad request", + description: "Bad request due to invalid parameters", + headers: { + "Request-ID": { + description: "Unique request identifier", + schema: { + type: "string", + format: "hex", + pattern: "^0x[a-fA-F0-9]{24}$", + }, + }, + }, content: { "application/json": { schema: { description: "Error response with details", type: "object", - required: ["error"], + required: ["code", "error"], properties: { - error: { - description: "Human readable error message", - type: "string", - example: "insufficient output amount", + code: { + description: "Error code indicating the type of error", + type: "integer", }, + error: { description: "Error message", type: "string" }, }, title: "Error", }, @@ -195,19 +187,59 @@ Get a route for execution with additional parameters }, }, "401": { - description: "Unauthorized - Invalid API key", + description: "Unauthorized access due to invalid or missing credentials", + headers: { + "Request-ID": { + description: "Unique request identifier", + schema: { + type: "string", + format: "hex", + pattern: "^0x[a-fA-F0-9]{24}$", + }, + }, + }, content: { "application/json": { schema: { description: "Error response with details", type: "object", - required: ["error"], + required: ["code", "error"], properties: { - error: { - description: "Human readable error message", - type: "string", - example: "insufficient output amount", + code: { + description: "Error code indicating the type of error", + type: "integer", }, + error: { description: "Error message", type: "string" }, + }, + title: "Error", + }, + }, + }, + }, + "404": { + description: "No viable swap route found for the given parameters", + headers: { + "Request-ID": { + description: "Unique request identifier", + schema: { + type: "string", + format: "hex", + pattern: "^0x[a-fA-F0-9]{24}$", + }, + }, + }, + content: { + "application/json": { + schema: { + description: "Error response with details", + type: "object", + required: ["code", "error"], + properties: { + code: { + description: "Error code indicating the type of error", + type: "integer", + }, + error: { description: "Error message", type: "string" }, }, title: "Error", }, @@ -216,18 +248,28 @@ Get a route for execution with additional parameters }, "500": { description: "Internal server error", + headers: { + "Request-ID": { + description: "Unique request identifier", + schema: { + type: "string", + format: "hex", + pattern: "^0x[a-fA-F0-9]{24}$", + }, + }, + }, content: { "application/json": { schema: { description: "Error response with details", type: "object", - required: ["error"], + required: ["code", "error"], properties: { - error: { - description: "Human readable error message", - type: "string", - example: "insufficient output amount", + code: { + description: "Error code indicating the type of error", + type: "integer", }, + error: { description: "Error message", type: "string" }, }, title: "Error", }, diff --git a/docs/src/api/generated/solve/get-route.api.mdx b/docs/src/api/generated/solve/get-route.api.mdx deleted file mode 100644 index 9e12dcd..0000000 --- a/docs/src/api/generated/solve/get-route.api.mdx +++ /dev/null @@ -1,229 +0,0 @@ ---- -id: get-route -title: "getRoute" -description: "Get a route for execution" -sidebar_label: "getRoute" -hide_title: true -hide_table_of_contents: true -api: eJztV99v2zYQ/lcIYg9tJzeyY9eR3xTH6YJhQJGkwwDDS2npbLORSIU/UnuG/vfhSEV2IttNg+1hXf1m8nj87uN3d7o1lQUoZrgUFykd0DmYS2kN0ICmoBPFC9yiA/oeDGFE4R6ZSUVgCYl1ewEtmGI5GFCaDsZrytH+zoJa0YAKlgMdUJZLK8wNFw3H1wsgfpfIGTHyFoQmRhINWUa4ICkkPGcZEdKw6j6dLCBndLB+4iqu3TBBRpfDTuj9EaYJqx1po7iYk1dCEp1wEIbPeFK7f00DalYFYvaGLj5jQOENf47DVjT5+ScaUFiyvMjQrh02fuiEG7d7jQg8MloGVMGd5QpSOjDKwtfclMFuOl1Y+9isYk5TBbqm8gBtnZBMVwbIyCxAgc3royASmULq6VvAknzhZkE+hctPpFAw48vDXIXLMWvN4tY5crbuhuVj2sLlu9N2v9ftd0cnURh1h93uGYtOplGvO4IU4mE36nX67TQ832Iz9tAOM/kNnvcRnHNxU2lWWrOT5pwLniNbO8SrIAF+D9+tVqPoG6W6j8SGVqd29f+S6jDsMBYfR9NO5/h8dHIWxiH0ht3zTh/isyg8OR72e++GSYeWE3SkCyk0aKSmE4ZNhlz1JtomCWg9s1m2InMQWOIhpQFNpDAgDJ5jRZHxxAnp6LPGw+u9vF9t+0sUoLeqGTii625AUjCMZ3pDt5x+hgQff0PCmCYsczZzpukkoIXCLmS4j8tvNjNGKbbChBn9/htxNqgXfzNgp9BwZ0EksLmb4REaUG4g3+VR1L4aPe0QeiNpQO9ZZl2bZIY1YzDyuxGvD/Q/WcDc2zSQ/wLLmnJ8e2f1fIbfPKX3+ATSdv84omW5QTJkWeYWUOINCCNteO6SaM40edDWPhFyYWAOavvadg8j377QJf5lVR9oWeJed1eFOGWpuxG0eXlBGCklFXkoR16wz0t9wJPNhPHLzbeyORNEAUvZNAPirEgOWrM57HizzbNwoe1sxp3miLSmsKbq1I+eycVRs9VuAvgomDULqfhfkJIWuRD3LOMpiT9ckFtY/SBwm8DeLrldCMwiLAWg7kF5BD942/BWBjQHs5DV+OUrz4IO6JGqJjENiVXcrNx0FRf8V1jFFk3GE/woeNi+Qsp8UNtG67obukVshxjgAljqakr1nfZHK/5w0fIGTyq917rneiZVzgzRtzcZv4ebNy4oLmau3z0Ed/WFFWS6IqcZE8lOf1ZDWlsQtMeWCkp7k/bb8G3YmoJhWMYLqU3OnCwqsHMwZOecut7o6uDIWlFiYGmOioxxgfdYlaEHT/+YevonAV1IbXBhvZ4yDR9VVpa47D908U1SrlElKR3MWKbhAKZXl5UiX5MXDL47UWMZejxgVx2bum/yF2PbN0YeALE1lv4zGJ43Yx1A1Jjj/iVu/NjyVWqeYpjgH8URhMvm4CEtUVX+YJwkUGyfalRL9FJXkPeja1qWfwOX+fl8 -sidebar_class_name: "get api-method" -info_path: ../src/api/generated/solve/swap-by-blanc -custom_edit_url: null ---- - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - -Get a route for execution - - - - - - - - diff --git a/docs/src/api/solve-openapi.yaml b/docs/src/api/solve-openapi.yaml index 8ea42da..b2fad09 100644 --- a/docs/src/api/solve-openapi.yaml +++ b/docs/src/api/solve-openapi.yaml @@ -1,187 +1,94 @@ -openapi: 3.0.3 +openapi: 3.1.0 info: title: Swap by Blanc description: API used by Blanc Swap version: 1.0.0-beta security: - - ApiKeyAuth: [] + - BasicAuth: [] + +servers: + - url: https://swaps.sprinter.tech/mainnet + description: Mainnet Swap API + - url: https://swaps.sprinter.tech/base + description: Base Swap API paths: - /quote: + /v1/route: get: - operationId: getQuote - description: Get a price estimation quote + operationId: getRouteV1 + description: Calculate the optimal swap route and generate execution parameters for a token exchange parameters: - in: query - name: amount_in - description: The amount of tokens to sell in decimal notation + name: amountIn + description: The amount of input tokens to swap (in token's smallest unit) schema: $ref: "#/components/schemas/TokenAmount" required: true - example: "1000000000000000000" - in: query - name: token_in - description: The token address to sell + name: tokenIn + description: Contract address of the input token to sell schema: $ref: "#/components/schemas/Address" required: true - example: "0x6B175474E89094C44Da98b954EedeAC495271d0F" - in: query - name: token_out - description: The token address to buy + name: tokenOut + description: Contract address of the output token to buy schema: $ref: "#/components/schemas/Address" required: true - example: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" - responses: - 200: - description: Quote successfully created - content: - application/json: - schema: - $ref: "#/components/schemas/QuoteResponse" - 400: - description: Bad request - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - 401: - description: Unauthorized - Invalid API key - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - 500: - description: Internal server error - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - - /route: - get: - operationId: getRoute - description: Get a route for execution - parameters: - in: query - name: amount_in - description: The amount of tokens to sell in decimal notation + name: slippageBps + description: The slippage tolerance in basis points (e.g., 50 for 0.5%) schema: - $ref: "#/components/schemas/TokenAmount" - required: true - example: "1000000000000000000" - - in: query - name: token_in - description: The token address to sell - schema: - $ref: "#/components/schemas/Address" - required: true - example: "0x6B175474E89094C44Da98b954EedeAC495271d0F" - - in: query - name: min_amount_out - description: The minimum amount of tokens to receive - schema: - $ref: "#/components/schemas/TokenAmount" - required: true - example: "990000000000000000" - - in: query - name: token_out - description: The token address to buy - schema: - $ref: "#/components/schemas/Address" - required: true - example: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" + type: integer + format: int32 + minimum: 0 + maximum: 10000 + default: 50 + required: false responses: 200: - description: Route successfully generated + description: Successfully calculated swap route with execution details + headers: + Request-ID: + $ref: "#/components/headers/RequestID" content: application/json: schema: - $ref: "#/components/schemas/RouteResponse" + $ref: "#/components/schemas/RouteV1Response" 400: - description: Bad request + description: Bad request due to invalid parameters + headers: + Request-ID: + $ref: "#/components/headers/RequestID" content: application/json: schema: $ref: "#/components/schemas/Error" 401: - description: Unauthorized - Invalid API key + description: Unauthorized access due to invalid or missing credentials + headers: + Request-ID: + $ref: "#/components/headers/RequestID" content: application/json: schema: $ref: "#/components/schemas/Error" - 500: - description: Internal server error - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - - /v2/route: - get: - operationId: getRouteV2 - description: Get a route for execution with additional parameters - parameters: - - in: query - name: amount_in - description: The amount of tokens to sell in decimal notation - schema: - $ref: "#/components/schemas/TokenAmount" - required: true - example: "1000000000000000000" - - in: query - name: token_in - description: The token address to sell - schema: - $ref: "#/components/schemas/Address" - required: true - example: "0x6B175474E89094C44Da98b954EedeAC495271d0F" - - in: query - name: token_out - description: The token address to buy - schema: - $ref: "#/components/schemas/Address" - required: true - example: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" - - in: query - name: slippage - description: The slippage tolerance in percentage (e.g., 0.5 for 0.5%) - schema: - type: number - format: float - required: false - example: 0.5 - - in: query - name: target_duration_ms - description: The target duration for the route search in milliseconds - schema: - type: integer - format: int64 - required: false - example: 200 - responses: - 200: - description: Route successfully generated - content: - application/json: - schema: - $ref: "#/components/schemas/RouteResponseV2" - 400: - description: Bad request - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - 401: - description: Unauthorized - Invalid API key + 404: + description: No viable swap route found for the given parameters + headers: + Request-ID: + $ref: "#/components/headers/RequestID" content: application/json: schema: $ref: "#/components/schemas/Error" 500: description: Internal server error + headers: + Request-ID: + $ref: "#/components/headers/RequestID" content: application/json: schema: @@ -189,113 +96,60 @@ paths: components: securitySchemes: - ApiKeyAuth: - type: apiKey - in: header - name: X-API-Key - description: API key with format sk_live_* + BasicAuth: + type: http + scheme: basic + + headers: + RequestID: + description: Unique request identifier + schema: + type: string + format: hex + pattern: "^0x[a-fA-F0-9]{24}$" schemas: Address: - description: 20 byte Ethereum address encoded as a hex with `0x` prefix + description: Ethereum contract address (20 bytes) encoded as hexadecimal with 0x prefix type: string pattern: "^0x[a-fA-F0-9]{40}$" - example: "0x6B175474E89094C44Da98b954EedeAC495271d0F" + + Bytes: + description: Arbitrary byte data encoded as hexadecimal with 0x prefix + type: string + pattern: "^0x[a-fA-F0-9]*$" TokenAmount: description: Amount of an ERC20 token as a decimal string (no scientific notation) type: string pattern: "^[0-9]+$" - example: "1000000000000000000" - QuoteResponse: - description: Successful quote with the expected output amount - type: object - properties: - amount_out: - description: The amount of output tokens you would receive - $ref: "#/components/schemas/TokenAmount" - required: - - amount_out - - Call: - description: An EVM call for execution - type: object - required: - - to - - value - - data - properties: - to: - description: Target contract address - $ref: "#/components/schemas/Address" - value: - description: Amount of ETH to send with call (in wei) - $ref: "#/components/schemas/TokenAmount" - data: - description: Hex encoded calldata - type: string - pattern: "^0x[a-fA-F0-9]*$" - example: "0x38ed1739" - - RouteResponse: + RouteV1Response: description: Successfully created route with execution details type: object - required: - - calls - - gas - properties: - calls: - description: Array of EVM calls to execute in sequence - type: array - items: - $ref: "#/components/schemas/Call" - gas: - description: Estimated gas required for execution - type: integer - example: 150000 - - RouteResponseV2: - description: Successfully created route with additional details - type: object - required: - - quote_id - - amount_out - - min_amount_out - - target - - swap_call_data - - rainbow_input + required: [amountOut, minAmountOut, target, callData] properties: - quote_id: - description: Unique identifier for the quote - type: string - example: "q_12345678" - amount_out: - description: The amount of output tokens you would receive + amountOut: + description: Amount of tokens to receive $ref: "#/components/schemas/TokenAmount" - min_amount_out: - description: The minimum amount of tokens to receive after slippage + minAmountOut: + description: Minimum amount of tokens to receive after slippage $ref: "#/components/schemas/TokenAmount" target: description: The target contract address for the swap $ref: "#/components/schemas/Address" - swap_call_data: + callData: description: Hex encoded calldata for the swap - type: string - pattern: "^0x[a-fA-F0-9]*$" - example: "0x38ed1739" - rainbow_input: - description: Input data for the rainbow swap - type: string - example: "0x..." + $ref: "#/components/schemas/Bytes" Error: description: Error response with details type: object - required: - - error + required: [code, error] properties: + code: + description: Error code indicating the type of error + type: integer error: - description: Human readable error message + description: Error message type: string - example: "insufficient output amount"