machineMemos method

  1. @override
Future<List<Uint8List>> machineMemos(
  1. String txidHex
)
override

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);