@bsv/wallet-toolbox-client 2.10.0 → 2.10.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/out/index.client.cjs +33 -13
- package/out/index.client.cjs.map +1 -1
- package/out/index.client.mjs +34 -14
- package/out/index.client.mjs.map +1 -1
- package/package.json +3 -3
package/out/index.client.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.mjs";
|
|
2
|
-
import { AuthFetch, BEEF_V1, BEEF_V2, Beef, BeefParty, BeefTx, BigNumber, BlockHeadersService, CachedKeyDeriver, Certificate, Curve, Hash, LocalKVStore, LockingScript, LookupResolver, MasterCertificate, MerklePath, P2PKH, PrivateKey, ProtoWallet, PublicKey, PushDrop, RPuzzle, Random, SHIPBroadcaster, Script, ScriptEvaluationError, Signature, Spend, SymmetricKey, Telemetry, Transaction, TransactionSignature, Utils, Validation, Validation as Validation$1, VerifiableCertificate, createNonce, defaultHttpClient, verifyNonce } from "@bsv/sdk";
|
|
2
|
+
import { AuthFetch, BEEF_V1, BEEF_V2, Beef, BeefParty, BeefTx, BigNumber, BlockHeadersService, CachedKeyDeriver, Certificate, Curve, Hash, LocalKVStore, LockingScript, LookupResolver, MasterCertificate, MerklePath, P2PKH, PrivateKey, ProtoWallet, PublicKey, PushDrop, RPuzzle, Random, SHIPBroadcaster, Script, ScriptEvaluationError, Signature, Spend, SymmetricKey, Telemetry, Transaction, TransactionSignature, Utils, Validation, Validation as Validation$1, VerifiableCertificate, createNonce, defaultHttpClient, stringifyBRC100, verifyNonce } from "@bsv/sdk";
|
|
3
3
|
import { deleteDB, openDB } from "idb";
|
|
4
4
|
import { AESGCM, AESGCMDecrypt } from "@bsv/sdk/primitives/AESGCM";
|
|
5
5
|
import argon2Api from "hash-wasm/dist/argon2.umd.min.js";
|
|
@@ -196,7 +196,7 @@ var WERR_UTXO_REVIEW_INCONCLUSIVE = class extends WalletError {
|
|
|
196
196
|
obj.checked = this.checked;
|
|
197
197
|
obj.confirmedSpent = this.confirmedSpent;
|
|
198
198
|
obj.unknown = this.unknown;
|
|
199
|
-
return
|
|
199
|
+
return stringifyBRC100(obj);
|
|
200
200
|
}
|
|
201
201
|
};
|
|
202
202
|
/**
|
|
@@ -214,7 +214,7 @@ var WERRActionBatchState = class extends WalletError {
|
|
|
214
214
|
const obj = JSON.parse(super.toJson());
|
|
215
215
|
obj.state = this.state;
|
|
216
216
|
obj.batchId = this.batchId;
|
|
217
|
-
return
|
|
217
|
+
return stringifyBRC100(obj);
|
|
218
218
|
}
|
|
219
219
|
};
|
|
220
220
|
/**
|
|
@@ -240,7 +240,7 @@ var WERR_INVALID_PARAMETER = class extends WalletError {
|
|
|
240
240
|
const obj = JSON.parse(super.toJson());
|
|
241
241
|
obj.code = 6;
|
|
242
242
|
obj.parameter = this.parameter;
|
|
243
|
-
return
|
|
243
|
+
return stringifyBRC100(obj);
|
|
244
244
|
}
|
|
245
245
|
};
|
|
246
246
|
/**
|
|
@@ -267,7 +267,7 @@ var WERR_INVALID_MERKLE_ROOT = class extends WalletError {
|
|
|
267
267
|
obj.blockHeight = this.blockHeight;
|
|
268
268
|
obj.merkleRoot = this.merkleRoot;
|
|
269
269
|
obj.txid = this.txid;
|
|
270
|
-
return
|
|
270
|
+
return stringifyBRC100(obj);
|
|
271
271
|
}
|
|
272
272
|
};
|
|
273
273
|
/**
|
|
@@ -284,7 +284,7 @@ var WERR_MISSING_PARAMETER = class extends WalletError {
|
|
|
284
284
|
toJson() {
|
|
285
285
|
const obj = JSON.parse(super.toJson());
|
|
286
286
|
obj.parameter = this.parameter;
|
|
287
|
-
return
|
|
287
|
+
return stringifyBRC100(obj);
|
|
288
288
|
}
|
|
289
289
|
};
|
|
290
290
|
/**
|
|
@@ -342,7 +342,7 @@ var WERR_INSUFFICIENT_FUNDS = class extends WalletError {
|
|
|
342
342
|
obj.code = 7;
|
|
343
343
|
obj.totalSatoshisNeeded = this.totalSatoshisNeeded;
|
|
344
344
|
obj.moreSatoshisNeeded = this.moreSatoshisNeeded;
|
|
345
|
-
return
|
|
345
|
+
return stringifyBRC100(obj);
|
|
346
346
|
}
|
|
347
347
|
};
|
|
348
348
|
var WERR_INVALID_PUBLIC_KEY = class extends WalletError {
|
|
@@ -359,7 +359,7 @@ var WERR_INVALID_PUBLIC_KEY = class extends WalletError {
|
|
|
359
359
|
toJson() {
|
|
360
360
|
const obj = JSON.parse(super.toJson());
|
|
361
361
|
obj.key = this.key;
|
|
362
|
-
return
|
|
362
|
+
return stringifyBRC100(obj);
|
|
363
363
|
}
|
|
364
364
|
};
|
|
365
365
|
/**
|
|
@@ -394,7 +394,7 @@ var WERR_REVIEW_ACTIONS = class extends WalletError {
|
|
|
394
394
|
obj.txid = this.txid;
|
|
395
395
|
obj.tx = this.tx;
|
|
396
396
|
obj.noSendChange = this.noSendChange;
|
|
397
|
-
return
|
|
397
|
+
return stringifyBRC100(obj);
|
|
398
398
|
}
|
|
399
399
|
};
|
|
400
400
|
/**
|
|
@@ -7810,6 +7810,23 @@ function mergePriorOptions(caVargs, saArgs) {
|
|
|
7810
7810
|
return Validation.validateSignActionArgs(saArgs);
|
|
7811
7811
|
}
|
|
7812
7812
|
//#endregion
|
|
7813
|
+
//#region ../src/utility/canonicalizeAtomicBeef.ts
|
|
7814
|
+
/**
|
|
7815
|
+
* Restricts an AtomicBEEF envelope to the transaction named by its BRC-95
|
|
7816
|
+
* prefix and that transaction's recursive dependency closure.
|
|
7817
|
+
*
|
|
7818
|
+
* Older senders could serialize unrelated, otherwise valid BEEF branches into
|
|
7819
|
+
* an AtomicBEEF envelope. Those branches are not part of the payment proof and
|
|
7820
|
+
* must not influence internalization. Proof and transaction validation still
|
|
7821
|
+
* run against the returned closure at each wallet trust boundary.
|
|
7822
|
+
*/
|
|
7823
|
+
function canonicalizeAtomicBeef(bytes) {
|
|
7824
|
+
const received = bytes instanceof Uint8Array ? Beef.fromBinaryView(bytes) : Beef.fromBinary(bytes);
|
|
7825
|
+
const txid = received.atomicTxid;
|
|
7826
|
+
if (txid == null || received.findTxid(txid) == null || received.isAtomic(txid)) return received;
|
|
7827
|
+
return Beef.fromBinary(received.toBinaryAtomic(txid));
|
|
7828
|
+
}
|
|
7829
|
+
//#endregion
|
|
7813
7830
|
//#region ../src/signer/methods/internalizeAction.ts
|
|
7814
7831
|
/**
|
|
7815
7832
|
* Internalize Action allows a wallet to take ownership of outputs in a pre-existing transaction.
|
|
@@ -7851,7 +7868,7 @@ function mergePriorOptions(caVargs, saArgs) {
|
|
|
7851
7868
|
*/
|
|
7852
7869
|
async function internalizeAction$1(wallet, auth, args) {
|
|
7853
7870
|
const vargs = Validation.validateInternalizeActionArgs(args);
|
|
7854
|
-
const { tx } = await validateAtomicBeef();
|
|
7871
|
+
const { ab, tx, txid } = await validateAtomicBeef();
|
|
7855
7872
|
const brc29ProtocolID = [2, "3241645161d8"];
|
|
7856
7873
|
for (const o of vargs.outputs) {
|
|
7857
7874
|
if (o.outputIndex < 0 || o.outputIndex >= tx.outputs.length) throw new WERR_INVALID_PARAMETER("outputIndex", `a valid output index in range 0 to ${tx.outputs.length - 1}`);
|
|
@@ -7865,7 +7882,10 @@ async function internalizeAction$1(wallet, auth, args) {
|
|
|
7865
7882
|
default: throw new WERR_INTERNAL(`unexpected protocol ${o.protocol}`);
|
|
7866
7883
|
}
|
|
7867
7884
|
}
|
|
7868
|
-
return await wallet.storage.internalizeAction(
|
|
7885
|
+
return await wallet.storage.internalizeAction({
|
|
7886
|
+
...args,
|
|
7887
|
+
tx: ab.toBinaryAtomic(txid)
|
|
7888
|
+
});
|
|
7869
7889
|
function setupWalletPaymentForOutput(o, _dargs) {
|
|
7870
7890
|
const p = o.paymentRemittance;
|
|
7871
7891
|
const output = tx.outputs[o.outputIndex];
|
|
@@ -7888,7 +7908,7 @@ async function internalizeAction$1(wallet, auth, args) {
|
|
|
7888
7908
|
* 2. That the proofs are for the same block as recorded in the wallet's configured storage in the event of a reorg.
|
|
7889
7909
|
*/
|
|
7890
7910
|
async function validateAtomicBeef() {
|
|
7891
|
-
const ab =
|
|
7911
|
+
const ab = canonicalizeAtomicBeef(vargs.tx);
|
|
7892
7912
|
if (!await ab.verify(await wallet.getServices().getChainTracker(), false) || !ab.atomicTxid) {
|
|
7893
7913
|
console.log(`internalizeAction beef is invalid: ${ab.toLogString()}`);
|
|
7894
7914
|
throw new WERR_INVALID_PARAMETER("tx", "valid AtomicBEEF");
|
|
@@ -12421,7 +12441,7 @@ var InternalizeActionContext = class {
|
|
|
12421
12441
|
* @returns
|
|
12422
12442
|
*/
|
|
12423
12443
|
async validateAtomicBeef(atomicBeef) {
|
|
12424
|
-
const ab =
|
|
12444
|
+
const ab = canonicalizeAtomicBeef(atomicBeef);
|
|
12425
12445
|
if (!await ab.verify(await this.storage.getServices().getChainTracker(), false) || !ab.atomicTxid) throw new WERR_INVALID_PARAMETER("tx", "valid AtomicBEEF");
|
|
12426
12446
|
const txid = ab.atomicTxid;
|
|
12427
12447
|
const btx = ab.findTxid(txid);
|
|
@@ -33174,7 +33194,7 @@ var WABTransport = class {
|
|
|
33174
33194
|
bodyFor(options, metadata) {
|
|
33175
33195
|
let body;
|
|
33176
33196
|
try {
|
|
33177
|
-
body = options.body === void 0 ? void 0 :
|
|
33197
|
+
body = options.body === void 0 ? void 0 : stringifyBRC100(options.body);
|
|
33178
33198
|
} catch (cause) {
|
|
33179
33199
|
const error = new WABClientError("WAB_INVALID_REQUEST", "WAB request encoding failed.", false, void 0, {
|
|
33180
33200
|
...metadata.errorContext,
|