3.0 KiB
Descro — Local Development & Testing
Prerequisites
- Rust with the
solanatoolchain (rust-toolchain.tomlpins the version) - Solana CLI ≥ 1.18
- Anchor CLI (used for
build-sbf) - Node.js + Yarn
- A browser wallet extension (Phantom, Backpack, etc.)
1 — Start a local validator
solana-test-validator --reset
Leave this running in a dedicated terminal. The validator listens on:
| Endpoint | Address |
|---|---|
| RPC | http://localhost:8899 |
| WebSocket | ws://localhost:8900 |
2 — Configure the Solana CLI to use localhost
solana config set --url localhost
Verify:
solana config get
# RPC URL: http://localhost:8899
If you do not yet have a local keypair:
solana-keygen new --outfile ~/.config/solana/id.json
solana airdrop 10
3 — Build and deploy the programs
Build order matters — descro depends on descro_ext_resolvers.
anchor build
Deploy both to the local validator:
anchor deploy
Note: if you don't have per-program keypair files, omit
--program-idand note the deployed address; then update the IDs insdk/src/pda.tsand the IDLaddressfields accordingly.
Expected program IDs (as declared in Anchor.toml):
| Program | ID |
|---|---|
descro |
DjVR4EuYV6USMJFfsGZwhZ3y8rtWsmG8EvDY96GTqqi3 |
descro_ext_resolvers |
GwUPAKs3HHzCpj8uhet4NAnxk9GWNwfrYbpihu5DyFp |
4 — Configure your browser wallet for localhost
Phantom:
- Settings → Developer Settings → Testnet Mode (or add a custom RPC)
- Network → Custom →
http://localhost:8899
Backpack:
- Settings → Solana → RPC Connection → Custom →
http://localhost:8899
Airdrop yourself some SOL from the CLI or from the Solana faucet panel inside the wallet.
5 — Start the app
yarn install # from repo root, only needed once
yarn workspace descro-app run dev
Open http://localhost:3000.
In the top-right Network dropdown, select Localnet. The app will connect to
http://localhost:8899. Connect your wallet and you can create escrows, deposit funds,
and test the full instruction flow against the locally-deployed programs.
Running tests
Tests load the compiled .so files via include_bytes!, so always build before testing.
# All tests for the escrow program (includes CPI flow test)
cargo test --manifest-path programs/descro/Cargo.toml
# All tests for the resolver registry
cargo test --manifest-path programs/descro_ext_resolvers/Cargo.toml
# Single test by name
cargo test --manifest-path programs/descro/Cargo.toml -- test_create_escrow
# Specific test file
cargo test --manifest-path programs/descro/Cargo.toml --test test_resolve
Tests use LiteSVM (in-process) and do not require a running validator.