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

FE Release 2024-06-13 #2680

Merged
merged 43 commits into from
Jun 13, 2024
Merged

FE Release 2024-06-13 #2680

merged 43 commits into from
Jun 13, 2024

Conversation

bigboydiamonds
Copy link
Collaborator

@bigboydiamonds bigboydiamonds commented Jun 7, 2024

Summary by CodeRabbit

  • Chores

    • Updated .gitignore to exclude __debug_bin directories.
    • Updated Node.js version to v18.18.0 in .nvmrc.
    • Updated various dependencies in multiple go.mod files.
  • Documentation

    • Restructured repository directory layout in README.md for better clarity and organization.
  • New Features

    • Added new script "build:slither" in docs/bridge/package.json.
    • Introduced functional options for chainListener in ethergo/listener.
  • Bug Fixes

    • Updated conditional statements in GitHub workflows to streamline package handling.
  • Refactor

    • Simplified GitHub workflows by removing redundant package references and conditions.

c7be6f5b604519834488b3c8e96b5e9c6043cddc: docs preview link
c7be6f5b604519834488b3c8e96b5e9c6043cddc: synapse-interface preview link
3a61c464983147015accd21c900713abd49de185: docs preview link
3a61c464983147015accd21c900713abd49de185: synapse-interface preview link
a84aca6d9fcd66e6cd31ba5edb6ee0c71c68d0ec: docs preview link
a84aca6d9fcd66e6cd31ba5edb6ee0c71c68d0ec: synapse-interface preview link
cc424a2e2455bf626f3116ead0fb9d6b7dd691b4: docs preview link
cc424a2e2455bf626f3116ead0fb9d6b7dd691b4: synapse-interface preview link
1178b8c402644234f91b48f7f328f9f50cc2fb31: docs preview link
1178b8c402644234f91b48f7f328f9f50cc2fb31: synapse-interface preview link
93e3f6705dd51bdd11860955d49760867133dd9b: docs preview link
93e3f6705dd51bdd11860955d49760867133dd9b: synapse-interface preview link
541f8d556d520f8a14794b1dcfaa5a43f9ea87dc: docs preview link
541f8d556d520f8a14794b1dcfaa5a43f9ea87dc: synapse-interface preview link
e1fb762cb79bc35702893d6f2f16c5cb7135855d: docs preview link
e1fb762cb79bc35702893d6f2f16c5cb7135855d: synapse-interface preview link
77ded6bba298b465cca9c1d823590cc4b20e4248: docs preview link
77ded6bba298b465cca9c1d823590cc4b20e4248: synapse-interface preview link
cf7b0e8f7f39bfc5a4f23379ffdff27e2cd2148d: docs preview link
cf7b0e8f7f39bfc5a4f23379ffdff27e2cd2148d: synapse-interface preview link

trajan0x and others added 25 commits May 31, 2024 17:33
Co-authored-by: Trajan0x <trajan0x@users.noreply.github.com>
Co-authored-by: Trajan0x <trajan0x@users.noreply.github.com>
Co-authored-by: Trajan0x <trajan0x@users.noreply.github.com>
Co-authored-by: Trajan0x <trajan0x@users.noreply.github.com>
* feat: use per-environment global configs

* fix: globalProperty -> environment

* docs: environment-specific configs
 - contracts-communication@1.7.3
 - FastBridge@0.2.6
 - @synapsecns/solidity-devops@0.4.0
 - @synapsecns/synapse-interface@0.24.2
* fix: allow verifier to be omitted

* fix: don't add `--verify` for chains without a verifier
 - contracts-communication@1.7.4
 - FastBridge@0.2.7
 - @synapsecns/solidity-devops@0.4.1
* Feat: bump MaxResultsPerChain to 10

* [goreleaser]

* Feat: add processDB trace

* [goreleaser]
 - contracts-communication@1.7.5
 - FastBridge@0.2.8
 - @synapsecns/solidity-devops@0.4.2
* Feat: split FixedFeeMultiplier into relay and quote variants

* Fix: tests

* Feat: isRelay -> isQuote

* Feat: default relay mult to quote mult

* Fix: config tests

