`cases.mjs`, against Heisenberg at spec 148. All five pass: PASS the empty signing context is rejected — 1010: bad signature PASS a payload over 256 bytes is hashed before signing — 279 -> blake2 32 PASS a batch_all over 256 bytes dispatches — block 1050692, funded 50 HEI PASS an ML-DSA-65 account signs and is accepted — block 1050693 PASS an account exported to JSON and re-imported still signs — block 1050694 The first is the one worth having. Every other failure mode here surfaces as a decode error somewhere; a signature under the wrong FIPS 204 context is well-formed, verifies against its own key, and is refused only by the runtime — so nothing local can tell it from a correct one. **`submitAndInclude` does not watch the nonce**, and the reason is a mistake this harness made first. `system_accountNextIndex` counts pending pool transactions, so it advances the moment a transaction is *accepted* — before it has done anything. Waiting on it and then reading a balance shows the state from before the dispatch. Two `batch_all` calls were recorded as reverted on that basis when both had funded their target with exactly what they were asked for; the accounts were sitting there holding 50 HEI each while the run said they held nothing. It now looks for the extrinsic's own bytes in the blocks that arrive, which also exercises the decoder against real chain data — every Quantus block opens with a bare-v5 timestamp inherent that @polkadot/api cannot read. `submit.mjs` moves onto the same shared `chain.mjs` and now *asserts* the recipient's balance moved rather than printing it, which it could not do before: reading a balance needs storage addressing, which @quantus/codec only gained for this (quantus/wasm#4). Refs #7 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012uDUodEcRbBwNRi3UCmw8f
@polkadot/extension-base
Functions, classes and other utilities used in @polkadot/extension. These include:
- background script handlers,
- message passing,
- scripts injected inside pages.
They are primarily meant to be used in @polkadot/extension, and can be broken without any notice to cater for @polkadot/extension's needs.
They are exported here if you wish to use part of them in the development of your
own extension. Don't forget to add process.env.EXTENSION_PREFIX to separate
ports and stores from the current extension's ones.