From 9963d4cbd65bd358b57118e671be2f25bae6797c Mon Sep 17 00:00:00 2001 From: defi-moses Date: Fri, 4 Oct 2024 20:25:59 +0100 Subject: [PATCH 1/6] developer blog outline --- .../blog-posts/2024-10-10-rest-api-post.md | 57 +++++++++++++++++++ docs/bridge/blog-posts/authors.yml | 4 ++ docs/bridge/blog-posts/welcome.md | 45 +++++++++++++++ docs/bridge/docusaurus.config.ts | 22 ++++++- docs/bridge/src/pages/index.tsx | 2 +- 5 files changed, 127 insertions(+), 3 deletions(-) create mode 100644 docs/bridge/blog-posts/2024-10-10-rest-api-post.md create mode 100644 docs/bridge/blog-posts/authors.yml create mode 100644 docs/bridge/blog-posts/welcome.md diff --git a/docs/bridge/blog-posts/2024-10-10-rest-api-post.md b/docs/bridge/blog-posts/2024-10-10-rest-api-post.md new file mode 100644 index 0000000000..073306c2c2 --- /dev/null +++ b/docs/bridge/blog-posts/2024-10-10-rest-api-post.md @@ -0,0 +1,57 @@ +--- +slug: rest-api-now-live +title: Announcing the Synapse REST API +# authors: [synapse] +tags: [api, update] +--- + +We are excited to announce the launch of the **Synapse REST API**. + + +Last week, we launched the Synapse REST API: [api.synapseprotocol.com](https://api.synapseprotocol.com). The new update is key in making Synapse easier to integrate for applications. + + + + +## Summary: +The REST API is a restful interface for applications to query, construct, and initiate cross-chain transactions. The service comes with supporting modules for querying liquidity, transaction status, and more. The aim of the API is to enable applications to integrate cross-chain functionality through an API call. + + +## Why it Matters: + +The REST API makes it significantly easier for aggregators to integrate with the Synapse Bridge, complete with supplementary modules for returning key information like transaction status to users , as well as standardizing and sanitizing inputs and outputs. Rather than interact with complex contracts, aggregators can interact with a simple /bridge endpoint. + +The REST API is also built with third-party developers in mind. Many people run external services around the Synapse Bridge: from arbitrage bots, to on-chain AI agents. The REST API makes it much simpler to interact with the Synapse Bridge from any environment, with just an http request. Third party developers also don't have to sacrifice complexity. + +## Challenges: +When building the REST API we ran into a couple challenges that have created a more robust developer experience. + +*Standardizing Constants:* We needed a set of constants to verify all inputs against, so that users did not attempt to bridge or swap with unsupported assets/chains. This launch gave us the chance to standardize the Synapse Constants library, and extend this library throughout other services. + +*Liquidity Warnings:* When bridging programmatically, it's harder to identify abnormalities, thus we added different endpoints to help applications retrieve liquidity parameters before bridging. Responses also include detailed information about what the expected amount will be. + + +## Launch Details: + +Structurally, the REST API is a wrapper around the Synapse SDK – the primary abstraction of the Synapse Contracts. The modules allow users to swap, bridge, and a host of other supporting functions. This level of abstraction is key for applications that want to interact with the Synapse Contracts from any framework, in a standardized manner. + +This update incorporated the addition of new methods to support aggregator integrations such as: + +`/bridgeTxStatus` + Enables developers to retrieve the status of any bridge transaction. Helpful for debugging as well as providing transaction level information to the user. + +`/destinationTokens` + Returns a list of tokens that can be bridged to (given an input token), giving developers clarity on where they can bridge to. + +`/bridgeLimits` + Returns a max/min amount of tokens to be bridged, giving an accurate representation of liquidity for any possible bridge route. + +Other main changes include: +- Standardized RESTful responses, eliminated mixed response types (Markup and JSON) to now consistently return JSON for all endpoints. +- Enhanced error handling using input validations with express-validator, middleware for error handling. Includes checks for unsupported chains, bridge modules, tokens and a friendly error message indicating specific error messages. +- Architectural improvements including a traditional MVC approach, separating routes and controllers, improved code readability and organization, so we can easily compose new routes +- Development workflow updates, like yarn dev which has hot reloading so we don't need to manually stop and restart the server during development + +Swagger documentation was also included in the latest release to assist developer onboarding. + + diff --git a/docs/bridge/blog-posts/authors.yml b/docs/bridge/blog-posts/authors.yml new file mode 100644 index 0000000000..9dd3e8f1c0 --- /dev/null +++ b/docs/bridge/blog-posts/authors.yml @@ -0,0 +1,4 @@ +synapse: + name: Synapse Protocol Developers + title: Synapse Protocol Developers + url: https://synapseprotocol.com diff --git a/docs/bridge/blog-posts/welcome.md b/docs/bridge/blog-posts/welcome.md new file mode 100644 index 0000000000..359b7ea22e --- /dev/null +++ b/docs/bridge/blog-posts/welcome.md @@ -0,0 +1,45 @@ +--- +slug: welcome +title: Welcome +# authors: [synapse] +tags: [synapse] +--- + + +We are happy to announce the **Synapse Technical Blog**! + +On this blog, we will share insights, updates, and deep dives into our latest launches and developments from a developer's perspective. Here, you'll find detailed information about our newest features, APIs, and technical improvements that power Synapse Protocol. + + + + +## What to Expect + +Our blog posts will cover a range of topics, including: + +- New feature launches and updates +- Technical deep dives into our architecture +- API documentation and usage guides +- Performance improvements and optimizations +- Developer tools and resources + +Whether you're an integrator, a third-party developer, or just curious about the technical aspects of Synapse, this blog is for you. + +## Latest Articles + +Here's a list of our most recent tech blog posts: + +- [REST API Now Live](2024-10-10-rest-api-post.md) - October 10, 2024 + Learn about our new REST API, its features, and how it simplifies integration for developers. + + + +## Stay Connected + +To stay up-to-date with our latest tech developments: + +- Follow us on [Twitter](https://twitter.com/synapseprotocol) +- Join our [Discord](https://discord.gg/synapseprotocol) +- Check out our [GitHub](https://github.com/synapsecns) + +We're excited to share our journey with you as we continue to innovate and improve the Synapse Protocol. Happy reading! diff --git a/docs/bridge/docusaurus.config.ts b/docs/bridge/docusaurus.config.ts index 128185da3f..3ac8b21909 100644 --- a/docs/bridge/docusaurus.config.ts +++ b/docs/bridge/docusaurus.config.ts @@ -60,15 +60,26 @@ const config: Config = { // Please change this to your repo. // Remove this to remove the "edit this page" links. editUrl: - 'https://github.com/synapsecns/sanguine/tree/master/docs/bridge/', + 'https://github.com/synapsecns/sanguine/edit/master/docs/bridge/blog-posts/', docRootComponent: '@theme/DocRoot', docItemComponent: '@theme/ApiItem', // derived from docusaurus-theme-openapi-docs // docItemComponent: '@theme/ApiItem', // derived from docusaurus-theme-openapi-docs + routeBasePath: 'docs', + path: 'docs', + }, + blog: { + showReadingTime: true, + editUrl: + 'https://github.com/synapsecns/sanguine/tree/master/docs/bridge/', + blogSidebarTitle: 'All posts', + blogSidebarCount: 'ALL', + path: 'blog-posts', + routeBasePath: 'blog', + // authorsMapPath: 'blog-posts/authors.yml', }, theme: { customCss: './src/css/custom.css', }, - blog: false, } satisfies Preset.Options, ], ], @@ -88,6 +99,13 @@ const config: Config = { src: 'brand-assets/synapse-mark.svg', }, items: [ + { + type: 'doc', + docId: 'About/index', + position: 'left', + label: 'Docs', + }, + {to: '/blog', label: 'Blog', position: 'left'}, { href: 'https://github.com/synapsecns/sanguine', label: 'GitHub', diff --git a/docs/bridge/src/pages/index.tsx b/docs/bridge/src/pages/index.tsx index c9459a0f3a..edf6a2219a 100644 --- a/docs/bridge/src/pages/index.tsx +++ b/docs/bridge/src/pages/index.tsx @@ -45,4 +45,4 @@ import { Redirect } from '@docusaurus/router' // ) // } -export default () => +export default () => From 28ba7e60e5724e39b532026926c87b685f35c32a Mon Sep 17 00:00:00 2001 From: defi-moses Date: Fri, 4 Oct 2024 20:41:39 +0100 Subject: [PATCH 2/6] changing home route --- docs/bridge/src/pages/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/bridge/src/pages/index.tsx b/docs/bridge/src/pages/index.tsx index edf6a2219a..6382def2d5 100644 --- a/docs/bridge/src/pages/index.tsx +++ b/docs/bridge/src/pages/index.tsx @@ -45,4 +45,4 @@ import { Redirect } from '@docusaurus/router' // ) // } -export default () => +export default () => From 7613542c41cdc76e4dcb6420887be8e3d098bf5e Mon Sep 17 00:00:00 2001 From: Lawson Kight Date: Mon, 7 Oct 2024 17:18:42 -0700 Subject: [PATCH 3/6] api graphic v1 --- .../blog-posts/2024-10-10-rest-api-post.md | 17 ++++++++--------- docs/bridge/blog-posts/rest-api-flow.png | Bin 0 -> 16490 bytes 2 files changed, 8 insertions(+), 9 deletions(-) create mode 100644 docs/bridge/blog-posts/rest-api-flow.png diff --git a/docs/bridge/blog-posts/2024-10-10-rest-api-post.md b/docs/bridge/blog-posts/2024-10-10-rest-api-post.md index 073306c2c2..161987a132 100644 --- a/docs/bridge/blog-posts/2024-10-10-rest-api-post.md +++ b/docs/bridge/blog-posts/2024-10-10-rest-api-post.md @@ -10,28 +10,29 @@ We are excited to announce the launch of the **Synapse REST API**. Last week, we launched the Synapse REST API: [api.synapseprotocol.com](https://api.synapseprotocol.com). The new update is key in making Synapse easier to integrate for applications. - -## Summary: -The REST API is a restful interface for applications to query, construct, and initiate cross-chain transactions. The service comes with supporting modules for querying liquidity, transaction status, and more. The aim of the API is to enable applications to integrate cross-chain functionality through an API call. +## Summary +![REST API flor](./rest-api-flow.png) + +The REST API is a restful interface for applications to query, construct, and initiate cross-chain transactions. The service comes with supporting modules for querying liquidity, transaction status, and more. The aim of the API is to enable applications to integrate cross-chain functionality through an API call. -## Why it Matters: +## Why it Matters The REST API makes it significantly easier for aggregators to integrate with the Synapse Bridge, complete with supplementary modules for returning key information like transaction status to users , as well as standardizing and sanitizing inputs and outputs. Rather than interact with complex contracts, aggregators can interact with a simple /bridge endpoint. The REST API is also built with third-party developers in mind. Many people run external services around the Synapse Bridge: from arbitrage bots, to on-chain AI agents. The REST API makes it much simpler to interact with the Synapse Bridge from any environment, with just an http request. Third party developers also don't have to sacrifice complexity. -## Challenges: +## Challenges + When building the REST API we ran into a couple challenges that have created a more robust developer experience. *Standardizing Constants:* We needed a set of constants to verify all inputs against, so that users did not attempt to bridge or swap with unsupported assets/chains. This launch gave us the chance to standardize the Synapse Constants library, and extend this library throughout other services. *Liquidity Warnings:* When bridging programmatically, it's harder to identify abnormalities, thus we added different endpoints to help applications retrieve liquidity parameters before bridging. Responses also include detailed information about what the expected amount will be. - -## Launch Details: +## Launch Details Structurally, the REST API is a wrapper around the Synapse SDK – the primary abstraction of the Synapse Contracts. The modules allow users to swap, bridge, and a host of other supporting functions. This level of abstraction is key for applications that want to interact with the Synapse Contracts from any framework, in a standardized manner. @@ -53,5 +54,3 @@ Other main changes include: - Development workflow updates, like yarn dev which has hot reloading so we don't need to manually stop and restart the server during development Swagger documentation was also included in the latest release to assist developer onboarding. - - diff --git a/docs/bridge/blog-posts/rest-api-flow.png b/docs/bridge/blog-posts/rest-api-flow.png new file mode 100644 index 0000000000000000000000000000000000000000..59ba90d6dd4fd164ca8632b913a16941a561c926 GIT binary patch literal 16490 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 T(-tn=45Rd3UA|1#BIJJqzoc-T literal 0 HcmV?d00001 From f7515a665c5e8771947c0ffed5608aead4ff2593 Mon Sep 17 00:00:00 2001 From: Lawson Kight Date: Mon, 7 Oct 2024 17:23:43 -0700 Subject: [PATCH 4/6] increase image size --- docs/bridge/blog-posts/rest-api-flow.png | Bin 16490 -> 26016 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/bridge/blog-posts/rest-api-flow.png b/docs/bridge/blog-posts/rest-api-flow.png index 59ba90d6dd4fd164ca8632b913a16941a561c926..d94e26b214543dbad3a746a2f1e181eabffad998 100644 GIT binary patch literal 26016 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 literal 16490 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 T(-tn=45Rd3UA|1#BIJJqzoc-T From eeb8cf8e8e102dd1ea8e843842afc54817657d56 Mon Sep 17 00:00:00 2001 From: Lawson Kight Date: Tue, 8 Oct 2024 12:19:04 -0700 Subject: [PATCH 5/6] svg flow graphic --- .../blog-posts/2024-10-10-rest-api-post.md | 10 +- docs/bridge/src/components/APIFlow.tsx | 203 ++++++++++++++++++ docs/bridge/src/css/custom.css | 15 +- 3 files changed, 224 insertions(+), 4 deletions(-) create mode 100644 docs/bridge/src/components/APIFlow.tsx diff --git a/docs/bridge/blog-posts/2024-10-10-rest-api-post.md b/docs/bridge/blog-posts/2024-10-10-rest-api-post.md index 161987a132..4cec2b06cf 100644 --- a/docs/bridge/blog-posts/2024-10-10-rest-api-post.md +++ b/docs/bridge/blog-posts/2024-10-10-rest-api-post.md @@ -5,8 +5,9 @@ title: Announcing the Synapse REST API tags: [api, update] --- -We are excited to announce the launch of the **Synapse REST API**. +import { APIFlow } from '@site/src/components/APIFlow' +We are excited to announce the launch of the **Synapse REST API**. Last week, we launched the Synapse REST API: [api.synapseprotocol.com](https://api.synapseprotocol.com). The new update is key in making Synapse easier to integrate for applications. @@ -14,10 +15,13 @@ Last week, we launched the Synapse REST API: [api.synapseprotocol.com](https://a ## Summary -![REST API flor](./rest-api-flow.png) - The REST API is a restful interface for applications to query, construct, and initiate cross-chain transactions. The service comes with supporting modules for querying liquidity, transaction status, and more. The aim of the API is to enable applications to integrate cross-chain functionality through an API call. +
+ +
API flow: get Quote, get txData, sign transaction
+
+ ## Why it Matters The REST API makes it significantly easier for aggregators to integrate with the Synapse Bridge, complete with supplementary modules for returning key information like transaction status to users , as well as standardizing and sanitizing inputs and outputs. Rather than interact with complex contracts, aggregators can interact with a simple /bridge endpoint. diff --git a/docs/bridge/src/components/APIFlow.tsx b/docs/bridge/src/components/APIFlow.tsx new file mode 100644 index 0000000000..13e556ac23 --- /dev/null +++ b/docs/bridge/src/components/APIFlow.tsx @@ -0,0 +1,203 @@ +export const APIFlow = () => { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + REST API + + + + /bridge + + + /bridgeTxInfo + + + Contract + + + + App + + + Chain + + + + + + + + + + + + Quote + + + Data + + + Sign + + + Submit + + + + ) +} diff --git a/docs/bridge/src/css/custom.css b/docs/bridge/src/css/custom.css index ffda217488..dc6d5eaa68 100644 --- a/docs/bridge/src/css/custom.css +++ b/docs/bridge/src/css/custom.css @@ -21,6 +21,13 @@ --ifm-background-surface-color: #f8f8f8; + --syn-method: hsl(225deg 100% 45%); + + --syn-fig-green: hsl(165deg 100% 28%); + --syn-fig-blue: hsl(210deg 100% 45%); + --syn-fig-purple: hsl(285deg 100% 50%); + --syn-fig-magenta: hsl(330deg 100% 60%); + letter-spacing: .0125em; line-height: 1.7; } @@ -48,6 +55,13 @@ --ifm-color-success-contrast-background: hsl(165deg 40% 12.5%); --ifm-color-success-dark: hsl(165deg 40% 25%); + + --syn-method: hsl(50deg 100% 65%); + + --syn-fig-green: hsl(120deg 100% 50%); + --syn-fig-blue: hsl(180deg 100% 50%); + --syn-fig-purple: hsl(285deg 100% 70%); + --syn-fig-magenta: hsl(330deg 100% 60%); } h1 { font-weight: 400 } @@ -78,7 +92,6 @@ svg.flowAnimation text { figure { margin: 0; - width: fit-content; } figcaption { From ac3b3263baceab86122dc9e1b16251d871731c84 Mon Sep 17 00:00:00 2001 From: Lawson Kight Date: Tue, 8 Oct 2024 12:21:07 -0700 Subject: [PATCH 6/6] fix typo --- docs/bridge/docs/02-Bridge/05-Supported-Routes.md | 2 +- docs/bridge/docs/02-Bridge/_05-Supported-Routes.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/bridge/docs/02-Bridge/05-Supported-Routes.md b/docs/bridge/docs/02-Bridge/05-Supported-Routes.md index f47a6918f2..a202c1ea8e 100644 --- a/docs/bridge/docs/02-Bridge/05-Supported-Routes.md +++ b/docs/bridge/docs/02-Bridge/05-Supported-Routes.md @@ -1,5 +1,5 @@ --- -sidebar_label: Supported Rotues +sidebar_label: Supported Routes --- # Supported Routes diff --git a/docs/bridge/docs/02-Bridge/_05-Supported-Routes.md b/docs/bridge/docs/02-Bridge/_05-Supported-Routes.md index 13bbab1dc7..96f6bdd8bb 100644 --- a/docs/bridge/docs/02-Bridge/_05-Supported-Routes.md +++ b/docs/bridge/docs/02-Bridge/_05-Supported-Routes.md @@ -1,5 +1,5 @@ --- -sidebar_label: Supported Rotues +sidebar_label: Supported Routes --- import Routes from '@site/src/components/Routes'