You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: packages/wallet/wallet-toolbox/CHANGELOG.md
+9Lines changed: 9 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,6 +6,15 @@ attention to changes that materially alter behavior or extend functionality.
6
6
7
7
## wallet-toolbox (unreleased)
8
8
9
+
- Release prep for `2.4.1`: define one managed-change policy across Knex and IndexedDB allocation,
10
+
counting, default balance reporting, `balanceAndUtxos`, and `noSendChange`.
11
+
Only complete BRC-29 signer metadata is eligible; custom rows remain visible
12
+
through raw default-basket listing for recovery. `internalizeAction` now
13
+
rejects basket insertion into `default`, prevents managed change from being
14
+
reclassified, promotes verified legacy BRC-29 rows through `wallet payment`,
15
+
and permits incompatible custom rows to be swept to non-default baskets
16
+
without changing wallet balance.
17
+
9
18
- Release prep for `2.4.0`: security fix for `GHSA-36f9-7rg5-cpf8`. `buildSignableTransaction` now verifies that storage-returned outputs match the caller's requested `args.outputs` before signing (rejects substituted/altered/reclassified/missing outputs), and rejects any unrequested output that isn't client-derived change or a single commission output bounded by `MAX_STORAGE_COMMISSION_SATOSHIS`. `WalletPermissionsManager.createAction` independently verifies requested outputs are present in the signable transaction before authorizing, as defense-in-depth. Protects against a malicious or compromised `StorageClient` operator substituting or injecting outputs that would be signed and broadcast without the caller's knowledge.
10
19
11
20
- Release prep for `2.3.3`: add Arcade-first wallet service wiring, go-chaintracks
Copy file name to clipboardExpand all lines: packages/wallet/wallet-toolbox/docs/client.md
+8-8Lines changed: 8 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17944,12 +17944,12 @@ When the transaction already exists, the description is updated. The isOutgoing
17944
17944
17945
17945
"basket insertion" Merge Rules:
17946
17946
1. The "default" basket may not be specified as the insertion basket.
17947
-
2. A change output in the "default" basket may not be target of an insertion into a different basket.
17948
-
3. These baskets do not affect the wallet's balance and are typed "custom".
17947
+
2. Managed change may not be reclassified as a basket insertion.
17948
+
3. Basket insertions do not affect wallet balance and are typed "custom".
17949
17949
17950
17950
"wallet payment" Merge Rules:
17951
-
1. Targetting an existing change "default" basket output results in a no-op. No error. No alterations made.
17952
-
2. Targetting a previously "custom" non-change output converts it into a change output. This alters the transaction's `amount`, and the wallet balance.
17951
+
1. Targeting existing managed change in the default basket is idempotent.
17952
+
2. Targeting a customoutput promotes it to managed BRC-29 change only after the locking script is verified. This is the supported recovery path for a misclassified BRC-29 payment.
17953
17953
17954
17954
```ts
17955
17955
export async function internalizeAction(wallet: Wallet, auth: AuthId, args: InternalizeActionArgs): Promise<StorageInternalizeActionResult>
@@ -17980,12 +17980,12 @@ When the transaction already exists, the description is updated. The isOutgoing
17980
17980
17981
17981
"basket insertion" Merge Rules:
17982
17982
1. The "default" basket may not be specified as the insertion basket.
17983
-
2. A change output in the "default" basket may not be target of an insertion into a different basket.
17984
-
3. These baskets do not affect the wallet's balance and are typed "custom".
17983
+
2. Managed change may not be reclassified as a basket insertion.
17984
+
3. Basket insertions do not affect wallet balance and are typed "custom".
17985
17985
17986
17986
"wallet payment" Merge Rules:
17987
-
1. Targetting an existing change "default" basket output results in a no-op. No error. No alterations made.
17988
-
2. Targetting a previously "custom" non-change output converts it into a change output. This alters the transaction's `satoshis`, and the wallet balance.
17987
+
1. Targeting existing managed change in the default basket is idempotent.
17988
+
2. Targeting a customoutput promotes it to managed BRC-29 change and increases wallet balance. This includes recovery of a legacy custom row incorrectly stored in the default basket.
17989
17989
17990
17990
```ts
17991
17991
export async function internalizeAction(storage: StorageProvider, auth: AuthId, args: InternalizeActionArgs): Promise<StorageInternalizeActionResult>
0 commit comments