H-14: allows multiple remote pools per chain - #227
Draft
FelixFan1992 wants to merge 1 commit into
Draft
FelixFan1992 wants to merge 1 commit into
FelixFan1992 wants to merge 1 commit into
Conversation
Contributor
Soroban Contract Test Coverage92.46% line coverage — 19035 / 20588 lines hit
Per-Contract Breakdown
Full file-level coverage report |
Contributor
Integration Test Coverage (excl. Token Pool) |
FelixFan1992
added this pull request to stack #228
September 16, 2026 16:24
FelixFan1992
force-pushed
the
H-14-allows-multiple-remote-pools-per-chain
branch
from
September 16, 2026 16:25
2ea1057 to
06d7e67
Compare
There was a problem hiding this comment.
🟡 Changes recommended
Duplicate initial pools break removal semantics, and stale Go callers no longer compile.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
Adds support for multiple remote token pools per chain across contracts, interfaces, bindings, and tests.
Changes:
- Stores remote pools as address vectors with add/remove APIs.
- Validates inbound sources against all configured pools.
- Updates events, Go bindings, and contract tests.
File summaries
| File | Description |
|---|---|
contracts/pools/siloed-lock-release-pool/src/test.rs |
Tests multiple remote pools. |
contracts/pools/siloed-lock-release-pool/src/lib.rs |
Exposes pool management APIs. |
contracts/pools/lock-release-pool/src/test.rs |
Adapts chain configuration tests. |
contracts/pools/lock-release-pool/src/lib.rs |
Exposes pool management APIs. |
contracts/pools/burn-mint-pool/src/test.rs |
Tests add/remove behavior. |
contracts/pools/burn-mint-pool/src/lib.rs |
Exposes pool management APIs. |
contracts/onramp/src/test.rs |
Adapts pool configuration fixture. |
contracts/common/pool/src/types.rs |
Changes pool storage to vectors. |
contracts/common/pool/src/lib.rs |
Implements membership and mutations. |
contracts/common/pool/src/events.rs |
Adds pool mutation events. |
contracts/common/interfaces/src/token_pool.rs |
Updates shared pool ABI. |
contracts/common/interfaces/src/siloed_lock_release_pool.rs |
Updates siloed-pool ABI. |
contracts/common/interfaces/src/lock_release_pool.rs |
Updates lock-release ABI. |
contracts/common/interfaces/src/burn_mint_pool.rs |
Updates burn-mint ABI. |
bindings/contracts/token_pool/types.go |
Updates shared Go types. |
bindings/contracts/token_pool/client.go |
Adds shared Go client methods. |
bindings/contracts/siloed_lock_release_pool/types.go |
Updates siloed Go types/events. |
bindings/contracts/siloed_lock_release_pool/client.go |
Updates siloed Go client. |
bindings/contracts/lock_release_pool/types.go |
Updates lock-release Go types/events. |
bindings/contracts/lock_release_pool/client.go |
Updates lock-release Go client. |
bindings/contracts/burn_mint_pool/types.go |
Updates burn-mint Go types/events. |
bindings/contracts/burn_mint_pool/client.go |
Updates burn-mint Go client. |
Review details
Files not reviewed (8)
- bindings/contracts/burn_mint_pool/client.go: Generated file
- bindings/contracts/burn_mint_pool/types.go: Generated file
- bindings/contracts/lock_release_pool/client.go: Generated file
- bindings/contracts/lock_release_pool/types.go: Generated file
- bindings/contracts/siloed_lock_release_pool/client.go: Generated file
- bindings/contracts/siloed_lock_release_pool/types.go: Generated file
- bindings/contracts/token_pool/client.go: Generated file
- bindings/contracts/token_pool/types.go: Generated file
- Files reviewed: 14/22 changed files
- Comments generated: 3
- Review effort level: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+294
to
+295
| // GetRemotePools calls the get_remote_pools function on the contract. | ||
| func (c *SiloedLockReleasePoolClient) GetRemotePools(ctx context.Context, remoteChainSelector uint64) ([][]byte, error) { |
| type ChainUpdate struct { | ||
| RemoteChainSelector uint64 | ||
| RemotePoolAddresses []byte | ||
| RemotePoolAddresses [][]byte |
| for update in adds.iter() { | ||
| let config = RemoteChainConfig { | ||
| remote_pool_address: update.remote_pool_addresses.clone(), | ||
| remote_pool_addresses: update.remote_pool_addresses.clone(), |
FelixFan1992
force-pushed
the
H-14-allows-multiple-remote-pools-per-chain
branch
from
September 16, 2026 19:41
06d7e67 to
0fee4dc
Compare
Contributor
|
Code coverage report:
|
Base automatically changed from
C-3-release-or-mint-must-validate-source-pool-addr
to
main
September 17, 2026 01:05
FelixFan1992
force-pushed
the
H-14-allows-multiple-remote-pools-per-chain
branch
from
September 17, 2026 01:05
0fee4dc to
21ac965
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.