@bsv/wallet-toolbox 2.10.4 → 2.11.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 +68 -0
- package/README.md +47 -0
- package/docs/managed-change-liquidity.md +7 -0
- package/docs/no-send-expiry.md +167 -0
- package/docs/prepared-beef.md +197 -0
- package/docs/setup.md +11 -0
- package/docs/storage.md +11 -0
- package/out/src/Setup.d.ts +3 -0
- package/out/src/Setup.d.ts.map +1 -1
- package/out/src/Setup.js +1 -0
- package/out/src/Setup.js.map +1 -1
- package/out/src/Wallet.d.ts.map +1 -1
- package/out/src/Wallet.js +11 -1
- package/out/src/Wallet.js.map +1 -1
- package/out/src/WalletPermissionsManager.d.ts +30 -6
- package/out/src/WalletPermissionsManager.d.ts.map +1 -1
- package/out/src/WalletPermissionsManager.js +84 -9
- package/out/src/WalletPermissionsManager.js.map +1 -1
- package/out/src/mockchain/MockServices.d.ts +2 -0
- package/out/src/mockchain/MockServices.d.ts.map +1 -1
- package/out/src/mockchain/MockServices.js +20 -0
- package/out/src/mockchain/MockServices.js.map +1 -1
- package/out/src/monitor/Monitor.d.ts +1 -0
- package/out/src/monitor/Monitor.d.ts.map +1 -1
- package/out/src/monitor/Monitor.js +19 -3
- package/out/src/monitor/Monitor.js.map +1 -1
- package/out/src/monitor/tasks/TaskNoSendExpiry.d.ts +19 -0
- package/out/src/monitor/tasks/TaskNoSendExpiry.d.ts.map +1 -0
- package/out/src/monitor/tasks/TaskNoSendExpiry.js +47 -0
- package/out/src/monitor/tasks/TaskNoSendExpiry.js.map +1 -0
- package/out/src/monitor/tasks/index.all.d.ts +1 -0
- package/out/src/monitor/tasks/index.all.d.ts.map +1 -1
- package/out/src/monitor/tasks/index.all.js +1 -0
- package/out/src/monitor/tasks/index.all.js.map +1 -1
- package/out/src/sdk/ActionBatch.interfaces.d.ts +4 -0
- package/out/src/sdk/ActionBatch.interfaces.d.ts.map +1 -1
- package/out/src/sdk/WalletStorage.interfaces.d.ts +35 -0
- package/out/src/sdk/WalletStorage.interfaces.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.d.ts +0 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js +23 -12
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js.map +1 -1
- package/out/src/signer/methods/createNoSendExpiryAction.d.ts +7 -0
- package/out/src/signer/methods/createNoSendExpiryAction.d.ts.map +1 -0
- package/out/src/signer/methods/createNoSendExpiryAction.js +249 -0
- package/out/src/signer/methods/createNoSendExpiryAction.js.map +1 -0
- package/out/src/signer/methods/signAction.d.ts.map +1 -1
- package/out/src/signer/methods/signAction.js +9 -0
- package/out/src/signer/methods/signAction.js.map +1 -1
- package/out/src/storage/StorageIdb.d.ts +3 -0
- package/out/src/storage/StorageIdb.d.ts.map +1 -1
- package/out/src/storage/StorageIdb.js +37 -1
- package/out/src/storage/StorageIdb.js.map +1 -1
- package/out/src/storage/StorageKnex.d.ts +48 -3
- package/out/src/storage/StorageKnex.d.ts.map +1 -1
- package/out/src/storage/StorageKnex.js +234 -14
- package/out/src/storage/StorageKnex.js.map +1 -1
- package/out/src/storage/StorageProvider.d.ts +6 -1
- package/out/src/storage/StorageProvider.d.ts.map +1 -1
- package/out/src/storage/StorageProvider.js +147 -5
- package/out/src/storage/StorageProvider.js.map +1 -1
- package/out/src/storage/StorageReaderWriter.d.ts +2 -0
- package/out/src/storage/StorageReaderWriter.d.ts.map +1 -1
- package/out/src/storage/StorageReaderWriter.js +4 -0
- package/out/src/storage/StorageReaderWriter.js.map +1 -1
- package/out/src/storage/WalletStorageManager.d.ts +11 -0
- package/out/src/storage/WalletStorageManager.d.ts.map +1 -1
- package/out/src/storage/WalletStorageManager.js +77 -12
- package/out/src/storage/WalletStorageManager.js.map +1 -1
- package/out/src/storage/idbHelpers.d.ts.map +1 -1
- package/out/src/storage/idbHelpers.js +14 -2
- package/out/src/storage/idbHelpers.js.map +1 -1
- package/out/src/storage/index.all.d.ts +2 -0
- package/out/src/storage/index.all.d.ts.map +1 -1
- package/out/src/storage/index.all.js +2 -0
- package/out/src/storage/index.all.js.map +1 -1
- package/out/src/storage/methods/createAction.d.ts +57 -1
- package/out/src/storage/methods/createAction.d.ts.map +1 -1
- package/out/src/storage/methods/createAction.js +195 -49
- package/out/src/storage/methods/createAction.js.map +1 -1
- package/out/src/storage/methods/noSendExpiry.d.ts +11 -0
- package/out/src/storage/methods/noSendExpiry.d.ts.map +1 -0
- package/out/src/storage/methods/noSendExpiry.js +357 -0
- package/out/src/storage/methods/noSendExpiry.js.map +1 -0
- package/out/src/storage/methods/noSendExpiryLifecycle.d.ts +14 -0
- package/out/src/storage/methods/noSendExpiryLifecycle.d.ts.map +1 -0
- package/out/src/storage/methods/noSendExpiryLifecycle.js +691 -0
- package/out/src/storage/methods/noSendExpiryLifecycle.js.map +1 -0
- package/out/src/storage/methods/preparedBeef.d.ts +104 -0
- package/out/src/storage/methods/preparedBeef.d.ts.map +1 -0
- package/out/src/storage/methods/preparedBeef.js +525 -0
- package/out/src/storage/methods/preparedBeef.js.map +1 -0
- package/out/src/storage/methods/processAction.d.ts.map +1 -1
- package/out/src/storage/methods/processAction.js +109 -28
- package/out/src/storage/methods/processAction.js.map +1 -1
- package/out/src/storage/methods/purgeData.d.ts.map +1 -1
- package/out/src/storage/methods/purgeData.js +9 -0
- package/out/src/storage/methods/purgeData.js.map +1 -1
- package/out/src/storage/methods/validateSyncProof.d.ts +24 -0
- package/out/src/storage/methods/validateSyncProof.d.ts.map +1 -0
- package/out/src/storage/methods/validateSyncProof.js +116 -0
- package/out/src/storage/methods/validateSyncProof.js.map +1 -0
- package/out/src/storage/remoting/StorageClientBase.d.ts +4 -1
- package/out/src/storage/remoting/StorageClientBase.d.ts.map +1 -1
- package/out/src/storage/remoting/StorageClientBase.js +9 -0
- package/out/src/storage/remoting/StorageClientBase.js.map +1 -1
- package/out/src/storage/remoting/StorageServer.d.ts.map +1 -1
- package/out/src/storage/remoting/StorageServer.js +16 -3
- package/out/src/storage/remoting/StorageServer.js.map +1 -1
- package/out/src/storage/schema/KnexMigrations.d.ts +2 -0
- package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -1
- package/out/src/storage/schema/KnexMigrations.js +66 -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/EntityOutput.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityOutput.js +13 -0
- package/out/src/storage/schema/entities/EntityOutput.js.map +1 -1
- package/out/src/storage/schema/entities/EntityProvenTx.d.ts +2 -0
- package/out/src/storage/schema/entities/EntityProvenTx.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityProvenTx.js +33 -3
- package/out/src/storage/schema/entities/EntityProvenTx.js.map +1 -1
- package/out/src/storage/schema/entities/EntityTransaction.d.ts +26 -0
- package/out/src/storage/schema/entities/EntityTransaction.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityTransaction.js +221 -21
- package/out/src/storage/schema/entities/EntityTransaction.js.map +1 -1
- package/out/src/storage/schema/tables/TablePreparedBeef.interfaces.d.ts +23 -0
- package/out/src/storage/schema/tables/TablePreparedBeef.interfaces.d.ts.map +1 -0
- package/out/src/storage/schema/tables/TablePreparedBeef.interfaces.js +3 -0
- package/out/src/storage/schema/tables/TablePreparedBeef.interfaces.js.map +1 -0
- package/out/src/storage/schema/tables/TableTransaction.d.ts +16 -0
- package/out/src/storage/schema/tables/TableTransaction.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableTransaction.js +14 -1
- package/out/src/storage/schema/tables/TableTransaction.js.map +1 -1
- package/out/src/utility/Argon2idBackend.d.ts +36 -0
- package/out/src/utility/Argon2idBackend.d.ts.map +1 -0
- package/out/src/utility/Argon2idBackend.js +60 -0
- package/out/src/utility/Argon2idBackend.js.map +1 -0
- package/out/src/utility/brc177NoSendExpiry.d.ts +34 -0
- package/out/src/utility/brc177NoSendExpiry.d.ts.map +1 -0
- package/out/src/utility/brc177NoSendExpiry.js +81 -0
- package/out/src/utility/brc177NoSendExpiry.js.map +1 -0
- package/out/src/utility/hashWasm.d.ts +2 -1
- package/out/src/utility/hashWasm.d.ts.map +1 -1
- package/out/src/utility/hashWasm.js +83 -1
- package/out/src/utility/hashWasm.js.map +1 -1
- package/out/src/utility/index.all.d.ts +2 -0
- package/out/src/utility/index.all.d.ts.map +1 -1
- package/out/src/utility/index.all.js +2 -0
- package/out/src/utility/index.all.js.map +1 -1
- package/out/src/utility/index.client.d.ts +2 -0
- package/out/src/utility/index.client.d.ts.map +1 -1
- package/out/src/utility/index.client.js +2 -0
- package/out/src/utility/index.client.js.map +1 -1
- package/package.json +2 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Base64String } from '@bsv/sdk';
|
|
2
2
|
import * as sdk from '../../../sdk';
|
|
3
|
+
import type { Brc177NoSendExpiryMode, Brc177NoSendExpiryState } from '../../../utility/brc177NoSendExpiry';
|
|
3
4
|
export interface TableTransaction extends sdk.EntityTimeStamp {
|
|
4
5
|
created_at: Date;
|
|
5
6
|
updated_at: Date;
|
|
@@ -32,6 +33,21 @@ export interface TableTransaction extends sdk.EntityTimeStamp {
|
|
|
32
33
|
txid?: string;
|
|
33
34
|
inputBEEF?: number[];
|
|
34
35
|
rawTx?: number[];
|
|
36
|
+
/** Internal BRC-177 lifecycle metadata. These fields are synchronized with the action. */
|
|
37
|
+
noSendExpiryMode?: Brc177NoSendExpiryMode;
|
|
38
|
+
noSendExpiryValue?: number;
|
|
39
|
+
/** Resolved Unix seconds for time modes, or the absolute height for blockheight. */
|
|
40
|
+
noSendExpiryDeadline?: number;
|
|
41
|
+
noSendExpiryState?: Brc177NoSendExpiryState;
|
|
42
|
+
noSendExpiryAnchorTxid?: string;
|
|
43
|
+
noSendExpiryAnchorVout?: number;
|
|
44
|
+
noSendExpiryReleasedAt?: number;
|
|
45
|
+
noSendExpiryObservedAt?: number;
|
|
46
|
+
noSendExpiryReclaimTxid?: string;
|
|
47
|
+
noSendExpiryReclaimRawTx?: number[];
|
|
48
|
+
noSendExpiryReclaimDerivationPrefix?: string;
|
|
49
|
+
noSendExpiryReclaimDerivationSuffix?: string;
|
|
50
|
+
noSendExpiryReclaimSatoshis?: number;
|
|
35
51
|
}
|
|
36
52
|
export declare const transactionColumnsWithoutRawTx: string[];
|
|
37
53
|
//# sourceMappingURL=TableTransaction.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableTransaction.d.ts","sourceRoot":"","sources":["../../../../../src/storage/schema/tables/TableTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,KAAK,GAAG,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"TableTransaction.d.ts","sourceRoot":"","sources":["../../../../../src/storage/schema/tables/TableTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,KAAK,GAAG,MAAM,cAAc,CAAA;AACnC,OAAO,KAAK,EACV,sBAAsB,EACtB,uBAAuB,EACxB,MAAM,qCAAqC,CAAA;AAE5C,MAAM,WAAW,gBAAiB,SAAQ,GAAG,CAAC,eAAe;IAC3D,UAAU,EAAE,IAAI,CAAA;IAChB,UAAU,EAAE,IAAI,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,GAAG,CAAC,iBAAiB,CAAA;IAC7B;;OAEG;IACH,SAAS,EAAE,YAAY,CAAA;IACvB;;;OAGG;IACH,UAAU,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,0FAA0F;IAC1F,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,oFAAoF;IACpF,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,iBAAiB,CAAC,EAAE,uBAAuB,CAAA;IAC3C,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAA;IACnC,mCAAmC,CAAC,EAAE,MAAM,CAAA;IAC5C,mCAAmC,CAAC,EAAE,MAAM,CAAA;IAC5C,2BAA2B,CAAC,EAAE,MAAM,CAAA;CACrC;AAED,eAAO,MAAM,8BAA8B,UA6B1C,CAAA"}
|
|
@@ -14,8 +14,21 @@ exports.transactionColumnsWithoutRawTx = [
|
|
|
14
14
|
'version',
|
|
15
15
|
'lockTime',
|
|
16
16
|
'description',
|
|
17
|
-
'txid'
|
|
17
|
+
'txid',
|
|
18
|
+
'noSendExpiryMode',
|
|
19
|
+
'noSendExpiryValue',
|
|
20
|
+
'noSendExpiryDeadline',
|
|
21
|
+
'noSendExpiryState',
|
|
22
|
+
'noSendExpiryAnchorTxid',
|
|
23
|
+
'noSendExpiryAnchorVout',
|
|
24
|
+
'noSendExpiryReleasedAt',
|
|
25
|
+
'noSendExpiryObservedAt',
|
|
26
|
+
'noSendExpiryReclaimTxid',
|
|
27
|
+
'noSendExpiryReclaimDerivationPrefix',
|
|
28
|
+
'noSendExpiryReclaimDerivationSuffix',
|
|
29
|
+
'noSendExpiryReclaimSatoshis'
|
|
18
30
|
// 'inputBEEF',
|
|
19
31
|
// 'rawTx',
|
|
32
|
+
// 'noSendExpiryReclaimRawTx',
|
|
20
33
|
];
|
|
21
34
|
//# sourceMappingURL=TableTransaction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableTransaction.js","sourceRoot":"","sources":["../../../../../src/storage/schema/tables/TableTransaction.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"TableTransaction.js","sourceRoot":"","sources":["../../../../../src/storage/schema/tables/TableTransaction.ts"],"names":[],"mappings":";;;AAwDa,QAAA,8BAA8B,GAAG;IAC5C,YAAY;IACZ,YAAY;IACZ,eAAe;IACf,QAAQ;IACR,YAAY;IACZ,QAAQ;IACR,WAAW;IACX,YAAY;IACZ,UAAU;IACV,SAAS;IACT,UAAU;IACV,aAAa;IACb,MAAM;IACN,kBAAkB;IAClB,mBAAmB;IACnB,sBAAsB;IACtB,mBAAmB;IACnB,wBAAwB;IACxB,wBAAwB;IACxB,wBAAwB;IACxB,wBAAwB;IACxB,yBAAyB;IACzB,qCAAqC;IACrC,qCAAqC;IACrC,6BAA6B;IAC7B,iBAAiB;IACjB,aAAa;IACb,gCAAgC;CACjC,CAAA"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/** Parameters shared by every interoperable Argon2id implementation. */
|
|
2
|
+
export interface Argon2idOptions {
|
|
3
|
+
password: Uint8Array;
|
|
4
|
+
salt: Uint8Array;
|
|
5
|
+
iterations: number;
|
|
6
|
+
parallelism: number;
|
|
7
|
+
memorySize: number;
|
|
8
|
+
hashLength: number;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Optional asynchronous Argon2id implementation supplied by a host runtime.
|
|
12
|
+
*
|
|
13
|
+
* A selected backend is authoritative: derivation failures are propagated and
|
|
14
|
+
* never retried with another implementation. Hosts should report readiness only
|
|
15
|
+
* after proving that their native implementation is available and interoperable.
|
|
16
|
+
* Make preload and isReady reentrant, including calls made by the host itself.
|
|
17
|
+
* Concurrent cold calls share one preload attempt. Later calls may retry after
|
|
18
|
+
* settlement; hosts should cache permanent failures or apply retry backoff.
|
|
19
|
+
*/
|
|
20
|
+
export interface AsyncArgon2idBackend {
|
|
21
|
+
preload: () => Promise<void>;
|
|
22
|
+
isReady: () => boolean;
|
|
23
|
+
deriveKey: (options: Readonly<Argon2idOptions>) => Promise<Uint8Array>;
|
|
24
|
+
}
|
|
25
|
+
/** Installs a process/page-wide optional Argon2id backend. */
|
|
26
|
+
export declare function registerArgon2idBackend(backend: AsyncArgon2idBackend): void;
|
|
27
|
+
/** Removes `backend` if it is still the active optional implementation. */
|
|
28
|
+
export declare function unregisterArgon2idBackend(backend: AsyncArgon2idBackend): void;
|
|
29
|
+
/**
|
|
30
|
+
* Returns a proven-ready backend. A cold backend is prepared in the background
|
|
31
|
+
* while the current derivation retains the portable implementation path.
|
|
32
|
+
*/
|
|
33
|
+
export declare function readyArgon2idBackend(): AsyncArgon2idBackend | undefined;
|
|
34
|
+
/** Rejects malformed alternative-backend output before it can become wallet key material. */
|
|
35
|
+
export declare function validateArgon2idResult(value: Uint8Array, expectedLength: number): Uint8Array;
|
|
36
|
+
//# sourceMappingURL=Argon2idBackend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Argon2idBackend.d.ts","sourceRoot":"","sources":["../../../src/utility/Argon2idBackend.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,UAAU,CAAA;IACpB,IAAI,EAAE,UAAU,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B,OAAO,EAAE,MAAM,OAAO,CAAA;IACtB,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,eAAe,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;CACvE;AAsBD,8DAA8D;AAC9D,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAE3E;AAED,2EAA2E;AAC3E,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAK7E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,oBAAoB,GAAG,SAAS,CAWvE;AAED,6FAA6F;AAC7F,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,GAAG,UAAU,CAQ5F"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerArgon2idBackend = registerArgon2idBackend;
|
|
4
|
+
exports.unregisterArgon2idBackend = unregisterArgon2idBackend;
|
|
5
|
+
exports.readyArgon2idBackend = readyArgon2idBackend;
|
|
6
|
+
exports.validateArgon2idResult = validateArgon2idResult;
|
|
7
|
+
const preloadingBackends = new WeakSet();
|
|
8
|
+
async function preloadBackend(backend) {
|
|
9
|
+
try {
|
|
10
|
+
await backend.preload();
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
// An unavailable optional backend must not interrupt portable derivation.
|
|
14
|
+
}
|
|
15
|
+
finally {
|
|
16
|
+
preloadingBackends.delete(backend);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
function backendGlobal() {
|
|
20
|
+
return globalThis;
|
|
21
|
+
}
|
|
22
|
+
/** Installs a process/page-wide optional Argon2id backend. */
|
|
23
|
+
function registerArgon2idBackend(backend) {
|
|
24
|
+
backendGlobal().__bsvWalletToolboxArgon2idBackendV1 = backend;
|
|
25
|
+
}
|
|
26
|
+
/** Removes `backend` if it is still the active optional implementation. */
|
|
27
|
+
function unregisterArgon2idBackend(backend) {
|
|
28
|
+
const registry = backendGlobal();
|
|
29
|
+
if (registry.__bsvWalletToolboxArgon2idBackendV1 === backend) {
|
|
30
|
+
delete registry.__bsvWalletToolboxArgon2idBackendV1;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Returns a proven-ready backend. A cold backend is prepared in the background
|
|
35
|
+
* while the current derivation retains the portable implementation path.
|
|
36
|
+
*/
|
|
37
|
+
function readyArgon2idBackend() {
|
|
38
|
+
const backend = backendGlobal().__bsvWalletToolboxArgon2idBackendV1;
|
|
39
|
+
if (backend === undefined)
|
|
40
|
+
return undefined;
|
|
41
|
+
if (!backend.isReady()) {
|
|
42
|
+
if (!preloadingBackends.has(backend)) {
|
|
43
|
+
preloadingBackends.add(backend);
|
|
44
|
+
void preloadBackend(backend);
|
|
45
|
+
}
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
return backend;
|
|
49
|
+
}
|
|
50
|
+
/** Rejects malformed alternative-backend output before it can become wallet key material. */
|
|
51
|
+
function validateArgon2idResult(value, expectedLength) {
|
|
52
|
+
if (!(value instanceof Uint8Array)) {
|
|
53
|
+
throw new TypeError('Argon2id backend returned a non-byte result');
|
|
54
|
+
}
|
|
55
|
+
if (value.length !== expectedLength) {
|
|
56
|
+
throw new Error(`Argon2id backend returned ${value.length} bytes; expected ${expectedLength}`);
|
|
57
|
+
}
|
|
58
|
+
return value;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=Argon2idBackend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Argon2idBackend.js","sourceRoot":"","sources":["../../../src/utility/Argon2idBackend.ts"],"names":[],"mappings":";;;;;;AA8BA,MAAM,kBAAkB,GAAG,IAAI,OAAO,EAAwB,CAAA;AAE9D,KAAK,UAAU,cAAc,CAAC,OAA6B;IACzD,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,OAAO,EAAE,CAAA;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,0EAA0E;IAC5E,CAAC;YAAS,CAAC;QACT,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACpC,CAAC;AACH,CAAC;AAED,SAAS,aAAa;IACpB,OAAO,UAAuD,CAAA;AAChE,CAAC;AAED,8DAA8D;AAC9D,iCAAwC,OAA6B;IACnE,aAAa,EAAE,CAAC,mCAAmC,GAAG,OAAO,CAAA;AAC/D,CAAC;AAED,2EAA2E;AAC3E,mCAA0C,OAA6B;IACrE,MAAM,QAAQ,GAAG,aAAa,EAAE,CAAA;IAChC,IAAI,QAAQ,CAAC,mCAAmC,KAAK,OAAO,EAAE,CAAC;QAC7D,OAAO,QAAQ,CAAC,mCAAmC,CAAA;IACrD,CAAC;AACH,CAAC;AAED;;;GAGG;AACH;IACE,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC,mCAAmC,CAAA;IACnE,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAC3C,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QACvB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAC/B,KAAK,cAAc,CAAC,OAAO,CAAC,CAAA;QAC9B,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,6FAA6F;AAC7F,gCAAuC,KAAiB,EAAE,cAAsB;IAC9E,IAAI,CAAC,CAAC,KAAK,YAAY,UAAU,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAA;IACpE,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,CAAC,MAAM,oBAAoB,cAAc,EAAE,CAAC,CAAA;IAChG,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Validation } from '@bsv/sdk';
|
|
2
|
+
export declare const BRC177_NO_SEND_EXPIRY_PREFIX = "p nosend expiry ";
|
|
3
|
+
export declare const BRC177_NO_SEND_MODULE_PREFIX = "p nosend ";
|
|
4
|
+
export type Brc177NoSendExpiryMode = 'seconds' | 'timestamp' | 'blockheight';
|
|
5
|
+
export interface Brc177NoSendExpiry {
|
|
6
|
+
mode: Brc177NoSendExpiryMode;
|
|
7
|
+
value: number;
|
|
8
|
+
label: string;
|
|
9
|
+
}
|
|
10
|
+
export type Brc177NoSendExpiryState = 'preparing' | 'unsigned' | 'signed' | 'revocation-requested' | 'broadcast' | 'reclaiming' | 'reclaimed' | 'target-won' | 'conflicted' | 'cancelled';
|
|
11
|
+
/**
|
|
12
|
+
* Orders durable lifecycle states by safety progress for cross-storage merge.
|
|
13
|
+
* A newer wall-clock timestamp must never revive a state from which a signed
|
|
14
|
+
* target could escape expiry enforcement.
|
|
15
|
+
*/
|
|
16
|
+
export declare function brc177NoSendExpiryStateRank(state: Brc177NoSendExpiryState | undefined): number;
|
|
17
|
+
export interface Brc177FundingCreateActionMetadata {
|
|
18
|
+
kind: 'funding';
|
|
19
|
+
anchorSatoshis: number;
|
|
20
|
+
}
|
|
21
|
+
export interface Brc177ProtectedCreateActionMetadata {
|
|
22
|
+
kind: 'protected';
|
|
23
|
+
expiry: Brc177NoSendExpiry;
|
|
24
|
+
deadline: number;
|
|
25
|
+
anchorTxid: string;
|
|
26
|
+
anchorVout: number;
|
|
27
|
+
}
|
|
28
|
+
export type Brc177CreateActionMetadata = Brc177FundingCreateActionMetadata | Brc177ProtectedCreateActionMetadata;
|
|
29
|
+
export type Brc177ValidCreateActionArgs = Validation.ValidCreateActionArgs & {
|
|
30
|
+
brc177?: Brc177CreateActionMetadata;
|
|
31
|
+
};
|
|
32
|
+
export declare function parseBrc177NoSendExpiryLabels(labels: string[] | undefined): Brc177NoSendExpiry | undefined;
|
|
33
|
+
export declare function hasBrc177NoSendExpiryLabel(labels: string[] | undefined): boolean;
|
|
34
|
+
//# sourceMappingURL=brc177NoSendExpiry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brc177NoSendExpiry.d.ts","sourceRoot":"","sources":["../../../src/utility/brc177NoSendExpiry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAGrC,eAAO,MAAM,4BAA4B,qBAAqB,CAAA;AAC9D,eAAO,MAAM,4BAA4B,cAAc,CAAA;AAEvD,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,WAAW,GAAG,aAAa,CAAA;AAE5E,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,sBAAsB,CAAA;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,MAAM,uBAAuB,GAC/B,WAAW,GACX,UAAU,GACV,QAAQ,GACR,sBAAsB,GACtB,WAAW,GACX,YAAY,GACZ,WAAW,GACX,YAAY,GACZ,YAAY,GACZ,WAAW,CAAA;AAEf;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,uBAAuB,GAAG,SAAS,GAAG,MAAM,CA4B9F;AAED,MAAM,WAAW,iCAAiC;IAChD,IAAI,EAAE,SAAS,CAAA;IACf,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,mCAAmC;IAClD,IAAI,EAAE,WAAW,CAAA;IACjB,MAAM,EAAE,kBAAkB,CAAA;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,MAAM,0BAA0B,GAAG,iCAAiC,GAAG,mCAAmC,CAAA;AAEhH,MAAM,MAAM,2BAA2B,GAAG,UAAU,CAAC,qBAAqB,GAAG;IAC3E,MAAM,CAAC,EAAE,0BAA0B,CAAA;CACpC,CAAA;AAaD,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,kBAAkB,GAAG,SAAS,CAwB1G;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,OAAO,CAEhF"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BRC177_NO_SEND_MODULE_PREFIX = exports.BRC177_NO_SEND_EXPIRY_PREFIX = void 0;
|
|
4
|
+
exports.brc177NoSendExpiryStateRank = brc177NoSendExpiryStateRank;
|
|
5
|
+
exports.parseBrc177NoSendExpiryLabels = parseBrc177NoSendExpiryLabels;
|
|
6
|
+
exports.hasBrc177NoSendExpiryLabel = hasBrc177NoSendExpiryLabel;
|
|
7
|
+
const WERR_errors_1 = require("../sdk/WERR_errors");
|
|
8
|
+
exports.BRC177_NO_SEND_EXPIRY_PREFIX = 'p nosend expiry ';
|
|
9
|
+
exports.BRC177_NO_SEND_MODULE_PREFIX = 'p nosend ';
|
|
10
|
+
/**
|
|
11
|
+
* Orders durable lifecycle states by safety progress for cross-storage merge.
|
|
12
|
+
* A newer wall-clock timestamp must never revive a state from which a signed
|
|
13
|
+
* target could escape expiry enforcement.
|
|
14
|
+
*/
|
|
15
|
+
function brc177NoSendExpiryStateRank(state) {
|
|
16
|
+
switch (state) {
|
|
17
|
+
case 'preparing':
|
|
18
|
+
return 0;
|
|
19
|
+
case 'unsigned':
|
|
20
|
+
return 1;
|
|
21
|
+
case 'cancelled':
|
|
22
|
+
return 2;
|
|
23
|
+
case 'signed':
|
|
24
|
+
return 3;
|
|
25
|
+
case 'revocation-requested':
|
|
26
|
+
return 4;
|
|
27
|
+
case 'conflicted':
|
|
28
|
+
return 5;
|
|
29
|
+
case 'broadcast':
|
|
30
|
+
return 6;
|
|
31
|
+
case 'reclaiming':
|
|
32
|
+
return 7;
|
|
33
|
+
case 'reclaimed':
|
|
34
|
+
return 8;
|
|
35
|
+
// If synchronized stores ever carry contradictory terminal observations,
|
|
36
|
+
// preserving the target winner is conservative: it never exposes the
|
|
37
|
+
// reclaim output as spendable on possibly stale proof evidence.
|
|
38
|
+
case 'target-won':
|
|
39
|
+
return 9;
|
|
40
|
+
default:
|
|
41
|
+
return -1;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
function parseCanonicalUnsignedInteger(value) {
|
|
45
|
+
if (!/^(0|[1-9]\d*)$/.test(value)) {
|
|
46
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('labels', 'a canonical unsigned BRC-177 expiry value');
|
|
47
|
+
}
|
|
48
|
+
const parsed = Number(value);
|
|
49
|
+
if (!Number.isSafeInteger(parsed)) {
|
|
50
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('labels', 'a safely supported BRC-177 expiry value');
|
|
51
|
+
}
|
|
52
|
+
return parsed;
|
|
53
|
+
}
|
|
54
|
+
function parseBrc177NoSendExpiryLabels(labels) {
|
|
55
|
+
const moduleLabels = (labels ?? []).filter(label => label.startsWith(exports.BRC177_NO_SEND_MODULE_PREFIX));
|
|
56
|
+
if (moduleLabels.length === 0)
|
|
57
|
+
return undefined;
|
|
58
|
+
const matching = (labels ?? []).filter(label => label.startsWith(exports.BRC177_NO_SEND_EXPIRY_PREFIX));
|
|
59
|
+
if (matching.length !== 1 || moduleLabels.length !== 1) {
|
|
60
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('labels', 'exactly one BRC-177 noSend expiry label');
|
|
61
|
+
}
|
|
62
|
+
const label = matching[0];
|
|
63
|
+
const remainder = label.slice(exports.BRC177_NO_SEND_EXPIRY_PREFIX.length);
|
|
64
|
+
const separator = remainder.indexOf(' ');
|
|
65
|
+
if (separator <= 0 || separator === remainder.length - 1 || remainder.includes(' ', separator + 1)) {
|
|
66
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('labels', 'a valid BRC-177 noSend expiry label');
|
|
67
|
+
}
|
|
68
|
+
const mode = remainder.slice(0, separator);
|
|
69
|
+
if (mode !== 'seconds' && mode !== 'timestamp' && mode !== 'blockheight') {
|
|
70
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('labels', 'a supported BRC-177 expiry mode');
|
|
71
|
+
}
|
|
72
|
+
const value = parseCanonicalUnsignedInteger(remainder.slice(separator + 1));
|
|
73
|
+
if (mode === 'seconds' && value === 0) {
|
|
74
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('labels', 'a BRC-177 seconds duration greater than zero');
|
|
75
|
+
}
|
|
76
|
+
return { mode, value, label };
|
|
77
|
+
}
|
|
78
|
+
function hasBrc177NoSendExpiryLabel(labels) {
|
|
79
|
+
return (labels ?? []).some(label => label.startsWith(exports.BRC177_NO_SEND_MODULE_PREFIX));
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=brc177NoSendExpiry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brc177NoSendExpiry.js","sourceRoot":"","sources":["../../../src/utility/brc177NoSendExpiry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import argon2Api from 'hash-wasm/dist/argon2.umd.min.js';
|
|
2
|
+
export declare const argon2id: typeof argon2Api.argon2id;
|
|
2
3
|
export declare const pbkdf2: typeof import("hash-wasm").pbkdf2;
|
|
3
4
|
export declare const createSHA256: typeof import("hash-wasm").createSHA256;
|
|
4
5
|
export declare const createSHA512: typeof import("hash-wasm").createSHA512;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hashWasm.d.ts","sourceRoot":"","sources":["../../../src/utility/hashWasm.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hashWasm.d.ts","sourceRoot":"","sources":["../../../src/utility/hashWasm.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,kCAAkC,CAAA;AAkExD,eAAO,MAAM,QAAQ,EAA2B,OAAO,SAAS,CAAC,QAAQ,CAAA;AAEzE,eAAO,MAAM,MAAM,mCAAmB,CAAA;AACtC,eAAO,MAAM,YAAY,yCAAyB,CAAA;AAClD,eAAO,MAAM,YAAY,yCAAyB,CAAA"}
|
|
@@ -1,4 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
37
|
};
|
|
@@ -8,7 +41,56 @@ const argon2_umd_min_js_1 = __importDefault(require("hash-wasm/dist/argon2.umd.m
|
|
|
8
41
|
const pbkdf2_umd_min_js_1 = __importDefault(require("hash-wasm/dist/pbkdf2.umd.min.js"));
|
|
9
42
|
const sha256_umd_min_js_1 = __importDefault(require("hash-wasm/dist/sha256.umd.min.js"));
|
|
10
43
|
const sha512_umd_min_js_1 = __importDefault(require("hash-wasm/dist/sha512.umd.min.js"));
|
|
11
|
-
|
|
44
|
+
const Argon2idBackend_1 = require("./Argon2idBackend");
|
|
45
|
+
function isPortableArgon2idBinaryOptions(options) {
|
|
46
|
+
return (options.outputType === 'binary' &&
|
|
47
|
+
options.secret === undefined &&
|
|
48
|
+
options.password instanceof Uint8Array &&
|
|
49
|
+
options.salt instanceof Uint8Array);
|
|
50
|
+
}
|
|
51
|
+
function isWebAssemblyUnavailable(error) {
|
|
52
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
53
|
+
return /webassembly.*(?:not supported|unavailable|disabled|compile|instantiate|module)/i.test(message);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Preserves the complete hash-wasm Argon2id contract. Secret-free binary calls
|
|
57
|
+
* with byte-array inputs may use a registered backend or an asynchronously
|
|
58
|
+
* yielding JavaScript implementation when WebAssembly is unavailable.
|
|
59
|
+
*/
|
|
60
|
+
async function argon2idWithBackends(options) {
|
|
61
|
+
if (!isPortableArgon2idBinaryOptions(options)) {
|
|
62
|
+
return await argon2_umd_min_js_1.default.argon2id(options);
|
|
63
|
+
}
|
|
64
|
+
const backend = (0, Argon2idBackend_1.readyArgon2idBackend)();
|
|
65
|
+
if (backend !== undefined) {
|
|
66
|
+
const result = await backend.deriveKey({
|
|
67
|
+
password: options.password,
|
|
68
|
+
salt: options.salt,
|
|
69
|
+
iterations: options.iterations,
|
|
70
|
+
parallelism: options.parallelism,
|
|
71
|
+
memorySize: options.memorySize,
|
|
72
|
+
hashLength: options.hashLength
|
|
73
|
+
});
|
|
74
|
+
return (0, Argon2idBackend_1.validateArgon2idResult)(result, options.hashLength);
|
|
75
|
+
}
|
|
76
|
+
try {
|
|
77
|
+
return await argon2_umd_min_js_1.default.argon2id(options);
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
if (!isWebAssemblyUnavailable(error))
|
|
81
|
+
throw error;
|
|
82
|
+
const { argon2idAsync: argon2idJavaScript } = await Promise.resolve().then(() => __importStar(require('@noble/hashes/argon2.js')));
|
|
83
|
+
const result = await argon2idJavaScript(options.password, options.salt, {
|
|
84
|
+
t: options.iterations,
|
|
85
|
+
m: options.memorySize,
|
|
86
|
+
p: options.parallelism,
|
|
87
|
+
dkLen: options.hashLength,
|
|
88
|
+
asyncTick: 10
|
|
89
|
+
});
|
|
90
|
+
return (0, Argon2idBackend_1.validateArgon2idResult)(result, options.hashLength);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
exports.argon2id = argon2idWithBackends;
|
|
12
94
|
exports.pbkdf2 = pbkdf2_umd_min_js_1.default.pbkdf2;
|
|
13
95
|
exports.createSHA256 = sha256_umd_min_js_1.default.createSHA256;
|
|
14
96
|
exports.createSHA512 = sha512_umd_min_js_1.default.createSHA512;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hashWasm.js","sourceRoot":"","sources":["../../../src/utility/hashWasm.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hashWasm.js","sourceRoot":"","sources":["../../../src/utility/hashWasm.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yFAAwD;AACxD,yFAAwD;AACxD,yFAAwD;AACxD,yFAAwD;AACxD,uDAAsG;AAStG,SAAS,+BAA+B,CAAC,OAAgC;IACvE,OAAO,CACL,OAAO,CAAC,UAAU,KAAK,QAAQ;QAC/B,OAAO,CAAC,MAAM,KAAK,SAAS;QAC5B,OAAO,CAAC,QAAQ,YAAY,UAAU;QACtC,OAAO,CAAC,IAAI,YAAY,UAAU,CACnC,CAAA;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc;IAC9C,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACtE,OAAO,iFAAiF,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AACxG,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,oBAAoB,CAAC,OAAgC;IAClE,IAAI,CAAC,+BAA+B,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9C,OAAO,MAAM,2BAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC1C,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,sCAAoB,GAAE,CAAA;IACtC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC;YACrC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC,CAAA;QACF,OAAO,IAAA,wCAAsB,EAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IAC3D,CAAC;IAED,IAAI,CAAC;QACH,OAAO,MAAM,2BAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC1C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC;YAAE,MAAM,KAAK,CAAA;QACjD,MAAM,EAAE,aAAa,EAAE,kBAAkB,EAAE,GAAG,wDAAa,yBAAyB,GAAC,CAAA;QACrF,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE;YACtE,CAAC,EAAE,OAAO,CAAC,UAAU;YACrB,CAAC,EAAE,OAAO,CAAC,UAAU;YACrB,CAAC,EAAE,OAAO,CAAC,WAAW;YACtB,KAAK,EAAE,OAAO,CAAC,UAAU;YACzB,SAAS,EAAE,EAAE;SACd,CAAC,CAAA;QACF,OAAO,IAAA,wCAAsB,EAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IAC3D,CAAC;AACH,CAAC;AAEY,QAAA,QAAQ,GAAG,oBAAiD,CAAA;AAE5D,QAAA,MAAM,GAAG,2BAAS,CAAC,MAAM,CAAA;AACzB,QAAA,YAAY,GAAG,2BAAS,CAAC,YAAY,CAAA;AACrC,QAAA,YAAY,GAAG,2BAAS,CAAC,YAAY,CAAA"}
|
|
@@ -7,4 +7,6 @@ export * from './utilityHelpers.buffer';
|
|
|
7
7
|
export * from './Format';
|
|
8
8
|
export * from './brc114ActionTimeLabels';
|
|
9
9
|
export * from './brc153ReferenceLabels';
|
|
10
|
+
export * from './brc177NoSendExpiry';
|
|
11
|
+
export * from './Argon2idBackend';
|
|
10
12
|
//# sourceMappingURL=index.all.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.all.d.ts","sourceRoot":"","sources":["../../../src/utility/index.all.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,kBAAkB,CAAA;AAEhC,cAAc,yBAAyB,CAAA;AAEvC,cAAc,UAAU,CAAA;AAExB,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.all.d.ts","sourceRoot":"","sources":["../../../src/utility/index.all.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,kBAAkB,CAAA;AAEhC,cAAc,yBAAyB,CAAA;AAEvC,cAAc,UAAU,CAAA;AAExB,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,mBAAmB,CAAA"}
|
|
@@ -23,4 +23,6 @@ __exportStar(require("./utilityHelpers.buffer"), exports);
|
|
|
23
23
|
__exportStar(require("./Format"), exports);
|
|
24
24
|
__exportStar(require("./brc114ActionTimeLabels"), exports);
|
|
25
25
|
__exportStar(require("./brc153ReferenceLabels"), exports);
|
|
26
|
+
__exportStar(require("./brc177NoSendExpiry"), exports);
|
|
27
|
+
__exportStar(require("./Argon2idBackend"), exports);
|
|
26
28
|
//# sourceMappingURL=index.all.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.all.js","sourceRoot":"","sources":["../../../src/utility/index.all.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA0B;AAC1B,wDAAqC;AACrC,yDAAsC;AACtC,yDAAsC;AACtC,mDAAgC;AAEhC,0DAAuC;AAEvC,2CAAwB;AAExB,2DAAwC;AACxC,0DAAuC"}
|
|
1
|
+
{"version":3,"file":"index.all.js","sourceRoot":"","sources":["../../../src/utility/index.all.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA0B;AAC1B,wDAAqC;AACrC,yDAAsC;AACtC,yDAAsC;AACtC,mDAAgC;AAEhC,0DAAuC;AAEvC,2CAAwB;AAExB,2DAAwC;AACxC,0DAAuC;AACvC,uDAAoC;AACpC,oDAAiC"}
|
|
@@ -6,4 +6,6 @@ export * from './utilityHelpers';
|
|
|
6
6
|
export * from './utilityHelpers.noBuffer';
|
|
7
7
|
export * from './brc114ActionTimeLabels';
|
|
8
8
|
export * from './brc153ReferenceLabels';
|
|
9
|
+
export * from './brc177NoSendExpiry';
|
|
10
|
+
export * from './Argon2idBackend';
|
|
9
11
|
//# sourceMappingURL=index.client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/utility/index.client.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,kBAAkB,CAAA;AAEhC,cAAc,2BAA2B,CAAA;AAEzC,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/utility/index.client.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,kBAAkB,CAAA;AAEhC,cAAc,2BAA2B,CAAA;AAEzC,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,mBAAmB,CAAA"}
|
|
@@ -22,4 +22,6 @@ __exportStar(require("./utilityHelpers"), exports);
|
|
|
22
22
|
__exportStar(require("./utilityHelpers.noBuffer"), exports);
|
|
23
23
|
__exportStar(require("./brc114ActionTimeLabels"), exports);
|
|
24
24
|
__exportStar(require("./brc153ReferenceLabels"), exports);
|
|
25
|
+
__exportStar(require("./brc177NoSendExpiry"), exports);
|
|
26
|
+
__exportStar(require("./Argon2idBackend"), exports);
|
|
25
27
|
//# sourceMappingURL=index.client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.client.js","sourceRoot":"","sources":["../../../src/utility/index.client.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA0B;AAC1B,wDAAqC;AACrC,yDAAsC;AACtC,yDAAsC;AACtC,mDAAgC;AAEhC,4DAAyC;AAEzC,2DAAwC;AACxC,0DAAuC"}
|
|
1
|
+
{"version":3,"file":"index.client.js","sourceRoot":"","sources":["../../../src/utility/index.client.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA0B;AAC1B,wDAAqC;AACrC,yDAAsC;AACtC,yDAAsC;AACtC,mDAAgC;AAEhC,4DAAyC;AAEzC,2DAAwC;AACxC,0DAAuC;AACvC,uDAAoC;AACpC,oDAAiC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bsv/wallet-toolbox",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.11.0",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"engines": {
|
|
@@ -58,6 +58,7 @@
|
|
|
58
58
|
"dependencies": {
|
|
59
59
|
"@bsv/auth-express-middleware": "^2.2.3",
|
|
60
60
|
"@bsv/payment-express-middleware": "^2.1.6",
|
|
61
|
+
"@noble/hashes": "2.4.0",
|
|
61
62
|
"@types/express": "^5.0.6",
|
|
62
63
|
"better-sqlite3": "^13.0.2",
|
|
63
64
|
"body-parser": "^2.3.0",
|