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

store relayer on relay [SLT-182] #3170

Merged
merged 4 commits into from
Sep 26, 2024
Merged

Conversation

parodime
Copy link
Collaborator

@parodime parodime commented Sep 23, 2024

Description

FastBridge contract doesn’t save the Relayer address, who called relay() on the destination chain, which leaves the emitted logs as the only source of truth for this information. This makes the Guard/Relayer implementations a bit more fragile, as opposed to the situation where this information could’ve been read on-chain.

This change could be implemented without any additional gas costs by saving the relevant relayer information instead of a single bool flag in bridgeRelays.

  • Save the block.number, block.timestamp, relayer used for completing the relay()
    • This would allow the Guards and Relayers to read this information and implement custom logic around block confirmations.
    • This could be packed in a single 32 bytes slot to replace bridgeRelays mapping.
  • Expose backwards compatible bridgeRelays(bytes32) view.

NOTE: decided to not build a more integrator-friendly view that returns a struct of bridgeRelayDetails as opposed to default tuple -- this keeps it consistent with our other mappings.

Summary by CodeRabbit

  • New Features

    • Enhanced bridge transaction management with detailed relay information.
    • Introduced a new function to check the relay status of transactions.
    • Added a structure to store detailed relay transaction data, including block number, timestamp, and relayer address.
  • Bug Fixes

    • Improved logic for verifying if a transaction has been relayed, ensuring accurate status checks.

Copy link
Contributor

coderabbitai bot commented Sep 23, 2024

Walkthrough

The FastBridgeV2 contract has been updated to enhance the management of bridge relay transactions. The previous mapping for tracking relayed transactions has been replaced with a new mapping that stores detailed information about each transaction, including block number, timestamp, and relayer address. A new public function has also been added to allow external checks on the relay status of specific transactions.

Changes

File Change Summary
packages/contracts-rfq/contracts/FastBridgeV2.sol Replaced bridgeRelays mapping with bridgeRelayDetails mapping storing BridgeRelay struct; updated relay function to utilize new mapping; added public function bridgeRelays to check relay status.
packages/contracts-rfq/contracts/interfaces/IFastBridgeV2.sol Added bridgeRelays function to interface; defined BridgeRelay struct with blockNumber, blockTimestamp, and relayer fields.
packages/contracts-rfq/test/FastBridgeV2.Dst.t.sol Introduced new error type ZeroAddress; added tests to verify relayer behavior and error handling for zero address.

Possibly related PRs

  • feat(contracts-rfq): relay/prove/claim with different address [SLT-130] #3138: The changes in this PR involve the FastBridgeV2 contract, which is directly related to the modifications made in the main PR regarding the management of bridge relay transactions and the introduction of the bridgeRelays function.
  • prove w/ tx id [SLT-181] #3169: This PR modifies the prove function in the FastBridgeV2 contract, relevant to transaction IDs and the relay process, aligning with the updates in the main PR.
  • reduce solhint warnings on FbV2 #3189: This PR addresses solhint warnings in the FastBridgeV2 contract, including comments related to bridge transaction status, which connects to the changes made in the main PR regarding relay transaction management.

Suggested labels

size/l

Suggested reviewers

  • trajan0x
  • ChiTimesChi

Poem

In the meadow where the bridges flow,
A rabbit hops to see what’s new,
With details clear and status bright,
Relay transactions take their flight.
Hooray for changes, let’s all cheer,
For FastBridgeV2, the path is clear! 🐇✨


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>, please review it.
    • 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 gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @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.
    • @coderabbitai help me debug CodeRabbit configuration file.

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 using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

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.

Copy link

codecov bot commented Sep 23, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 38.41907%. Comparing base (3e75b0d) to head (caa01ec).
Report is 10 commits behind head on master.

Additional details and impacted files
@@                 Coverage Diff                 @@
##              master       #3170         +/-   ##
===================================================
- Coverage   39.46606%   38.41907%   -1.04700%     
===================================================
  Files            479         424         -55     
  Lines          26932       24454       -2478     
  Branches         342         147        -195     
===================================================
- Hits           10629        9395       -1234     
+ Misses         15557       14318       -1239     
+ Partials         746         741          -5     
Flag Coverage Δ
packages 90.56974% <ø> (-0.39294%) ⬇️
promexporter ?
solidity 90.82569% <100.00000%> (-6.09409%) ⬇️

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

