Category: ci
Problem
.github/workflows/deploy.yml's deploy-testnet and deploy-mainnet jobs both build and size-check the WASM for every contract (cargo build --target wasm32v1-none --release over the whole workspace), but the actual deploy_contract calls at the end of each job only cover three contracts:
deploy_contract admin_timelock wasm/admin_timelock.wasm
deploy_contract merchant_registry wasm/merchant_registry.wasm
deploy_contract payment_escrow wasm/payment_escrow.wasm
The other 11 member contracts — batch_payments, fee_calculator, fee_distributor, liquidity_router, multisig_admin, payment_request, rbac_access, reconciliation, settlement_ledger, slippage_protection, stellar_confirmations — are never deployed by this workflow to either network.
Impact
Every contract outside the original three requires a manual, undocumented deployment step outside of CI/CD, with no automated record of which contract ID was deployed from which commit/WASM hash (the workflow's $GITHUB_STEP_SUMMARY table only lists the three deployed contracts). This is a real operational risk for a 14-contract system where the manually-deployed contracts (e.g. settlement_ledger, multisig_admin, fee_calculator) are just as security-relevant as the three that are automated, and increases the chance of deploying a stale or locally-modified WASM that never went through CI's size/test gates.
Suggested fix
Extend the deploy_contract calls (and the outputs/summary tables) in both deploy-testnet and deploy-mainnet to cover all 14 contracts, or explicitly document in the workflow why the other 11 are intentionally excluded (e.g. deployed once and rarely redeployed) and provide a parallel manual-deploy runbook for them.
Category: ci
Problem
.github/workflows/deploy.yml'sdeploy-testnetanddeploy-mainnetjobs both build and size-check the WASM for every contract (cargo build --target wasm32v1-none --releaseover the whole workspace), but the actualdeploy_contractcalls at the end of each job only cover three contracts:The other 11 member contracts —
batch_payments,fee_calculator,fee_distributor,liquidity_router,multisig_admin,payment_request,rbac_access,reconciliation,settlement_ledger,slippage_protection,stellar_confirmations— are never deployed by this workflow to either network.Impact
Every contract outside the original three requires a manual, undocumented deployment step outside of CI/CD, with no automated record of which contract ID was deployed from which commit/WASM hash (the workflow's
$GITHUB_STEP_SUMMARYtable only lists the three deployed contracts). This is a real operational risk for a 14-contract system where the manually-deployed contracts (e.g.settlement_ledger,multisig_admin,fee_calculator) are just as security-relevant as the three that are automated, and increases the chance of deploying a stale or locally-modified WASM that never went through CI's size/test gates.Suggested fix
Extend the
deploy_contractcalls (and the outputs/summary tables) in bothdeploy-testnetanddeploy-mainnetto cover all 14 contracts, or explicitly document in the workflow why the other 11 are intentionally excluded (e.g. deployed once and rarely redeployed) and provide a parallel manual-deploy runbook for them.