@bsv/sdk 1.1.12 → 1.1.14

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 (146) hide show
  1. package/dist/cjs/package.json +1 -1
  2. package/dist/cjs/src/primitives/Point.js +28 -8
  3. package/dist/cjs/src/primitives/Point.js.map +1 -1
  4. package/dist/cjs/src/primitives/Polynomial.js +81 -0
  5. package/dist/cjs/src/primitives/Polynomial.js.map +1 -0
  6. package/dist/cjs/src/primitives/PrivateKey.js +165 -0
  7. package/dist/cjs/src/primitives/PrivateKey.js.map +1 -1
  8. package/dist/cjs/src/primitives/PublicKey.js +16 -2
  9. package/dist/cjs/src/primitives/PublicKey.js.map +1 -1
  10. package/dist/cjs/src/primitives/index.js +5 -1
  11. package/dist/cjs/src/primitives/index.js.map +1 -1
  12. package/dist/cjs/src/primitives/utils.js +1 -1
  13. package/dist/cjs/src/script/templates/P2PKH.js.map +1 -1
  14. package/dist/cjs/src/script/templates/RPuzzle.js.map +1 -1
  15. package/dist/cjs/src/transaction/Transaction.js +9 -4
  16. package/dist/cjs/src/transaction/Transaction.js.map +1 -1
  17. package/dist/cjs/src/transaction/broadcasters/ARC.js +4 -4
  18. package/dist/cjs/src/transaction/broadcasters/ARC.js.map +1 -1
  19. package/dist/cjs/src/transaction/broadcasters/DefaultBroadcaster.js.map +1 -1
  20. package/dist/cjs/src/transaction/broadcasters/WhatsOnChainBroadcaster.js +3 -3
  21. package/dist/cjs/src/transaction/broadcasters/WhatsOnChainBroadcaster.js.map +1 -1
  22. package/dist/cjs/src/transaction/chaintrackers/DefaultChainTracker.js.map +1 -1
  23. package/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js +2 -2
  24. package/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -1
  25. package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
  26. package/dist/cjs/src/transaction/http/DefaultHttpClient.js +2 -2
  27. package/dist/cjs/src/transaction/http/DefaultHttpClient.js.map +1 -1
  28. package/dist/cjs/src/transaction/http/FetchHttpClient.js +2 -2
  29. package/dist/cjs/src/transaction/http/FetchHttpClient.js.map +1 -1
  30. package/dist/cjs/src/transaction/http/NodejsHttpClient.js +2 -2
  31. package/dist/cjs/src/transaction/http/NodejsHttpClient.js.map +1 -1
  32. package/dist/cjs/src/transaction/http/index.js.map +1 -1
  33. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  34. package/dist/esm/src/primitives/Point.js +28 -8
  35. package/dist/esm/src/primitives/Point.js.map +1 -1
  36. package/dist/esm/src/primitives/Polynomial.js +77 -0
  37. package/dist/esm/src/primitives/Polynomial.js.map +1 -0
  38. package/dist/esm/src/primitives/PrivateKey.js +143 -0
  39. package/dist/esm/src/primitives/PrivateKey.js.map +1 -1
  40. package/dist/esm/src/primitives/PublicKey.js +16 -2
  41. package/dist/esm/src/primitives/PublicKey.js.map +1 -1
  42. package/dist/esm/src/primitives/index.js +2 -1
  43. package/dist/esm/src/primitives/index.js.map +1 -1
  44. package/dist/esm/src/primitives/utils.js +1 -1
  45. package/dist/esm/src/script/templates/P2PKH.js.map +1 -1
  46. package/dist/esm/src/script/templates/RPuzzle.js.map +1 -1
  47. package/dist/esm/src/transaction/Transaction.js +9 -4
  48. package/dist/esm/src/transaction/Transaction.js.map +1 -1
  49. package/dist/esm/src/transaction/broadcasters/ARC.js +7 -7
  50. package/dist/esm/src/transaction/broadcasters/ARC.js.map +1 -1
  51. package/dist/esm/src/transaction/broadcasters/DefaultBroadcaster.js +1 -1
  52. package/dist/esm/src/transaction/broadcasters/DefaultBroadcaster.js.map +1 -1
  53. package/dist/esm/src/transaction/broadcasters/WhatsOnChainBroadcaster.js +4 -4
  54. package/dist/esm/src/transaction/broadcasters/WhatsOnChainBroadcaster.js.map +1 -1
  55. package/dist/esm/src/transaction/chaintrackers/DefaultChainTracker.js +1 -1
  56. package/dist/esm/src/transaction/chaintrackers/DefaultChainTracker.js.map +1 -1
  57. package/dist/esm/src/transaction/chaintrackers/WhatsOnChain.js +3 -3
  58. package/dist/esm/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -1
  59. package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
  60. package/dist/esm/src/transaction/http/DefaultHttpClient.js +2 -2
  61. package/dist/esm/src/transaction/http/DefaultHttpClient.js.map +1 -1
  62. package/dist/esm/src/transaction/http/FetchHttpClient.js +2 -2
  63. package/dist/esm/src/transaction/http/FetchHttpClient.js.map +1 -1
  64. package/dist/esm/src/transaction/http/NodejsHttpClient.js +2 -2
  65. package/dist/esm/src/transaction/http/NodejsHttpClient.js.map +1 -1
  66. package/dist/esm/src/transaction/http/index.js.map +1 -1
  67. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  68. package/dist/types/src/primitives/Point.d.ts +19 -1
  69. package/dist/types/src/primitives/Point.d.ts.map +1 -1
  70. package/dist/types/src/primitives/Polynomial.d.ts +32 -0
  71. package/dist/types/src/primitives/Polynomial.d.ts.map +1 -0
  72. package/dist/types/src/primitives/PrivateKey.d.ts +72 -0
  73. package/dist/types/src/primitives/PrivateKey.d.ts.map +1 -1
  74. package/dist/types/src/primitives/PublicKey.d.ts +12 -1
  75. package/dist/types/src/primitives/PublicKey.d.ts.map +1 -1
  76. package/dist/types/src/primitives/index.d.ts +2 -1
  77. package/dist/types/src/primitives/index.d.ts.map +1 -1
  78. package/dist/types/src/primitives/utils.d.ts +1 -1
  79. package/dist/types/src/script/templates/P2PKH.d.ts.map +1 -1
  80. package/dist/types/src/transaction/Transaction.d.ts.map +1 -1
  81. package/dist/types/src/transaction/broadcasters/ARC.d.ts +1 -1
  82. package/dist/types/src/transaction/broadcasters/ARC.d.ts.map +1 -1
  83. package/dist/types/src/transaction/broadcasters/DefaultBroadcaster.d.ts +1 -1
  84. package/dist/types/src/transaction/broadcasters/DefaultBroadcaster.d.ts.map +1 -1
  85. package/dist/types/src/transaction/broadcasters/WhatsOnChainBroadcaster.d.ts +1 -1
  86. package/dist/types/src/transaction/broadcasters/WhatsOnChainBroadcaster.d.ts.map +1 -1
  87. package/dist/types/src/transaction/chaintrackers/DefaultChainTracker.d.ts +1 -1
  88. package/dist/types/src/transaction/chaintrackers/DefaultChainTracker.d.ts.map +1 -1
  89. package/dist/types/src/transaction/chaintrackers/WhatsOnChain.d.ts +2 -2
  90. package/dist/types/src/transaction/chaintrackers/WhatsOnChain.d.ts.map +1 -1
  91. package/dist/types/src/transaction/fee-models/SatoshisPerKilobyte.d.ts.map +1 -1
  92. package/dist/types/src/transaction/http/DefaultHttpClient.d.ts.map +1 -1
  93. package/dist/types/src/transaction/http/FetchHttpClient.d.ts +7 -9
  94. package/dist/types/src/transaction/http/FetchHttpClient.d.ts.map +1 -1
  95. package/dist/types/src/transaction/http/HttpClient.d.ts +5 -5
  96. package/dist/types/src/transaction/http/HttpClient.d.ts.map +1 -1
  97. package/dist/types/src/transaction/http/NodejsHttpClient.d.ts +5 -6
  98. package/dist/types/src/transaction/http/NodejsHttpClient.d.ts.map +1 -1
  99. package/dist/types/src/transaction/http/index.d.ts.map +1 -1
  100. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  101. package/docs/primitives.md +231 -16
  102. package/docs/transaction.md +38 -37
  103. package/package.json +1 -1
  104. package/src/compat/__tests/BSM.test.ts +37 -37
  105. package/src/compat/__tests/ECIES.test.ts +71 -71
  106. package/src/compat/__tests/HD.test.ts +362 -362
  107. package/src/compat/__tests/Mnemonic.test.ts +147 -148
  108. package/src/compat/__tests/Mnemonic.vectors.ts +170 -170
  109. package/src/messages/__tests/EncryptedMessage.test.ts +16 -16
  110. package/src/primitives/Point.ts +29 -10
  111. package/src/primitives/Polynomial.ts +89 -0
  112. package/src/primitives/PrivateKey.ts +147 -1
  113. package/src/primitives/PublicKey.ts +17 -2
  114. package/src/primitives/__tests/AESGCM.test.ts +20 -20
  115. package/src/primitives/__tests/Hash.test.ts +2 -2
  116. package/src/primitives/__tests/PBKDF2.vectors.ts +93 -93
  117. package/src/primitives/__tests/PrivateKey.split.test.ts +70 -0
  118. package/src/primitives/__tests/PublicKey.test.ts +14 -1
  119. package/src/primitives/__tests/bug-31.test.ts +24 -26
  120. package/src/primitives/__tests/utils.test.ts +13 -13
  121. package/src/primitives/index.ts +2 -1
  122. package/src/primitives/utils.ts +1 -1
  123. package/src/script/__tests/Script.test.ts +1 -1
  124. package/src/script/__tests/SpendComplex.test.ts +6 -6
  125. package/src/script/__tests/script.invalid.vectors.ts +1464 -1464
  126. package/src/script/__tests/script.valid.vectors.ts +1962 -1962
  127. package/src/script/__tests/spend.valid.vectors.ts +1369 -1369
  128. package/src/script/templates/P2PKH.ts +6 -6
  129. package/src/script/templates/RPuzzle.ts +1 -1
  130. package/src/transaction/Transaction.ts +13 -7
  131. package/src/transaction/__tests/Transaction.test.ts +14 -5
  132. package/src/transaction/__tests/bump.invalid.vectors.ts +1 -1
  133. package/src/transaction/__tests/bump.valid.vectors.ts +3 -3
  134. package/src/transaction/broadcasters/ARC.ts +20 -21
  135. package/src/transaction/broadcasters/DefaultBroadcaster.ts +3 -3
  136. package/src/transaction/broadcasters/WhatsOnChainBroadcaster.ts +10 -10
  137. package/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.ts +7 -10
  138. package/src/transaction/chaintrackers/DefaultChainTracker.ts +3 -3
  139. package/src/transaction/chaintrackers/WhatsOnChain.ts +10 -12
  140. package/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.ts +13 -17
  141. package/src/transaction/fee-models/SatoshisPerKilobyte.ts +2 -2
  142. package/src/transaction/http/DefaultHttpClient.ts +13 -13
  143. package/src/transaction/http/FetchHttpClient.ts +14 -16
  144. package/src/transaction/http/HttpClient.ts +22 -23
  145. package/src/transaction/http/NodejsHttpClient.ts +23 -25
  146. package/src/transaction/http/index.ts +6 -6
