@bsv/sdk 2.1.0 → 2.1.1

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 (383) hide show
  1. package/README.md +7 -7
  2. package/dist/cjs/package.json +1 -1
  3. package/dist/cjs/src/auth/Peer.js +8 -13
  4. package/dist/cjs/src/auth/Peer.js.map +1 -1
  5. package/dist/cjs/src/auth/SessionManager.js +4 -7
  6. package/dist/cjs/src/auth/SessionManager.js.map +1 -1
  7. package/dist/cjs/src/auth/certificates/MasterCertificate.js +1 -1
  8. package/dist/cjs/src/auth/certificates/MasterCertificate.js.map +1 -1
  9. package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js +1 -1
  10. package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
  11. package/dist/cjs/src/auth/clients/AuthFetch.js +32 -32
  12. package/dist/cjs/src/auth/clients/AuthFetch.js.map +1 -1
  13. package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js +4 -4
  14. package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js.map +1 -1
  15. package/dist/cjs/src/compat/ECIES.js +29 -34
  16. package/dist/cjs/src/compat/ECIES.js.map +1 -1
  17. package/dist/cjs/src/compat/HD.js +9 -4
  18. package/dist/cjs/src/compat/HD.js.map +1 -1
  19. package/dist/cjs/src/compat/Mnemonic.js +12 -12
  20. package/dist/cjs/src/compat/Mnemonic.js.map +1 -1
  21. package/dist/cjs/src/identity/ContactsManager.js +172 -232
  22. package/dist/cjs/src/identity/ContactsManager.js.map +1 -1
  23. package/dist/cjs/src/identity/IdentityClient.js +122 -55
  24. package/dist/cjs/src/identity/IdentityClient.js.map +1 -1
  25. package/dist/cjs/src/kvstore/GlobalKVStore.js +30 -31
  26. package/dist/cjs/src/kvstore/GlobalKVStore.js.map +1 -1
  27. package/dist/cjs/src/kvstore/LocalKVStore.js +9 -9
  28. package/dist/cjs/src/kvstore/LocalKVStore.js.map +1 -1
  29. package/dist/cjs/src/kvstore/kvStoreInterpreter.js +2 -2
  30. package/dist/cjs/src/kvstore/kvStoreInterpreter.js.map +1 -1
  31. package/dist/cjs/src/messages/SignedMessage.js +1 -1
  32. package/dist/cjs/src/messages/SignedMessage.js.map +1 -1
  33. package/dist/cjs/src/overlay-tools/Historian.js +1 -1
  34. package/dist/cjs/src/overlay-tools/Historian.js.map +1 -1
  35. package/dist/cjs/src/overlay-tools/LookupResolver.js +139 -46
  36. package/dist/cjs/src/overlay-tools/LookupResolver.js.map +1 -1
  37. package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js +75 -146
  38. package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js.map +1 -1
  39. package/dist/cjs/src/primitives/AESGCM.js +2 -2
  40. package/dist/cjs/src/primitives/AESGCM.js.map +1 -1
  41. package/dist/cjs/src/primitives/BigNumber.js +164 -148
  42. package/dist/cjs/src/primitives/BigNumber.js.map +1 -1
  43. package/dist/cjs/src/primitives/Curve.js +17 -15
  44. package/dist/cjs/src/primitives/Curve.js.map +1 -1
  45. package/dist/cjs/src/primitives/ECDSA.js +12 -7
  46. package/dist/cjs/src/primitives/ECDSA.js.map +1 -1
  47. package/dist/cjs/src/primitives/Hash.js +140 -56
  48. package/dist/cjs/src/primitives/Hash.js.map +1 -1
  49. package/dist/cjs/src/primitives/JacobianPoint.js +8 -8
  50. package/dist/cjs/src/primitives/JacobianPoint.js.map +1 -1
  51. package/dist/cjs/src/primitives/K256.js +3 -3
  52. package/dist/cjs/src/primitives/K256.js.map +1 -1
  53. package/dist/cjs/src/primitives/Point.js +36 -40
  54. package/dist/cjs/src/primitives/Point.js.map +1 -1
  55. package/dist/cjs/src/primitives/PrivateKey.js +4 -4
  56. package/dist/cjs/src/primitives/PrivateKey.js.map +1 -1
  57. package/dist/cjs/src/primitives/PublicKey.js +4 -4
  58. package/dist/cjs/src/primitives/PublicKey.js.map +1 -1
  59. package/dist/cjs/src/primitives/Random.js +10 -14
  60. package/dist/cjs/src/primitives/Random.js.map +1 -1
  61. package/dist/cjs/src/primitives/ReaderUint8Array.js +6 -6
  62. package/dist/cjs/src/primitives/ReaderUint8Array.js.map +1 -1
  63. package/dist/cjs/src/primitives/Schnorr.js +2 -2
  64. package/dist/cjs/src/primitives/Schnorr.js.map +1 -1
  65. package/dist/cjs/src/primitives/Secp256r1.js +2 -1
  66. package/dist/cjs/src/primitives/Secp256r1.js.map +1 -1
  67. package/dist/cjs/src/primitives/Signature.js +8 -8
  68. package/dist/cjs/src/primitives/Signature.js.map +1 -1
  69. package/dist/cjs/src/primitives/TransactionSignature.js +20 -21
  70. package/dist/cjs/src/primitives/TransactionSignature.js.map +1 -1
  71. package/dist/cjs/src/primitives/utils.js +39 -46
  72. package/dist/cjs/src/primitives/utils.js.map +1 -1
  73. package/dist/cjs/src/registry/RegistryClient.js +31 -23
  74. package/dist/cjs/src/registry/RegistryClient.js.map +1 -1
  75. package/dist/cjs/src/remittance/RemittanceManager.js +19 -18
  76. package/dist/cjs/src/remittance/RemittanceManager.js.map +1 -1
  77. package/dist/cjs/src/remittance/modules/BasicBRC29.js.map +1 -1
  78. package/dist/cjs/src/script/Script.js +93 -170
  79. package/dist/cjs/src/script/Script.js.map +1 -1
  80. package/dist/cjs/src/script/ScriptEvaluationError.js +2 -2
  81. package/dist/cjs/src/script/ScriptEvaluationError.js.map +1 -1
  82. package/dist/cjs/src/script/Spend.js +14 -12
  83. package/dist/cjs/src/script/Spend.js.map +1 -1
  84. package/dist/cjs/src/script/templates/PushDrop.js +22 -18
  85. package/dist/cjs/src/script/templates/PushDrop.js.map +1 -1
  86. package/dist/cjs/src/script/templates/RPuzzle.js +2 -4
  87. package/dist/cjs/src/script/templates/RPuzzle.js.map +1 -1
  88. package/dist/cjs/src/storage/StorageDownloader.js +42 -9
  89. package/dist/cjs/src/storage/StorageDownloader.js.map +1 -1
  90. package/dist/cjs/src/totp/totp.js +1 -1
  91. package/dist/cjs/src/totp/totp.js.map +1 -1
  92. package/dist/cjs/src/transaction/Beef.js +239 -192
  93. package/dist/cjs/src/transaction/Beef.js.map +1 -1
  94. package/dist/cjs/src/transaction/BeefConstants.js +19 -0
  95. package/dist/cjs/src/transaction/BeefConstants.js.map +1 -0
  96. package/dist/cjs/src/transaction/BeefTx.js +12 -12
  97. package/dist/cjs/src/transaction/BeefTx.js.map +1 -1
  98. package/dist/cjs/src/transaction/MerklePath.js +4 -4
  99. package/dist/cjs/src/transaction/MerklePath.js.map +1 -1
  100. package/dist/cjs/src/transaction/Transaction.js +49 -52
  101. package/dist/cjs/src/transaction/Transaction.js.map +1 -1
  102. package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js +1 -1
  103. package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
  104. package/dist/cjs/src/transaction/http/BinaryFetchClient.js +9 -9
  105. package/dist/cjs/src/transaction/http/BinaryFetchClient.js.map +1 -1
  106. package/dist/cjs/src/transaction/http/DefaultHttpClient.js +9 -9
  107. package/dist/cjs/src/transaction/http/DefaultHttpClient.js.map +1 -1
  108. package/dist/cjs/src/wallet/CachedKeyDeriver.js +1 -1
  109. package/dist/cjs/src/wallet/CachedKeyDeriver.js.map +1 -1
  110. package/dist/cjs/src/wallet/WalletClient.js.map +1 -1
  111. package/dist/cjs/src/wallet/WalletError.js.map +1 -1
  112. package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js +5 -4
  113. package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
  114. package/dist/cjs/src/wallet/substrates/ReactNativeWebView.js +9 -9
  115. package/dist/cjs/src/wallet/substrates/ReactNativeWebView.js.map +1 -1
  116. package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js +92 -92
  117. package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
  118. package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js +387 -711
  119. package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
  120. package/dist/cjs/src/wallet/substrates/XDM.js +4 -4
  121. package/dist/cjs/src/wallet/substrates/XDM.js.map +1 -1
  122. package/dist/cjs/src/wallet/substrates/window.CWI.js +2 -2
  123. package/dist/cjs/src/wallet/substrates/window.CWI.js.map +1 -1
  124. package/dist/cjs/src/wallet/validationHelpers.js +9 -9
  125. package/dist/cjs/src/wallet/validationHelpers.js.map +1 -1
  126. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  127. package/dist/esm/src/auth/Peer.js +25 -13
  128. package/dist/esm/src/auth/Peer.js.map +1 -1
  129. package/dist/esm/src/auth/SessionManager.js +4 -7
  130. package/dist/esm/src/auth/SessionManager.js.map +1 -1
  131. package/dist/esm/src/auth/certificates/MasterCertificate.js +1 -1
  132. package/dist/esm/src/auth/certificates/MasterCertificate.js.map +1 -1
  133. package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js +1 -1
  134. package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
  135. package/dist/esm/src/auth/clients/AuthFetch.js +32 -32
  136. package/dist/esm/src/auth/clients/AuthFetch.js.map +1 -1
  137. package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js +4 -4
  138. package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js.map +1 -1
  139. package/dist/esm/src/compat/ECIES.js +29 -34
  140. package/dist/esm/src/compat/ECIES.js.map +1 -1
  141. package/dist/esm/src/compat/HD.js +9 -4
  142. package/dist/esm/src/compat/HD.js.map +1 -1
  143. package/dist/esm/src/compat/Mnemonic.js +12 -12
  144. package/dist/esm/src/compat/Mnemonic.js.map +1 -1
  145. package/dist/esm/src/identity/ContactsManager.js +172 -232
  146. package/dist/esm/src/identity/ContactsManager.js.map +1 -1
  147. package/dist/esm/src/identity/IdentityClient.js +122 -55
  148. package/dist/esm/src/identity/IdentityClient.js.map +1 -1
  149. package/dist/esm/src/kvstore/GlobalKVStore.js +30 -31
  150. package/dist/esm/src/kvstore/GlobalKVStore.js.map +1 -1
  151. package/dist/esm/src/kvstore/LocalKVStore.js +9 -9
  152. package/dist/esm/src/kvstore/LocalKVStore.js.map +1 -1
  153. package/dist/esm/src/kvstore/kvStoreInterpreter.js +2 -2
  154. package/dist/esm/src/kvstore/kvStoreInterpreter.js.map +1 -1
  155. package/dist/esm/src/messages/SignedMessage.js +1 -1
  156. package/dist/esm/src/messages/SignedMessage.js.map +1 -1
  157. package/dist/esm/src/overlay-tools/Historian.js +1 -1
  158. package/dist/esm/src/overlay-tools/Historian.js.map +1 -1
  159. package/dist/esm/src/overlay-tools/LookupResolver.js +139 -46
  160. package/dist/esm/src/overlay-tools/LookupResolver.js.map +1 -1
  161. package/dist/esm/src/overlay-tools/SHIPBroadcaster.js +74 -146
  162. package/dist/esm/src/overlay-tools/SHIPBroadcaster.js.map +1 -1
  163. package/dist/esm/src/primitives/AESGCM.js +2 -2
  164. package/dist/esm/src/primitives/AESGCM.js.map +1 -1
  165. package/dist/esm/src/primitives/BigNumber.js +167 -154
  166. package/dist/esm/src/primitives/BigNumber.js.map +1 -1
  167. package/dist/esm/src/primitives/Curve.js +17 -15
  168. package/dist/esm/src/primitives/Curve.js.map +1 -1
  169. package/dist/esm/src/primitives/ECDSA.js +12 -7
  170. package/dist/esm/src/primitives/ECDSA.js.map +1 -1
  171. package/dist/esm/src/primitives/Hash.js +140 -56
  172. package/dist/esm/src/primitives/Hash.js.map +1 -1
  173. package/dist/esm/src/primitives/JacobianPoint.js +8 -8
  174. package/dist/esm/src/primitives/JacobianPoint.js.map +1 -1
  175. package/dist/esm/src/primitives/K256.js +3 -3
  176. package/dist/esm/src/primitives/K256.js.map +1 -1
  177. package/dist/esm/src/primitives/Point.js +36 -40
  178. package/dist/esm/src/primitives/Point.js.map +1 -1
  179. package/dist/esm/src/primitives/PrivateKey.js +4 -4
  180. package/dist/esm/src/primitives/PrivateKey.js.map +1 -1
  181. package/dist/esm/src/primitives/PublicKey.js +4 -4
  182. package/dist/esm/src/primitives/PublicKey.js.map +1 -1
  183. package/dist/esm/src/primitives/Random.js +10 -14
  184. package/dist/esm/src/primitives/Random.js.map +1 -1
  185. package/dist/esm/src/primitives/ReaderUint8Array.js +6 -6
  186. package/dist/esm/src/primitives/ReaderUint8Array.js.map +1 -1
  187. package/dist/esm/src/primitives/Schnorr.js +1 -1
  188. package/dist/esm/src/primitives/Schnorr.js.map +1 -1
  189. package/dist/esm/src/primitives/Secp256r1.js +2 -1
  190. package/dist/esm/src/primitives/Secp256r1.js.map +1 -1
  191. package/dist/esm/src/primitives/Signature.js +8 -8
  192. package/dist/esm/src/primitives/Signature.js.map +1 -1
  193. package/dist/esm/src/primitives/TransactionSignature.js +20 -21
  194. package/dist/esm/src/primitives/TransactionSignature.js.map +1 -1
  195. package/dist/esm/src/primitives/utils.js +39 -48
  196. package/dist/esm/src/primitives/utils.js.map +1 -1
  197. package/dist/esm/src/registry/RegistryClient.js +31 -23
  198. package/dist/esm/src/registry/RegistryClient.js.map +1 -1
  199. package/dist/esm/src/remittance/RemittanceManager.js +19 -18
  200. package/dist/esm/src/remittance/RemittanceManager.js.map +1 -1
  201. package/dist/esm/src/remittance/modules/BasicBRC29.js.map +1 -1
  202. package/dist/esm/src/script/Script.js +93 -170
  203. package/dist/esm/src/script/Script.js.map +1 -1
  204. package/dist/esm/src/script/ScriptEvaluationError.js +2 -2
  205. package/dist/esm/src/script/ScriptEvaluationError.js.map +1 -1
  206. package/dist/esm/src/script/Spend.js +14 -12
  207. package/dist/esm/src/script/Spend.js.map +1 -1
  208. package/dist/esm/src/script/templates/PushDrop.js +4 -3
  209. package/dist/esm/src/script/templates/PushDrop.js.map +1 -1
  210. package/dist/esm/src/script/templates/RPuzzle.js +2 -4
  211. package/dist/esm/src/script/templates/RPuzzle.js.map +1 -1
  212. package/dist/esm/src/storage/StorageDownloader.js +1 -1
  213. package/dist/esm/src/storage/StorageDownloader.js.map +1 -1
  214. package/dist/esm/src/totp/totp.js +1 -1
  215. package/dist/esm/src/totp/totp.js.map +1 -1
  216. package/dist/esm/src/transaction/Beef.js +229 -186
  217. package/dist/esm/src/transaction/Beef.js.map +1 -1
  218. package/dist/esm/src/transaction/BeefConstants.js +16 -0
  219. package/dist/esm/src/transaction/BeefConstants.js.map +1 -0
  220. package/dist/esm/src/transaction/BeefTx.js +3 -3
  221. package/dist/esm/src/transaction/BeefTx.js.map +1 -1
  222. package/dist/esm/src/transaction/MerklePath.js +4 -4
  223. package/dist/esm/src/transaction/MerklePath.js.map +1 -1
  224. package/dist/esm/src/transaction/Transaction.js +49 -52
  225. package/dist/esm/src/transaction/Transaction.js.map +1 -1
  226. package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js +1 -1
  227. package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
  228. package/dist/esm/src/transaction/http/BinaryFetchClient.js +9 -9
  229. package/dist/esm/src/transaction/http/BinaryFetchClient.js.map +1 -1
  230. package/dist/esm/src/transaction/http/DefaultHttpClient.js +9 -9
  231. package/dist/esm/src/transaction/http/DefaultHttpClient.js.map +1 -1
  232. package/dist/esm/src/wallet/CachedKeyDeriver.js +1 -1
  233. package/dist/esm/src/wallet/CachedKeyDeriver.js.map +1 -1
  234. package/dist/esm/src/wallet/WalletClient.js.map +1 -1
  235. package/dist/esm/src/wallet/WalletError.js.map +1 -1
  236. package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js +5 -4
  237. package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
  238. package/dist/esm/src/wallet/substrates/ReactNativeWebView.js +9 -9
  239. package/dist/esm/src/wallet/substrates/ReactNativeWebView.js.map +1 -1
  240. package/dist/esm/src/wallet/substrates/WalletWireProcessor.js +92 -92
  241. package/dist/esm/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
  242. package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js +387 -711
  243. package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
  244. package/dist/esm/src/wallet/substrates/XDM.js +4 -4
  245. package/dist/esm/src/wallet/substrates/XDM.js.map +1 -1
  246. package/dist/esm/src/wallet/substrates/window.CWI.js +2 -2
  247. package/dist/esm/src/wallet/substrates/window.CWI.js.map +1 -1
  248. package/dist/esm/src/wallet/validationHelpers.js +9 -9
  249. package/dist/esm/src/wallet/validationHelpers.js.map +1 -1
  250. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  251. package/dist/types/src/auth/Peer.d.ts +13 -0
  252. package/dist/types/src/auth/Peer.d.ts.map +1 -1
  253. package/dist/types/src/auth/SessionManager.d.ts.map +1 -1
  254. package/dist/types/src/auth/clients/AuthFetch.d.ts.map +1 -1
  255. package/dist/types/src/compat/ECIES.d.ts.map +1 -1
  256. package/dist/types/src/compat/HD.d.ts.map +1 -1
  257. package/dist/types/src/identity/ContactsManager.d.ts +18 -0
  258. package/dist/types/src/identity/ContactsManager.d.ts.map +1 -1
  259. package/dist/types/src/identity/IdentityClient.d.ts +47 -8
  260. package/dist/types/src/identity/IdentityClient.d.ts.map +1 -1
  261. package/dist/types/src/kvstore/GlobalKVStore.d.ts.map +1 -1
  262. package/dist/types/src/overlay-tools/LookupResolver.d.ts +59 -1
  263. package/dist/types/src/overlay-tools/LookupResolver.d.ts.map +1 -1
  264. package/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts +18 -3
  265. package/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts.map +1 -1
  266. package/dist/types/src/primitives/BigNumber.d.ts +13 -3
  267. package/dist/types/src/primitives/BigNumber.d.ts.map +1 -1
  268. package/dist/types/src/primitives/Curve.d.ts.map +1 -1
  269. package/dist/types/src/primitives/ECDSA.d.ts.map +1 -1
  270. package/dist/types/src/primitives/Hash.d.ts +3 -3
  271. package/dist/types/src/primitives/Hash.d.ts.map +1 -1
  272. package/dist/types/src/primitives/JacobianPoint.d.ts +3 -1
  273. package/dist/types/src/primitives/JacobianPoint.d.ts.map +1 -1
  274. package/dist/types/src/primitives/Point.d.ts.map +1 -1
  275. package/dist/types/src/primitives/Random.d.ts +2 -2
  276. package/dist/types/src/primitives/Random.d.ts.map +1 -1
  277. package/dist/types/src/primitives/ReaderUint8Array.d.ts.map +1 -1
  278. package/dist/types/src/primitives/Schnorr.d.ts +2 -1
  279. package/dist/types/src/primitives/Schnorr.d.ts.map +1 -1
  280. package/dist/types/src/primitives/Secp256r1.d.ts.map +1 -1
  281. package/dist/types/src/primitives/utils.d.ts +2 -4
  282. package/dist/types/src/primitives/utils.d.ts.map +1 -1
  283. package/dist/types/src/registry/RegistryClient.d.ts.map +1 -1
  284. package/dist/types/src/remittance/RemittanceManager.d.ts.map +1 -1
  285. package/dist/types/src/remittance/modules/BasicBRC29.d.ts.map +1 -1
  286. package/dist/types/src/script/Script.d.ts +15 -8
  287. package/dist/types/src/script/Script.d.ts.map +1 -1
  288. package/dist/types/src/script/Spend.d.ts.map +1 -1
  289. package/dist/types/src/script/templates/PushDrop.d.ts +3 -1
  290. package/dist/types/src/script/templates/PushDrop.d.ts.map +1 -1
  291. package/dist/types/src/script/templates/RPuzzle.d.ts.map +1 -1
  292. package/dist/types/src/transaction/Beef.d.ts +46 -8
  293. package/dist/types/src/transaction/Beef.d.ts.map +1 -1
  294. package/dist/types/src/transaction/BeefConstants.d.ts +15 -0
  295. package/dist/types/src/transaction/BeefConstants.d.ts.map +1 -0
  296. package/dist/types/src/transaction/Transaction.d.ts.map +1 -1
  297. package/dist/types/src/wallet/CachedKeyDeriver.d.ts.map +1 -1
  298. package/dist/types/src/wallet/KeyDeriver.d.ts +1 -1
  299. package/dist/types/src/wallet/KeyDeriver.d.ts.map +1 -1
  300. package/dist/types/src/wallet/Wallet.interfaces.d.ts +2 -2
  301. package/dist/types/src/wallet/Wallet.interfaces.d.ts.map +1 -1
  302. package/dist/types/src/wallet/WalletClient.d.ts +7 -7
  303. package/dist/types/src/wallet/WalletClient.d.ts.map +1 -1
  304. package/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts +7 -7
  305. package/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts.map +1 -1
  306. package/dist/types/src/wallet/substrates/WalletWireTransceiver.d.ts +36 -7
  307. package/dist/types/src/wallet/substrates/WalletWireTransceiver.d.ts.map +1 -1
  308. package/dist/types/src/wallet/substrates/window.CWI.d.ts +8 -8
  309. package/dist/types/src/wallet/substrates/window.CWI.d.ts.map +1 -1
  310. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  311. package/dist/umd/bundle.js +3 -3
  312. package/package.json +1 -1
  313. package/src/auth/Peer.ts +26 -13
  314. package/src/auth/SessionManager.ts +4 -7
  315. package/src/auth/certificates/MasterCertificate.ts +1 -1
  316. package/src/auth/certificates/__tests/CompletedProtoWallet.ts +1 -1
  317. package/src/auth/clients/AuthFetch.ts +41 -41
  318. package/src/auth/transports/SimplifiedFetchTransport.ts +4 -4
  319. package/src/compat/ECIES.ts +29 -34
  320. package/src/compat/HD.ts +10 -5
  321. package/src/compat/Mnemonic.ts +11 -11
  322. package/src/compat/__tests/HD.test.ts +19 -0
  323. package/src/identity/ContactsManager.ts +194 -257
  324. package/src/identity/IdentityClient.ts +155 -66
  325. package/src/identity/__tests/IdentityClient.test.ts +25 -1
  326. package/src/kvstore/GlobalKVStore.ts +31 -32
  327. package/src/kvstore/LocalKVStore.ts +8 -8
  328. package/src/kvstore/kvStoreInterpreter.ts +2 -2
  329. package/src/messages/SignedMessage.ts +1 -1
  330. package/src/overlay-tools/Historian.ts +1 -1
  331. package/src/overlay-tools/LookupResolver.ts +182 -45
  332. package/src/overlay-tools/SHIPBroadcaster.ts +92 -168
  333. package/src/primitives/AESGCM.ts +2 -2
  334. package/src/primitives/BigNumber.ts +122 -113
  335. package/src/primitives/Curve.ts +16 -15
  336. package/src/primitives/ECDSA.ts +10 -8
  337. package/src/primitives/Hash.ts +152 -53
  338. package/src/primitives/JacobianPoint.ts +13 -11
  339. package/src/primitives/K256.ts +3 -3
  340. package/src/primitives/Point.ts +35 -38
  341. package/src/primitives/PrivateKey.ts +3 -3
  342. package/src/primitives/PublicKey.ts +3 -3
  343. package/src/primitives/Random.ts +11 -14
  344. package/src/primitives/ReaderUint8Array.ts +7 -7
  345. package/src/primitives/Schnorr.ts +2 -1
  346. package/src/primitives/Secp256r1.ts +2 -1
  347. package/src/primitives/Signature.ts +8 -8
  348. package/src/primitives/TransactionSignature.ts +16 -16
  349. package/src/primitives/utils.ts +37 -47
  350. package/src/registry/RegistryClient.ts +25 -25
  351. package/src/remittance/RemittanceManager.ts +17 -18
  352. package/src/remittance/modules/BasicBRC29.ts +2 -5
  353. package/src/script/Script.ts +114 -170
  354. package/src/script/ScriptEvaluationError.ts +2 -2
  355. package/src/script/Spend.ts +14 -15
  356. package/src/script/templates/PushDrop.ts +5 -3
  357. package/src/script/templates/RPuzzle.ts +2 -4
  358. package/src/storage/StorageDownloader.ts +1 -1
  359. package/src/totp/totp.ts +1 -1
  360. package/src/transaction/Beef.ts +241 -203
  361. package/src/transaction/BeefConstants.ts +16 -0
  362. package/src/transaction/BeefTx.ts +3 -3
  363. package/src/transaction/MerklePath.ts +4 -4
  364. package/src/transaction/Transaction.ts +48 -51
  365. package/src/transaction/fee-models/SatoshisPerKilobyte.ts +1 -1
  366. package/src/transaction/http/BinaryFetchClient.ts +8 -8
  367. package/src/transaction/http/DefaultHttpClient.ts +8 -8
  368. package/src/wallet/CachedKeyDeriver.ts +8 -6
  369. package/src/wallet/KeyDeriver.ts +1 -1
  370. package/src/wallet/Wallet.interfaces.ts +2 -4
  371. package/src/wallet/WalletClient.ts +8 -8
  372. package/src/wallet/WalletError.ts +1 -1
  373. package/src/wallet/__tests/WalletClient.substrate.test.ts +10 -6
  374. package/src/wallet/substrates/HTTPWalletJSON.ts +22 -21
  375. package/src/wallet/substrates/ReactNativeWebView.ts +9 -9
  376. package/src/wallet/substrates/WalletWireProcessor.ts +83 -83
  377. package/src/wallet/substrates/WalletWireTransceiver.ts +528 -938
  378. package/src/wallet/substrates/XDM.ts +4 -4
  379. package/src/wallet/substrates/__tests/HTTPWalletJSON.test.ts +38 -25
  380. package/src/wallet/substrates/__tests/ReactNativeWebView.test.ts +174 -0
  381. package/src/wallet/substrates/__tests/window.CWI.test.ts +256 -0
  382. package/src/wallet/substrates/window.CWI.ts +10 -10
  383. package/src/wallet/validationHelpers.ts +9 -9
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const BufferCtor = typeof globalThis !== 'undefined' ? globalThis.Buffer : undefined;
3
+ const BufferCtor = typeof globalThis === 'undefined' ? undefined : globalThis.Buffer;
4
4
  const CAN_USE_BUFFER = BufferCtor != null && typeof BufferCtor.from === 'function';
