machineMemos method
FR-27 — the machine-memo bytes of one transaction, scoped to the prefixes
registered on the wallet's WalletConfig. Returns them in output order;
txidHex is passed back verbatim from a history row.
These bytes are attacker-controllable — they came off a public chain,
and anyone can put anything in a memo attached to a payment they send you.
Prefix matching is not a security boundary: forging a prefix is free,
so the scope cuts volume, not intent. Parse with something that fails
closed. Throws machineMemoScopeInvalid when no prefix is registered (the
verb is opt-in and CLOSED by default — an empty list would read as "this
transaction carries nothing" over a memo that is there) and txidInvalid
for a malformed txid.
On the port deliberately, and it was NOT at first. FR-27 shipped with
the verb on WalletHandle only, on the stated grounds that a port method
would need a memo consumer that did not exist. It exists now — the
example app's round-trip diagnostic, which is the SDK's own second
consumer and the thing that makes FR-27's Universal: claim compiled
rather than asserted. The condition was met, so the decision moved.
Implementation
@override
Future<List<Uint8List>> machineMemos(String txidHex) =>
_handle.machineMemos(txidHex: txidHex);