@@ -4,87 +4,87 @@ import PrivateKey from '../../../dist/cjs/src/primitives/PrivateKey'
4
4
  import { toArray, toHex, encode, toBase64 } from '../../../dist/cjs/src/primitives/utils'
5
5
 
6
6
  describe('#ECIES', () => {
7
- it('should make a new ECIES object', () => {
8
- expect(ECIES).toBeDefined()
9
- })
7
+ it('should make a new ECIES object', () => {
8
+ expect(ECIES).toBeDefined()
9
+ })
10
10
 
11
- const fromkey = new PrivateKey(42)
12
- const tokey = new PrivateKey(88)
13
- const messageBuf = Hash.sha256(toArray('my message is the hash of this string', 'utf8'))
11
+ const fromkey = new PrivateKey(42)
12
+ const tokey = new PrivateKey(88)
13
+ const messageBuf = Hash.sha256(toArray('my message is the hash of this string', 'utf8'))
14
14
 
15
- describe('@bitcoreEncrypt', () => {
16
- it('should return a buffer', () => {
17
- const encBuf = ECIES.bitcoreEncrypt(messageBuf, tokey.toPublicKey(), fromkey)
18
- expect(Array.isArray(encBuf)).toEqual(true)
19
- })
15
+ describe('@bitcoreEncrypt', () => {
16
+ it('should return a buffer', () => {
17
+ const encBuf = ECIES.bitcoreEncrypt(messageBuf, tokey.toPublicKey(), fromkey)
18
+ expect(Array.isArray(encBuf)).toEqual(true)
19
+ })
20
20
 
21
- it('should return a buffer if fromkey is not present', () => {
22
- const encBuf = ECIES.bitcoreEncrypt(messageBuf, tokey.toPublicKey())
23
- expect(Array.isArray(encBuf)).toEqual(true)
24
- })
21
+ it('should return a buffer if fromkey is not present', () => {
22
+ const encBuf = ECIES.bitcoreEncrypt(messageBuf, tokey.toPublicKey())
23
+ expect(Array.isArray(encBuf)).toEqual(true)
25
24
  })
25
+ })
26
26
 
27
- describe('@bitcoreDecrypt', () => {
28
- it('should decrypt that which was encrypted', () => {
29
- const encBuf = ECIES.bitcoreEncrypt(messageBuf, tokey.toPublicKey(), fromkey)
30
- const messageBuf2 = ECIES.bitcoreDecrypt(encBuf, tokey)
31
- expect(toHex(messageBuf2)).toEqual(toHex(messageBuf))
32
- })
27
+ describe('@bitcoreDecrypt', () => {
28
+ it('should decrypt that which was encrypted', () => {
29
+ const encBuf = ECIES.bitcoreEncrypt(messageBuf, tokey.toPublicKey(), fromkey)
30
+ const messageBuf2 = ECIES.bitcoreDecrypt(encBuf, tokey)
31
+ expect(toHex(messageBuf2)).toEqual(toHex(messageBuf))
32
+ })
33
33
 
34
- it('should decrypt that which was encrypted if fromPrivateKey was randomly generated', () => {
35
- const encBuf = ECIES.bitcoreEncrypt(messageBuf, tokey.toPublicKey())
36
- const messageBuf2 = ECIES.bitcoreDecrypt(encBuf, tokey)
37
- expect(messageBuf2).toEqual(messageBuf)
38
- })
34
+ it('should decrypt that which was encrypted if fromPrivateKey was randomly generated', () => {
35
+ const encBuf = ECIES.bitcoreEncrypt(messageBuf, tokey.toPublicKey())
36
+ const messageBuf2 = ECIES.bitcoreDecrypt(encBuf, tokey)
37
+ expect(messageBuf2).toEqual(messageBuf)
39
38
  })
39
+ })
40
40
 
41
- describe('Electrum ECIES', () => {
42
- // const alicePrivateKey = PrivateKey.fromString('L1Ejc5dAigm5XrM3mNptMEsNnHzS7s51YxU7J61ewGshZTKkbmzJ')
43
- // const bobPrivateKey = PrivateKey.fromString('KxfxrUXSMjJQcb3JgnaaA6MqsrKQ1nBSxvhuigdKRyFiEm6BZDgG')
44
- const alicePrivateKey = PrivateKey.fromString('77e06abc52bf065cb5164c5deca839d0276911991a2730be4d8d0a0307de7ceb', 16)
45
- const bobPrivateKey = PrivateKey.fromString('2b57c7c5e408ce927eef5e2efb49cfdadde77961d342daa72284bb3d6590862d', 16)
41
+ describe('Electrum ECIES', () => {
42
+ // const alicePrivateKey = PrivateKey.fromString('L1Ejc5dAigm5XrM3mNptMEsNnHzS7s51YxU7J61ewGshZTKkbmzJ')
43
+ // const bobPrivateKey = PrivateKey.fromString('KxfxrUXSMjJQcb3JgnaaA6MqsrKQ1nBSxvhuigdKRyFiEm6BZDgG')
44
+ const alicePrivateKey = PrivateKey.fromString('77e06abc52bf065cb5164c5deca839d0276911991a2730be4d8d0a0307de7ceb', 16)
45
+ const bobPrivateKey = PrivateKey.fromString('2b57c7c5e408ce927eef5e2efb49cfdadde77961d342daa72284bb3d6590862d', 16)
46
46
 
47
- it('should do these test vectors correctly', () => {
48
- const message = toArray('this is my test message', 'utf8')
47
+ it('should do these test vectors correctly', () => {
48
+ const message = toArray('this is my test message', 'utf8')
49
49
 
50
- expect(ECIES.electrumDecrypt(
51
- toArray(
52
- 'QklFMQOGFyMXLo9Qv047K3BYJhmnJgt58EC8skYP/R2QU/U0yXXHOt6L3tKmrXho6yj6phfoiMkBOhUldRPnEI4fSZXbiaH4FsxKIOOvzolIFVAS0FplUmib2HnlAM1yP/iiPsU=',
53
- 'base64'
54
- ),
55
- alicePrivateKey
56
- ))
57
- .toEqual(message)
58
- expect(ECIES.electrumDecrypt(
59
- toArray(
60
- 'QklFMQM55QTWSSsILaluEejwOXlrBs1IVcEB4kkqbxDz4Fap53XHOt6L3tKmrXho6yj6phfoiMkBOhUldRPnEI4fSZXbvZJHgyAzxA6SoujduvJXv+A9ri3po9veilrmc8p6dwo=',
61
- 'base64'
62
- ),
63
- bobPrivateKey
64
- ))
65
- .toEqual(message)
50
+ expect(ECIES.electrumDecrypt(
51
+ toArray(
52
+ 'QklFMQOGFyMXLo9Qv047K3BYJhmnJgt58EC8skYP/R2QU/U0yXXHOt6L3tKmrXho6yj6phfoiMkBOhUldRPnEI4fSZXbiaH4FsxKIOOvzolIFVAS0FplUmib2HnlAM1yP/iiPsU=',
53
+ 'base64'
54
+ ),
55
+ alicePrivateKey
56
+ ))
57
+ .toEqual(message)
58
+ expect(ECIES.electrumDecrypt(
59
+ toArray(
60
+ 'QklFMQM55QTWSSsILaluEejwOXlrBs1IVcEB4kkqbxDz4Fap53XHOt6L3tKmrXho6yj6phfoiMkBOhUldRPnEI4fSZXbvZJHgyAzxA6SoujduvJXv+A9ri3po9veilrmc8p6dwo=',
61
+ 'base64'
62
+ ),
63
+ bobPrivateKey
64
+ ))
65
+ .toEqual(message)
66
66
 
67
- expect(toBase64(
68
- ECIES.electrumEncrypt(message, bobPrivateKey.toPublicKey(), alicePrivateKey)
69
- ))
70
- .toEqual(
71
- 'QklFMQM55QTWSSsILaluEejwOXlrBs1IVcEB4kkqbxDz4Fap53XHOt6L3tKmrXho6yj6phfoiMkBOhUldRPnEI4fSZXbvZJHgyAzxA6SoujduvJXv+A9ri3po9veilrmc8p6dwo='
72
- )
73
- expect(toBase64(ECIES.electrumEncrypt(message, alicePrivateKey.toPublicKey(), bobPrivateKey)))
74
- .toEqual(
75
- 'QklFMQOGFyMXLo9Qv047K3BYJhmnJgt58EC8skYP/R2QU/U0yXXHOt6L3tKmrXho6yj6phfoiMkBOhUldRPnEI4fSZXbiaH4FsxKIOOvzolIFVAS0FplUmib2HnlAM1yP/iiPsU='
76
- )
77
- })
67
+ expect(toBase64(
68
+ ECIES.electrumEncrypt(message, bobPrivateKey.toPublicKey(), alicePrivateKey)
69
+ ))
70
+ .toEqual(
71
+ 'QklFMQM55QTWSSsILaluEejwOXlrBs1IVcEB4kkqbxDz4Fap53XHOt6L3tKmrXho6yj6phfoiMkBOhUldRPnEI4fSZXbvZJHgyAzxA6SoujduvJXv+A9ri3po9veilrmc8p6dwo='
72
+ )
73
+ expect(toBase64(ECIES.electrumEncrypt(message, alicePrivateKey.toPublicKey(), bobPrivateKey)))
74
+ .toEqual(
75
+ 'QklFMQOGFyMXLo9Qv047K3BYJhmnJgt58EC8skYP/R2QU/U0yXXHOt6L3tKmrXho6yj6phfoiMkBOhUldRPnEI4fSZXbiaH4FsxKIOOvzolIFVAS0FplUmib2HnlAM1yP/iiPsU='
76
+ )
77
+ })
78
78
 
79
- it('should encrypt and decrypt symmetrically with matching strings in ECDH noKey mode', () => {
80
- const message = toArray('this is my ECDH test message', 'utf8')
81
- const ecdhMessageEncryptedBob = ECIES.electrumEncrypt(message, bobPrivateKey.toPublicKey(), alicePrivateKey, true)
82
- const ecdhMessageEncryptedAlice = ECIES.electrumEncrypt(message, alicePrivateKey.toPublicKey(), bobPrivateKey, true)
83
- expect(ecdhMessageEncryptedBob).toEqual(ecdhMessageEncryptedAlice)
84
- expect(ECIES.electrumDecrypt(ecdhMessageEncryptedAlice, bobPrivateKey, alicePrivateKey.toPublicKey()))
85
- .toEqual(toArray('this is my ECDH test message', 'utf8'))
86
- expect(ECIES.electrumDecrypt(ecdhMessageEncryptedBob, alicePrivateKey, bobPrivateKey.toPublicKey()))
87
- .toEqual(toArray('this is my ECDH test message', 'utf8'))
88
- })
79
+ it('should encrypt and decrypt symmetrically with matching strings in ECDH noKey mode', () => {
80
+ const message = toArray('this is my ECDH test message', 'utf8')
81
+ const ecdhMessageEncryptedBob = ECIES.electrumEncrypt(message, bobPrivateKey.toPublicKey(), alicePrivateKey, true)
82
+ const ecdhMessageEncryptedAlice = ECIES.electrumEncrypt(message, alicePrivateKey.toPublicKey(), bobPrivateKey, true)
83
+ expect(ecdhMessageEncryptedBob).toEqual(ecdhMessageEncryptedAlice)
84
+ expect(ECIES.electrumDecrypt(ecdhMessageEncryptedAlice, bobPrivateKey, alicePrivateKey.toPublicKey()))
85
+ .toEqual(toArray('this is my ECDH test message', 'utf8'))
86
+ expect(ECIES.electrumDecrypt(ecdhMessageEncryptedBob, alicePrivateKey, bobPrivateKey.toPublicKey()))
87
+ .toEqual(toArray('this is my ECDH test message', 'utf8'))
89
88
  })
90
- })
89
+ })
90
+ })