5
5
  const HEX_CHAR_TO_VALUE = new Int8Array(256).fill(-1);
6
6
  for (let i = 0; i < 10; i++) {
@@ -76,7 +76,7 @@ class BigNumber {
76
76
  let newMagnitude = 0n;
77
77
  const len = newWords.length > 0 ? newWords.length : 1;
78
78
  for (let i = len - 1; i >= 0; i--) {
79
- const wordVal = newWords[i] === undefined ? 0 : newWords[i];
79
+ const wordVal = newWords[i] ?? 0;
80
80
  newMagnitude = (newMagnitude << BigNumber.WORD_SIZE_BIGINT) | BigInt(wordVal & Number(BigNumber.WORD_MASK));
81
81
  }
82
82
  this._magnitude = newMagnitude;
@@ -137,8 +137,7 @@ class BigNumber {
137
137
  this._sign = 0;
138
138
  this._nominalWordLength = 1;
139
139
  this.red = null;
140
- if (number === undefined)
141
- number = 0;
140
+ number ?? (number = 0);
142
141
  if (number === null) {
143
142
  this._initializeState(0n, 0);
144
143
  return;
@@ -163,83 +162,93 @@ class BigNumber {
163
162
  return;
164
163
  }
165
164
  if (typeof number === 'string') {
166
- if (effectiveBase === 'hex')
167
- effectiveBase = 16;
168
- this.assert(typeof effectiveBase === 'number' && effectiveBase === (effectiveBase | 0) && effectiveBase >= 2 && effectiveBase <= 36, 'Base must be an integer between 2 and 36');
169
- const originalNumberStr = number.toString().replace(/\s+/g, '');
170
- let start = 0;
171
- let sign = 0;
172
- if (originalNumberStr.startsWith('-')) {
173
- start++;
174
- sign = 1;
165
+ this._initFromString(number, effectiveBase, effectiveEndian);
166
+ return;
167
+ }
168
+ if (number !== 0) {
169
+ this.assert(false, 'Unsupported input type for BigNumber constructor');
170
+ }
171
+ else {
172
+ this._initializeState(0n, 0);
173
+ }
174
+ }
175
+ _initFromString(number, effectiveBase, effectiveEndian) {
176
+ if (effectiveBase === 'hex')
177
+ effectiveBase = 16;
178
+ // eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); required for integer base validation.
179
+ this.assert(typeof effectiveBase === 'number' && effectiveBase === (effectiveBase | 0) && effectiveBase >= 2 && effectiveBase <= 36, 'Base must be an integer between 2 and 36');
180
+ const originalNumberStr = number.toString().replace(/\s+/g, '');
181
+ let start = 0;
182
+ let sign = 0;
183
+ if (originalNumberStr.startsWith('-')) {
184
+ start++;
185
+ sign = 1;
186
+ }
187
+ else if (originalNumberStr.startsWith('+')) {
188
+ start++;
189
+ }
190
+ const numStr = originalNumberStr.substring(start);
191
+ if (numStr.length === 0) {
192
+ this._initializeState(0n, (sign === 1 && originalNumberStr.startsWith('-')) ? 1 : 0);
193
+ this.normSign();
194
+ return;
195
+ }
196
+ if (effectiveBase === 16) {
197
+ this._initFromHexString(numStr, sign, effectiveEndian);
198
+ }
199
+ else {
200
+ this._initFromNonHexString(numStr, effectiveBase, sign, effectiveEndian);
201
+ }
202
+ }
203
+ _initFromHexString(numStr, sign, effectiveEndian) {
204
+ if (effectiveEndian === 'le') {
205
+ const bytes = [];
206
+ let hexStr = numStr;
207
+ if (hexStr.length % 2 !== 0)
208
+ hexStr = '0' + hexStr;
209
+ for (let i = 0; i < hexStr.length; i += 2) {
210
+ const byteHex = hexStr.substring(i, i + 2);
211
+ const byteVal = Number.parseInt(byteHex, 16);
212
+ if (Number.isNaN(byteVal))
213
+ throw new Error('Invalid character in ' + hexStr);
214
+ bytes.push(byteVal);
175
215
  }
176
- else if (originalNumberStr.startsWith('+')) {
177
- start++;
216
+ this.initArray(bytes, 'le');
217
+ this._sign = sign;
218
+ this.normSign();
219
+ }
220
+ else {
221
+ let tempMagnitude;
222
+ try {
223
+ tempMagnitude = BigInt('0x' + numStr);
178
224
  }
179
- const numStr = originalNumberStr.substring(start);
180
- if (numStr.length === 0) {
181
- this._initializeState(0n, (sign === 1 && originalNumberStr.startsWith('-')) ? 1 : 0);
182
- this.normSign();
183
- return;
225
+ catch (_bigIntParseError) {
226
+ throw new Error('Invalid character in ' + numStr);
184
227
  }
185
- if (effectiveBase === 16) {
186
- let tempMagnitude;
187
- if (effectiveEndian === 'le') {
188
- const bytes = [];
189
- let hexStr = numStr;
190
- if (hexStr.length % 2 !== 0)
191
- hexStr = '0' + hexStr;
192
- for (let i = 0; i < hexStr.length; i += 2) {
193
- const byteHex = hexStr.substring(i, i + 2);
194
- const byteVal = parseInt(byteHex, 16);
195
- if (isNaN(byteVal))
196
- throw new Error('Invalid character in ' + hexStr);
197
- bytes.push(byteVal);
198
- }
199
- this.initArray(bytes, 'le');
200
- this._sign = sign;
201
- this.normSign();
202
- return;
203
- }
204
- else {
205
- try {
206
- tempMagnitude = BigInt('0x' + numStr);
207
- }
208
- catch (e) {
209
- throw new Error('Invalid character in ' + numStr);
210
- }
211
- }
212
- this._initializeState(tempMagnitude, sign);
228
+ this._initializeState(tempMagnitude, sign);
229
+ this.normSign();
230
+ }
231
+ }
232
+ _initFromNonHexString(numStr, base, sign, effectiveEndian) {
233
+ try {
234
+ this._parseBaseString(numStr, base);
235
+ this._sign = sign;
236
+ this.normSign();
237
+ if (effectiveEndian === 'le') {
238
+ const currentSign = this._sign;
239
+ this.initArray(this.toArray('be'), 'le');
240
+ this._sign = currentSign;
213
241
  this.normSign();
214
242
  }
215
- else {
216
- try {
217
- this._parseBaseString(numStr, effectiveBase);
218
- this._sign = sign;
219
- this.normSign();
220
- if (effectiveEndian === 'le') {
221
- const currentSign = this._sign;
222
- this.initArray(this.toArray('be'), 'le');
223
- this._sign = currentSign;
224
- this.normSign();
225
- }
226
- }
227
- catch (err) {
228
- const error = err;
229
- if (error.message.includes('Invalid character in string') ||
230
- error.message.includes('Invalid digit for base') ||
231
- error.message.startsWith('Invalid character:')) {
232
- throw new Error('Invalid character');
233
- }
234
- throw error;
235
- }
236
- }
237
- }
238
- else if (number !== 0) {
239
- this.assert(false, 'Unsupported input type for BigNumber constructor');
240
243
  }
241
- else {
242
- this._initializeState(0n, 0);
244
+ catch (err) {
245
+ const error = err;
246
+ if (error.message.includes('Invalid character in string') ||
247
+ error.message.includes('Invalid digit for base') ||
248
+ error.message.startsWith('Invalid character:')) {
249
+ throw new Error('Invalid character');
250
+ }
251
+ throw error;
243
252
  }
244
253
  }
245
254
  _bigIntToStringInBase(num, base) {
@@ -294,7 +303,7 @@ class BigNumber {
294
303
  _parseBaseWord(str, base) {
295
304
  let r = 0;
296
305
  for (let i = 0; i < str.length; i++) {
297
- const charCode = str.charCodeAt(i);
306
+ const charCode = str.codePointAt(i);
298
307
  let digitVal;
299
308
  if (charCode >= 48 && charCode <= 57)
300
309
  digitVal = charCode - 48;
@@ -347,8 +356,8 @@ class BigNumber {
347
356
  }
348
357
  let magnitude = 0n;
349
358
  if (endian === 'be') {
350
- for (let i = 0; i < bytes.length; i++)
351
- magnitude = (magnitude << 8n) | BigInt(bytes[i] & 0xff);
359
+ for (const byte of bytes)
360
+ magnitude = (magnitude << 8n) | BigInt(byte & 0xff);
352
361
  }
353
362
  else {
354
363
  for (let i = bytes.length - 1; i >= 0; i--)
@@ -366,9 +375,10 @@ class BigNumber {
366
375
  return this;
367
376
  }
368
377
  strip() { this._finishInitialization(); return this.normSign(); }
369
- normSign() { if (this._magnitude === 0n)
370
- this._sign = 0; return this; }
371
- inspect() { return (this.red !== null ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>'; }
378
+ normSign() { if (this._magnitude === 0n) {
379
+ this._sign = 0;
380
+ } return this; }
381
+ inspect() { return (this.red === null ? '<BN: ' : '<BN-R: ') + this.toString(16) + '>'; }
372
382
  _getMinimalHex() {
373
383
  if (this._magnitude === 0n)
374
384
  return '0';
@@ -428,21 +438,7 @@ class BigNumber {
428
438
  const remainder = tempMag % groupBaseBigInt;
429
439
  tempMag /= groupBaseBigInt;
430
440
  const chunkStr = this._bigIntToStringInBase(remainder, base);
431
- if (tempMag > 0n) {
432
- const zerosToPrepend = groupSize - chunkStr.length;
433
- if (zerosToPrepend > 0 && zerosToPrepend < BigNumber.zeros.length) {
434
- out = BigNumber.zeros[zerosToPrepend] + chunkStr + out;
435
- }
436
- else if (zerosToPrepend > 0) {
437
- out = '0'.repeat(zerosToPrepend) + chunkStr + out;
438
- }
439
- else {
440
- out = chunkStr + out;
441
- }
442
- }
443
- else {
444
- out = chunkStr + out;
445
- }
441
+ out = (tempMag > 0n ? this._zeroPaddedChunk(chunkStr, groupSize) : chunkStr) + out;
446
442
  }
447
443
  if (padding > 0) {
448
444
  while (out.length < padding)
@@ -450,6 +446,15 @@ class BigNumber {
450
446
  }
451
447
  return (this._sign === 1 ? '-' : '') + out;
452
448
  }
449
+ /** Returns a chunk string zero-padded to groupSize (used by toBaseString for interior chunks). */
450
+ _zeroPaddedChunk(chunkStr, groupSize) {
451
+ const zerosToPrepend = groupSize - chunkStr.length;
452
+ if (zerosToPrepend <= 0)
453
+ return chunkStr;
454
+ if (zerosToPrepend < BigNumber.zeros.length)
455
+ return BigNumber.zeros[zerosToPrepend] + chunkStr;
456
+ return '0'.repeat(zerosToPrepend) + chunkStr;
457
+ }
453
458
  /**
454
459
  * Converts the BigNumber instance to a JavaScript number.
455
460
  * Please note that JavaScript numbers are only precise up to 53 bits.
@@ -529,8 +534,9 @@ class BigNumber {
529
534
  * @method bitLength
530
535
  * @returns The bit length of the BigNumber.
531
536
  */
532
- bitLength() { if (this._magnitude === 0n)
533
- return 0; return this._magnitude.toString(2).length; }
537
+ bitLength() { if (this._magnitude === 0n) {
538
+ return 0;
539
+ } return this._magnitude.toString(2).length; }
534
540
  /**
535
541
  * Converts a BigNumber to an array of bits.
536
542
  *
@@ -545,7 +551,7 @@ class BigNumber {
545
551
  const w = new Array(len);
546
552
  const mag = num._magnitude;
547
553
  for (let bit = 0; bit < len; bit++) {
548
- w[bit] = ((mag >> BigInt(bit)) & 1n) !== 0n ? 1 : 0;
554
+ w[bit] = ((mag >> BigInt(bit)) & 1n) === 0n ? 0 : 1;
549
555
  }
550
556
  return w;
551
557
  }
@@ -581,8 +587,9 @@ class BigNumber {
581
587
  * @method byteLength
582
588
  * @returns The byte length of the BigNumber.
583
589
  */
584
- byteLength() { if (this._magnitude === 0n)
585
- return 0; return Math.ceil(this.bitLength() / 8); }
590
+ byteLength() { if (this._magnitude === 0n) {
591
+ return 0;
592
+ } return Math.ceil(this.bitLength() / 8); }
586
593
  _getSignedValue() { return this._sign === 1 ? -this._magnitude : this._magnitude; }
587
594
  _setValueFromSigned(sVal) {
588
595
  if (sVal < 0n) {
@@ -622,8 +629,9 @@ class BigNumber {
622
629
  }
623
630
  isNeg() { return this._sign === 1 && this._magnitude !== 0n; }
624
631
  neg() { return this.clone().ineg(); }
625
- ineg() { if (this._magnitude !== 0n)
626
- this._sign = this._sign === 1 ? 0 : 1; return this; }
632
+ ineg() { if (this._magnitude !== 0n) {
633
+ this._sign = this._sign === 1 ? 0 : 1;
634
+ } return this; }
627
635
  _iuop(num, op, isXor = false) {
628
636
  const newMag = op(this._magnitude, num._magnitude);
629
637
  let targetNominalLength = this._nominalWordLength;
@@ -642,8 +650,9 @@ class BigNumber {
642
650
  ior(num) { return this._iop(num, (a, b) => a | b); }
643
651
  iand(num) { return this._iop(num, (a, b) => a & b); }
644
652
  ixor(num) { return this._iop(num, (a, b) => a ^ b, true); }
645
- _uop_new(num, opName) { if (this.length >= num.length)
646
- return this.clone()[opName](num); return num.clone()[opName](this); }
653
+ _uop_new(num, opName) { if (this.length >= num.length) {
654
+ return this.clone()[opName](num);
655
+ } return num.clone()[opName](this); }
647
656
  or(num) { this.assert(this._sign === 0 && num._sign === 0); return this._uop_new(num, 'iuor'); }
648
657
  uor(num) { return this._uop_new(num, 'iuor'); }
649
658
  and(num) { this.assert(this._sign === 0 && num._sign === 0); return this._uop_new(num, 'iuand'); }
@@ -799,26 +808,28 @@ class BigNumber {
799
808
  this.assert(!num.isZero(), 'Division by zero');
800
809
  if (this.isZero()) {
801
810
  const z = new BigNumber(0n);
802
- return { div: mode !== 'mod' ? z : null, mod: mode !== 'div' ? z : null };
811
+ return { div: mode === 'mod' ? null : z, mod: mode === 'div' ? null : z };
803
812
  }
804
813
  const tV = this._getSignedValue();
805
814
  const nV = num._getSignedValue();
806
- let dV = null;
807
- let mV = null;
808
- if (mode !== 'mod')
809
- dV = tV / nV;
810
- if (mode !== 'div') {
811
- mV = tV % nV;
812
- if (positive === true && mV < 0n)
813
- mV += nV < 0n ? -nV : nV;
814
- }
815
- const rd = dV !== null ? new BigNumber(0n) : null;
816
- if (rd !== null && dV !== null)
817
- rd._setValueFromSigned(dV);
818
- const rm = mV !== null ? new BigNumber(0n) : null;
819
- if (rm !== null && mV !== null)
820
- rm._setValueFromSigned(mV);
821
- return { div: rd, mod: rm };
815
+ const dV = mode !== 'mod' ? tV / nV : null;
816
+ const mV = this._computeMod(tV, nV, mode, positive);
817
+ return { div: this._bigNumberFromSigned(dV), mod: this._bigNumberFromSigned(mV) };
818
+ }
819
+ _computeMod(tV, nV, mode, positive) {
820
+ if (mode === 'div')
821
+ return null;
822
+ let mV = tV % nV;
823
+ if (positive === true && mV < 0n)
824
+ mV += nV < 0n ? -nV : nV;
825
+ return mV;
826
+ }
827
+ _bigNumberFromSigned(v) {
828
+ if (v === null)
829
+ return null;
830
+ const r = new BigNumber(0n);
831
+ r._setValueFromSigned(v);
832
+ return r;
822
833
  }
823
834
  div(num) {
824
835
  return this.divmod(num, 'div', false).div;
@@ -933,15 +944,21 @@ class BigNumber {
933
944
  andln(num) { this.assert(num >= 0); return Number(this._magnitude & BigInt(num)); }
934
945
  bincn(bit) { this.assert(typeof bit === 'number' && bit >= 0); const BVal = 1n << BigInt(bit); this._setValueFromSigned(this._getSignedValue() + BVal); return this; }
935
946
  isZero() { return this._magnitude === 0n; }
936
- cmpn(num) { this.assert(Math.abs(num) <= BigNumber.MAX_IMULN_ARG, 'Number is too big'); const tV = this._getSignedValue(); const nV = BigInt(num); if (tV < nV)
937
- return -1; if (tV > nV)
938
- return 1; return 0; }
939
- cmp(num) { const tV = this._getSignedValue(); const nV = num._getSignedValue(); if (tV < nV)
940
- return -1; if (tV > nV)
941
- return 1; return 0; }
942
- ucmp(num) { if (this._magnitude < num._magnitude)
943
- return -1; if (this._magnitude > num._magnitude)
944
- return 1; return 0; }
947
+ cmpn(num) { this.assert(Math.abs(num) <= BigNumber.MAX_IMULN_ARG, 'Number is too big'); const tV = this._getSignedValue(); const nV = BigInt(num); if (tV < nV) {
948
+ return -1;
949
+ } if (tV > nV) {
950
+ return 1;
951
+ } return 0; }
952
+ cmp(num) { const tV = this._getSignedValue(); const nV = num._getSignedValue(); if (tV < nV) {
953
+ return -1;
954
+ } if (tV > nV) {
955
+ return 1;
956
+ } return 0; }
957
+ ucmp(num) { if (this._magnitude < num._magnitude) {
958
+ return -1;
959
+ } if (this._magnitude > num._magnitude) {
960
+ return 1;
961
+ } return 0; }
945
962
  gtn(num) { return this.cmpn(num) === 1; }
946
963
  gt(num) { return this.cmp(num) === 1; }
947
964
  gten(num) { return this.cmpn(num) >= 0; }
@@ -1062,18 +1079,17 @@ class BigNumber {
1062
1079
  sign = 1;
1063
1080
  beBytes[0] &= 0x7f;
1064
1081
  }
1065
- let magnitude = 0n;
1082
+ let hexStr;
1066
1083
  if (CAN_USE_BUFFER) {
1067
- const hex = BufferCtor.from(beBytes).toString('hex');
1068
- magnitude = hex.length === 0 ? 0n : BigInt('0x' + hex);
1084
+ hexStr = BufferCtor.from(beBytes).toString('hex');
1069
1085
  }
1070
1086
  else {
1071
- let hex = '';
1087
+ hexStr = '';
1072
1088
  for (const byte of beBytes) {
1073
- hex += byte < 16 ? '0' + byte.toString(16) : byte.toString(16);
1089
+ hexStr += byte < 16 ? '0' + byte.toString(16) : byte.toString(16);
1074
1090
  }
1075
- magnitude = hex.length === 0 ? 0n : BigInt('0x' + hex);
1076
1091
  }
1092
+ const magnitude = hexStr.length === 0 ? 0n : BigInt('0x' + hexStr);
1077
1093
  const r = new BigNumber(0n);
1078
1094
  r._initializeState(magnitude, sign);
1079
1095
  return r;
@@ -1095,25 +1111,25 @@ class BigNumber {
1095
1111
  const byteLen = hex.length / 2;
1096
1112
  const bytes = new Array(byteLen);
1097
1113
  for (let i = 0, j = 0; i < hex.length; i += 2) {
1098
- const high = HEX_CHAR_TO_VALUE[hex.charCodeAt(i)];
1099
- const low = HEX_CHAR_TO_VALUE[hex.charCodeAt(i + 1)];
1114
+ const high = HEX_CHAR_TO_VALUE[hex.codePointAt(i)];
1115
+ const low = HEX_CHAR_TO_VALUE[hex.codePointAt(i + 1)];
1100
1116
  bytes[j++] = ((high & 0xf) << 4) | (low & 0xf);
1101
1117
  }
1102
1118
  let result;
1103
1119
  if (this._sign === 1) {
1104
- if ((bytes[0] & 0x80) !== 0) {
1105
- result = [0x80, ...bytes];
1106
- }
1107
- else {
1120
+ if ((bytes[0] & 0x80) === 0) {
1108
1121
  result = bytes.slice();
1109
1122
  result[0] |= 0x80;
1110
1123
  }
1124
+ else {
1125
+ result = [0x80, ...bytes];
1126
+ }
1111
1127
  }
1112
- else if ((bytes[0] & 0x80) !== 0) {
1113
- result = [0x00, ...bytes];
1128
+ else if ((bytes[0] & 0x80) === 0) {
1129
+ result = bytes.slice();
1114
1130
  }
1115
1131
  else {
1116
- result = bytes.slice();
1132
+ result = [0x00, ...bytes];
1117
1133
  }
1118
1134
  return endian === 'little' ? result.reverse() : result;
1119
1135
  }
@@ -1219,8 +1235,8 @@ class BigNumber {
1219
1235
  if (num.length === 0)
1220
1236
  return new BigNumber(0n);
1221
1237
  if (requireMinimal) {
1222
- if ((num[num.length - 1] & 0x7f) === 0) {
1223
- if (num.length <= 1 || (num[num.length - 2] & 0x80) === 0) {
1238
+ if ((num.at(-1) & 0x7f) === 0) {
1239
+ if (num.length <= 1 || (num.at(-2) & 0x80) === 0) {
1224
1240
  throw new Error('non-minimally encoded script number');
1225
1241
  }
1226
1242
  }