Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New Docs #2610

Closed
wants to merge 15 commits into from
Closed

New Docs #2610

wants to merge 15 commits into from

Conversation

trajan0x
Copy link
Contributor

@trajan0x trajan0x commented May 10, 2024

Description

Supersedes #2603 as that issue got completely polluted debugging PaloAltoNetworks/docusaurus-openapi-docs#580 (comment)

adds new docs

Summary by CodeRabbit

  • New Features

    • Introduced comprehensive documentation for Synapse Bridge, including API guides, contract details, and observability guidelines.
    • Added new API endpoints documentation for RFQ and CCTP services.
    • Updated homepage features and layout configurations for better user navigation.
  • Documentation

    • Expanded and updated documentation paths and contents for better clarity and accessibility.
    • Enhanced API documentation with detailed request and response examples.
  • Bug Fixes

    • Corrected typos and improved semantic descriptions in API documentation to enhance clarity.
  • Refactor

    • Updated trigger paths and documentation workflow configurations to streamline development processes.

Copy link
Contributor

coderabbitai bot commented May 10, 2024

Walkthrough

The updates primarily focus on restructuring and enhancing documentation for the Synapse Bridge, including new API endpoints and observability features. Changes in file paths and configurations reflect a shift towards a more organized and accessible documentation system, with emphasis on cross-chain transactions and API usability.

Changes

File Path Change Summary
.github/workflows/ui-preview.yaml, docs/bridge/docusaurus.config.ts, docs/bridge/package.json Updated paths and configurations for better project structure and workflow automation.
docs/bridge/README.md, docs/bridge/docs/... Enhanced and restructured documentation focusing on Synapse Bridge components like CCTP and RFQ modules.
docs/bridge/docs/CCTP/..., docs/bridge/docs/rfq/... New files added detailing API endpoints, contracts, and operational guides for CCTP and RFQ modules.
docs/bridge/src/... New components and styles introduced for the Docusaurus site, improving UI features on the homepage.
services/rfq/api/... Modifications in API documentation and handlers, improving clarity and functionality descriptions for RFQ API.

🐇💻✨
In the digital fields of code and docs,
A rabbit hopped, leaving trails of blocks.
With each file and line, it danced with glee,
Crafting bridges for data, so free.
Celebrate the docs, fresh and new,
For they guide us, through and through! 🌉📄✨


- Removed the section on Deployment.

---

docs/bridge/docs/CCTP/Contracts.md: ## Summary

The new file `Contracts.md` documents Synapse CCTP contracts deployed on various chains, interacting with Circle contracts to mint/burn USDC, responsible for these actions on supported chains.

## Alterations to the declarations of exported or public entities

No alterations to the declarations of exported or public entities were made in the `Contracts.md` file.

---

docs/bridge/docs/CCTP/Overview.md: ## Summary

The new file `Overview.md` in `docs/bridge/docs/CCTP` introduces Synapse CCTP, a module based on Circle's Cross-Chain Transfer Protocol for minting & burning USDC on supported chains. It includes a CCTP Relayer for off-chain transactions and CCTP Contracts for on-chain operations, configurable to bridge through various liquidity sources.

---

docs/bridge/docs/CCTP/Relayer.md: # Summary

The `CCTP Relayer` file introduces an off-chain service designed to handle transactions for CCTP Contracts by fetching attestations from the Circle API and submitting them to the CCTP contracts. It provides details on the architecture, modes of operation, running the relayer, configuration settings, and observability features.

## Alterations to the declarations of exported or public entities

No alterations were made to the declarations of exported or public entities in the `CCTP Relayer` file.

---

docs/bridge/docs/CCTP/_category_.json: ## Summary
The new file `docs/bridge/docs/CCTP/_category_.json` introduces a JSON configuration for the CCTP category, providing a label, position, and a link to the overview document.

## Alterations to the declarations of exported or public entities
No alterations to the declarations of exported or public entities were made in this JSON configuration file.

---

docs/bridge/docs/Observability.md: ## Summary

The new file `Observability.md` introduces guidelines for configuring observability in off-chain systems using the metrics package, focusing on traces, metrics, and APM (Application Performance Monitoring). It explains the types of metrics, their purposes, and how to configure tracing, metrics, and APM for monitoring system health and performance.

## Alterations to the declarations of exported or public entities

No alterations were made to the declarations of exported or public entities in the `Observability.md` file.

---

docs/bridge/docs/rfq/API/API.md: The new file `API.md` in `docs/bridge/docs/rfq/API` provides documentation for the RFQ API, explaining its purpose, integration, authentication requirements, and how to run the API. It details the RESTful API endpoints for posting and reading quotes, along with authentication using EIP-191 signatures. The file also includes information on API URLs, running the API with a YAML configuration specifying database settings, omnirpc URL, FastBridge contract addresses, and port. Additionally, it outlines building the API from source and running it with Docker.

### Alterations to the declarations of exported or public entities
- No alterations to declarations of exported or public entities.

---

docs/bridge/docs/rfq/API/get-quotes.api.mdx: ## Summary
The new file `get-quotes.api.mdx` introduces documentation for the "Get quotes" API endpoint, detailing how to retrieve quotes from all relayers. It includes information on request parameters, response schema, and examples.

## Alterations to the declarations of exported or public entities
- Added a new file `get-quotes.api.mdx` containing documentation for the "Get quotes" API endpoint.
- Introduced components like `MethodEndpoint`, `ParamsItem`, `SchemaItem`, `ResponseSamples`, `TabItem`, etc., for structuring and displaying API information.
- Defined path parameters such as `originChainID`, `originTokenAddr`, `destChainID`, `destTokenAddr`, and `relayerAddr` with their descriptions and types.
- Described the response schema with fields like `dest_amount`, `dest_chain_id`, `dest_fast_bridge_address`, `dest_token_addr`, `fixed_fee`, `max_origin_amount`, `origin_chain_id`, `origin_fast_bridge_address`, `origin_token_addr`, `relayer_addr`, and `updated_at`.
- Provided an example response in JSON format for the API endpoint.

---

docs/bridge/docs/rfq/API/sidebar.ts: ## Summary
The new file `sidebar.ts` in `docs/bridge/docs/rfq/API` introduces a sidebar configuration for API documentation, specifically for quotes related endpoints like "Get quotes" and "Upsert quote".

## Alterations to the declarations of exported or public entities
- Exported `sidebar` object of type `SidebarsConfig` in `sidebar.ts` in `docs/bridge/docs/rfq/API`

---

docs/bridge/docs/rfq/API/upsert-quote.api.mdx: ## Summary
The new file `upsert-quote.api.mdx` introduces an API endpoint for upserting a quote from a relayer. It provides documentation for the `Upsert quote` operation, including request details and response information.

## Alterations to the declarations of exported or public entities
- Added a new API endpoint for upserting a quote.
- Included documentation for the request parameters and response codes.

This summary provides an overview of the changes made in the file without delving into specific implementation details.

---

docs/bridge/docs/rfq/Contracts.md: ### Summary

The file `Contracts.md` in the `docs/bridge/docs/rfq` directory provides information about the Synapse RFQ contract, including addresses on different chains, on-chain architecture, transaction flow, and statuses within the contract.

## Alterations to the declarations of exported or public entities

No alterations to the declarations of exported or public entities were found in the provided diff for `Contracts.md`.

---

docs/bridge/docs/rfq/RFQ.md: ## Summary

The new file `RFQ.md` introduces the RFQ module, a bridge component for market makers to post quotes on bridge routes, allowing users to request on-chain bridges and refunds if requests are unfulfilled. It outlines the actors involved and the components of RFQ, including Solvers, Users, Quoter, API, Fast Bridge Contract, and Relayer.

## Alterations to the declarations of exported or public entities

No alterations to the declarations of exported or public entities were made in the `RFQ.md` file.

---

docs/bridge/docs/rfq/Relayer/Relayer.md: ## Summary

The new file `Relayer.md` in the `docs/bridge/docs/rfq` directory provides a detailed overview of the canonical implementation of the relayer, outlining its responsibilities in quoting, relaying, and rebalancing funds across different chains. It describes the architecture, event loops, quoting formula, rebalancing process, and the complex relay workflow. Additionally, it includes instructions on running the relayer from source or using a Docker image, configuration details, and observability aspects.

## Alterations to the declarations of exported or public entities

No alterations to the declarations of exported or public entities were identified in the provided diff.

---

docs/bridge/docs/rfq/_category_.json: ## Summary
The new file `docs/bridge/docs/rfq/_category_.json` introduces a JSON configuration for the RFQ (Request for Quotation) category, specifying its label, position, and linking details.

## Alterations to the declarations of exported or public entities
- N/A

---

docs/bridge/docusaurus.config.ts: The file `docs/bridge/docusaurus.config.ts` introduces configuration settings for a documentation site titled "Synapse Bridge Docs" with a focus on cross-chain technology. It includes settings for the site title, tagline, favicon, URLs, i18n configuration, presets for documentation and themes, theme customization, navbar and footer content, announcement bar, and plugin configurations for OpenAPI documentation. The file also sets up social media links and theme styling, including Prism themes for code highlighting.

### Alterations to the declarations of exported or public entities:
- Added import for `prismThemes` from 'prism-react-renderer'
- Changed the type import for `Config` from '@docusaurus/types'
- Changed the type import for `Preset` from '@docusaurus/preset-classic'
- Added import for `path`
- Modified the `config` object with various settings for the documentation site
- Added export statement for the `config` object

---

docs/bridge/package.json: ## Summary
The `package.json` file in `docs/bridge` introduces configurations for a Docusaurus documentation site, specifying scripts, dependencies, devDependencies, browserslist settings, and Node.js version requirements.

## Alterations to the declarations of exported or public entities
- Added `"name": "@synapsecns/bridge-docs"` to specify the package name.
- Added scripts for various Docusaurus commands like start, build, deploy, etc.
- Updated dependencies including Docusaurus core and presets, MDX, clsx, plugins, themes, Prism React renderer, React, and React DOM.
- Added devDependencies for Docusaurus module type aliases, tsconfig, types, and TypeScript.
- Included browserslist settings for production and development environments.
- Specified Node.js version requirement as `"node": ">=18.0"`.

---

docs/bridge/sidebars.ts: ## Summary
The file `docs/bridge/sidebars.ts` introduces a configuration for creating sidebars in a documentation system. It defines the structure of sidebars for organizing and navigating documentation content.

## Alterations to the declarations of exported or public entities
- `const sidebars: SidebarsConfig` in `docs/bridge/sidebars.ts`

---

docs/bridge/src/components/HomepageFeatures/index.tsx: ## Summary
The new file `index.tsx` in the `docs/bridge/src/components/HomepageFeatures` directory defines a list of features with titles, SVG icons, and descriptions, and renders them on the homepage.

## Alterations to the declarations of exported or public entities
- Added `FeatureList` array of `FeatureItem` objects.
- Added `Feature` function component that takes `title`, `Svg`, and `description` as props.
- Exported `HomepageFeatures` function component that renders the list of features.

---

docs/bridge/src/components/HomepageFeatures/styles.module.css: ## Summary

The new file `styles.module.css` introduces styling rules for the features section of the homepage, defining the layout and dimensions for the features and feature SVG elements.

## Alterations to the declarations of exported or public entities

- Added styling rules for the `.features` class:
- `display: flex;`
- `align-items: center;`
- `padding: 2rem 0;`
- `width: 100%;`
- Added styling rules for the `.featureSvg` class:
- `height: 200px;`
- `width: 200px;`

---

docs/bridge/src/pages/index.tsx: ## Summary
The file `index.tsx` in the `docs/bridge/src/pages` directory introduces changes to the homepage layout of a Docusaurus site. It includes modifications to the header component and the main content structure.

## Alterations to the declarations of exported or public entities
- Added `HomepageHeader` function component.
- Modified the `Home` function component to disable rendering of `HomepageHeader` and `HomepageFeatures`.

---

docs/bridge/src/pages/markdown-page.md: ## Summary
The new file `markdown-page.md` provides an example of a simple standalone page written in Markdown, demonstrating that React is not required for such pages.

## Alterations to the declarations of exported or public entities
- No alterations to exported or public entities.

---

docs/bridge/tsconfig.json: ## Short Summary

The change in functionality involves updating the `extends` property in the `tsconfig.json` file from `"@tsconfig/docusaurus/tsconfig.json"` to `"@docusaurus/tsconfig"`, affecting the configuration for TypeScript compilation.

## Alterations to the declarations of exported or public entities

- `extends: "@tsconfig/docusaurus/tsconfig.json"` in `tsconfig.json` in `docs/bridge` → `extends: "@docusaurus/tsconfig"` in `tsconfig.json` in `docs/bridge`

---

lerna.json: ## Short Summary
The change in `lerna.json` involves adding the `"docs/*"` path to the `"packages"` array, expanding the scope of packages to include documentation.

## Alterations to the declarations of exported or public entities
- `lerna.json`:
- `"packages": ["packages/*"]` → `"packages": ["packages/*", "docs/*"]`

---

package.json: ## Short Summary

The `package.json` file was updated to change the description from "Implementation of the Sanguine messaging standard" to "Synapse bridge monorepo" and added `"docs/*"` to the list of packages in the `workspaces`.

## Alterations to the Declarations of Exported or Public Entities

- `"description": "Implementation of the Sanguine messaging standard"` in `package.json` → `"description": "Synapse bridge monorepo"` in `package.json`
- `"packages/*"` in the `workspaces` section in `package.json` → `"packages/*", "docs/*"` in the `workspaces` section in `package.json`

---

services/rfq/api/README.md: ## Summary

The new file `services/rfq/api/README.md` introduces the canonical implementation of the RFQ API, providing a RESTful interface for solvers to post quotes for specific bridge routes.

---

services/rfq/api/client/client.go: ## Short Summary

In the `client.go` file, the `NewAuthenticatedClient` function now correctly calls `NewUnauthenticatedClient` instead of `NewUnauthenticaedClient`. The typo in the function name has been fixed.

## Alterations to the declarations of exported or public entities

- `func NewUnauthenticaedClient(metricHandler metrics.Handler, rfqURL string) (UnauthenticatedClient, error)` in `client.go` → `func NewUnauthenticatedClient(metricHandler metrics.Handler, rfqURL string) (UnauthenticatedClient, error)` in `client.go`

---

services/rfq/api/docs/docs.go: ## Short Summary

In the `docs.go` file under `services/rfq/api/docs`, the functionality change involves updating the summary for an API endpoint from "get quotes from all relayers" to "Upsert quote". Additionally, the `required` field for parameters like `originChainID`, `originTokenAddr`, `destChainID`, `destTokenAddr`, and `relayerAddr` has been removed.

## Alterations to the declarations of exported or public entities

- `summary: "get quotes from all relayers."` → `summary: "Upsert quote"`
- `required: true` removed for parameters `originChainID`, `originTokenAddr`, `destChainID`, `destTokenAddr`, `relayerAddr`

---

services/rfq/api/docs/swagger.json: ## Summary

In the `swagger.json` file located in `services/rfq/api/docs`, the functionality related to getting quotes from all relayers has been updated to now involve upserting a quote. The changes include modifying the summary from "get quotes from all relayers" to "Upsert quote" and removing the `required: true` attribute from several parameters related to filtering quotes by origin chain ID, origin token address, destination chain ID, destination token address, and relayer address.

---

services/rfq/api/docs/swagger.yaml: ## Short Summary

The changes in the `swagger.yaml` file include removing the `required: true` attribute from several path parameters and updating the summary descriptions for operations related to getting and upserting quotes.

## Alterations to the declarations of exported or public entities

- `name: originChainID` in path parameters
- `name: originTokenAddr` in path parameters
- `name: destChainID` in path parameters
- `name: destTokenAddr` in path parameters
- `name: relayerAddr` in path parameters
- `summary: get quotes from all relayers.` in GET operation
- `summary: get quotes from all relayers.` changed to `summary: Get quotes` in GET operation
- `summary: get quotes from all relayers.` changed to `summary: Upsert quote` in PUT operation

---

services/rfq/api/rest/handler.go: ## Short Summary

The changes in `handler.go` involve semantic modifications to the API endpoint descriptions and parameter details. The `Summary` and parameter descriptions have been updated for clarity and accuracy in the `ModifyQuote` and `GET /quotes` endpoints.

## Alterations to the declarations of exported or public entities

- `// @Summary get quotes from all relayers.` in `ModifyQuote` function → `// @Summary Get quotes`
- `// @Summary get quotes from all relayers.` in `GET /quotes` endpoint → `// @Summary Get quotes`
- Updated parameter descriptions in `GET /quotes` endpoint to mark parameters as optional (`false` instead of `true`)

