@bsv/wallet-toolbox 2.4.21 → 2.5.0
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/CHANGELOG.md +53 -0
- package/README.md +56 -1
- package/docs/authentication-observability.md +21 -9
- package/out/src/CWIStyleWalletManager.d.ts +31 -3
- package/out/src/CWIStyleWalletManager.d.ts.map +1 -1
- package/out/src/CWIStyleWalletManager.js +164 -56
- package/out/src/CWIStyleWalletManager.js.map +1 -1
- package/out/src/Wallet.d.ts +3 -3
- package/out/src/Wallet.d.ts.map +1 -1
- package/out/src/Wallet.js +45 -6
- package/out/src/Wallet.js.map +1 -1
- package/out/src/sdk/WalletStorage.interfaces.d.ts +1 -0
- package/out/src/sdk/WalletStorage.interfaces.d.ts.map +1 -1
- package/out/src/signer/methods/completeSignedTransaction.d.ts.map +1 -1
- package/out/src/signer/methods/completeSignedTransaction.js +54 -13
- package/out/src/signer/methods/completeSignedTransaction.js.map +1 -1
- package/out/src/signer/methods/createAction.d.ts.map +1 -1
- package/out/src/signer/methods/createAction.js +14 -10
- package/out/src/signer/methods/createAction.js.map +1 -1
- package/out/src/signer/methods/verifyUnlockScripts.d.ts.map +1 -1
- package/out/src/signer/methods/verifyUnlockScripts.js +257 -21
- package/out/src/signer/methods/verifyUnlockScripts.js.map +1 -1
- package/out/src/storage/StorageIdb.d.ts +14 -1
- package/out/src/storage/StorageIdb.d.ts.map +1 -1
- package/out/src/storage/StorageIdb.js +128 -17
- package/out/src/storage/StorageIdb.js.map +1 -1
- package/out/src/storage/StorageKnex.d.ts +11 -2
- package/out/src/storage/StorageKnex.d.ts.map +1 -1
- package/out/src/storage/StorageKnex.js +196 -5
- package/out/src/storage/StorageKnex.js.map +1 -1
- package/out/src/storage/StorageProvider.d.ts +30 -1
- package/out/src/storage/StorageProvider.d.ts.map +1 -1
- package/out/src/storage/StorageProvider.js +94 -2
- package/out/src/storage/StorageProvider.js.map +1 -1
- package/out/src/storage/idbHelpers.d.ts.map +1 -1
- package/out/src/storage/idbHelpers.js +2 -0
- package/out/src/storage/idbHelpers.js.map +1 -1
- package/out/src/storage/methods/actionBatch.d.ts.map +1 -1
- package/out/src/storage/methods/actionBatch.js +2 -14
- package/out/src/storage/methods/actionBatch.js.map +1 -1
- package/out/src/storage/methods/actionPlanning.d.ts +14 -0
- package/out/src/storage/methods/actionPlanning.d.ts.map +1 -1
- package/out/src/storage/methods/actionPlanning.js +55 -0
- package/out/src/storage/methods/actionPlanning.js.map +1 -1
- package/out/src/storage/methods/availableManagedChange.d.ts +11 -0
- package/out/src/storage/methods/availableManagedChange.d.ts.map +1 -0
- package/out/src/storage/methods/availableManagedChange.js +25 -0
- package/out/src/storage/methods/availableManagedChange.js.map +1 -0
- package/out/src/storage/methods/createAction.d.ts.map +1 -1
- package/out/src/storage/methods/createAction.js +521 -173
- package/out/src/storage/methods/createAction.js.map +1 -1
- package/out/src/storage/methods/generateChange.d.ts.map +1 -1
- package/out/src/storage/methods/generateChange.js +29 -14
- package/out/src/storage/methods/generateChange.js.map +1 -1
- package/out/src/storage/methods/getBeefForTransaction.d.ts +7 -0
- package/out/src/storage/methods/getBeefForTransaction.d.ts.map +1 -1
- package/out/src/storage/methods/getBeefForTransaction.js +219 -20
- package/out/src/storage/methods/getBeefForTransaction.js.map +1 -1
- package/out/src/storage/methods/processAction.d.ts.map +1 -1
- package/out/src/storage/methods/processAction.js +36 -15
- package/out/src/storage/methods/processAction.js.map +1 -1
- package/out/src/storage/remoting/KnexSessionManager.d.ts +20 -0
- package/out/src/storage/remoting/KnexSessionManager.d.ts.map +1 -1
- package/out/src/storage/remoting/KnexSessionManager.js +74 -16
- package/out/src/storage/remoting/KnexSessionManager.js.map +1 -1
- package/out/src/storage/schema/KnexMigrations.d.ts +1 -0
- package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -1
- package/out/src/storage/schema/KnexMigrations.js +39 -1
- package/out/src/storage/schema/KnexMigrations.js.map +1 -1
- package/out/src/storage/schema/StorageIdbSchema.d.ts +2 -0
- package/out/src/storage/schema/StorageIdbSchema.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityProvenTx.d.ts +2 -1
- package/out/src/storage/schema/entities/EntityProvenTx.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityProvenTx.js +8 -3
- package/out/src/storage/schema/entities/EntityProvenTx.js.map +1 -1
- package/out/src/storage/storageProviderHelpers.d.ts.map +1 -1
- package/out/src/storage/storageProviderHelpers.js +8 -2
- package/out/src/storage/storageProviderHelpers.js.map +1 -1
- package/out/src/utility/ScriptTemplateBRC29.d.ts +3 -2
- package/out/src/utility/ScriptTemplateBRC29.d.ts.map +1 -1
- package/out/src/utility/ScriptTemplateBRC29.js +13 -5
- package/out/src/utility/ScriptTemplateBRC29.js.map +1 -1
- package/package.json +5 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { HexString, KeyDeriverApi, WalletProtocol, ScriptTemplate, ScriptTemplateUnlock, LockingScript, P2PKH, PrivateKey, Script } from '@bsv/sdk';
|
|
1
|
+
import { HexString, KeyDeriverApi, WalletProtocol, ScriptTemplate, ScriptTemplateUnlock, LockingScript, P2PKH, PrivateKey, PublicKey, Script } from '@bsv/sdk';
|
|
2
2
|
export declare const brc29ProtocolID: WalletProtocol;
|
|
3
3
|
export interface ScriptTemplateParamsBRC29 {
|
|
4
4
|
derivationPrefix?: string;
|
|
@@ -16,7 +16,8 @@ export declare class ScriptTemplateBRC29 implements ScriptTemplate {
|
|
|
16
16
|
getKeyID(): string;
|
|
17
17
|
getKeyDeriver(privKey: PrivateKey | HexString): KeyDeriverApi;
|
|
18
18
|
lock(lockerPrivKey: string, unlockerPubKey: string): LockingScript;
|
|
19
|
-
unlock(unlockerPrivKey:
|
|
19
|
+
unlock(unlockerPrivKey: PrivateKey | HexString, lockerPubKey: PublicKey | string, sourceSatoshis?: number, lockingScript?: Script): ScriptTemplateUnlock;
|
|
20
|
+
unlockWithDerivedPrivateKey(derivedPrivateKey: PrivateKey, sourceSatoshis?: number, lockingScript?: Script): ScriptTemplateUnlock;
|
|
20
21
|
/**
|
|
21
22
|
* P2PKH unlock estimateLength is a constant
|
|
22
23
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScriptTemplateBRC29.d.ts","sourceRoot":"","sources":["../../../src/utility/ScriptTemplateBRC29.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,aAAa,EACb,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,aAAa,EACb,KAAK,EACL,UAAU,EACV,MAAM,EAEP,MAAM,UAAU,CAAA;AAGjB,eAAO,MAAM,eAAe,EAAE,cAAoC,CAAA;AAElE,MAAM,WAAW,yBAAyB;IACxC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,UAAU,EAAE,aAAa,CAAA;CAC1B;AAED;;;GAGG;AACH,qBAAa,mBAAoB,YAAW,cAAc;IAGpC,MAAM,EAAE,yBAAyB;IAFrD,KAAK,EAAE,KAAK,CAAA;IAEZ,YAAoB,MAAM,EAAE,yBAAyB,EAKpD;IAED,QAAQ,IAAK,MAAM,CAElB;IAED,aAAa,CAAE,OAAO,EAAE,UAAU,GAAG,SAAS,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"ScriptTemplateBRC29.d.ts","sourceRoot":"","sources":["../../../src/utility/ScriptTemplateBRC29.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,aAAa,EACb,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,aAAa,EACb,KAAK,EACL,UAAU,EACV,SAAS,EACT,MAAM,EAEP,MAAM,UAAU,CAAA;AAGjB,eAAO,MAAM,eAAe,EAAE,cAAoC,CAAA;AAElE,MAAM,WAAW,yBAAyB;IACxC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,UAAU,EAAE,aAAa,CAAA;CAC1B;AAED;;;GAGG;AACH,qBAAa,mBAAoB,YAAW,cAAc;IAGpC,MAAM,EAAE,yBAAyB;IAFrD,KAAK,EAAE,KAAK,CAAA;IAEZ,YAAoB,MAAM,EAAE,yBAAyB,EAKpD;IAED,QAAQ,IAAK,MAAM,CAElB;IAED,aAAa,CAAE,OAAO,EAAE,UAAU,GAAG,SAAS,GAAG,aAAa,CAU7D;IAED,IAAI,CAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,aAAa,CAMlE;IAED,MAAM,CACJ,eAAe,EAAE,UAAU,GAAG,SAAS,EACvC,YAAY,EAAE,SAAS,GAAG,MAAM,EAChC,cAAc,CAAC,EAAE,MAAM,EACvB,aAAa,CAAC,EAAE,MAAM,GACrB,oBAAoB,CAItB;IAED,2BAA2B,CACzB,iBAAiB,EAAE,UAAU,EAC7B,cAAc,CAAC,EAAE,MAAM,EACvB,aAAa,CAAC,EAAE,MAAM,GACrB,oBAAoB,CAEtB;IAED;;OAEG;IACH,YAAY,SAAM;CACnB"}
|
|
@@ -21,8 +21,15 @@ class ScriptTemplateBRC29 {
|
|
|
21
21
|
return `${this.params.derivationPrefix ?? ''} ${this.params.derivationSuffix ?? ''}`;
|
|
22
22
|
}
|
|
23
23
|
getKeyDeriver(privKey) {
|
|
24
|
-
if (
|
|
24
|
+
if (this.params.keyDeriver?.rootKey === privKey)
|
|
25
|
+
return this.params.keyDeriver;
|
|
26
|
+
if (typeof privKey === 'string') {
|
|
27
|
+
// The wallet signing path supplies its existing root key on every input.
|
|
28
|
+
// Avoid parsing the same hex key into a BigNumber for each template.
|
|
29
|
+
if (this.params.keyDeriver?.rootKey.toHex() === privKey)
|
|
30
|
+
return this.params.keyDeriver;
|
|
25
31
|
privKey = sdk_1.PrivateKey.fromHex(privKey);
|
|
32
|
+
}
|
|
26
33
|
if (this.params.keyDeriver == null || this.params.keyDeriver.rootKey.toHex() !== privKey.toHex()) {
|
|
27
34
|
return new sdk_1.CachedKeyDeriver(privKey);
|
|
28
35
|
}
|
|
@@ -37,10 +44,11 @@ class ScriptTemplateBRC29 {
|
|
|
37
44
|
}
|
|
38
45
|
unlock(unlockerPrivKey, lockerPubKey, sourceSatoshis, lockingScript) {
|
|
39
46
|
const derivedPrivateKey = this.getKeyDeriver(unlockerPrivKey)
|
|
40
|
-
.derivePrivateKey(exports.brc29ProtocolID, this.getKeyID(), lockerPubKey)
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
47
|
+
.derivePrivateKey(exports.brc29ProtocolID, this.getKeyID(), lockerPubKey);
|
|
48
|
+
return this.unlockWithDerivedPrivateKey(derivedPrivateKey, sourceSatoshis, lockingScript);
|
|
49
|
+
}
|
|
50
|
+
unlockWithDerivedPrivateKey(derivedPrivateKey, sourceSatoshis, lockingScript) {
|
|
51
|
+
return this.p2pkh.unlock(derivedPrivateKey, 'all', false, sourceSatoshis, lockingScript);
|
|
44
52
|
}
|
|
45
53
|
/**
|
|
46
54
|
* P2PKH unlock estimateLength is a constant
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScriptTemplateBRC29.js","sourceRoot":"","sources":["../../../src/utility/ScriptTemplateBRC29.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"ScriptTemplateBRC29.js","sourceRoot":"","sources":["../../../src/utility/ScriptTemplateBRC29.ts"],"names":[],"mappings":";;;AAAA,kCAYiB;AACjB,qDAA+C;AAElC,QAAA,eAAe,GAAmB,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;AAQlE;;;GAGG;AACH;IAGsB,MAAM;IAF1B,KAAK,CAAO;IAEZ,YAAoB,MAAiC;sBAAjC,MAAM;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,WAAK,EAAE,CAAA;QAExB,IAAA,6BAAY,EAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;QACrC,IAAA,6BAAY,EAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;IACvC,CAAC;IAED,QAAQ;QACN,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,EAAE,EAAE,CAAA;IACtF,CAAC;IAED,aAAa,CAAE,OAA+B;QAC5C,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAA;QAC9E,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,yEAAyE;YACzE,qEAAqE;YACrE,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,OAAO;gBAAE,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAA;YACtF,OAAO,GAAG,gBAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QACvC,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;YAAC,OAAO,IAAI,sBAAgB,CAAC,OAAO,CAAC,CAAA;QAAC,CAAC;QAC1I,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAA;IAC/B,CAAC;IAED,IAAI,CAAE,aAAqB,EAAE,cAAsB;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;aAC9C,eAAe,CAAC,QAAA,eAAe,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,cAAc,EAAE,KAAK,CAAC;aACxE,SAAS,EAAE,CAAA;QACd,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAClC,OAAO,CAAC,CAAA;IACV,CAAC;IAED,MAAM,CACJ,eAAuC,EACvC,YAAgC,EAChC,cAAuB,EACvB,aAAsB;QAEtB,MAAM,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;aAC1D,gBAAgB,CAAC,QAAA,eAAe,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,YAAY,CAAC,CAAA;QACnE,OAAO,IAAI,CAAC,2BAA2B,CAAC,iBAAiB,EAAE,cAAc,EAAE,aAAa,CAAC,CAAA;IAC3F,CAAC;IAED,2BAA2B,CACzB,iBAA6B,EAC7B,cAAuB,EACvB,aAAsB;QAEtB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,aAAa,CAAC,CAAA;IAC1F,CAAC;IAED;;OAEG;IACH,YAAY,GAAG,GAAG,CAAA;CACnB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bsv/wallet-toolbox",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.0",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"engines": {
|
|
@@ -69,7 +69,8 @@
|
|
|
69
69
|
"ws": "^8.21.1"
|
|
70
70
|
},
|
|
71
71
|
"devDependencies": {
|
|
72
|
-
"@bsv/sdk": "^2.
|
|
72
|
+
"@bsv/sdk": "^2.3.0",
|
|
73
|
+
"@bsv/verifast": "^0.3.4",
|
|
73
74
|
"@jest/globals": "^30.4.1",
|
|
74
75
|
"@types/body-parser": "^1.19.6",
|
|
75
76
|
"@types/cors": "^2.8.19",
|
|
@@ -108,6 +109,8 @@
|
|
|
108
109
|
"operator:build": "pnpm build && tsc --project operator/tsconfig.json --pretty false",
|
|
109
110
|
"operator": "pnpm operator:build && node .operator-build/cli.js",
|
|
110
111
|
"bench:action-batch": "pnpm build && jest --runInBand --runTestsByPath benchmarks/action-batch.bench.test.ts --testPathIgnorePatterns=man.test.ts",
|
|
112
|
+
"bench:create-action-funding": "pnpm build && jest --runInBand --runTestsByPath benchmarks/create-action-funding.bench.test.ts --testPathIgnorePatterns=man.test.ts",
|
|
113
|
+
"bench:create-action-beef": "pnpm build && jest --runInBand --runTestsByPath benchmarks/create-action-beef.bench.test.ts --testPathIgnorePatterns=man.test.ts",
|
|
111
114
|
"format:check": "pnpm --workspace-root exec prettier --check \"packages/wallet/wallet-toolbox/{README.md,jest.config.cjs,package.json,tsconfig*.json}\"",
|
|
112
115
|
"lint": "oxlint src test benchmarks examples operator --deny-warnings",
|
|
113
116
|
"lint:ci": "pnpm lint",
|