Repository navigation
feat(contracts): sync NiriumVault source and add a verified build workflow - #64
Conversation
…kflow Brings nirium-soroban-contracts in line with the source the team works on: nirium_vault.rs, its tests and protocol/src/lib.rs were behind (the three files are now byte-identical to the private repo). soroban-sdk stays at 29.0.1: built and tested on 8 Nov 2026 with stellar CLI 27.1.0, 31 tests pass and the WASM builds; with 22.0.0 the test build no longer compiles against current dependencies. Adds .github/workflows/release-nirium-vault.yml (SEP-0055): on a nirium-vault-v* tag, stellar-expert/soroban-build-workflow, pinned to the reviewed commit of v25.1.0, builds nirium-contracts from the tagged commit, stamps source_repo and home_domain=nirium.xyz, publishes a release with the WASM, attests it and registers it with stellar.expert. The tag prefix avoids release.yml, which runs on every v* tag. The live testnet contract (CARTJI...5SICV, WASM 24596149...) was not built this way, so it cannot be verified after the fact. The plan is to deploy the release WASM as a new testnet contract; the current one holds 0 vaults. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
M0nsxx
left a comment
There was a problem hiding this comment.
Reviewed. The three contract files are byte-identical to the private source (same blob hashes), soroban-sdk stays at 29.0.1, and the new workflow only runs on nirium-vault-v* tags, so the desktop release isn't triggered. The build workflow is pinned to a reviewed commit of stellar-expert/soroban-build-workflow v25.1.0. LGTM once the contracts job passes.
M0nsxx
left a comment
There was a problem hiding this comment.
Reviewed #64. The three contract files are byte-identical to the source in the private repo (same blob hashes: nirium_vault.rs 00df2181, vault_tests.rs b3530792, protocol/lib.rs ec1a538e). The build workflow is pinned to stellar-expert/soroban-build-workflow e43b241f, which is the real v25.1.0 tag, and uses the nirium-vault-v* tag prefix so it doesn't collide with release.yml. Approving.
Two things, so the NiriumVault contract can be verified on stellar.expert.
1. Contract source in sync.
nirium_vault.rs,vault_tests.rsandprotocol/src/lib.rswere behind the source the team works on. They are now byte-identical to it (same git blob hashes).soroban-sdkstays at 29.0.1: built and tested on 8 Nov 2026 with stellar CLI 27.1.0, 31 tests pass and the WASM builds. With 22.0.0 the test build no longer compiles against current dependencies.2. Verified build workflow (
.github/workflows/release-nirium-vault.yml, SEP-0055). On anirium-vault-v*tag it callsstellar-expert/soroban-build-workflow, pinned to the commit of v25.1.0 (e43b241f, reviewed on 8 Nov 2026). That workflow:nirium-contractsfrom the tagged commit;source_repo=github:nirium-protocol/nirium-coreandhome_domain=nirium.xyz;The tag prefix is not
v*on purpose:release.yml(desktop app) runs on everyv*tag, andvault-v1would match it too.The pin covers
release.ymlonly. The actions it calls (actions/checkout@v4,stellar/stellar-cli@v25.1.0,actions/attest-build-provenance@v1) resolve their own tags at run time.Why a new deployment. The live testnet contract (
CARTJI…5SICV, WASM24596149…) was not built this way, so it can't be verified after the fact. It also has no upgrade function. After this merges, taggingnirium-vault-v0.1.0produces the release WASM, and that exact file gets deployed as a new testnet contract. The current one holds 0 vaults, so nothing moves.🤖 Generated with Claude Code