@bsv/sdk 1.3.35 → 1.4.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.
Files changed (156) hide show
  1. package/dist/cjs/mod.js +1 -0
  2. package/dist/cjs/mod.js.map +1 -1
  3. package/dist/cjs/package.json +1 -1
  4. package/dist/cjs/src/auth/Peer.js +42 -14
  5. package/dist/cjs/src/auth/Peer.js.map +1 -1
  6. package/dist/cjs/src/auth/certificates/Certificate.js +50 -22
  7. package/dist/cjs/src/auth/certificates/Certificate.js.map +1 -1
  8. package/dist/cjs/src/auth/certificates/MasterCertificate.js +35 -10
  9. package/dist/cjs/src/auth/certificates/MasterCertificate.js.map +1 -1
  10. package/dist/cjs/src/auth/certificates/VerifiableCertificate.js +28 -4
  11. package/dist/cjs/src/auth/certificates/VerifiableCertificate.js.map +1 -1
  12. package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js +5 -2
  13. package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
  14. package/dist/cjs/src/auth/clients/AuthFetch.js +83 -27
  15. package/dist/cjs/src/auth/clients/AuthFetch.js.map +1 -1
  16. package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js +70 -34
  17. package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js.map +1 -1
  18. package/dist/cjs/src/auth/utils/createNonce.js +31 -4
  19. package/dist/cjs/src/auth/utils/createNonce.js.map +1 -1
  20. package/dist/cjs/src/auth/utils/verifyNonce.js +26 -3
  21. package/dist/cjs/src/auth/utils/verifyNonce.js.map +1 -1
  22. package/dist/cjs/src/overlay-tools/LookupResolver.js +2 -2
  23. package/dist/cjs/src/overlay-tools/LookupResolver.js.map +1 -1
  24. package/dist/cjs/src/primitives/utils.js.map +1 -1
  25. package/dist/cjs/src/storage/StorageUploader.js +93 -0
  26. package/dist/cjs/src/storage/StorageUploader.js.map +1 -0
  27. package/dist/cjs/src/storage/StorageUtils.js +73 -0
  28. package/dist/cjs/src/storage/StorageUtils.js.map +1 -0
  29. package/dist/cjs/src/storage/__test/StorageUploader.test.js +92 -0
  30. package/dist/cjs/src/storage/__test/StorageUploader.test.js.map +1 -0
  31. package/dist/cjs/src/storage/__test/StorageUtils.test.js +97 -0
  32. package/dist/cjs/src/storage/__test/StorageUtils.test.js.map +1 -0
  33. package/dist/cjs/src/storage/index.js +30 -0
  34. package/dist/cjs/src/storage/index.js.map +1 -0
  35. package/dist/cjs/src/wallet/WalletClient.js +4 -4
  36. package/dist/cjs/src/wallet/WalletClient.js.map +1 -1
  37. package/dist/cjs/src/wallet/substrates/HTTPWalletWire.js +26 -3
  38. package/dist/cjs/src/wallet/substrates/HTTPWalletWire.js.map +1 -1
  39. package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js +178 -155
  40. package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
  41. package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js +171 -148
  42. package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
  43. package/dist/cjs/src/wallet/substrates/XDM.js +29 -2
  44. package/dist/cjs/src/wallet/substrates/XDM.js.map +1 -1
  45. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  46. package/dist/esm/mod.js +1 -0
  47. package/dist/esm/mod.js.map +1 -1
  48. package/dist/esm/src/auth/Peer.js +7 -5
  49. package/dist/esm/src/auth/Peer.js.map +1 -1
  50. package/dist/esm/src/auth/certificates/Certificate.js +3 -1
  51. package/dist/esm/src/auth/certificates/Certificate.js.map +1 -1
  52. package/dist/esm/src/auth/certificates/MasterCertificate.js +3 -1
  53. package/dist/esm/src/auth/certificates/MasterCertificate.js.map +1 -1
  54. package/dist/esm/src/auth/certificates/VerifiableCertificate.js +2 -1
  55. package/dist/esm/src/auth/certificates/VerifiableCertificate.js.map +1 -1
  56. package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js +1 -1
  57. package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
  58. package/dist/esm/src/auth/clients/AuthFetch.js +38 -8
  59. package/dist/esm/src/auth/clients/AuthFetch.js.map +1 -1
  60. package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js +31 -18
  61. package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js.map +1 -1
  62. package/dist/esm/src/auth/utils/createNonce.js +2 -1
  63. package/dist/esm/src/auth/utils/createNonce.js.map +1 -1
  64. package/dist/esm/src/auth/utils/verifyNonce.js +1 -1
  65. package/dist/esm/src/auth/utils/verifyNonce.js.map +1 -1
  66. package/dist/esm/src/overlay-tools/LookupResolver.js +2 -2
  67. package/dist/esm/src/overlay-tools/LookupResolver.js.map +1 -1
  68. package/dist/esm/src/primitives/utils.js.map +1 -1
  69. package/dist/esm/src/storage/StorageUploader.js +68 -0
  70. package/dist/esm/src/storage/StorageUploader.js.map +1 -0
  71. package/dist/esm/src/storage/StorageUtils.js +65 -0
  72. package/dist/esm/src/storage/StorageUtils.js.map +1 -0
  73. package/dist/esm/src/storage/__test/StorageUploader.test.js +64 -0
  74. package/dist/esm/src/storage/__test/StorageUploader.test.js.map +1 -0
  75. package/dist/esm/src/storage/__test/StorageUtils.test.js +72 -0
  76. package/dist/esm/src/storage/__test/StorageUtils.test.js.map +1 -0
  77. package/dist/esm/src/storage/index.js +3 -0
  78. package/dist/esm/src/storage/index.js.map +1 -0
  79. package/dist/esm/src/wallet/WalletClient.js +4 -4
  80. package/dist/esm/src/wallet/WalletClient.js.map +1 -1
  81. package/dist/esm/src/wallet/substrates/HTTPWalletWire.js +1 -1
  82. package/dist/esm/src/wallet/substrates/HTTPWalletWire.js.map +1 -1
  83. package/dist/esm/src/wallet/substrates/WalletWireProcessor.js +1 -1
  84. package/dist/esm/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
  85. package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js +2 -2
  86. package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
  87. package/dist/esm/src/wallet/substrates/XDM.js +2 -1
  88. package/dist/esm/src/wallet/substrates/XDM.js.map +1 -1
  89. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  90. package/dist/types/mod.d.ts +1 -0
  91. package/dist/types/mod.d.ts.map +1 -1
  92. package/dist/types/src/auth/Peer.d.ts +1 -1
  93. package/dist/types/src/auth/Peer.d.ts.map +1 -1
  94. package/dist/types/src/auth/certificates/Certificate.d.ts +2 -1
  95. package/dist/types/src/auth/certificates/Certificate.d.ts.map +1 -1
  96. package/dist/types/src/auth/certificates/MasterCertificate.d.ts +2 -1
  97. package/dist/types/src/auth/certificates/MasterCertificate.d.ts.map +1 -1
  98. package/dist/types/src/auth/certificates/VerifiableCertificate.d.ts +2 -1
  99. package/dist/types/src/auth/certificates/VerifiableCertificate.d.ts.map +1 -1
  100. package/dist/types/src/auth/certificates/__tests/CompletedProtoWallet.d.ts +1 -1
  101. package/dist/types/src/auth/certificates/__tests/CompletedProtoWallet.d.ts.map +1 -1
  102. package/dist/types/src/auth/clients/AuthFetch.d.ts +10 -9
  103. package/dist/types/src/auth/clients/AuthFetch.d.ts.map +1 -1
  104. package/dist/types/src/auth/transports/SimplifiedFetchTransport.d.ts.map +1 -1
  105. package/dist/types/src/auth/utils/createNonce.d.ts +1 -1
  106. package/dist/types/src/auth/utils/createNonce.d.ts.map +1 -1
  107. package/dist/types/src/auth/utils/getVerifiableCertificates.d.ts +1 -1
  108. package/dist/types/src/auth/utils/getVerifiableCertificates.d.ts.map +1 -1
  109. package/dist/types/src/auth/utils/verifyNonce.d.ts +1 -1
  110. package/dist/types/src/auth/utils/verifyNonce.d.ts.map +1 -1
  111. package/dist/types/src/primitives/utils.d.ts +4 -1
  112. package/dist/types/src/primitives/utils.d.ts.map +1 -1
  113. package/dist/types/src/storage/StorageUploader.d.ts +40 -0
  114. package/dist/types/src/storage/StorageUploader.d.ts.map +1 -0
  115. package/dist/types/src/storage/StorageUtils.d.ts +31 -0
  116. package/dist/types/src/storage/StorageUtils.d.ts.map +1 -0
  117. package/dist/types/src/storage/__test/StorageUploader.test.d.ts +2 -0
  118. package/dist/types/src/storage/__test/StorageUploader.test.d.ts.map +1 -0
  119. package/dist/types/src/storage/__test/StorageUtils.test.d.ts +2 -0
  120. package/dist/types/src/storage/__test/StorageUtils.test.d.ts.map +1 -0
  121. package/dist/types/src/storage/index.d.ts +3 -0
  122. package/dist/types/src/storage/index.d.ts.map +1 -0
  123. package/dist/types/src/wallet/substrates/XDM.d.ts +1 -1
  124. package/dist/types/src/wallet/substrates/XDM.d.ts.map +1 -1
  125. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  126. package/dist/umd/bundle.js +1 -1
  127. package/docs/primitives.md +4 -1
  128. package/docs/storage.md +210 -0
  129. package/docs/wallet-substrates.md +0 -225
  130. package/mod.ts +1 -0
  131. package/package.json +12 -2
  132. package/src/auth/Peer.ts +8 -5
  133. package/src/auth/__tests/Peer.test.ts +43 -48
  134. package/src/auth/certificates/Certificate.ts +5 -5
  135. package/src/auth/certificates/MasterCertificate.ts +5 -5
  136. package/src/auth/certificates/VerifiableCertificate.ts +6 -6
  137. package/src/auth/certificates/__tests/CompletedProtoWallet.ts +1 -15
  138. package/src/auth/clients/AuthFetch.ts +59 -18
  139. package/src/auth/transports/SimplifiedFetchTransport.ts +31 -19
  140. package/src/auth/utils/__tests/cryptononce.test.ts +0 -2
  141. package/src/auth/utils/createNonce.ts +3 -3
  142. package/src/auth/utils/getVerifiableCertificates.ts +1 -1
  143. package/src/auth/utils/verifyNonce.ts +2 -1
  144. package/src/overlay-tools/LookupResolver.ts +2 -2
  145. package/src/primitives/utils.ts +1 -1
  146. package/src/storage/StorageUploader.ts +108 -0
  147. package/src/storage/StorageUtils.ts +66 -0
  148. package/src/storage/__test/StorageUploader.test.ts +80 -0
  149. package/src/storage/__test/StorageUtils.test.ts +86 -0
  150. package/src/storage/index.ts +2 -0
  151. package/src/transaction/__tests/Transaction.benchmarks.test.ts +1 -16
  152. package/src/wallet/WalletClient.ts +4 -4
  153. package/src/wallet/substrates/HTTPWalletWire.ts +1 -1
  154. package/src/wallet/substrates/WalletWireProcessor.ts +1 -1
  155. package/src/wallet/substrates/WalletWireTransceiver.ts +2 -2
  156. package/src/wallet/substrates/XDM.ts +3 -2
@@ -7885,7 +7885,10 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
7885
7885
  ### Variable: fromBase58Check
7886
7886
 
7887
7887
  ```ts
7888
- fromBase58Check = (str: string, enc?: "hex", prefixLength: number = 1): any => {
7888
+ fromBase58Check = (str: string, enc?: "hex", prefixLength: number = 1): {
7889
+ data: number[] | string;
7890
+ prefix: number[] | string;
7891
+ } => {
7889
7892
  const bin = fromBase58(str);
7890
7893
  let prefix: string | number[] = bin.slice(0, prefixLength);
7891
7894
  let data: string | number[] = bin.slice(prefixLength, -4);
@@ -0,0 +1,210 @@
1
+ # API
2
+
3
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Enums](#enums), [Variables](#variables)
4
+
5
+ ## Interfaces
6
+
7
+ | |
8
+ | --- |
9
+ | [UploadFileResult](#interface-uploadfileresult) |
10
+ | [UploadableFile](#interface-uploadablefile) |
11
+ | [UploaderConfig](#interface-uploaderconfig) |
12
+
13
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Enums](#enums), [Variables](#variables)
14
+
15
+ ---
16
+
17
+ ### Interface: UploadFileResult
18
+
19
+ ```ts
20
+ export interface UploadFileResult {
21
+ published: boolean;
22
+ uhrpURL: string;
23
+ }
24
+ ```
25
+
26
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Enums](#enums), [Variables](#variables)
27
+
28
+ ---
29
+ ### Interface: UploadableFile
30
+
31
+ ```ts
32
+ export interface UploadableFile {
33
+ data: number[];
34
+ type: string;
35
+ }
36
+ ```
37
+
38
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Enums](#enums), [Variables](#variables)
39
+
40
+ ---
41
+ ### Interface: UploaderConfig
42
+
43
+ ```ts
44
+ export interface UploaderConfig {
45
+ storageURL: string;
46
+ wallet: WalletInterface;
47
+ }
48
+ ```
49
+
50
+ See also: [WalletInterface](./wallet.md#interface-walletinterface)
51
+
52
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Enums](#enums), [Variables](#variables)
53
+
54
+ ---
55
+ ## Classes
56
+
57
+ ### Class: StorageUploader
58
+
59
+ ```ts
60
+ export class StorageUploader {
61
+ constructor(config: UploaderConfig)
62
+ public async publishFile(params: {
63
+ file: UploadableFile;
64
+ retentionPeriod: number;
65
+ }): Promise<UploadFileResult>
66
+ }
67
+ ```
68
+
69
+ See also: [UploadFileResult](./storage.md#interface-uploadfileresult), [UploadableFile](./storage.md#interface-uploadablefile), [UploaderConfig](./storage.md#interface-uploaderconfig)
70
+
71
+ #### Method publishFile
72
+
73
+ Publishes a file to the storage server with the specified retention period.
74
+
75
+ This will:
76
+ 1. Request an upload URL from the server.
77
+ 2. Perform an HTTP PUT to upload the file’s raw bytes.
78
+ 3. Return a UHRP URL referencing the file once published.
79
+
80
+ ```ts
81
+ public async publishFile(params: {
82
+ file: UploadableFile;
83
+ retentionPeriod: number;
84
+ }): Promise<UploadFileResult>
85
+ ```
86
+ See also: [UploadFileResult](./storage.md#interface-uploadfileresult), [UploadableFile](./storage.md#interface-uploadablefile)
87
+
88
+ Returns
89
+
90
+ An object indicating whether the file was published successfully and the resulting UHRP URL.
91
+
92
+ Argument Details
93
+
94
+ + **params.file**
95
+ + An object describing the file’s data (number[] array of bytes) and mime type.
96
+ + **params.retentionPeriod**
97
+ + Number of minutes to keep the file hosted.
98
+
99
+ Throws
100
+
101
+ If either the upload info request or the subsequent file upload request fails (non-OK HTTP status).
102
+
103
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Enums](#enums), [Variables](#variables)
104
+
105
+ ---
106
+ ## Functions
107
+
108
+ ## Types
109
+
110
+ ## Enums
111
+
112
+ ## Variables
113
+
114
+ | |
115
+ | --- |
116
+ | [getHashFromURL](#variable-gethashfromurl) |
117
+ | [getURLForFile](#variable-geturlforfile) |
118
+ | [getURLForHash](#variable-geturlforhash) |
119
+ | [isValidURL](#variable-isvalidurl) |
120
+ | [normalizeURL](#variable-normalizeurl) |
121
+
122
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Enums](#enums), [Variables](#variables)
123
+
124
+ ---
125
+
126
+ ### Variable: getHashFromURL
127
+
128
+ ```ts
129
+ getHashFromURL = (URL: string): number[] => {
130
+ URL = normalizeURL(URL);
131
+ const { data, prefix } = fromBase58Check(URL, undefined, 2);
132
+ if (data.length !== 32) {
133
+ throw new Error("Invalid length!");
134
+ }
135
+ if (toHex(prefix as number[]) !== "ce00") {
136
+ throw new Error("Bad prefix");
137
+ }
138
+ return data as number[];
139
+ }
140
+ ```
141
+
142
+ See also: [fromBase58Check](./primitives.md#variable-frombase58check), [normalizeURL](./storage.md#variable-normalizeurl), [toHex](./primitives.md#variable-tohex)
143
+
144
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Enums](#enums), [Variables](#variables)
145
+
146
+ ---
147
+ ### Variable: getURLForFile
148
+
149
+ ```ts
150
+ getURLForFile = (file: number[]): string => {
151
+ const hash = sha256(file);
152
+ return getURLForHash(hash);
153
+ }
154
+ ```
155
+
156
+ See also: [getURLForHash](./storage.md#variable-geturlforhash), [sha256](./primitives.md#variable-sha256)
157
+
158
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Enums](#enums), [Variables](#variables)
159
+
160
+ ---
161
+ ### Variable: getURLForHash
162
+
163
+ ```ts
164
+ getURLForHash = (hash: number[]): string => {
165
+ if (hash.length !== 32) {
166
+ throw new Error("Hash length must be 32 bytes (sha256)");
167
+ }
168
+ return toBase58Check(hash, toArray("ce00", "hex"));
169
+ }
170
+ ```
171
+
172
+ See also: [toArray](./primitives.md#variable-toarray), [toBase58Check](./primitives.md#variable-tobase58check)
173
+
174
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Enums](#enums), [Variables](#variables)
175
+
176
+ ---
177
+ ### Variable: isValidURL
178
+
179
+ ```ts
180
+ isValidURL = (URL: string): boolean => {
181
+ try {
182
+ getHashFromURL(URL);
183
+ return true;
184
+ }
185
+ catch (e) {
186
+ return false;
187
+ }
188
+ }
189
+ ```
190
+
191
+ See also: [getHashFromURL](./storage.md#variable-gethashfromurl)
192
+
193
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Enums](#enums), [Variables](#variables)
194
+
195
+ ---
196
+ ### Variable: normalizeURL
197
+
198
+ ```ts
199
+ normalizeURL = (URL: string): string => {
200
+ if (URL.toLowerCase().startsWith("uhrp:"))
201
+ URL = URL.slice(5);
202
+ if (URL.startsWith("//"))
203
+ URL = URL.slice(2);
204
+ return URL;
205
+ }
206
+ ```
207
+
208
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Enums](#enums), [Variables](#variables)
209
+
210
+ ---
@@ -21,7 +21,6 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
21
21
 
22
22
  | |
23
23
  | --- |
24
- | [HTTPWalletJSON](#class-httpwalletjson) |
25
24
  | [HTTPWalletWire](#class-httpwalletwire) |
26
25
  | [WalletWireProcessor](#class-walletwireprocessor) |
27
26
  | [WalletWireTransceiver](#class-walletwiretransceiver) |
@@ -32,230 +31,6 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
32
31
 
33
32
  ---
34
33
 
35
- ### Class: HTTPWalletJSON
36
-
37
- ```ts
38
- export default class HTTPWalletJSON implements WalletInterface {
39
- baseUrl: string;
40
- httpClient: typeof fetch;
41
- originator: OriginatorDomainNameStringUnder250Bytes | undefined;
42
- api: (call: string, args: object) => Promise<unknown>;
43
- constructor(originator: OriginatorDomainNameStringUnder250Bytes | undefined, baseUrl: string = "http://localhost:3321", httpClient = fetch)
44
- async createAction(args: CreateActionArgs): Promise<CreateActionResult>
45
- async signAction(args: SignActionArgs): Promise<SignActionResult>
46
- async abortAction(args: {
47
- reference: Base64String;
48
- }): Promise<{
49
- aborted: true;
50
- }>
51
- async listActions(args: ListActionsArgs): Promise<ListActionsResult>
52
- async internalizeAction(args: InternalizeActionArgs): Promise<{
53
- accepted: true;
54
- }>
55
- async listOutputs(args: ListOutputsArgs): Promise<ListOutputsResult>
56
- async relinquishOutput(args: {
57
- basket: BasketStringUnder300Bytes;
58
- output: OutpointString;
59
- }): Promise<{
60
- relinquished: true;
61
- }>
62
- async getPublicKey(args: {
63
- seekPermission?: BooleanDefaultTrue;
64
- identityKey?: true;
65
- protocolID?: [
66
- SecurityLevel,
67
- ProtocolString5To400Bytes
68
- ];
69
- keyID?: KeyIDStringUnder800Bytes;
70
- privileged?: BooleanDefaultFalse;
71
- privilegedReason?: DescriptionString5to50Bytes;
72
- counterparty?: PubKeyHex | "self" | "anyone";
73
- forSelf?: BooleanDefaultFalse;
74
- }): Promise<{
75
- publicKey: PubKeyHex;
76
- }>
77
- async revealCounterpartyKeyLinkage(args: {
78
- counterparty: PubKeyHex;
79
- verifier: PubKeyHex;
80
- privilegedReason?: DescriptionString5to50Bytes;
81
- privileged?: BooleanDefaultFalse;
82
- }): Promise<{
83
- prover: PubKeyHex;
84
- verifier: PubKeyHex;
85
- counterparty: PubKeyHex;
86
- revelationTime: ISOTimestampString;
87
- encryptedLinkage: Byte[];
88
- encryptedLinkageProof: number[];
89
- }>
90
- async revealSpecificKeyLinkage(args: {
91
- counterparty: PubKeyHex;
92
- verifier: PubKeyHex;
93
- protocolID: [
94
- SecurityLevel,
95
- ProtocolString5To400Bytes
96
- ];
97
- keyID: KeyIDStringUnder800Bytes;
98
- privilegedReason?: DescriptionString5to50Bytes;
99
- privileged?: BooleanDefaultFalse;
100
- }): Promise<{
101
- prover: PubKeyHex;
102
- verifier: PubKeyHex;
103
- counterparty: PubKeyHex;
104
- protocolID: [
105
- SecurityLevel,
106
- ProtocolString5To400Bytes
107
- ];
108
- keyID: KeyIDStringUnder800Bytes;
109
- encryptedLinkage: Byte[];
110
- encryptedLinkageProof: Byte[];
111
- proofType: Byte;
112
- }>
113
- async encrypt(args: {
114
- seekPermission?: BooleanDefaultTrue;
115
- plaintext: Byte[];
116
- protocolID: [
117
- SecurityLevel,
118
- ProtocolString5To400Bytes
119
- ];
120
- keyID: KeyIDStringUnder800Bytes;
121
- privilegedReason?: DescriptionString5to50Bytes;
122
- counterparty?: PubKeyHex | "self" | "anyone";
123
- privileged?: BooleanDefaultFalse;
124
- }): Promise<{
125
- ciphertext: Byte[];
126
- }>
127
- async decrypt(args: {
128
- seekPermission?: BooleanDefaultTrue;
129
- ciphertext: Byte[];
130
- protocolID: [
131
- SecurityLevel,
132
- ProtocolString5To400Bytes
133
- ];
134
- keyID: KeyIDStringUnder800Bytes;
135
- privilegedReason?: DescriptionString5to50Bytes;
136
- counterparty?: PubKeyHex | "self" | "anyone";
137
- privileged?: BooleanDefaultFalse;
138
- }): Promise<{
139
- plaintext: Byte[];
140
- }>
141
- async createHmac(args: {
142
- seekPermission?: BooleanDefaultTrue;
143
- data: Byte[];
144
- protocolID: [
145
- SecurityLevel,
146
- ProtocolString5To400Bytes
147
- ];
148
- keyID: KeyIDStringUnder800Bytes;
149
- privilegedReason?: DescriptionString5to50Bytes;
150
- counterparty?: PubKeyHex | "self" | "anyone";
151
- privileged?: BooleanDefaultFalse;
152
- }): Promise<{
153
- hmac: Byte[];
154
- }>
155
- async verifyHmac(args: {
156
- seekPermission?: BooleanDefaultTrue;
157
- data: Byte[];
158
- hmac: Byte[];
159
- protocolID: [
160
- SecurityLevel,
161
- ProtocolString5To400Bytes
162
- ];
163
- keyID: KeyIDStringUnder800Bytes;
164
- privilegedReason?: DescriptionString5to50Bytes;
165
- counterparty?: PubKeyHex | "self" | "anyone";
166
- privileged?: BooleanDefaultFalse;
167
- }): Promise<{
168
- valid: true;
169
- }>
170
- async createSignature(args: {
171
- seekPermission?: BooleanDefaultTrue;
172
- data?: Byte[];
173
- hashToDirectlySign?: Byte[];
174
- protocolID: [
175
- SecurityLevel,
176
- ProtocolString5To400Bytes
177
- ];
178
- keyID: KeyIDStringUnder800Bytes;
179
- privilegedReason?: DescriptionString5to50Bytes;
180
- counterparty?: PubKeyHex | "self" | "anyone";
181
- privileged?: BooleanDefaultFalse;
182
- }): Promise<{
183
- signature: Byte[];
184
- }>
185
- async verifySignature(args: {
186
- seekPermission?: BooleanDefaultTrue;
187
- data?: Byte[];
188
- hashToDirectlyVerify?: Byte[];
189
- signature: Byte[];
190
- protocolID: [
191
- SecurityLevel,
192
- ProtocolString5To400Bytes
193
- ];
194
- keyID: KeyIDStringUnder800Bytes;
195
- privilegedReason?: DescriptionString5to50Bytes;
196
- counterparty?: PubKeyHex | "self" | "anyone";
197
- forSelf?: BooleanDefaultFalse;
198
- privileged?: BooleanDefaultFalse;
199
- }): Promise<{
200
- valid: true;
201
- }>
202
- async acquireCertificate(args: AcquireCertificateArgs): Promise<AcquireCertificateResult>
203
- async listCertificates(args: {
204
- certifiers: PubKeyHex[];
205
- types: Base64String[];
206
- limit?: PositiveIntegerDefault10Max10000;
207
- offset?: PositiveIntegerOrZero;
208
- privileged?: BooleanDefaultFalse;
209
- privilegedReason?: DescriptionString5to50Bytes;
210
- }): Promise<ListCertificatesResult>
211
- async proveCertificate(args: ProveCertificateArgs): Promise<ProveCertificateResult>
212
- async relinquishCertificate(args: {
213
- type: Base64String;
214
- serialNumber: Base64String;
215
- certifier: PubKeyHex;
216
- }): Promise<{
217
- relinquished: true;
218
- }>
219
- async discoverByIdentityKey(args: {
220
- seekPermission?: BooleanDefaultTrue;
221
- identityKey: PubKeyHex;
222
- limit?: PositiveIntegerDefault10Max10000;
223
- offset?: PositiveIntegerOrZero;
224
- }): Promise<DiscoverCertificatesResult>
225
- async discoverByAttributes(args: {
226
- seekPermission?: BooleanDefaultTrue;
227
- attributes: Record<CertificateFieldNameUnder50Bytes, string>;
228
- limit?: PositiveIntegerDefault10Max10000;
229
- offset?: PositiveIntegerOrZero;
230
- }): Promise<DiscoverCertificatesResult>
231
- async isAuthenticated(args: object): Promise<{
232
- authenticated: true;
233
- }>
234
- async waitForAuthentication(args: object): Promise<{
235
- authenticated: true;
236
- }>
237
- async getHeight(args: object): Promise<{
238
- height: PositiveInteger;
239
- }>
240
- async getHeaderForHeight(args: {
241
- height: PositiveInteger;
242
- }): Promise<{
243
- header: HexString;
244
- }>
245
- async getNetwork(args: object): Promise<{
246
- network: "mainnet" | "testnet";
247
- }>
248
- async getVersion(args: object): Promise<{
249
- version: VersionString7To30Bytes;
250
- }>
251
- }
252
- ```
253
-
254
- See also: [AcquireCertificateArgs](./wallet.md#interface-acquirecertificateargs), [AcquireCertificateResult](./wallet.md#type-acquirecertificateresult), [Base64String](./wallet.md#type-base64string), [BasketStringUnder300Bytes](./wallet.md#type-basketstringunder300bytes), [BooleanDefaultFalse](./wallet.md#type-booleandefaultfalse), [BooleanDefaultTrue](./wallet.md#type-booleandefaulttrue), [Byte](./wallet.md#type-byte), [CertificateFieldNameUnder50Bytes](./wallet.md#type-certificatefieldnameunder50bytes), [CreateActionArgs](./wallet.md#interface-createactionargs), [CreateActionResult](./wallet.md#interface-createactionresult), [DescriptionString5to50Bytes](./wallet.md#type-descriptionstring5to50bytes), [DiscoverCertificatesResult](./wallet.md#interface-discovercertificatesresult), [HexString](./wallet.md#type-hexstring), [ISOTimestampString](./wallet.md#type-isotimestampstring), [InternalizeActionArgs](./wallet.md#interface-internalizeactionargs), [KeyIDStringUnder800Bytes](./wallet.md#type-keyidstringunder800bytes), [ListActionsArgs](./wallet.md#interface-listactionsargs), [ListActionsResult](./wallet.md#interface-listactionsresult), [ListCertificatesResult](./wallet.md#interface-listcertificatesresult), [ListOutputsArgs](./wallet.md#interface-listoutputsargs), [ListOutputsResult](./wallet.md#interface-listoutputsresult), [OriginatorDomainNameStringUnder250Bytes](./wallet.md#type-originatordomainnamestringunder250bytes), [OutpointString](./wallet.md#type-outpointstring), [PositiveInteger](./wallet.md#type-positiveinteger), [PositiveIntegerDefault10Max10000](./wallet.md#type-positiveintegerdefault10max10000), [PositiveIntegerOrZero](./wallet.md#type-positiveintegerorzero), [ProtocolString5To400Bytes](./wallet.md#type-protocolstring5to400bytes), [ProveCertificateArgs](./wallet.md#interface-provecertificateargs), [ProveCertificateResult](./wallet.md#interface-provecertificateresult), [PubKeyHex](./wallet.md#type-pubkeyhex), [SecurityLevel](./wallet.md#type-securitylevel), [SignActionArgs](./wallet.md#interface-signactionargs), [SignActionResult](./wallet.md#interface-signactionresult), [VersionString7To30Bytes](./wallet.md#type-versionstring7to30bytes), [WalletInterface](./wallet.md#interface-walletinterface), [decrypt](./messages.md#variable-decrypt), [encrypt](./messages.md#variable-encrypt)
255
-
256
- Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Enums](#enums), [Variables](#variables)
257
-
258
- ---
259
34
  ### Class: HTTPWalletWire
260
35
 
261
36
  ```ts
package/mod.ts CHANGED
@@ -13,3 +13,4 @@ export * from './src/wallet/index.js'
13
13
  export * from './src/wallet/substrates/index.js'
14
14
  export * from './src/auth/index.js'
15
15
  export * from './src/overlay-tools/index.js'
16
+ export * from './src/storage/index.js'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bsv/sdk",
3
- "version": "1.3.35",
3
+ "version": "1.4.0",
4
4
  "type": "module",
5
5
  "description": "BSV Blockchain Software Development Kit",
6
6
  "main": "dist/cjs/mod.js",
@@ -184,6 +184,16 @@
184
184
  "require": "./dist/cjs/src/overlay-tools/*.js",
185
185
  "types": "./dist/types/src/overlay-tools/*.d.ts"
186
186
  },
187
+ "./storage": {
188
+ "import": "./dist/esm/src/storage/index.js",
189
+ "require": "./dist/cjs/src/storage/index.js",
190
+ "types": "./dist/types/src/storage/index.d.ts"
191
+ },
192
+ "./storage/*": {
193
+ "import": "./dist/esm/src/storage/*.js",
194
+ "require": "./dist/cjs/src/storage/*.js",
195
+ "types": "./dist/types/src/storage/*.d.ts"
196
+ },
187
197
  "./umd": {
188
198
  "import": "./dist/umd/bundle.js"
189
199
  }
