Files
salvium-rs/docs/integration-testing.md
T
Matt Hess a13c1d6451 Salvium 2 layers 2-5: validation, builder, CLI, FFI, RPC
- Fix builder version selection to emit v5 for CREATE_TOKEN/ROLLUP
  - Add consensus validation for tx types 9-10 (HF11 gating, asset rules)
  - Wire wallet token module (validate_create_token_params, CREATE_TOKEN_COST)
  - Add CreateToken CLI command with full build/sign/submit pipeline
  - Add salvium_wallet_create_token FFI endpoint with token metadata support
  - Add create_token wallet RPC types and method
  - Fix CLI mempool scan skipped when wallet already at chain tip
  - Show pool TXs in history by default, display "pool" instead of height 0
  - Normalize FFI input param structs to camelCase (#[serde(rename_all)])
  - Update tx_type_name for types 9 (CREATE_TOKEN) and 10 (ROLLUP)
  - Add integration testing docs (docs/integration-testing.md)
2026-03-03 15:50:54 +00:00

115 lines
3.3 KiB
Markdown

# Integration Testing
All integration tests are pure Rust (`#[ignore]`-gated). Run them with `--ignored`.
## Prerequisites
1. Testnet daemon running (default: `http://node12.whiskymine.io:29081`)
2. Wallet files at `~/testnet-wallet/`:
- `wallet-a.json` + `wallet-a.pin` (sender)
- `wallet-b.json` + `wallet-b.pin` (receiver)
3. Miner binary built:
```
cargo build -p salvium-miner --release
```
## Full Orchestrator (recommended)
Mines from genesis through all hard forks (HF1-HF10), testing transfers,
stakes, burns, and sweeps at each era boundary.
```bash
cargo test -p salvium-wallet --test full_testnet -- --ignored --nocapture
```
With a custom daemon:
```bash
TESTNET_DAEMON_URL=http://localhost:29081 \
cargo test -p salvium-wallet --test full_testnet -- --ignored --nocapture
```
Resume from a specific fork (e.g. after a partial run):
```bash
RESUME_FROM_HF=6 \
cargo test -p salvium-wallet --test full_testnet -- --ignored --nocapture
```
## Individual Test Suites
Run these against an already-synced testnet with funded wallets.
Order matters -- run top-to-bottom for best results.
```bash
# RPC connectivity
cargo test -p salvium-rpc --test testnet -- --ignored --nocapture
# Wallet sync
cargo test -p salvium-wallet --test testnet_sync -- --ignored --nocapture
# Transfers
cargo test -p salvium-wallet --test testnet_transfer -- --ignored --nocapture
# Stakes
cargo test -p salvium-wallet --test testnet_stake -- --ignored --nocapture
# Burns
cargo test -p salvium-wallet --test testnet_burn -- --ignored --nocapture
# Converts (HF255 gated -- expect rejection on current testnet)
cargo test -p salvium-wallet --test testnet_convert -- --ignored --nocapture
# Subaddresses
cargo test -p salvium-wallet --test testnet_subaddress -- --ignored --nocapture
# Decoy selection / ring building
cargo test -p salvium-tx --test testnet -- --ignored --nocapture
# RCT verification against testnet TXs
cargo test -p salvium-tx --test rct_verify_testnet -- --ignored --nocapture
# Consensus simulation
cargo test -p salvium-consensus --test testnet_sim -- --ignored --nocapture
# FFI integration (wallet open/sync/transfer via C ABI)
cargo test -p salvium-ffi --test testnet_ffi -- --ignored --nocapture
# FFI wallet sync
cargo test -p salvium-ffi --test wallet_sync -- --ignored --nocapture
# Run ALL ignored tests at once
cargo test --workspace -- --ignored --nocapture
```
## Testnet Hard Fork Schedule
| HF | Height | Key Changes |
|----|--------|-------------|
| 1 | 1 | Genesis (SAL, BulletproofPlus) |
| 2 | 250 | ENABLE_N_OUTS, 2021-scaling fees |
| 3 | 500 | Full proofs |
| 4 | 600 | Enforce full proofs |
| 5 | 800 | Shutdown user TXs |
| 6 | 815 | AUDIT1, SAL1, SalviumZero |
| 7 | 900 | AUDIT1 pause |
| 8 | 950 | AUDIT2 |
| 9 | 1000 | AUDIT2 pause |
| 10 | 1100 | CARROT (SalviumOne, carrot addresses) |
| 11 | 1200 | ENABLE_TOKENS (CREATE_TOKEN, ROLLUP, TX v5) |
## CLI Manual Testing
```bash
cargo run -p salvium-cli -- --network testnet --daemon http://node12.whiskymine.io:29081 sync
cargo run -p salvium-cli -- --network testnet balance
cargo run -p salvium-cli -- --network testnet transfer --address SLVx... --amount 1.0
cargo run -p salvium-cli -- --network testnet stake --amount 100.0
cargo run -p salvium-cli -- --network testnet create-token --ticker TEST --supply 100000000 --decimals 8
```