@bsv/sdk 1.6.15 → 1.6.17

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 (138) hide show
  1. package/dist/cjs/package.json +1 -1
  2. package/dist/cjs/src/auth/Peer.js +16 -25
  3. package/dist/cjs/src/auth/Peer.js.map +1 -1
  4. package/dist/cjs/src/auth/SessionManager.js +2 -4
  5. package/dist/cjs/src/auth/SessionManager.js.map +1 -1
  6. package/dist/cjs/src/auth/certificates/Certificate.js +2 -4
  7. package/dist/cjs/src/auth/certificates/Certificate.js.map +1 -1
  8. package/dist/cjs/src/auth/certificates/MasterCertificate.js +1 -1
  9. package/dist/cjs/src/auth/certificates/MasterCertificate.js.map +1 -1
  10. package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js +1 -1
  11. package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
  12. package/dist/cjs/src/auth/clients/AuthFetch.js +2 -4
  13. package/dist/cjs/src/auth/clients/AuthFetch.js.map +1 -1
  14. package/dist/cjs/src/compat/ECIES.js +1 -1
  15. package/dist/cjs/src/compat/ECIES.js.map +1 -1
  16. package/dist/cjs/src/compat/Mnemonic.js +2 -2
  17. package/dist/cjs/src/compat/Mnemonic.js.map +1 -1
  18. package/dist/cjs/src/identity/IdentityClient.js +1 -1
  19. package/dist/cjs/src/identity/IdentityClient.js.map +1 -1
  20. package/dist/cjs/src/kvstore/LocalKVStore.js +1 -2
  21. package/dist/cjs/src/kvstore/LocalKVStore.js.map +1 -1
  22. package/dist/cjs/src/overlay-tools/LookupResolver.js +6 -8
  23. package/dist/cjs/src/overlay-tools/LookupResolver.js.map +1 -1
  24. package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js +9 -10
  25. package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js.map +1 -1
  26. package/dist/cjs/src/primitives/AESGCM.js +1 -2
  27. package/dist/cjs/src/primitives/AESGCM.js.map +1 -1
  28. package/dist/cjs/src/primitives/BigNumber.js +2 -3
  29. package/dist/cjs/src/primitives/BigNumber.js.map +1 -1
  30. package/dist/cjs/src/primitives/Curve.js +2 -3
  31. package/dist/cjs/src/primitives/Curve.js.map +1 -1
  32. package/dist/cjs/src/primitives/ECDSA.js +174 -396
  33. package/dist/cjs/src/primitives/ECDSA.js.map +1 -1
  34. package/dist/cjs/src/primitives/JacobianPoint.js +1 -2
  35. package/dist/cjs/src/primitives/JacobianPoint.js.map +1 -1
  36. package/dist/cjs/src/primitives/Point.js +279 -126
  37. package/dist/cjs/src/primitives/Point.js.map +1 -1
  38. package/dist/cjs/src/primitives/Polynomial.js +1 -1
  39. package/dist/cjs/src/primitives/Polynomial.js.map +1 -1
  40. package/dist/cjs/src/primitives/PrivateKey.js +19 -2
  41. package/dist/cjs/src/primitives/PrivateKey.js.map +1 -1
  42. package/dist/cjs/src/primitives/PublicKey.js +19 -2
  43. package/dist/cjs/src/primitives/PublicKey.js.map +1 -1
  44. package/dist/cjs/src/primitives/Random.js +1 -2
  45. package/dist/cjs/src/primitives/Random.js.map +1 -1
  46. package/dist/cjs/src/primitives/TransactionSignature.js +5 -7
  47. package/dist/cjs/src/primitives/TransactionSignature.js.map +1 -1
  48. package/dist/cjs/src/primitives/utils.js +1 -2
  49. package/dist/cjs/src/primitives/utils.js.map +1 -1
  50. package/dist/cjs/src/registry/RegistryClient.js +2 -4
  51. package/dist/cjs/src/registry/RegistryClient.js.map +1 -1
  52. package/dist/cjs/src/script/Spend.js +1 -2
  53. package/dist/cjs/src/script/Spend.js.map +1 -1
  54. package/dist/cjs/src/script/templates/P2PKH.js +4 -4
  55. package/dist/cjs/src/script/templates/P2PKH.js.map +1 -1
  56. package/dist/cjs/src/script/templates/PushDrop.js +7 -8
  57. package/dist/cjs/src/script/templates/PushDrop.js.map +1 -1
  58. package/dist/cjs/src/script/templates/RPuzzle.js +7 -6
  59. package/dist/cjs/src/script/templates/RPuzzle.js.map +1 -1
  60. package/dist/cjs/src/storage/StorageDownloader.js +1 -1
  61. package/dist/cjs/src/storage/StorageDownloader.js.map +1 -1
  62. package/dist/cjs/src/storage/StorageUploader.js +6 -9
  63. package/dist/cjs/src/storage/StorageUploader.js.map +1 -1
  64. package/dist/cjs/src/transaction/Beef.js +2 -3
  65. package/dist/cjs/src/transaction/Beef.js.map +1 -1
  66. package/dist/cjs/src/transaction/MerklePath.js +9 -12
  67. package/dist/cjs/src/transaction/MerklePath.js.map +1 -1
  68. package/dist/cjs/src/transaction/Transaction.js +15 -22
  69. package/dist/cjs/src/transaction/Transaction.js.map +1 -1
  70. package/dist/cjs/src/transaction/broadcasters/ARC.js +3 -3
  71. package/dist/cjs/src/transaction/broadcasters/ARC.js.map +1 -1
  72. package/dist/cjs/src/transaction/broadcasters/Teranode.js +2 -3
  73. package/dist/cjs/src/transaction/broadcasters/Teranode.js.map +1 -1
  74. package/dist/cjs/src/transaction/broadcasters/WhatsOnChainBroadcaster.js +2 -3
  75. package/dist/cjs/src/transaction/broadcasters/WhatsOnChainBroadcaster.js.map +1 -1
  76. package/dist/cjs/src/transaction/chaintrackers/BlockHeadersService.js +2 -2
  77. package/dist/cjs/src/transaction/chaintrackers/BlockHeadersService.js.map +1 -1
  78. package/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js +2 -2
  79. package/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -1
  80. package/dist/cjs/src/transaction/http/FetchHttpClient.js +1 -2
  81. package/dist/cjs/src/transaction/http/FetchHttpClient.js.map +1 -1
  82. package/dist/cjs/src/wallet/CachedKeyDeriver.js +13 -2
  83. package/dist/cjs/src/wallet/CachedKeyDeriver.js.map +1 -1
  84. package/dist/cjs/src/wallet/KeyDeriver.js +12 -8
  85. package/dist/cjs/src/wallet/KeyDeriver.js.map +1 -1
  86. package/dist/cjs/src/wallet/ProtoWallet.js +26 -27
  87. package/dist/cjs/src/wallet/ProtoWallet.js.map +1 -1
  88. package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js +2 -3
  89. package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
  90. package/dist/cjs/src/wallet/substrates/HTTPWalletWire.js +1 -1
  91. package/dist/cjs/src/wallet/substrates/HTTPWalletWire.js.map +1 -1
  92. package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js +12 -19
  93. package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
  94. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  95. package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js +2 -2
  96. package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
  97. package/dist/esm/src/primitives/ECDSA.js +174 -395
  98. package/dist/esm/src/primitives/ECDSA.js.map +1 -1
  99. package/dist/esm/src/primitives/Point.js +254 -91
  100. package/dist/esm/src/primitives/Point.js.map +1 -1
  101. package/dist/esm/src/primitives/PrivateKey.js +19 -2
  102. package/dist/esm/src/primitives/PrivateKey.js.map +1 -1
  103. package/dist/esm/src/primitives/PublicKey.js +19 -2
  104. package/dist/esm/src/primitives/PublicKey.js.map +1 -1
  105. package/dist/esm/src/wallet/CachedKeyDeriver.js +20 -1
  106. package/dist/esm/src/wallet/CachedKeyDeriver.js.map +1 -1
  107. package/dist/esm/src/wallet/KeyDeriver.js +14 -6
  108. package/dist/esm/src/wallet/KeyDeriver.js.map +1 -1
  109. package/dist/esm/src/wallet/ProtoWallet.js +2 -2
  110. package/dist/esm/src/wallet/ProtoWallet.js.map +1 -1
  111. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  112. package/dist/types/src/auth/certificates/__tests/CompletedProtoWallet.d.ts.map +1 -1
  113. package/dist/types/src/primitives/ECDSA.d.ts.map +1 -1
  114. package/dist/types/src/primitives/Point.d.ts.map +1 -1
  115. package/dist/types/src/primitives/PrivateKey.d.ts +3 -1
  116. package/dist/types/src/primitives/PrivateKey.d.ts.map +1 -1
  117. package/dist/types/src/primitives/PublicKey.d.ts +3 -1
  118. package/dist/types/src/primitives/PublicKey.d.ts.map +1 -1
  119. package/dist/types/src/wallet/CachedKeyDeriver.d.ts +10 -2
  120. package/dist/types/src/wallet/CachedKeyDeriver.d.ts.map +1 -1
  121. package/dist/types/src/wallet/KeyDeriver.d.ts +5 -2
  122. package/dist/types/src/wallet/KeyDeriver.d.ts.map +1 -1
  123. package/dist/types/src/wallet/ProtoWallet.d.ts.map +1 -1
  124. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  125. package/dist/umd/bundle.js +1 -1
  126. package/docs/reference/primitives.md +179 -383
  127. package/docs/reference/wallet.md +25 -6
  128. package/package.json +1 -1
  129. package/src/auth/certificates/__tests/CompletedProtoWallet.ts +3 -2
  130. package/src/primitives/ECDSA.ts +218 -488
  131. package/src/primitives/Point.ts +291 -94
  132. package/src/primitives/PrivateKey.ts +22 -2
  133. package/src/primitives/PublicKey.ts +22 -2
  134. package/src/transaction/__tests/Transaction.test.ts +1 -1
  135. package/src/wallet/CachedKeyDeriver.ts +32 -8
  136. package/src/wallet/KeyDeriver.ts +24 -7
  137. package/src/wallet/ProtoWallet.ts +3 -2
  138. package/src/wallet/__tests/ProtoWallet.test.ts +46 -1
@@ -1549,7 +1549,9 @@ This is useful for optimizing performance when the same keys are derived multipl
1549
1549
  It supports configurable cache size with sane defaults and maintains cache entries using LRU (Least Recently Used) eviction policy.
1550
1550
 
1551
1551
  ```ts
1552
- export default class CachedKeyDeriver {
1552
+ export default class CachedKeyDeriver implements KeyDeriverApi {
1553
+ rootKey: PrivateKey;
1554
+ identityKey: string;
1553
1555
  constructor(rootKey: PrivateKey | "anyone", options?: {
1554
1556
  maxCacheSize?: number;
1555
1557
  })
@@ -1561,7 +1563,7 @@ export default class CachedKeyDeriver {
1561
1563
  }
1562
1564
  ```
1563
1565
 
1564
- See also: [Counterparty](./wallet.md#type-counterparty), [PrivateKey](./primitives.md#class-privatekey), [PublicKey](./primitives.md#class-publickey), [SymmetricKey](./primitives.md#class-symmetrickey), [WalletProtocol](./wallet.md#type-walletprotocol)
1566
+ See also: [Counterparty](./wallet.md#type-counterparty), [KeyDeriverApi](./wallet.md#interface-keyderiverapi), [PrivateKey](./primitives.md#class-privatekey), [PublicKey](./primitives.md#class-publickey), [SymmetricKey](./primitives.md#class-symmetrickey), [WalletProtocol](./wallet.md#type-walletprotocol)
1565
1567
 
1566
1568
  #### Constructor
1567
1569
 
@@ -1581,6 +1583,23 @@ Argument Details
1581
1583
  + **options**
1582
1584
  + Optional settings for the cache.
1583
1585
 
1586
+ #### Property identityKey
1587
+
1588
+ The identity of this key deriver which is normally the public key associated with the `rootKey`
1589
+
1590
+ ```ts
1591
+ identityKey: string
1592
+ ```
1593
+
1594
+ #### Property rootKey
1595
+
1596
+ The root key from which all other keys are derived.
1597
+
1598
+ ```ts
1599
+ rootKey: PrivateKey
1600
+ ```
1601
+ See also: [PrivateKey](./primitives.md#class-privatekey)
1602
+
1584
1603
  #### Method derivePrivateKey
1585
1604
 
1586
1605
  Derives a private key based on protocol ID, key ID, and counterparty.
@@ -1955,7 +1974,7 @@ It supports deriving public and private keys, symmetric keys, and revealing key
1955
1974
  export class KeyDeriver implements KeyDeriverApi {
1956
1975
  rootKey: PrivateKey;
1957
1976
  identityKey: string;
1958
- constructor(rootKey: PrivateKey | "anyone")
1977
+ constructor(rootKey: PrivateKey | "anyone", private readonly cacheSharedSecret?: ((priv: PrivateKey, pub: Point, point: Point) => void), private readonly retrieveCachedSharedSecret?: ((priv: PrivateKey, pub: Point) => (Point | undefined)))
1959
1978
  derivePublicKey(protocolID: WalletProtocol, keyID: string, counterparty: Counterparty, forSelf: boolean = false): PublicKey
1960
1979
  derivePrivateKey(protocolID: WalletProtocol, keyID: string, counterparty: Counterparty): PrivateKey
1961
1980
  deriveSymmetricKey(protocolID: WalletProtocol, keyID: string, counterparty: Counterparty): SymmetricKey
@@ -1964,16 +1983,16 @@ export class KeyDeriver implements KeyDeriverApi {
1964
1983
  }
1965
1984
  ```
1966
1985
 
1967
- See also: [Counterparty](./wallet.md#type-counterparty), [KeyDeriverApi](./wallet.md#interface-keyderiverapi), [PrivateKey](./primitives.md#class-privatekey), [PublicKey](./primitives.md#class-publickey), [SymmetricKey](./primitives.md#class-symmetrickey), [WalletProtocol](./wallet.md#type-walletprotocol)
1986
+ See also: [Counterparty](./wallet.md#type-counterparty), [KeyDeriverApi](./wallet.md#interface-keyderiverapi), [Point](./primitives.md#class-point), [PrivateKey](./primitives.md#class-privatekey), [PublicKey](./primitives.md#class-publickey), [SymmetricKey](./primitives.md#class-symmetrickey), [WalletProtocol](./wallet.md#type-walletprotocol)
1968
1987
 
1969
1988
  #### Constructor
1970
1989
 
1971
1990
  Initializes the KeyDeriver instance with a root private key.
1972
1991
 
1973
1992
  ```ts
1974
- constructor(rootKey: PrivateKey | "anyone")
1993
+ constructor(rootKey: PrivateKey | "anyone", private readonly cacheSharedSecret?: ((priv: PrivateKey, pub: Point, point: Point) => void), private readonly retrieveCachedSharedSecret?: ((priv: PrivateKey, pub: Point) => (Point | undefined)))
1975
1994
  ```
1976
- See also: [PrivateKey](./primitives.md#class-privatekey)
1995
+ See also: [Point](./primitives.md#class-point), [PrivateKey](./primitives.md#class-privatekey)
1977
1996
 
1978
1997
  Argument Details
1979
1998
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bsv/sdk",
3
- "version": "1.6.15",
3
+ "version": "1.6.17",
4
4
  "type": "module",
5
5
  "description": "BSV Blockchain Software Development Kit",
6
6
  "main": "dist/cjs/mod.js",
@@ -23,7 +23,8 @@ import {
23
23
  PubKeyHex,
24
24
  AuthenticatedResult,
25
25
  GetNetworkResult,
26
- GetVersionResult
26
+ GetVersionResult,
27
+ CachedKeyDeriver
27
28
  } from '../../../wallet/index.js'
28
29
 
29
30
  // Test Mock wallet which extends ProtoWallet but still implements Wallet interface
@@ -41,7 +42,7 @@ export class CompletedProtoWallet
41
42
  typeof rootKeyOrKeyDeriver === 'string' ||
42
43
  rootKeyOrKeyDeriver instanceof PrivateKey
43
44
  ) {
44
- this.keyDeriver = new KeyDeriver(rootKeyOrKeyDeriver)
45
+ this.keyDeriver = new CachedKeyDeriver(rootKeyOrKeyDeriver)
45
46
  } else {
46
47
  throw new Error('Invalid key deriver provided')
47
48
  }