Repository navigation
Conversation
* Sync Safe tx service config with latest SDK * Address PR review feedback * Add differential tests against pinned api-kit * Remove incorrect private flag from package metadata * Use sequential indexing in Safe config fixtures * Keep Safe fixture pairs together with append helpers * Fix multisend config review findings * Add multisend differential test against deployments
feat: simulation when broadcast not specified
Upstream 34a5fbf replaced the per-instance `urls` and `multiSendCallOnly` mappings with pure functions driven by safe-core-sdk's network list, so the chain entries added in 7f16d67 no longer had a structure to live in. They are re-expressed here against the new API. Resolved the one conflict in favour of upstream: `initialize` no longer populates any chain maps. Chains now resolved through the third-party override in `getApiKitUrl`, each host confirmed answering 200 on `/api/v1/about/`: 1329 Sei transaction.sei-safe.protofire.io 1868 Soneium transaction-soneium.safe.protofire.io 2288 Moca transaction-mocachain.safe.protofire.io 4114 Citrea transaction.safe.citrea.xyz 25363 Fluent api.safe.global/tx-service/fluent Soneium's host is corrected from `trx-soneium`, which does not resolve. Mantra (5888) is dropped: no reachable transaction service on any candidate hostname. Monad, 0G and Plasma needed no entry — they arrive from upstream's SDK sync. MultiSend: Sei and Soneium are in safe-deployments and join the differential test. Moca, Citrea and Fluent are absent from it, so their v1.4.1 canonical was confirmed by `eth_getCode` and is pinned in a dedicated test instead. Citrea is why this cannot default to the v1.3.0 canonical — only v1.4.1 exists there.
Khrafts
force-pushed
the
feat/sync-upstream-chains
branch
from
August 14, 2026 08:29
99c7f2b to
870c672
Compare
Member
Author
|
Split into two stacked PRs so the upstream sync and our own changes review separately:
Same end state: #5's tree is identical to this branch's HEAD. Closing in favour of those. |
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.
Syncs the fork with
Recon-Fuzz/safe-utils(we were 1 ahead, 3 behind) and re-expresses our chain support against the new API.This is a port, not a merge
Upstream
34a5fbfremoved the per-instanceurlsandmultiSendCallOnlymappings and replaced them with pure functions driven by safe-core-sdk's network list.7f16d67wrote to fields that no longer exist, so the one conflict resolved in upstream's favour and its chains were rebuilt against the new API.Chains
Resolved through the third-party override in
getApiKitUrl, each host confirmed200on/api/v1/about/:transaction.sei-safe.protofire.iotransaction-soneium.safe.protofire.iotransaction-mocachain.safe.protofire.iotransaction.safe.citrea.xyzapi.safe.global/tx-service/fluenttrx-soneium, which does not resolve.getNetworkShortNameslug — adding a slug not in the SDK would failSafeDifferentialTest.MultiSend
Sei and Soneium are in safe-deployments, so they join
SUPPORTED_THIRD_PARTY_CHAIN_IDSand are covered by the differential test.Moca, Citrea and Fluent have no safe-deployments record. Their v1.4.1 canonical was confirmed by
eth_getCodeagainst each chain's public RPC and is pinned in a dedicated test instead. The FFI helper was deliberately not taught to author those addresses — that would assert only that two hand-edited files agree, while reading green.Citrea is why this cannot default to the v1.3.0 canonical:
0x40A2…is not deployed there, only v1.4.10x9641….Verification
forge test— 29/29 pass. Consuming repo (evm-m-suite-deployment) builds clean against this branch with no call-site changes;initialize,proposeTransaction(s),getNonceandsignall kept their signatures.Note
PR #2 should be closed rather than merged: its diff targets the removed mappings, and its Citrea entry maps to the v1.3.0 canonical that is not deployed on that chain — batched proposals would have built cleanly and failed at execution. Its reachable chains are all included here.
Rise (4153), Nexus (3946) and Mantra (5888) remain unsupported — tracked separately.