* [goreleaser]
…martwallet (#2674)

* Upgrade rainbowkit, wagmi, viem

* Bump node required version

* Node

* Update .nvmrc

* Update for bumped versions
 - @synapsecns/synapse-interface@0.25.0
Co-authored-by: Trajan0x <trajan0x@users.noreply.github.com>
Co-authored-by: Trajan0x <trajan0x@users.noreply.github.com>
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: 3

Outside diff range and nitpick comments (4)
ethergo/listener/listener_test.go (1)

43-46: LGTM! The NewChainListener is correctly instantiated with a new block handler. Consider enhancing the block handler with more meaningful logging or operations than just printing the block number.

README.md (3)

Line range hint 24-24: Correct the article usage for "interchain".

- is a interchain messaging protocol
+ is an interchain messaging protocol

Line range hint 92-92: Correct the spelling of "Node.js".

- install nodejs packages
+ install Node.js packages

Line range hint 101-101: Standardize the spelling of "Node.js".

- Install the Correct Version of NodeJS
+ Install the Correct Version of Node.js

- install the correct version of NodeJS.
+ install the correct version of Node.js.

Also applies to: 103-103

Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between b60b380 and 356dfe6.

Files ignored due to path filters (10)
  • agents/go.mod is excluded by !**/*.mod
  • agents/go.sum is excluded by !**/*.sum
  • committee/go.mod is excluded by !**/*.mod
  • committee/go.sum is excluded by !**/*.sum
  • contrib/promexporter/go.mod is excluded by !**/*.mod
  • contrib/promexporter/go.sum is excluded by !**/*.sum
  • ethergo/go.mod is excluded by !**/*.mod
  • ethergo/go.sum is excluded by !**/*.sum
  • go.work is excluded by !**/*.work
  • go.work.sum is excluded by !**/*.sum
Files selected for processing (12)
  • .codecov.yml (1 hunks)
  • .github/workflows/go.yml (1 hunks)
  • .github/workflows/solidity.yml (3 hunks)
  • .nvmrc (1 hunks)
  • README.md (3 hunks)
  • ethergo/listener/listener.go (5 hunks)
  • ethergo/listener/listener_test.go (2 hunks)
  • ethergo/listener/options.go (1 hunks)
  • ethergo/parser/rpc/rpc.go (2 hunks)
  • ethergo/parser/rpc/rpc_test.go (1 hunks)
  • ethergo/submitter/db/txdb/store.go (1 hunks)
  • funding.json (1 hunks)
Files skipped from review due to trivial changes (4)
  • .codecov.yml
  • .github/workflows/solidity.yml
  • .nvmrc
  • funding.json
Additional context used
LanguageTool
README.md

[misspelling] ~24-~24: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’. (EN_A_VS_AN)
Context: ...napse](https://synapseprotocol.com/) is a interchain messaging protocol & bridge ...


[style] ~24-~24: The phrase “a variety of” may be wordy. To make your writing clearer, consider replacing it. (A_VARIETY_OF)
Context: ...oss multiple chains. This repo contains a variety of tools, interfaces and services that for...


[style] ~34-~34: The phrase “a variety of” may be wordy. To make your writing clearer, consider replacing it. (A_VARIETY_OF)
Context: ...fun to work on! ## Projects There are a variety of different packages in this repo, covere...


[uncategorized] ~92-~92: The official spelling of this programming framework is “Node.js”. (NODE_JS)
Context: ...ne the repository, open it, and install nodejs packages with yarn: ```bash git clon...


[uncategorized] ~101-~101: The official spelling of this programming framework is “Node.js”. (NODE_JS)
Context: ...`` ### Install the Correct Version of NodeJS Using nvm, install the correct versi...


[uncategorized] ~103-~103: The official spelling of this programming framework is “Node.js”. (NODE_JS)
Context: ...g nvm, install the correct version of NodeJS. nvm use ### Building the Typ...


[style] ~111-~111: Consider removing “of” to be more concise (ALL_OF_THE)
Context: ...lding the TypeScript packages To build all of the TypeScript packages, run:...


[uncategorized] ~132-~132: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ch strategy for development: - master: This is the primary development branch ...


[style] ~132-~132: In American English, abbreviations like “etc.” require a period. (ETC_PERIOD)
Context: ...pull requests (new features, bug fixes, etc) should be opened against this branch. ...


[uncategorized] ~134-~134: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...eature) for more details. - fe-release: This branch is used for production fron...


[style] ~137-~137: To form a complete sentence, be sure to include a subject. (MISSING_IT_THERE)
Context: ...d-update) for more details. > master should never be behind fe-release! The only ...


[typographical] ~149-~149: It appears that a comma is missing. (DURING_THAT_TIME_COMMA)
Context: ... 1: Implementing a New Feature In this scenario you are implementing a new feature that...


[style] ~189-~189: Consider using a different verb for a more formal wording. (FIX_RESOLVE)
Context: ...lly. If any of the checks fail, you can fix the issues in your feature branch and p...


[typographical] ~194-~194: It appears that a comma is missing. (DURING_THAT_TIME_COMMA)
Context: ...: Releasing a Front-end Update In this scenario you are releasing a front-end update us...


[uncategorized] ~242-~242: Use a comma before ‘or’ if it connects two independent clauses (unless they are closely connected and short). (COMMA_COMPOUND_SENTENCE)
Context: ..., you might want to merge the PR as soon or before it passes all checks. However, *...


[style] ~271-~271: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...the docs or both. Maybe a symlink? --> In order to minimize risks coming from extraneous d...

Markdownlint
README.md

16-16: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


22-22: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


23-23: Expected: 1; Actual: 3 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


100-100: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


28-28: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines


105-105: null (MD040, fenced-code-language)
Fenced code blocks should have a language specified

Additional comments not posted (9)
ethergo/listener/options.go (2)

14-19: LGTM! The implementation of WithNewBlockHandler adheres to the functional options pattern.


21-26: LGTM! The implementation of WithPollInterval correctly applies the functional options pattern.

ethergo/parser/rpc/rpc_test.go (1)

15-20: LGTM! The TestIsNullResponse function correctly tests both null and non-null scenarios.

ethergo/parser/rpc/rpc.go (2)

88-96: LGTM! The IsNullResponse function correctly identifies null responses in JSON-RPC.


98-102: LGTM! The rpcResponse struct is well-defined for handling JSON-RPC responses.

ethergo/listener/listener.go (3)

47-50: Added new fields pollIntervalSetting and newBlockHandler to chainListener.

Ensure that these fields are properly initialized and used where necessary. The addition of these fields should be reflected in the unit tests to verify their behavior.


60-75: Refactored NewChainListener to accept functional options.

This change enhances the flexibility of the chainListener initialization. Ensure that all invocations of this function across the codebase are updated to use the new options pattern.


Line range hint 112-152: Updated doPoll method to utilize pollIntervalSetting and handle newBlockHandler.

This update integrates the new fields effectively. Ensure that the error handling and backoff logic are thoroughly tested, especially the new block handling logic.

ethergo/submitter/db/txdb/store.go (1)

70-70: Updated MaxResultsPerChain from 2 to 10.

This change increases the maximum number of transactions returned per chain. Ensure that this change does not adversely affect performance and that it is consistent with the intended usage patterns.

@@ -523,18 +523,18 @@ jobs:
# Foundry is required for flattening
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
if: ${{ contains(matrix.package, 'agents') || contains(matrix.package, 'services/rfq') || contains(matrix.package, 'sin-executor') || contains(matrix.package, 'committee') }}
if: ${{ contains(matrix.package, 'agents') || contains(matrix.package, 'services/rfq')
Copy link
Contributor

Choose a reason for hiding this comment

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

Ensure the conditional statement is syntactically correct.

The conditional statement is missing a closing parenthesis. This will cause a syntax error when the workflow runs. Here's the corrected version:

- if: ${{ contains(matrix.package, 'agents') || contains(matrix.package, 'services/rfq')
+ if: ${{ contains(matrix.package, 'agents') || contains(matrix.ackage, 'services/rfq') }}

Committable suggestion was skipped due to low confidence.

with:
version: nightly

- name: Install Node Dependencies
run: yarn install --immutable
if: ${{ contains(matrix.package, 'agents') || contains(matrix.package, 'services/rfq') || contains(matrix.package, 'sin-executor') || contains(matrix.package, 'committee') }}
if: ${{ contains(matrix.package, 'agents') || contains(matrix.package, 'services/rfq')
Copy link
Contributor

Choose a reason for hiding this comment

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

Ensure the conditional statement is syntactically correct.

Similar to the previous comment, this conditional statement is also missing a closing parenthesis. Here's the corrected version:

- if: ${{ contains(matrix.package, 'agents') || contains(matrix.package, 'services/rfq')
+ if: ${{ contains(matrix.package, 'agents') || contains(matrix.package, 'services/rfq') }}
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
if: ${{ contains(matrix.package, 'agents') || contains(matrix.package, 'services/rfq')
if: ${{ contains(matrix.package, 'agents') || contains(matrix.package, 'services/rfq') }}


# Generate flattened files
- name: Run flattener
run: npx lerna exec npm run build:go
if: ${{ contains(matrix.package, 'agents') || contains(matrix.package, 'services/rfq') || contains(matrix.package, 'sin-executor') || contains(matrix.package, 'committee') }}
if: ${{ contains(matrix.package, 'agents') || contains(matrix.package, 'services/rfq')
Copy link
Contributor

Choose a reason for hiding this comment

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

Ensure the conditional statement is syntactically correct.

This is another instance where the conditional statement is missing a closing parenthesis. Here's the corrected version:

- if: ${{ contains(matrix.package, 'agents') || contains(matrix.package, 'services/rfq')
+ if: ${{ contains(matrix.package, 'agents') || contains(matrix.package, 'services/rfq') }}
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
if: ${{ contains(matrix.package, 'agents') || contains(matrix.package, 'services/rfq')
if: ${{ contains(matrix.package, 'agents') || contains(matrix.package, 'services/rfq') }}

* fix: add RFQ.ETH and RFQ.USDC into eligible origin sets

* chore: regenerate bridge map
Copy link

cloudflare-workers-and-pages bot commented Jun 7, 2024

Deploying sanguine-fe with  Cloudflare Pages  Cloudflare Pages

Latest commit: 30be8d6
Status: ✅  Deploy successful!
Preview URL: https://ebea1627.sanguine-fe.pages.dev
Branch Preview URL: https://master.sanguine-fe.pages.dev

View logs

ChiTimesChi and others added 3 commits June 7, 2024 18:37
 - @synapsecns/synapse-interface@0.25.1
* Feat: use gauge instead of hist for inventory balance metrics

* Feat: observe latest quote age in rfq api server

* Cleanup: whitespace

* [goreleaser]

* Cleanup: whitespace
* Feat: add MinGasBalance

* Feat: add hasSufficientGas()

* Feat: only call bumpTx() if we have sufficient gas

* Cleanup: add comment

* Feat: compare to tx.Cost() instead of configured min

* Fix: remove unused code
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 (1)
ethergo/submitter/chain_queue.go (1)

Line range hint 163-163: Replace magic number with a named constant.

The use of the magic number '2' in wg.Add(2) should be replaced with a named constant to improve code readability and maintainability. This makes it clear what the '2' represents and makes the code easier to understand at a glance.

- wg.Add(2)
+ const numGoroutines = 2
+ wg.Add(numGoroutines)
Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 356dfe6 and 8430f37.

Files selected for processing (1)
  • ethergo/submitter/chain_queue.go (2 hunks)
Additional context used
golangci-lint
ethergo/submitter/chain_queue.go

163-163: Magic number: 2, in detected (mnd)

Additional comments not posted (1)
ethergo/submitter/chain_queue.go (1)

Line range hint 87-107: Enhanced gas balance check before transaction bumping.

The addition of a gas balance check before processing transactions is a prudent enhancement. It prevents unnecessary transaction submissions when the balance is insufficient, thus saving resources and potential transaction fees. Ensure that the gasBalance and transaction cost comparison logic is thoroughly tested to handle edge cases.

trajan0x and others added 3 commits June 8, 2024 15:08
Co-authored-by: Trajan0x <trajan0x@users.noreply.github.com>
Co-authored-by: Trajan0x <trajan0x@users.noreply.github.com>
 - @synapsecns/bridge-docs@0.1.1
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: 1

Outside diff range and nitpick comments (1)
README.md (1)

Line range hint 24-24: Correct language and markdown issues.

- [Synapse](https://synapseprotocol.com/) is a interchain messaging protocol & bridge ...
+ [Synapse](https://synapseprotocol.com/) is an interchain messaging protocol & bridge ...

- There are a variety of different packages in this repo, covered comprehensively ...
+ There are several different packages in this repo, covered comprehensively ...

- To build all of the [TypeScript packages](./packages), run:
+ To build all the [TypeScript packages](./packages), run:

- `master`: This is the primary development branch ...
+ `master`: This branch is the primary development branch ...

- `fe-release`: This branch is used for production front-end releases ...
+ `fe-release`: This branch is used for production front-end releases ...

- `master` should never be behind `fe-release`! The only ...
+ It should be noted that `master` should never be behind `fe-release`! The only ...

- In this scenario you are implementing a new feature that ...
+ In this scenario, you are implementing a new feature that ...

- In this scenario you are releasing a front-end update using ...
+ In this scenario, you are releasing a front-end update using ...

- In order to minimize risks coming from extraneous dependencies ...
+ To minimize risks coming from extraneous dependencies ...

- Use a comma before ‘or’ if it connects two independent clauses ...
+ Use a comma before ‘or’ if it connects two independent clauses ...

- Consider a shorter alternative to avoid wordiness ...
+ Consider a shorter alternative to avoid wordiness ...

- Multiple consecutive blank lines
+ Reduce multiple consecutive blank lines to a single blank line.

- Headings should be surrounded by blank lines
+ Add a blank line above and below each heading.

- Fenced code blocks should have a language specified
+ Specify the language for each fenced code block.

Also applies to: 34-34, 88-88, 97-97, 99-99, 107-107, 128-128, 130-130, 133-133, 145-145, 185-185, 190-190, 238-238, 267-267, 16-16, 22-22, 23-23, 96-96, 28-28, 101-101

Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 8430f37 and a9a6f84.

Files ignored due to path filters (13)
  • contrib/release-copier-action/go.mod is excluded by !**/*.mod
  • contrib/release-copier-action/go.sum is excluded by !**/*.sum
  • contrib/terraform-provider-helmproxy/go.mod is excluded by !**/*.mod
  • contrib/terraform-provider-helmproxy/go.sum is excluded by !**/*.sum
  • contrib/terraform-provider-iap/assets/img.png is excluded by !**/*.png
  • contrib/terraform-provider-iap/go.mod is excluded by !**/*.mod
  • contrib/terraform-provider-iap/go.sum is excluded by !**/*.sum
  • contrib/terraform-provider-kubeproxy/go.mod is excluded by !**/*.mod
  • contrib/terraform-provider-kubeproxy/go.sum is excluded by !**/*.sum
  • contrib/tfcore/go.mod is excluded by !**/*.mod
  • contrib/tfcore/go.sum is excluded by !**/*.sum
  • go.work is excluded by !**/*.work
  • go.work.sum is excluded by !**/*.sum
Files selected for processing (8)
  • .codecov.yml (2 hunks)
  • .devcontainer/devcontainer.json (1 hunks)
  • .github/workflows/go.yml (1 hunks)
  • .github/workflows/goreleaser-actions.yml (1 hunks)
  • .github/workflows/lint.yml (1 hunks)
  • README.md (2 hunks)
  • docs/bridge/CHANGELOG.md (1 hunks)
  • docs/bridge/package.json (2 hunks)
Files skipped from review due to trivial changes (3)
  • .devcontainer/devcontainer.json
  • .github/workflows/goreleaser-actions.yml
  • docs/bridge/package.json
Files skipped from review as they are similar to previous changes (2)
  • .codecov.yml
  • .github/workflows/go.yml
Additional context used
LanguageTool
docs/bridge/CHANGELOG.md

[uncategorized] ~24-~24: It appears that a hyphen is missing (if ‘auto’ is not used in the context of ‘cars’). (AUTO_HYPHEN)
Context: ...c4d0e36fd)) ### Features * docs: auto deploy vercel to prod (only vercel) ([#2627](h...

README.md

[misspelling] ~24-~24: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’. (EN_A_VS_AN)
Context: ...napse](https://synapseprotocol.com/) is a interchain messaging protocol & bridge ...


[style] ~24-~24: The phrase “a variety of” may be wordy. To make your writing clearer, consider replacing it. (A_VARIETY_OF)
Context: ...oss multiple chains. This repo contains a variety of tools, interfaces and services that for...


[style] ~34-~34: The phrase “a variety of” may be wordy. To make your writing clearer, consider replacing it. (A_VARIETY_OF)
Context: ...fun to work on! ## Projects There are a variety of different packages in this repo, covere...


[uncategorized] ~88-~88: The official spelling of this programming framework is “Node.js”. (NODE_JS)
Context: ...ne the repository, open it, and install nodejs packages with yarn: ```bash git clon...


[uncategorized] ~97-~97: The official spelling of this programming framework is “Node.js”. (NODE_JS)
Context: ...`` ### Install the Correct Version of NodeJS Using nvm, install the correct versi...


[uncategorized] ~99-~99: The official spelling of this programming framework is “Node.js”. (NODE_JS)
Context: ...g nvm, install the correct version of NodeJS. nvm use ### Building the Typ...


[style] ~107-~107: Consider removing “of” to be more concise (ALL_OF_THE)
Context: ...lding the TypeScript packages To build all of the TypeScript packages, run:...


[uncategorized] ~128-~128: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ch strategy for development: - master: This is the primary development branch ...


[style] ~128-~128: In American English, abbreviations like “etc.” require a period. (ETC_PERIOD)
Context: ...pull requests (new features, bug fixes, etc) should be opened against this branch. ...


[uncategorized] ~130-~130: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...eature) for more details. - fe-release: This branch is used for production fron...


[style] ~133-~133: To form a complete sentence, be sure to include a subject. (MISSING_IT_THERE)
Context: ...d-update) for more details. > master should never be behind fe-release! The only ...


[typographical] ~145-~145: It appears that a comma is missing. (DURING_THAT_TIME_COMMA)
Context: ... 1: Implementing a New Feature In this scenario you are implementing a new feature that...


[style] ~185-~185: Consider using a different verb for a more formal wording. (FIX_RESOLVE)
Context: ...lly. If any of the checks fail, you can fix the issues in your feature branch and p...


[typographical] ~190-~190: It appears that a comma is missing. (DURING_THAT_TIME_COMMA)
Context: ...: Releasing a Front-end Update In this scenario you are releasing a front-end update us...


[uncategorized] ~238-~238: Use a comma before ‘or’ if it connects two independent clauses (unless they are closely connected and short). (COMMA_COMPOUND_SENTENCE)
Context: ..., you might want to merge the PR as soon or before it passes all checks. However, *...


[style] ~267-~267: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...the docs or both. Maybe a symlink? --> In order to minimize risks coming from extraneous d...

Markdownlint
docs/bridge/CHANGELOG.md

17-17: Expected: h2; Actual: h3 (MD001, heading-increment)
Heading levels should only increment by one level at a time


10-10: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


11-11: Expected: 1; Actual: 3 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


12-12: Expected: 1; Actual: 4 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


13-13: Expected: 1; Actual: 5 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


16-16: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


21-21: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


14-14: null (MD025, single-title, single-h1)
Multiple top-level headings in the same document

README.md

16-16: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


22-22: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


23-23: Expected: 1; Actual: 3 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


96-96: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


28-28: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines


101-101: null (MD040, fenced-code-language)
Fenced code blocks should have a language specified

Additional comments not posted (3)
docs/bridge/CHANGELOG.md (1)

6-9: Version bump correctly documented.

.github/workflows/lint.yml (1)

24-24: Change to ignore_paths correctly focuses linting efforts.

README.md (1)

84-85: Note about Terraform modules is clear and helpful.

Comment on lines +10 to +13




Copy link
Contributor

Choose a reason for hiding this comment

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

Correct markdown formatting issues.

-# 0.1.0 (2024-05-13)
+## 0.1.0 (2024-05-13)

Reduce multiple consecutive blank lines to a single blank line.

Also applies to: 16-16

Committable suggestion was skipped due to low confidence.

Tools
Markdownlint

10-10: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


11-11: Expected: 1; Actual: 3 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


12-12: Expected: 1; Actual: 4 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


13-13: Expected: 1; Actual: 5 (MD012, no-multiple-blanks)
Multiple consecutive blank lines

ChiTimesChi and others added 8 commits June 9, 2024 16:03
* fix: adjust to #2658 breaking changes

* chore: remove scripts for coverage report
 - FastBridge@0.2.9
Co-authored-by: Trajan0x <trajan0x@users.noreply.github.com>
| datasource | package                    | from                               | to                                 |
| ---------- | -------------------------- | ---------------------------------- | ---------------------------------- |
| go         | github.com/gen2brain/beeep | v0.0.0-20220909211152-5a9ec94374f6 | v0.0.0-20240516210008-9c006672e7f4 |

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
| datasource | package                   | from                               | to                                 |
| ---------- | ------------------------- | ---------------------------------- | ---------------------------------- |
| go         | github.com/gocarina/gocsv | v0.0.0-20231116093920-b87c2d0e983a | v0.0.0-20240520201108-78e41c74b4b1 |

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Trajan0x <trajan0x@users.noreply.github.com>
| datasource | package                    | from                               | to                                 |
| ---------- | -------------------------- | ---------------------------------- | ---------------------------------- |
| go         | github.com/vishalkuo/bimap | v0.0.0-20220726225509-e0b4f20de28b | v0.0.0-20230830142743-a9fb9b52066c |

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…7e9 (#2671)

| datasource | package                              | from                               | to                                 |
| ---------- | ------------------------------------ | ---------------------------------- | ---------------------------------- |
| go         | github.com/kendru/darwin/go/depgraph | v0.0.0-20221105232959-877d6a81060c | v0.0.0-20230809052043-4d1c7e9d1767 |

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Trajan0x <trajan0x@users.noreply.github.com>
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: 17

Outside diff range and nitpick comments (12)
ethergo/backends/geth/logger.go (1)

Line range hint 21-34: Incorrect log level mapping for WarnLevel and ErrorLevel.

- return gethLog.LvlDebug
+ return gethLog.LvlWarn

For ErrorLevel, it should be:

- return gethLog.LvlDebug
+ return gethLog.LvlError
ethergo/backends/preset/presets.go (2)

12-20: Consider using a more secure method for handling private keys, such as vaults or encrypted storage.


Line range hint 27-55: Consider parameterizing the chain IDs and RPC URLs to enhance flexibility and configurability.

ethergo/backends/geth/config.go (1)

4-7: Ensure that security settings such as CORS for HTTP and discovery settings for P2P are well-documented to avoid potential security risks.

ethergo/backends/geth/geth.go (2)

232-232: Review the logic for setting GasLimit to half of the genesis block's limit.

The decision to set the GasLimit to half of the genesis block's limit in GetTxContext might need further explanation or documentation to clarify its purpose and ensure it aligns with expected behavior.


302-302: Consistency in handling GasLimit across different contexts.

The method getFaucetTxContext also sets the GasLimit to half of the genesis block's limit. It's important to maintain consistency in how GasLimit is set across different contexts or document the reasons for different treatments.

ethergo/backends/simulated/multibackend/simulated_gen.go (2)

Line range hint 650-672: Ensure consistency in gas price handling.

The method callContract handles gas prices differently based on the block number. This could lead to inconsistencies if not properly managed. Consider refactoring to unify the handling of gas prices to prevent potential bugs.


Line range hint 720-742: Enhance error reporting in SendTransaction.

When sending a transaction fails due to an invalid nonce or other issues, the error messages could be more informative. This would help in diagnosing problems during testing.

if err != nil {
+	log.Error("Failed to fetch parent block", "parentHash", b.pendingBlock.ParentHash(), "error", err)
	return errors.New("could not fetch parent")
}
if err != nil {
+	log.Error("Invalid transaction", "error", err)
	return fmt.Errorf("invalid transaction: %v", err)
}
if tx.Nonce() != nonce {
+	log.Error("Nonce mismatch", "expected", nonce, "actual", tx.Nonce())
	return fmt.Errorf("invalid transaction nonce: got %d, want %d", tx.Nonce(), nonce)
}
agents/agents/executor/executor_test.go (3)

Line range hint 1-100: Consider adding more detailed error messages.

While the error handling in TestVerifyState is generally good, adding more detailed error messages could help in debugging and understanding the context of the error more clearly.

- e.Nil(err)
+ e.Require().Nil(err, "Failed to create new executor: %v", err)

Line range hint 101-200: Simplify the TestMerkleInsert function to improve readability.

The TestMerkleInsert function is quite complex with multiple go routines and deferred functions. Consider breaking it down into smaller, more manageable functions to improve readability and maintainability.

- go func() {
+ func startScribe() error {
+     return scribe.Start(e.GetTestContext())
+ }
+ err := startScribe()
+ e.Nil(err)

Line range hint 201-300: Enhance error handling in TestVerifyMessageMerkleProof.

The error handling in TestVerifyMessageMerkleProof could be more robust. Consider checking for errors immediately after operations that can fail, to ensure that any issues are caught and handled appropriately.

- e.Nil(err)
+ e.Require().Nil(err, "Failed to store message: %v", err)
agents/agents/guard/fraud_test.go (1)

605-605: Consider using a more descriptive variable name for recipientDestination.

The variable name recipientDestination could be more descriptive to indicate its purpose or role more clearly, such as recipientAddressHash.

Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between a9a6f84 and d79b82a.

Files ignored due to path filters (7)
  • agents/go.sum is excluded by !**/*.sum
  • contrib/git-changes-action/go.sum is excluded by !**/*.sum
  • contrib/promexporter/go.sum is excluded by !**/*.sum
  • contrib/screener-api/go.sum is excluded by !**/*.sum
  • core/go.sum is excluded by !**/*.sum
  • ethergo/go.sum is excluded by !**/*.sum
  • go.work.sum is excluded by !**/*.sum
Files selected for processing (34)
  • .gitignore (1 hunks)
  • .golangci.yml (2 hunks)
  • agents/agents/agentsintegration/agentsintegration_test.go (1 hunks)
  • agents/agents/executor/executor_test.go (1 hunks)
  • agents/agents/guard/fraud_test.go (1 hunks)
  • agents/go.mod (13 hunks)
  • agents/testutil/simulated_backends_suite.go (1 hunks)
  • contrib/git-changes-action/go.mod (2 hunks)
  • contrib/promexporter/go.mod (4 hunks)
  • contrib/screener-api/go.mod (7 hunks)
  • core/go.mod (5 hunks)
  • ethergo/backends/anvil/anvil.go (2 hunks)
  • ethergo/backends/base/base.go (2 hunks)
  • ethergo/backends/geth/config.go (3 hunks)
  • ethergo/backends/geth/geth.go (8 hunks)
  • ethergo/backends/geth/geth_test.go (1 hunks)
  • ethergo/backends/geth/logger.go (4 hunks)
  • ethergo/backends/preset/presets.go (4 hunks)
  • ethergo/backends/simulated/multibackend/chainid.go (2 hunks)
  • ethergo/backends/simulated/multibackend/simulated_gen.go (14 hunks)
  • ethergo/backends/simulated/multibackend/simulated_gen_test.go (30 hunks)
  • ethergo/backends/simulated/simulated.go (3 hunks)
  • ethergo/chain/chain_test.go (1 hunks)
  • ethergo/chain/client/client_test.go (3 hunks)
  • ethergo/chain/client/config.go (2 hunks)
  • ethergo/chain/client/config_test.go (2 hunks)
  • ethergo/chain/client/lifecycle_test.go (1 hunks)
  • ethergo/chain/gas/londinium/gasprice.go (2 hunks)
  • ethergo/chain/gas/londinium/gasprice_test.go (3 hunks)
  • ethergo/chain/gas/london/oracle_backend.go (2 hunks)
  • ethergo/go.mod (6 hunks)
  • ethergo/submitter/submitter_test.go (1 hunks)
  • ethergo/util/converter.go (1 hunks)
  • ethergo/util/converter_test.go (1 hunks)
Files skipped from review due to trivial changes (4)
  • .gitignore
  • .golangci.yml
  • ethergo/chain/client/config.go
  • ethergo/submitter/submitter_test.go
Additional comments not posted (111)
ethergo/chain/chain_test.go (1)

17-17: LGTM! Ensure that preset.GetSepolia() is properly documented and tested since it's critical for setting up the test environment.

ethergo/chain/client/config_test.go (1)

42-42: Good addition to test the signer with the maximum block number. This ensures that the signer behaves correctly under edge conditions.

ethergo/backends/geth/geth_test.go (1)

19-19: Correctly checks the initial block height, which is essential for validating the setup of the new embedded backend.

ethergo/chain/gas/london/oracle_backend.go (2)

9-9: The addition of github.com/ethereum/go-ethereum/consensus/misc/eip4844 is appropriate for the new functionality in GetReceipts.


68-73: The modifications in GetReceipts to handle blob gas prices using eip4844.CalcBlobFee are correctly implemented and enhance the method's functionality.

ethergo/chain/client/client_test.go (2)

4-6: The addition of imports os and time is appropriate for the new functionalities introduced in the test cases.


26-26: The modifications in TestAttemptReconnect to include a new backend setup and test the reconnection logic are correctly implemented and enhance the test's coverage.

contrib/git-changes-action/go.mod (1)

14-27: The updates to the dependencies in go.mod are appropriate and ensure the project uses the latest and most secure versions of the libraries.

Also applies to: 33-79

ethergo/backends/simulated/multibackend/chainid.go (2)

4-5: The addition of the math/big import is necessary for handling big integer operations in the NewConfigWithChainID function.


12-12: The modifications in NewConfigWithChainID to ensure isolated and consistent chain configurations are correctly implemented and enhance the function's robustness.

ethergo/chain/gas/londinium/gasprice_test.go (2)

90-90: Ensure proper error handling in gspec.Commit.


76-76: Ensure proper error handling in gspec.Commit.

ethergo/chain/gas/londinium/gasprice.go (1)

125-125: Ensure proper error handling and synchronization in concurrent operations.

Also applies to: 131-131, 154-154

Verification successful

The getBlockPrices function in ethergo/chain/gas/londinium/gasprice.go includes proper error handling and synchronization mechanisms. The function checks for errors when retrieving the block and handles them using a select statement to send results or handle quit signals. It also uses a select statement at the end to send the final results or handle quit signals.

  • Lines 196-201: Error handling for block == nil.
  • Lines 213-219: Error handling for types.Sender and appending gas prices.
  • Lines 221-224: Synchronization using select statement for final results.
Scripts executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify that error handling and synchronization are properly implemented in concurrent operations within `getBlockPrices`.

# Test: Search for error handling and synchronization in `getBlockPrices` implementation.
ast-grep --lang go --pattern $'func ($_ *Oracle) getBlockPrices($_, $_, $_, $_, $_, $_) {
  $$$
  if $_ {
    $$$
  }
  $$$
}'

Length of output: 2459

ethergo/backends/simulated/simulated.go (1)

55-55: Ensure the signer is correctly derived from the latest block.

Verification successful

The usage of types.MakeSigner in ethergo/backends/simulated/simulated.go at line 55 is confirmed to derive the signer from the latest block's number and time. This ensures that the signer is correctly derived from the latest block.

  • ethergo/backends/simulated/simulated.go:55: return types.MakeSigner(s.chainConfig, latestBlock.Number(), latestBlock.Time())
Scripts executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify that the signer is correctly derived from the latest block in the `Signer` method.

# Test: Search for the implementation of `Signer` to ensure it uses the latest block information correctly.
ast-grep --lang go --pattern $'func ($_ *Backend) Signer($_) $_ {
  $$$
  $_ = $_.BlockByNumber($_, $_)
  $$$
}'

Length of output: 113



Script:

#!/bin/bash
# Description: Search for the implementation of the `Signer` method in the codebase.

# Find the file containing the `Signer` method.
rg 'func (\w+) Signer' --no-heading --line-number

# Once found, display the implementation of the `Signer` method.
# Assuming the method is found in `ethergo/backends/simulated/simulated.go`, extract the method implementation.
rg -A 20 'func (\w+) Signer' ethergo/backends/simulated/simulated.go

Length of output: 122



Script:

#!/bin/bash
# Description: Search for the usage of `types.MakeSigner` in the codebase to understand its context.

# Find the file containing the usage of `types.MakeSigner`.
rg 'types.MakeSigner' --no-heading --line-number

# Once found, display the surrounding lines to understand its context.
# Assuming the usage is found in `ethergo/backends/simulated/simulated.go`, extract the surrounding lines.
rg -A 20 'types.MakeSigner' ethergo/backends/simulated/simulated.go

Length of output: 1795

core/go.mod (12)

16-16: Updated github.com/ethereum/go-ethereum to v1.13.8.

Ensure this version is compatible with other dependencies and does not introduce breaking changes.


21-21: Updated github.com/gin-gonic/gin to v1.10.0.

Verify that this version is compatible with the middleware and plugins used in the project.


22-22: Updated github.com/go-git/go-git/v5 to v5.12.0.

Check for any deprecated functions or major changes that could affect the project's Git operations.


25-25: Updated github.com/google/uuid to v1.6.0.

Ensure that this update does not affect the generation or handling of UUIDs in the project.


35-35: Updated github.com/prometheus/client_golang to v1.19.1.

Confirm that the metrics collected by Prometheus are still accurate and meet the project's monitoring requirements.


38-38: Updated github.com/stretchr/testify to v1.9.0.

Check that all existing tests pass with this new version, and utilize any new features or fixes that it provides.


45-45: Updated go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp to v0.45.0.

Ensure that the telemetry data is still being accurately reported and that there are no disruptions in the observability features.


47-47: Updated go.opentelemetry.io/otel and related packages to v1.27.0.

Verify the integration of these updates with the existing telemetry setup and check for any required changes in the configuration.


52-52: Updated go.opentelemetry.io/otel/exporters/prometheus to v0.49.0.

Confirm compatibility with the Prometheus server version used and ensure that all metrics are being exported correctly.


53-56: Updated various go.opentelemetry.io/otel packages to v1.27.0.

Double-check the telemetry configurations and ensure that all telemetry data is consistent and accurate.


58-60: Updated golang.org/x/sync to v0.7.0 and gorm.io/gorm to v1.25.10.

Ensure that these updates do not introduce any concurrency issues or changes in database interactions that could affect application stability.


61-61: Updated k8s.io/apimachinery to v0.26.2.

Check for any changes in the Kubernetes API interactions that might affect the project's deployment or runtime behavior.

contrib/screener-api/go.mod (7)

14-14: Updated github.com/gin-gonic/gin to v1.10.0.

Ensure compatibility with existing middleware and check for any deprecated features.


16-16: Updated github.com/gocarina/gocsv to a new version.

Verify that CSV parsing and generation are functioning correctly with the new library version.


20-20: Updated github.com/stretchr/testify to v1.9.0.

Ensure that all unit tests are passing and consider using any new assertions or utilities provided by this version.


26-26: Updated go.opentelemetry.io/otel to v1.27.0.

Check for any required changes in telemetry configuration and ensure that telemetry data is accurate.


27-27: Updated go.opentelemetry.io/otel/trace to v1.27.0.

Confirm that trace data is being collected properly and integrates well with the overall tracing strategy.


28-28: Updated golang.org/x/exp to a new version.

Test experimental features carefully to ensure they do not negatively impact the stability of the application.


30-32: Updated gorm.io drivers for MySQL and SQLite.

Check for any changes in database behavior, especially in terms of performance and compatibility with existing schemas.

ethergo/backends/base/base.go (2)

8-8: Imported github.com/synapsecns/sanguine/core and github.com/synapsecns/sanguine/ethergo/signer/wallet.

Ensure that these imports are used appropriately in the file and check for any namespace conflicts or issues.


206-210: Added detailed error logging for transaction failures.

Verify that the error messages provide enough information for debugging and do not expose sensitive information.

ethergo/backends/geth/geth.go (1)

46-46: Ensure the default address is intentional.

contrib/promexporter/go.mod (21)

23-23: Updated github.com/ethereum/go-ethereum to v1.13.8.

Ensure compatibility with this version in your project.


24-24: Updated github.com/gin-gonic/gin to v1.10.0.

Verify that no breaking changes affect your project's use of Gin.


30-30: Updated github.com/stretchr/testify to v1.9.0.

This is typically a safe update, primarily affecting testing frameworks.


36-38: Updated go.opentelemetry.io/otel packages to v1.27.0.

Check for any deprecated methods or major changes in the OpenTelemetry specification that could impact your telemetry setup.


46-47: Updated github.com/ClickHouse/ch-go to v0.61.5 and github.com/ClickHouse/clickhouse-go/v2 to v2.23.2.

Ensure that these updates are compatible with your current database schemas and queries.


61-61: Updated github.com/brianvoe/gofakeit/v6 to v6.27.0.

This update should be reviewed for any changes in the data generation patterns that might affect your tests or data mocks.


67-68: Updated github.com/bytedance/sonic to v1.11.6 and github.com/bytedance/sonic/loader to v0.1.1.

Confirm that the JSON processing improvements in these versions are compatible with your application's performance and functionality requirements.


73-75: Updated github.com/cloudflare/circl to v1.3.7, github.com/cloudflare/base64x to v0.1.4, and github.com/cloudflare/iasm to v0.2.0.

These updates involve cryptographic functions and optimizations. Ensure they are tested thoroughly to maintain security standards.


84-85: Updated github.com/crate-crypto/go-ipa to v0.0.0-20231025140028-3c0104f4b233 and github.com/crate-crypto/go-kzg-4844 to v0.7.0.

These are significant cryptographic library updates. Verify their integration and test for any potential security implications.


99-99: Updated github.com/gballet/go-verkle to v0.1.1-0.20231031103413-a67434b50f46.

This is a specialized cryptographic library. Ensure that the update does not introduce any regressions or compatibility issues with existing cryptographic procedures.


109-109: Updated github.com/go-git/go-git/v5 to v5.12.0.

This update should be checked for any changes in Git operations that might affect your project's version control integrations.


116-116: Updated github.com/go-playground/validator/v10 to v10.20.0.

Ensure that all data validation rules are still correctly enforced after this update.


124-124: Updated github.com/google/uuid to v1.6.0.

Typically a straightforward update, but verify that UUID generation and handling are still functioning as expected.


147-147: Updated github.com/klauspost/compress to v1.17.8.

Check for any changes in compression algorithms that might affect data storage or transmission efficiency.


172-175: Updated various Prometheus client libraries.

These updates are crucial for monitoring and should be tested to ensure metrics are being collected and reported accurately.


184-184: Updated github.com/sergi/go-diff to v1.3.2-0.20230802210424-5b0b94c5c0d3.

Ensure that the diff operations are still performing correctly, especially in environments where text comparisons are critical.


187-187: Updated github.com/shopspring/decimal to v1.4.0.

Decimal handling is critical in financial applications. Test thoroughly to avoid rounding errors or precision issues.


199-199: Updated various OpenTelemetry and related libraries.

These updates are important for tracing and logging. Verify that all telemetry data is accurate and useful for debugging.


208-211: Updated various OpenTelemetry instrumentation libraries.

It's essential to ensure that these updates do not disrupt the instrumentation of your web services and that telemetry data remains reliable.


217-219: Updated OpenTelemetry SDK and related metrics libraries to v1.27.0.

Confirm that the SDK updates integrate smoothly with your telemetry stack and that all metrics are being captured as expected.


223-229: Updated various golang.org/x libraries.

These updates often include security patches and performance improvements. Ensure they are compatible with your Go environment.

ethergo/backends/anvil/anvil.go (2)

13-16: Added imports for github.com/ipfs/go-log, github.com/lmittmann/w3/w3types, and github.com/ory/dockertest/v3.

Ensure these libraries are used appropriately in the file and check for any licensing issues.


290-294: Updated the Signer method to dynamically determine the signer based on the latest block.

This change should improve the accuracy of transaction signing in dynamic network conditions. Ensure it is thoroughly tested, especially in edge cases where block information might be delayed or incorrect.

ethergo/go.mod (11)

23-23: Updated dependency github.com/ethereum/go-ethereum to v1.13.8.

Ensure compatibility with this version as it might include breaking changes or new features that affect your project.


26-26: Updated dependency github.com/google/uuid to v1.6.0.

Verify that all uses of UUIDs in the project are compatible with any new changes from this library update.


45-45: Updated dependency github.com/prometheus/client_golang to v1.19.1.

Check for any deprecated metrics collection features or changes in the Prometheus client that might affect monitoring setups.


48-48: Updated dependency github.com/sirupsen/logrus to v1.9.3.

Ensure that logging configurations and custom log hooks, if any, are still functioning as expected with this new version.


49-49: Updated dependency github.com/stretchr/testify to v1.9.0.

This is commonly used for testing; make sure that all existing tests pass with the new version without modifications.


55-58: Updated go.opentelemetry.io/otel packages to v1.27.0.

This update could impact telemetry data collection and tracing. Verify that telemetry and tracing are working as expected after this update.


61-61: Updated dependency golang.org/x/exp to a specific commit.

This points to a specific commit rather than a version. Ensure that this commit is stable and contains the necessary changes for your project.


62-62: Updated dependency golang.org/x/sync to v0.7.0.

Check for any changes in concurrency patterns or bug fixes that might affect your project's performance or correctness.


65-65: Updated dependency google.golang.org/protobuf to v1.34.1.

Ensure that all protobuf definitions and generated code are compatible with this new library version.


69-69: Updated dependency gorm.io/gorm to v1.25.10.

Review any ORM-related code to ensure that changes in GORM do not affect database interactions, especially in production environments.


71-71: Updated dependency k8s.io/apimachinery to v0.26.2.

If your project interacts with Kubernetes APIs, verify that this update does not disrupt any integrations or controllers.

agents/agents/agentsintegration/agentsintegration_test.go (1)

220-220: Added a new test scenario involving recipientDestination.

Ensure this new test case adequately covers the expected behavior and interactions in the system. Consider adding assertions to verify the state and outcome of the transaction.

agents/go.mod (9)

23-23: Update to github.com/stretchr/testify v1.9.0 is noted. Verify that all tests pass with the new version.


71-71: Update to github.com/gballet/go-verkle v0.1.1-0.20231031103413-a67434b50f46 is noted. This is a significant update; ensure that Verkle tree functionalities are unaffected.


33-35: Updates to OpenTelemetry libraries are noted. Ensure that telemetry data is being correctly reported and there are no integration issues.

Verification successful

The recent updates to the OpenTelemetry libraries have been integrated into the codebase, as evidenced by the usage and configuration of these libraries in various files. The otel.SetTracerProvider and otel.SetMeterProvider functions are being used to set up the tracer and meter providers, respectively.

Key locations in the codebase where OpenTelemetry is configured:

  • core/metrics/base.go:
    • otel.SetTracerProvider(tracerProvider)
    • otel.SetMeterProvider(b.meter)

These configurations indicate that the OpenTelemetry libraries are correctly set up to handle telemetry data.

Scripts executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify that telemetry data is correctly reported with the updated OpenTelemetry libraries.

# Test: Check for telemetry data reporting in logs. Expect: Correct data reporting.
echo "Checking telemetry data in logs..."
grep 'otel' /var/log/app.log

Length of output: 157



Script:

#!/bin/bash
# Description: Verify the integration of updated OpenTelemetry libraries by checking their usage and configuration in the codebase.

# Search for the usage of OpenTelemetry libraries in the codebase
echo "Searching for OpenTelemetry library usage in the codebase..."
rg 'go.opentelemetry.io/otel' --context 5

# Search for the configuration of OpenTelemetry libraries in the codebase
echo "Searching for OpenTelemetry library configuration in the codebase..."
rg 'otel.SetTracerProvider' --context 5
rg 'otel.SetMeterProvider' --context 5

Length of output: 127232


197-197: Update to github.com/google/uuid v1.6.0 is noted. Check for any issues in UUID generation and usage across the application.

Verification successful

The update to github.com/google/uuid v1.6.0 has been verified, and the usage of UUID generation across the application appears consistent and correct. Here are the specific locations where UUIDs are generated and used:

  • services/rfq/api/client/client.go
    • Line 12: Import statement
    • Line 98: uuid.New().String()
  • services/omnirpc/proxy/forward_test.go
    • Line 10: Import statement
    • Line 90: uuid.New().String()
  • ethergo/submitter/util_test.go
    • Line 17: Import statement
    • Lines 142, 162, 181: uuid.New().String()
  • ethergo/submitter/submitter.go
    • Line 14: Import statement
    • Line 329: uuid.New().String()
  • ethergo/submitter/db_test.go
    • Line 9: Import statement
    • Lines 77, 87, 191: uuid.New().String()
  • ethergo/backends/anvil/anvil.go
    • Line 24: Import statement
    • Lines 86, 214: uuid.New().String()
  • core/ginhelper/server_test.go
    • Line 4: Import statement
    • Line 53: uuid.Parse(res)
  • core/ginhelper/server.go
    • Line 16: Import statement
    • Line 103: uuid.New().String()
  • contrib/screener-api/client/client.go
    • Line 16: Import statement
    • Lines 36, 85: uuid.New().String()

No issues were found with the UUID generation and usage in these files.

Scripts executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify UUID generation and usage with the updated library.

# Test: Search for UUID usage in the codebase. Expect: Consistent and correct UUID generation.
rg --type go $'github.com/google/uuid'

Length of output: 560



Script:

#!/bin/bash
# Description: Extract and review the relevant lines of code where `github.com/google/uuid` is used.

# Extract lines where `github.com/google/uuid` is used in the identified files.
files=(
  "services/rfq/api/client/client.go"
  "services/omnirpc/proxy/forward_test.go"
  "ethergo/submitter/util_test.go"
  "ethergo/submitter/submitter.go"
  "ethergo/submitter/db_test.go"
  "ethergo/backends/anvil/anvil.go"
  "core/ginhelper/server_test.go"
  "core/ginhelper/server.go"
  "contrib/screener-api/client/client.go"
)

for file in "${files[@]}"; do
  echo "File: $file"
  rg --line-number 'uuid' "$file"
  echo
done

Length of output: 3140


177-177: Update to github.com/go-git/go-git/v5 v5.12.0 is noted. Ensure that all Git-related operations within the application are functioning as expected.


41-41: Update to gorm.io/gorm v1.25.10 is noted. Ensure that database interactions are stable and performant with this new version.


184-184: Update to github.com/go-playground/validator/v10 v10.20.0 is noted. Ensure that all data validation across the application adheres to the new library standards.


305-306: Updates to go.opentelemetry.io/otel/sdk and go.opentelemetry.io/otel/sdk/metric to version 1.27.0 are noted. Confirm that SDK metrics are being captured and reported accurately.


13-13: Update to github.com/ethereum/go-ethereum v1.13.8 is noted. Ensure compatibility with existing blockchain interactions.

agents/testutil/simulated_backends_suite.go (1)

Line range hint 1-419: The setup methods and configurations in the rest of the file are well-structured and follow good practices.

The methods are clear and well-documented, providing a robust setup for the simulated backends. The use of filet for temporary directories and the detailed setup for different blockchain environments and agents are particularly noteworthy. Good job maintaining clean and testable code!

Also applies to: 426-1000

ethergo/backends/simulated/multibackend/simulated_gen_test.go (30)

127-127: Good use of t.Parallel() to speed up the testing process by running tests concurrently.


149-149: Using t.Parallel() is appropriate here to allow concurrent execution of tests.


167-167: Correct application of t.Parallel() for concurrent test execution.


211-211: Proper use of t.Parallel() to enhance test execution efficiency.


229-229: Appropriate use of t.Parallel() to enable parallel test execution.


251-251: Effective use of t.Parallel() to allow tests to run concurrently.


287-287: Good practice using t.Parallel() for concurrent test execution.


341-341: Proper use of t.Parallel() to enhance test execution efficiency.


376-376: Correct application of t.Parallel() for concurrent test execution.


431-431: Using t.Parallel() is appropriate here to allow concurrent execution of tests.


551-551: Effective use of t.Parallel() to allow tests to run concurrently.


642-642: Good practice using t.Parallel() for concurrent test execution.


664-664: Proper use of t.Parallel() to enhance test execution efficiency.


711-711: Correct application of t.Parallel() for concurrent test execution.


764-764: Using t.Parallel() is appropriate here to allow concurrent execution of tests.


830-830: Effective use of t.Parallel() to allow tests to run concurrently.


896-896: Good practice using t.Parallel() for concurrent test execution.


931-931: Proper use of t.Parallel() to enhance test execution efficiency.


948-948: Correct application of t.Parallel() for concurrent test execution.


985-985: Using t.Parallel() is appropriate here to allow concurrent execution of tests.


1022-1022: Effective use of t.Parallel() to allow tests to run concurrently.


1064-1064: Good practice using t.Parallel() for concurrent test execution.


1121-1121: Proper use of t.Parallel() to enhance test execution efficiency.


1166-1166: Correct application of t.Parallel() for concurrent test execution.


1262-1262: Using t.Parallel() is appropriate here to allow concurrent execution of tests.


1316-1316: Effective use of t.Parallel() to allow tests to run concurrently.


1390-1390: Good practice using t.Parallel() for concurrent test execution.


1427-1427: Proper use of t.Parallel() to enhance test execution efficiency.


1469-1469: Correct application of t.Parallel() for concurrent test execution.


43-43: Ensure parallel execution of tests does not lead to shared state issues.

Comment on lines +420 to +425
anvilOptsOrigin.SetChainID(uint64(params.SepoliaChainConfig.ChainID.Int64()))
anvilOptsOrigin.SetBlockTime(1 * time.Second)
a.TestBackendOrigin = anvil.NewAnvilBackend(a.GetTestContext(), a.T(), anvilOptsOrigin)
a.TestSuite.DeferAfterTest(a.TestBackendOrigin.(*anvil.Backend).TearDown)
} else {
a.TestBackendOrigin = preset.GetRinkeby().Geth(a.GetTestContext(), a.T())
a.TestBackendOrigin = preset.GetSepolia().Geth(a.GetTestContext(), a.T())
Copy link
Contributor

Choose a reason for hiding this comment

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

Consider refactoring the repeated code for setting up Anvil backends.

The setup code for Anvil backends is repeated multiple times with slight variations. Consider creating a helper function to reduce duplication and improve maintainability. Here's a proposed refactor:

+ func (a *SimulatedBackendsTestSuite) setupAnvilBackend(chainConfig *params.ChainConfig, context context.Context, t *testing.T) backends.SimulatedTestBackend {
+     anvilOpts := anvil.NewAnvilOptionBuilder()
+     anvilOpts.SetChainID(uint64(chainConfig.ChainID.Int64()))
+     anvilOpts.SetBlockTime(1 * time.Second)
+     backend := anvil.NewAnvilBackend(context, t, anvilOpts)
+     a.TestSuite.DeferAfterTest(backend.(*anvil.Backend).TearDown)
+     return backend
+ }

- anvilOptsOrigin := anvil.NewAnvilOptionBuilder()
- anvilOptsOrigin.SetChainID(uint64(params.SepoliaChainConfig.ChainID.Int64()))
- anvilOptsOrigin.SetBlockTime(1 * time.Second)
- a.TestBackendOrigin = anvil.NewAnvilBackend(a.GetTestContext(), a.T(), anvilOptsOrigin)
- a.TestSuite.DeferAfterTest(a.TestBackendOrigin.(*anvil.Backend).TearDown)
+ a.TestBackendOrigin = a.setupAnvilBackend(params.SepoliaChainConfig, a.GetTestContext(), a.T())

This change not only reduces the lines of code but also centralizes the configuration for Anvil backends, making it easier to manage and modify in the future.

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. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
anvilOptsOrigin.SetChainID(uint64(params.SepoliaChainConfig.ChainID.Int64()))
anvilOptsOrigin.SetBlockTime(1 * time.Second)
a.TestBackendOrigin = anvil.NewAnvilBackend(a.GetTestContext(), a.T(), anvilOptsOrigin)
a.TestSuite.DeferAfterTest(a.TestBackendOrigin.(*anvil.Backend).TearDown)
} else {
a.TestBackendOrigin = preset.GetRinkeby().Geth(a.GetTestContext(), a.T())
a.TestBackendOrigin = preset.GetSepolia().Geth(a.GetTestContext(), a.T())
a.TestBackendOrigin = a.setupAnvilBackend(params.SepoliaChainConfig, a.GetTestContext(), a.T())
} else {
a.TestBackendOrigin = preset.GetSepolia().Geth(a.GetTestContext(), a.T())
+ func (a *SimulatedBackendsTestSuite) setupAnvilBackend(chainConfig *params.ChainConfig, context context.Context, t *testing.T) backends.SimulatedTestBackend {
+ anvilOpts := anvil.NewAnvilOptionBuilder()
+ anvilOpts.SetChainID(uint64(chainConfig.ChainID.Int64()))
+ anvilOpts.SetBlockTime(1 * time.Second)
+ backend := anvil.NewAnvilBackend(context, t, anvilOpts)
+ a.TestSuite.DeferAfterTest(backend.(*anvil.Backend).TearDown)
+ return backend
+ }

Comment on lines +17 to +36
callMessage := ethereum.CallMsg{
From: rawMsg.From,
To: transaction.To(),
Gas: transaction.Gas(),
GasPrice: transaction.GasPrice(),
GasFeeCap: transaction.GasTipCap(),
GasTipCap: transaction.GasFeeCap(),
GasFeeCap: transaction.GasFeeCap(),
GasTipCap: transaction.GasTipCap(),
Value: transaction.Value(),
Data: transaction.Data(),
}, nil
}

// gas price will getset to gastipcap + gas fee cap to account for legacy behavior so if
// tip/fee cap are set we need to make sure we nil gas price
if transaction.Type() == types.LegacyTxType {
callMessage.GasTipCap = nil
callMessage.GasFeeCap = nil
} else {
callMessage.GasPrice = nil
}
return &callMessage, nil
Copy link
Contributor

Choose a reason for hiding this comment

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

The modifications to handle EIP-1559 transaction types are correctly implemented. Ensure comprehensive unit tests cover these changes to prevent regressions.

Would you like me to help by adding unit tests for these changes?

@@ -602,7 +602,7 @@ func (g *GuardSuite) TestInvalidReceipt() {
deliveryTip := big.NewInt(int64(gofakeit.Uint32()))
tips := types.NewTips(summitTip, attestationTip, executorTip, deliveryTip)
optimisticSeconds := uint32(1)
recipientDestination := g.TestClientMetadataOnDestination.Address().Hash()
recipientDestination := common.BytesToHash(g.TestClientMetadataOnDestination.Address().Bytes())
Copy link
Contributor

Choose a reason for hiding this comment

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

Ensure proper error handling for blockchain interactions.

In the TestInvalidReceipt function, there are multiple blockchain interactions (SendBaseMessage, SubmitSnapshot, etc.) where errors are checked but not handled properly. It's crucial to handle these errors to avoid incorrect test passes and ensure robustness.

- Nil(g.T(), err)
+ require.Nil(g.T(), err, "Error should be nil during blockchain interaction")
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. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
recipientDestination := common.BytesToHash(g.TestClientMetadataOnDestination.Address().Bytes())
recipientDestination := common.BytesToHash(g.TestClientMetadataOnDestination.Address().Bytes())
require.Nil(g.T(), err, "Error should be nil during blockchain interaction")

Refactor repeated code into helper functions.

The TestUpdateAgentStatusOnRemote function contains repeated logic for submitting snapshots and attestations. Consider refactoring this into helper functions to improve code readability and maintainability.

+ func submitSnapshot(ctx context.Context, snapshot types.Snapshot, signer signer.Signer) error {
+     guardSnapshotSignature, encodedSnapshot, _, err := snapshot.SignSnapshot(ctx, signer)
+     if err != nil {
+         return err
+     }
+     txContextSummit := g.TestBackendSummit.GetTxContext(ctx, g.InboxMetadataOnSummit.OwnerPtr())
+     tx, err := g.SummitDomainClient.Inbox().SubmitSnapshot(txContextSummit.TransactOpts, encodedSnapshot, guardSnapshotSignature)
+     if err != nil {
+         return err
+     }
+     g.TestBackendSummit.WaitForConfirmation(ctx, tx)
+     return nil
+ }

Committable suggestion was skipped due to low confidence.

Comment on lines +96 to +102
// setup the consensus client
simBeacon, err := catalyst.NewSimulatedBeacon(1, embedded.ethBackend)
assert.Nil(t, err)

catalyst.RegisterSimulatedBeaconAPIs(embedded.Node, simBeacon)
embedded.Node.RegisterLifecycle(simBeacon)

Copy link
Contributor

Choose a reason for hiding this comment

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

Consider handling potential errors from NewSimulatedBeacon and RegisterSimulatedBeaconAPIs.

The current implementation does not handle potential errors from catalyst.NewSimulatedBeacon and embedded.Node.RegisterLifecycle. It's crucial to handle these to prevent runtime panics or unintended behavior.

- simBeacon, err := catalyst.NewSimulatedBeacon(1, embedded.ethBackend)
- assert.Nil(t, err)
+ simBeacon, err := catalyst.NewSimulatedBeacon(1, embedded.ethBackend)
+ if err != nil {
+     t.Fatalf("failed to create simulated beacon: %v", err)
+ }

Committable suggestion was skipped due to low confidence.

@@ -140,7 +148,7 @@
if embedded.ethBackend.IsMining() {
cancelMiningCtx()
} else {
_ = embedded.ethBackend.APIBackend.StartMining(0)
_ = embedded.ethBackend.APIBackend.StartMining()
Copy link
Contributor

Choose a reason for hiding this comment

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

Handle potential errors from StartMining in the retry loop.

The retry loop for starting mining does not handle potential errors from StartMining. This could lead to silent failures where the node believes it is mining but isn't.

- _ = embedded.ethBackend.APIBackend.StartMining()
+ if err := embedded.ethBackend.APIBackend.StartMining(); err != nil {
+     logger.Errorf("failed to start mining: %v", err)
+     return
+ }
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. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
_ = embedded.ethBackend.APIBackend.StartMining()
if err := embedded.ethBackend.APIBackend.StartMining(); err != nil {
logger.Errorf("failed to start mining: %v", err)
return
}

Comment on lines +213 to +221
header, err := b.headerByHash(blockHash)
if err != nil {
return nil, err
}

stateDB, err := b.blockchain.StateAt(header.Root)
if err != nil {
return nil, err
}
Copy link
Contributor

Choose a reason for hiding this comment

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

Improve error handling by adding specific error logs.

When fetching the header by hash fails, the method returns the error directly. It would be beneficial to log this error internally for debugging purposes, especially in a simulated environment where tracing issues can be crucial.

if err != nil {
+	log.Error("Failed to fetch header by hash", "hash", blockHash, "error", err)
	return nil, err
}
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. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
header, err := b.headerByHash(blockHash)
if err != nil {
return nil, err
}
stateDB, err := b.blockchain.StateAt(header.Root)
if err != nil {
return nil, err
}
header, err := b.headerByHash(blockHash)
if err != nil {
log.Error("Failed to fetch header by hash", "hash", blockHash, "error", err)
return nil, err
}
stateDB, err := b.blockchain.StateAt(header.Root)
if err != nil {
return nil, err
}

ethergo/util/converter_test.go Show resolved Hide resolved
Comment on lines +851 to +865
return errors.New("could not adjust time on non-empty block")
}
// Get the last block
block := b.blockchain.GetBlockByHash(b.pendingBlock.ParentHash())
if block == nil {
return fmt.Errorf("could not find parent")
return errors.New("could not find parent")
}

blocks, _ := core.GenerateChain(b.config, block, ethash.NewFaker(), b.database, 1, func(number int, block *core.BlockGen) {
block.OffsetTime(int64(adjustment.Seconds()))
})
stateDB, _ := b.blockchain.State()

stateDB, err := b.blockchain.State()
if err != nil {
return err
}
Copy link
Contributor

Choose a reason for hiding this comment

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

Handle errors more gracefully in AdjustTime.

The method AdjustTime could handle errors more gracefully by providing more context in the error messages, especially since adjusting time in a simulated environment is a critical operation for testing time-dependent contracts.

if len(b.pendingBlock.Transactions()) != 0 {
+	log.Error("Attempted to adjust time on a non-empty block")
	return errors.New("could not adjust time on non-empty block")
}
if block == nil {
+	log.Error("Parent block not found", "hash", b.pendingBlock.ParentHash())
	return errors.New("could not find parent")
}
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. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
return errors.New("could not adjust time on non-empty block")
}
// Get the last block
block := b.blockchain.GetBlockByHash(b.pendingBlock.ParentHash())
if block == nil {
return fmt.Errorf("could not find parent")
return errors.New("could not find parent")
}
blocks, _ := core.GenerateChain(b.config, block, ethash.NewFaker(), b.database, 1, func(number int, block *core.BlockGen) {
block.OffsetTime(int64(adjustment.Seconds()))
})
stateDB, _ := b.blockchain.State()
stateDB, err := b.blockchain.State()
if err != nil {
return err
}
if len(b.pendingBlock.Transactions()) != 0 {
log.Error("Attempted to adjust time on a non-empty block")
return errors.New("could not adjust time on non-empty block")
}
// Get the last block
block := b.blockchain.GetBlockByHash(b.pendingBlock.ParentHash())
if block == nil {
log.Error("Parent block not found", "hash", b.pendingBlock.ParentHash())
return errors.New("could not find parent")
}
blocks, _ := core.GenerateChain(b.config, block, ethash.NewFaker(), b.database, 1, func(number int, block *core.BlockGen) {
block.OffsetTime(int64(adjustment.Seconds()))
})
stateDB, err := b.blockchain.State()
if err != nil {
return err
}

Comment on lines +49 to +56

ethConfig.NetworkId = config.ChainID.Uint64()
ethConfig.Genesis = core.DeveloperGenesisBlock(0, 10000000, address)
ethConfig.Genesis = core.DeveloperGenesisBlock(10000000, &address)
ethConfig.Genesis.ExtraData = append([]byte{}, make([]byte, 32)...) // 32 bytes of vanity
ethConfig.Genesis.ExtraData = append(ethConfig.Genesis.ExtraData, address.Bytes()...) // Signer address
ethConfig.Genesis.ExtraData = append(ethConfig.Genesis.ExtraData, make([]byte, 65)...) // 65 bytes of signature
ethConfig.Miner.Recommit = time.Second

Copy link
Contributor

Choose a reason for hiding this comment

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

Consider adding validation for critical configuration parameters such as ChainID to prevent runtime errors and misconfigurations.

Comment on lines +79 to +80
mockPermitter.AssertNumberOfCalls(c.T(), permitReleases.Method, evmClienType.NumMethod()-len(skipMethods))
mockPermitter.AssertNumberOfCalls(c.T(), permitAcquires.Method, evmClienType.NumMethod()-len(skipMethods))
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 is correct. The evmClienType has 0 methods, and skipMethods has 6 elements. This will cause the assertions for permitReleases.Method and permitAcquires.Method to fail because the expected number of calls will be negative.

  • evmClienType has 0 methods.
  • skipMethods has 6 elements.
Analysis chain

Verify the correct number of permit acquisitions and releases.


To verify the correct number of permit acquisitions and releases, we need to check the number of methods in evmClienType and skipMethods.

Scripts executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify that the number of permit acquisitions and releases matches the expected number based on the number of methods.

# Test: Search for the implementation of permit acquisition and release to ensure they are called the expected number of times.
ast-grep --lang go --pattern $'func ($_ *Permitter) $_($_) $_ {
  $$$
}'

Length of output: 838



Script:

#!/bin/bash
# Description: Verify the number of methods in evmClienType and skipMethods.

# Find the definition of evmClienType and count its methods.
ast-grep --lang go --pattern $'type evmClienType struct {
  $$$
}' | grep -oP 'func \(\w+ \*evmClienType\) \w+\(' | wc -l

# Find the definition of skipMethods and count its elements.
ast-grep --lang go --pattern $'var skipMethods = []string{
  $$$
}' | grep -oP '"[^"]+"' | wc -l

Length of output: 224

aureliusbtc and others added 3 commits June 12, 2024 16:30
 - @synapsecns/synapse-interface@0.25.2
@abtestingalpha abtestingalpha changed the title FE Release 06-07-2024 FE Release 06-13-2024 Jun 13, 2024
@abtestingalpha abtestingalpha changed the title FE Release 06-13-2024 FE Release 2024-06-13 Jun 13, 2024
@abtestingalpha abtestingalpha merged commit 1ec6a12 into fe-release Jun 13, 2024
1 check passed
@coderabbitai coderabbitai bot mentioned this pull request Sep 26, 2024
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-docker M-synapse-interface size/l
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants