Addresses a 'phantom UTXO' issue in the custom x402 path by proposing to implement 'createAction({ noSend: true })' and aborting the transaction if the server rejects, preventing committed-but-unaccepted transactions from creating phantom change outputs.
## Problem Same phantom UTXO issue as #103, but in the custom X402 path (`defaultConstructProof` in `src/x402-fetch.ts`). `defaultConstructProof` calls `window.CWI.createAction()` with `noSend: false` (default), broadcasting immediately before the server confirms acceptance. If the server rejects, the wallet has phantom change outputs from a committed-but-unaccepted transaction. ## Approach Mirror the BRC-105 fix from #103: 1. `createAction({ noSend: true })` via `window.CWI` 2. Send proof to server via `X402-Proof` header 3. Server 200 → done 4. Server error → `window.CWI.abortAction({ reference: txid })` to release UTXOs `abortAction` is one of the 28 BRC-100 wallet methods, so any compliant wallet should support it. ## Context - #103 fixed this for the BRC-105 path (`Brc105Wallet`) - This is the general-purpose path using `window.CWI` (any BRC-100 wallet) - The custom X402 path is used by any website with a CWI wallet