-->


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share
Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (invoked as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger a review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@github-actions github-actions bot added M-ci Module: CI go Pull requests that update Go code size/l labels May 10, 2024
Copy link

cloudflare-workers-and-pages bot commented May 10, 2024

Deploying sanguine-fe with  Cloudflare Pages  Cloudflare Pages

Latest commit: c7cc653
Status:🚫  Build failed.

View logs

Copy link

codecov bot commented May 10, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 39.58477%. Comparing base (bc97878) to head (c7cc653).
Report is 11 commits behind head on master.

Additional details and impacted files
@@                 Coverage Diff                 @@
##              master       #2610         +/-   ##
===================================================
- Coverage   39.59307%   39.58477%   -0.00830%     
===================================================
  Files            179         179                 
  Lines          14548       14546          -2     
  Branches          80          80                 
===================================================
- Hits            5760        5758          -2     
  Misses          8033        8033                 
  Partials         755         755                 
Flag Coverage Δ
stiprelayer 3.33333% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 22

Out of diff range and nitpick comments (1)
docs/bridge/docs/rfq/RFQ.md (1)

Line range hint 25-25: Remove extra blank line to maintain clean and consistent formatting.

-
Review Details

Configuration used: .coderabbit.yaml
Review profile: CHILL

Commits Files that changed from the base of the PR and between 84da80d and 2598d10.
Files ignored due to path filters (9)
  • docs/bridge/static/img/docusaurus-social-card.jpg is excluded by !**/*.jpg
  • docs/bridge/static/img/docusaurus.png is excluded by !**/*.png
  • docs/bridge/static/img/favicon.ico is excluded by !**/*.ico
  • docs/bridge/static/img/logo.svg is excluded by !**/*.svg
  • docs/bridge/static/img/undraw_docusaurus_mountain.svg is excluded by !**/*.svg
  • docs/bridge/static/img/undraw_docusaurus_react.svg is excluded by !**/*.svg
  • docs/bridge/static/img/undraw_docusaurus_tree.svg is excluded by !**/*.svg
  • docs/bridge/yarn.lock is excluded by !**/*.lock
  • yarn.lock is excluded by !**/*.lock
Files selected for processing (32)
  • .github/workflows/ui-preview.yaml (2 hunks)
  • docs/bridge/README.md (2 hunks)
  • docs/bridge/docs/CCTP/Contracts.md (1 hunks)
  • docs/bridge/docs/CCTP/Overview.md (1 hunks)
  • docs/bridge/docs/CCTP/Relayer.md (1 hunks)
  • docs/bridge/docs/CCTP/category.json (1 hunks)
  • docs/bridge/docs/Observability.md (1 hunks)
  • docs/bridge/docs/Services/Omnirpc.md (1 hunks)
  • docs/bridge/docs/rfq/API/API.md (1 hunks)
  • docs/bridge/docs/rfq/API/get-quotes.api.mdx (1 hunks)
  • docs/bridge/docs/rfq/API/sidebar.ts (1 hunks)
  • docs/bridge/docs/rfq/API/upsert-quote.api.mdx (1 hunks)
  • docs/bridge/docs/rfq/Contracts.md (1 hunks)
  • docs/bridge/docs/rfq/RFQ.md (1 hunks)
  • docs/bridge/docs/rfq/Relayer/Relayer.md (1 hunks)
  • docs/bridge/docs/rfq/category.json (1 hunks)
  • docs/bridge/docusaurus.config.ts (1 hunks)
  • docs/bridge/package.json (1 hunks)
  • docs/bridge/sidebars.ts (1 hunks)
  • docs/bridge/src/components/HomepageFeatures/index.tsx (1 hunks)
  • docs/bridge/src/components/HomepageFeatures/styles.module.css (1 hunks)
  • docs/bridge/src/pages/index.tsx (1 hunks)
  • docs/bridge/src/pages/markdown-page.md (1 hunks)
  • docs/bridge/tsconfig.json (1 hunks)
  • lerna.json (1 hunks)
  • package.json (1 hunks)
  • services/rfq/api/README.md (1 hunks)
  • services/rfq/api/client/client.go (2 hunks)
  • services/rfq/api/docs/docs.go (2 hunks)
  • services/rfq/api/docs/swagger.json (2 hunks)
  • services/rfq/api/docs/swagger.yaml (3 hunks)
  • services/rfq/api/rest/handler.go (2 hunks)
Files skipped from review due to trivial changes (12)
  • docs/bridge/docs/CCTP/category.json
  • docs/bridge/docs/rfq/API/sidebar.ts
  • docs/bridge/docs/rfq/category.json
  • docs/bridge/docusaurus.config.ts
  • docs/bridge/package.json
  • docs/bridge/sidebars.ts
  • docs/bridge/src/components/HomepageFeatures/styles.module.css
  • docs/bridge/tsconfig.json
  • lerna.json
  • package.json
  • services/rfq/api/client/client.go
  • services/rfq/api/docs/swagger.yaml
Additional comments not posted (18)
docs/bridge/src/pages/markdown-page.md (1)

1-7: LGTM! The Markdown structure is correctly formatted.

docs/bridge/src/pages/index.tsx (1)

1-45: LGTM! The React component structure is well-organized and follows best practices.

docs/bridge/docs/CCTP/Overview.md (1)

1-8: LGTM! The overview is informative and well-structured, providing clear insights into the CCTP components.

docs/bridge/src/components/HomepageFeatures/index.tsx (1)

1-70: LGTM! The React component and TypeScript usage are correctly implemented and follow best practices.

.github/workflows/ui-preview.yaml (1)

31-31: Ensure the path filter matches the new documentation structure.

The path filter change from 'packages/docs/**' to 'docs/bridge/**' is correctly implemented.

services/rfq/api/docs/swagger.json (5)

25-25: Ensure the parameter location is correctly set to 'query' if it's not meant to be part of the URL path.


31-31: Verify the parameter location for 'originTokenAddr' to ensure it aligns with API design.

Verification successful

The parameter originTokenAddr is located in the "path" of the API as specified in the swagger.json file. This confirms that the parameter is indeed part of the URL path for API calls, aligning with the typical RESTful API design where path parameters are used to identify a specific resource or resources.

  • Location of originTokenAddr confirmed in swagger.json under services/rfq/api/docs/swagger.json.
Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify the parameter location for 'originTokenAddr'.

# Test: Search for the parameter usage in API calls. Expect: Correct location usage.
rg --type json $'originTokenAddr'

Length of output: 118



Script:

#!/bin/bash
# Description: Extract the 'in' field for 'originTokenAddr' from swagger.json to verify its location in the API.

# Extract the relevant block from swagger.json and find the 'in' field for 'originTokenAddr'
rg --type json -A 5 '"name": "originTokenAddr"' services/rfq/api/docs/swagger.json | rg '"in":'

Length of output: 134


37-37: Check if 'destChainID' should be a path or query parameter based on its usage in the API.

Verification successful

The verification process has confirmed that the destChainID parameter is indeed used as a path parameter in the API, as specified in the swagger.json file. The context around the parameter in the API documentation clearly indicates its placement in the path, which aligns with the initial configuration in the swagger file.

Final Conclusion:

  • The destChainID is correctly designated as a path parameter in the API documentation.
Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify the parameter location for 'destChainID'.

# Test: Search for the parameter usage in API calls. Expect: Correct location usage.
rg --type json $'destChainID'

Length of output: 110



Script:

#!/bin/bash
# Description: Search for the API endpoint definitions using 'destChainID' in swagger.json to determine its usage as a path or query parameter.

# Test: Extract relevant parts of the API definitions from swagger.json.
rg --type json -C 10 'destChainID' services/rfq/api/docs/swagger.json

Length of output: 925


43-43: Confirm the correct parameter location for 'destTokenAddr' in API requests.

Verification successful

The verification process has confirmed that the parameter destTokenAddr is indeed located in the "path" of the API request as specified in the swagger.json file. This aligns with the information provided in the review comment, which sought confirmation of the parameter's location.

  • The parameter destTokenAddr is correctly placed in the "path" as per the API documentation in swagger.json.
Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify the parameter location for 'destTokenAddr'.

# Test: Search for the parameter usage in API calls. Expect: Correct location usage.
rg --type json $'destTokenAddr'

Length of output: 114



Script:

#!/bin/bash
# Description: Extract more context around 'destTokenAddr' usage in swagger.json to determine its location.

# Extract lines around the 'destTokenAddr' declaration to see its location context.
rg --type json -C 5 'destTokenAddr' services/rfq/api/docs/swagger.json

Length of output: 533


49-49: Ensure 'relayerAddr' is correctly placed as a path or query parameter as per API design.

Verification successful

The placement of 'relayerAddr' as a path parameter in the API design is confirmed and aligns with the expectations. It is correctly set in the swagger documentation.

  • Location: services/rfq/api/docs/swagger.json
Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify the parameter location for 'relayerAddr'.

# Test: Search for the parameter usage in API calls. Expect: Correct location usage.
rg --type json $'relayerAddr'

Length of output: 110



Script:

#!/bin/bash
# Description: Extract more context around 'relayerAddr' in swagger.json to determine its parameter type.

# Extract 10 lines before and after the occurrence of 'relayerAddr' to get a better understanding of its context.
rg --type json --context 10 'relayerAddr' services/rfq/api/docs/swagger.json

Length of output: 931

services/rfq/api/docs/docs.go (1)

60-60: Ensure 'relayerAddr' is correctly placed as a path or query parameter as per API design.

docs/bridge/docs/rfq/API/get-quotes.api.mdx (4)

1-11: Ensure the frontmatter and metadata are correctly formatted and complete.


13-25: Verify that all imported components are used appropriately within the document.

Verification successful

The verification process has confirmed that all imported components in the get-quotes.api.mdx file are indeed utilized within the document. Each component listed in the import statements has corresponding usage instances in the MDX content, ensuring that there are no redundant imports.

This verification addresses the concern raised in the review comment effectively, confirming that the imports are appropriate and utilized as expected in the document.

  • File: docs/bridge/docs/rfq/API/get-quotes.api.mdx
    • All components imported at the top of the file are used within the document.
Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify the usage of imported components in the MDX file.

# Test: Search for the component usage in the document. Expect: Correct usage of components.
rg --type mdx $'ApiTabs|DiscriminatorTabs|MethodEndpoint|SecuritySchemes|MimeTabs|ParamsItem|ResponseSamples|SchemaItem|SchemaTabs|Markdown|Heading|OperationTabs|TabItem'

Length of output: 199



Script:

#!/bin/bash
# Description: Verify the usage of imported components in the MDX file.

# Test: Search for the component usage in the document. Expect: Correct usage of components.
rg $'ApiTabs|DiscriminatorTabs|MethodEndpoint|SecuritySchemes|MimeTabs|ParamsItem|ResponseSamples|SchemaItem|SchemaTabs|Markdown|Heading|OperationTabs|TabItem' -g '*.mdx'

Length of output: 7032


27-39: Check the rendering of the MethodEndpoint component to ensure it displays the API method and path correctly.


41-282: Review the detailed API documentation content for accuracy and completeness.

docs/bridge/docs/rfq/Relayer/Relayer.md (3)

1-4: Ensure the frontmatter and metadata are correctly formatted and complete.


6-12: Review the high-level description of the relayer's responsibilities for clarity and accuracy.


13-48: Examine the detailed architecture and operational descriptions to ensure they are clear and accurate.


RFQ is a bridge module supported by the Synapse Router that allows different market makers to post quotes on different bridge routes. Users can take these quotes by submitting an on-chain bridge request. In the event these requests are not fulfilled, users can request a refund after a set period of time.

### Actors
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adjust heading level to maintain proper semantic structure.

- ### Actors
+ ## Actors

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
### Actors
## Actors

@@ -0,0 +1,3 @@
# RFQ API
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct the Markdown heading syntax.

- # RFQ API
+ # RFQ API

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
# RFQ API
# RFQ API

Comment on lines +67 to +73
"jsonrpc":"2.0",
"method":"eth_getTransactionCount",
"params":[
"0x230a1ac45690b9ae1176389434610b9526d2f21b",
"0xec1d40"
],
"id":1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Replace hard tabs with spaces to maintain consistency in code formatting.

-	"jsonrpc":"2.0",
-	"method":"eth_getTransactionCount",
-	"params":[
-		"0x230a1ac45690b9ae1176389434610b9526d2f21b",
-		"0xec1d40"
-	],
-	"id":1
+    "jsonrpc":"2.0",
+    "method":"eth_getTransactionCount",
+    "params":[
+        "0x230a1ac45690b9ae1176389434610b9526d2f21b",
+        "0xec1d40"
+    ],
+    "id":1

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
"jsonrpc":"2.0",
"method":"eth_getTransactionCount",
"params":[
"0x230a1ac45690b9ae1176389434610b9526d2f21b",
"0xec1d40"
],
"id":1
"jsonrpc":"2.0",
"method":"eth_getTransactionCount",
"params":[
"0x230a1ac45690b9ae1176389434610b9526d2f21b",
"0xec1d40"
],
"id":1


The implementation of the rfq api can be found [here](https://github.com/synapsecns/sanguine/tree/master/services/rfq/api). Please note that end-users and solvers will not need to run their own version of the API.


Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove extra blank lines to maintain clean and consistent formatting.

-

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change


Only Solvers should be writing to the API, end-users need only read from the `/quotes` endpoint.

**Authentication**
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use a heading instead of emphasis for section titles to improve document structure.

- **Authentication**
+ ## Authentication

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
**Authentication**
## Authentication

},
{
"type": "string",
"description": "origin chain id to filter quotes by",
"name": "originTokenAddr",
"in": "path",
"required": true
"in": "path"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tip

Codebase Verification

The review comment concerning the parameter location for 'originTokenAddr' has highlighted a significant inconsistency. The parameter is documented as a path parameter in the API, but it is actually used as a query parameter throughout the codebase. This discrepancy could lead to confusion and should be addressed to align with the intended API design.

  • services/rfq/api/rest/handler.go: Documented as a path parameter but used as a query parameter.
  • services/rfq/api/rest/server_test.go: Used as a query parameter in test URL.
Analysis chain

Verify the parameter location for 'originTokenAddr' to ensure it aligns with API design.

Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify the parameter location for 'originTokenAddr' in the Go code.

# Test: Search for the parameter usage in API calls. Expect: Correct location usage.
rg --type go $'originTokenAddr'

Length of output: 1878

},
{
"type": "integer",
"description": "destination chain id to filter quotes by",
"name": "destChainID",
"in": "path",
"required": true
"in": "path"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tip

Codebase Verification

The review comment raised a valid concern regarding the parameter location of 'destChainID' in the API. The investigation into the codebase reveals a discrepancy:

  • The comment in services/rfq/api/rest/handler.go suggests that 'destChainID' should be a path parameter.
  • However, the actual implementation in the same file retrieves 'destChainID' as a query parameter (destChainIDStr := c.Query("destChainId")).

This inconsistency needs to be resolved to ensure clarity and correct API documentation. It is recommended to update either the code or the comment to match the intended usage.

  • File to update: services/rfq/api/rest/handler.go
    • Align the comment with the actual implementation or vice versa, depending on the intended API design.
Analysis chain

Check if 'destChainID' should be a path or query parameter based on its usage in the API.

Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify the parameter location for 'destChainID' in the Go code.

# Test: Search for the parameter usage in API calls. Expect: Correct location usage.
rg --type go $'destChainID'

Length of output: 3347

},
{
"type": "string",
"description": "destination token address to filter quotes by",
"name": "destTokenAddr",
"in": "path",
"required": true
"in": "path"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tip

Codebase Verification

The review comment concerning the parameter location for 'destTokenAddr' in API requests has been investigated. The findings are as follows:

  • The parameter 'destTokenAddr' is used as a query parameter in the API, as evidenced by its retrieval method in handler.go using c.Query("destTokenAddr").
  • However, there is a discrepancy in the documentation and code comments which incorrectly label 'destTokenAddr' as a path parameter.

This inconsistency should be addressed to ensure clarity and correctness in the API documentation and code comments. Here are the specific locations that need attention:

  • services/rfq/api/rest/handler.go: Update the comment to reflect the correct usage as a query parameter.
  • services/rfq/api/docs/docs.go: Correct the documentation to indicate 'destTokenAddr' as a query parameter.
Analysis chain

Confirm the correct parameter location for 'destTokenAddr' in API requests.

Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify the parameter location for 'destTokenAddr' in the Go code.

# Test: Search for the parameter usage in API calls. Expect: Correct location usage.
rg --type go $'destTokenAddr'

Length of output: 2142

@@ -88,7 +83,7 @@
"tags": [
"quotes"
],
"summary": "get quotes from all relayers.",
"summary": "Upsert quote",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Update the summary to accurately reflect the API's functionality.

- "summary": "upsert a quote from relayer."
+ "summary": "Upsert quote"

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
"summary": "Upsert quote",
"summary": "Upsert quote",

Comment on lines +49 to +224
price_usd: 2600
10:
rfq_address: "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E"
synapse_cctp_address: "0x12715a66773BD9C54534a01aBF01d05F6B4Bd35E"
token_messenger_address: "0x2B4069517957735bE00ceE0fadAE88a26365528f"
cctp_start_block: 116855000
l1_fee_chain_id: 1
# Prove + Claim L1 gas estimate
l1_fee_origin_gas_estimate: 20
# Relay L1 gas estimate
l1_fee_dest_gas_estimate: 10
tokens:
USDC:
address: "0x0b2c639c533813f4aa9d7837caf62653d097ff85"
decimals: 6
price_usd: 1.0
min_quote_amount: 10000
rebalance_method: "circlecctp"
maintenance_balance_pct: 20
initial_balance_pct: 34
max_rebalance_amount: 500000
ETH:
address: "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"
decimals: 18
price_usd: 2600

quotable_tokens:
10-0x0b2c639c533813f4aa9d7837caf62653d097ff85:
- "1-0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
1-0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48:
- "10-0x0b2c639c533813f4aa9d7837caf62653d097ff85"
1-0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE:
- "10-0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"
10-0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE:
- "1-0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"

fee_pricer:
gas_price_cache_ttl: 60
token_price_cache_ttl: 60

cctp_relayer_config:
cctp_type: "circle"
circle_api_url: "https://iris-api.circle.com/v1/attestations"
chains:
- chain_id: 1
synapse_cctp_address: "0x12715a66773BD9C54534a01aBF01d05F6B4Bd35E"
token_messenger_address: "0xbd3fa81b58ba92a82136038b25adec7066af3155"
- chain_id: 10
synapse_cctp_address: "0x12715a66773BD9C54534a01aBF01d05F6B4Bd35E"
token_messenger_address: "0x2B4069517957735bE00ceE0fadAE88a26365528f"
base_omnirpc_url: "http://omnirpc"
unbonded_signer:
type: GCP
file: /config/signer.txt
http_backoff_initial_interval_ms: 1000
http_backoff_max_elapsed_time_ms: 300000
```
</details>

<!-- TODO: this should work the same way as the openapi doc gen where its autogenerated from code and amix-in -->

- `submitter_config` - This is covered [here](../../Services/Submitter). At a high level this controls gas parameters used for on-chain transactions.
- `database` - The database settings for the API backend. A database is required to store quotes and other information. Using SQLite with a dsn set to a `/tmp/` directory is recommended for development.
- `type` - the database driver to use, can be `mysql` or `sqlite`.
- `dsn` - the dsn of your database. If using sqlite, this can be a path, if using mysql please see [here](https://dev.mysql.com/doc/connector-odbc/en/connector-odbc-configuration.html) for more information.
- `screener_api_url` (optional) - Please see [here](https://github.com/synapsecns/sanguine/tree/master/contrib/screener-api#screening-api) for an api spec, this is used descision on wether to bridge to given addresses.
- `rfq_url` - URL of the rfq api, please see the [API](../../API#API Urls) page for details and the mainnet/testnet urls.
- `omnirpc_url` - URL of omnirpc to use, Please see [here](../../Services/Omnirpc) for details on running an omnirpc instance.
- `rebalance_interval` - How often to rebalance, formatted as (s = seconds, m = minutes, h = hours)
- `relayer_api_port` - the relayer api is used to control the relayer. <!--TODO: more info here--> This api should be secured/not public.
- `base_chain_config`: Base chain config is the default config applied for each chain if the other chains do not override it. This is covered in the chains section.
- `chains` - each chain has a different config that overrides base_chain_config. Here are the parameters for each chain
- `rfq_address` - the address of the rfq contract on this chain. These addresses are available [here](../Contracts.md).

- `synapse_cctp_address` (optional) - this is only applicable if **rebalance_method** is set to synapse. This is the address of the CCTP contract available [here](../../../../CCTP/Contracts).
- `token_messenger_address` (optional) - this is only applicable if **rebalance_method** is set to cctp. Tells the relayer to use the token messenger instead of synapse.
<aside>
💡 The choice of wether to use synapse cctp or the circle token messenger is up to the user. Synapse will take a fee but unlike the token messenger, will not spend any of the users gas.
</aside>
- `confirmations` - how many confirmations to wait before acting on an event. This will vary per-chain.
- `tokens` - this is a map of token symbol→token info for this chain. For example, token may be USDC, ETH, etc
- `address` - address of the token on this chain id
- `decimals` - number of decimals this token uses. Please verify this against the token contract itself.
- `min_quote_amount` - smallest amount to quote for a given chain. This should be balanced against expected gas spend for a relayer to be profitable. `min_quote_amount` is to be given in decimal units (so 1000.00 is 1000)
- `rebalance_method` - rebalance method for this particular kind of token. Some tokens may not have a rebalance method. This is either cctp or token messenger.
- `maintenance_balance_pct` - percent of liquidity that should be maintained on the given chain for this token. If the balance is under this amount a rebalance is triggered.
- `initial_balance_pct` - percent of liquidity to maintain after a rebalance.
- `min_rebalance_amount` - amount of this token to try to rebalance
- `max_rebalance_amount` - maximum amount of this token to try to rebalance at once
- `quotable_tokens`:
- `quotable_tokens`: - list of [chain-id]_[token_address]: [chain-id]_[token_address]. For example 1-0x00…. could be paired with 10-0x01
```yaml
"1-0x00":
- "1-0x01"
```
- `cctp_relayer_config`: See the [CCTP page](../../CCTP/Relayer)

### Observability

The RFQ relayer implements open telemetry for both tracing and metrics. Please see the [Observability](../../Observability) page for more info.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tip

Codebase Verification

The results from the executed scripts provide us with the following insights:

  1. URL Checks:

    • Most URLs are functional with HTTP status 200, indicating they are accessible.
    • The URL for the Golang installation guide (https://golang.org/doc/install) redirects (HTTP status 301), which is generally acceptable as it still leads to the correct resource.
    • The URL https://iris-api.circle.com/v1/attestations returned a 404 status, indicating that the resource is not found. This needs attention as it suggests that the provided link in the documentation is incorrect or the resource is no longer available at that location.
  2. YAML Syntax Validation:

    • The script intended to validate the YAML syntax did not execute as expected because the yq command was not found on the system where the script ran. This means we do not have validation results for the YAML configuration examples provided in the documentation.

Given these findings, the next steps are:

  • The incorrect URL (https://iris-api.circle.com/v1/attestations) should be corrected or updated in the documentation.
  • Since the YAML syntax validation could not be completed due to a technical limitation (missing yq command), it would be prudent to either retry this validation with a different approach or request a manual verification for the YAML configurations.

Here is the final response based on the verification results:


Attention Required: Issues Found in Documentation

  1. Non-functional URL: The link to the Circle API for attestations (https://iris-api.circle.com/v1/attestations) is not functional (HTTP status 404). Please update or correct this URL in the documentation.
  2. YAML Syntax Validation: The YAML syntax validation could not be completed due to a missing command (yq) in the environment. It is recommended to manually verify the correctness of the YAML configuration examples provided in the documentation or attempt another automated validation method.
Analysis chain

Check the detailed instructions for building, running, and configuring the relayer. Ensure all links are functional and the configuration examples are correct.


The output from the executed script indicates that a manual inspection is required for the links and configuration examples in the Markdown file. However, as an AI, I can't perform manual checks directly. Instead, I can generate scripts to verify the functionality of the links and the correctness of the configuration examples programmatically.

To proceed, I will:

  1. Check the functionality of the links by attempting to resolve them.
  2. Validate the syntax of the YAML configuration examples provided in the document.

Let's start with these tasks.

Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify the functionality of links and correctness of configuration examples in the Markdown file.

# Test: Check links and configuration syntax. Expect: All links functional and configurations correct.
echo "Manual inspection required for links and configuration examples."

Length of output: 138



Script:

#!/bin/bash
# Check if the URLs are reachable

# List of URLs to check
urls=(
    "https://golang.org/doc/install"
    "https://github.com/synapsecns/sanguine"
    "https://github.com/synapsecns/sanguine/pkgs/container/sanguine%2Frfq-relayer"
    "https://dev.mysql.com/doc/connector-odbc/en/connector-odbc-configuration.html"
    "https://github.com/synapsecns/sanguine/tree/master/contrib/screener-api#screening-api"
    "https://iris-api.circle.com/v1/attestations"
)

# Loop through each URL and check HTTP status code
for url in "${urls[@]}"; do
    echo "Checking URL: $url"
    http_status=$(curl -o /dev/null -s -w "%{http_code}\n" --head "$url")
    echo "HTTP Status: $http_status"
done

# Validate YAML syntax using yq
echo "Validating YAML syntax:"
echo 'submitter_config:
  chains:
    1:
      supports_eip_1559: true
      gas_estimate: 1000000
database:
  type: sqlite
  dsn: /tmp/db
signer:
  type: GCP
  file: /config/signer.txt
screener_api_url: "http://screener-url"
rfq_url: "http://rfq-api"
omnirpc_url: "http://omnirpc"
rebalance_interval: 2m
relayer_api_port: "8081"
base_chain_config:
  confirmations: 0
  origin_gas_estimate: 130_000
  dest_gas_estimate: 110_000
  quote_offset_bps: 2
  native_token: ETH
  quote_pct: 90
  min_gas_token: 1000000000000000000
  fixed_fee_multiplier: 1.25
chains:
  1:
    rfq_address: "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E"
    synapse_cctp_address: "0x12715a66773BD9C54534a01aBF01d05F6B4Bd35E"
    token_messenger_address: "0xbd3fa81b58ba92a82136038b25adec7066af3155"
    cctp_start_block: 19341000
    confirmations: 2
    tokens:
      USDC:
        address: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
        decimals: 6
        price_usd: 1.0
        min_quote_amount: 10000
        rebalance_method: "circlecctp"
        maintenance_balance_pct: 20
        initial_balance_pct: 34
        max_rebalance_amount: 500000
        ETH:
          address: "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"
          decimals: 18
          price_usd: 2600
quotable_tokens:
  10-0x0b2c639c533813f4aa9d7837caf62653d097ff85:
    - "1-0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
  1-0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48:
    - "10-0x0b2c639c533813f4aa9d7837caf62653d097ff85"
  1-0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE:
    - "10-0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"
  10-0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE:
    - "1-0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"
fee_pricer:
  gas_price_cache_ttl: 60
  token_price_cache_ttl: 60
cctp_relayer_config:
  cctp_type: "circle"
  circle_api_url: "https://iris-api.circle.com/v1/attestations"
  chains:
    - chain_id: 1
      synapse_cctp_address: "0x12715a66773BD9C54534a01aBF01d05F6B4Bd35E"
      token_messenger_address: "0xbd3fa81b58ba92a82136038b25adec7066af3155"
    - chain_id: 10
      synapse_cctp_address: "0x12715a66773BD9C54534a01aBF01d05F6B4Bd35E"
      token_messenger_address: "0x2B4069517957735bE00ceE0fadAE88a26365528f"
base_omnirpc_url: "http://omnirpc"
unbonded_signer:
  type: GCP
  file: /config/signer.txt
http_backoff_initial_interval_ms: 1000
http_backoff_max_elapsed_time_ms: 300000' | yq eval

Length of output: 5000

@trajan0x trajan0x mentioned this pull request May 10, 2024
@trajan0x trajan0x closed this May 10, 2024
@trajan0x trajan0x deleted the fix/docs branch May 10, 2024 09:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
go Pull requests that update Go code M-ci Module: CI M-Codeowners size/l
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant