Commit dca98ac
test(wallet): pin the vault arm's inheritance of the non-enumerating total
R1's hot-wallet leg was covered; its vault leg was not. The destination rule
iterates `summary.recipients`, so while that list held only hinted outputs a
vault spend paying a stranger with no memo presented an EMPTY recipient list:
the rule looped zero times, returned Ok, and the spend escalated as an
ordinary vault move -- skipping the 24h clawback window entirely.
Varies exactly one field (the memo) from the hinted third-party vault spend
that is already refused, so the refusal is attributable to hint-blindness and
the hinted sibling stands as its control.
RED evidence: dropping `.chain(effect.change.iter())` from summary.rs fails
this with "expected a refusal, got an escalation to the human".
Closes R1 (vault leg).
Co-Authored-By: Claude <noreply@anthropic.com>1 parent d528965 commit dca98ac
1 file changed
Lines changed: 46 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1662 | 1662 | | |
1663 | 1663 | | |
1664 | 1664 | | |
| 1665 | + | |
| 1666 | + | |
| 1667 | + | |
| 1668 | + | |
| 1669 | + | |
| 1670 | + | |
| 1671 | + | |
| 1672 | + | |
| 1673 | + | |
| 1674 | + | |
| 1675 | + | |
| 1676 | + | |
| 1677 | + | |
| 1678 | + | |
| 1679 | + | |
| 1680 | + | |
| 1681 | + | |
| 1682 | + | |
| 1683 | + | |
| 1684 | + | |
| 1685 | + | |
| 1686 | + | |
| 1687 | + | |
| 1688 | + | |
| 1689 | + | |
| 1690 | + | |
| 1691 | + | |
| 1692 | + | |
| 1693 | + | |
| 1694 | + | |
| 1695 | + | |
| 1696 | + | |
| 1697 | + | |
| 1698 | + | |
| 1699 | + | |
| 1700 | + | |
| 1701 | + | |
| 1702 | + | |
| 1703 | + | |
| 1704 | + | |
| 1705 | + | |
| 1706 | + | |
| 1707 | + | |
| 1708 | + | |
| 1709 | + | |
| 1710 | + | |
1665 | 1711 | | |
1666 | 1712 | | |
1667 | 1713 | | |
| |||
0 commit comments