cloudflare-workers-and-pages bot commented Sep 23, 2024

Deploying sanguine-fe with  Cloudflare Pages  Cloudflare Pages

Latest commit: caa01ec
Status: ✅  Deploy successful!
Preview URL: https://7bf9c4dd.sanguine-fe.pages.dev
Branch Preview URL: https://feat-fbv2-storerelayeronrela.sanguine-fe.pages.dev

View logs

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: 0

Outside diff range and nitpick comments (2)
packages/contracts-rfq/contracts/interfaces/IFastBridgeV2.sol (1)

28-32: LGTM: New BridgeRelay struct efficiently stores relayer information

The BridgeRelay struct is well-designed and aligns with the PR objectives. It efficiently packs the block number, timestamp, and relayer address into a single 32-byte slot.

Consider adding a brief comment above the struct to explain its purpose, similar to the documentation provided for the bridgeRelays function. For example:

/// @notice Stores information about a bridge relay transaction
struct BridgeRelay {
    uint48 blockNumber;
    uint48 blockTimestamp;
    address relayer;
}
packages/contracts-rfq/contracts/FastBridgeV2.sol (1)

142-148: Ensure safe casting when storing block numbers and timestamps

Casting block.number and block.timestamp to uint48 saves storage space, but please ensure that these values won't exceed uint48 limits in the future. While unlikely, consider documenting the rationale or adding safeguards.

Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between faf9387 and 41b552c.

Files selected for processing (2)
  • packages/contracts-rfq/contracts/FastBridgeV2.sol (3 hunks)
  • packages/contracts-rfq/contracts/interfaces/IFastBridgeV2.sol (1 hunks)
Additional context used
GitHub Check: Slither
packages/contracts-rfq/contracts/FastBridgeV2.sol

[notice] 183-186: Block timestamp
FastBridgeV2.bridgeRelays(bytes32) (contracts/FastBridgeV2.sol#183-186) uses timestamp for comparisons
Dangerous comparisons:
- bridgeRelayDetails[transactionId].blockNumber != 0 (contracts/FastBridgeV2.sol#185)

Additional comments not posted (4)
packages/contracts-rfq/contracts/interfaces/IFastBridgeV2.sol (2)

23-26: LGTM: New bridgeRelays function aligns with PR objectives

The added bridgeRelays function is well-implemented and documented. It provides a backwards-compatible view function as mentioned in the PR objectives, allowing users to check if a specific transaction has been relayed.


23-32: Summary: Changes effectively implement PR objectives

The additions to the IFastBridgeV2 interface successfully implement the PR objectives. The new bridgeRelays function provides a backwards-compatible way to check if a transaction has been relayed, while the BridgeRelay struct efficiently stores relayer information on-chain. These changes will improve the reliability of relayer data and facilitate custom logic related to block confirmations for Guards and Relayers.

packages/contracts-rfq/contracts/FastBridgeV2.sol (2)

38-39: LGTM: Addition of bridgeRelayDetails mapping

The new mapping bridgeRelayDetails correctly introduces storage for relay details on the destination chain.


183-186: LGTM: Backwards-compatible bridgeRelays function

The bridgeRelays function maintains backwards compatibility by providing a boolean relay status. The implementation is correct.

Tools
GitHub Check: Slither

[notice] 183-186: Block timestamp
FastBridgeV2.bridgeRelays(bytes32) (contracts/FastBridgeV2.sol#183-186) uses timestamp for comparisons
Dangerous comparisons:
- bridgeRelayDetails[transactionId].blockNumber != 0 (contracts/FastBridgeV2.sol#185)

@@ -139,8 +139,13 @@ contract FastBridgeV2 is Admin, IFastBridgeV2 {
if (block.timestamp > transaction.deadline) revert DeadlineExceeded();

// mark bridge transaction as relayed
if (bridgeRelays[transactionId]) revert TransactionRelayed();
bridgeRelays[transactionId] = true;
if (bridgeRelayDetails[transactionId].blockNumber != 0) revert TransactionRelayed();
Copy link
Collaborator

Choose a reason for hiding this comment

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

To avoid repetition, let's make bridgeRelays(bytes32) a public view - will make it easier to maintain later on.

@@ -20,4 +20,15 @@ interface IFastBridgeV2 is IFastBridge {
/// @param request The encoded bridge transaction to claim on origin chain
function claim(bytes memory request) external;

/// @notice Checks if a transaction has been relayed
Copy link
Collaborator

Choose a reason for hiding this comment

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

Needs forge fmt + in general we try to define the structs at the top of the contract, prior to the functions. In hindsight, both of these should've been flagged by CI workflows - I will make a ticket to update these with a reasonable settings (e.g. older FastBridge has a ton of linter warnings that might as well be ignored at this point)

packages/contracts-rfq/contracts/FastBridgeV2.sol Outdated Show resolved Hide resolved
packages/contracts-rfq/contracts/FastBridgeV2.sol Outdated Show resolved Hide resolved
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: 0

🧹 Outside diff range and nitpick comments (3)
packages/contracts-rfq/test/FastBridgeV2.Dst.t.sol (1)

118-132: LGTM: New test function correctly verifies block data storage.

The test_relay_eth_withRelayerAddress_checkBlockData function effectively tests the new functionality of storing block number and timestamp during relay operations. It aligns well with the PR objectives.

A minor suggestion for improvement:

Consider adding an assertion to verify the stored relayer address:

 (uint48 recordedBlockNumber, uint48 recordedblockTimestamp,) = fastBridge.bridgeRelayDetails(txId);
 assertEq(recordedBlockNumber, 987_654_321);
 assertEq(recordedblockTimestamp, 123_456_789);
+assertEq(fastBridge.bridgeRelayDetails(txId).relayer, address(relayerA));
 assertEq(address(userB).balance, ethParams.destAmount);

This would ensure that the relayer address is correctly stored along with the block data.

packages/contracts-rfq/contracts/FastBridgeV2.sol (2)

134-146: Enhanced relay function with improved data storage

The updates to the relay function effectively implement the PR objectives:

  1. The zero address check for the relayer improves security.
  2. The relay status check now uses the new bridgeRelayDetails mapping.
  3. Detailed relay information (block number, timestamp, and relayer address) is now stored, enhancing on-chain data accessibility.

These changes align well with the goal of improving reliability and providing more comprehensive information for Guards and Relayers.

Consider using OpenZeppelin's block.timestamp and block.number wrappers for improved readability and gas optimization:

-BridgeRelay({blockNumber: uint48(block.number), blockTimestamp: uint48(block.timestamp), relayer: relayer});
+BridgeRelay({blockNumber: uint48(_blockNumber()), blockTimestamp: uint48(_timestamp()), relayer: relayer});

180-185: Backwards-compatible bridgeRelays function added

The new bridgeRelays function successfully maintains backwards compatibility while leveraging the enhanced data structure. This aligns with the PR objectives and ensures a smooth transition for existing integrations.

Consider using a more gas-efficient approach by directly returning the comparison result:

-function bridgeRelays(bytes32 transactionId) public view returns (bool) {
-    // has this transactionId been relayed?
-    return bridgeRelayDetails[transactionId].relayer != address(0);
-}
+function bridgeRelays(bytes32 transactionId) public view returns (bool) {
+    return bridgeRelayDetails[transactionId].relayer != address(0);
+}

This change eliminates the need for an intermediate boolean variable and reduces gas costs.

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between 41b552c and 3f2f3da.

📒 Files selected for processing (3)
  • packages/contracts-rfq/contracts/FastBridgeV2.sol (3 hunks)
  • packages/contracts-rfq/contracts/interfaces/IFastBridgeV2.sol (1 hunks)
  • packages/contracts-rfq/test/FastBridgeV2.Dst.t.sol (3 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • packages/contracts-rfq/contracts/interfaces/IFastBridgeV2.sol
🔇 Additional comments not posted (5)
packages/contracts-rfq/test/FastBridgeV2.Dst.t.sol (3)

4-4: LGTM: Import statement updated correctly.

The import statement has been appropriately updated to include the ZeroAddress error. This addition aligns with the PR objectives and prepares for its usage in the new tests.


171-174: LGTM: New test function correctly verifies zero address rejection.

The test_relay_withRelayerAddress_revert_zeroAddr function effectively tests that the contract rejects relay attempts with a zero address as the relayer. This is an important edge case to cover and aligns with best practices for input validation.


Line range hint 1-174: Summary: Changes align well with PR objectives and improve test coverage.

The modifications to this test file effectively cover the new functionality described in the PR objectives:

  1. The import statement has been updated to include the new ZeroAddress error.
  2. A new test function verifies the storage of block number and timestamp during relay operations.
  3. Another test function ensures that relaying with a zero address is properly rejected.

These changes provide good coverage for the new features and edge cases related to storing relayer addresses and associated block data. The tests align well with the goal of enhancing the FastBridge contract's functionality and reliability.

packages/contracts-rfq/contracts/FastBridgeV2.sol (2)

38-39: Improved relay details storage

The introduction of bridgeRelayDetails mapping enhances the contract's ability to store comprehensive information about each relay transaction. This change aligns well with the PR objectives and provides better on-chain data accessibility for Guards and Relayers.


134-146: Implemented suggestions and testing reminder

Great job implementing the suggested changes:

  1. The bridgeRelays(bytes32) function is now a public view function.
  2. A check for relayer == address(0) has been added to the relay function.

To ensure the robustness of these changes, please add unit tests covering the following scenarios:

  1. The relayer == address(0) case in the relay function.
  2. The new bridgeRelays(bytes32) function behavior.

You can use the following script to check for existing tests:

#!/bin/bash
# Description: Check for existing tests related to the new changes

# Test: Search for tests related to relay function and bridgeRelays
rg --type solidity -i '(test|it).*(relay|bridgeRelays)' test/

Also applies to: 180-185

Copy link

codecov bot commented Sep 25, 2024

Bundle Report

Changes will increase total bundle size by 251.65kB (0.7%) ⬆️. This is within the configured threshold ✅

Detailed changes
Bundle name Size Change
sdk-router-@synapsecns/sdk-router-cjs 526.74kB 409.5kB (349.29%) ⬆️
synapse-interface-server-cjs 1.47MB 147.19kB (-9.11%) ⬇️
widget-esm-cjs 273.3kB 10.65kB (-3.75%) ⬇️

Copy link
Collaborator

@ChiTimesChi ChiTimesChi left a comment

Choose a reason for hiding this comment

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

LGTM with a minor nit and a merge conflict resolution

bytes32 transactionId = keccak256(request);
BridgeTransaction memory transaction = getBridgeTransaction(request);
if (transaction.destChainId != uint32(block.chainid)) revert ChainIncorrect();

// check haven't exceeded deadline for relay to happen
if (block.timestamp > transaction.deadline) revert DeadlineExceeded();

if (bridgeRelayDetails[transactionId].relayer != address(0)) revert TransactionRelayed();
Copy link
Collaborator

Choose a reason for hiding this comment

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

The idea was to utilise the public view here, so that in the event we want/need to update it, we won't end up with outdated check here

Suggested change
if (bridgeRelayDetails[transactionId].relayer != address(0)) revert TransactionRelayed();
if (bridgeRelays(transactionId)) revert TransactionRelayed();

Copy link

github-actions bot commented Sep 26, 2024

Changes to gas cost

Generated at commit: 7300501bdaf31aa7c69dd85fb32fb14120652a25, compared to commit: fe71628bb25a406afe6b9ac5051231a4b9416865

🧾 Summary (50% most significant diffs)

Contract Method Avg (+/-) %
FastBridgeV2 bridgeRelays
protocolFees
-15 ✅
+22 ❌
-1.15%
+1.21%

Full diff report 👇
Contract Deployment Cost (+/-) Method Min (+/-) % Avg (+/-) % Median (+/-) % Max (+/-) % # Calls (+/-)
FastBridgeV2 2,334,057 (+68,605) GOVERNOR_ROLE
bridgeRelays
chainGasAmount
protocolFees
relay(bytes)
relay(bytes,address)
revokeRole
316 (+22)
541 (+35)
449 (+22)
645 (+22)
28,335 (+64)
90,341 (+306)
26,782 (+22)
+7.48%
+6.92%
+5.15%
+3.53%
+0.23%
+0.34%
+0.08%
316 (+22)
1,291 (-15)
734 (+22)
1,844 (+22)
80,410 (+279)
91,638 (-342)
33,406 (+20)
+7.48%
-1.15%
+3.09%
+1.21%
+0.35%
-0.37%
+0.06%
316 (+22)
541 (+35)
449 (+22)
2,645 (+22)
86,961 (+306)
90,341 (-1,639)
33,404 (+20)
+7.48%
+6.92%
+5.15%
+0.84%
+0.35%
-1.78%
+0.06%
316 (+22)
2,541 (+35)
2,449 (+22)
2,645 (+22)
108,560 (+306)
94,232 (+306)
40,024 (+18)
+7.48%
+1.40%
+0.91%
+0.84%
+0.28%
+0.33%
+0.04%
141 (0)
16 (+1)
14 (0)
3,762 (0)
9 (0)
3 (+1)
8 (0)

abtestingalpha added a commit that referenced this pull request Sep 26, 2024
* update bl

* remove global solidity extension settings

* use monorepo support in global workspace only

* - use Solidity extension for formatting *.sol files
- use `forge fmt` as formatter in Solidity extension

* REST API Improvements [SLT-179] (#3133)

* fix swaptxinfo function

* Updates test coverage command

* migrating to using token addresses instead of symbols

* fix linting errors

* fixing swaptxinfocontroller

* new tests and new functionality

---------

Co-authored-by: abtestingalpha <abtestingalpha@gmail.com>

* Publish

 - @synapsecns/rest-api@1.0.75
 - @synapsecns/synapse-interface@0.38.4

* fix harmony proxy (#3149)


Co-authored-by: Trajan0x <trajan0x@users.noreply.github.com>

* merging rfq indexer into monorepo [SLT-164]  [SLT-176] (#3136)

* merging rfq indexer into monorepo

* nuke .env

* fix commands

* fix package name

* test coverage script

* rough pass at docs and some linting and fixes yarn

* Upgrades wagmi & rainbowkit

* indxer

* Adds invisible but used packages

* +recent-invalid-fills [SLT-188]

* Moves wagmi to root

* new endpoints and clean up linting

---------

Co-authored-by: Trajan0x <trajan0x@users.noreply.github.com>
Co-authored-by: abtestingalpha <abtestingalpha@gmail.com>
Co-authored-by: parodime <jordan@protochainresearch.com>

* Publish

 - @synapsecns/synapse-interface@0.38.5
 - @synapsecns/rfq-indexer-api@1.0.2
 - @synapsecns/rfq-indexer@0.0.2

* Adds /destinationTokens route [SLT-204] (#3151)

* Adds /destinationTokens route
* ZeroAddress & NativeGasAddress
* Adds test for native gas tokens
* Checksums incoming token address params

* Publish

 - @synapsecns/rest-api@1.0.76

* boba pause (#3150)

* boba pause

* only boba to txns

* Publish

 - @synapsecns/synapse-interface@0.38.6

* fix(synapse-interface): Reorders validation to check existence first (#3156)

* Reorders validation to check existence first
* Removes duplicates

* Publish

 - @synapsecns/rest-api@1.0.77

* Fix boba pause (#3158)

* Publish

 - @synapsecns/synapse-interface@0.38.7

* update bl

* feat(rest-api): Adds Swagger for api docs [SLT-205] (#3159)

* Adds Swagger for api docs

* Replace prepended verb Get routes with nouns

* Adds dev flag for swagger serverUrl

* Publish

 - @synapsecns/rest-api@1.1.0
 - @synapsecns/synapse-interface@0.38.8
 - @synapsecns/rfq-indexer-api@1.0.3
 - @synapsecns/rfq-indexer@0.0.3

* Pulls version from package json (#3160)

* Publish

 - @synapsecns/rest-api@1.1.1

* Require vs import due to file location (#3161)

* Require vs import due to file location

* Publish

 - @synapsecns/rest-api@1.1.2

* Prevent caching of api docs (#3162)

* Publish

 - @synapsecns/rest-api@1.1.3

* feat(contracts-rfq): relay/prove/claim with different address [SLT-130] (#3138)

* init. solidity ^. FbV2 relay/prove/claim overloads

* +IFastBridgeV2, explicit address0 cast, func scope & inheritdoc fixes

* pragma lock, contract relabel

* feat: start scoping V2 tests

* test: override relayer role scenarios, no longer enforced by V2

* test: finish the parity test

* test: the management methods

* test: dst chain scenarios

* test: bridge

* test: prove

* test: claim

* test: dispute

* test: refund

* test: bridge reverts

* remove redundant extend. rearrange inherit list

* revert 0.8.20 in favor of user (non-ws) setting

---------

Co-authored-by: ChiTimesChi <88190723+ChiTimesChi@users.noreply.github.com>

* Publish

 - FastBridge@0.4.0

* fix(promexporter): make spans better (#3164)

* move the errors

* [goreleaser]

* fix v to w

* changing native token address standard [SLT-210] (#3157)

* changing native token address standard

* fixing tests

* normalizeNativeTokenAddress middleware, additional tests

---------

Co-authored-by: abtestingalpha <abtestingalpha@gmail.com>

* Publish

 - @synapsecns/rest-api@1.1.4

* Refactoring rfq-indexer API and adding swagger docs [SLT-228] (#3167)

* refactoring and adding swagger

* remove testing scripts

* fix typos and consistency with 404 errors

* Publish

 - @synapsecns/rfq-indexer-api@1.0.4

* fix read mes (#3168)

* Publish

 - @synapsecns/contracts-core@1.0.32
 - FastBridge@0.4.1
 - @synapsecns/solidity-devops@0.4.5

* fix(opbot): use submitter get tx status [SLT-158] (#3134)

* use experimental logger to debug

* fix lint

* [goreleaser]

* use submitter instead of client

* [goreleaser]

* [goreleaser]

* fix(synapse-interface): Additional checks on screen [SLT-166] (#3152)

* Additional checks on screen

* Adds checks on chain/token changes

* Publish

 - @synapsecns/synapse-interface@0.38.9

* feat(synapse-interface): confirm new price [SLT-150]  (#3084)

* add bridge quote history middleware

* request user confirm changes when quoted price updates

* add conditions for displaying confirm change state

* track initial quote initializing confirm change state

* specify output delta threshold

* callback functions to handle initialize/accept/reset confirm changes flow

* quote countdown timer animation to signal refresh

* implement automatic refresh intervals

* mouse move to refresh automatic intervals

* add i8n translations for button text

---------

Co-authored-by: abtestingalpha <abtestingalpha@gmail.com>

* Publish

 - @synapsecns/synapse-interface@0.39.0

* fix: formatted bridge fee amount (#3165)

* Publish

 - @synapsecns/rest-api@1.1.5

* fix(contracts-rfq): CI workflows [SLT-245] (#3178)

* fix: license, files

* fix: package name

* build: update solhint to latest

* build: remove prettier dependencies

* fix: solhint workflows

* build: update solhint in other packages as well

* chore: solhint rules, exceptions

* fix: silence linter warnings in tests

* chore: forge fmt

* add variable to test linter CI

* Revert "add variable to test linter CI"

This reverts commit 0629309.

* Publish

 - @synapsecns/contracts-core@1.0.33
 - @synapsecns/contracts-rfq@0.5.0
 - @synapsecns/solidity-devops@0.4.6

* feat(api): bridge limits [SLT-165]  (#3179)

* adds `/bridgeLimits` route, controller

* fetch best sdk quote for min/max origin amounts

* add tests

* implement middleware to normalize addresses

* adds swagger doc

* Publish

 - @synapsecns/rest-api@1.2.0

* fix(contracts-rfq): limit the amount of solhint warnings [SLT-245] (#3182)

* ci: limit the amount of solhint warnings

* refactor: move the errors into the separate interface

* refactor: errors imports in tests

* Publish

 - @synapsecns/contracts-rfq@0.5.1

* ci: Solidity gas diff [SLT-259] (#3181)

* ci: run tests w/o coverage first for better visibility

* test: malform the test to check the adjusted workflow

* Revert "test: malform the test to check the adjusted workflow"

This reverts commit e7db6e1.

* ci: add gas-diff workflow

* try changing the contract to trigger gas diffs

* retrigger the workflow

* ci: provide the correct report path

* ci: run on pull requests only

* ci: save gas reports in monorepo root

* Revert "ci: run on pull requests only"

This reverts commit 0a01d60.

* Revert "try changing the contract to trigger gas diffs"

This reverts commit 91bc03e.

* refactor: wrap if statement

* refactor: exclude `solidity-devops` package in a more generic way

* ci: run tests w/o coverage for `solidity-devops`, add comments

* add generic comment to trigger `solidity-devops` workflows

* Revert "add generic comment to trigger `solidity-devops` workflows"

This reverts commit cc35a43.

* Publish

 - @synapsecns/contracts-rfq@0.5.2

* fix(contracts-core): set very high gas limit for intensive tests [SLT-259] (#3186)

* fix: set very high gas limit for intensive tests

* ci: speed up solidity coverage

* Publish

 - @synapsecns/contracts-core@1.0.34

* feat(rest-api): Adds validateRouteExists validation [SLT-260] (#3180)

* Adds validateRouteExists validation

* Remove timeouts for 400s

* Publish

 - @synapsecns/rest-api@1.3.0

* add duplicate command warning (#3174)

Co-authored-by: Trajan0x <trajan0x@users.noreply.github.com>

* reduce solhint warnings on FbV2 (#3189)

* reduce solhint warnings on FbV2

* fix whitespace

* Publish

 - @synapsecns/contracts-rfq@0.5.3

* ci: solidity gas diff options [SLT-267] (#3193)

* ci: ignore test files in gas diff report

* add some changes to the test files

* ci: define some options for gas-diff

* try changing the contract to trigger gas diffs

* Revert "try changing the contract to trigger gas diffs"

This reverts commit 4504e3c.

* Revert "add some changes to the test files"

This reverts commit 7e7d6cb.

* prove w/ tx id [SLT-181] (#3169)

* prove w/ tx id SLT-181

* +proveOther tests, forge fmt

* fmt

* fmt

* Publish

 - @synapsecns/contracts-rfq@0.5.4

* fix(sdk-router): disable ARB airdrop tests (#3195)

* Publish

 - @synapsecns/rest-api@1.3.1
 - @synapsecns/sdk-router@0.11.2
 - @synapsecns/synapse-interface@0.39.1
 - @synapsecns/widget@0.7.2

* Fixing issue for wallet integration [SLT-270] (#3194)

* slight modification to graphql call

* fixing explorer frontend as well

* Publish

 - @synapsecns/explorer-ui@0.3.3
 - @synapsecns/rest-api@1.3.2

* store relayer on relay [SLT-182] (#3170)

* store relayer on relay [SLT-182]

* +tests, zeroAddr check, fmt

* Publish

 - @synapsecns/contracts-rfq@0.5.5

* Adjust text to trigger build (#3199)

* Publish

 - @synapsecns/synapse-interface@0.39.2

* feat(synapse-interface): refund RFQ transaction [SLT-272] (#3197)

* Txn transaction refund tracking

* Update store to support tracking

* Query FastBridge contract for `bridgeStatuses` to find refund status

* Track bridge transaction `bridgeQuote.routerAddress` in store

* Fetch FastBridge contract address when only provided router address

* add translations

---------

Co-authored-by: aureliusbtc <82057759+aureliusbtc@users.noreply.github.com>
Co-authored-by: ChiTimesChi <88190723+ChiTimesChi@users.noreply.github.com>
Co-authored-by: abtestingalpha <abtestingalpha@gmail.com>
Co-authored-by: Defi-Moses <Defi-Moses@users.noreply.github.com>
Co-authored-by: trajan0x <83933037+trajan0x@users.noreply.github.com>
Co-authored-by: Trajan0x <trajan0x@users.noreply.github.com>
Co-authored-by: parodime <jordan@protochainresearch.com>
Co-authored-by: abtestingalpha <104046418+abtestingalpha@users.noreply.github.com>
Co-authored-by: abtestingalpha <abtestingalpha@users.noreply.github.com>
Co-authored-by: parodime <parodime@users.noreply.github.com>
Co-authored-by: vro <168573323+golangisfun123@users.noreply.github.com>
Co-authored-by: ChiTimesChi <ChiTimesChi@users.noreply.github.com>
Co-authored-by: bigboydiamonds <57741810+bigboydiamonds@users.noreply.github.com>
Co-authored-by: bigboydiamonds <bigboydiamonds@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants