Parent: #54. First child; the spike that turns the design into measured facts (generic.md §14).
Scope
Against quantus-node --dev at the mainnet spec, with quantus-cli's multisig library as the client:
create_multisig 2-of-3 with a nonce; confirm the derived address matches derive_multisig_address computed offline.
Fund it; propose utility.batch_all[transfer, transfer] (the release template with a fee leg); approve from a second signer; execute with the same bytes; confirm both transfers land atomically and the fee leg cannot be dropped by resubmitting different bytes.
Propose the refund template with an expiry; let it expire; confirm remove_expired/claim_deposits behave and that the funds are still reachable by a new proposal.
Make one signer a high-security account and repeat 2; document whether the pallet's HighSecurity whitelist blocks the inner transfer, since a seller with a guardian is a realistic user.
Approve from the third signer after a proposal is already Approved; confirm it is rejected or harmless.
Measure the actual fees paid per step and the block count per step.
Acceptance
A comment on #54 with the measured numbers, the exact call bytes of both templates for a sample trade, and a yes/no on the high-security question. Any surprise becomes a note in doc/escrow-protocol.md the same day.
Depends on
#24 (dev node in CI) for the harness; can start locally before it.
Parent: #54. First child; the spike that turns the design into measured facts (generic.md §14).
## Scope
Against `quantus-node --dev` at the mainnet spec, with quantus-cli's multisig library as the client:
1. `create_multisig` 2-of-3 with a nonce; confirm the derived address matches `derive_multisig_address` computed offline.
2. Fund it; propose `utility.batch_all[transfer, transfer]` (the release template with a fee leg); approve from a second signer; `execute` with the same bytes; confirm both transfers land atomically and the fee leg cannot be dropped by resubmitting different bytes.
3. Propose the refund template with an expiry; let it expire; confirm `remove_expired`/`claim_deposits` behave and that the funds are still reachable by a new proposal.
4. Make one signer a high-security account and repeat 2; document whether the pallet's `HighSecurity` whitelist blocks the inner transfer, since a seller with a guardian is a realistic user.
5. Approve from the third signer after a proposal is already `Approved`; confirm it is rejected or harmless.
6. Measure the actual fees paid per step and the block count per step.
## Acceptance
A comment on #54 with the measured numbers, the exact call bytes of both templates for a sample trade, and a yes/no on the high-security question. Any surprise becomes a note in `doc/escrow-protocol.md` the same day.
## Depends on
#24 (dev node in CI) for the harness; can start locally before it.
grenade
added the child label 2026-09-15 14:42:15 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Parent: #54. First child; the spike that turns the design into measured facts (generic.md §14).
Scope
Against
quantus-node --devat the mainnet spec, with quantus-cli's multisig library as the client:create_multisig2-of-3 with a nonce; confirm the derived address matchesderive_multisig_addresscomputed offline.utility.batch_all[transfer, transfer](the release template with a fee leg); approve from a second signer;executewith the same bytes; confirm both transfers land atomically and the fee leg cannot be dropped by resubmitting different bytes.remove_expired/claim_depositsbehave and that the funds are still reachable by a new proposal.HighSecuritywhitelist blocks the inner transfer, since a seller with a guardian is a realistic user.Approved; confirm it is rejected or harmless.Acceptance
A comment on #54 with the measured numbers, the exact call bytes of both templates for a sample trade, and a yes/no on the high-security question. Any surprise becomes a note in
doc/escrow-protocol.mdthe same day.Depends on
#24 (dev node in CI) for the harness; can start locally before it.