debugForceAddressBalanceCoverage top-level property
Resolves CoinWithBalance $Intent commands into concrete commands.
The intent (created by Transaction.coin() / Transaction.balance(), or
carried in a dApp's serialized transaction) asks for a coin or balance of an
exact amount. This resolves it at build time by choosing between the account's
two fund sources:
- Address balance (per-address accumulator) — withdrawn via
redeem_funds; a transfer built entirely this way is gasless-eligible. - Owned coin objects — merged then split.
It mirrors the two-path strategy of the on-chain-aware reference resolver:
Path 1 (all balance-output intents and address balance sufficient) does a
direct per-intent
balance::redeem_funds; Path 2 merges available sources (address balance, gas coin, or owned coins) and splits all intents at once, converting toBalanceviacoin::into_balancefor balance outputs and returning any remainder to the address balance viacoin::send_funds. Test hook: pretend every CoinWithBalance intent is fully covered by the sender's address balance, skipping the client-side sufficiency check and coin lookup. Lets a knowingly-underfunded transaction reach the node to probe node-side validation (signature scheme, expiration rules) in isolation. Never enable outside tests/debug probes.
Implementation
bool debugForceAddressBalanceCoverage = false;