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

fix: support tracker processing for v2 inbounds #3179

Merged
merged 10 commits into from
Nov 20, 2024

Conversation

lumtis
Copy link
Member

@lumtis lumtis commented Nov 18, 2024

Description

This PR fix the processInboundTracker method to allow observer v2 cctx. (deposit, depositAndCall, call)

Testing

The current state of the ZetaClient is not yet adapted for proper unit test for this part of the code.

The PR add a E2E test to test inbound tracker processing.

Currently we can't tell the ZetaClient to stop observing inbounds (which would prevent testing the trackers)
The following line must be uncommented to prevent observing inbound:

. This method is hacky and not very reliable, in the future we should allow to disable observation directly from ZetaClient logic #3186

Steps:

make start-localnet
  • Wait for localnet to be setup
  • Build zetae2e
make install-zetae2e
  • Run test:
zetae2e run inbound_trackers --config cmd/zetae2e/config/local.yml
e2e          | starting tests
e2e          | ⚙️ setting up TSS address
e2e          | [ERROR]get SOL balance: zrc20 contract is nil
e2e          | ⏳running - test inbound trackers
e2e          | 🏃test v1 eth deposit
e2e          | ⏳ depositing Ethers into ZEVM
e2e          | 🍾v1 eth deposit observed
e2e          | 🏃test v1 erc20 deposit
e2e          | 🍾v1 erc20 deposit observed
e2e          | 🏃test v2 eth deposit
e2e          | 🍾v2 eth deposit observed
e2e          | 🏃test v2 eth eposit and call
e2e          | 🍾v2 eth deposit and call observed
e2e          | 🏃test v2 erc20 deposit
e2e          | 🍾v2 erc20 deposit observed
e2e          | 🏃test v2 erc20 deposit and call
e2e          | 🍾v2 erc20 deposit and call observed
e2e          | 🏃test v2 call
e2e          | 🍾v2 call observed
e2e          | ✅ completed in 1m19.847135292s - test inbound trackers
e2e          | [ERROR]get SOL balance: zrc20 contract is nil
e2e          | tests finished successfully in 1m24.900691792s
e2e          |  ---📈 E2E Test Report ---
Name                Success    Time               Spent
inbound_trackers    ✅          1m24.875042333s    ETH:100000000004033184,ERC20:300000000000000000

Summary by CodeRabbit

Release Notes

  • New Features

    • Added support for whitelisting SPL tokens on Solana.
    • Integrated SPL deposits and withdrawals for improved transaction handling.
    • Introduced support for inbound trackers for v2 CCTX.
    • Enhanced E2E testing with new inbound tracker tests.
  • Bug Fixes

    • Resolved issues with emissions module registration and out-of-gas errors during omnichain calls.
    • Fixed potential panic in Bitcoin inscription parsing.
  • Refactor

    • Improved zetaclient and CLI functionality, including removal of legacy components.
  • Documentation

    • Updated changelog to reflect all new features, fixes, and improvements across versions.

@lumtis lumtis added the V2_TESTS Run make start-v2-test label Nov 18, 2024
Copy link
Contributor

coderabbitai bot commented Nov 18, 2024

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

📝 Walkthrough
📝 Walkthrough

Walkthrough

This pull request introduces multiple enhancements and fixes across various components of the ZetaChain node. Key updates include the ability to whitelist SPL tokens on Solana, improvements to transaction handling, and the introduction of inbound trackers for v2 CCTX. Configuration files have been updated to reflect new contract addresses, and several methods have been added or modified to support these features. The changelog has been comprehensively updated to document these changes, ensuring clarity on the evolution of the codebase.

Changes

File Path Change Summary
changelog.md Updated with new features, tests, refactors, and fixes; includes SPL tokens whitelisting, deposits, and withdrawals.
cmd/zetae2e/config/local.yml Added test_dapp_v2 entries for zevm and evm; updated custody address in evm.
cmd/zetae2e/run.go Enhanced runE2ETest to initialize ZETA transaction server; added new methods for transaction handling.
e2e/e2etests/e2etests.go Added constant TestInboundTrackersName; removed three old test constants.
e2e/e2etests/test_inbound_trackers.go Introduced end-to-end test for inbound tracker functionality, validating deposit transactions.
e2e/runner/zeta.go Added AddInboundTracker method to E2ERunner for processing inbound trackers.
zetaclient/chains/base/observer.go Renamed method Tss to TSS for consistency; updated comments accordingly.
zetaclient/chains/evm/observer/inbound.go Updated ProcessInboundTrackers to include v2 handling; added new method ProcessInboundTrackerV2.
zetaclient/chains/evm/observer/v2_tracker.go Introduced ProcessInboundTrackerV2 method for processing inbound tracker events from gateways.

Possibly related issues

Possibly related PRs

Suggested labels

no-changelog, chain:solana, chain:bitcoin, breaking:proto

Suggested reviewers

  • fbac
  • kingpinXD
  • ws4charlie
  • skosito
  • brewmaster012
  • swift1337

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.

@lumtis lumtis linked an issue Nov 18, 2024 that may be closed by this pull request
Copy link

codecov bot commented Nov 18, 2024

Codecov Report

Attention: Patch coverage is 0% with 88 lines in your changes missing coverage. Please review.

Project coverage is 62.70%. Comparing base (9d299f0) to head (6baa4ae).
Report is 1 commits behind head on develop.

Files with missing lines Patch % Lines
...taclient/chains/evm/observer/v2_inbound_tracker.go 0.00% 55 Missing ⚠️
zetaclient/chains/evm/observer/inbound.go 0.00% 33 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff             @@
##           develop    #3179      +/-   ##
===========================================
- Coverage    62.85%   62.70%   -0.15%     
===========================================
  Files          424      425       +1     
  Lines        30138    30209      +71     
===========================================
  Hits         18942    18942              
- Misses       10358    10429      +71     
  Partials       838      838              
Files with missing lines Coverage Δ
zetaclient/chains/base/observer.go 85.10% <ø> (ø)
zetaclient/chains/evm/observer/inbound.go 34.38% <0.00%> (-0.90%) ⬇️
...taclient/chains/evm/observer/v2_inbound_tracker.go 0.00% <0.00%> (ø)
---- 🚨 Try these New Features:

@lumtis lumtis linked an issue Nov 18, 2024 that may be closed by this pull request
@lumtis lumtis marked this pull request as ready for review November 19, 2024 13:46
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: 7

🧹 Outside diff range and nitpick comments (6)
e2e/e2etests/test_inbound_trackers.go (1)

24-29: Enhance helper function robustness and documentation.

The helper function could be improved for better error handling and test flow control:

-addTrackerAndWaitForCCTX := func(coinType coin.CoinType, txHash string) {
+// addTrackerAndWaitForCCTX adds an inbound tracker and waits for the CCTX to be mined
+// returns the mined CCTX or errors if timeout occurs
+addTrackerAndWaitForCCTX := func(coinType coin.CoinType, txHash string) *crosschaintypes.CrossChainTx {
 	r.AddInboundTracker(coinType, txHash)
 	cctx := utils.WaitCctxMinedByInboundHash(r.Ctx, txHash, r.CctxClient, r.Logger, r.CctxTimeout)
 	require.EqualValues(r, crosschaintypes.CctxStatus_OutboundMined, cctx.CctxStatus.Status)
 	r.Logger.CCTX(*cctx, "cctx")
+	return cctx
 }
e2e/e2etests/e2etests.go (1)

741-746: Consider enhancing the test definition with more details and arguments.

The test definition could benefit from:

  1. A more descriptive test description that explains what aspects of inbound tracker processing are being tested
  2. Common test arguments like amounts, addresses, or other configuration parameters that might be needed for thorough testing

Consider updating the test definition:

 runner.NewE2ETest(
   TestInboundTrackersName,
-  "test processing inbound trackers for observation",
+  "test processing of v2 inbound trackers for deposit, depositAndCall, and call operations",
   []runner.ArgDefinition{
+    {Description: "deposit amount", DefaultValue: "1000000000000000000"},
+    {Description: "gas limit", DefaultValue: "300000"},
   },
   TestInboundTrackers,
 ),
changelog.md (3)

35-35: Expand the v2 inbound tracker changelog entry.

The entry "support inbound trackers for v2 cctx" should be expanded to provide more context about the changes and impact, especially since this is a key feature mentioned in the PR objectives.

Consider expanding it to:

-* [3179](https://github.com/zeta-chain/node/pull/3179) - support inbound trackers for v2 cctx
+* [3179](https://github.com/zeta-chain/node/pull/3179) - support inbound trackers for v2 CCTX, enabling processing of deposit, depositAndCall, and call operations for observer v2

27-34: Add missing PR/issue references.

Some fixes lack corresponding PR/issue references, which makes it harder to track the context and discussions behind these changes.

Add PR/issue references for entries like:

  • "register messages for emissions module to legacy amino codec"
  • "fix potential panic in the Bitcoin inscription parsing"

Line range hint 6-35: Improve changelog structure for better readability.

The changelog structure could be improved to make it easier to scan and understand the changes.

Consider:

  1. Using consistent punctuation at the end of each entry
  2. Grouping related changes together (e.g., all Bitcoin-related fixes)
  3. Adding a brief summary at the start of each version highlighting the major changes
zetaclient/chains/evm/observer/inbound.go (1)

171-173: Enhance error handling to continue processing remaining trackers

Currently, an error with one inbound tracker halts the entire processing loop due to the return statement. This could result in unprocessed trackers if an error occurs. Modify the error handling to log the error and continue processing subsequent trackers to ensure that all trackers are evaluated.

Apply this diff to adjust the error handling logic:

 if err != nil {
-    return errors.Wrapf(err, "error checking and voting for inbound %s chain %d", tx.Hash, ob.Chain().ChainId)
+    ob.Logger().Inbound.Err(err).Msgf("error checking and voting for inbound %s chain %d", tx.Hash, ob.Chain().ChainId)
+    continue
 }
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 9d299f0 and c908bbf.

📒 Files selected for processing (9)
  • changelog.md (2 hunks)
  • cmd/zetae2e/config/local.yml (1 hunks)
  • cmd/zetae2e/run.go (3 hunks)
  • e2e/e2etests/e2etests.go (2 hunks)
  • e2e/e2etests/test_inbound_trackers.go (1 hunks)
  • e2e/runner/zeta.go (2 hunks)
  • zetaclient/chains/base/observer.go (1 hunks)
  • zetaclient/chains/evm/observer/inbound.go (3 hunks)
  • zetaclient/chains/evm/observer/v2_tracker.go (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • zetaclient/chains/base/observer.go
🧰 Additional context used
📓 Path-based instructions (6)
cmd/zetae2e/run.go (1)

Pattern **/*.go: Review the Go code, point out issues relative to principles of clean code, expressiveness, and performance.

e2e/e2etests/e2etests.go (1)

Pattern **/*.go: Review the Go code, point out issues relative to principles of clean code, expressiveness, and performance.

e2e/e2etests/test_inbound_trackers.go (1)

Pattern **/*.go: Review the Go code, point out issues relative to principles of clean code, expressiveness, and performance.

e2e/runner/zeta.go (1)

Pattern **/*.go: Review the Go code, point out issues relative to principles of clean code, expressiveness, and performance.

zetaclient/chains/evm/observer/inbound.go (1)

Pattern **/*.go: Review the Go code, point out issues relative to principles of clean code, expressiveness, and performance.

zetaclient/chains/evm/observer/v2_tracker.go (1)

Pattern **/*.go: Review the Go code, point out issues relative to principles of clean code, expressiveness, and performance.

🔇 Additional comments (7)
e2e/e2etests/test_inbound_trackers.go (3)

1-13: LGTM: Well-structured imports and package declaration.

The imports are properly organized and all are being utilized in the code.


31-87: 🛠️ Refactor suggestion

Refactor test scenarios for better maintainability.

The test scenarios could be improved in several ways:

  1. Use table-driven tests to reduce code duplication
  2. Define constants for magic numbers (e.g., 1e17, 0)
  3. Add more descriptive error messages in assertions

Here's a suggested refactor:

type testCase struct {
    name     string
    coinType coin.CoinType
    amount   *big.Int
    execute  func() string // returns tx hash
}

const (
    defaultAmount = 1e17
    zeroGasLimit = 0
)

func TestInboundTrackers(r *runner.E2ERunner, args []string) {
    require.Len(r, args, 0)

    amount := big.NewInt(defaultAmount)
    cases := []testCase{
        {
            name:     "v1 eth deposit",
            coinType: coin.CoinType_Gas,
            amount:   amount,
            execute: func() string {
                return r.DepositEtherWithAmount(amount).Hex()
            },
        },
        // Add other test cases...
    }

    for _, tc := range cases {
        r.Logger.Printf("🏃test %s", tc.name)
        txHash := tc.execute()
        addTrackerAndWaitForCCTX(tc.coinType, txHash)
        r.Logger.Printf("🍾%s observed", tc.name)
    }
}

This refactor:

  • Reduces code duplication
  • Makes it easier to add new test cases
  • Improves maintainability
  • Makes the test structure more clear

Let's verify the usage of magic numbers in the codebase:


15-23: Improve test setup and documentation reliability.

The current implementation has several concerns:

  1. Referencing specific line numbers in comments is fragile as they can change with code modifications
  2. Requiring source code modification to run tests is a significant code smell
  3. The test setup could be more robust with proper test configuration

Consider these improvements:

  1. Replace the line number reference with a more stable identifier (e.g., function name or unique comment)
  2. Implement a proper test configuration mechanism to disable inbound observation
  3. Add validation to ensure the test environment is properly configured

Let's verify the referenced line and its surrounding context:

cmd/zetae2e/config/local.yml (2)

117-117: ⚠️ Potential issue

Verify custody contract address update

The custody contract address has been updated. This is a critical contract for handling deposits, and we need to ensure this change is intentional and the new contract is properly deployed.


113-113: Verify test_dapp_v2 contract addresses

The addition of test_dapp_v2 contracts aligns with the PR objective to support v2 inbound processing. However, let's verify these addresses are correctly deployed and consistent across environments.

Also applies to: 121-121

✅ Verification successful

Contract addresses appear to be correctly configured

The test_dapp_v2 contract addresses are properly configured and consistent with the codebase:

  • The addresses are referenced in the config files and test data
  • Address 0xBFF76e77D56B3C1202107f059425D56f0AEF87Ed is used in both ZEVM config and test fixtures
  • Address 0xa825eAa55b497AF892faca73a3797046C10B7c23 is properly configured as the EVM test_dapp_v2
  • The config structure is properly defined in e2e/config/config.go with the corresponding yaml tags
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify test_dapp_v2 contract addresses exist and are consistent

# Check if the contracts exist in both networks
echo "Checking ZEVM contract..."
curl -s -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_getCode","params":["0xBFF76e77D56B3C1202107f059425D56f0AEF87Ed", "latest"],"id":1}' http://localhost:9545

echo "Checking EVM contract..."
curl -s -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_getCode","params":["0xa825eAa55b497AF892faca73a3797046C10B7c23", "latest"],"id":1}' http://localhost:8545

Length of output: 576


Script:

#!/bin/bash
# Let's try a different approach to verify the contract addresses

# Search for test_dapp_v2 references in the codebase
echo "Searching for test_dapp_v2 references..."
rg "test_dapp_v2" -A 2 -B 2

# Check if these addresses are used in test files
echo -e "\nChecking test files for contract addresses..."
rg "0xBFF76e77D56B3C1202107f059425D56f0AEF87Ed|0xa825eAa55b497AF892faca73a3797046C10B7c23" -A 2 -B 2

# Look for contract deployment or setup files
echo -e "\nSearching for contract deployment files..."
fd -t f "deploy|setup|init" --exec grep -l "test_dapp_v2"

Length of output: 4603

e2e/runner/zeta.go (2)

18-18: LGTM: Import statement follows Go conventions.

The addition of the coin package import is necessary for the new functionality and follows proper organization.


344-346: Consider making the policy name configurable.

The emergency policy name is hardcoded, which could limit flexibility in testing different scenarios. Consider making this configurable through the E2E runner's configuration.

Let's verify the usage of this emergency policy name across the codebase:

e2e/runner/zeta.go Show resolved Hide resolved
zetaclient/chains/evm/observer/v2_tracker.go Outdated Show resolved Hide resolved
zetaclient/chains/evm/observer/v2_tracker.go Outdated Show resolved Hide resolved
cmd/zetae2e/run.go Outdated Show resolved Hide resolved
cmd/zetae2e/run.go Show resolved Hide resolved
zetaclient/chains/evm/observer/inbound.go Show resolved Hide resolved
zetaclient/chains/evm/observer/inbound.go Outdated Show resolved Hide resolved
@swift1337
Copy link
Contributor

Steps:
Uncomment line mentioned above
Remove TON sidecar URL:
node/cmd/zetae2e/config/local.yml

Line 100 in 453cb41

ton_sidecar_url: "http://localhost:8111"

How is this related to EVM inbounds V2?

@lumtis
Copy link
Member Author

lumtis commented Nov 19, 2024

Steps:
Uncomment line mentioned above
Remove TON sidecar URL:
node/cmd/zetae2e/config/local.yml

Line 100 in 453cb41

ton_sidecar_url: "http://localhost:8111"

How is this related to EVM inbounds V2?

It's failing right now if you try to run make start-localnet with the config containing ton url

zetaclient/chains/evm/observer/inbound.go Outdated Show resolved Hide resolved
zetaclient/chains/evm/observer/v2_tracker.go Outdated Show resolved Hide resolved
Copy link
Contributor

@ws4charlie ws4charlie left a comment

Choose a reason for hiding this comment

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

lgtm

@fbac fbac self-requested a review November 20, 2024 11:41
@lumtis lumtis added this pull request to the merge queue Nov 20, 2024
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Nov 20, 2024
@lumtis lumtis added this pull request to the merge queue Nov 20, 2024
Merged via the queue into develop with commit 85d508a Nov 20, 2024
40 of 41 checks passed
@lumtis lumtis deleted the fix/support-inbound-tracker-v2 branch November 20, 2024 12:28
return errors.Wrapf(err, "error checking and voting for inbound %s chain %d", tx.Hash, ob.Chain().ChainId)
ob.Logger().Inbound.Debug().Err(err).Msg("error getting gateway contract for processing inbound tracker")
}
if err == nil && tx != nil && ethcommon.HexToAddress(tx.To) == gatewayAddr {

Choose a reason for hiding this comment

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

Nit

The tx != nil check should, IMO, be moved up to line 127 where TransactionByHash() is called or removed at all. The reason being, that if tx == nil, the else branch is entered

} else {
// check and vote on inbound tx
switch tracker.CoinType {
case coin.CoinType_Zeta:
_, err = ob.CheckAndVoteInboundTokenZeta(ctx, tx, receipt, true)
case coin.CoinType_ERC20:
_, err = ob.CheckAndVoteInboundTokenERC20(ctx, tx, receipt, true)
case coin.CoinType_Gas:
_, err = ob.CheckAndVoteInboundTokenGas(ctx, tx, receipt, true)
default:
return fmt.Errorf(
"unknown coin type %s for inbound %s chain %d",
tracker.CoinType,
tx.Hash,
ob.Chain().ChainId,
)
}
if err != nil {
return errors.Wrapf(err, "error checking and voting for inbound %s chain %d", tx.Hash, ob.Chain().ChainId)
}
}

which internally also accesses tx. For example, in

Copy link
Member Author

Choose a reason for hiding this comment

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

Makes sense, the idea to touch the other v1 logic as less as possible so not having the check in this workflow

}
msg := ob.newDepositInboundVote(eventDeposit)
_, err = ob.PostVoteInbound(ctx, &msg, zetacore.PostVoteInboundExecutionGasLimit)
return err

Choose a reason for hiding this comment

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

As soon as an event is processed and posted (i.e., lines 48, 65, 82), it returns without processing the remaining receipt.Logs. Given the current implementation of GatewayEVM, it seems not possible to have multiple gateway events within the same tx, so it's not really a big deal.

Maybe consider processing all receipt.Logs?

Copy link
Member Author

Choose a reason for hiding this comment

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

Given the current implementation of GatewayEVM, it seems not possible to have multiple gateway events within the same tx, so it's not really a big deal.

This is the reason yes

return errors.Wrapf(err, "error checking and voting for inbound %s chain %d", tx.Hash, ob.Chain().ChainId)
ob.Logger().Inbound.Debug().Err(err).Msg("error getting gateway contract for processing inbound tracker")
}
if err == nil && tx != nil && ethcommon.HexToAddress(tx.To) == gatewayAddr {

Choose a reason for hiding this comment

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

Only transactions directly calling the gateway contract (i.e., ethcommon.HexToAddress(tx.To) == gatewayAddr) can be successfully processed. But what about transactions where the gateway contract was called by another contract (i.e., tx.To != gatewayAddr)? Is it intentional to exclude such transactions?

Copy link
Member Author

Choose a reason for hiding this comment

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

No good point, we will need this as well

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaking:cli V2_TESTS Run make start-v2-test
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Allow to process inbound trackers for v2 cctx Add E2E test that test the inbound trackers
5 participants