Skip to content

feat: Support latest Synapse SDK in localnet scenarios#107

Open
galargh wants to merge 2 commits intomainfrom
galargh/latest-synapse-sdk-localnet
Open

feat: Support latest Synapse SDK in localnet scenarios#107
galargh wants to merge 2 commits intomainfrom
galargh/latest-synapse-sdk-localnet

Conversation

@galargh
Copy link
Copy Markdown
Contributor

@galargh galargh commented May 4, 2026

Summary

  • Bump default filecoin-services to v1.2.0 so localnet deploys the FWSS StateView pagination ABI expected by latest synapse-sdk.
  • Pass reusable workflow init_flags through to foc-devnet init, so nightly stability/frontier lanes actually use their configured source revisions.
  • Add a localnet compatibility path for the v1.2.0 PDPVerifier ABI: predeploy FilecoinPayV1 and the four-arg PDPVerifier implementation, then let warm-storage-deploy-all.sh reuse those addresses.

Context

Latest synapse-sdk calls paginated FWSS StateView methods such as getClientDataSets(address,uint256,uint256). The old default filecoin-services commit only exposes getClientDataSets(address), which caused the scenario failure before upload started.

Moving to filecoin-services v1.2.0 exposed a second localnet startup issue: that revision has a PDPVerifier ABI with four constructor args, but warm-storage-deploy-all.sh still deploys PDPVerifier with only the initializer counter. foc-devnet now detects that ABI shape and supplies the missing USDFC/payment constructor dependencies before running the upstream script.

Verification

  • cargo fmt --check
  • cargo test --all-targets --all-features
  • cargo build
  • ./target/debug/foc-devnet version --notty | rg 'filecoin-services|foc-devnet'
  • PR CI passed:
    • lint
    • cargo-test
    • foc-devnet-test / foc-start-test

@FilOzzy FilOzzy added this to FOC May 4, 2026
@github-project-automation github-project-automation Bot moved this to 📌 Triage in FOC May 4, 2026
@BigLep BigLep moved this from 📌 Triage to ⌨️ In Progress in FOC May 4, 2026
@galargh galargh changed the title Support latest Synapse SDK in localnet scenarios feat: Support latest Synapse SDK in localnet scenarios May 4, 2026
@galargh galargh marked this pull request as ready for review May 4, 2026 18:41
@galargh galargh requested a review from BigLep May 4, 2026 18:41
@BigLep BigLep requested a review from rvagg May 4, 2026 21:35
@BigLep BigLep moved this from ⌨️ In Progress to 🔎 Awaiting review in FOC May 4, 2026
@BigLep
Copy link
Copy Markdown
Contributor

BigLep commented May 4, 2026

@galargh : until he says otherwise, I think @rvagg will be a good reviewer for you on work here. Thank you!

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR updates foc-devnet localnet behavior to be compatible with the latest synapse-sdk by aligning the default filecoin-services revision and adding a localnet deployment workaround for the updated PDPVerifier ABI, while also fixing CI to honor caller-provided init flags.

Changes:

  • Bump the default filecoin-services source to v1.2.0 via GitTag.
  • Forward reusable workflow init_flags into foc-devnet init in CI.
  • Add a predeploy path in the FOC deployer flow to satisfy the v1.2.0 PDPVerifier constructor dependency shape before running the upstream deployment script.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

File Description
src/config.rs Switch default filecoin-services location from pinned commit to v1.2.0 tag.
src/commands/start/foc_deployer/mod.rs Add localnet predeploy logic for the updated PDPVerifier ABI dependencies before running the upstream deploy script.
.github/workflows/ci_run.yml Pass inputs.init_flags through to ./foc-devnet init in both cached and non-cached paths.

exit 1
fi
fi

Comment on lines +133 to +137
# filecoin-services v1.2.0 added three PDPVerifier constructor arguments, but
# warm-storage-deploy-all.sh still deploys it with only the initializer version.
# Predeploy the dependencies for that ABI shape and let the upstream script reuse
# the exported addresses.
PDP_CONSTRUCTOR_INPUTS="$(jq '[.[] | select(.type == "constructor") | .inputs[]] | length' abi/PDPVerifier.abi.json)"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: 🔎 Awaiting review

Development

Successfully merging this pull request may close these issues.

4 participants