Delegation module for https://arxiv.org/pdf/2311.02650.pdf
Instruction Builders– utilities to generate Instructions.Args– Instructions arguments structures.Consts– Program constants.Errors– Custom program errors.
Entrypoint– The program entrypoint.Processors– Instruction implementations.
Delegate- Delegate an accountCommitState– Commit a new stateFinalize– Finalize a new stateUndelegate– Undelegate an account
To run the test suite, use the Solana toolchain:
cargo test-sbf --features unit_test_configFor line coverage, use llvm-cov:
cargo llvm-cov --test test_commit_state(llvm-cov currently does not work with instructions with CPIs e.g.: delegate, undelegate)
The integration tests are located in the tests/integration directory.
The tests consist of a Bolt/Anchor program that uses the delegation program to delegate, commit, and undelegate accounts.
This can be also used a reference for how to interact with the program.
To run the integration test, use Bolt or Anchor:
cd tests/integration && bolt testor:
cd tests/integration && anchor testUpgrades go through a Squads multisig whose vault holds the upgrade authority. CI only proposes them.
-
Run Actions → Propose Program Upgrade with the target
cluster(start withdry_run). It buildsdlpverifiably, uploads a buffer and opens a Squads proposal that upgrades the program and records its verified build. The job summary shows the proposal number and the executable hash. -
Members review and approve:
- mainnet: in the Squads app;
- devnet: with the shared command-line tools, run locally with your own keypair:
node approve.mjs --multisig <MULTISIG> --keypair <your keypair> <proposal #> --hash <executable hash>
-
Once approved, any member with Execute executes it.
See the squads-program-upgrade action for setup, membership changes, and the per-cluster GitHub environments.