@@ -244,4 +254,4 @@
244
254
  "src/auth/transports/SimplifiedFetchTransport.ts"
245
255
  ]
246
256
  }
247
- }
257
+ }
package/src/auth/Peer.ts CHANGED
@@ -12,7 +12,9 @@ import {
12
12
  Transport
13
13
  } from './types.js'
14
14
  import { VerifiableCertificate } from './certificates/VerifiableCertificate.js'
15
- import { Random, Utils, WalletInterface } from '../../mod.js'
15
+ import Random from '../primitives/Random.js'
16
+ import * as Utils from '../primitives/utils.js'
17
+ import { WalletInterface } from '../wallet/Wallet.interfaces.js'
16
18
 
17
19
  const AUTH_VERSION = '0.1'
18
20
 
@@ -82,7 +84,9 @@ export class Peer {
82
84
  certifiers: [],
83
85
  types: {}
84
86
  }
85
- this.transport.onData(this.handleIncomingMessage.bind(this)).catch(console.error)
87
+ this.transport.onData(this.handleIncomingMessage.bind(this)).catch(e => {
88
+ throw e
89
+ })
86
90
  this.sessionManager =
87
91
  sessionManager != null ? sessionManager : new SessionManager()
88
92
  if (autoPersistLastSession === false) {
@@ -424,10 +428,9 @@ export class Peer {
424
428
  */
425
429
  private async handleIncomingMessage (message: AuthMessage): Promise<void> {
426
430
  if (typeof message.version !== 'string' || message.version !== AUTH_VERSION) {
427
- console.error(
431
+ throw new Error(
428
432
  `Invalid or unsupported message auth version! Received: ${message.version}, expected: ${AUTH_VERSION}`
429
433
  )
430
- return
431
434
  }
432
435
 
433
436
  switch (message.messageType) {
@@ -447,7 +450,7 @@ export class Peer {
447
450
  await this.processGeneralMessage(message)
448
451
  break
449
452
  default:
450
- console.error(
453
+ throw new Error(
451
454
  `Unknown message type of ${String(message.messageType)} from ${String(
452
455
  message.identityKey
453
456
  )}`