@bsv/sdk 1.1.32 → 1.2.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 (229) hide show
  1. package/dist/cjs/mod.js +4 -0
  2. package/dist/cjs/mod.js.map +1 -1
  3. package/dist/cjs/package.json +4 -3
  4. package/dist/cjs/src/auth/Certificate.js +163 -0
  5. package/dist/cjs/src/auth/Certificate.js.map +1 -0
  6. package/dist/cjs/src/auth/index.js +9 -0
  7. package/dist/cjs/src/auth/index.js.map +1 -0
  8. package/dist/cjs/src/compat/BSM.js +17 -7
  9. package/dist/cjs/src/compat/BSM.js.map +1 -1
  10. package/dist/cjs/src/compat/ECIES.js +17 -7
  11. package/dist/cjs/src/compat/ECIES.js.map +1 -1
  12. package/dist/cjs/src/compat/HD.js +17 -7
  13. package/dist/cjs/src/compat/HD.js.map +1 -1
  14. package/dist/cjs/src/compat/Mnemonic.js +17 -7
  15. package/dist/cjs/src/compat/Mnemonic.js.map +1 -1
  16. package/dist/cjs/src/compat/index.js +17 -7
  17. package/dist/cjs/src/compat/index.js.map +1 -1
  18. package/dist/cjs/src/messages/index.js +17 -7
  19. package/dist/cjs/src/messages/index.js.map +1 -1
  20. package/dist/cjs/src/overlay-tools/LookupResolver.js +170 -0
  21. package/dist/cjs/src/overlay-tools/LookupResolver.js.map +1 -0
  22. package/dist/cjs/src/overlay-tools/OverlayAdminTokenTemplate.js +69 -0
  23. package/dist/cjs/src/overlay-tools/OverlayAdminTokenTemplate.js.map +1 -0
  24. package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js +336 -0
  25. package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js.map +1 -0
  26. package/dist/cjs/src/overlay-tools/index.js +29 -0
  27. package/dist/cjs/src/overlay-tools/index.js.map +1 -0
  28. package/dist/cjs/src/primitives/PrivateKey.js +17 -7
  29. package/dist/cjs/src/primitives/PrivateKey.js.map +1 -1
  30. package/dist/cjs/src/primitives/TransactionSignature.js +17 -7
  31. package/dist/cjs/src/primitives/TransactionSignature.js.map +1 -1
  32. package/dist/cjs/src/primitives/index.js +17 -7
  33. package/dist/cjs/src/primitives/index.js.map +1 -1
  34. package/dist/cjs/src/script/Spend.js +17 -7
  35. package/dist/cjs/src/script/Spend.js.map +1 -1
  36. package/dist/cjs/src/script/templates/PushDrop.js +218 -0
  37. package/dist/cjs/src/script/templates/PushDrop.js.map +1 -0
  38. package/dist/cjs/src/script/templates/index.js +3 -1
  39. package/dist/cjs/src/script/templates/index.js.map +1 -1
  40. package/dist/cjs/src/transaction/Beef.js +35 -6
  41. package/dist/cjs/src/transaction/Beef.js.map +1 -1
  42. package/dist/cjs/src/transaction/Transaction.js +13 -4
  43. package/dist/cjs/src/transaction/Transaction.js.map +1 -1
  44. package/dist/cjs/src/transaction/http/DefaultHttpClient.js +1 -1
  45. package/dist/cjs/src/transaction/http/DefaultHttpClient.js.map +1 -1
  46. package/dist/cjs/src/wallet/CachedKeyDeriver.js +177 -0
  47. package/dist/cjs/src/wallet/CachedKeyDeriver.js.map +1 -0
  48. package/dist/cjs/src/wallet/KeyDeriver.js +174 -0
  49. package/dist/cjs/src/wallet/KeyDeriver.js.map +1 -0
  50. package/dist/cjs/src/wallet/ProtoWallet.js +245 -0
  51. package/dist/cjs/src/wallet/ProtoWallet.js.map +1 -0
  52. package/dist/cjs/src/wallet/Wallet.interfaces.js +3 -0
  53. package/dist/cjs/src/wallet/Wallet.interfaces.js.map +1 -0
  54. package/dist/cjs/src/wallet/WalletClient.js +181 -0
  55. package/dist/cjs/src/wallet/WalletClient.js.map +1 -0
  56. package/dist/cjs/src/wallet/WalletError.js +28 -0
  57. package/dist/cjs/src/wallet/WalletError.js.map +1 -0
  58. package/dist/cjs/src/wallet/index.js +34 -0
  59. package/dist/cjs/src/wallet/index.js.map +1 -0
  60. package/dist/cjs/src/wallet/substrates/HTTPWalletWire.js +45 -0
  61. package/dist/cjs/src/wallet/substrates/HTTPWalletWire.js.map +1 -0
  62. package/dist/cjs/src/wallet/substrates/WalletWire.js +3 -0
  63. package/dist/cjs/src/wallet/substrates/WalletWire.js.map +1 -0
  64. package/dist/cjs/src/wallet/substrates/WalletWireCalls.js +36 -0
  65. package/dist/cjs/src/wallet/substrates/WalletWireCalls.js.map +1 -0
  66. package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js +1821 -0
  67. package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js.map +1 -0
  68. package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js +1305 -0
  69. package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js.map +1 -0
  70. package/dist/cjs/src/wallet/substrates/XDM.js +130 -0
  71. package/dist/cjs/src/wallet/substrates/XDM.js.map +1 -0
  72. package/dist/cjs/src/wallet/substrates/index.js +33 -0
  73. package/dist/cjs/src/wallet/substrates/index.js.map +1 -0
  74. package/dist/cjs/src/wallet/substrates/window.CWI.js +102 -0
  75. package/dist/cjs/src/wallet/substrates/window.CWI.js.map +1 -0
  76. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  77. package/dist/esm/mod.js +4 -0
  78. package/dist/esm/mod.js.map +1 -1
  79. package/dist/esm/src/auth/Certificate.js +185 -0
  80. package/dist/esm/src/auth/Certificate.js.map +1 -0
  81. package/dist/esm/src/auth/index.js +2 -0
  82. package/dist/esm/src/auth/index.js.map +1 -0
  83. package/dist/esm/src/overlay-tools/LookupResolver.js +167 -0
  84. package/dist/esm/src/overlay-tools/LookupResolver.js.map +1 -0
  85. package/dist/esm/src/overlay-tools/OverlayAdminTokenTemplate.js +64 -0
  86. package/dist/esm/src/overlay-tools/OverlayAdminTokenTemplate.js.map +1 -0
  87. package/dist/esm/src/overlay-tools/SHIPBroadcaster.js +335 -0
  88. package/dist/esm/src/overlay-tools/SHIPBroadcaster.js.map +1 -0
  89. package/dist/esm/src/overlay-tools/index.js +6 -0
  90. package/dist/esm/src/overlay-tools/index.js.map +1 -0
  91. package/dist/esm/src/script/templates/PushDrop.js +215 -0
  92. package/dist/esm/src/script/templates/PushDrop.js.map +1 -0
  93. package/dist/esm/src/script/templates/index.js +1 -0
  94. package/dist/esm/src/script/templates/index.js.map +1 -1
  95. package/dist/esm/src/transaction/Beef.js +35 -6
  96. package/dist/esm/src/transaction/Beef.js.map +1 -1
  97. package/dist/esm/src/transaction/Transaction.js +13 -4
  98. package/dist/esm/src/transaction/Transaction.js.map +1 -1
  99. package/dist/esm/src/transaction/http/DefaultHttpClient.js +1 -1
  100. package/dist/esm/src/transaction/http/DefaultHttpClient.js.map +1 -1
  101. package/dist/esm/src/wallet/CachedKeyDeriver.js +174 -0
  102. package/dist/esm/src/wallet/CachedKeyDeriver.js.map +1 -0
  103. package/dist/esm/src/wallet/KeyDeriver.js +172 -0
  104. package/dist/esm/src/wallet/KeyDeriver.js.map +1 -0
  105. package/dist/esm/src/wallet/ProtoWallet.js +207 -0
  106. package/dist/esm/src/wallet/ProtoWallet.js.map +1 -0
  107. package/dist/esm/src/wallet/Wallet.interfaces.js +2 -0
  108. package/dist/esm/src/wallet/Wallet.interfaces.js.map +1 -0
  109. package/dist/esm/src/wallet/WalletClient.js +177 -0
  110. package/dist/esm/src/wallet/WalletClient.js.map +1 -0
  111. package/dist/esm/src/wallet/WalletError.js +25 -0
  112. package/dist/esm/src/wallet/WalletError.js.map +1 -0
  113. package/dist/esm/src/wallet/index.js +9 -0
  114. package/dist/esm/src/wallet/index.js.map +1 -0
  115. package/dist/esm/src/wallet/substrates/HTTPWalletWire.js +42 -0
  116. package/dist/esm/src/wallet/substrates/HTTPWalletWire.js.map +1 -0
  117. package/dist/esm/src/wallet/substrates/WalletWire.js +2 -0
  118. package/dist/esm/src/wallet/substrates/WalletWire.js.map +1 -0
  119. package/dist/esm/src/wallet/substrates/WalletWireCalls.js +34 -0
  120. package/dist/esm/src/wallet/substrates/WalletWireCalls.js.map +1 -0
  121. package/dist/esm/src/wallet/substrates/WalletWireProcessor.js +1816 -0
  122. package/dist/esm/src/wallet/substrates/WalletWireProcessor.js.map +1 -0
  123. package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js +1300 -0
  124. package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js.map +1 -0
  125. package/dist/esm/src/wallet/substrates/XDM.js +128 -0
  126. package/dist/esm/src/wallet/substrates/XDM.js.map +1 -0
  127. package/dist/esm/src/wallet/substrates/index.js +8 -0
  128. package/dist/esm/src/wallet/substrates/index.js.map +1 -0
  129. package/dist/esm/src/wallet/substrates/window.CWI.js +100 -0
  130. package/dist/esm/src/wallet/substrates/window.CWI.js.map +1 -0
  131. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  132. package/dist/types/mod.d.ts +4 -0
  133. package/dist/types/mod.d.ts.map +1 -1
  134. package/dist/types/src/auth/Certificate.d.ts +76 -0
  135. package/dist/types/src/auth/Certificate.d.ts.map +1 -0
  136. package/dist/types/src/auth/index.d.ts +2 -0
  137. package/dist/types/src/auth/index.d.ts.map +1 -0
  138. package/dist/types/src/overlay-tools/LookupResolver.d.ts +71 -0
  139. package/dist/types/src/overlay-tools/LookupResolver.d.ts.map +1 -0
  140. package/dist/types/src/overlay-tools/OverlayAdminTokenTemplate.d.ts +44 -0
  141. package/dist/types/src/overlay-tools/OverlayAdminTokenTemplate.d.ts.map +1 -0
  142. package/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts +90 -0
  143. package/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts.map +1 -0
  144. package/dist/types/src/overlay-tools/index.d.ts +6 -0
  145. package/dist/types/src/overlay-tools/index.d.ts.map +1 -0
  146. package/dist/types/src/script/templates/PushDrop.d.ts +53 -0
  147. package/dist/types/src/script/templates/PushDrop.d.ts.map +1 -0
  148. package/dist/types/src/script/templates/index.d.ts +1 -0
  149. package/dist/types/src/script/templates/index.d.ts.map +1 -1
  150. package/dist/types/src/transaction/Beef.d.ts +16 -1
  151. package/dist/types/src/transaction/Beef.d.ts.map +1 -1
  152. package/dist/types/src/transaction/Transaction.d.ts.map +1 -1
  153. package/dist/types/src/wallet/CachedKeyDeriver.d.ts +92 -0
  154. package/dist/types/src/wallet/CachedKeyDeriver.d.ts.map +1 -0
  155. package/dist/types/src/wallet/KeyDeriver.d.ts +72 -0
  156. package/dist/types/src/wallet/KeyDeriver.d.ts.map +1 -0
  157. package/dist/types/src/wallet/ProtoWallet.d.ts +415 -0
  158. package/dist/types/src/wallet/ProtoWallet.d.ts.map +1 -0
  159. package/dist/types/src/wallet/Wallet.interfaces.d.ts +996 -0
  160. package/dist/types/src/wallet/Wallet.interfaces.d.ts.map +1 -0
  161. package/dist/types/src/wallet/WalletClient.d.ts +182 -0
  162. package/dist/types/src/wallet/WalletClient.d.ts.map +1 -0
  163. package/dist/types/src/wallet/WalletError.d.ts +14 -0
  164. package/dist/types/src/wallet/WalletError.d.ts.map +1 -0
  165. package/dist/types/src/wallet/index.d.ts +9 -0
  166. package/dist/types/src/wallet/index.d.ts.map +1 -0
  167. package/dist/types/src/wallet/substrates/HTTPWalletWire.d.ts +9 -0
  168. package/dist/types/src/wallet/substrates/HTTPWalletWire.d.ts.map +1 -0
  169. package/dist/types/src/wallet/substrates/WalletWire.d.ts +7 -0
  170. package/dist/types/src/wallet/substrates/WalletWire.d.ts.map +1 -0
  171. package/dist/types/src/wallet/substrates/WalletWireCalls.d.ts +33 -0
  172. package/dist/types/src/wallet/substrates/WalletWireCalls.d.ts.map +1 -0
  173. package/dist/types/src/wallet/substrates/WalletWireProcessor.d.ts +18 -0
  174. package/dist/types/src/wallet/substrates/WalletWireProcessor.d.ts.map +1 -0
  175. package/dist/types/src/wallet/substrates/WalletWireTransceiver.d.ts +196 -0
  176. package/dist/types/src/wallet/substrates/WalletWireTransceiver.d.ts.map +1 -0
  177. package/dist/types/src/wallet/substrates/XDM.d.ts +412 -0
  178. package/dist/types/src/wallet/substrates/XDM.d.ts.map +1 -0
  179. package/dist/types/src/wallet/substrates/index.d.ts +8 -0
  180. package/dist/types/src/wallet/substrates/index.d.ts.map +1 -0
  181. package/dist/types/src/wallet/substrates/window.CWI.d.ts +410 -0
  182. package/dist/types/src/wallet/substrates/window.CWI.d.ts.map +1 -0
  183. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  184. package/dist/umd/bundle.js +1 -1
  185. package/docs/overlay-tools.md +551 -0
  186. package/docs/script.md +135 -0
  187. package/docs/totp.md +119 -0
  188. package/docs/transaction.md +25 -0
  189. package/docs/wallet-substrates.md +10 -0
  190. package/docs/wallet.md +4182 -0
  191. package/mod.ts +5 -1
  192. package/package.json +44 -3
  193. package/src/auth/Certificate.ts +233 -0
  194. package/src/auth/__tests/Certificate.test.ts +282 -0
  195. package/src/auth/index.ts +1 -0
  196. package/src/overlay-tools/LookupResolver.ts +228 -0
  197. package/src/overlay-tools/OverlayAdminTokenTemplate.ts +79 -0
  198. package/src/overlay-tools/SHIPBroadcaster.ts +405 -0
  199. package/src/overlay-tools/__tests/LookupResolver.test.ts +1403 -0
  200. package/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.ts +69 -0
  201. package/src/overlay-tools/__tests/SHIPBroadcaster.test.ts +904 -0
  202. package/src/overlay-tools/index.ts +5 -0
  203. package/src/script/templates/PushDrop.ts +246 -0
  204. package/src/script/templates/__tests/PushDrop.test.ts +158 -0
  205. package/src/script/templates/index.ts +1 -0
  206. package/src/transaction/Beef.ts +36 -6
  207. package/src/transaction/Transaction.ts +13 -4
  208. package/src/transaction/__tests/Beef.test.ts +20 -6
  209. package/src/transaction/http/DefaultHttpClient.ts +1 -1
  210. package/src/wallet/CachedKeyDeriver.ts +193 -0
  211. package/src/wallet/KeyDeriver.ts +178 -0
  212. package/src/wallet/ProtoWallet.ts +732 -0
  213. package/src/wallet/Wallet.interfaces.ts +1170 -0
  214. package/src/wallet/WalletClient.ts +201 -0
  215. package/src/wallet/WalletError.ts +27 -0
  216. package/src/wallet/__tests/CachedKeyDeriver.test.ts +322 -0
  217. package/src/wallet/__tests/KeyDeriver.test.ts +118 -0
  218. package/src/wallet/__tests/ProtoWallet.test.ts +543 -0
  219. package/src/wallet/index.ts +8 -0
  220. package/src/wallet/substrates/HTTPWalletWire.ts +47 -0
  221. package/src/wallet/substrates/WalletWire.ts +6 -0
  222. package/src/wallet/substrates/WalletWireCalls.ts +34 -0
  223. package/src/wallet/substrates/WalletWireProcessor.ts +2046 -0
  224. package/src/wallet/substrates/WalletWireTransceiver.ts +1454 -0
  225. package/src/wallet/substrates/XDM.ts +157 -0
  226. package/src/wallet/substrates/__tests/WalletWire.integration.test.ts +2194 -0
  227. package/src/wallet/substrates/__tests/XDM.test.ts +659 -0
  228. package/src/wallet/substrates/index.ts +7 -0
  229. package/src/wallet/substrates/window.CWI.ts +133 -0
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const index_js_1 = require("../primitives/index.js");
4
+ /**
5
+ * Class responsible for deriving various types of keys using a root private key.
6
+ * It supports deriving public and private keys, symmetric keys, and revealing key linkages.
7
+ */
8
+ class KeyDeriver {
9
+ /**
10
+ * Initializes the KeyDeriver instance with a root private key.
11
+ * @param {PrivateKey | 'anyone'} rootKey - The root private key or the string 'anyone'.
12
+ */
13
+ constructor(rootKey) {
14
+ if (rootKey === 'anyone') {
15
+ this.rootKey = new index_js_1.PrivateKey(1);
16
+ }
17
+ else {
18
+ this.rootKey = rootKey;
19
+ }
20
+ }
21
+ /**
22
+ * Derives a public key based on protocol ID, key ID, and counterparty.
23
+ * @param {[0 | 1 | 2, string]} protocolID - The protocol ID including a security level and protocol name.
24
+ * @param {string} keyID - The key identifier.
25
+ * @param {PublicKey | string | 'self' | 'anyone'} counterparty - The counterparty's public key or a predefined value ('self' or 'anyone').
26
+ * @param {boolean} [forSelf=false] - Whether deriving for self.
27
+ * @returns {PublicKey} - The derived public key.
28
+ */
29
+ derivePublicKey(protocolID, keyID, counterparty, forSelf = false) {
30
+ counterparty = this.normalizeCounterparty(counterparty);
31
+ if (forSelf) {
32
+ return this.rootKey.deriveChild(counterparty, this.computeInvoiceNumber(protocolID, keyID)).toPublicKey();
33
+ }
34
+ else {
35
+ return counterparty.deriveChild(this.rootKey, this.computeInvoiceNumber(protocolID, keyID));
36
+ }
37
+ }
38
+ /**
39
+ * Derives a private key based on protocol ID, key ID, and counterparty.
40
+ * @param {[0 | 1 | 2, string]} protocolID - The protocol ID including a security level and protocol name.
41
+ * @param {string} keyID - The key identifier.
42
+ * @param {PublicKey | string | 'self' | 'anyone'} counterparty - The counterparty's public key or a predefined value ('self' or 'anyone').
43
+ * @returns {PrivateKey} - The derived private key.
44
+ */
45
+ derivePrivateKey(protocolID, keyID, counterparty) {
46
+ counterparty = this.normalizeCounterparty(counterparty);
47
+ return this.rootKey.deriveChild(counterparty, this.computeInvoiceNumber(protocolID, keyID));
48
+ }
49
+ /**
50
+ * Derives a symmetric key based on protocol ID, key ID, and counterparty.
51
+ * Note: Symmetric keys should not be derivable by everyone due to security risks.
52
+ * @param {[0 | 1 | 2, string]} protocolID - The protocol ID including a security level and protocol name.
53
+ * @param {string} keyID - The key identifier.
54
+ * @param {PublicKey | string | 'self' | 'anyone'} counterparty - The counterparty's public key or a predefined value ('self' or 'anyone').
55
+ * @returns {SymmetricKey} - The derived symmetric key.
56
+ * @throws {Error} - Throws an error if attempting to derive a symmetric key for 'anyone'.
57
+ */
58
+ deriveSymmetricKey(protocolID, keyID, counterparty) {
59
+ if (counterparty === 'anyone') {
60
+ throw new Error('Symmetric keys (such as encryption keys or HMAC keys) should not be derivable by everyone, because messages would be decryptable by anyone who knows the identity public key of the user, and HMACs would be similarly forgeable.');
61
+ }
62
+ counterparty = this.normalizeCounterparty(counterparty);
63
+ const derivedPublicKey = this.derivePublicKey(protocolID, keyID, counterparty);
64
+ const derivedPrivateKey = this.derivePrivateKey(protocolID, keyID, counterparty);
65
+ return new index_js_1.SymmetricKey(derivedPrivateKey.deriveSharedSecret(derivedPublicKey).x.toArray());
66
+ }
67
+ /**
68
+ * Reveals the shared secret between the root key and the counterparty.
69
+ * Note: This should not be used for 'self'.
70
+ * @param {PublicKey | string | 'self' | 'anyone'} counterparty - The counterparty's public key or a predefined value ('self' or 'anyone').
71
+ * @returns {number[]} - The shared secret as a number array.
72
+ * @throws {Error} - Throws an error if attempting to reveal a shared secret for 'self'.
73
+ */
74
+ revealCounterpartySecret(counterparty) {
75
+ if (counterparty === 'self') {
76
+ throw new Error('Counterparty secrets cannot be revealed for counterparty=self.');
77
+ }
78
+ counterparty = this.normalizeCounterparty(counterparty);
79
+ // Double-check to ensure not revealing the secret for 'self'
80
+ const self = this.rootKey.toPublicKey();
81
+ const keyDerivedBySelf = this.rootKey.deriveChild(self, 'test').toHex();
82
+ const keyDerivedByCounterparty = this.rootKey.deriveChild(counterparty, 'test').toHex();
83
+ if (keyDerivedBySelf === keyDerivedByCounterparty) {
84
+ throw new Error('Counterparty secrets cannot be revealed for counterparty=self.');
85
+ }
86
+ return this.rootKey.deriveSharedSecret(counterparty).encode(true);
87
+ }
88
+ /**
89
+ * Reveals the specific key association for a given protocol ID, key ID, and counterparty.
90
+ * @param {PublicKey | string | 'self' | 'anyone'} counterparty - The counterparty's public key or a predefined value ('self' or 'anyone').
91
+ * @param {[0 | 1 | 2, string]} protocolID - The protocol ID including a security level and protocol name.
92
+ * @param {string} keyID - The key identifier.
93
+ * @returns {number[]} - The specific key association as a number array.
94
+ */
95
+ revealSpecificSecret(counterparty, protocolID, keyID) {
96
+ counterparty = this.normalizeCounterparty(counterparty);
97
+ const sharedSecret = this.rootKey.deriveSharedSecret(counterparty);
98
+ const invoiceNumberBin = index_js_1.Utils.toArray(this.computeInvoiceNumber(protocolID, keyID), 'utf8');
99
+ return index_js_1.Hash.sha256hmac(sharedSecret.encode(true), invoiceNumberBin);
100
+ }
101
+ /**
102
+ * Normalizes the counterparty to a public key.
103
+ * @param {PublicKey | string | 'self' | 'anyone'} counterparty - The counterparty's public key or a predefined value ('self' or 'anyone').
104
+ * @returns {PublicKey} - The normalized counterparty public key.
105
+ * @throws {Error} - Throws an error if the counterparty is invalid.
106
+ */
107
+ normalizeCounterparty(counterparty) {
108
+ if (!counterparty) {
109
+ throw new Error('counterparty must be self, anyone or a public key!');
110
+ }
111
+ else if (counterparty === 'self') {
112
+ return this.rootKey.toPublicKey();
113
+ }
114
+ else if (counterparty === 'anyone') {
115
+ return new index_js_1.PrivateKey(1).toPublicKey();
116
+ }
117
+ else if (typeof counterparty === 'string') {
118
+ return index_js_1.PublicKey.fromString(counterparty);
119
+ }
120
+ else {
121
+ return counterparty;
122
+ }
123
+ }
124
+ /**
125
+ * Computes the invoice number based on the protocol ID and key ID.
126
+ * @param {[0 | 1 | 2, string]} protocolID - The protocol ID including a security level and protocol name.
127
+ * @param {string} keyID - The key identifier.
128
+ * @returns {string} - The computed invoice number.
129
+ * @throws {Error} - Throws an error if protocol ID or key ID are invalid.
130
+ */
131
+ computeInvoiceNumber(protocolID, keyID) {
132
+ const securityLevel = protocolID[0];
133
+ if (!Number.isInteger(securityLevel) || securityLevel < 0 || securityLevel > 2) {
134
+ throw new Error('Protocol security level must be 0, 1, or 2');
135
+ }
136
+ const protocolName = protocolID[1].toLowerCase().trim();
137
+ if (keyID.length > 800) {
138
+ throw new Error('Key IDs must be 800 characters or less');
139
+ }
140
+ if (keyID.length < 1) {
141
+ throw new Error('Key IDs must be 1 character or more');
142
+ }
143
+ if (protocolName.length > 400) {
144
+ // Specific linkage revelation is the only protocol ID that can contain another protocol ID.
145
+ // Therefore, we allow it to be long enough to encapsulate the target protocol
146
+ if (protocolName.startsWith('specific linkage revelation ')) {
147
+ // The format is: 'specific linkage revelation x YYYYY'
148
+ // Where: x is the security level and YYYYY is the target protocol
149
+ // Thus, the max acceptable length is 30 + 400 = 430 bytes
150
+ if (protocolName.length > 430) {
151
+ throw new Error('Specific linkage revelation protocol names must be 430 characters or less');
152
+ }
153
+ }
154
+ else {
155
+ throw new Error('Protocol names must be 400 characters or less');
156
+ }
157
+ }
158
+ if (protocolName.length < 5) {
159
+ throw new Error('Protocol names must be 5 characters or more');
160
+ }
161
+ if (protocolName.includes(' ')) {
162
+ throw new Error('Protocol names cannot contain multiple consecutive spaces (" ")');
163
+ }
164
+ if (!/^[a-z0-9 ]+$/g.test(protocolName)) {
165
+ throw new Error('Protocol names can only contain letters, numbers and spaces');
166
+ }
167
+ if (protocolName.endsWith(' protocol')) {
168
+ throw new Error('No need to end your protocol name with " protocol"');
169
+ }
170
+ return `${securityLevel}-${protocolName}-${keyID}`;
171
+ }
172
+ }
173
+ exports.default = KeyDeriver;
174
+ //# sourceMappingURL=KeyDeriver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KeyDeriver.js","sourceRoot":"","sources":["../../../../src/wallet/KeyDeriver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,245 @@
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
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ const KeyDeriver_js_1 = __importDefault(require("./KeyDeriver.js"));
40
+ const index_js_1 = require("../primitives/index.js");
41
+ const WalletError_js_1 = __importStar(require("./WalletError.js"));
42
+ /**
43
+ * A ProtoWallet is a structure that fulfills the Wallet interface, capable of performing all foundational cryptographic operations. It can derive keys, create signatures, facilitate encryption and HMAC operations, and reveal key linkages. However, ProtoWallet does not create transactions, manage outputs, interact with the blockchain, enable the management of identity certificates, or store any data.
44
+ */
45
+ class ProtoWallet {
46
+ constructor(rootKey, KeyDeriverClass = KeyDeriver_js_1.default) {
47
+ this.privilegedError = 'ProtoWallet is a single-keyring wallet, operating without context about whether its configured keyring is privileged.';
48
+ this.keyDeriver = new KeyDeriverClass(rootKey);
49
+ }
50
+ async createAction(args, originator) {
51
+ throw new WalletError_js_1.WalletError('ProtoWallet does not support creating transactions.', WalletError_js_1.default.unsupportedAction);
52
+ }
53
+ async signAction(args, originator) {
54
+ throw new WalletError_js_1.WalletError('ProtoWallet does not support creating transactions.', WalletError_js_1.default.unsupportedAction);
55
+ }
56
+ async abortAction(args, originator) {
57
+ throw new WalletError_js_1.WalletError('ProtoWallet does not support aborting transactions.', WalletError_js_1.default.unsupportedAction);
58
+ }
59
+ async listActions(args, originator) {
60
+ throw new WalletError_js_1.WalletError('ProtoWallet does not support retrieving transactions.', WalletError_js_1.default.unsupportedAction);
61
+ }
62
+ async internalizeAction(args, originator) {
63
+ throw new WalletError_js_1.WalletError('ProtoWallet does not support internalizing transactions.', WalletError_js_1.default.unsupportedAction);
64
+ }
65
+ async listOutputs(args, originator) {
66
+ throw new WalletError_js_1.WalletError('ProtoWallet does not support retrieving outputs.', WalletError_js_1.default.unsupportedAction);
67
+ }
68
+ async relinquishOutput(args, originator) {
69
+ throw new WalletError_js_1.WalletError('ProtoWallet does not support deleting outputs.', WalletError_js_1.default.unsupportedAction);
70
+ }
71
+ async getPublicKey(args, originator) {
72
+ if (args.privileged) {
73
+ throw new WalletError_js_1.WalletError(this.privilegedError);
74
+ }
75
+ if (args.identityKey) {
76
+ return { publicKey: this.keyDeriver.rootKey.toPublicKey().toString() };
77
+ }
78
+ else {
79
+ return {
80
+ publicKey: this.keyDeriver
81
+ .derivePublicKey(args.protocolID, args.keyID, args.counterparty || 'self', args.forSelf)
82
+ .toString()
83
+ };
84
+ }
85
+ }
86
+ async revealCounterpartyKeyLinkage(args, originator) {
87
+ if (args.privileged) {
88
+ throw new WalletError_js_1.WalletError(this.privilegedError);
89
+ }
90
+ const { publicKey: identityKey } = await this.getPublicKey({ identityKey: true });
91
+ const linkage = this.keyDeriver.revealCounterpartySecret(args.counterparty);
92
+ const linkageProof = new index_js_1.Schnorr().generateProof(this.keyDeriver.rootKey, this.keyDeriver.rootKey.toPublicKey(), index_js_1.PublicKey.fromString(args.counterparty), index_js_1.Point.fromDER(linkage));
93
+ const linkageProofBin = [
94
+ ...linkageProof.R.encode(true),
95
+ ...linkageProof.SPrime.encode(true),
96
+ ...linkageProof.z.toArray()
97
+ ];
98
+ const revelationTime = new Date().toISOString();
99
+ const { ciphertext: encryptedLinkage } = await this.encrypt({
100
+ plaintext: linkage,
101
+ protocolID: [2, 'counterparty linkage revelation'],
102
+ keyID: revelationTime,
103
+ counterparty: args.verifier
104
+ });
105
+ const { ciphertext: encryptedLinkageProof } = await this.encrypt({
106
+ plaintext: linkageProofBin,
107
+ protocolID: [2, 'counterparty linkage revelation'],
108
+ keyID: revelationTime,
109
+ counterparty: args.verifier
110
+ });
111
+ return {
112
+ prover: identityKey,
113
+ verifier: args.verifier,
114
+ counterparty: args.counterparty,
115
+ revelationTime,
116
+ encryptedLinkage,
117
+ encryptedLinkageProof
118
+ };
119
+ }
120
+ async revealSpecificKeyLinkage(args, originator) {
121
+ if (args.privileged) {
122
+ throw new WalletError_js_1.WalletError(this.privilegedError);
123
+ }
124
+ const { publicKey: identityKey } = await this.getPublicKey({ identityKey: true });
125
+ const linkage = this.keyDeriver.revealSpecificSecret(args.counterparty, args.protocolID, args.keyID);
126
+ const { ciphertext: encryptedLinkage } = await this.encrypt({
127
+ plaintext: linkage,
128
+ protocolID: [2, `specific linkage revelation ${args.protocolID[0]} ${args.protocolID[1]}`],
129
+ keyID: args.keyID,
130
+ counterparty: args.verifier
131
+ });
132
+ const { ciphertext: encryptedLinkageProof } = await this.encrypt({
133
+ plaintext: [0], // Proof type 0, no proof provided
134
+ protocolID: [2, `specific linkage revelation ${args.protocolID[0]} ${args.protocolID[1]}`],
135
+ keyID: args.keyID,
136
+ counterparty: args.verifier
137
+ });
138
+ return {
139
+ prover: identityKey,
140
+ verifier: args.verifier,
141
+ counterparty: args.counterparty,
142
+ protocolID: args.protocolID,
143
+ keyID: args.keyID,
144
+ encryptedLinkage,
145
+ encryptedLinkageProof,
146
+ proofType: 0
147
+ };
148
+ }
149
+ async encrypt(args, originator) {
150
+ if (args.privileged) {
151
+ throw new WalletError_js_1.WalletError(this.privilegedError);
152
+ }
153
+ const key = this.keyDeriver.deriveSymmetricKey(args.protocolID, args.keyID, args.counterparty || 'self');
154
+ return { ciphertext: key.encrypt(args.plaintext) };
155
+ }
156
+ async decrypt(args, originator) {
157
+ if (args.privileged) {
158
+ throw new WalletError_js_1.WalletError(this.privilegedError);
159
+ }
160
+ const key = this.keyDeriver.deriveSymmetricKey(args.protocolID, args.keyID, args.counterparty || 'self');
161
+ return { plaintext: key.decrypt(args.ciphertext) };
162
+ }
163
+ async createHmac(args, originator) {
164
+ if (args.privileged) {
165
+ throw new WalletError_js_1.WalletError(this.privilegedError);
166
+ }
167
+ const key = this.keyDeriver.deriveSymmetricKey(args.protocolID, args.keyID, args.counterparty || 'self');
168
+ return { hmac: index_js_1.Hash.sha256hmac(key.toArray(), args.data) };
169
+ }
170
+ async verifyHmac(args, originator) {
171
+ if (args.privileged) {
172
+ throw new WalletError_js_1.WalletError(this.privilegedError);
173
+ }
174
+ const key = this.keyDeriver.deriveSymmetricKey(args.protocolID, args.keyID, args.counterparty || 'self');
175
+ const valid = index_js_1.Hash.sha256hmac(key.toArray(), args.data).toString() === args.hmac.toString();
176
+ if (!valid) {
177
+ throw new WalletError_js_1.WalletError('HMAC is not valid', WalletError_js_1.default.invalidHmac);
178
+ }
179
+ return { valid };
180
+ }
181
+ async createSignature(args, originator) {
182
+ if (args.privileged) {
183
+ throw new WalletError_js_1.WalletError(this.privilegedError);
184
+ }
185
+ let hash = args.hashToDirectlySign;
186
+ if (!hash) {
187
+ hash = index_js_1.Hash.sha256(args.data);
188
+ }
189
+ const key = this.keyDeriver.derivePrivateKey(args.protocolID, args.keyID, args.counterparty || 'anyone');
190
+ return { signature: index_js_1.ECDSA.sign(new index_js_1.BigNumber(hash), key, true).toDER() };
191
+ }
192
+ async verifySignature(args, originator) {
193
+ if (args.privileged) {
194
+ throw new WalletError_js_1.WalletError(this.privilegedError);
195
+ }
196
+ let hash = args.hashToDirectlyVerify;
197
+ if (!hash) {
198
+ hash = index_js_1.Hash.sha256(args.data);
199
+ }
200
+ const key = this.keyDeriver.derivePublicKey(args.protocolID, args.keyID, args.counterparty || 'self', args.forSelf);
201
+ const valid = index_js_1.ECDSA.verify(new index_js_1.BigNumber(hash), index_js_1.Signature.fromDER(args.signature), key);
202
+ if (!valid) {
203
+ throw new WalletError_js_1.WalletError('Signature is not valid', WalletError_js_1.default.invalidSignature);
204
+ }
205
+ return { valid };
206
+ }
207
+ async acquireCertificate(args, originator) {
208
+ throw new WalletError_js_1.WalletError('ProtoWallet does not support acquiring certificates.', WalletError_js_1.default.unsupportedAction);
209
+ }
210
+ async listCertificates(args, originator) {
211
+ throw new WalletError_js_1.WalletError('ProtoWallet does not support retrieving certificates.', WalletError_js_1.default.unsupportedAction);
212
+ }
213
+ async proveCertificate(args, originator) {
214
+ throw new WalletError_js_1.WalletError('ProtoWallet does not support proving certificates.', WalletError_js_1.default.unsupportedAction);
215
+ }
216
+ async relinquishCertificate(args, originator) {
217
+ throw new WalletError_js_1.WalletError('ProtoWallet does not support deleting certificates.', WalletError_js_1.default.unsupportedAction);
218
+ }
219
+ async discoverByIdentityKey(args, originator) {
220
+ throw new WalletError_js_1.WalletError('ProtoWallet does not support resolving identities.', WalletError_js_1.default.unsupportedAction);
221
+ }
222
+ async discoverByAttributes(args, originator) {
223
+ throw new WalletError_js_1.WalletError('ProtoWallet does not support resolving identities.', WalletError_js_1.default.unsupportedAction);
224
+ }
225
+ async isAuthenticated(args, originator) {
226
+ return { authenticated: true };
227
+ }
228
+ async waitForAuthentication(args, originator) {
229
+ return { authenticated: true };
230
+ }
231
+ async getHeight(args, originator) {
232
+ throw new WalletError_js_1.WalletError('ProtoWallet does not support blockchain tracking.', WalletError_js_1.default.unsupportedAction);
233
+ }
234
+ async getHeaderForHeight(args, originator) {
235
+ throw new WalletError_js_1.WalletError('ProtoWallet does not support blockchain tracking.', WalletError_js_1.default.unsupportedAction);
236
+ }
237
+ async getNetwork(args, originator) {
238
+ return { network: 'mainnet' };
239
+ }
240
+ async getVersion(args, originator) {
241
+ return { version: 'proto-1.0.0' };
242
+ }
243
+ }
244
+ exports.default = ProtoWallet;
245
+ //# sourceMappingURL=ProtoWallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProtoWallet.js","sourceRoot":"","sources":["../../../../src/wallet/ProtoWallet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=Wallet.interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Wallet.interfaces.js","sourceRoot":"","sources":["../../../../src/wallet/Wallet.interfaces.ts"],"names":[],"mappings":""}
@@ -0,0 +1,181 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const window_CWI_js_1 = __importDefault(require("./substrates/window.CWI.js"));
7
+ const XDM_js_1 = __importDefault(require("./substrates/XDM.js"));
8
+ const WalletWireTransceiver_js_1 = __importDefault(require("./substrates/WalletWireTransceiver.js"));
9
+ const HTTPWalletWire_js_1 = __importDefault(require("./substrates/HTTPWalletWire.js"));
10
+ const MAX_XDM_RESPONSE_WAIT = 200;
11
+ /**
12
+ * The SDK is how applications communicate with wallets over a communications substrate.
13
+ */
14
+ class WalletClient {
15
+ constructor(substrate = 'auto', originator) {
16
+ if (substrate === 'Cicada')
17
+ substrate = new WalletWireTransceiver_js_1.default(new HTTPWalletWire_js_1.default(originator));
18
+ if (substrate === 'window.CWI')
19
+ substrate = new window_CWI_js_1.default();
20
+ if (substrate === 'XDM')
21
+ substrate = new XDM_js_1.default();
22
+ this.substrate = substrate;
23
+ this.originator = originator;
24
+ }
25
+ async connectToSubstrate() {
26
+ if (typeof this.substrate === 'object') {
27
+ return; // substrate is already connected
28
+ }
29
+ let sub;
30
+ const checkSub = async (timeout) => {
31
+ let result;
32
+ if (typeof timeout === 'number') {
33
+ result = await Promise.race([
34
+ sub.getVersion({}),
35
+ new Promise((_, reject) => setTimeout(() => reject(new Error('Timed out.')), timeout))
36
+ ]);
37
+ }
38
+ else {
39
+ result = await sub.getVersion({});
40
+ }
41
+ if (typeof result !== 'object' || typeof result.version !== 'string') {
42
+ throw new Error('Failed to use substrate.');
43
+ }
44
+ };
45
+ try {
46
+ sub = new window_CWI_js_1.default();
47
+ await checkSub();
48
+ this.substrate = sub;
49
+ }
50
+ catch (e) {
51
+ try {
52
+ sub = new XDM_js_1.default();
53
+ await checkSub(MAX_XDM_RESPONSE_WAIT);
54
+ this.substrate = sub;
55
+ }
56
+ catch (e) {
57
+ try {
58
+ sub = new WalletWireTransceiver_js_1.default(new HTTPWalletWire_js_1.default(this.originator));
59
+ await checkSub();
60
+ this.substrate = sub;
61
+ }
62
+ catch (e) {
63
+ throw new Error('No wallet available over any communication substrate. Install a BSV wallet today!');
64
+ }
65
+ }
66
+ }
67
+ }
68
+ async createAction(args) {
69
+ await this.connectToSubstrate();
70
+ return await this.substrate.createAction(args, this.originator);
71
+ }
72
+ async signAction(args) {
73
+ await this.connectToSubstrate();
74
+ return await this.substrate.signAction(args, this.originator);
75
+ }
76
+ async abortAction(args) {
77
+ await this.connectToSubstrate();
78
+ return await this.substrate.abortAction(args, this.originator);
79
+ }
80
+ async listActions(args) {
81
+ await this.connectToSubstrate();
82
+ return await this.substrate.listActions(args, this.originator);
83
+ }
84
+ async internalizeAction(args) {
85
+ await this.connectToSubstrate();
86
+ return await this.substrate.internalizeAction(args, this.originator);
87
+ }
88
+ async listOutputs(args) {
89
+ await this.connectToSubstrate();
90
+ return await this.substrate.listOutputs(args, this.originator);
91
+ }
92
+ async relinquishOutput(args) {
93
+ await this.connectToSubstrate();
94
+ return await this.substrate.relinquishOutput(args, this.originator);
95
+ }
96
+ async getPublicKey(args) {
97
+ await this.connectToSubstrate();
98
+ return await this.substrate.getPublicKey(args, this.originator);
99
+ }
100
+ async revealCounterpartyKeyLinkage(args) {
101
+ await this.connectToSubstrate();
102
+ return await this.substrate.revealCounterpartyKeyLinkage(args, this.originator);
103
+ }
104
+ async revealSpecificKeyLinkage(args) {
105
+ await this.connectToSubstrate();
106
+ return await this.substrate.revealSpecificKeyLinkage(args, this.originator);
107
+ }
108
+ async encrypt(args) {
109
+ await this.connectToSubstrate();
110
+ return await this.substrate.encrypt(args, this.originator);
111
+ }
112
+ async decrypt(args) {
113
+ return await this.substrate.decrypt(args, this.originator);
114
+ }
115
+ async createHmac(args) {
116
+ await this.connectToSubstrate();
117
+ return await this.substrate.createHmac(args, this.originator);
118
+ }
119
+ async verifyHmac(args) {
120
+ await this.connectToSubstrate();
121
+ return await this.substrate.verifyHmac(args, this.originator);
122
+ }
123
+ async createSignature(args) {
124
+ await this.connectToSubstrate();
125
+ return await this.substrate.createSignature(args, this.originator);
126
+ }
127
+ async verifySignature(args) {
128
+ await this.connectToSubstrate();
129
+ return await this.substrate.verifySignature(args, this.originator);
130
+ }
131
+ async acquireCertificate(args) {
132
+ await this.connectToSubstrate();
133
+ return await this.substrate.acquireCertificate(args, this.originator);
134
+ }
135
+ async listCertificates(args) {
136
+ await this.connectToSubstrate();
137
+ return await this.substrate.listCertificates(args, this.originator);
138
+ }
139
+ async proveCertificate(args) {
140
+ await this.connectToSubstrate();
141
+ return await this.substrate.proveCertificate(args, this.originator);
142
+ }
143
+ async relinquishCertificate(args) {
144
+ await this.connectToSubstrate();
145
+ return await this.substrate.relinquishCertificate(args, this.originator);
146
+ }
147
+ async discoverByIdentityKey(args) {
148
+ await this.connectToSubstrate();
149
+ return await this.substrate.discoverByIdentityKey(args, this.originator);
150
+ }
151
+ async discoverByAttributes(args) {
152
+ await this.connectToSubstrate();
153
+ return await this.substrate.discoverByAttributes(args, this.originator);
154
+ }
155
+ async isAuthenticated(args = {}) {
156
+ await this.connectToSubstrate();
157
+ return await this.substrate.isAuthenticated(args, this.originator);
158
+ }
159
+ async waitForAuthentication(args = {}) {
160
+ await this.connectToSubstrate();
161
+ return await this.substrate.waitForAuthentication(args, this.originator);
162
+ }
163
+ async getHeight(args = {}) {
164
+ await this.connectToSubstrate();
165
+ return await this.substrate.getHeight(args, this.originator);
166
+ }
167
+ async getHeaderForHeight(args) {
168
+ await this.connectToSubstrate();
169
+ return await this.substrate.getHeaderForHeight(args, this.originator);
170
+ }
171
+ async getNetwork(args = {}) {
172
+ await this.connectToSubstrate();
173
+ return await this.substrate.getNetwork(args, this.originator);
174
+ }
175
+ async getVersion(args = {}) {
176
+ await this.connectToSubstrate();
177
+ return await this.substrate.getVersion(args, this.originator);
178
+ }
179
+ }
180
+ exports.default = WalletClient;
181
+ //# sourceMappingURL=WalletClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletClient.js","sourceRoot":"","sources":["../../../../src/wallet/WalletClient.ts"],"names":[],"mappings":"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"}