@arkade-os/sdk 0.4.26 → 0.4.28

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 (522) hide show
  1. package/README.md +36 -125
  2. package/dist/adapters/asyncStorage.cjs +48 -0
  3. package/dist/adapters/asyncStorage.cjs.map +1 -0
  4. package/dist/adapters/asyncStorage.d.cts +16 -0
  5. package/dist/{types/storage → adapters}/asyncStorage.d.ts +5 -2
  6. package/dist/adapters/asyncStorage.js +46 -0
  7. package/dist/adapters/asyncStorage.js.map +1 -0
  8. package/dist/adapters/expo.cjs +19 -0
  9. package/dist/adapters/expo.cjs.map +1 -0
  10. package/dist/adapters/expo.d.cts +48 -0
  11. package/dist/adapters/expo.d.ts +48 -0
  12. package/dist/adapters/expo.js +6 -0
  13. package/dist/adapters/expo.js.map +1 -0
  14. package/dist/adapters/fileSystem.cjs +116 -0
  15. package/dist/adapters/fileSystem.cjs.map +1 -0
  16. package/dist/adapters/fileSystem.d.cts +17 -0
  17. package/dist/{types/storage → adapters}/fileSystem.d.ts +5 -2
  18. package/dist/adapters/fileSystem.js +93 -0
  19. package/dist/adapters/fileSystem.js.map +1 -0
  20. package/dist/adapters/indexedDB.cjs +103 -0
  21. package/dist/adapters/indexedDB.cjs.map +1 -0
  22. package/dist/adapters/indexedDB.d.cts +18 -0
  23. package/dist/{types/storage → adapters}/indexedDB.d.ts +5 -2
  24. package/dist/adapters/indexedDB.js +101 -0
  25. package/dist/adapters/indexedDB.js.map +1 -0
  26. package/dist/adapters/localStorage.cjs +50 -0
  27. package/dist/adapters/localStorage.cjs.map +1 -0
  28. package/dist/{types/storage/inMemory.d.ts → adapters/localStorage.d.cts} +6 -3
  29. package/dist/{types/storage → adapters}/localStorage.d.ts +5 -2
  30. package/dist/adapters/localStorage.js +48 -0
  31. package/dist/adapters/localStorage.js.map +1 -0
  32. package/dist/ark-TZ1gXAXU.d.cts +3880 -0
  33. package/dist/ark-TZ1gXAXU.d.ts +3880 -0
  34. package/dist/{types/worker/expo/asyncStorageTaskQueue.d.ts → asyncStorageTaskQueue-Cb1F_Z9s.d.ts} +6 -3
  35. package/dist/asyncStorageTaskQueue-EFqSmYTg.d.cts +49 -0
  36. package/dist/chunk-5BLDMQED.cjs +18 -0
  37. package/dist/chunk-5BLDMQED.cjs.map +1 -0
  38. package/dist/chunk-5PG7DV7A.cjs +805 -0
  39. package/dist/chunk-5PG7DV7A.cjs.map +1 -0
  40. package/dist/chunk-A3EMF7RN.js +95 -0
  41. package/dist/chunk-A3EMF7RN.js.map +1 -0
  42. package/dist/chunk-ADV27S4N.cjs +2701 -0
  43. package/dist/chunk-ADV27S4N.cjs.map +1 -0
  44. package/dist/chunk-BQLHADL7.js +13805 -0
  45. package/dist/chunk-BQLHADL7.js.map +1 -0
  46. package/dist/chunk-CFZMTDWI.js +209 -0
  47. package/dist/chunk-CFZMTDWI.js.map +1 -0
  48. package/dist/chunk-FG5ACJJW.cjs +212 -0
  49. package/dist/chunk-FG5ACJJW.cjs.map +1 -0
  50. package/dist/chunk-HW3JJ323.js +768 -0
  51. package/dist/chunk-HW3JJ323.js.map +1 -0
  52. package/dist/chunk-I3DGUUCT.cjs +838 -0
  53. package/dist/chunk-I3DGUUCT.cjs.map +1 -0
  54. package/dist/chunk-IPX2R7FR.cjs +100 -0
  55. package/dist/chunk-IPX2R7FR.cjs.map +1 -0
  56. package/dist/chunk-NSBPE2FW.js +15 -0
  57. package/dist/chunk-NSBPE2FW.js.map +1 -0
  58. package/dist/chunk-T64LAI7L.js +829 -0
  59. package/dist/chunk-T64LAI7L.js.map +1 -0
  60. package/dist/chunk-ZBUDLTBO.js +2671 -0
  61. package/dist/chunk-ZBUDLTBO.js.map +1 -0
  62. package/dist/chunk-ZLO6NETT.cjs +13910 -0
  63. package/dist/chunk-ZLO6NETT.cjs.map +1 -0
  64. package/dist/contracts/handlers/index.cjs +26 -0
  65. package/dist/contracts/handlers/index.cjs.map +1 -0
  66. package/dist/contracts/handlers/index.d.cts +7 -0
  67. package/dist/contracts/handlers/index.d.ts +7 -0
  68. package/dist/contracts/handlers/index.js +5 -0
  69. package/dist/contracts/handlers/index.js.map +1 -0
  70. package/dist/delegate-BFZs69hp.d.cts +84 -0
  71. package/dist/delegate-aaVGfWsV.d.ts +84 -0
  72. package/dist/index-B22cA64m.d.cts +199 -0
  73. package/dist/{types/storage/index.d.ts → index-C0IanN1m.d.cts} +3 -1
  74. package/dist/index-C0IanN1m.d.ts +11 -0
  75. package/dist/index-NDla_UoJ.d.ts +199 -0
  76. package/dist/index.cjs +480 -0
  77. package/dist/index.cjs.map +1 -0
  78. package/dist/index.d.cts +3343 -0
  79. package/dist/index.d.ts +3343 -0
  80. package/dist/index.js +7 -0
  81. package/dist/index.js.map +1 -0
  82. package/dist/repositories/realm/index.cjs +513 -0
  83. package/dist/repositories/realm/index.cjs.map +1 -0
  84. package/dist/repositories/realm/index.d.cts +217 -0
  85. package/dist/{types/repositories/realm/schemas.d.ts → repositories/realm/index.d.ts} +80 -112
  86. package/dist/repositories/realm/index.js +507 -0
  87. package/dist/repositories/realm/index.js.map +1 -0
  88. package/dist/repositories/sqlite/index.cjs +588 -0
  89. package/dist/repositories/sqlite/index.cjs.map +1 -0
  90. package/dist/repositories/sqlite/index.d.cts +118 -0
  91. package/dist/{types/repositories/sqlite/walletRepository.d.ts → repositories/sqlite/index.d.ts} +58 -5
  92. package/dist/repositories/sqlite/index.js +585 -0
  93. package/dist/repositories/sqlite/index.js.map +1 -0
  94. package/dist/taskRunner-C6Ff4OaU.d.cts +114 -0
  95. package/dist/taskRunner-yvPN8Z0K.d.ts +114 -0
  96. package/dist/wallet/expo/background.cjs +93 -0
  97. package/dist/wallet/expo/background.cjs.map +1 -0
  98. package/dist/wallet/expo/background.d.cts +84 -0
  99. package/dist/wallet/expo/background.d.ts +84 -0
  100. package/dist/wallet/expo/background.js +68 -0
  101. package/dist/wallet/expo/background.js.map +1 -0
  102. package/dist/wallet/expo/index.cjs +171 -0
  103. package/dist/wallet/expo/index.cjs.map +1 -0
  104. package/dist/wallet/expo/index.d.cts +122 -0
  105. package/dist/{types/wallet/expo/wallet.d.ts → wallet/expo/index.d.ts} +45 -22
  106. package/dist/wallet/expo/index.js +169 -0
  107. package/dist/wallet/expo/index.js.map +1 -0
  108. package/dist/wallet-AF-p-OWj.d.cts +774 -0
  109. package/dist/wallet-D9NBRqvC.d.ts +774 -0
  110. package/dist/worker/expo/index.cjs +140 -0
  111. package/dist/worker/expo/index.cjs.map +1 -0
  112. package/dist/worker/expo/index.d.cts +29 -0
  113. package/dist/worker/expo/index.d.ts +29 -0
  114. package/dist/worker/expo/index.js +121 -0
  115. package/dist/worker/expo/index.js.map +1 -0
  116. package/package.json +110 -76
  117. package/dist/cjs/adapters/asyncStorage.js +0 -5
  118. package/dist/cjs/adapters/expo.js +0 -8
  119. package/dist/cjs/adapters/fileSystem.js +0 -5
  120. package/dist/cjs/adapters/indexedDB.js +0 -5
  121. package/dist/cjs/adapters/localStorage.js +0 -5
  122. package/dist/cjs/arkfee/celenv.js +0 -43
  123. package/dist/cjs/arkfee/estimator.js +0 -143
  124. package/dist/cjs/arkfee/index.js +0 -5
  125. package/dist/cjs/arkfee/types.js +0 -26
  126. package/dist/cjs/arknote/index.js +0 -128
  127. package/dist/cjs/bip322/index.js +0 -270
  128. package/dist/cjs/contracts/arkcontract.js +0 -147
  129. package/dist/cjs/contracts/contractManager.js +0 -629
  130. package/dist/cjs/contracts/contractWatcher.js +0 -598
  131. package/dist/cjs/contracts/handlers/default.js +0 -93
  132. package/dist/cjs/contracts/handlers/delegate.js +0 -90
  133. package/dist/cjs/contracts/handlers/helpers.js +0 -115
  134. package/dist/cjs/contracts/handlers/index.js +0 -19
  135. package/dist/cjs/contracts/handlers/registry.js +0 -89
  136. package/dist/cjs/contracts/handlers/vhtlc.js +0 -194
  137. package/dist/cjs/contracts/index.js +0 -41
  138. package/dist/cjs/contracts/types.js +0 -2
  139. package/dist/cjs/contracts/vtxoOwnership.js +0 -78
  140. package/dist/cjs/extension/asset/assetGroup.js +0 -228
  141. package/dist/cjs/extension/asset/assetId.js +0 -152
  142. package/dist/cjs/extension/asset/assetInput.js +0 -222
  143. package/dist/cjs/extension/asset/assetOutput.js +0 -174
  144. package/dist/cjs/extension/asset/assetRef.js +0 -148
  145. package/dist/cjs/extension/asset/index.js +0 -23
  146. package/dist/cjs/extension/asset/metadata.js +0 -187
  147. package/dist/cjs/extension/asset/packet.js +0 -114
  148. package/dist/cjs/extension/asset/types.js +0 -22
  149. package/dist/cjs/extension/asset/utils.js +0 -105
  150. package/dist/cjs/extension/index.js +0 -254
  151. package/dist/cjs/extension/packet.js +0 -20
  152. package/dist/cjs/forfeit.js +0 -45
  153. package/dist/cjs/identity/descriptor.js +0 -169
  154. package/dist/cjs/identity/descriptorProvider.js +0 -2
  155. package/dist/cjs/identity/hdCapableIdentity.js +0 -2
  156. package/dist/cjs/identity/index.js +0 -38
  157. package/dist/cjs/identity/seedIdentity.js +0 -461
  158. package/dist/cjs/identity/serialize.js +0 -171
  159. package/dist/cjs/identity/singleKey.js +0 -126
  160. package/dist/cjs/identity/staticDescriptorProvider.js +0 -65
  161. package/dist/cjs/index.js +0 -200
  162. package/dist/cjs/intent/index.js +0 -259
  163. package/dist/cjs/musig2/index.js +0 -11
  164. package/dist/cjs/musig2/keys.js +0 -57
  165. package/dist/cjs/musig2/nonces.js +0 -48
  166. package/dist/cjs/musig2/sign.js +0 -102
  167. package/dist/cjs/networks.js +0 -26
  168. package/dist/cjs/package.json +0 -3
  169. package/dist/cjs/providers/ark.js +0 -577
  170. package/dist/cjs/providers/delegator.js +0 -85
  171. package/dist/cjs/providers/electrum.js +0 -869
  172. package/dist/cjs/providers/errors.js +0 -59
  173. package/dist/cjs/providers/expoArk.js +0 -82
  174. package/dist/cjs/providers/expoIndexer.js +0 -111
  175. package/dist/cjs/providers/expoUtils.js +0 -124
  176. package/dist/cjs/providers/indexer.js +0 -630
  177. package/dist/cjs/providers/onchain.js +0 -262
  178. package/dist/cjs/providers/utils.js +0 -121
  179. package/dist/cjs/repositories/contractRepository.js +0 -2
  180. package/dist/cjs/repositories/inMemory/contractRepository.js +0 -55
  181. package/dist/cjs/repositories/inMemory/walletRepository.js +0 -115
  182. package/dist/cjs/repositories/index.js +0 -34
  183. package/dist/cjs/repositories/indexedDB/contractRepository.js +0 -187
  184. package/dist/cjs/repositories/indexedDB/db.js +0 -19
  185. package/dist/cjs/repositories/indexedDB/manager.js +0 -100
  186. package/dist/cjs/repositories/indexedDB/schema.js +0 -204
  187. package/dist/cjs/repositories/indexedDB/walletRepository.js +0 -474
  188. package/dist/cjs/repositories/indexedDB/websqlAdapter.js +0 -144
  189. package/dist/cjs/repositories/migrations/contractRepositoryImpl.js +0 -127
  190. package/dist/cjs/repositories/migrations/fromStorageAdapter.js +0 -66
  191. package/dist/cjs/repositories/migrations/walletRepositoryImpl.js +0 -184
  192. package/dist/cjs/repositories/realm/contractRepository.js +0 -116
  193. package/dist/cjs/repositories/realm/index.js +0 -11
  194. package/dist/cjs/repositories/realm/schemas.js +0 -157
  195. package/dist/cjs/repositories/realm/types.js +0 -7
  196. package/dist/cjs/repositories/realm/walletRepository.js +0 -305
  197. package/dist/cjs/repositories/scriptFromAddress.js +0 -16
  198. package/dist/cjs/repositories/serialization.js +0 -82
  199. package/dist/cjs/repositories/sqlite/contractRepository.js +0 -135
  200. package/dist/cjs/repositories/sqlite/index.js +0 -7
  201. package/dist/cjs/repositories/sqlite/types.js +0 -2
  202. package/dist/cjs/repositories/sqlite/walletRepository.js +0 -441
  203. package/dist/cjs/repositories/walletRepository.js +0 -2
  204. package/dist/cjs/script/address.js +0 -108
  205. package/dist/cjs/script/base.js +0 -185
  206. package/dist/cjs/script/default.js +0 -57
  207. package/dist/cjs/script/delegate.js +0 -53
  208. package/dist/cjs/script/tapscript.js +0 -619
  209. package/dist/cjs/script/vhtlc.js +0 -170
  210. package/dist/cjs/storage/asyncStorage.js +0 -50
  211. package/dist/cjs/storage/fileSystem.js +0 -141
  212. package/dist/cjs/storage/inMemory.js +0 -24
  213. package/dist/cjs/storage/index.js +0 -2
  214. package/dist/cjs/storage/indexedDB.js +0 -101
  215. package/dist/cjs/storage/localStorage.js +0 -51
  216. package/dist/cjs/tree/signingSession.js +0 -229
  217. package/dist/cjs/tree/txTree.js +0 -192
  218. package/dist/cjs/tree/validation.js +0 -107
  219. package/dist/cjs/utils/anchor.js +0 -35
  220. package/dist/cjs/utils/arkTransaction.js +0 -271
  221. package/dist/cjs/utils/bip21.js +0 -127
  222. package/dist/cjs/utils/syncCursors.js +0 -128
  223. package/dist/cjs/utils/timelock.js +0 -59
  224. package/dist/cjs/utils/transaction.js +0 -28
  225. package/dist/cjs/utils/transactionHistory.js +0 -183
  226. package/dist/cjs/utils/txSizeEstimator.js +0 -132
  227. package/dist/cjs/utils/unknownFields.js +0 -174
  228. package/dist/cjs/wallet/asset-manager.js +0 -330
  229. package/dist/cjs/wallet/asset.js +0 -119
  230. package/dist/cjs/wallet/batch.js +0 -183
  231. package/dist/cjs/wallet/delegator.js +0 -302
  232. package/dist/cjs/wallet/expo/background.js +0 -116
  233. package/dist/cjs/wallet/expo/index.js +0 -9
  234. package/dist/cjs/wallet/expo/wallet.js +0 -230
  235. package/dist/cjs/wallet/hdDescriptorProvider.js +0 -159
  236. package/dist/cjs/wallet/index.js +0 -82
  237. package/dist/cjs/wallet/onchain.js +0 -290
  238. package/dist/cjs/wallet/ramps.js +0 -216
  239. package/dist/cjs/wallet/serviceWorker/wallet-message-handler.js +0 -953
  240. package/dist/cjs/wallet/serviceWorker/wallet.js +0 -1173
  241. package/dist/cjs/wallet/unroll.js +0 -289
  242. package/dist/cjs/wallet/utils.js +0 -111
  243. package/dist/cjs/wallet/validation.js +0 -154
  244. package/dist/cjs/wallet/vtxo-manager.js +0 -1142
  245. package/dist/cjs/wallet/wallet.js +0 -2049
  246. package/dist/cjs/worker/browser/service-worker-manager.js +0 -183
  247. package/dist/cjs/worker/browser/utils.js +0 -67
  248. package/dist/cjs/worker/errors.js +0 -16
  249. package/dist/cjs/worker/expo/asyncStorageTaskQueue.js +0 -78
  250. package/dist/cjs/worker/expo/index.js +0 -13
  251. package/dist/cjs/worker/expo/processors/contractPollProcessor.js +0 -62
  252. package/dist/cjs/worker/expo/processors/index.js +0 -6
  253. package/dist/cjs/worker/expo/taskQueue.js +0 -41
  254. package/dist/cjs/worker/expo/taskRunner.js +0 -73
  255. package/dist/cjs/worker/messageBus.js +0 -473
  256. package/dist/esm/adapters/asyncStorage.js +0 -1
  257. package/dist/esm/adapters/expo.js +0 -3
  258. package/dist/esm/adapters/fileSystem.js +0 -1
  259. package/dist/esm/adapters/indexedDB.js +0 -1
  260. package/dist/esm/adapters/localStorage.js +0 -1
  261. package/dist/esm/arkfee/celenv.js +0 -40
  262. package/dist/esm/arkfee/estimator.js +0 -139
  263. package/dist/esm/arkfee/index.js +0 -1
  264. package/dist/esm/arkfee/types.js +0 -22
  265. package/dist/esm/arknote/index.js +0 -124
  266. package/dist/esm/bip322/index.js +0 -267
  267. package/dist/esm/contracts/arkcontract.js +0 -140
  268. package/dist/esm/contracts/contractManager.js +0 -625
  269. package/dist/esm/contracts/contractWatcher.js +0 -594
  270. package/dist/esm/contracts/handlers/default.js +0 -90
  271. package/dist/esm/contracts/handlers/delegate.js +0 -87
  272. package/dist/esm/contracts/handlers/helpers.js +0 -110
  273. package/dist/esm/contracts/handlers/index.js +0 -12
  274. package/dist/esm/contracts/handlers/registry.js +0 -86
  275. package/dist/esm/contracts/handlers/vhtlc.js +0 -191
  276. package/dist/esm/contracts/index.js +0 -13
  277. package/dist/esm/contracts/types.js +0 -1
  278. package/dist/esm/contracts/vtxoOwnership.js +0 -69
  279. package/dist/esm/extension/asset/assetGroup.js +0 -224
  280. package/dist/esm/extension/asset/assetId.js +0 -148
  281. package/dist/esm/extension/asset/assetInput.js +0 -217
  282. package/dist/esm/extension/asset/assetOutput.js +0 -169
  283. package/dist/esm/extension/asset/assetRef.js +0 -144
  284. package/dist/esm/extension/asset/index.js +0 -8
  285. package/dist/esm/extension/asset/metadata.js +0 -182
  286. package/dist/esm/extension/asset/packet.js +0 -110
  287. package/dist/esm/extension/asset/types.js +0 -19
  288. package/dist/esm/extension/asset/utils.js +0 -99
  289. package/dist/esm/extension/index.js +0 -248
  290. package/dist/esm/extension/packet.js +0 -16
  291. package/dist/esm/forfeit.js +0 -41
  292. package/dist/esm/identity/descriptor.js +0 -161
  293. package/dist/esm/identity/descriptorProvider.js +0 -1
  294. package/dist/esm/identity/hdCapableIdentity.js +0 -1
  295. package/dist/esm/identity/index.js +0 -12
  296. package/dist/esm/identity/seedIdentity.js +0 -453
  297. package/dist/esm/identity/serialize.js +0 -164
  298. package/dist/esm/identity/singleKey.js +0 -121
  299. package/dist/esm/identity/staticDescriptorProvider.js +0 -61
  300. package/dist/esm/index.js +0 -87
  301. package/dist/esm/intent/index.js +0 -255
  302. package/dist/esm/musig2/index.js +0 -3
  303. package/dist/esm/musig2/keys.js +0 -21
  304. package/dist/esm/musig2/nonces.js +0 -11
  305. package/dist/esm/musig2/sign.js +0 -63
  306. package/dist/esm/networks.js +0 -22
  307. package/dist/esm/package.json +0 -3
  308. package/dist/esm/providers/ark.js +0 -572
  309. package/dist/esm/providers/delegator.js +0 -81
  310. package/dist/esm/providers/electrum.js +0 -864
  311. package/dist/esm/providers/errors.js +0 -54
  312. package/dist/esm/providers/expoArk.js +0 -78
  313. package/dist/esm/providers/expoIndexer.js +0 -107
  314. package/dist/esm/providers/expoUtils.js +0 -87
  315. package/dist/esm/providers/indexer.js +0 -626
  316. package/dist/esm/providers/onchain.js +0 -258
  317. package/dist/esm/providers/utils.js +0 -117
  318. package/dist/esm/repositories/contractRepository.js +0 -1
  319. package/dist/esm/repositories/inMemory/contractRepository.js +0 -51
  320. package/dist/esm/repositories/inMemory/walletRepository.js +0 -111
  321. package/dist/esm/repositories/index.js +0 -10
  322. package/dist/esm/repositories/indexedDB/contractRepository.js +0 -183
  323. package/dist/esm/repositories/indexedDB/db.js +0 -4
  324. package/dist/esm/repositories/indexedDB/manager.js +0 -95
  325. package/dist/esm/repositories/indexedDB/schema.js +0 -199
  326. package/dist/esm/repositories/indexedDB/walletRepository.js +0 -470
  327. package/dist/esm/repositories/indexedDB/websqlAdapter.js +0 -138
  328. package/dist/esm/repositories/migrations/contractRepositoryImpl.js +0 -121
  329. package/dist/esm/repositories/migrations/fromStorageAdapter.js +0 -58
  330. package/dist/esm/repositories/migrations/walletRepositoryImpl.js +0 -180
  331. package/dist/esm/repositories/realm/contractRepository.js +0 -112
  332. package/dist/esm/repositories/realm/index.js +0 -3
  333. package/dist/esm/repositories/realm/schemas.js +0 -153
  334. package/dist/esm/repositories/realm/types.js +0 -6
  335. package/dist/esm/repositories/realm/walletRepository.js +0 -301
  336. package/dist/esm/repositories/scriptFromAddress.js +0 -13
  337. package/dist/esm/repositories/serialization.js +0 -67
  338. package/dist/esm/repositories/sqlite/contractRepository.js +0 -131
  339. package/dist/esm/repositories/sqlite/index.js +0 -2
  340. package/dist/esm/repositories/sqlite/types.js +0 -1
  341. package/dist/esm/repositories/sqlite/walletRepository.js +0 -437
  342. package/dist/esm/repositories/walletRepository.js +0 -1
  343. package/dist/esm/script/address.js +0 -104
  344. package/dist/esm/script/base.js +0 -179
  345. package/dist/esm/script/default.js +0 -54
  346. package/dist/esm/script/delegate.js +0 -50
  347. package/dist/esm/script/tapscript.js +0 -615
  348. package/dist/esm/script/vhtlc.js +0 -167
  349. package/dist/esm/storage/asyncStorage.js +0 -46
  350. package/dist/esm/storage/fileSystem.js +0 -104
  351. package/dist/esm/storage/inMemory.js +0 -20
  352. package/dist/esm/storage/index.js +0 -1
  353. package/dist/esm/storage/indexedDB.js +0 -97
  354. package/dist/esm/storage/localStorage.js +0 -47
  355. package/dist/esm/tree/signingSession.js +0 -191
  356. package/dist/esm/tree/txTree.js +0 -188
  357. package/dist/esm/tree/validation.js +0 -101
  358. package/dist/esm/utils/anchor.js +0 -31
  359. package/dist/esm/utils/arkTransaction.js +0 -264
  360. package/dist/esm/utils/bip21.js +0 -123
  361. package/dist/esm/utils/syncCursors.js +0 -119
  362. package/dist/esm/utils/timelock.js +0 -22
  363. package/dist/esm/utils/transaction.js +0 -24
  364. package/dist/esm/utils/transactionHistory.js +0 -180
  365. package/dist/esm/utils/txSizeEstimator.js +0 -128
  366. package/dist/esm/utils/unknownFields.js +0 -169
  367. package/dist/esm/wallet/asset-manager.js +0 -325
  368. package/dist/esm/wallet/asset.js +0 -113
  369. package/dist/esm/wallet/batch.js +0 -180
  370. package/dist/esm/wallet/delegator.js +0 -297
  371. package/dist/esm/wallet/expo/background.js +0 -111
  372. package/dist/esm/wallet/expo/index.js +0 -2
  373. package/dist/esm/wallet/expo/wallet.js +0 -193
  374. package/dist/esm/wallet/hdDescriptorProvider.js +0 -155
  375. package/dist/esm/wallet/index.js +0 -75
  376. package/dist/esm/wallet/onchain.js +0 -285
  377. package/dist/esm/wallet/ramps.js +0 -212
  378. package/dist/esm/wallet/serviceWorker/wallet-message-handler.js +0 -946
  379. package/dist/esm/wallet/serviceWorker/wallet.js +0 -1168
  380. package/dist/esm/wallet/unroll.js +0 -285
  381. package/dist/esm/wallet/utils.js +0 -103
  382. package/dist/esm/wallet/validation.js +0 -142
  383. package/dist/esm/wallet/vtxo-manager.js +0 -1136
  384. package/dist/esm/wallet/wallet.js +0 -2041
  385. package/dist/esm/worker/browser/service-worker-manager.js +0 -177
  386. package/dist/esm/worker/browser/utils.js +0 -63
  387. package/dist/esm/worker/errors.js +0 -11
  388. package/dist/esm/worker/expo/asyncStorageTaskQueue.js +0 -74
  389. package/dist/esm/worker/expo/index.js +0 -4
  390. package/dist/esm/worker/expo/processors/contractPollProcessor.js +0 -59
  391. package/dist/esm/worker/expo/processors/index.js +0 -1
  392. package/dist/esm/worker/expo/taskQueue.js +0 -37
  393. package/dist/esm/worker/expo/taskRunner.js +0 -69
  394. package/dist/esm/worker/messageBus.js +0 -469
  395. package/dist/types/adapters/asyncStorage.d.ts +0 -2
  396. package/dist/types/adapters/expo.d.ts +0 -4
  397. package/dist/types/adapters/fileSystem.d.ts +0 -2
  398. package/dist/types/adapters/indexedDB.d.ts +0 -2
  399. package/dist/types/adapters/localStorage.d.ts +0 -2
  400. package/dist/types/arkfee/celenv.d.ts +0 -25
  401. package/dist/types/arkfee/estimator.d.ts +0 -49
  402. package/dist/types/arkfee/index.d.ts +0 -2
  403. package/dist/types/arkfee/types.d.ts +0 -38
  404. package/dist/types/arknote/index.d.ts +0 -84
  405. package/dist/types/bip322/index.d.ts +0 -55
  406. package/dist/types/contracts/arkcontract.d.ts +0 -99
  407. package/dist/types/contracts/contractManager.d.ts +0 -381
  408. package/dist/types/contracts/contractWatcher.d.ts +0 -217
  409. package/dist/types/contracts/handlers/default.d.ts +0 -19
  410. package/dist/types/contracts/handlers/delegate.d.ts +0 -21
  411. package/dist/types/contracts/handlers/helpers.d.ts +0 -19
  412. package/dist/types/contracts/handlers/index.d.ts +0 -7
  413. package/dist/types/contracts/handlers/registry.d.ts +0 -65
  414. package/dist/types/contracts/handlers/vhtlc.d.ts +0 -32
  415. package/dist/types/contracts/index.d.ts +0 -14
  416. package/dist/types/contracts/types.d.ts +0 -233
  417. package/dist/types/contracts/vtxoOwnership.d.ts +0 -33
  418. package/dist/types/extension/asset/assetGroup.d.ts +0 -119
  419. package/dist/types/extension/asset/assetId.d.ts +0 -83
  420. package/dist/types/extension/asset/assetInput.d.ts +0 -64
  421. package/dist/types/extension/asset/assetOutput.d.ts +0 -54
  422. package/dist/types/extension/asset/assetRef.d.ts +0 -91
  423. package/dist/types/extension/asset/index.d.ts +0 -8
  424. package/dist/types/extension/asset/metadata.d.ts +0 -52
  425. package/dist/types/extension/asset/packet.d.ts +0 -41
  426. package/dist/types/extension/asset/types.d.ts +0 -16
  427. package/dist/types/extension/asset/utils.d.ts +0 -21
  428. package/dist/types/extension/index.d.ts +0 -56
  429. package/dist/types/extension/packet.d.ts +0 -21
  430. package/dist/types/forfeit.d.ts +0 -18
  431. package/dist/types/identity/descriptor.d.ts +0 -61
  432. package/dist/types/identity/descriptorProvider.d.ts +0 -35
  433. package/dist/types/identity/hdCapableIdentity.d.ts +0 -44
  434. package/dist/types/identity/index.d.ts +0 -56
  435. package/dist/types/identity/seedIdentity.d.ts +0 -254
  436. package/dist/types/identity/serialize.d.ts +0 -96
  437. package/dist/types/identity/singleKey.d.ts +0 -62
  438. package/dist/types/identity/staticDescriptorProvider.d.ts +0 -18
  439. package/dist/types/index.d.ts +0 -59
  440. package/dist/types/intent/index.d.ts +0 -86
  441. package/dist/types/musig2/index.d.ts +0 -4
  442. package/dist/types/musig2/keys.d.ts +0 -9
  443. package/dist/types/musig2/nonces.d.ts +0 -14
  444. package/dist/types/musig2/sign.d.ts +0 -27
  445. package/dist/types/networks.d.ts +0 -16
  446. package/dist/types/providers/ark.d.ts +0 -369
  447. package/dist/types/providers/delegator.d.ts +0 -82
  448. package/dist/types/providers/electrum.d.ts +0 -312
  449. package/dist/types/providers/errors.d.ts +0 -13
  450. package/dist/types/providers/expoArk.d.ts +0 -22
  451. package/dist/types/providers/expoIndexer.d.ts +0 -18
  452. package/dist/types/providers/expoUtils.d.ts +0 -18
  453. package/dist/types/providers/indexer.d.ts +0 -301
  454. package/dist/types/providers/onchain.d.ts +0 -148
  455. package/dist/types/providers/utils.d.ts +0 -12
  456. package/dist/types/repositories/contractRepository.d.ts +0 -32
  457. package/dist/types/repositories/inMemory/contractRepository.d.ts +0 -17
  458. package/dist/types/repositories/inMemory/walletRepository.d.ts +0 -29
  459. package/dist/types/repositories/index.d.ts +0 -9
  460. package/dist/types/repositories/indexedDB/contractRepository.d.ts +0 -21
  461. package/dist/types/repositories/indexedDB/db.d.ts +0 -4
  462. package/dist/types/repositories/indexedDB/manager.d.ts +0 -25
  463. package/dist/types/repositories/indexedDB/schema.d.ts +0 -9
  464. package/dist/types/repositories/indexedDB/walletRepository.d.ts +0 -28
  465. package/dist/types/repositories/indexedDB/websqlAdapter.d.ts +0 -49
  466. package/dist/types/repositories/migrations/contractRepositoryImpl.d.ts +0 -24
  467. package/dist/types/repositories/migrations/fromStorageAdapter.d.ts +0 -19
  468. package/dist/types/repositories/migrations/walletRepositoryImpl.d.ts +0 -27
  469. package/dist/types/repositories/realm/contractRepository.d.ts +0 -24
  470. package/dist/types/repositories/realm/index.d.ts +0 -4
  471. package/dist/types/repositories/realm/types.d.ts +0 -16
  472. package/dist/types/repositories/realm/walletRepository.d.ts +0 -34
  473. package/dist/types/repositories/scriptFromAddress.d.ts +0 -9
  474. package/dist/types/repositories/serialization.d.ts +0 -65
  475. package/dist/types/repositories/sqlite/contractRepository.d.ts +0 -33
  476. package/dist/types/repositories/sqlite/index.d.ts +0 -3
  477. package/dist/types/repositories/sqlite/types.d.ts +0 -18
  478. package/dist/types/repositories/walletRepository.d.ts +0 -72
  479. package/dist/types/script/address.d.ts +0 -67
  480. package/dist/types/script/base.d.ts +0 -105
  481. package/dist/types/script/default.d.ts +0 -44
  482. package/dist/types/script/delegate.d.ts +0 -40
  483. package/dist/types/script/tapscript.d.ts +0 -169
  484. package/dist/types/script/vhtlc.d.ts +0 -66
  485. package/dist/types/tree/signingSession.d.ts +0 -37
  486. package/dist/types/tree/txTree.d.ts +0 -28
  487. package/dist/types/tree/validation.d.ts +0 -15
  488. package/dist/types/utils/anchor.d.ts +0 -19
  489. package/dist/types/utils/arkTransaction.d.ts +0 -49
  490. package/dist/types/utils/bip21.d.ts +0 -38
  491. package/dist/types/utils/syncCursors.d.ts +0 -60
  492. package/dist/types/utils/timelock.d.ts +0 -9
  493. package/dist/types/utils/transaction.d.ts +0 -13
  494. package/dist/types/utils/transactionHistory.d.ts +0 -15
  495. package/dist/types/utils/txSizeEstimator.d.ts +0 -40
  496. package/dist/types/utils/unknownFields.d.ts +0 -83
  497. package/dist/types/wallet/asset-manager.d.ts +0 -69
  498. package/dist/types/wallet/asset.d.ts +0 -21
  499. package/dist/types/wallet/batch.d.ts +0 -107
  500. package/dist/types/wallet/delegator.d.ts +0 -48
  501. package/dist/types/wallet/expo/background.d.ts +0 -66
  502. package/dist/types/wallet/expo/index.d.ts +0 -4
  503. package/dist/types/wallet/hdDescriptorProvider.d.ts +0 -93
  504. package/dist/types/wallet/index.d.ts +0 -755
  505. package/dist/types/wallet/onchain.d.ts +0 -109
  506. package/dist/types/wallet/ramps.d.ts +0 -64
  507. package/dist/types/wallet/serviceWorker/wallet-message-handler.d.ts +0 -543
  508. package/dist/types/wallet/serviceWorker/wallet.d.ts +0 -238
  509. package/dist/types/wallet/unroll.d.ts +0 -114
  510. package/dist/types/wallet/utils.d.ts +0 -36
  511. package/dist/types/wallet/validation.d.ts +0 -24
  512. package/dist/types/wallet/vtxo-manager.d.ts +0 -476
  513. package/dist/types/wallet/wallet.d.ts +0 -360
  514. package/dist/types/worker/browser/service-worker-manager.d.ts +0 -32
  515. package/dist/types/worker/browser/utils.d.ts +0 -17
  516. package/dist/types/worker/errors.d.ts +0 -7
  517. package/dist/types/worker/expo/index.d.ts +0 -7
  518. package/dist/types/worker/expo/processors/contractPollProcessor.d.ts +0 -19
  519. package/dist/types/worker/expo/processors/index.d.ts +0 -1
  520. package/dist/types/worker/expo/taskQueue.d.ts +0 -50
  521. package/dist/types/worker/expo/taskRunner.d.ts +0 -66
  522. package/dist/types/worker/messageBus.d.ts +0 -188
@@ -1,84 +0,0 @@
1
- import { Bytes } from "@scure/btc-signer/utils.js";
2
- import { TapLeafScript, VtxoScript } from "../script/base.js";
3
- import { ExtendedCoin, Status } from "../wallet/index.js";
4
- /**
5
- * ArkNotes are special virtual outputs in the Arkade protocol that
6
- * can be created and spent without requiring any transactions.
7
- * The server mints them, and they are encoded as base58 strings
8
- * with a human-readable prefix, a preimage and a value.
9
- *
10
- * @see VtxoScript
11
- *
12
- * @example
13
- * ```typescript
14
- * // Create an ArkNote
15
- * const note = new ArkNote(preimage, 50000);
16
- *
17
- * // Encode to string
18
- * const noteString = note.toString();
19
- *
20
- * // Decode from string
21
- * const decodedNote = ArkNote.fromString(noteString);
22
- * ```
23
- */
24
- export declare class ArkNote implements ExtendedCoin {
25
- preimage: Uint8Array;
26
- value: number;
27
- HRP: string;
28
- static readonly DefaultHRP = "arknote";
29
- static readonly PreimageLength = 32;
30
- static readonly ValueLength = 4;
31
- static readonly Length: number;
32
- static readonly FakeOutpointIndex = 0;
33
- readonly vtxoScript: VtxoScript;
34
- /** Hashlock script backing the note. */
35
- readonly txid: string;
36
- readonly vout = 0;
37
- readonly forfeitTapLeafScript: TapLeafScript;
38
- readonly intentTapLeafScript: TapLeafScript;
39
- readonly tapTree: Bytes;
40
- readonly status: Status;
41
- readonly extraWitness?: Bytes[] | undefined;
42
- /**
43
- * Create an ArkNote from a preimage and value.
44
- *
45
- * @param preimage - 32-byte preimage revealed to spend the note
46
- * @param value - Note value in satoshis
47
- * @param HRP - Optional human-readable prefix for string encoding
48
- */
49
- constructor(preimage: Uint8Array, value: number, HRP?: string);
50
- /**
51
- * Encode the note as raw bytes.
52
- *
53
- * @returns Serialized note bytes
54
- * @see decode
55
- */
56
- encode(): Uint8Array;
57
- /**
58
- * Decode a note from raw bytes.
59
- *
60
- * @param data - Serialized note bytes
61
- * @param hrp - Human-readable prefix expected for future string encoding
62
- * @returns Decoded ArkNote
63
- * @throws Error if the payload length is invalid
64
- * @see encode
65
- */
66
- static decode(data: Uint8Array, hrp?: string): ArkNote;
67
- /**
68
- * Decode a note from its base58 string form.
69
- *
70
- * @param noteStr - Base58-encoded note string
71
- * @param hrp - Human-readable prefix expected on the note string
72
- * @returns Decoded ArkNote
73
- * @throws Error if the prefix or base58 payload is invalid
74
- * @see toString
75
- */
76
- static fromString(noteStr: string, hrp?: string): ArkNote;
77
- /**
78
- * Encode the note to its human-readable base58 string form.
79
- *
80
- * @returns Base58-encoded note string
81
- * @see fromString
82
- */
83
- toString(): string;
84
- }
@@ -1,55 +0,0 @@
1
- import { type BTC_NETWORK } from "@scure/btc-signer/utils.js";
2
- import type { Identity } from "../identity/index.js";
3
- /**
4
- * BIP-322 simple message signing and verification.
5
- *
6
- * Supports P2TR (Taproot) signing and verification, P2WPKH verification,
7
- * and legacy P2PKH verification (Bitcoin Core signmessage format).
8
- *
9
- * Reuses the same toSpend/toSign transaction construction as Intent proofs,
10
- * but with the standard BIP-322 tagged hash ("BIP0322-signed-message")
11
- * instead of the Arkade-specific tag.
12
- *
13
- * @see https://github.com/bitcoin/bips/blob/master/bip-0322.mediawiki
14
- *
15
- * @example
16
- * ```typescript
17
- * // Sign a message (P2TR)
18
- * const signature = await BIP322.sign("Hello Bitcoin!", identity);
19
- *
20
- * // Verify a signature (P2TR or P2WPKH)
21
- * const valid = BIP322.verify("Hello Bitcoin!", signature, "bc1p...");
22
- * const valid2 = BIP322.verify("Hello Bitcoin!", signature, "bc1q...");
23
- * ```
24
- */
25
- export declare namespace BIP322 {
26
- /**
27
- * Sign a message using the BIP-322 simple signature scheme.
28
- *
29
- * Constructs the standard BIP-322 toSpend and toSign transactions,
30
- * signs via the Identity interface, and returns the base64-encoded
31
- * witness stack.
32
- *
33
- * @param message - The message to sign
34
- * @param identity - Identity instance (holds the private key internally)
35
- * @param network - Optional Bitcoin network for P2TR address derivation
36
- * @returns Base64-encoded BIP-322 simple signature (witness stack)
37
- */
38
- function sign(message: string, identity: Identity, network?: BTC_NETWORK): Promise<string>;
39
- /**
40
- * Verify a BIP-322 signature for a P2TR, P2WPKH, or legacy P2PKH address.
41
- *
42
- * For segwit addresses (P2TR, P2WPKH), reconstructs the BIP-322
43
- * toSpend/toSign transactions and verifies the witness signature.
44
- *
45
- * For P2PKH addresses, verifies using the Bitcoin Core legacy
46
- * `signmessage` format (compact recoverable ECDSA signature).
47
- *
48
- * @param message - The original message that was signed
49
- * @param signature - Base64-encoded signature (BIP-322 witness or legacy compact)
50
- * @param address - P2TR, P2WPKH, or P2PKH address of the signer
51
- * @param network - Optional Bitcoin network for address decoding
52
- * @returns true if the signature is valid
53
- */
54
- function verify(message: string, signature: string, address: string, network?: BTC_NETWORK): boolean;
55
- }
@@ -1,99 +0,0 @@
1
- import { Contract } from "./types.js";
2
- /**
3
- * Encode a contract to the arkcontract string format.
4
- *
5
- * Format: arkcontract={type}&{key1}={value1}&{key2}={value2}...
6
- *
7
- * This format is compatible with NArk and allows contracts to be
8
- * shared/imported across different Arkade SDKs.
9
- *
10
- * @example
11
- * ```typescript
12
- * const contract: Contract = {
13
- * type: "vhtlc",
14
- * params: { sender: "ab12...", receiver: "cd34...", ... },
15
- * // ...
16
- * };
17
- *
18
- * const encoded = encodeArkContract(contract);
19
- * // "arkcontract=vhtlc&sender=ab12...&receiver=cd34...&..."
20
- * ```
21
- */
22
- export declare function encodeArkContract(contract: Contract): string;
23
- /**
24
- * Parsed result from decoding an arkcontract string.
25
- *
26
- * This is a low-level representation. For type-safe contract creation,
27
- * use `contractFromArkContract` or `contractFromArkContractWithAddress`
28
- * which validate params through the handler system.
29
- */
30
- export interface ParsedArkContract {
31
- /** Contract type (e.g., "vhtlc", "default") */
32
- type: string;
33
- /** All key-value pairs from the string */
34
- data: Record<string, string>;
35
- }
36
- /**
37
- * Decode an arkcontract string into raw type and data.
38
- *
39
- * This is a low-level function that parses the URL-encoded format.
40
- * For creating typed Contract objects, use `contractFromArkContract`
41
- * or `contractFromArkContractWithAddress` instead.
42
- *
43
- * @param encoded - The arkcontract string
44
- * @returns Parsed type and key-value data
45
- * @throws If the string is not a valid arkcontract
46
- *
47
- * @example
48
- * ```typescript
49
- * const parsed = decodeArkContract("arkcontract=vhtlc&sender=ab12...");
50
- * // { type: "vhtlc", data: { sender: "ab12...", ... } }
51
- * ```
52
- */
53
- export declare function decodeArkContract(encoded: string): ParsedArkContract;
54
- /**
55
- * Create a Contract from an arkcontract string.
56
- *
57
- * This requires a handler to be registered for the contract type.
58
- *
59
- * @param encoded - The arkcontract string
60
- * @param options - Additional options for the contract
61
- * @returns A Contract object
62
- * @throws If the string is invalid or no handler exists for the type
63
- *
64
- * @example
65
- * ```typescript
66
- * const contract = contractFromArkContract(
67
- * "arkcontract=vhtlc&sender=ab12...",
68
- * {
69
- * label: "Lightning Receive",
70
- * }
71
- * );
72
- * ```
73
- */
74
- export declare function contractFromArkContract(encoded: string, options?: {
75
- label?: string;
76
- state?: "active" | "inactive";
77
- metadata?: Record<string, unknown>;
78
- }): Omit<Contract, "script" | "address"> & {
79
- script?: string;
80
- address?: string;
81
- };
82
- /**
83
- * Create a full Contract with derived script and address.
84
- *
85
- * @param encoded - The arkcontract string
86
- * @param serverPubKey - Server public key (for address derivation)
87
- * @param addressPrefix - Address prefix (e.g., "tark" for testnet)
88
- * @param options - Additional options
89
- * @returns A complete Contract object
90
- */
91
- export declare function contractFromArkContractWithAddress(encoded: string, serverPubKey: Uint8Array, addressPrefix?: string, options?: {
92
- label?: string;
93
- state?: "active" | "inactive";
94
- metadata?: Record<string, unknown>;
95
- }): Contract;
96
- /**
97
- * Check if a string is an arkcontract.
98
- */
99
- export declare function isArkContract(str: string): boolean;
@@ -1,381 +0,0 @@
1
- import { IndexerProvider } from "../providers/indexer.js";
2
- import { WalletRepository } from "../repositories/walletRepository.js";
3
- import { Contract, ContractEventCallback, ContractState, ContractWithVtxos, GetContractsFilter, PathSelection } from "./types.js";
4
- import { ContractWatcherConfig } from "./contractWatcher.js";
5
- import { ExtendedVirtualCoin, Outpoint, VirtualCoin } from "../wallet/index.js";
6
- import { ContractRepository } from "../repositories/index.js";
7
- export type RefreshVtxosOptions = {
8
- scripts?: string[];
9
- after?: number;
10
- before?: number;
11
- };
12
- export interface IContractManager extends Disposable {
13
- /**
14
- * Create and register a new contract.
15
- *
16
- * Implementations may validate that:
17
- * - A handler exists for `params.type`
18
- * - `params.script` matches the script derived from `params.params`
19
- *
20
- * The contract script is used as the unique identifier.
21
- */
22
- createContract(params: CreateContractParams): Promise<Contract>;
23
- /**
24
- * List contracts with optional filters.
25
- *
26
- * @example
27
- * ```typescript
28
- * const vhtlcs = await manager.getContracts({ type: "vhtlc" });
29
- * const active = await manager.getContracts({ state: "active" });
30
- * ```
31
- */
32
- getContracts(filter?: GetContractsFilter): Promise<Contract[]>;
33
- /**
34
- * List contracts and their current virtual outputs.
35
- *
36
- * If no filter is provided, returns all contracts with their virtual outputs.
37
- */
38
- getContractsWithVtxos(filter?: GetContractsFilter): Promise<ContractWithVtxos[]>;
39
- /**
40
- * Stamp raw virtual outputs with the correct per-contract tapscripts
41
- * (forfeit, intent, tap tree).
42
- *
43
- * Resolves each vtxo's `script` to its owning contract via the contract
44
- * repository and attaches the matching tapscripts. Throws when any vtxo
45
- * references a script with no registered contract — callers are expected
46
- * to register the contract before asking for annotation. This is the
47
- * single shared path that replaces scattered `extendVirtualCoin*` calls
48
- * in wallet/handler code, and keeps the wallet from silently stamping the
49
- * default tapscript onto a non-default vtxo.
50
- */
51
- annotateVtxos(vtxos: VirtualCoin[]): Promise<ExtendedVirtualCoin[]>;
52
- /**
53
- * Update mutable contract fields.
54
- *
55
- * `script` and `createdAt` are immutable.
56
- */
57
- updateContract(script: string, updates: Partial<Omit<Contract, "script" | "createdAt">>): Promise<Contract>;
58
- /**
59
- * Convenience helper to update only the contract state.
60
- */
61
- setContractState(script: string, state: ContractState): Promise<void>;
62
- /**
63
- * Delete a contract by script and stop watching it (if applicable).
64
- */
65
- deleteContract(script: string): Promise<void>;
66
- /**
67
- * Get all currently spendable paths for a contract.
68
- *
69
- * Returns an empty array if the contract or its handler cannot be found.
70
- */
71
- getSpendablePaths(options: GetSpendablePathsOptions): Promise<PathSelection[]>;
72
- /**
73
- * Get all possible spending paths for a contract.
74
- *
75
- * Returns an empty array if the contract or its handler cannot be found.
76
- */
77
- getAllSpendingPaths(options: GetAllSpendingPathsOptions): Promise<PathSelection[]>;
78
- /**
79
- * Subscribe to contract events.
80
- *
81
- * @returns Unsubscribe function
82
- */
83
- onContractEvent(callback: ContractEventCallback): () => void;
84
- /**
85
- * Force a virtual output refresh from the indexer.
86
- *
87
- * Without options, refreshes all contracts from scratch.
88
- * With options, narrows the refresh to specific scripts and/or a time window.
89
- */
90
- refreshVtxos(opts?: RefreshVtxosOptions): Promise<void>;
91
- /**
92
- * Reconcile specific outpoints with the indexer's authoritative state and
93
- * upsert the result into the wallet repository.
94
- *
95
- * The cursor-derived delta sync filters by `created_at`, so a VTXO that
96
- * was created before the cursor but spent recently won't surface in a
97
- * standard `refreshVtxos()` call. This method is the surgical recovery
98
- * path for that case: when something hands us a stale outpoint (e.g. the
99
- * server returns `VTXO_ALREADY_SPENT` with a `vtxo_outpoint` in its
100
- * error metadata), call this to pull the latest state and unblock the
101
- * caller — no full re-scan, no cursor change.
102
- *
103
- * Outpoints not owned by any tracked contract are silently dropped.
104
- */
105
- refreshOutpoints(outpoints: Outpoint[]): Promise<void>;
106
- /**
107
- * Whether the underlying watcher is currently active.
108
- */
109
- isWatching(): Promise<boolean>;
110
- /**
111
- * Release resources (stop watching, clear listeners).
112
- */
113
- dispose(): void;
114
- }
115
- /**
116
- * Options for getting spendable paths.
117
- */
118
- export type GetSpendablePathsOptions = {
119
- /** The contract script */
120
- contractScript: string;
121
- /** The specific virtual output being evaluated */
122
- vtxo: VirtualCoin;
123
- /** Whether collaborative spending is available (default: true) */
124
- collaborative?: boolean;
125
- /** Wallet's public key (hex) to determine role */
126
- walletPubKey?: string;
127
- };
128
- /**
129
- * Options for getting all possible spending paths.
130
- */
131
- export type GetAllSpendingPathsOptions = {
132
- /** The contract script */
133
- contractScript: string;
134
- /** Whether collaborative spending is available (default: true) */
135
- collaborative?: boolean;
136
- /** Wallet's public key (hex) to determine role */
137
- walletPubKey?: string;
138
- };
139
- /**
140
- * Configuration for the ContractManager.
141
- */
142
- export interface ContractManagerConfig {
143
- /** The indexer provider */
144
- indexerProvider: IndexerProvider;
145
- /** The contract repository for persistence */
146
- contractRepository: ContractRepository;
147
- /** The wallet repository for virtual output storage (single source of truth) */
148
- walletRepository: WalletRepository;
149
- /** Watcher configuration */
150
- watcherConfig?: Partial<ContractWatcherConfig>;
151
- }
152
- /**
153
- * Parameters for creating a new contract.
154
- */
155
- export type CreateContractParams = Omit<Contract, "createdAt" | "state"> & {
156
- /** Initial state (defaults to "active") */
157
- state?: ContractState;
158
- };
159
- /**
160
- * Central manager for contract lifecycle and operations.
161
- *
162
- * Responsibilities:
163
- * - Create and persist contracts
164
- * - Query stored contracts (optionally with their virtual outputs)
165
- * - Provide spendable path selection for a contract
166
- * - Emit contract-related events (virtual output received/spent, connection reset)
167
- *
168
- * Notes:
169
- * - Implementations typically start watching automatically during initialization
170
- * (so `onContractEvent()` is just for subscribing).
171
- *
172
- * @example
173
- * ```typescript
174
- * const manager = await ContractManager.create({
175
- * indexerProvider: wallet.indexerProvider,
176
- * contractRepository: wallet.contractRepository,
177
- * });
178
- *
179
- * // Create a new VHTLC contract
180
- * const contract = await manager.createContract({
181
- * label: "Lightning Receive",
182
- * type: "vhtlc",
183
- * params: { sender: "ark1q...", receiver: "ark1q...", ... },
184
- * script: "5120...",
185
- * address: "ark1q...",
186
- * });
187
- *
188
- * // Start watching for events
189
- * const unsubscribe = manager.onContractEvent((event) => {
190
- * console.log(`${event.type} on ${event.contractScript}`);
191
- * });
192
- *
193
- * // Query contracts together with their current virtual outputs
194
- * const contractsWithVtxos = await manager.getContractsWithVtxos();
195
- *
196
- * // Get balance across all contracts
197
- * const balances = contractsWithVtxos.flatMap(({vtxos}) => vtxos).reduce((acc, vtxo) => acc + vtxo.value, 0)
198
- *
199
- * // Later: unsubscribe from events
200
- * unsubscribe();
201
- *
202
- * // Clean up
203
- * manager.dispose();
204
- * ```
205
- */
206
- export declare class ContractManager implements IContractManager {
207
- private config;
208
- private watcher;
209
- private initialized;
210
- private eventCallbacks;
211
- private stopWatcherFn?;
212
- private constructor();
213
- /**
214
- * Static factory method for creating a new ContractManager.
215
- * Initialize the manager by loading persisted contracts and starting to watch.
216
- *
217
- * After initialization, the manager automatically watches all active contracts
218
- * and contracts with virtual outputs. Use `onContractEvent()` to register event callbacks.
219
- *
220
- * @param config ContractManagerConfig
221
- */
222
- static create(config: ContractManagerConfig): Promise<ContractManager>;
223
- private initialize;
224
- /**
225
- * Delta-sync the full watched set and reconcile the pending frontier.
226
- *
227
- * Shared recovery path used on initial boot and after a subscription
228
- * reconnect. `syncContracts({})` scopes to the current watched set
229
- * (see {@link ContractWatcher.getWatchedContracts}), uses the
230
- * cursor-derived delta window, and advances the cursor on success.
231
- * `reconcilePendingFrontier` catches not-yet-finalized virtual
232
- * outputs that could sit outside any delta window.
233
- */
234
- private reconcileWatched;
235
- /**
236
- * Create and register a new contract.
237
- *
238
- * @param params - Contract parameters
239
- * @returns The created contract
240
- */
241
- createContract(params: CreateContractParams): Promise<Contract>;
242
- /**
243
- * Get contracts with optional filters.
244
- *
245
- * @param filter - Optional filter criteria
246
- * @returns Filtered contracts TODO: filter spent/unspent
247
- *
248
- * @example
249
- * ```typescript
250
- * // Get all VHTLC contracts
251
- * const vhtlcs = await manager.getContracts({ type: 'vhtlc' });
252
- *
253
- * // Get all active contracts
254
- * const active = await manager.getContracts({ state: 'active' });
255
- * ```
256
- */
257
- getContracts(filter?: GetContractsFilter): Promise<Contract[]>;
258
- getContractsWithVtxos(filter?: GetContractsFilter, pageSize?: number): Promise<ContractWithVtxos[]>;
259
- annotateVtxos(vtxos: VirtualCoin[]): Promise<ExtendedVirtualCoin[]>;
260
- private buildContractsDbFilter;
261
- /**
262
- * Update a contract.
263
- * Nested fields like `params` and `metadata` are replaced with the provided values.
264
- * If you need to preserve existing fields, merge them manually.
265
- *
266
- * @param script - Contract script
267
- * @param updates - Fields to update
268
- */
269
- updateContract(script: string, updates: Partial<Omit<Contract, "script" | "createdAt">>): Promise<Contract>;
270
- /**
271
- * Update a contract's params.
272
- * This method preserves existing params by merging the provided values.
273
- *
274
- * @param script - Contract script
275
- * @param updates - The new values to merge with existing params
276
- */
277
- updateContractParams(script: string, updates: Contract["params"]): Promise<Contract>;
278
- /**
279
- * Set a contract's state.
280
- */
281
- setContractState(script: string, state: ContractState): Promise<void>;
282
- /**
283
- * Delete a contract.
284
- *
285
- * @param script - Contract script
286
- */
287
- deleteContract(script: string): Promise<void>;
288
- /**
289
- * Get currently spendable paths for a contract.
290
- *
291
- * @param options - Options for getting spendable paths
292
- */
293
- getSpendablePaths(options: GetSpendablePathsOptions): Promise<PathSelection[]>;
294
- /**
295
- * Get every currently valid spending path for a contract.
296
- *
297
- * @param options - Options for getting spending paths
298
- */
299
- getAllSpendingPaths(options: GetAllSpendingPathsOptions): Promise<PathSelection[]>;
300
- /**
301
- * Register a callback for contract events.
302
- *
303
- * The manager automatically watches after `initialize()`. This method
304
- * allows registering callbacks to receive events.
305
- *
306
- * @param callback - Event callback
307
- * @returns Unsubscribe function to remove this callback
308
- *
309
- * @example
310
- * ```typescript
311
- * const unsubscribe = manager.onContractEvent((event) => {
312
- * console.log(`${event.type} on ${event.contractScript}`);
313
- * });
314
- *
315
- * // Later: stop receiving events
316
- * unsubscribe();
317
- * ```
318
- */
319
- onContractEvent(callback: ContractEventCallback): () => void;
320
- /**
321
- * Force refresh virtual outputs from the indexer.
322
- *
323
- * Without options, re-fetches every contract and advances the global cursor.
324
- * With options, narrows the refresh to specific scripts and/or a time window.
325
- * Subset refreshes (scripts filter) intentionally do not advance the cursor.
326
- */
327
- refreshVtxos(opts?: RefreshVtxosOptions): Promise<void>;
328
- refreshOutpoints(outpoints: Outpoint[]): Promise<void>;
329
- /**
330
- * Check if currently watching.
331
- */
332
- isWatching(): Promise<boolean>;
333
- /**
334
- * Emit an event to all registered callbacks.
335
- */
336
- private emitEvent;
337
- /**
338
- * Handle events from the watcher.
339
- */
340
- private handleContractEvent;
341
- private getVtxosForContracts;
342
- /**
343
- * Sync virtual outputs for the given contracts against the indexer.
344
- *
345
- * When `options.contracts` is omitted the sync covers the full
346
- * watched set (active contracts plus any inactive contracts still
347
- * holding cached VTXOs) and the global cursor is advanced on
348
- * success. Passing an explicit subset leaves the cursor alone so a
349
- * narrow poll can't hide data that other contracts still need to
350
- * pick up.
351
- */
352
- private syncContracts;
353
- /**
354
- * Fetch all pending (unfinalized) virtual outputs and upsert them into the
355
- * repository. This catches virtual outputs whose state changed outside the delta
356
- * window (e.g. a spend that hasn't settled yet).
357
- */
358
- private reconcilePendingFrontier;
359
- private fetchContractVxosFromIndexer;
360
- private fetchContractVtxosBulk;
361
- /**
362
- * Dispose of the ContractManager and release all resources.
363
- *
364
- * Stops the watcher, clears callbacks, and marks
365
- * the manager as uninitialized.
366
- *
367
- * Implements the disposable pattern for cleanup.
368
- */
369
- dispose(): void;
370
- /**
371
- * Symbol.dispose implementation for using with `using` keyword.
372
- * @example
373
- * ```typescript
374
- * {
375
- * using manager = await wallet.getContractManager();
376
- * // ... use manager
377
- * } // automatically disposed
378
- * ```
379
- */
380
- [Symbol.dispose](): void;
381
- }