@bsv/sdk 1.9.1 → 1.9.3
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/dist/cjs/package.json +1 -1
- package/dist/cjs/src/kvstore/GlobalKVStore.js +116 -98
- package/dist/cjs/src/kvstore/GlobalKVStore.js.map +1 -1
- package/dist/cjs/src/kvstore/types.js.map +1 -1
- package/dist/cjs/src/overlay-tools/index.js +1 -0
- package/dist/cjs/src/overlay-tools/index.js.map +1 -1
- package/dist/cjs/src/overlay-tools/withDoubleSpendRetry.js +55 -0
- package/dist/cjs/src/overlay-tools/withDoubleSpendRetry.js.map +1 -0
- package/dist/cjs/src/registry/RegistryClient.js +144 -25
- package/dist/cjs/src/registry/RegistryClient.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/src/kvstore/GlobalKVStore.js +117 -99
- package/dist/esm/src/kvstore/GlobalKVStore.js.map +1 -1
- package/dist/esm/src/kvstore/types.js.map +1 -1
- package/dist/esm/src/overlay-tools/index.js +1 -0
- package/dist/esm/src/overlay-tools/index.js.map +1 -1
- package/dist/esm/src/overlay-tools/withDoubleSpendRetry.js +48 -0
- package/dist/esm/src/overlay-tools/withDoubleSpendRetry.js.map +1 -0
- package/dist/esm/src/registry/RegistryClient.js +148 -26
- package/dist/esm/src/registry/RegistryClient.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/types/src/kvstore/GlobalKVStore.d.ts.map +1 -1
- package/dist/types/src/kvstore/types.d.ts +2 -0
- package/dist/types/src/kvstore/types.d.ts.map +1 -1
- package/dist/types/src/overlay-tools/index.d.ts +1 -0
- package/dist/types/src/overlay-tools/index.d.ts.map +1 -1
- package/dist/types/src/overlay-tools/withDoubleSpendRetry.d.ts +14 -0
- package/dist/types/src/overlay-tools/withDoubleSpendRetry.d.ts.map +1 -0
- package/dist/types/src/registry/RegistryClient.d.ts +31 -5
- package/dist/types/src/registry/RegistryClient.d.ts.map +1 -1
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/dist/umd/bundle.js +3 -3
- package/dist/umd/bundle.js.map +1 -1
- package/docs/reference/kvstore.md +9 -0
- package/docs/reference/overlay-tools.md +32 -0
- package/docs/reference/registry.md +34 -9
- package/package.json +1 -1
- package/src/kvstore/GlobalKVStore.ts +134 -114
- package/src/kvstore/__tests/GlobalKVStore.test.ts +11 -1
- package/src/kvstore/types.ts +2 -0
- package/src/overlay-tools/index.ts +1 -0
- package/src/overlay-tools/withDoubleSpendRetry.ts +71 -0
- package/src/registry/RegistryClient.ts +180 -36
- package/src/registry/__tests/RegistryClient.test.ts +211 -54
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { WalletInterface, WalletProtocol } from '../wallet/index.js';
|
|
2
2
|
import { BroadcastResponse, BroadcastFailure } from '../transaction/index.js';
|
|
3
|
+
import { LookupResolver } from '../overlay-tools/index.js';
|
|
3
4
|
import { DefinitionData, DefinitionType, RegistryQueryMapping, RegistryRecord } from './types/index.js';
|
|
4
5
|
/**
|
|
5
6
|
* RegistryClient manages on-chain registry definitions for three types:
|
|
@@ -11,7 +12,8 @@ import { DefinitionData, DefinitionType, RegistryQueryMapping, RegistryRecord }
|
|
|
11
12
|
* - Register new definitions using pushdrop-based UTXOs.
|
|
12
13
|
* - Resolve existing definitions using a lookup service.
|
|
13
14
|
* - List registry entries associated with the operator's wallet.
|
|
14
|
-
* -
|
|
15
|
+
* - Remove existing registry entries by spending their UTXOs.
|
|
16
|
+
* - Update existing registry entries.
|
|
15
17
|
*
|
|
16
18
|
* Registry operators use this client to establish and manage
|
|
17
19
|
* canonical references for baskets, protocols, and certificate types.
|
|
@@ -19,7 +21,23 @@ import { DefinitionData, DefinitionType, RegistryQueryMapping, RegistryRecord }
|
|
|
19
21
|
export declare class RegistryClient {
|
|
20
22
|
private readonly wallet;
|
|
21
23
|
private network;
|
|
22
|
-
|
|
24
|
+
private readonly resolver;
|
|
25
|
+
private cachedIdentityKey;
|
|
26
|
+
private readonly acceptDelayedBroadcast;
|
|
27
|
+
constructor(wallet?: WalletInterface, options?: {
|
|
28
|
+
acceptDelayedBroadcast?: boolean;
|
|
29
|
+
resolver?: LookupResolver;
|
|
30
|
+
});
|
|
31
|
+
/**
|
|
32
|
+
* Gets the wallet's identity key, caching it after the first call.
|
|
33
|
+
* @returns The public identity key as a hex string.
|
|
34
|
+
*/
|
|
35
|
+
private getIdentityKey;
|
|
36
|
+
/**
|
|
37
|
+
* Gets the network, initializing and caching it on first call.
|
|
38
|
+
* @returns The network type ('mainnet' or 'testnet').
|
|
39
|
+
*/
|
|
40
|
+
private getNetwork;
|
|
23
41
|
/**
|
|
24
42
|
* Publishes a new on-chain definition for baskets, protocols, or certificates.
|
|
25
43
|
* The definition data is encoded in a pushdrop-based UTXO.
|
|
@@ -57,12 +75,20 @@ export declare class RegistryClient {
|
|
|
57
75
|
*/
|
|
58
76
|
listOwnRegistryEntries(definitionType: DefinitionType): Promise<RegistryRecord[]>;
|
|
59
77
|
/**
|
|
60
|
-
*
|
|
78
|
+
* Removes a registry definition by spending its associated UTXO.
|
|
79
|
+
*
|
|
80
|
+
* @param registryRecord - The registry record to remove (must have valid txid, outputIndex, and lockingScript).
|
|
81
|
+
* @returns Broadcast success/failure.
|
|
82
|
+
*/
|
|
83
|
+
removeDefinition(registryRecord: RegistryRecord): Promise<BroadcastResponse | BroadcastFailure>;
|
|
84
|
+
/**
|
|
85
|
+
* Updates an existing registry record by spending its UTXO and creating a new one with updated data.
|
|
61
86
|
*
|
|
62
|
-
* @param registryRecord -
|
|
87
|
+
* @param registryRecord - The existing registry record to update (must have valid txid, outputIndex, and lockingScript).
|
|
88
|
+
* @param updatedData - The new definition data to replace the old record.
|
|
63
89
|
* @returns Broadcast success/failure.
|
|
64
90
|
*/
|
|
65
|
-
|
|
91
|
+
updateDefinition(registryRecord: RegistryRecord, updatedData: DefinitionData): Promise<BroadcastResponse | BroadcastFailure>;
|
|
66
92
|
/**
|
|
67
93
|
* Convert definition data into an array of pushdrop fields (strings).
|
|
68
94
|
* Each definition type has a slightly different shape.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegistryClient.d.ts","sourceRoot":"","sources":["../../../../src/registry/RegistryClient.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,cAAc,EAIf,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAEL,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"RegistryClient.d.ts","sourceRoot":"","sources":["../../../../src/registry/RegistryClient.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,cAAc,EAIf,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAEL,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,cAAc,EAEf,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAEL,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,cAAc,EACf,MAAM,kBAAkB,CAAA;AAKzB;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,cAAc;IAOvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IANzB,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IACzC,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAS;gBAG7B,MAAM,GAAE,eAAoC,EAC7D,OAAO,GAAE;QAAE,sBAAsB,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,cAAc,CAAA;KAAO;IAM/E;;;OAGG;YACW,cAAc;IAO5B;;;OAGG;YACW,UAAU;IAOxB;;;;;;;;;OASG;IACG,kBAAkB,CAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;IA4C9F;;;;;;;;;;;;;;OAcG;IACG,OAAO,CAAC,CAAC,SAAS,cAAc,EACpC,cAAc,EAAE,CAAC,EACjB,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAC7B,OAAO,CAAC,cAAc,EAAE,CAAC;IAuB5B;;;;;;;OAOG;IACG,sBAAsB,CAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAoCxF;;;;;OAKG;IACG,gBAAgB,CACpB,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;IAkFhD;;;;;;OAMG;IACG,gBAAgB,CACpB,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,cAAc,GAC1B,OAAO,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;IA0GhD;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IA6C3B;;;OAGG;YACW,kBAAkB;IAkGhC;;OAEG;IACH,OAAO,CAAC,iCAAiC;IAazC;;OAEG;IACH,OAAO,CAAC,6BAA6B;IAarC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAahC;;OAEG;IACH,OAAO,CAAC,8BAA8B;CAYvC;AAED,wBAAgB,yBAAyB,CAAE,GAAG,EAAE,MAAM,GAAG,cAAc,CAsBtE"}
|