Skip to content

feat(7.15): ERC-7730 phase A-C compiler mirror - #114

Closed
BitHighlander wants to merge 4 commits into
release/715-stack07-phase0from
release/715-stack07b1-mirror
Closed

BitHighlander wants to merge 4 commits into
release/715-stack07-phase0from
release/715-stack07b1-mirror

Conversation

@BitHighlander

Copy link
Copy Markdown
Owner

Draft replacement for the A–C portion of the historical 7b companion PR keepkey#228.

Base: release/715-stack07-phase0 at ce14a489fb59dc2a4818d6cff2dd2a3347cd7939.
Head: f813519c7c1163783b0e89b5cbd70536831f5e49.
Paired firmware branch: release/715-stack-07b1-erc7730-formatters.

This compiles tokenAmount, addressName, interpolated intent, amount, NFT, date,
duration, unit and enum programs. The mirror applies the device's text,
decimal, array and signer-constant preload limits. Two focused mirror/device
validator cases passed locally; the full firmware native suite passed 649/649.

The three-review budget on historical firmware PR #863 is exhausted. This
smaller stacked unit has not requested a new Copilot review. The split receipt
is on the top firmware unit and will be linked here when that draft is open.

BitHighlander and others added 4 commits September 25, 2026 04:00
…ants

Phase A of the ERC-7730 formatter plan. The device now executes
tokenAmount (value, token, threshold, message, native aliases),
addressName, @.from/@.to (calldata only) and signed constants, and
type-checks every argument at preload. Mirror that table, including the
value classes: amount and threshold are integers, token and addressName
values are addresses, raw literals are integers, addresses or strings, and
an alias set names at most four addresses.

The registry test now asserts 812 signable formats (from 92). The device
still refuses addressName and tokenAmount over bytes32/uint256 words that
pack an address or an encrypted amount.
Phase B. The device executes display opcodes 2 and 3 as one run directly
after the plain intent, showing each fragment and value as a numbered part.
Mirror the opcodes and the run rule, and trim fragment edges: each part is
its own screen, and the device escapes edge spaces. The registry test now
asserts 954 signable formats.
Phase C. Mirror the device's new formatters and their argument classes:
a date encoding must be the string "timestamp" or "blockheight", unit
decimals a one-byte literal and the prefix a flag, an enum map at most 16
entries, an NFT collection an address, and @.value an unsigned value. The
registry test now asserts 1,138 signable formats.
@BitHighlander

Copy link
Copy Markdown
Owner Author

Consolidated 7b Python companion #119 now compares the unchanged final pin 5c2dd4d against the published phase-0 base. Closing this superseded narrow PR preserves its commits and branch as historical audit evidence. Firmware consolidation is #871; no product or release merge occurred.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant