@bsv/sdk 2.0.0-beta.0 → 2.0.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 (488) hide show
  1. package/dist/cjs/mod.js +1 -0
  2. package/dist/cjs/mod.js.map +1 -1
  3. package/dist/cjs/package.json +1 -1
  4. package/dist/cjs/src/auth/Peer.js +149 -74
  5. package/dist/cjs/src/auth/Peer.js.map +1 -1
  6. package/dist/cjs/src/auth/SessionManager.js.map +1 -1
  7. package/dist/cjs/src/auth/certificates/Certificate.js +18 -8
  8. package/dist/cjs/src/auth/certificates/Certificate.js.map +1 -1
  9. package/dist/cjs/src/auth/certificates/MasterCertificate.js +19 -9
  10. package/dist/cjs/src/auth/certificates/MasterCertificate.js.map +1 -1
  11. package/dist/cjs/src/auth/certificates/VerifiableCertificate.js +17 -7
  12. package/dist/cjs/src/auth/certificates/VerifiableCertificate.js.map +1 -1
  13. package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
  14. package/dist/cjs/src/auth/clients/AuthFetch.js +30 -10
  15. package/dist/cjs/src/auth/clients/AuthFetch.js.map +1 -1
  16. package/dist/cjs/src/auth/clients/__tests__/AuthFetch.test.js.map +1 -1
  17. package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js +17 -7
  18. package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js.map +1 -1
  19. package/dist/cjs/src/auth/transports/__tests__/SimplifiedFetchTransport.test.js +17 -7
  20. package/dist/cjs/src/auth/transports/__tests__/SimplifiedFetchTransport.test.js.map +1 -1
  21. package/dist/cjs/src/auth/utils/createNonce.js +18 -9
  22. package/dist/cjs/src/auth/utils/createNonce.js.map +1 -1
  23. package/dist/cjs/src/auth/utils/validateCertificates.js.map +1 -1
  24. package/dist/cjs/src/auth/utils/verifyNonce.js +18 -9
  25. package/dist/cjs/src/auth/utils/verifyNonce.js.map +1 -1
  26. package/dist/cjs/src/compat/BSM.js +17 -7
  27. package/dist/cjs/src/compat/BSM.js.map +1 -1
  28. package/dist/cjs/src/compat/ECIES.js +17 -7
  29. package/dist/cjs/src/compat/ECIES.js.map +1 -1
  30. package/dist/cjs/src/compat/HD.js +17 -7
  31. package/dist/cjs/src/compat/HD.js.map +1 -1
  32. package/dist/cjs/src/compat/Mnemonic.js +17 -7
  33. package/dist/cjs/src/compat/Mnemonic.js.map +1 -1
  34. package/dist/cjs/src/compat/Utxo.js +1 -1
  35. package/dist/cjs/src/compat/Utxo.js.map +1 -1
  36. package/dist/cjs/src/compat/index.js +17 -7
  37. package/dist/cjs/src/compat/index.js.map +1 -1
  38. package/dist/cjs/src/identity/ContactsManager.js +1 -1
  39. package/dist/cjs/src/identity/ContactsManager.js.map +1 -1
  40. package/dist/cjs/src/identity/IdentityClient.js.map +1 -1
  41. package/dist/cjs/src/kvstore/GlobalKVStore.js +20 -10
  42. package/dist/cjs/src/kvstore/GlobalKVStore.js.map +1 -1
  43. package/dist/cjs/src/kvstore/LocalKVStore.js +17 -7
  44. package/dist/cjs/src/kvstore/LocalKVStore.js.map +1 -1
  45. package/dist/cjs/src/kvstore/kvStoreInterpreter.js +17 -7
  46. package/dist/cjs/src/kvstore/kvStoreInterpreter.js.map +1 -1
  47. package/dist/cjs/src/messages/EncryptedMessage.js +19 -0
  48. package/dist/cjs/src/messages/EncryptedMessage.js.map +1 -1
  49. package/dist/cjs/src/messages/SignedMessage.js.map +1 -1
  50. package/dist/cjs/src/messages/index.js +17 -7
  51. package/dist/cjs/src/messages/index.js.map +1 -1
  52. package/dist/cjs/src/overlay-tools/Historian.js.map +1 -1
  53. package/dist/cjs/src/overlay-tools/HostReputationTracker.js.map +1 -1
  54. package/dist/cjs/src/overlay-tools/LookupResolver.js +17 -7
  55. package/dist/cjs/src/overlay-tools/LookupResolver.js.map +1 -1
  56. package/dist/cjs/src/overlay-tools/OverlayAdminTokenTemplate.js.map +1 -1
  57. package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js +17 -7
  58. package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js.map +1 -1
  59. package/dist/cjs/src/overlay-tools/withDoubleSpendRetry.js +1 -2
  60. package/dist/cjs/src/overlay-tools/withDoubleSpendRetry.js.map +1 -1
  61. package/dist/cjs/src/primitives/AESGCM.js +77 -32
  62. package/dist/cjs/src/primitives/AESGCM.js.map +1 -1
  63. package/dist/cjs/src/primitives/BigNumber.js +28 -54
  64. package/dist/cjs/src/primitives/BigNumber.js.map +1 -1
  65. package/dist/cjs/src/primitives/Curve.js.map +1 -1
  66. package/dist/cjs/src/primitives/DRBG.js.map +1 -1
  67. package/dist/cjs/src/primitives/ECDSA.js +58 -24
  68. package/dist/cjs/src/primitives/ECDSA.js.map +1 -1
  69. package/dist/cjs/src/primitives/Hash.js +6 -6
  70. package/dist/cjs/src/primitives/Hash.js.map +1 -1
  71. package/dist/cjs/src/primitives/JacobianPoint.js.map +1 -1
  72. package/dist/cjs/src/primitives/K256.js.map +1 -1
  73. package/dist/cjs/src/primitives/Mersenne.js.map +1 -1
  74. package/dist/cjs/src/primitives/MontgomoryMethod.js.map +1 -1
  75. package/dist/cjs/src/primitives/Point.js +63 -6
  76. package/dist/cjs/src/primitives/Point.js.map +1 -1
  77. package/dist/cjs/src/primitives/Polynomial.js.map +1 -1
  78. package/dist/cjs/src/primitives/PrivateKey.js +46 -9
  79. package/dist/cjs/src/primitives/PrivateKey.js.map +1 -1
  80. package/dist/cjs/src/primitives/PublicKey.js +1 -1
  81. package/dist/cjs/src/primitives/PublicKey.js.map +1 -1
  82. package/dist/cjs/src/primitives/Random.js.map +1 -1
  83. package/dist/cjs/src/primitives/ReaderUint8Array.js +180 -0
  84. package/dist/cjs/src/primitives/ReaderUint8Array.js.map +1 -0
  85. package/dist/cjs/src/primitives/ReductionContext.js +35 -46
  86. package/dist/cjs/src/primitives/ReductionContext.js.map +1 -1
  87. package/dist/cjs/src/primitives/Schnorr.js.map +1 -1
  88. package/dist/cjs/src/primitives/Secp256r1.js.map +1 -1
  89. package/dist/cjs/src/primitives/Signature.js.map +1 -1
  90. package/dist/cjs/src/primitives/SymmetricKey.js.map +1 -1
  91. package/dist/cjs/src/primitives/TransactionSignature.js +132 -17
  92. package/dist/cjs/src/primitives/TransactionSignature.js.map +1 -1
  93. package/dist/cjs/src/primitives/WriterUint8Array.js +173 -0
  94. package/dist/cjs/src/primitives/WriterUint8Array.js.map +1 -0
  95. package/dist/cjs/src/primitives/hex.js +2 -3
  96. package/dist/cjs/src/primitives/hex.js.map +1 -1
  97. package/dist/cjs/src/primitives/index.js +17 -7
  98. package/dist/cjs/src/primitives/index.js.map +1 -1
  99. package/dist/cjs/src/primitives/utils.js +43 -16
  100. package/dist/cjs/src/primitives/utils.js.map +1 -1
  101. package/dist/cjs/src/registry/RegistryClient.js +2 -2
  102. package/dist/cjs/src/registry/RegistryClient.js.map +1 -1
  103. package/dist/cjs/src/remittance/CommsLayer.js +3 -0
  104. package/dist/cjs/src/remittance/CommsLayer.js.map +1 -0
  105. package/dist/cjs/src/remittance/IdentityLayer.js +3 -0
  106. package/dist/cjs/src/remittance/IdentityLayer.js.map +1 -0
  107. package/dist/cjs/src/remittance/RemittanceManager.js +1245 -0
  108. package/dist/cjs/src/remittance/RemittanceManager.js.map +1 -0
  109. package/dist/cjs/src/remittance/RemittanceModule.js +3 -0
  110. package/dist/cjs/src/remittance/RemittanceModule.js.map +1 -0
  111. package/dist/cjs/src/remittance/index.js +23 -0
  112. package/dist/cjs/src/remittance/index.js.map +1 -0
  113. package/dist/cjs/src/remittance/modules/BasicBRC29.js +225 -0
  114. package/dist/cjs/src/remittance/modules/BasicBRC29.js.map +1 -0
  115. package/dist/cjs/src/remittance/modules/index.js +18 -0
  116. package/dist/cjs/src/remittance/modules/index.js.map +1 -0
  117. package/dist/cjs/src/remittance/types.js +22 -0
  118. package/dist/cjs/src/remittance/types.js.map +1 -0
  119. package/dist/cjs/src/script/OP.js +15 -13
  120. package/dist/cjs/src/script/OP.js.map +1 -1
  121. package/dist/cjs/src/script/Script.js +80 -5
  122. package/dist/cjs/src/script/Script.js.map +1 -1
  123. package/dist/cjs/src/script/Spend.js +145 -53
  124. package/dist/cjs/src/script/Spend.js.map +1 -1
  125. package/dist/cjs/src/script/templates/P2PKH.js.map +1 -1
  126. package/dist/cjs/src/script/templates/PushDrop.js +21 -7
  127. package/dist/cjs/src/script/templates/PushDrop.js.map +1 -1
  128. package/dist/cjs/src/script/templates/RPuzzle.js.map +1 -1
  129. package/dist/cjs/src/storage/StorageDownloader.js.map +1 -1
  130. package/dist/cjs/src/storage/StorageUploader.js +17 -7
  131. package/dist/cjs/src/storage/StorageUploader.js.map +1 -1
  132. package/dist/cjs/src/storage/StorageUtils.js.map +1 -1
  133. package/dist/cjs/src/storage/index.js +17 -7
  134. package/dist/cjs/src/storage/index.js.map +1 -1
  135. package/dist/cjs/src/totp/totp.js.map +1 -1
  136. package/dist/cjs/src/transaction/Beef.js +85 -27
  137. package/dist/cjs/src/transaction/Beef.js.map +1 -1
  138. package/dist/cjs/src/transaction/BeefParty.js.map +1 -1
  139. package/dist/cjs/src/transaction/BeefTx.js +32 -14
  140. package/dist/cjs/src/transaction/BeefTx.js.map +1 -1
  141. package/dist/cjs/src/transaction/Broadcaster.js +2 -3
  142. package/dist/cjs/src/transaction/Broadcaster.js.map +1 -1
  143. package/dist/cjs/src/transaction/MerklePath.js +25 -6
  144. package/dist/cjs/src/transaction/MerklePath.js.map +1 -1
  145. package/dist/cjs/src/transaction/Transaction.js +238 -27
  146. package/dist/cjs/src/transaction/Transaction.js.map +1 -1
  147. package/dist/cjs/src/transaction/broadcasters/ARC.js +23 -0
  148. package/dist/cjs/src/transaction/broadcasters/ARC.js.map +1 -1
  149. package/dist/cjs/src/transaction/broadcasters/DefaultBroadcaster.js +1 -2
  150. package/dist/cjs/src/transaction/broadcasters/DefaultBroadcaster.js.map +1 -1
  151. package/dist/cjs/src/transaction/broadcasters/Teranode.js.map +1 -1
  152. package/dist/cjs/src/transaction/broadcasters/WhatsOnChainBroadcaster.js.map +1 -1
  153. package/dist/cjs/src/transaction/chaintrackers/BlockHeadersService.js.map +1 -1
  154. package/dist/cjs/src/transaction/chaintrackers/DefaultChainTracker.js +1 -2
  155. package/dist/cjs/src/transaction/chaintrackers/DefaultChainTracker.js.map +1 -1
  156. package/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -1
  157. package/dist/cjs/src/transaction/fee-models/LivePolicy.js.map +1 -1
  158. package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
  159. package/dist/cjs/src/transaction/http/BinaryFetchClient.js +2 -2
  160. package/dist/cjs/src/transaction/http/BinaryFetchClient.js.map +1 -1
  161. package/dist/cjs/src/transaction/http/DefaultHttpClient.js +1 -2
  162. package/dist/cjs/src/transaction/http/DefaultHttpClient.js.map +1 -1
  163. package/dist/cjs/src/transaction/http/NodejsHttpClient.js.map +1 -1
  164. package/dist/cjs/src/wallet/CachedKeyDeriver.js.map +1 -1
  165. package/dist/cjs/src/wallet/KeyDeriver.js.map +1 -1
  166. package/dist/cjs/src/wallet/ProtoWallet.js +1 -1
  167. package/dist/cjs/src/wallet/ProtoWallet.js.map +1 -1
  168. package/dist/cjs/src/wallet/WalletClient.js.map +1 -1
  169. package/dist/cjs/src/wallet/WalletError.js.map +1 -1
  170. package/dist/cjs/src/wallet/index.js +17 -7
  171. package/dist/cjs/src/wallet/index.js.map +1 -1
  172. package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
  173. package/dist/cjs/src/wallet/substrates/HTTPWalletWire.js +17 -7
  174. package/dist/cjs/src/wallet/substrates/HTTPWalletWire.js.map +1 -1
  175. package/dist/cjs/src/wallet/substrates/ReactNativeWebView.js +17 -7
  176. package/dist/cjs/src/wallet/substrates/ReactNativeWebView.js.map +1 -1
  177. package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js +17 -7
  178. package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
  179. package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js +17 -7
  180. package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
  181. package/dist/cjs/src/wallet/substrates/XDM.js +17 -7
  182. package/dist/cjs/src/wallet/substrates/XDM.js.map +1 -1
  183. package/dist/cjs/src/wallet/substrates/utils/toOriginHeader.js +1 -2
  184. package/dist/cjs/src/wallet/substrates/utils/toOriginHeader.js.map +1 -1
  185. package/dist/cjs/src/wallet/substrates/window.CWI.js.map +1 -1
  186. package/dist/cjs/src/wallet/validationHelpers.js +51 -41
  187. package/dist/cjs/src/wallet/validationHelpers.js.map +1 -1
  188. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  189. package/dist/esm/mod.js +1 -0
  190. package/dist/esm/mod.js.map +1 -1
  191. package/dist/esm/src/auth/Peer.js +132 -67
  192. package/dist/esm/src/auth/Peer.js.map +1 -1
  193. package/dist/esm/src/auth/SessionManager.js.map +1 -1
  194. package/dist/esm/src/auth/certificates/Certificate.js +1 -1
  195. package/dist/esm/src/auth/certificates/Certificate.js.map +1 -1
  196. package/dist/esm/src/auth/certificates/MasterCertificate.js +2 -2
  197. package/dist/esm/src/auth/certificates/MasterCertificate.js.map +1 -1
  198. package/dist/esm/src/auth/certificates/VerifiableCertificate.js.map +1 -1
  199. package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
  200. package/dist/esm/src/auth/clients/AuthFetch.js +13 -3
  201. package/dist/esm/src/auth/clients/AuthFetch.js.map +1 -1
  202. package/dist/esm/src/auth/clients/__tests__/AuthFetch.test.js.map +1 -1
  203. package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js.map +1 -1
  204. package/dist/esm/src/auth/transports/__tests__/SimplifiedFetchTransport.test.js.map +1 -1
  205. package/dist/esm/src/auth/utils/validateCertificates.js.map +1 -1
  206. package/dist/esm/src/compat/BSM.js.map +1 -1
  207. package/dist/esm/src/compat/ECIES.js.map +1 -1
  208. package/dist/esm/src/compat/HD.js.map +1 -1
  209. package/dist/esm/src/compat/Mnemonic.js.map +1 -1
  210. package/dist/esm/src/identity/ContactsManager.js +1 -1
  211. package/dist/esm/src/identity/ContactsManager.js.map +1 -1
  212. package/dist/esm/src/identity/IdentityClient.js.map +1 -1
  213. package/dist/esm/src/kvstore/GlobalKVStore.js +3 -3
  214. package/dist/esm/src/kvstore/GlobalKVStore.js.map +1 -1
  215. package/dist/esm/src/kvstore/LocalKVStore.js.map +1 -1
  216. package/dist/esm/src/kvstore/kvStoreInterpreter.js.map +1 -1
  217. package/dist/esm/src/messages/EncryptedMessage.js +19 -0
  218. package/dist/esm/src/messages/EncryptedMessage.js.map +1 -1
  219. package/dist/esm/src/messages/SignedMessage.js.map +1 -1
  220. package/dist/esm/src/overlay-tools/Historian.js.map +1 -1
  221. package/dist/esm/src/overlay-tools/HostReputationTracker.js.map +1 -1
  222. package/dist/esm/src/overlay-tools/LookupResolver.js.map +1 -1
  223. package/dist/esm/src/overlay-tools/OverlayAdminTokenTemplate.js.map +1 -1
  224. package/dist/esm/src/overlay-tools/SHIPBroadcaster.js.map +1 -1
  225. package/dist/esm/src/overlay-tools/withDoubleSpendRetry.js.map +1 -1
  226. package/dist/esm/src/primitives/AESGCM.js +71 -26
  227. package/dist/esm/src/primitives/AESGCM.js.map +1 -1
  228. package/dist/esm/src/primitives/BigNumber.js +28 -54
  229. package/dist/esm/src/primitives/BigNumber.js.map +1 -1
  230. package/dist/esm/src/primitives/Curve.js.map +1 -1
  231. package/dist/esm/src/primitives/DRBG.js.map +1 -1
  232. package/dist/esm/src/primitives/ECDSA.js +58 -24
  233. package/dist/esm/src/primitives/ECDSA.js.map +1 -1
  234. package/dist/esm/src/primitives/Hash.js.map +1 -1
  235. package/dist/esm/src/primitives/JacobianPoint.js.map +1 -1
  236. package/dist/esm/src/primitives/K256.js.map +1 -1
  237. package/dist/esm/src/primitives/Mersenne.js.map +1 -1
  238. package/dist/esm/src/primitives/MontgomoryMethod.js.map +1 -1
  239. package/dist/esm/src/primitives/Point.js +61 -4
  240. package/dist/esm/src/primitives/Point.js.map +1 -1
  241. package/dist/esm/src/primitives/Polynomial.js.map +1 -1
  242. package/dist/esm/src/primitives/PrivateKey.js +29 -2
  243. package/dist/esm/src/primitives/PrivateKey.js.map +1 -1
  244. package/dist/esm/src/primitives/PublicKey.js +1 -1
  245. package/dist/esm/src/primitives/PublicKey.js.map +1 -1
  246. package/dist/esm/src/primitives/Random.js.map +1 -1
  247. package/dist/esm/src/primitives/ReaderUint8Array.js +176 -0
  248. package/dist/esm/src/primitives/ReaderUint8Array.js.map +1 -0
  249. package/dist/esm/src/primitives/ReductionContext.js +35 -46
  250. package/dist/esm/src/primitives/ReductionContext.js.map +1 -1
  251. package/dist/esm/src/primitives/Schnorr.js.map +1 -1
  252. package/dist/esm/src/primitives/Secp256r1.js.map +1 -1
  253. package/dist/esm/src/primitives/Signature.js.map +1 -1
  254. package/dist/esm/src/primitives/SymmetricKey.js.map +1 -1
  255. package/dist/esm/src/primitives/TransactionSignature.js +115 -10
  256. package/dist/esm/src/primitives/TransactionSignature.js.map +1 -1
  257. package/dist/esm/src/primitives/WriterUint8Array.js +169 -0
  258. package/dist/esm/src/primitives/WriterUint8Array.js.map +1 -0
  259. package/dist/esm/src/primitives/hex.js.map +1 -1
  260. package/dist/esm/src/primitives/utils.js +37 -11
  261. package/dist/esm/src/primitives/utils.js.map +1 -1
  262. package/dist/esm/src/registry/RegistryClient.js.map +1 -1
  263. package/dist/esm/src/remittance/CommsLayer.js +2 -0
  264. package/dist/esm/src/remittance/CommsLayer.js.map +1 -0
  265. package/dist/esm/src/remittance/IdentityLayer.js +2 -0
  266. package/dist/esm/src/remittance/IdentityLayer.js.map +1 -0
  267. package/dist/esm/src/remittance/RemittanceManager.js +1254 -0
  268. package/dist/esm/src/remittance/RemittanceManager.js.map +1 -0
  269. package/dist/esm/src/remittance/RemittanceModule.js +2 -0
  270. package/dist/esm/src/remittance/RemittanceModule.js.map +1 -0
  271. package/dist/esm/src/remittance/index.js +7 -0
  272. package/dist/esm/src/remittance/index.js.map +1 -0
  273. package/dist/esm/src/remittance/modules/BasicBRC29.js +227 -0
  274. package/dist/esm/src/remittance/modules/BasicBRC29.js.map +1 -0
  275. package/dist/esm/src/remittance/modules/index.js +2 -0
  276. package/dist/esm/src/remittance/modules/index.js.map +1 -0
  277. package/dist/esm/src/remittance/types.js +19 -0
  278. package/dist/esm/src/remittance/types.js.map +1 -0
  279. package/dist/esm/src/script/OP.js +15 -13
  280. package/dist/esm/src/script/OP.js.map +1 -1
  281. package/dist/esm/src/script/Script.js +80 -5
  282. package/dist/esm/src/script/Script.js.map +1 -1
  283. package/dist/esm/src/script/Spend.js +129 -46
  284. package/dist/esm/src/script/Spend.js.map +1 -1
  285. package/dist/esm/src/script/templates/P2PKH.js.map +1 -1
  286. package/dist/esm/src/script/templates/PushDrop.js +21 -7
  287. package/dist/esm/src/script/templates/PushDrop.js.map +1 -1
  288. package/dist/esm/src/script/templates/RPuzzle.js.map +1 -1
  289. package/dist/esm/src/storage/StorageDownloader.js.map +1 -1
  290. package/dist/esm/src/storage/StorageUploader.js.map +1 -1
  291. package/dist/esm/src/storage/StorageUtils.js.map +1 -1
  292. package/dist/esm/src/totp/totp.js.map +1 -1
  293. package/dist/esm/src/transaction/Beef.js +86 -28
  294. package/dist/esm/src/transaction/Beef.js.map +1 -1
  295. package/dist/esm/src/transaction/BeefParty.js.map +1 -1
  296. package/dist/esm/src/transaction/BeefTx.js +32 -14
  297. package/dist/esm/src/transaction/BeefTx.js.map +1 -1
  298. package/dist/esm/src/transaction/MerklePath.js +26 -7
  299. package/dist/esm/src/transaction/MerklePath.js.map +1 -1
  300. package/dist/esm/src/transaction/Transaction.js +239 -28
  301. package/dist/esm/src/transaction/Transaction.js.map +1 -1
  302. package/dist/esm/src/transaction/broadcasters/ARC.js +23 -0
  303. package/dist/esm/src/transaction/broadcasters/ARC.js.map +1 -1
  304. package/dist/esm/src/transaction/broadcasters/Teranode.js.map +1 -1
  305. package/dist/esm/src/transaction/broadcasters/WhatsOnChainBroadcaster.js.map +1 -1
  306. package/dist/esm/src/transaction/chaintrackers/BlockHeadersService.js.map +1 -1
  307. package/dist/esm/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -1
  308. package/dist/esm/src/transaction/fee-models/LivePolicy.js.map +1 -1
  309. package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
  310. package/dist/esm/src/transaction/http/BinaryFetchClient.js.map +1 -1
  311. package/dist/esm/src/transaction/http/DefaultHttpClient.js.map +1 -1
  312. package/dist/esm/src/transaction/http/NodejsHttpClient.js.map +1 -1
  313. package/dist/esm/src/wallet/CachedKeyDeriver.js.map +1 -1
  314. package/dist/esm/src/wallet/KeyDeriver.js.map +1 -1
  315. package/dist/esm/src/wallet/ProtoWallet.js +1 -1
  316. package/dist/esm/src/wallet/ProtoWallet.js.map +1 -1
  317. package/dist/esm/src/wallet/WalletClient.js.map +1 -1
  318. package/dist/esm/src/wallet/WalletError.js.map +1 -1
  319. package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
  320. package/dist/esm/src/wallet/substrates/HTTPWalletWire.js.map +1 -1
  321. package/dist/esm/src/wallet/substrates/ReactNativeWebView.js.map +1 -1
  322. package/dist/esm/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
  323. package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
  324. package/dist/esm/src/wallet/substrates/XDM.js.map +1 -1
  325. package/dist/esm/src/wallet/substrates/utils/toOriginHeader.js.map +1 -1
  326. package/dist/esm/src/wallet/substrates/window.CWI.js.map +1 -1
  327. package/dist/esm/src/wallet/validationHelpers.js +1 -1
  328. package/dist/esm/src/wallet/validationHelpers.js.map +1 -1
  329. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  330. package/dist/types/mod.d.ts +1 -0
  331. package/dist/types/mod.d.ts.map +1 -1
  332. package/dist/types/src/auth/Peer.d.ts +12 -7
  333. package/dist/types/src/auth/Peer.d.ts.map +1 -1
  334. package/dist/types/src/auth/certificates/MasterCertificate.d.ts.map +1 -1
  335. package/dist/types/src/auth/clients/AuthFetch.d.ts.map +1 -1
  336. package/dist/types/src/auth/types.d.ts +2 -0
  337. package/dist/types/src/auth/types.d.ts.map +1 -1
  338. package/dist/types/src/auth/utils/getVerifiableCertificates.d.ts.map +1 -1
  339. package/dist/types/src/auth/utils/validateCertificates.d.ts.map +1 -1
  340. package/dist/types/src/compat/BSM.d.ts +1 -1
  341. package/dist/types/src/compat/BSM.d.ts.map +1 -1
  342. package/dist/types/src/messages/EncryptedMessage.d.ts +19 -0
  343. package/dist/types/src/messages/EncryptedMessage.d.ts.map +1 -1
  344. package/dist/types/src/messages/SignedMessage.d.ts.map +1 -1
  345. package/dist/types/src/primitives/AESGCM.d.ts +18 -0
  346. package/dist/types/src/primitives/AESGCM.d.ts.map +1 -1
  347. package/dist/types/src/primitives/BigNumber.d.ts +8 -0
  348. package/dist/types/src/primitives/BigNumber.d.ts.map +1 -1
  349. package/dist/types/src/primitives/ECDSA.d.ts +24 -0
  350. package/dist/types/src/primitives/ECDSA.d.ts.map +1 -1
  351. package/dist/types/src/primitives/Hash.d.ts +8 -8
  352. package/dist/types/src/primitives/Hash.d.ts.map +1 -1
  353. package/dist/types/src/primitives/Point.d.ts +1 -0
  354. package/dist/types/src/primitives/Point.d.ts.map +1 -1
  355. package/dist/types/src/primitives/PrivateKey.d.ts +27 -0
  356. package/dist/types/src/primitives/PrivateKey.d.ts.map +1 -1
  357. package/dist/types/src/primitives/Random.d.ts.map +1 -1
  358. package/dist/types/src/primitives/ReaderUint8Array.d.ts +32 -0
  359. package/dist/types/src/primitives/ReaderUint8Array.d.ts.map +1 -0
  360. package/dist/types/src/primitives/ReductionContext.d.ts +9 -0
  361. package/dist/types/src/primitives/ReductionContext.d.ts.map +1 -1
  362. package/dist/types/src/primitives/Secp256r1.d.ts.map +1 -1
  363. package/dist/types/src/primitives/TransactionSignature.d.ts +16 -4
  364. package/dist/types/src/primitives/TransactionSignature.d.ts.map +1 -1
  365. package/dist/types/src/primitives/WriterUint8Array.d.ts +54 -0
  366. package/dist/types/src/primitives/WriterUint8Array.d.ts.map +1 -0
  367. package/dist/types/src/primitives/utils.d.ts +19 -6
  368. package/dist/types/src/primitives/utils.d.ts.map +1 -1
  369. package/dist/types/src/remittance/CommsLayer.d.ts +50 -0
  370. package/dist/types/src/remittance/CommsLayer.d.ts.map +1 -0
  371. package/dist/types/src/remittance/IdentityLayer.d.ts +35 -0
  372. package/dist/types/src/remittance/IdentityLayer.d.ts.map +1 -0
  373. package/dist/types/src/remittance/RemittanceManager.d.ts +452 -0
  374. package/dist/types/src/remittance/RemittanceManager.d.ts.map +1 -0
  375. package/dist/types/src/remittance/RemittanceModule.d.ts +106 -0
  376. package/dist/types/src/remittance/RemittanceModule.d.ts.map +1 -0
  377. package/dist/types/src/remittance/index.d.ts +7 -0
  378. package/dist/types/src/remittance/index.d.ts.map +1 -0
  379. package/dist/types/src/remittance/modules/BasicBRC29.d.ts +133 -0
  380. package/dist/types/src/remittance/modules/BasicBRC29.d.ts.map +1 -0
  381. package/dist/types/src/remittance/modules/index.d.ts +2 -0
  382. package/dist/types/src/remittance/modules/index.d.ts.map +1 -0
  383. package/dist/types/src/remittance/types.d.ts +238 -0
  384. package/dist/types/src/remittance/types.d.ts.map +1 -0
  385. package/dist/types/src/script/OP.d.ts +5 -3
  386. package/dist/types/src/script/OP.d.ts.map +1 -1
  387. package/dist/types/src/script/Script.d.ts.map +1 -1
  388. package/dist/types/src/script/Spend.d.ts +7 -0
  389. package/dist/types/src/script/Spend.d.ts.map +1 -1
  390. package/dist/types/src/script/templates/PushDrop.d.ts +3 -4
  391. package/dist/types/src/script/templates/PushDrop.d.ts.map +1 -1
  392. package/dist/types/src/storage/StorageUtils.d.ts.map +1 -1
  393. package/dist/types/src/transaction/Beef.d.ts +26 -9
  394. package/dist/types/src/transaction/Beef.d.ts.map +1 -1
  395. package/dist/types/src/transaction/BeefTx.d.ts +13 -6
  396. package/dist/types/src/transaction/BeefTx.d.ts.map +1 -1
  397. package/dist/types/src/transaction/MerklePath.d.ts +16 -3
  398. package/dist/types/src/transaction/MerklePath.d.ts.map +1 -1
  399. package/dist/types/src/transaction/Transaction.d.ts +58 -7
  400. package/dist/types/src/transaction/Transaction.d.ts.map +1 -1
  401. package/dist/types/src/transaction/broadcasters/ARC.d.ts.map +1 -1
  402. package/dist/types/src/transaction/http/BinaryFetchClient.d.ts +0 -2
  403. package/dist/types/src/transaction/http/BinaryFetchClient.d.ts.map +1 -1
  404. package/dist/types/src/wallet/Wallet.interfaces.d.ts +5 -5
  405. package/dist/types/src/wallet/Wallet.interfaces.d.ts.map +1 -1
  406. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  407. package/dist/umd/bundle.js +13 -13
  408. package/dist/umd/bundle.js.map +1 -1
  409. package/docs/index.md +3 -1
  410. package/docs/reference/auth.md +8 -12
  411. package/docs/reference/primitives.md +260 -55
  412. package/docs/reference/remittance.md +2166 -0
  413. package/docs/reference/script.md +12 -4
  414. package/docs/reference/transaction.md +203 -34
  415. package/docs/reference/wallet.md +6 -5
  416. package/docs/remittance-getting-started.md +138 -0
  417. package/mod.ts +1 -0
  418. package/package.json +11 -1
  419. package/src/auth/Peer.ts +196 -85
  420. package/src/auth/__tests/Peer.test.ts +424 -257
  421. package/src/auth/clients/AuthFetch.ts +18 -3
  422. package/src/auth/types.ts +2 -0
  423. package/src/messages/EncryptedMessage.ts +19 -0
  424. package/src/overlay-tools/__tests/SHIPBroadcaster.test.ts +7 -0
  425. package/src/primitives/AESGCM.ts +75 -34
  426. package/src/primitives/BigNumber.ts +27 -31
  427. package/src/primitives/ECDSA.ts +41 -2
  428. package/src/primitives/PrivateKey.ts +27 -0
  429. package/src/primitives/ReaderUint8Array.ts +196 -0
  430. package/src/primitives/ReductionContext.ts +44 -48
  431. package/src/primitives/TransactionSignature.ts +129 -10
  432. package/src/primitives/WriterUint8Array.ts +195 -0
  433. package/src/primitives/__tests/AESGCM.test.ts +31 -0
  434. package/src/primitives/__tests/ECDSA.test.ts +16 -0
  435. package/src/primitives/__tests/ReaderUint8Array.test.ts +317 -0
  436. package/src/primitives/__tests/WriterUint8Array.test.ts +208 -0
  437. package/src/primitives/utils.ts +31 -4
  438. package/src/remittance/CommsLayer.ts +41 -0
  439. package/src/remittance/IdentityLayer.ts +32 -0
  440. package/src/remittance/RemittanceManager.ts +1672 -0
  441. package/src/remittance/RemittanceModule.ts +92 -0
  442. package/src/remittance/__tests/BasicBRC29.test.ts +188 -0
  443. package/src/remittance/__tests/RemittanceManager.test.ts +493 -0
  444. package/src/remittance/__tests/examples.ts +130 -0
  445. package/src/remittance/index.ts +6 -0
  446. package/src/remittance/modules/BasicBRC29.ts +361 -0
  447. package/src/remittance/modules/index.ts +1 -0
  448. package/src/remittance/types.ts +284 -0
  449. package/src/script/OP.ts +15 -13
  450. package/src/script/Script.ts +70 -5
  451. package/src/script/Spend.ts +128 -52
  452. package/src/script/__tests/Chronicle.test.ts +186 -0
  453. package/src/script/__tests/Script.test.ts +39 -6
  454. package/src/script/__tests/Spend.test.ts +1 -1
  455. package/src/script/__tests/SpendValildVectors.test.ts +63 -0
  456. package/src/script/__tests/lrshiftnum.test.ts +185 -0
  457. package/src/script/__tests/sighashTestData.ts +1031 -0
  458. package/src/script/__tests/spend.valid.vectors.ts +9 -16
  459. package/src/script/templates/PushDrop.ts +32 -17
  460. package/src/script/templates/__tests/PushDrop.test.ts +28 -0
  461. package/src/storage/__tests/StorageUploader.test.ts +1 -1
  462. package/src/transaction/Beef.ts +103 -40
  463. package/src/transaction/BeefTx.ts +38 -19
  464. package/src/transaction/MerklePath.ts +30 -9
  465. package/src/transaction/Transaction.ts +277 -38
  466. package/src/transaction/__tests/Beef.test.ts +77 -0
  467. package/src/transaction/__tests/Transaction.test.ts +641 -3
  468. package/src/transaction/broadcasters/ARC.ts +34 -7
  469. package/src/transaction/broadcasters/__tests/ARC.test.ts +98 -0
  470. package/src/wallet/Wallet.interfaces.ts +5 -5
  471. package/dist/cjs/src/storage/__test/StorageDownloader.test.js +0 -171
  472. package/dist/cjs/src/storage/__test/StorageDownloader.test.js.map +0 -1
  473. package/dist/cjs/src/storage/__test/StorageUploader.test.js +0 -163
  474. package/dist/cjs/src/storage/__test/StorageUploader.test.js.map +0 -1
  475. package/dist/cjs/src/storage/__test/StorageUtils.test.js +0 -97
  476. package/dist/cjs/src/storage/__test/StorageUtils.test.js.map +0 -1
  477. package/dist/esm/src/storage/__test/StorageDownloader.test.js +0 -166
  478. package/dist/esm/src/storage/__test/StorageDownloader.test.js.map +0 -1
  479. package/dist/esm/src/storage/__test/StorageUploader.test.js +0 -135
  480. package/dist/esm/src/storage/__test/StorageUploader.test.js.map +0 -1
  481. package/dist/esm/src/storage/__test/StorageUtils.test.js +0 -72
  482. package/dist/esm/src/storage/__test/StorageUtils.test.js.map +0 -1
  483. package/dist/types/src/storage/__test/StorageDownloader.test.d.ts +0 -2
  484. package/dist/types/src/storage/__test/StorageDownloader.test.d.ts.map +0 -1
  485. package/dist/types/src/storage/__test/StorageUploader.test.d.ts +0 -2
  486. package/dist/types/src/storage/__test/StorageUploader.test.d.ts.map +0 -1
  487. package/dist/types/src/storage/__test/StorageUtils.test.d.ts +0 -2
  488. package/dist/types/src/storage/__test/StorageUtils.test.d.ts.map +0 -1
