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

[all] Communication #2234

Merged
merged 327 commits into from
Mar 27, 2024
Merged

[all] Communication #2234

merged 327 commits into from
Mar 27, 2024

Conversation

trajan0x
Copy link
Contributor

@trajan0x trajan0x commented Mar 9, 2024

Description

Communication big pr

Summary by CodeRabbit

  • New Features

    • Introduced a comprehensive structure for a committee node, including services like transaction submission, peer management, and event processing.
    • Added a LibP2PManager for enhanced peer-to-peer communication and discovery.
    • Implemented mock contracts and Go bindings for gas oracle functionalities, enabling conversion and estimation of transaction costs across chains.
    • Developed modules for parsing and handling events from contracts, improving interaction with blockchain data.
    • Introduced functionality for handling verification requests, storing interchain transactions, and managing database operations related to synapse requests.
    • Added contract deployment utilities and an experimental FunctionalDeployer for deploying blockchain contracts.
    • Enhanced error and context handling in Ethereum transaction tracing with new parsing capabilities.
  • Bug Fixes

    • N/A
  • Documentation

    • Updated various go.mod files with the latest dependency versions.
    • Added README and detailed comments for new functionalities, especially in Ethereum transaction tracing.
  • Refactor

    • N/A
  • Style

    • N/A
  • Tests

    • Introduced an UnsafeSigner for testing purposes, facilitating the creation of signers with AWS KMS service.
  • Chores

    • Updated Makefile rules for code generation.
    • Improved CI/CD workflow with additional debug steps for release process verification.
  • Revert

    • N/A

trajan0x and others added 30 commits February 16, 2024 01:15
* RM old IInterchainModule, delete Interchain.sol code ahead of DB Integration

* rename to InterchainClient

* interchainSend()

* interchainReceive() and corresponding test

* remove forge console.log

* Add interfaces for SynapseModule & InterchainClient
* Implement SynapseModule w/ ECREcover Around InterchainDB contract + TEsts

* fix typo in event name

* Interchain + InterchainDB integration (#2046)

* RM old IInterchainModule, delete Interchain.sol code ahead of DB Integration

* rename to InterchainClient

* interchainSend()

* interchainReceive() and corresponding test

* remove forge console.log

* Add interfaces for SynapseModule & InterchainClient

* add keccak'd datahash to event emit

* change variable name

* Fix event variabl ename
* Scaffold ThresholdECDSA library

* Start working on the tests

* Add some revert tests

* Start working on verify hash tests

* More tests

* More revert tests

* Implement `verifySignedHash`

* Chore: test cleanup
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.

Review Status

Actionable comments generated: 3

Configuration used: .coderabbit.yaml

Commits Files that changed from the base of the PR and between 9816040 and 7affb68.
Files selected for processing (1)
  • .github/workflows/go.yml (1 hunks)

.github/workflows/go.yml Outdated Show resolved Hide resolved
.github/workflows/go.yml Outdated Show resolved Hide resolved
.github/workflows/go.yml Outdated Show resolved Hide resolved
aureliusbtc and others added 2 commits March 21, 2024 18:59
* re-deploy testnet contracts

* Lower GasOracle's gasPrice to 0.001 and 0.002 Gwei for OP Sepolia and ETH Sepolia

---------

Co-authored-by: ChiTimesChi <88190723+ChiTimesChi@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.

Review Status

Actionable comments generated: 0

Configuration used: .coderabbit.yaml

Commits Files that changed from the base of the PR and between 7affb68 and 611ac45.
Files selected for processing (1)
  • .github/workflows/go.yml (1 hunks)
Files skipped from review as they are similar to previous changes (1)
  • .github/workflows/go.yml

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.

Review Status

Actionable comments generated: 0

Configuration used: .coderabbit.yaml

Commits Files that changed from the base of the PR and between 611ac45 and ba2ffa7.
Files selected for processing (2)
  • .github/workflows/go.yml (1 hunks)
  • .github/workflows/goreleaser-actions.yml (1 hunks)
Files skipped from review as they are similar to previous changes (1)
  • .github/workflows/go.yml
Additional comments: 1
.github/workflows/goreleaser-actions.yml (1)
  • 179-183: Adding debug steps like debug and debug2 can be helpful for troubleshooting, but consider the following:
  • Ensure these steps are necessary for the main branch or production workflows. If they are primarily for debugging during development, you might want to conditionally include them or remove them before merging to main.
  • Document the purpose of these debug steps in the workflow file to make their intent clear to other developers.

trajan0x and others added 5 commits March 27, 2024 14:37
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@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.

Review Status

Actionable comments generated: 0

Configuration used: .coderabbit.yaml

Commits Files that changed from the base of the PR and between ba2ffa7 and 23a0eb3.
Files selected for processing (1)
  • ethergo/parser/tracely/README.md (1 hunks)
Additional comments: 1
ethergo/parser/tracely/README.md (1)
  • 1-3: The introduction of Tracely in the README is clear and concise, effectively outlining its origin, purpose, and future plans. It's good to see the correction of the previously identified typo, enhancing the document's readability and accuracy.

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.

Review Status

Actionable comments generated: 0

Configuration used: .coderabbit.yaml

Commits Files that changed from the base of the PR and between 23a0eb3 and 34b4810.
Files selected for processing (9)
  • .golangci.yml (2 hunks)
  • ethergo/backends/base/base.go (4 hunks)
  • ethergo/backends/base/trace.go (1 hunks)
  • ethergo/deployer/functional.go (1 hunks)
  • ethergo/parser/tracely/README.md (1 hunks)
  • ethergo/signer/signer/awssigner/signer.go (2 hunks)
  • ethergo/signer/signer/awssigner/unsafe.go (1 hunks)
  • ethergo/signer/signer/gcpsigner/google.go (6 hunks)
  • ethergo/signer/signer/suite_test.go (1 hunks)
Files skipped from review as they are similar to previous changes (4)
  • ethergo/backends/base/base.go
  • ethergo/backends/base/trace.go
  • ethergo/deployer/functional.go
  • ethergo/signer/signer/awssigner/unsafe.go
Additional comments: 9
ethergo/parser/tracely/README.md (1)
  • 1-4: The README provides a clear overview of the Tracely tool, its current enhancements, and future intentions. The previously noted typo has been corrected.
ethergo/signer/signer/awssigner/signer.go (2)
  • 16-16: The NewKmsSigner function is well-implemented, correctly initializing the KMS signer with the provided AWS configuration.
  • 53-104: The enhancements to the Signer struct, including the implementation of libp2p.PrivKey and the addition of new methods, are well-executed. Ensure that the handling of context in the Sign method is revisited for better context propagation.
.golangci.yml (2)
  • 8-8: Excluding tracely/* from linting is a reasonable decision, likely to avoid linting issues in forked or external code.
  • 104-104: Disabling the typecheck linter due to malfunctions with embedded structs is understandable. Consider revisiting this decision in future to check if newer versions of the linter address this issue.
ethergo/signer/signer/suite_test.go (2)
  • 43-61: The test suite setup is comprehensive, covering AWS, GCP, and local signer configurations, ensuring thorough testing across different environments.
  • 63-89: The NewSignerFromMockKMS function is correctly marked as unsafe for production use, which is good practice. Ensure this function is strictly used in test environments to avoid security risks.
ethergo/signer/signer/gcpsigner/google.go (2)
  • 5-19: > 📝 NOTE

This review was outside the diff hunks and was mapped to the diff hunk with the greatest overlap. Original lines [8-34]

The structural changes, including the addition of the pubKeyData field in the managedKey struct, and the new imports for cryptographic operations are well-integrated and necessary for the enhancements being introduced.

  • 212-251: The new methods added to the managedKey struct for key comparison, raw key retrieval, key type retrieval, signing, and public key retrieval are well-implemented. Consider adding documentation for these methods, especially for unconventional implementations like the PrivKey method, to clarify their purpose and usage.

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.

Review Status

Actionable comments generated: 0

Configuration used: .coderabbit.yaml

Commits Files that changed from the base of the PR and between 34b4810 and 7347f47.
Files selected for processing (4)
  • .github/workflows/go.yml (3 hunks)
  • .github/workflows/solidity.yml (4 hunks)
  • committee/testutil/deployers.go (1 hunks)
  • ethergo/listener/listener.go (1 hunks)
Files skipped from review as they are similar to previous changes (2)
  • .github/workflows/go.yml
  • committee/testutil/deployers.go
Additional comments: 4
ethergo/listener/listener.go (1)
  • 188-189: The error handling here uses both errors.Is and a string comparison with err.Error(). While this approach might be necessary in some cases, relying on string comparison for error handling can be fragile and error-prone due to potential changes in error messages. If possible, consider defining custom error types or using sentinel errors for more robust and maintainable error handling.
.github/workflows/solidity.yml (3)
  • 9-9: Adding 'packages/contracts-communication' to the list of paths that trigger the workflow is a good practice. It ensures that any changes to the contracts-communication package will trigger the appropriate CI/CD actions, maintaining the integrity and reliability of the codebase.
  • 42-42: Including contracts-communication in the job configuration for secrets and paths is crucial for ensuring that the CI/CD pipeline correctly handles this package. This addition helps maintain consistency and ensures that all necessary steps are taken for the contracts-communication package during the CI/CD process.
  • 171-173: The note about concurrency needing to be 1 due to potential "text file busy" errors when multiple instances of forge try to install the same version of solc simultaneously is important. This limitation should be documented clearly in the workflow file or an associated README to ensure that future modifications to the workflow take this constraint into account. Consider exploring ways to mitigate this limitation to improve the efficiency of the CI/CD pipeline.

@trajan0x trajan0x merged commit ca1ec3a into master Mar 27, 2024
98 of 99 checks passed
@trajan0x trajan0x deleted the feat/communication branch March 27, 2024 20:01
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 size/l
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants