This helper automates the local Soroban workflow used when you want to build, deploy, and seed the workspace contracts from one place.
Run the bootstrapper from the repo root:
npm run contracts:bootstrap:dry-runThe default run plan:
- runs
cargo test -p <crate> --lib --testsfor the selected contracts - builds each contract to
target/wasm32-unknown-unknown/release/<crate>.wasm - deploys the WASM with
stellar contract deploy - initializes contracts that have a simple built-in bootstrap recipe
The script targets the workspace Soroban contracts:
bulk_paymentcross_asset_paymentasset_path_paymentrevenue_splitvesting_escrowsmart_wallet
Only the first three have automatic init calls today because their bootstrap state is a single admin address. The other contracts are still deployed, but their initial state is intentionally left to custom setup because they need structured arguments:
revenue_splitneeds aVec<RecipientShare>vesting_escrowneeds token, timing, and funding inputssmart_walletneeds signers and a threshold
--dry-runprints the exact commands without executing them.--skip-testsskips the Rust contract test step.--skip-buildreuses an existing wasm artifact path.--contractcan be repeated or comma-separated to target a subset.--source-accountsets the deploy signer.--admin-accountoverrides the address passed into init calls.
npm run contracts:bootstrap -- \
--contract bulk_payment,cross_asset_payment,asset_path_payment \
--source-account psalmuelIf your local Stellar profile uses a different identity, pass that identity or
its public key with --source-account.