@@ -0,0 +1,133 @@
1
+ import type { RemittanceOptionId, Termination } from '../types.js';
2
+ import type { ModuleContext } from '../types.js';
3
+ import type { RemittanceModule } from '../RemittanceModule.js';
4
+ import type { WalletInterface, WalletCounterparty, PubKeyHex, WalletProtocol } from '../../wallet/Wallet.interfaces.js';
5
+ /**
6
+ * BRC-29-like payment option terms.
7
+ *
8
+ * This module intentionally keeps option terms minimal:
9
+ * - Amount is taken from the invoice total (and validated as satoshis)
10
+ * - The payer derives the payee's per-payment public key using wallet.getPublicKey with a stable protocolID
11
+ */
12
+ export interface Brc29OptionTerms {
13
+ /** Payment amount in satoshis. */
14
+ amountSatoshis: number;
15
+ /** The recipient of the payment */
16
+ payee: PubKeyHex;
17
+ /** Which output index to internalize, default 0. */
18
+ outputIndex?: number;
19
+ /** Optionally override the protocolID used in getPublicKey. */
20
+ protocolID?: WalletProtocol;
21
+ /** Optional labels for createAction. */
22
+ labels?: string[];
23
+ /** Optional description for createAction. */
24
+ description?: string;
25
+ }
26
+ /**
27
+ * Settlement artifact carried in the settlement message.
28
+ */
29
+ export interface Brc29SettlementArtifact {
30
+ customInstructions: {
31
+ derivationPrefix: string;
32
+ derivationSuffix: string;
33
+ };
34
+ transaction: number[];
35
+ amountSatoshis: number;
36
+ outputIndex?: number;
37
+ }
38
+ /**
39
+ * Receipt data for BRC-29 settlements.
40
+ */
41
+ export interface Brc29ReceiptData {
42
+ /** Result returned from wallet.internalizeAction, if accepted. */
43
+ internalizeResult?: unknown;
44
+ /** Human-readable rejection reason, if rejected. */
45
+ rejectedReason?: string;
46
+ /** If rejected with refund, contains the refund payment token. */
47
+ refund?: {
48
+ token: Brc29SettlementArtifact;
49
+ feeSatoshis: number;
50
+ };
51
+ }
52
+ export interface NonceProvider {
53
+ createNonce: (wallet: WalletInterface, scope: WalletCounterparty, originator?: unknown) => Promise<string>;
54
+ }
55
+ export interface LockingScriptProvider {
56
+ /** Converts a public key string to a P2PKH locking script hex. */
57
+ pubKeyToP2PKHLockingScript: (publicKey: string) => Promise<string> | string;
58
+ }
59
+ /**
60
+ * Default nonce provider using SDK createNonce.
61
+ */
62
+ export declare const DefaultNonceProvider: NonceProvider;
63
+ /**
64
+ * Default locking script provider using SDK P2PKH template.
65
+ */
66
+ export declare const DefaultLockingScriptProvider: LockingScriptProvider;
67
+ export interface Brc29RemittanceModuleConfig {
68
+ /** Default protocolID to use with wallet.getPublicKey. */
69
+ protocolID?: WalletProtocol;
70
+ /** Labels applied to created actions. */
71
+ labels?: string[];
72
+ /** Description applied to created actions. */
73
+ description?: string;
74
+ /** Output description for created actions. */
75
+ outputDescription?: string;
76
+ /**
77
+ * Fee charged on refunds, in satoshis.
78
+ */
79
+ refundFeeSatoshis?: number;
80
+ /**
81
+ * Minimum refund to issue. If refund would be smaller, module will reject without refund.
82
+ */
83
+ minRefundSatoshis?: number;
84
+ /** How wallet internalizes the payment. */
85
+ internalizeProtocol?: 'wallet payment' | 'basket insertion';
86
+ nonceProvider?: NonceProvider;
87
+ lockingScriptProvider?: LockingScriptProvider;
88
+ }
89
+ /**
90
+ * BRC-29-based remittance module.
91
+ * - payer creates a payment action to a derived P2PKH output
92
+ * - payer sends { tx, derivationPrefix, derivationSuffix } as settlement artifact
93
+ * - payee internalizes the tx output using wallet.internalizeAction
94
+ * - optional rejection can include a refund token embedded in the termination details
95
+ */
96
+ export declare class Brc29RemittanceModule implements RemittanceModule<Brc29OptionTerms, Brc29SettlementArtifact, Brc29ReceiptData> {
97
+ readonly id: RemittanceOptionId;
98
+ readonly name = "BSV (BRC-29 derived P2PKH)";
99
+ readonly allowUnsolicitedSettlements = true;
100
+ private readonly protocolID;
101
+ private readonly labels;
102
+ private readonly description;
103
+ private readonly outputDescription;
104
+ private readonly refundFeeSatoshis;
105
+ private readonly minRefundSatoshis;
106
+ private readonly internalizeProtocol;
107
+ private readonly nonceProvider;
108
+ private readonly lockingScriptProvider;
109
+ constructor(cfg?: Brc29RemittanceModuleConfig);
110
+ buildSettlement(args: {
111
+ threadId: string;
112
+ option: Brc29OptionTerms;
113
+ note?: string;
114
+ }, ctx: ModuleContext): Promise<{
115
+ action: 'settle';
116
+ artifact: Brc29SettlementArtifact;
117
+ } | {
118
+ action: 'terminate';
119
+ termination: Termination;
120
+ }>;
121
+ acceptSettlement(args: {
122
+ threadId: string;
123
+ settlement: Brc29SettlementArtifact;
124
+ sender: PubKeyHex;
125
+ }, ctx: ModuleContext): Promise<{
126
+ action: 'accept';
127
+ receiptData?: Brc29ReceiptData;
128
+ } | {
129
+ action: 'terminate';
130
+ termination: Termination;
131
+ }>;
132
+ }
133
+ //# sourceMappingURL=BasicBRC29.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BasicBRC29.d.ts","sourceRoot":"","sources":["../../../../../src/remittance/modules/BasicBRC29.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './BasicBRC29.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/remittance/modules/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA"}
@@ -0,0 +1,238 @@
1
+ import { HexString, OutpointString, PubKeyHex, Base64String, WalletInterface } from '../wallet/index.js';
2
+ /**
3
+ * Types for core Remittance protocol.
4
+ *
5
+ * The goal is to keep the core protocol:
6
+ * - UTXO-friendly (transactions and partial transactions can be carried as artifacts)
7
+ * - Denomination-agnostic (amounts are typed, not forced to satoshis)
8
+ * - Module-oriented (remittance option payloads are opaque to the core)
9
+ */
10
+ export type ThreadId = Base64String;
11
+ export type RemittanceOptionId = Base64String;
12
+ export type UnixMillis = number;
13
+ /**
14
+ * Remittance thread state machine.
15
+ *
16
+ * States:
17
+ * - new: thread exists but no identity/invoice/settlement activity yet.
18
+ * - identityRequested: identity request sent or received.
19
+ * - identityResponded: identity response sent or received.
20
+ * - identityAcknowledged: identity response acknowledged (required before proceeding).
21
+ * - invoiced: invoice sent or received.
22
+ * - settled: settlement sent or received.
23
+ * - receipted: receipt issued or received.
24
+ * - terminated: thread terminated with a reason.
25
+ * - errored: unexpected error occurred while processing the thread.
26
+ */
27
+ export type RemittanceThreadState = 'new' | 'identityRequested' | 'identityResponded' | 'identityAcknowledged' | 'invoiced' | 'settled' | 'receipted' | 'terminated' | 'errored';
28
+ /**
29
+ * Allowed remittance state transitions.
30
+ *
31
+ * This is the canonical state machine for remittance threads.
32
+ * Use it to validate transitions and to build audits/visualizations.
33
+ */
34
+ export declare const REMITTANCE_STATE_TRANSITIONS: Record<RemittanceThreadState, RemittanceThreadState[]>;
35
+ export interface Unit {
36
+ /** Namespace for disambiguation, e.g. 'bsv', 'iso4217', 'token'. */
37
+ namespace: string;
38
+ /** Unit code within the namespace, e.g. 'sat', 'USD', 'mnee'. */
39
+ code: string;
40
+ /** Optional decimal places for display/normalization. */
41
+ decimals?: number;
42
+ }
43
+ export interface Amount {
44
+ /** Decimal string. Avoid floats at the protocol layer. */
45
+ value: string;
46
+ unit: Unit;
47
+ }
48
+ export declare const SAT_UNIT: Unit;
49
+ export interface LineItem {
50
+ id?: string;
51
+ description: string;
52
+ /** Decimal string, e.g. '1', '2', '0.5'. */
53
+ quantity?: string;
54
+ unitPrice?: Amount;
55
+ /** Total amount for the line (optional if derivable). */
56
+ amount?: Amount;
57
+ metadata?: Record<string, unknown>;
58
+ }
59
+ /**
60
+ * Shared commercial/metadata fields for invoice and receipt-like instruments.
61
+ *
62
+ * NOTE: "payee" and "payer" are identity keys, not addresses.
63
+ * Payment addresses / scripts are settlement-module concerns.
64
+ */
65
+ export interface InstrumentBase {
66
+ threadId: ThreadId;
67
+ payee: PubKeyHex;
68
+ payer: PubKeyHex;
69
+ note?: string;
70
+ lineItems: LineItem[];
71
+ total: Amount;
72
+ invoiceNumber: string;
73
+ createdAt: UnixMillis;
74
+ arbitrary?: Record<string, unknown>;
75
+ }
76
+ /**
77
+ * Invoice (solicitation) that contains N remittance options.
78
+ *
79
+ * Each remittance option is keyed by a module id.
80
+ * The payload for each option is module-defined and opaque to the core.
81
+ *
82
+ * This is where “UTXO offers” live: a module option payload can include a partial tx template,
83
+ * UTXO references, scripts, overlay anchors, SPV, etc. The manager does not interpret them.
84
+ */
85
+ export interface Invoice extends InstrumentBase {
86
+ kind: 'invoice';
87
+ expiresAt?: UnixMillis;
88
+ options: Record<RemittanceOptionId, unknown>;
89
+ }
90
+ /**
91
+ * An identity certificate request.
92
+ *
93
+ * Contains a list of requested certificate types, fields from each, plus acceptable certifiers.
94
+ */
95
+ export interface IdentityVerificationRequest {
96
+ kind: 'identityVerificationRequest';
97
+ threadId: ThreadId;
98
+ /** Details of the requested certificates. */
99
+ request: {
100
+ /** Map of certificate types to requested fields from each. */
101
+ types: Record<string, string[]>;
102
+ /** List of acceptable certifier identity keys. */
103
+ certifiers: PubKeyHex[];
104
+ };
105
+ }
106
+ /**
107
+ * An identity certificate response.
108
+ *
109
+ * Contains certificates issued by the certifiers named in the corresponding request, with fields revealed to the counterparty.
110
+ */
111
+ export interface IdentityVerificationResponse {
112
+ kind: 'identityVerificationResponse';
113
+ threadId: ThreadId;
114
+ /** List of certificates issued by the certifiers named in the corresponding request, with fields revealed to the counterparty. */
115
+ certificates: Array<{
116
+ /** Certificate type, e.g. base64 Type ID corresponding to 'personalId', 'businessId', etc. */
117
+ type: Base64String;
118
+ /** Certifier identity key. */
119
+ certifier: PubKeyHex;
120
+ /** Subject identity key. */
121
+ subject: PubKeyHex;
122
+ /** The certificate's encrypted fields that have been signed. */
123
+ fields: Record<string, Base64String>;
124
+ /** Signature over the cert. */
125
+ signature: HexString;
126
+ /** Certificate serial number. */
127
+ serialNumber: Base64String;
128
+ /** Revocation outpoint. If spent on-chain, the certificate is invalid. */
129
+ revocationOutpoint: OutpointString;
130
+ /** Field revelation keys for the counterparty. */
131
+ keyringForVerifier: Record<string, Base64String>;
132
+ }>;
133
+ }
134
+ /**
135
+ * An identity verification acknowledgment.
136
+ *
137
+ * A simple ack message indicating that a requested identity verification has been completed successfully.
138
+ */
139
+ export interface IdentityVerificationAcknowledgment {
140
+ kind: 'identityVerificationAcknowledgment';
141
+ threadId: ThreadId;
142
+ }
143
+ /**
144
+ * A settlement attempt.
145
+ *
146
+ * This is module-agnostic: "artifact" can be a transaction, a partial transaction,
147
+ * a stablecoin transfer result, even a fiat card-payment approval code, etc.
148
+ */
149
+ export interface Settlement {
150
+ kind: 'settlement';
151
+ threadId: ThreadId;
152
+ moduleId: RemittanceOptionId;
153
+ optionId: RemittanceOptionId;
154
+ sender: PubKeyHex;
155
+ createdAt: UnixMillis;
156
+ artifact: unknown;
157
+ note?: string;
158
+ }
159
+ /**
160
+ * Receipt issued by the payee (or service provider).
161
+ *
162
+ * A receipt could be a PDF, a photo/oroof-of-delivery, a copy of the payment transaction, etc.
163
+ *
164
+ * A receipt should NOT be issued when a settlement is rejected/failed. Use a Termination instead.
165
+ */
166
+ export interface Receipt {
167
+ kind: 'receipt';
168
+ threadId: ThreadId;
169
+ moduleId: RemittanceOptionId;
170
+ optionId: RemittanceOptionId;
171
+ payee: PubKeyHex;
172
+ payer: PubKeyHex;
173
+ createdAt: UnixMillis;
174
+ receiptData: unknown;
175
+ }
176
+ /**
177
+ * Termination details for failed operations.
178
+ */
179
+ export interface Termination {
180
+ /** Reason code (module-specific). */
181
+ code: string;
182
+ /** Human-readable message. */
183
+ message: string;
184
+ /** Optional module-specific details or refund information. */
185
+ details?: unknown;
186
+ }
187
+ /**
188
+ * Transport message format expected from the CommsLayer.
189
+ *
190
+ * It closely matches the message-box-client shapes:
191
+ * messageId, sender, body, etc.
192
+ */
193
+ export interface PeerMessage {
194
+ messageId: string;
195
+ sender: PubKeyHex;
196
+ recipient: PubKeyHex;
197
+ messageBox: string;
198
+ body: string;
199
+ }
200
+ /**
201
+ * Protocol envelope kinds.
202
+ * Everything runs in “threads” and carries a threadId.
203
+ */
204
+ export type RemittanceKind = 'invoice' | 'identityVerificationRequest' | 'identityVerificationResponse' | 'identityVerificationAcknowledgment' | 'settlement' | 'receipt' | 'termination';
205
+ /**
206
+ * Protocol envelope.
207
+ *
208
+ * This is what RemittanceManager serializes into the CommsLayer message body.
209
+ */
210
+ export interface RemittanceEnvelope<K extends RemittanceKind = RemittanceKind, P = unknown> {
211
+ /** Protocol version. */
212
+ v: 1;
213
+ /** Envelope id (idempotency key). Not the transport messageId. */
214
+ id: string;
215
+ kind: K;
216
+ threadId: ThreadId;
217
+ createdAt: UnixMillis;
218
+ payload: P;
219
+ }
220
+ /**
221
+ * Simple logger interface.
222
+ */
223
+ export interface LoggerLike {
224
+ log: (...args: any[]) => void;
225
+ warn: (...args: any[]) => void;
226
+ error: (...args: any[]) => void;
227
+ }
228
+ /**
229
+ * Context object passed to module methods.
230
+ */
231
+ export interface ModuleContext {
232
+ wallet: WalletInterface;
233
+ /** Optional originator domain forwarded to wallet methods. */
234
+ originator?: unknown;
235
+ now: () => number;
236
+ logger?: LoggerLike;
237
+ }
238
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/remittance/types.ts"],"names":[],"mappings":"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"}
@@ -56,11 +56,8 @@ declare const OP: {
56
56
  OP_SWAP: number;
57
57
  OP_TUCK: number;
58
58
  OP_CAT: number;
59
- OP_SUBSTR: number;
60
59
  OP_SPLIT: number;
61
- OP_LEFT: number;
62
60
  OP_NUM2BIN: number;
63
- OP_RIGHT: number;
64
61
  OP_BIN2NUM: number;
65
62
  OP_SIZE: number;
66
63
  OP_INVERT: number;
@@ -112,10 +109,15 @@ declare const OP: {
112
109
  OP_NOP2: number;
113
110
  OP_NOP3: number;
114
111
  OP_NOP4: number;
112
+ OP_SUBSTR: number;
115
113
  OP_NOP5: number;
114
+ OP_LEFT: number;
116
115
  OP_NOP6: number;
116
+ OP_RIGHT: number;
117
117
  OP_NOP7: number;
118
+ OP_LSHIFTNUM: number;
118
119
  OP_NOP8: number;
120
+ OP_RSHIFTNUM: number;
119
121
  OP_NOP9: number;
120
122
  OP_NOP10: number;
121
123
  OP_NOP11: number;
@@ -1 +1 @@
1
- {"version":3,"file":"OP.d.ts","sourceRoot":"","sources":["../../../../src/script/OP.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,QAAA,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgNP,CAAA;AAMD,eAAe,EAAE,CAAA"}
1
+ {"version":3,"file":"OP.d.ts","sourceRoot":"","sources":["../../../../src/script/OP.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,QAAA,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkNP,CAAA;AAMD,eAAe,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Script.d.ts","sourceRoot":"","sources":["../../../../src/script/Script.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,kBAAkB,CAAA;AAG1C,OAAO,SAAS,MAAM,4BAA4B,CAAA;AAYlD,MAAM,CAAC,OAAO,OAAO,MAAM;IACzB,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,aAAa,CAAC,CAAY;IAClC,OAAO,CAAC,QAAQ,CAAC,CAAQ;IAEzB;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,CAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAuEpC;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,CAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAepC;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM;IAKzC;;;;;;;OAOG;gBACU,MAAM,GAAE,WAAW,EAAO,EAAE,aAAa,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,GAAE,OAAc;IAO9G,IAAI,MAAM,IAAK,WAAW,EAAE,CAG3B;IAED,IAAI,MAAM,CAAE,KAAK,EAAE,WAAW,EAAE,EAI/B;IAED,OAAO,CAAC,YAAY;IAUpB;;;;OAIG;IACH,KAAK,IAAK,MAAM;IAUhB;;;;OAIG;IACH,KAAK,IAAK,MAAM;IAehB;;;;OAIG;IACH,QAAQ,IAAK,MAAM,EAAE;IAIrB,YAAY,IAAK,UAAU;IAO3B;;;;;OAKG;IACH,WAAW,CAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAMpC;;;;;OAKG;IACH,WAAW,CAAE,EAAE,EAAE,MAAM,GAAG,MAAM;IAMhC;;;;;;OAMG;IACH,cAAc,CAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM;IAM9C;;;;;OAKG;IACH,OAAO,CAAE,EAAE,EAAE,SAAS,GAAG,MAAM;IAsB/B;;;;;;OAMG;IACH,QAAQ,CAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM;IAwBhC;;;;;OAKG;IACH,WAAW,CAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAMjC;;;;OAIG;IACH,oBAAoB,IAAK,MAAM;IAY/B;;;;;;OAMG;IACH,aAAa,CAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAatC;;;;OAIG;IACH,UAAU,IAAK,OAAO;IAWtB;;;;OAIG;IACH,eAAe,IAAK,OAAO;IAI3B;;;;OAIG;IACH,iBAAiB,IAAK,OAAO;IAI7B;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAuBtC,OAAO,CAAC,sBAAsB;IAqB9B,OAAO,CAAC,6BAA6B;IAKrC,OAAO,CAAC,MAAM,CAAC,cAAc;IA+B7B,OAAO,CAAC,MAAM,CAAC,WAAW;IA6E1B,OAAO,CAAC,MAAM,CAAC,SAAS;IAaxB,OAAO,CAAC,cAAc;CAWvB"}
1
+ {"version":3,"file":"Script.d.ts","sourceRoot":"","sources":["../../../../src/script/Script.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,kBAAkB,CAAA;AAG1C,OAAO,SAAS,MAAM,4BAA4B,CAAA;AAYlD,MAAM,CAAC,OAAO,OAAO,MAAM;IACzB,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,aAAa,CAAC,CAAY;IAClC,OAAO,CAAC,QAAQ,CAAC,CAAQ;IAEzB;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,CAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAuEpC;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,CAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAepC;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM;IAKzC;;;;;;;OAOG;gBACU,MAAM,GAAE,WAAW,EAAO,EAAE,aAAa,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,GAAE,OAAc;IAO9G,IAAI,MAAM,IAAK,WAAW,EAAE,CAG3B;IAED,IAAI,MAAM,CAAE,KAAK,EAAE,WAAW,EAAE,EAI/B;IAED,OAAO,CAAC,YAAY;IAUpB;;;;OAIG;IACH,KAAK,IAAK,MAAM;IAUhB;;;;OAIG;IACH,KAAK,IAAK,MAAM;IAehB;;;;OAIG;IACH,QAAQ,IAAK,MAAM,EAAE;IAIrB,YAAY,IAAK,UAAU;IAO3B;;;;;OAKG;IACH,WAAW,CAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAMpC;;;;;OAKG;IACH,WAAW,CAAE,EAAE,EAAE,MAAM,GAAG,MAAM;IAMhC;;;;;;OAMG;IACH,cAAc,CAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM;IAM9C;;;;;OAKG;IACH,OAAO,CAAE,EAAE,EAAE,SAAS,GAAG,MAAM;IAsB/B;;;;;;OAMG;IACH,QAAQ,CAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM;IAwBhC;;;;;OAKG;IACH,WAAW,CAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAMjC;;;;OAIG;IACH,oBAAoB,IAAK,MAAM;IAY/B;;;;;;OAMG;IACH,aAAa,CAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IA8EtC;;;;OAIG;IACH,UAAU,IAAK,OAAO;IAWtB;;;;OAIG;IACH,eAAe,IAAK,OAAO;IAI3B;;;;OAIG;IACH,iBAAiB,IAAK,OAAO;IAI7B;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAuBtC,OAAO,CAAC,sBAAsB;IAqB9B,OAAO,CAAC,6BAA6B;IAKrC,OAAO,CAAC,MAAM,CAAC,cAAc;IA+B7B,OAAO,CAAC,MAAM,CAAC,WAAW;IA6E1B,OAAO,CAAC,MAAM,CAAC,SAAS;IAaxB,OAAO,CAAC,cAAc;CAWvB"}
@@ -20,6 +20,8 @@ import TransactionOutput from '../transaction/TransactionOutput.js';
20
20
  * @property {UnlockingScript} unlockingScript - The unlocking script that unlocks the UTXO for spending.
21
21
  * @property {number} inputSequence - The sequence number of this input.
22
22
  * @property {number} lockTime - The lock time of the transaction.
23
+ * @property {number} memoryLimit - Control over script interpreter memory usage.
24
+ * @property {boolean} isRelaxed - Optional. If true, disables all the unlocking script maleability restrictions consitent with Chronicle release. Maleability restrictions are neve appliced to locking scripts.
23
25
  */
24
26
  export default class Spend {
25
27
  sourceTXID: string;
@@ -42,6 +44,7 @@ export default class Spend {
42
44
  memoryLimit: number;
43
45
  stackMem: number;
44
46
  altStackMem: number;
47
+ isRelaxedOverride: boolean;
45
48
  private sigHashCache;
46
49
  /**
47
50
  * @constructor
@@ -59,6 +62,8 @@ export default class Spend {
59
62
  * @param {UnlockingScript} params.unlockingScript - The unlocking script for this spend.
60
63
  * @param {number} params.inputSequence - The sequence number of this input.
61
64
  * @param {number} params.lockTime - The lock time of the transaction.
65
+ * @param {number} params.memoryLimit - Optional control over script interpreter memory usage.
66
+ * @param {boolean} params.isRelaxed - Optional. If true, disables all the unlocking script maleability restrictions consitent with Chronicle release. Maleability restrictions are neve appliced to locking scripts.
62
67
  *
63
68
  * @example
64
69
  * const spend = new Spend({
@@ -88,7 +93,9 @@ export default class Spend {
88
93
  inputIndex: number;
89
94
  lockTime: number;
90
95
  memoryLimit?: number;
96
+ isRelaxed?: boolean;
91
97
  });
98
+ private isRelaxed;
92
99
  reset(): void;
93
100
  private ensureStackMem;
94
101
  private ensureAltStackMem;
@@ -1 +1 @@
1
- {"version":3,"file":"Spend.d.ts","sourceRoot":"","sources":["../../../../src/script/Spend.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,oBAAoB,CAAA;AAC9C,OAAO,eAAe,MAAM,sBAAsB,CAAA;AAWlD,OAAO,gBAAgB,MAAM,oCAAoC,CAAA;AACjE,OAAO,iBAAiB,MAAM,qCAAqC,CAAA;AAqGnE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,OAAO,OAAO,KAAK;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,MAAM,CAAA;IACzB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,aAAa,CAAA;IAC5B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,WAAW,EAAE,gBAAgB,EAAE,CAAA;IAC/B,OAAO,EAAE,iBAAiB,EAAE,CAAA;IAC5B,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,eAAe,CAAA;IAChC,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAEhB,OAAO,EAAE,iBAAiB,GAAG,eAAe,CAAA;IAC5C,cAAc,EAAE,MAAM,CAAA;IACtB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAA;IACjB,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAA;IACpB,OAAO,EAAE,OAAO,EAAE,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,YAAY,CAAoB;IAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;gBACU,MAAM,EAAE;QACnB,UAAU,EAAE,MAAM,CAAA;QAClB,iBAAiB,EAAE,MAAM,CAAA;QACzB,cAAc,EAAE,MAAM,CAAA;QACtB,aAAa,EAAE,aAAa,CAAA;QAC5B,kBAAkB,EAAE,MAAM,CAAA;QAC1B,WAAW,EAAE,gBAAgB,EAAE,CAAA;QAC/B,OAAO,EAAE,iBAAiB,EAAE,CAAA;QAC5B,eAAe,EAAE,eAAe,CAAA;QAChC,aAAa,EAAE,MAAM,CAAA;QACrB,UAAU,EAAE,MAAM,CAAA;QAClB,QAAQ,EAAE,MAAM,CAAA;QAChB,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB;IAsBD,KAAK,IAAK,IAAI;IAYd,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,sBAAsB;IAwB9B,OAAO,CAAC,sBAAsB;IAgC9B,OAAO,CAAC,eAAe;IAuBvB,IAAI,IAAK,OAAO;IAqnBhB;;;;;;;;;;OAUG;IACH,QAAQ,IAAK,OAAO;IA2CpB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,qBAAqB;CAc9B"}
1
+ {"version":3,"file":"Spend.d.ts","sourceRoot":"","sources":["../../../../src/script/Spend.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,oBAAoB,CAAA;AAC9C,OAAO,eAAe,MAAM,sBAAsB,CAAA;AAWlD,OAAO,gBAAgB,MAAM,oCAAoC,CAAA;AACjE,OAAO,iBAAiB,MAAM,qCAAqC,CAAA;AAuFnE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,OAAO,OAAO,KAAK;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,MAAM,CAAA;IACzB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,aAAa,CAAA;IAC5B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,WAAW,EAAE,gBAAgB,EAAE,CAAA;IAC/B,OAAO,EAAE,iBAAiB,EAAE,CAAA;IAC5B,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,eAAe,CAAA;IAChC,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAEhB,OAAO,EAAE,iBAAiB,GAAG,eAAe,CAAA;IAC5C,cAAc,EAAE,MAAM,CAAA;IACtB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAA;IACjB,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAA;IACpB,OAAO,EAAE,OAAO,EAAE,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,OAAO,CAAA;IAE1B,OAAO,CAAC,YAAY,CAAoB;IAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;gBACU,MAAM,EAAE;QACnB,UAAU,EAAE,MAAM,CAAA;QAClB,iBAAiB,EAAE,MAAM,CAAA;QACzB,cAAc,EAAE,MAAM,CAAA;QACtB,aAAa,EAAE,aAAa,CAAA;QAC5B,kBAAkB,EAAE,MAAM,CAAA;QAC1B,WAAW,EAAE,gBAAgB,EAAE,CAAA;QAC/B,OAAO,EAAE,iBAAiB,EAAE,CAAA;QAC5B,eAAe,EAAE,eAAe,CAAA;QAChC,aAAa,EAAE,MAAM,CAAA;QACrB,UAAU,EAAE,MAAM,CAAA;QAClB,QAAQ,EAAE,MAAM,CAAA;QAChB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,SAAS,CAAC,EAAE,OAAO,CAAA;KACpB;IAuBD,OAAO,CAAC,SAAS;IAKjB,KAAK,IAAK,IAAI;IAYd,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,sBAAsB;IAoB9B,OAAO,CAAC,sBAAsB;IAgC9B,OAAO,CAAC,eAAe;IAuBvB,IAAI,IAAK,OAAO;IAssBhB;;;;;;;;;;OAUG;IACH,QAAQ,IAAK,OAAO;IA2CpB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,qBAAqB;CAc9B"}
@@ -1,18 +1,17 @@
1
1
  import { ScriptTemplate, LockingScript, UnlockingScript } from '../index.js';
2
2
  import { PublicKey } from '../../primitives/index.js';
3
- import { WalletInterface } from '../../wallet/Wallet.interfaces.js';
3
+ import { WalletInterface, WalletProtocol } from '../../wallet/Wallet.interfaces.js';
4
4
  import { Transaction } from '../../transaction/index.js';
5
- import { WalletProtocol } from '../../wallet/Wallet.interfaces.js';
6
5
  export default class PushDrop implements ScriptTemplate {
7
6
  wallet: WalletInterface;
8
7
  originator?: string;
9
8
  /**
10
9
  * Decodes a PushDrop script back into its token fields and the locking public key. If a signature was present, it will be the last field returned.
11
- * Warning: Only works with a P2PK lock at the beginning of the script.
12
10
  * @param script PushDrop script to decode back into token fields
11
+ * @param lockPosition Where the locking public key is positioned in the script ('before' = at start, 'after' = at end after DROP operations)
13
12
  * @returns An object containing PushDrop token fields and the locking public key. If a signature was included, it will be the last field.
14
13
  */
15
- static decode(script: LockingScript): {
14
+ static decode(script: LockingScript, lockPosition?: 'before' | 'after'): {
16
15
  lockingPublicKey: PublicKey;
17
16
  fields: number[][];
18
17
  };
@@ -1 +1 @@
1
- {"version":3,"file":"PushDrop.d.ts","sourceRoot":"","sources":["../../../../../src/script/templates/PushDrop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAM,MAAM,aAAa,CAAA;AAChF,OAAO,EAKL,SAAS,EACV,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AA4ClE,MAAM,CAAC,OAAO,OAAO,QAAS,YAAW,cAAc;IACrD,MAAM,EAAE,eAAe,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG;QACpC,gBAAgB,EAAE,SAAS,CAAA;QAC3B,MAAM,EAAE,MAAM,EAAE,EAAE,CAAA;KACnB;IAkCD;;;;;OAKG;gBACS,MAAM,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,MAAM;IAKxD;;;;;;;;;;OAUG;IACG,IAAI,CACR,MAAM,EAAE,MAAM,EAAE,EAAE,EAClB,UAAU,EAAE,cAAc,EAC1B,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EACpB,OAAO,UAAQ,EACf,gBAAgB,UAAO,EACvB,YAAY,GAAE,QAAQ,GAAG,OAAkB,GAC1C,OAAO,CAAC,aAAa,CAAC;IA0CzB;;;;;;;;;;;;OAYG;IACH,MAAM,CACJ,UAAU,EAAE,cAAc,EAC1B,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EACpB,WAAW,GAAE,KAAK,GAAG,MAAM,GAAG,QAAgB,EAC9C,YAAY,UAAQ,EACpB,cAAc,CAAC,EAAE,MAAM,EACvB,aAAa,CAAC,EAAE,aAAa,GAC5B;QACD,IAAI,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAA;QACvE,cAAc,EAAE,MAAM,OAAO,CAAC,EAAE,CAAC,CAAA;KAClC;CAmFF"}
1
+ {"version":3,"file":"PushDrop.d.ts","sourceRoot":"","sources":["../../../../../src/script/templates/PushDrop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAM,MAAM,aAAa,CAAA;AAChF,OAAO,EAKL,SAAS,EACV,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AA4CxD,MAAM,CAAC,OAAO,OAAO,QAAS,YAAW,cAAc;IACrD,MAAM,EAAE,eAAe,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAAE,MAAM,EAAE,aAAa,EAAE,YAAY,GAAE,QAAQ,GAAG,OAAkB,GAAG;QAClF,gBAAgB,EAAE,SAAS,CAAA;QAC3B,MAAM,EAAE,MAAM,EAAE,EAAE,CAAA;KACnB;IAkDD;;;;;OAKG;gBACU,MAAM,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,MAAM;IAKzD;;;;;;;;;;OAUG;IACG,IAAI,CACR,MAAM,EAAE,MAAM,EAAE,EAAE,EAClB,UAAU,EAAE,cAAc,EAC1B,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EACpB,OAAO,UAAQ,EACf,gBAAgB,UAAO,EACvB,YAAY,GAAE,QAAQ,GAAG,OAAkB,GAC1C,OAAO,CAAC,aAAa,CAAC;IA0CzB;;;;;;;;;;;;OAYG;IACH,MAAM,CACJ,UAAU,EAAE,cAAc,EAC1B,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EACpB,WAAW,GAAE,KAAK,GAAG,MAAM,GAAG,QAAgB,EAC9C,YAAY,UAAQ,EACpB,cAAc,CAAC,EAAE,MAAM,EACvB,aAAa,CAAC,EAAE,aAAa,GAC5B;QACC,IAAI,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAA;QACvE,cAAc,EAAE,MAAM,OAAO,CAAC,EAAE,CAAC,CAAA;KAClC;CAmFJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"StorageUtils.d.ts","sourceRoot":"","sources":["../../../../src/storage/StorageUtils.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,eAAO,MAAM,YAAY,QAAS,MAAM,KAAG,MAI1C,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,SAAU,MAAM,EAAE,KAAG,MAK9C,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,aAAa,SAAU,UAAU,GAAG,MAAM,EAAE,KAAG,MAU3D,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,cAAc,QAAS,MAAM,KAAG,MAAM,EAUlD,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,UAAU,QAAS,MAAM,KAAG,OAOxC,CAAA"}
1
+ {"version":3,"file":"StorageUtils.d.ts","sourceRoot":"","sources":["../../../../src/storage/StorageUtils.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,KAAK,MAAM,KAAG,MAI1C,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,EAAE,KAAG,MAK9C,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,UAAU,GAAG,MAAM,EAAE,KAAG,MAU3D,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,KAAK,MAAM,KAAG,MAAM,EAUlD,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,KAAG,OAOxC,CAAA"}
@@ -2,13 +2,13 @@ import MerklePath from './MerklePath.js';
2
2
  import Transaction from './Transaction.js';
3
3
  import ChainTracker from './ChainTracker.js';
4
4
  import BeefTx from './BeefTx.js';
5
- import { Reader, Writer } from '../primitives/utils.js';
5
+ import { Reader, Writer, ReaderUint8Array, WriterUint8Array } from '../primitives/utils.js';
6
6
  export declare const BEEF_V1 = 4022206465;
7
7
  export declare const BEEF_V2 = 4022206466;
8
8
  export declare const ATOMIC_BEEF = 16843009;
9
9
  export declare enum TX_DATA_FORMAT {
10
- RAWTX = 0,
11
- RAWTX_AND_BUMP_INDEX = 1,
10
+ RAWTX = 0,// rawtx without BUMP
11
+ RAWTX_AND_BUMP_INDEX = 1,// rawtx with bump index
12
12
  TXID_ONLY = 2
13
13
  }
14
14
  export declare class Beef {
@@ -26,6 +26,7 @@ export declare class Beef {
26
26
  private ensureSerializableState;
27
27
  private ensureSortedForSerialization;
28
28
  private getSerializedBytes;
29
+ private getBeefForAtomic;
29
30
  /**
30
31
  * @param txid of `beefTx` to find
31
32
  * @returns `BeefTx` in `txs` with `txid`.
@@ -85,7 +86,7 @@ export declare class Beef {
85
86
  * @param bumpIndex Optional. If a number, must be valid index into bumps array.
86
87
  * @returns txid of rawTx
87
88
  */
88
- mergeRawTx(rawTx: number[], bumpIndex?: number): BeefTx;
89
+ mergeRawTx(rawTx: number[] | Uint8Array, bumpIndex?: number): BeefTx;
89
90
  /**
90
91
  * Merge a `Transaction` and any referenced `merklePath` and `sourceTransaction`, recursifely.
91
92
  *
@@ -104,7 +105,7 @@ export declare class Beef {
104
105
  removeExistingTxid(txid: string): void;
105
106
  mergeTxidOnly(txid: string): BeefTx;
106
107
  mergeBeefTx(btx: BeefTx): BeefTx;
107
- mergeBeef(beef: number[] | Beef): void;
108
+ mergeBeef(beef: Beef | number[] | Uint8Array): void;
108
109
  /**
109
110
  * Sorts `txs` and checks structural validity of beef.
110
111
  *
@@ -159,12 +160,17 @@ export declare class Beef {
159
160
  * Serializes this data to `writer`
160
161
  * @param writer
161
162
  */
162
- toWriter(writer: Writer): void;
163
+ toWriter(writer: Writer | WriterUint8Array): void;
163
164
  /**
164
165
  * Returns a binary array representing the serialized BEEF
165
166
  * @returns A binary array representing the BEEF
167
+ * @returns An array of byte values containing binary serialization of the BEEF
166
168
  */
167
169
  toBinary(): number[];
170
+ /**
171
+ * Returns a binary array representing the serialized BEEF
172
+ * @returns A Uint8Array containing binary serialization of the BEEF
173
+ */
168
174
  toUint8Array(): Uint8Array;
169
175
  /**
170
176
  * Serialize this Beef as AtomicBEEF.
@@ -177,18 +183,29 @@ export declare class Beef {
177
183
  * @returns serialized contents of this Beef with AtomicBEEF prefix.
178
184
  */
179
185
  toBinaryAtomic(txid: string): number[];
186
+ /**
187
+ * Serialize this Beef as AtomicBEEF.
188
+ *
189
+ * `txid` must exist
190
+ *
191
+ * after sorting, if txid is not last txid, creates a clone and removes newer txs
192
+ *
193
+ * @param txid
194
+ * @returns serialized contents of this Beef with AtomicBEEF prefix.
195
+ */
196
+ toUint8ArrayAtomic(txid: string): Uint8Array;
180
197
  /**
181
198
  * Returns a hex string representing the serialized BEEF
182
199
  * @returns A hex string representing the BEEF
183
200
  */
184
201
  toHex(): string;
185
- static fromReader(br: Reader): Beef;
202
+ static fromReader(br: Reader | ReaderUint8Array): Beef;
186
203
  /**
187
204
  * Constructs an instance of the Beef class based on the provided binary array
188
- * @param bin The binary array from which to construct BEEF
205
+ * @param bin The binary array or Uint8Array from which to construct BEEF
189
206
  * @returns An instance of the Beef class constructed from the binary data
190
207
  */
191
- static fromBinary(bin: number[]): Beef;
208
+ static fromBinary(bin: number[] | Uint8Array): Beef;
192
209
  /**
193
210
  * Constructs an instance of the Beef class based on the provided string
194
211
  * @param s The string value from which to construct BEEF
@@ -1 +1 @@
1
- {"version":3,"file":"Beef.d.ts","sourceRoot":"","sources":["../../../../src/transaction/Beef.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Beef.d.ts","sourceRoot":"","sources":["../../../../src/transaction/Beef.ts"],"names":[],"mappings":"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"}