@arkade-os/sdk 0.4.27 → 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 (531) hide show
  1. package/README.md +31 -100
  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 -649
  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 -20
  156. package/dist/cjs/identity/index.js +0 -40
  157. package/dist/cjs/identity/seedIdentity.js +0 -477
  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 -202
  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 -308
  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 -188
  236. package/dist/cjs/wallet/index.js +0 -82
  237. package/dist/cjs/wallet/inputSignerRouter.js +0 -98
  238. package/dist/cjs/wallet/onchain.js +0 -290
  239. package/dist/cjs/wallet/ramps.js +0 -216
  240. package/dist/cjs/wallet/serviceWorker/wallet-message-handler.js +0 -953
  241. package/dist/cjs/wallet/serviceWorker/wallet.js +0 -1174
  242. package/dist/cjs/wallet/signingErrors.js +0 -32
  243. package/dist/cjs/wallet/unroll.js +0 -293
  244. package/dist/cjs/wallet/utils.js +0 -111
  245. package/dist/cjs/wallet/validation.js +0 -154
  246. package/dist/cjs/wallet/vtxo-manager.js +0 -1142
  247. package/dist/cjs/wallet/wallet.js +0 -2195
  248. package/dist/cjs/wallet/walletReceiveRotator.js +0 -547
  249. package/dist/cjs/worker/browser/service-worker-manager.js +0 -183
  250. package/dist/cjs/worker/browser/utils.js +0 -67
  251. package/dist/cjs/worker/errors.js +0 -16
  252. package/dist/cjs/worker/expo/asyncStorageTaskQueue.js +0 -78
  253. package/dist/cjs/worker/expo/index.js +0 -13
  254. package/dist/cjs/worker/expo/processors/contractPollProcessor.js +0 -62
  255. package/dist/cjs/worker/expo/processors/index.js +0 -6
  256. package/dist/cjs/worker/expo/taskQueue.js +0 -41
  257. package/dist/cjs/worker/expo/taskRunner.js +0 -73
  258. package/dist/cjs/worker/messageBus.js +0 -474
  259. package/dist/esm/adapters/asyncStorage.js +0 -1
  260. package/dist/esm/adapters/expo.js +0 -3
  261. package/dist/esm/adapters/fileSystem.js +0 -1
  262. package/dist/esm/adapters/indexedDB.js +0 -1
  263. package/dist/esm/adapters/localStorage.js +0 -1
  264. package/dist/esm/arkfee/celenv.js +0 -40
  265. package/dist/esm/arkfee/estimator.js +0 -139
  266. package/dist/esm/arkfee/index.js +0 -1
  267. package/dist/esm/arkfee/types.js +0 -22
  268. package/dist/esm/arknote/index.js +0 -124
  269. package/dist/esm/bip322/index.js +0 -267
  270. package/dist/esm/contracts/arkcontract.js +0 -140
  271. package/dist/esm/contracts/contractManager.js +0 -645
  272. package/dist/esm/contracts/contractWatcher.js +0 -594
  273. package/dist/esm/contracts/handlers/default.js +0 -90
  274. package/dist/esm/contracts/handlers/delegate.js +0 -87
  275. package/dist/esm/contracts/handlers/helpers.js +0 -110
  276. package/dist/esm/contracts/handlers/index.js +0 -12
  277. package/dist/esm/contracts/handlers/registry.js +0 -86
  278. package/dist/esm/contracts/handlers/vhtlc.js +0 -191
  279. package/dist/esm/contracts/index.js +0 -13
  280. package/dist/esm/contracts/types.js +0 -1
  281. package/dist/esm/contracts/vtxoOwnership.js +0 -69
  282. package/dist/esm/extension/asset/assetGroup.js +0 -224
  283. package/dist/esm/extension/asset/assetId.js +0 -148
  284. package/dist/esm/extension/asset/assetInput.js +0 -217
  285. package/dist/esm/extension/asset/assetOutput.js +0 -169
  286. package/dist/esm/extension/asset/assetRef.js +0 -144
  287. package/dist/esm/extension/asset/index.js +0 -8
  288. package/dist/esm/extension/asset/metadata.js +0 -182
  289. package/dist/esm/extension/asset/packet.js +0 -110
  290. package/dist/esm/extension/asset/types.js +0 -19
  291. package/dist/esm/extension/asset/utils.js +0 -99
  292. package/dist/esm/extension/index.js +0 -248
  293. package/dist/esm/extension/packet.js +0 -16
  294. package/dist/esm/forfeit.js +0 -41
  295. package/dist/esm/identity/descriptor.js +0 -161
  296. package/dist/esm/identity/descriptorProvider.js +0 -1
  297. package/dist/esm/identity/hdCapableIdentity.js +0 -17
  298. package/dist/esm/identity/index.js +0 -13
  299. package/dist/esm/identity/seedIdentity.js +0 -469
  300. package/dist/esm/identity/serialize.js +0 -164
  301. package/dist/esm/identity/singleKey.js +0 -121
  302. package/dist/esm/identity/staticDescriptorProvider.js +0 -61
  303. package/dist/esm/index.js +0 -87
  304. package/dist/esm/intent/index.js +0 -255
  305. package/dist/esm/musig2/index.js +0 -3
  306. package/dist/esm/musig2/keys.js +0 -21
  307. package/dist/esm/musig2/nonces.js +0 -11
  308. package/dist/esm/musig2/sign.js +0 -63
  309. package/dist/esm/networks.js +0 -22
  310. package/dist/esm/package.json +0 -3
  311. package/dist/esm/providers/ark.js +0 -572
  312. package/dist/esm/providers/delegator.js +0 -81
  313. package/dist/esm/providers/electrum.js +0 -864
  314. package/dist/esm/providers/errors.js +0 -54
  315. package/dist/esm/providers/expoArk.js +0 -78
  316. package/dist/esm/providers/expoIndexer.js +0 -107
  317. package/dist/esm/providers/expoUtils.js +0 -87
  318. package/dist/esm/providers/indexer.js +0 -626
  319. package/dist/esm/providers/onchain.js +0 -258
  320. package/dist/esm/providers/utils.js +0 -117
  321. package/dist/esm/repositories/contractRepository.js +0 -1
  322. package/dist/esm/repositories/inMemory/contractRepository.js +0 -51
  323. package/dist/esm/repositories/inMemory/walletRepository.js +0 -111
  324. package/dist/esm/repositories/index.js +0 -10
  325. package/dist/esm/repositories/indexedDB/contractRepository.js +0 -183
  326. package/dist/esm/repositories/indexedDB/db.js +0 -4
  327. package/dist/esm/repositories/indexedDB/manager.js +0 -95
  328. package/dist/esm/repositories/indexedDB/schema.js +0 -199
  329. package/dist/esm/repositories/indexedDB/walletRepository.js +0 -470
  330. package/dist/esm/repositories/indexedDB/websqlAdapter.js +0 -138
  331. package/dist/esm/repositories/migrations/contractRepositoryImpl.js +0 -121
  332. package/dist/esm/repositories/migrations/fromStorageAdapter.js +0 -58
  333. package/dist/esm/repositories/migrations/walletRepositoryImpl.js +0 -180
  334. package/dist/esm/repositories/realm/contractRepository.js +0 -112
  335. package/dist/esm/repositories/realm/index.js +0 -3
  336. package/dist/esm/repositories/realm/schemas.js +0 -153
  337. package/dist/esm/repositories/realm/types.js +0 -6
  338. package/dist/esm/repositories/realm/walletRepository.js +0 -301
  339. package/dist/esm/repositories/scriptFromAddress.js +0 -13
  340. package/dist/esm/repositories/serialization.js +0 -67
  341. package/dist/esm/repositories/sqlite/contractRepository.js +0 -131
  342. package/dist/esm/repositories/sqlite/index.js +0 -2
  343. package/dist/esm/repositories/sqlite/types.js +0 -1
  344. package/dist/esm/repositories/sqlite/walletRepository.js +0 -437
  345. package/dist/esm/repositories/walletRepository.js +0 -1
  346. package/dist/esm/script/address.js +0 -104
  347. package/dist/esm/script/base.js +0 -179
  348. package/dist/esm/script/default.js +0 -54
  349. package/dist/esm/script/delegate.js +0 -50
  350. package/dist/esm/script/tapscript.js +0 -615
  351. package/dist/esm/script/vhtlc.js +0 -167
  352. package/dist/esm/storage/asyncStorage.js +0 -46
  353. package/dist/esm/storage/fileSystem.js +0 -104
  354. package/dist/esm/storage/inMemory.js +0 -20
  355. package/dist/esm/storage/index.js +0 -1
  356. package/dist/esm/storage/indexedDB.js +0 -97
  357. package/dist/esm/storage/localStorage.js +0 -47
  358. package/dist/esm/tree/signingSession.js +0 -191
  359. package/dist/esm/tree/txTree.js +0 -188
  360. package/dist/esm/tree/validation.js +0 -101
  361. package/dist/esm/utils/anchor.js +0 -31
  362. package/dist/esm/utils/arkTransaction.js +0 -264
  363. package/dist/esm/utils/bip21.js +0 -123
  364. package/dist/esm/utils/syncCursors.js +0 -119
  365. package/dist/esm/utils/timelock.js +0 -22
  366. package/dist/esm/utils/transaction.js +0 -24
  367. package/dist/esm/utils/transactionHistory.js +0 -180
  368. package/dist/esm/utils/txSizeEstimator.js +0 -128
  369. package/dist/esm/utils/unknownFields.js +0 -169
  370. package/dist/esm/wallet/asset-manager.js +0 -325
  371. package/dist/esm/wallet/asset.js +0 -113
  372. package/dist/esm/wallet/batch.js +0 -180
  373. package/dist/esm/wallet/delegator.js +0 -303
  374. package/dist/esm/wallet/expo/background.js +0 -111
  375. package/dist/esm/wallet/expo/index.js +0 -2
  376. package/dist/esm/wallet/expo/wallet.js +0 -193
  377. package/dist/esm/wallet/hdDescriptorProvider.js +0 -184
  378. package/dist/esm/wallet/index.js +0 -75
  379. package/dist/esm/wallet/inputSignerRouter.js +0 -94
  380. package/dist/esm/wallet/onchain.js +0 -285
  381. package/dist/esm/wallet/ramps.js +0 -212
  382. package/dist/esm/wallet/serviceWorker/wallet-message-handler.js +0 -946
  383. package/dist/esm/wallet/serviceWorker/wallet.js +0 -1169
  384. package/dist/esm/wallet/signingErrors.js +0 -27
  385. package/dist/esm/wallet/unroll.js +0 -289
  386. package/dist/esm/wallet/utils.js +0 -103
  387. package/dist/esm/wallet/validation.js +0 -142
  388. package/dist/esm/wallet/vtxo-manager.js +0 -1136
  389. package/dist/esm/wallet/wallet.js +0 -2186
  390. package/dist/esm/wallet/walletReceiveRotator.js +0 -540
  391. package/dist/esm/worker/browser/service-worker-manager.js +0 -177
  392. package/dist/esm/worker/browser/utils.js +0 -63
  393. package/dist/esm/worker/errors.js +0 -11
  394. package/dist/esm/worker/expo/asyncStorageTaskQueue.js +0 -74
  395. package/dist/esm/worker/expo/index.js +0 -4
  396. package/dist/esm/worker/expo/processors/contractPollProcessor.js +0 -59
  397. package/dist/esm/worker/expo/processors/index.js +0 -1
  398. package/dist/esm/worker/expo/taskQueue.js +0 -37
  399. package/dist/esm/worker/expo/taskRunner.js +0 -69
  400. package/dist/esm/worker/messageBus.js +0 -470
  401. package/dist/types/adapters/asyncStorage.d.ts +0 -2
  402. package/dist/types/adapters/expo.d.ts +0 -4
  403. package/dist/types/adapters/fileSystem.d.ts +0 -2
  404. package/dist/types/adapters/indexedDB.d.ts +0 -2
  405. package/dist/types/adapters/localStorage.d.ts +0 -2
  406. package/dist/types/arkfee/celenv.d.ts +0 -25
  407. package/dist/types/arkfee/estimator.d.ts +0 -49
  408. package/dist/types/arkfee/index.d.ts +0 -2
  409. package/dist/types/arkfee/types.d.ts +0 -38
  410. package/dist/types/arknote/index.d.ts +0 -84
  411. package/dist/types/bip322/index.d.ts +0 -55
  412. package/dist/types/contracts/arkcontract.d.ts +0 -99
  413. package/dist/types/contracts/contractManager.d.ts +0 -411
  414. package/dist/types/contracts/contractWatcher.d.ts +0 -217
  415. package/dist/types/contracts/handlers/default.d.ts +0 -19
  416. package/dist/types/contracts/handlers/delegate.d.ts +0 -21
  417. package/dist/types/contracts/handlers/helpers.d.ts +0 -19
  418. package/dist/types/contracts/handlers/index.d.ts +0 -7
  419. package/dist/types/contracts/handlers/registry.d.ts +0 -65
  420. package/dist/types/contracts/handlers/vhtlc.d.ts +0 -32
  421. package/dist/types/contracts/index.d.ts +0 -14
  422. package/dist/types/contracts/types.d.ts +0 -250
  423. package/dist/types/contracts/vtxoOwnership.d.ts +0 -33
  424. package/dist/types/extension/asset/assetGroup.d.ts +0 -119
  425. package/dist/types/extension/asset/assetId.d.ts +0 -83
  426. package/dist/types/extension/asset/assetInput.d.ts +0 -64
  427. package/dist/types/extension/asset/assetOutput.d.ts +0 -54
  428. package/dist/types/extension/asset/assetRef.d.ts +0 -91
  429. package/dist/types/extension/asset/index.d.ts +0 -8
  430. package/dist/types/extension/asset/metadata.d.ts +0 -52
  431. package/dist/types/extension/asset/packet.d.ts +0 -41
  432. package/dist/types/extension/asset/types.d.ts +0 -16
  433. package/dist/types/extension/asset/utils.d.ts +0 -21
  434. package/dist/types/extension/index.d.ts +0 -56
  435. package/dist/types/extension/packet.d.ts +0 -21
  436. package/dist/types/forfeit.d.ts +0 -18
  437. package/dist/types/identity/descriptor.d.ts +0 -61
  438. package/dist/types/identity/descriptorProvider.d.ts +0 -42
  439. package/dist/types/identity/hdCapableIdentity.d.ts +0 -71
  440. package/dist/types/identity/index.d.ts +0 -57
  441. package/dist/types/identity/seedIdentity.d.ts +0 -270
  442. package/dist/types/identity/serialize.d.ts +0 -96
  443. package/dist/types/identity/singleKey.d.ts +0 -62
  444. package/dist/types/identity/staticDescriptorProvider.d.ts +0 -18
  445. package/dist/types/index.d.ts +0 -59
  446. package/dist/types/intent/index.d.ts +0 -86
  447. package/dist/types/musig2/index.d.ts +0 -4
  448. package/dist/types/musig2/keys.d.ts +0 -9
  449. package/dist/types/musig2/nonces.d.ts +0 -14
  450. package/dist/types/musig2/sign.d.ts +0 -27
  451. package/dist/types/networks.d.ts +0 -16
  452. package/dist/types/providers/ark.d.ts +0 -369
  453. package/dist/types/providers/delegator.d.ts +0 -82
  454. package/dist/types/providers/electrum.d.ts +0 -312
  455. package/dist/types/providers/errors.d.ts +0 -13
  456. package/dist/types/providers/expoArk.d.ts +0 -22
  457. package/dist/types/providers/expoIndexer.d.ts +0 -18
  458. package/dist/types/providers/expoUtils.d.ts +0 -18
  459. package/dist/types/providers/indexer.d.ts +0 -301
  460. package/dist/types/providers/onchain.d.ts +0 -148
  461. package/dist/types/providers/utils.d.ts +0 -12
  462. package/dist/types/repositories/contractRepository.d.ts +0 -32
  463. package/dist/types/repositories/inMemory/contractRepository.d.ts +0 -17
  464. package/dist/types/repositories/inMemory/walletRepository.d.ts +0 -29
  465. package/dist/types/repositories/index.d.ts +0 -9
  466. package/dist/types/repositories/indexedDB/contractRepository.d.ts +0 -21
  467. package/dist/types/repositories/indexedDB/db.d.ts +0 -4
  468. package/dist/types/repositories/indexedDB/manager.d.ts +0 -25
  469. package/dist/types/repositories/indexedDB/schema.d.ts +0 -9
  470. package/dist/types/repositories/indexedDB/walletRepository.d.ts +0 -28
  471. package/dist/types/repositories/indexedDB/websqlAdapter.d.ts +0 -49
  472. package/dist/types/repositories/migrations/contractRepositoryImpl.d.ts +0 -24
  473. package/dist/types/repositories/migrations/fromStorageAdapter.d.ts +0 -19
  474. package/dist/types/repositories/migrations/walletRepositoryImpl.d.ts +0 -27
  475. package/dist/types/repositories/realm/contractRepository.d.ts +0 -24
  476. package/dist/types/repositories/realm/index.d.ts +0 -4
  477. package/dist/types/repositories/realm/types.d.ts +0 -16
  478. package/dist/types/repositories/realm/walletRepository.d.ts +0 -34
  479. package/dist/types/repositories/scriptFromAddress.d.ts +0 -9
  480. package/dist/types/repositories/serialization.d.ts +0 -65
  481. package/dist/types/repositories/sqlite/contractRepository.d.ts +0 -33
  482. package/dist/types/repositories/sqlite/index.d.ts +0 -3
  483. package/dist/types/repositories/sqlite/types.d.ts +0 -18
  484. package/dist/types/repositories/walletRepository.d.ts +0 -72
  485. package/dist/types/script/address.d.ts +0 -67
  486. package/dist/types/script/base.d.ts +0 -105
  487. package/dist/types/script/default.d.ts +0 -44
  488. package/dist/types/script/delegate.d.ts +0 -40
  489. package/dist/types/script/tapscript.d.ts +0 -169
  490. package/dist/types/script/vhtlc.d.ts +0 -66
  491. package/dist/types/tree/signingSession.d.ts +0 -37
  492. package/dist/types/tree/txTree.d.ts +0 -28
  493. package/dist/types/tree/validation.d.ts +0 -15
  494. package/dist/types/utils/anchor.d.ts +0 -19
  495. package/dist/types/utils/arkTransaction.d.ts +0 -49
  496. package/dist/types/utils/bip21.d.ts +0 -38
  497. package/dist/types/utils/syncCursors.d.ts +0 -60
  498. package/dist/types/utils/timelock.d.ts +0 -9
  499. package/dist/types/utils/transaction.d.ts +0 -13
  500. package/dist/types/utils/transactionHistory.d.ts +0 -15
  501. package/dist/types/utils/txSizeEstimator.d.ts +0 -40
  502. package/dist/types/utils/unknownFields.d.ts +0 -83
  503. package/dist/types/wallet/asset-manager.d.ts +0 -69
  504. package/dist/types/wallet/asset.d.ts +0 -21
  505. package/dist/types/wallet/batch.d.ts +0 -107
  506. package/dist/types/wallet/delegator.d.ts +0 -48
  507. package/dist/types/wallet/expo/background.d.ts +0 -66
  508. package/dist/types/wallet/expo/index.d.ts +0 -4
  509. package/dist/types/wallet/hdDescriptorProvider.d.ts +0 -114
  510. package/dist/types/wallet/index.d.ts +0 -789
  511. package/dist/types/wallet/inputSignerRouter.d.ts +0 -35
  512. package/dist/types/wallet/onchain.d.ts +0 -109
  513. package/dist/types/wallet/ramps.d.ts +0 -64
  514. package/dist/types/wallet/serviceWorker/wallet-message-handler.d.ts +0 -543
  515. package/dist/types/wallet/serviceWorker/wallet.d.ts +0 -248
  516. package/dist/types/wallet/signingErrors.d.ts +0 -19
  517. package/dist/types/wallet/unroll.d.ts +0 -114
  518. package/dist/types/wallet/utils.d.ts +0 -36
  519. package/dist/types/wallet/validation.d.ts +0 -24
  520. package/dist/types/wallet/vtxo-manager.d.ts +0 -476
  521. package/dist/types/wallet/wallet.d.ts +0 -409
  522. package/dist/types/wallet/walletReceiveRotator.d.ts +0 -306
  523. package/dist/types/worker/browser/service-worker-manager.d.ts +0 -32
  524. package/dist/types/worker/browser/utils.d.ts +0 -17
  525. package/dist/types/worker/errors.d.ts +0 -7
  526. package/dist/types/worker/expo/index.d.ts +0 -7
  527. package/dist/types/worker/expo/processors/contractPollProcessor.d.ts +0 -19
  528. package/dist/types/worker/expo/processors/index.d.ts +0 -1
  529. package/dist/types/worker/expo/taskQueue.d.ts +0 -50
  530. package/dist/types/worker/expo/taskRunner.d.ts +0 -66
  531. package/dist/types/worker/messageBus.d.ts +0 -189
@@ -1,61 +0,0 @@
1
- /**
2
- * True iff `descriptor` is a Bitcoin mainnet descriptor (xpub-prefixed
3
- * BIP32 key).
4
- *
5
- * Note: testnet, signet, regtest, mutinynet, and other non-mainnet
6
- * networks all share the same `tpub` BIP32 version bytes — they cannot
7
- * be distinguished from one another at the descriptor level. Callers
8
- * that need a `Network` constants object for `expand()` pick
9
- * `networks.bitcoin` vs `networks.testnet` themselves; callers that
10
- * need the *actual* network the wallet is on must track that
11
- * out-of-band.
12
- */
13
- export declare function isMainnetDescriptor(descriptor: string): boolean;
14
- /**
15
- * Shared "does `candidate` belong to the identity backed by
16
- * `ourDescriptor`?" predicate.
17
- *
18
- * - HD descriptors (expanding to a `bip32` key) match by account xpub
19
- * on both sides — index-agnostic, so a wildcard template and any
20
- * concrete index under it all collapse to the same xpub.
21
- * - Bare `tr(pubkey)` candidates fall back to comparing the candidate
22
- * pubkey against `ourXOnlyPubkey` (the cached pubkey on the identity
23
- * side, since pulling it from `ourDescriptor` would require an index
24
- * substitution the caller already performed).
25
- */
26
- export declare function descriptorIsOurs(candidate: string, ourDescriptor: string, ourXOnlyPubkey: Uint8Array): boolean;
27
- /**
28
- * Check if a string is a descriptor of the shape `tr(...)`.
29
- *
30
- * This is a shape check only — it does not validate the inner key material.
31
- * Use {@link expand} (via {@link extractPubKey} / {@link parseHDDescriptor})
32
- * for full parsing. The guard rejects empty bodies and missing/trailing
33
- * parentheses so callers can safely branch on descriptor vs. raw pubkey.
34
- */
35
- export declare function isDescriptor(value: string): boolean;
36
- /**
37
- * Normalize a value to descriptor format.
38
- * If already a descriptor, return as-is. If hex pubkey, wrap as tr(pubkey).
39
- * Throws when the value is empty or not a string so we never produce
40
- * malformed descriptors like `tr()` that downstream parsers would reject.
41
- */
42
- export declare function normalizeToDescriptor(value: string): string;
43
- /**
44
- * Extract the public key from a simple descriptor.
45
- * For simple descriptors (tr(pubkey)), extracts the pubkey using the library.
46
- * For HD descriptors, throws — use DescriptorProvider to derive the key.
47
- */
48
- export declare function extractPubKey(descriptor: string): string;
49
- /** Parsed HD descriptor components. */
50
- export interface ParsedHDDescriptor {
51
- fingerprint: string;
52
- basePath: string;
53
- xpub: string;
54
- derivationPath: string;
55
- }
56
- /**
57
- * Parse an HD descriptor into its components.
58
- * HD descriptors have the format: tr([fingerprint/path']xpub/derivation)
59
- * Returns null if the descriptor is not in HD format.
60
- */
61
- export declare function parseHDDescriptor(descriptor: string): ParsedHDDescriptor | null;
@@ -1,42 +0,0 @@
1
- import { Transaction } from "../utils/transaction.js";
2
- /** A signing request that pairs a descriptor with a transaction. */
3
- export interface DescriptorSigningRequest {
4
- /** Descriptor identifying which key to sign with */
5
- descriptor: string;
6
- /** Transaction to sign */
7
- tx: Transaction;
8
- /** Specific input indexes to sign (signs all if omitted) */
9
- inputIndexes?: number[];
10
- }
11
- /**
12
- * Provider interface for descriptor-based signing.
13
- *
14
- * Implementations include:
15
- * - {@link StaticDescriptorProvider}: wraps a legacy {@link Identity} with a single key.
16
- * - {@link HDDescriptorProvider}: rotates through HD-derived descriptors.
17
- *
18
- * The provider has no read accessor for "current" — it is a pure descriptor
19
- * allocator. "What addresses am I currently bound to?" is a question the
20
- * contract repository answers, not the provider.
21
- *
22
- * Providers that want to participate in HD receive rotation can also
23
- * implement the wallet-side `ReceiveRotatorFactory` interface (see
24
- * `src/wallet/walletReceiveRotator.ts`). That extension is opt-in — the
25
- * core `DescriptorProvider` contract intentionally stays free of
26
- * wallet-specific concerns so HSM-backed and other minimal providers
27
- * don't have to know about the receive-rotation lifecycle.
28
- */
29
- export interface DescriptorProvider {
30
- /**
31
- * Allocate a new signing descriptor. For HD providers each call advances
32
- * the internal index and returns a fresh descriptor; for single-key
33
- * providers each call returns the same descriptor.
34
- */
35
- getNextSigningDescriptor(): Promise<string>;
36
- /** Checks if a descriptor belongs to this provider. */
37
- isOurs(descriptor: string): boolean;
38
- /** Signs transactions, each with its own descriptor-derived key. */
39
- signWithDescriptor(requests: DescriptorSigningRequest[]): Promise<Transaction[]>;
40
- /** Signs a message using the key derived from the descriptor. */
41
- signMessageWithDescriptor(descriptor: string, message: Uint8Array, type?: "schnorr" | "ecdsa"): Promise<Uint8Array>;
42
- }
@@ -1,71 +0,0 @@
1
- import { Identity, ReadonlyIdentity } from "./index.js";
2
- import { DescriptorSigningRequest } from "./descriptorProvider.js";
3
- import { Transaction } from "../utils/transaction.js";
4
- /**
5
- * Read-side HD capability marker. Exposes the wildcard-suffixed account
6
- * descriptor *template* and the descriptor-membership predicate, but no
7
- * signing primitives — suitable for watch-only identities backed by an
8
- * xpub.
9
- *
10
- * Extracted from {@link HDCapableIdentity} so that
11
- * `ReadonlyDescriptorIdentity` can stand in for an HD wallet's read-only
12
- * surface (template-aware, derives pubkeys at any index) without having
13
- * to claim signing capability it cannot honour.
14
- */
15
- export interface ReadonlyHDCapableIdentity extends ReadonlyIdentity {
16
- /**
17
- * The wildcard-suffixed account descriptor template
18
- * (e.g. `tr([fp/86'/0'/0']xpub/0/*)`). Consumers materialize a
19
- * concrete descriptor by replacing the `*` with a derivation index.
20
- */
21
- readonly descriptor: string;
22
- /**
23
- * True iff `descriptor` derives from this identity's xpub/seed.
24
- *
25
- * @deprecated Prefer `DescriptorProvider.isOurs()` via
26
- * `HDDescriptorProvider` for rotating HD wallets or
27
- * `StaticDescriptorProvider` for legacy single-key wallets.
28
- */
29
- isOurs(descriptor: string): boolean;
30
- }
31
- /**
32
- * Capability marker for identities that can be rotated through an HD
33
- * derivation tree AND can sign at each rotated index.
34
- *
35
- * Deliberately does NOT extend `DescriptorProvider`: if an HD-capable
36
- * identity were silently usable as a concrete descriptor source, callers
37
- * could bypass receive rotation and unknowingly reuse a single address
38
- * forever. To use this identity as a wallet's descriptor source, wrap
39
- * it explicitly:
40
- *
41
- * - `HDDescriptorProvider` — rotating, recommended for new wallets.
42
- * - `StaticDescriptorProvider` — pinned to a single key, for legacy or
43
- * explicitly-non-rotating use cases.
44
- */
45
- export interface HDCapableIdentity extends ReadonlyHDCapableIdentity, Identity {
46
- /**
47
- * Signs each request with the key derived from its descriptor.
48
- *
49
- * @deprecated Prefer `DescriptorProvider.signWithDescriptor()` via
50
- * `HDDescriptorProvider` or `StaticDescriptorProvider`. Identities keep
51
- * this method only as backing implementation for descriptor providers.
52
- */
53
- signWithDescriptor(requests: DescriptorSigningRequest[]): Promise<Transaction[]>;
54
- /**
55
- * Signs a message using the key derived from `descriptor`.
56
- *
57
- * @deprecated Prefer `DescriptorProvider.signMessageWithDescriptor()` via
58
- * `HDDescriptorProvider` or `StaticDescriptorProvider`. Identities keep
59
- * this method only as backing implementation for descriptor providers.
60
- */
61
- signMessageWithDescriptor(descriptor: string, message: Uint8Array, signatureType?: "schnorr" | "ecdsa"): Promise<Uint8Array>;
62
- }
63
- /**
64
- * Structural type guard for {@link HDCapableIdentity}. Returns `true`
65
- * when the value exposes the four members the HD wallet flow relies on:
66
- * `descriptor`, `isOurs`, `signWithDescriptor`, and
67
- * `signMessageWithDescriptor`. Used by callers that need to opt into
68
- * the HD path (e.g. installing an `HDDescriptorProvider`) without
69
- * coupling to a concrete identity class.
70
- */
71
- export declare function isHDCapableIdentity(value: unknown): value is HDCapableIdentity;
@@ -1,57 +0,0 @@
1
- import { Transaction } from "../utils/transaction.js";
2
- import { SignerSession } from "../tree/signingSession.js";
3
- export interface Identity extends ReadonlyIdentity {
4
- /** Returns a signer session used for musig2 tree signing flows. */
5
- signerSession(): SignerSession;
6
- /** Sign an arbitrary message using the requested signature type. */
7
- signMessage(message: Uint8Array, signatureType: "schnorr" | "ecdsa"): Promise<Uint8Array>;
8
- /**
9
- * Sign the provided transaction inputs.
10
- *
11
- * @param tx - Transaction to sign
12
- * @param inputIndexes - Optional input indexes to sign. When omitted, the implementation should sign every signable input.
13
- */
14
- sign(tx: Transaction, inputIndexes?: number[]): Promise<Transaction>;
15
- }
16
- export interface ReadonlyIdentity {
17
- /** Returns the x-only public key used by Taproot scripts. */
18
- xOnlyPublicKey(): Promise<Uint8Array>;
19
- /** Returns the compressed public key for this identity. */
20
- compressedPublicKey(): Promise<Uint8Array>;
21
- }
22
- /** A single PSBT signing request within a batch. */
23
- export interface SignRequest {
24
- tx: Transaction;
25
- inputIndexes?: number[];
26
- }
27
- /**
28
- * Identity that supports signing multiple PSBTs in a single wallet interaction.
29
- * Browser wallet providers that support batch signing (e.g. Xverse, UniSat, OKX)
30
- * should implement this interface to reduce the number of confirmation popups
31
- * from N+1 to 1 during Arkade send transactions.
32
- *
33
- * Contract: implementations MUST return exactly one `Transaction` per request,
34
- * in the same order as the input array. The SDK validates this at runtime and
35
- * will throw if the lengths do not match.
36
- */
37
- export interface BatchSignableIdentity extends Identity {
38
- /**
39
- * Sign multiple transactions in a single wallet interaction.
40
- *
41
- * @param requests - Transactions and optional input indexes to sign
42
- * @returns Signed transactions in the same order as the input requests
43
- */
44
- signMultiple(requests: SignRequest[]): Promise<Transaction[]>;
45
- }
46
- /** Type guard for identities that support batch signing. */
47
- export declare function isBatchSignable(identity: Identity): identity is BatchSignableIdentity;
48
- export * from "./singleKey.js";
49
- export type { NetworkOptions, DescriptorOptions, SeedIdentityOptions, MnemonicOptions, } from "./seedIdentity.js";
50
- export { SeedIdentity, MnemonicIdentity, ReadonlyDescriptorIdentity, } from "./seedIdentity.js";
51
- export * from "./serialize.js";
52
- export { isDescriptor, normalizeToDescriptor, extractPubKey, parseHDDescriptor, } from "./descriptor.js";
53
- export type { ParsedHDDescriptor } from "./descriptor.js";
54
- export type { DescriptorProvider, DescriptorSigningRequest, } from "./descriptorProvider.js";
55
- export type { HDCapableIdentity, ReadonlyHDCapableIdentity, } from "./hdCapableIdentity.js";
56
- export { isHDCapableIdentity } from "./hdCapableIdentity.js";
57
- export { StaticDescriptorProvider } from "./staticDescriptorProvider.js";
@@ -1,270 +0,0 @@
1
- import { Transaction } from "../utils/transaction.js";
2
- import { SignerSession } from "../tree/signingSession.js";
3
- import type { SerializedSigningIdentity, SerializedReadonlyIdentity } from "./serialize.js";
4
- import { DescriptorSigningRequest } from "./descriptorProvider.js";
5
- import { HDCapableIdentity, ReadonlyHDCapableIdentity } from "./hdCapableIdentity.js";
6
- /** Used for default BIP86 derivation with network selection. */
7
- export interface NetworkOptions {
8
- /**
9
- * Mainnet (coin type 0) or testnet (coin type 1).
10
- *
11
- * @defaultValue `true`
12
- */
13
- isMainnet?: boolean;
14
- }
15
- /** Used for a caller-supplied account-descriptor template. */
16
- export interface DescriptorOptions {
17
- /**
18
- * Account-descriptor *template* — must end with the BIP-32 wildcard
19
- * suffix `/*)`. Stored as-is on {@link SeedIdentity.descriptor} and
20
- * read by HD providers to rotate through derivation indices.
21
- */
22
- descriptor: string;
23
- }
24
- /** Either default BIP86 derivation (with optional network selection) or a caller-supplied template. */
25
- export type SeedIdentityOptions = NetworkOptions | DescriptorOptions;
26
- /** Used for deriving an identity from a BIP39 mnemonic. */
27
- export type MnemonicOptions = SeedIdentityOptions & {
28
- /** Optional BIP39 passphrase for additional seed entropy. */
29
- passphrase?: string;
30
- };
31
- /**
32
- * Seed-based identity derived from a raw seed and an account descriptor
33
- * *template*.
34
- *
35
- * This is the recommended identity type for most applications. It uses
36
- * standard BIP86 (Taproot) derivation by default; callers that need a
37
- * different path supply the wildcard template directly.
38
- *
39
- * Prefer this (or @see MnemonicIdentity) over `SingleKey` for new
40
- * integrations — `SingleKey` exists for backward compatibility with
41
- * raw nsec-style keys.
42
- *
43
- * The identity holds the wildcard *template* (e.g.
44
- * `tr([fp/86'/0'/0']xpub/0/*)`) on its public {@link descriptor}
45
- * field. HD rotation reads it directly; consumers that need a
46
- * concrete descriptor at a specific index materialize it themselves
47
- * (see `HDDescriptorProvider` in the wallet layer).
48
- *
49
- * Exposes seed-level primitives (signing, derivation, the template)
50
- * but is deliberately NOT a `DescriptorProvider`. Wrap it explicitly
51
- * to get one:
52
- * - `HDDescriptorProvider` for rotating receive addresses.
53
- * - {@link StaticDescriptorProvider} for legacy, single-key behaviour.
54
- *
55
- * The split prevents a SeedIdentity from being silently used as a
56
- * concrete descriptor source, which would defeat HD rotation without
57
- * any compile-time signal that something was wrong.
58
- *
59
- * @example
60
- * ```typescript
61
- * const seed = mnemonicToSeedSync(mnemonic);
62
- *
63
- * // Testnet (BIP86 wildcard descriptor m/86'/1'/0'/0/*)
64
- * const identity = SeedIdentity.fromSeed(seed, { isMainnet: false });
65
- *
66
- * // Mainnet (BIP86 wildcard descriptor m/86'/0'/0'/0/*)
67
- * const identity = SeedIdentity.fromSeed(seed, { isMainnet: true });
68
- *
69
- * // Caller-supplied wildcard descriptor (must end in `/*)`).
70
- * const identity = SeedIdentity.fromSeed(seed, { descriptor });
71
- * ```
72
- */
73
- export declare class SeedIdentity implements HDCapableIdentity {
74
- private readonly derivedKey;
75
- /**
76
- * Wildcard account-descriptor template (e.g.
77
- * `tr([fp/86'/0'/0']xpub/0/*)`). The canonical thing to pass
78
- * through the system; consumers materialize a concrete descriptor
79
- * at a specific index themselves (see `HDDescriptorProvider` in
80
- * the wallet layer for the rotating-counter use case).
81
- */
82
- readonly descriptor: string;
83
- /**
84
- * Constructs a SeedIdentity from a 64-byte seed and either a
85
- * caller-supplied wildcard descriptor (`{ descriptor }`) or the
86
- * default BIP86 path at the requested network (`{ isMainnet }`).
87
- * Prefer the {@link fromSeed} factory for symmetry with
88
- * {@link MnemonicIdentity.fromMnemonic}.
89
- *
90
- * Throws on a non-wildcard descriptor, an xpub mismatch with the
91
- * seed, or a missing derivation path.
92
- */
93
- constructor(seed: Uint8Array, opts?: SeedIdentityOptions);
94
- /**
95
- * Creates a SeedIdentity from a raw 64-byte seed.
96
- *
97
- * Pass `{ isMainnet }` for default BIP86 derivation, or
98
- * `{ descriptor }` for a caller-supplied account-descriptor
99
- * template (the option's value must end with `/*)`).
100
- *
101
- * @param seed - 64-byte seed (typically from mnemonicToSeedSync)
102
- * @param opts - Network selection or descriptor template.
103
- */
104
- static fromSeed(seed: Uint8Array, opts?: SeedIdentityOptions): SeedIdentity;
105
- xOnlyPublicKey(): Promise<Uint8Array>;
106
- compressedPublicKey(): Promise<Uint8Array>;
107
- sign(tx: Transaction, inputIndexes?: number[]): Promise<Transaction>;
108
- signMessage(message: Uint8Array, signatureType?: "schnorr" | "ecdsa"): Promise<Uint8Array>;
109
- signerSession(): SignerSession;
110
- /**
111
- * Converts to a watch-only identity that cannot sign. Carries the
112
- * template forward, so the readonly side stays HD-capable (can
113
- * derive descriptors at any index without seed access).
114
- */
115
- toReadonly(): Promise<ReadonlyDescriptorIdentity>;
116
- /**
117
- * Returns true when `descriptor` is derived from this identity's seed.
118
- * HD descriptors match by account xpub; bare `tr(pubkey)` descriptors
119
- * match by raw pubkey. See {@link descriptorIsOurs}.
120
- *
121
- * @deprecated Prefer `DescriptorProvider.isOurs()` via
122
- * `HDDescriptorProvider` for rotating HD wallets or
123
- * `StaticDescriptorProvider` for legacy single-key wallets.
124
- */
125
- isOurs(descriptor: string): boolean;
126
- /**
127
- * Signs each request with the key derived from its descriptor.
128
- * Each descriptor must share this identity's seed ({@link isOurs}).
129
- *
130
- * @deprecated Prefer `DescriptorProvider.signWithDescriptor()` via
131
- * `HDDescriptorProvider` or `StaticDescriptorProvider`. Identities keep
132
- * this method only as backing implementation for descriptor providers.
133
- */
134
- signWithDescriptor(requests: DescriptorSigningRequest[]): Promise<Transaction[]>;
135
- /**
136
- * Signs a message with the key derived from `descriptor`.
137
- *
138
- * @deprecated Prefer `DescriptorProvider.signMessageWithDescriptor()` via
139
- * `HDDescriptorProvider` or `StaticDescriptorProvider`. Identities keep
140
- * this method only as backing implementation for descriptor providers.
141
- */
142
- signMessageWithDescriptor(descriptor: string, message: Uint8Array, signatureType?: "schnorr" | "ecdsa"): Promise<Uint8Array>;
143
- private derivePrivateKeyForDescriptor;
144
- private signTxWithKey;
145
- private signMessageWithKey;
146
- }
147
- /**
148
- * Mnemonic-based identity derived from a BIP39 phrase.
149
- *
150
- * This is the most user-friendly identity type — recommended for wallet
151
- * applications where users manage their own backup phrase. Extends
152
- * @see SeedIdentity with mnemonic validation and optional passphrase
153
- * support.
154
- *
155
- * @example
156
- * ```typescript
157
- * const identity = MnemonicIdentity.fromMnemonic(
158
- * 'abandon abandon abandon ...',
159
- * { isMainnet: true, passphrase: 'secret' }
160
- * );
161
- * ```
162
- */
163
- export declare class MnemonicIdentity extends SeedIdentity {
164
- private constructor();
165
- /**
166
- * Creates a MnemonicIdentity from a BIP39 mnemonic phrase.
167
- *
168
- * Pass `{ isMainnet }` for default BIP86 derivation, or
169
- * `{ descriptor }` for a caller-supplied account-descriptor
170
- * template (the option's value must end with `/*)`).
171
- *
172
- * @param phrase - BIP39 mnemonic phrase (12 or 24 words)
173
- * @param opts - Network selection or descriptor template, plus optional passphrase
174
- */
175
- static fromMnemonic(phrase: string, opts?: MnemonicOptions): MnemonicIdentity;
176
- }
177
- /**
178
- * Watch-only HD identity from a descriptor *template*.
179
- *
180
- * Can derive public keys but cannot sign transactions. Use this for
181
- * watch-only wallets — given just an xpub-based template, the readonly
182
- * side still rotates through HD indices.
183
- *
184
- * Constructed from a wildcard template (e.g.
185
- * `tr([fp/86'/0'/0']xpub.../0/*)`); the {@link descriptor} field
186
- * holds it for HD providers to consume.
187
- *
188
- * @example
189
- * ```typescript
190
- * const ro = ReadonlyDescriptorIdentity.fromDescriptor(
191
- * "tr([fp/86'/0'/0']xpub.../0/*)"
192
- * );
193
- * ro.descriptor;
194
- * // => "tr([fp/86'/0'/0']xpub.../0/*)" — the template
195
- * ```
196
- */
197
- export declare class ReadonlyDescriptorIdentity implements ReadonlyHDCapableIdentity {
198
- /**
199
- * Index-0 expansion of {@link descriptor}. Both the x-only pubkey
200
- * (taproot, returned by the library as 32 bytes) and the compressed
201
- * pubkey (derived through the bip32 node when needed) are read off
202
- * this on demand — no separate caches.
203
- */
204
- private readonly indexZero;
205
- /**
206
- * Wildcard account-descriptor template (e.g.
207
- * `tr([fp/86'/0'/0']xpub/0/*)`). HD rotation consumers materialize
208
- * a concrete descriptor at a specific index themselves.
209
- */
210
- readonly descriptor: string;
211
- private constructor();
212
- /**
213
- * Creates a ReadonlyDescriptorIdentity from an account-descriptor
214
- * *template* (must end with the BIP-32 wildcard suffix `/*)`).
215
- *
216
- * @param descriptor - Wildcard-suffixed Taproot template
217
- * (`tr([fp/path']xpub.../child/*)`).
218
- */
219
- static fromDescriptor(descriptor: string): ReadonlyDescriptorIdentity;
220
- xOnlyPublicKey(): Promise<Uint8Array>;
221
- compressedPublicKey(): Promise<Uint8Array>;
222
- /**
223
- * Returns true when `descriptor` derives from this identity's xpub.
224
- * HD descriptors match by account xpub; bare `tr(pubkey)` descriptors
225
- * fall back to comparing against the index-0 x-only pubkey. See
226
- * {@link descriptorIsOurs}.
227
- *
228
- * @deprecated Prefer `DescriptorProvider.isOurs()` via
229
- * `HDDescriptorProvider` for rotating HD wallets or
230
- * `StaticDescriptorProvider` for legacy single-key wallets.
231
- */
232
- isOurs(descriptor: string): boolean;
233
- }
234
- /**
235
- * Serialize a seed-backed signing identity into a
236
- * {@link SerializedSigningIdentity} envelope without exposing the
237
- * underlying secret material on the public instance surface.
238
- *
239
- * Called by {@link serializeSigningIdentity}; application code should
240
- * prefer that public dispatcher instead of calling this directly. This
241
- * helper is deliberately kept out of the `src/identity` barrel so it is
242
- * not part of the package's public export surface.
243
- *
244
- * Secret-surface trade-off: the resulting envelope carries master-seed
245
- * material — the BIP39 mnemonic (+ optional passphrase) for
246
- * `MnemonicIdentity` or the raw 64-byte seed for `SeedIdentity`. A party
247
- * that reads this envelope can derive any key under the HD tree, not
248
- * just the key currently in use. The pre-change `SingleKey` flow only
249
- * shipped one derived private key and therefore had a smaller blast
250
- * radius. This is an intentional design trade to preserve class and
251
- * descriptor identity across the page / service-worker boundary; the
252
- * page already holds the same material so that it can re-initialize a
253
- * killed worker. Transport is same-origin `postMessage` only. See the
254
- * threat-model note in `src/worker/browser/README.md`.
255
- *
256
- * @internal
257
- */
258
- export declare function serializeSeedOwnedSigningIdentity(identity: SeedIdentity): SerializedSigningIdentity;
259
- /**
260
- * Downgrade a seed-backed or descriptor-backed identity into a readonly
261
- * descriptor envelope. Always produces a descriptor-only shape — secret
262
- * material never crosses this path, even if the input is a signing
263
- * identity.
264
- *
265
- * Deliberately kept out of the `src/identity` barrel; consumers should go
266
- * through {@link serializeReadonlyIdentity}.
267
- *
268
- * @internal
269
- */
270
- export declare function serializeSeedOwnedReadonlyIdentity(identity: SeedIdentity | ReadonlyDescriptorIdentity): SerializedReadonlyIdentity;
@@ -1,96 +0,0 @@
1
- import type { Identity, ReadonlyIdentity } from "./index.js";
2
- /**
3
- * Tagged envelope for a signing identity transported across the
4
- * service-worker boundary. All variants are structured-clone safe
5
- * (plain strings only — no functions or prototypes).
6
- *
7
- * `descriptor` carries the wildcard *template* (e.g.
8
- * `tr([fp/86'/0'/0']xpub.../0/*)`), not a concrete index — the
9
- * receiving factories require a template, and storing it directly
10
- * means nothing here has to convert concrete → template on rehydrate.
11
- *
12
- * Adding a new variant is a source change in every worker build; keep
13
- * old variants around until all deployed workers handle them.
14
- */
15
- export type SerializedSigningIdentity = {
16
- type: "single-key";
17
- privateKey: string;
18
- } | {
19
- type: "seed";
20
- seed: string;
21
- descriptor: string;
22
- } | {
23
- type: "mnemonic";
24
- mnemonic: string;
25
- descriptor: string;
26
- passphrase?: string;
27
- };
28
- /**
29
- * Tagged envelope for a readonly identity transported across the
30
- * service-worker boundary. All variants are structured-clone safe.
31
- * `descriptor` is the wildcard template (see
32
- * {@link SerializedSigningIdentity}).
33
- */
34
- export type SerializedReadonlyIdentity = {
35
- type: "readonly-single-key";
36
- publicKey: string;
37
- } | {
38
- type: "readonly-descriptor";
39
- descriptor: string;
40
- };
41
- export type SerializedIdentity = SerializedSigningIdentity | SerializedReadonlyIdentity;
42
- /** Type guard — true for signing envelopes, false for readonly envelopes. */
43
- export declare function isSigningSerialized(s: SerializedIdentity): s is SerializedSigningIdentity;
44
- /**
45
- * Serialize a signing identity into a structured-clone safe envelope for
46
- * transport across the service-worker boundary.
47
- *
48
- * Supports SDK-owned signing identities directly. For custom identities, a
49
- * duck-typed `toHex()` fallback preserves compatibility with existing
50
- * `SingleKey`-like implementations.
51
- */
52
- export declare function serializeSigningIdentity(identity: Identity): SerializedSigningIdentity;
53
- /**
54
- * Serialize a readonly identity into a structured-clone safe envelope.
55
- *
56
- * Works for any `ReadonlyIdentity` via `compressedPublicKey()`. When called
57
- * with a signing identity, produces a readonly envelope (never ships signing
58
- * material) — callers that need to preserve signing capability across the
59
- * boundary must use {@link serializeSigningIdentity}.
60
- */
61
- export declare function serializeReadonlyIdentity(identity: ReadonlyIdentity): Promise<SerializedReadonlyIdentity>;
62
- /**
63
- * Rehydrate a serialized identity envelope back into an identity instance.
64
- * The return type is the union of signing and readonly; use
65
- * {@link isSigningSerialized} on the envelope before hydration if the caller
66
- * needs to know which side it ends up on.
67
- *
68
- * Envelopes store the wildcard template directly (see
69
- * `serializeSeedOwnedSigningIdentity` / `serializeSeedOwnedReadonlyIdentity`),
70
- * so the `descriptor` field is passed straight through to the
71
- * template-only factories.
72
- */
73
- export declare function hydrateIdentity(s: SerializedIdentity): Identity | ReadonlyIdentity;
74
- /**
75
- * Legacy untagged shape emitted by page builds prior to the tagged
76
- * SerializedIdentity envelope. Retained so newer workers can still accept
77
- * older pages during a rolling upgrade. Slated for removal in the next major.
78
- *
79
- * @deprecated Use {@link SerializedIdentity}.
80
- */
81
- export type LegacySerializedIdentity = {
82
- privateKey: string;
83
- } | {
84
- publicKey: string;
85
- };
86
- /**
87
- * Accept either a modern {@link SerializedIdentity} envelope or a legacy
88
- * `{ privateKey }` / `{ publicKey }` shape and normalize to a
89
- * {@link SerializedIdentity}. Emits a one-time deprecation warning when a
90
- * legacy shape is seen.
91
- *
92
- * Intended for the worker-side boundary; new page builds always emit tagged
93
- * envelopes via {@link serializeSigningIdentity} /
94
- * {@link serializeReadonlyIdentity}.
95
- */
96
- export declare function normalizeSerializedIdentity(shape: SerializedIdentity | LegacySerializedIdentity): SerializedIdentity;
@@ -1,62 +0,0 @@
1
- import { Identity, ReadonlyIdentity } from "./index.js";
2
- import { Transaction } from "../utils/transaction.js";
3
- import { SignerSession } from "../tree/signingSession.js";
4
- /**
5
- * In-memory single key implementation for Bitcoin transaction signing.
6
- *
7
- * @example
8
- * ```typescript
9
- * // Create from hex string
10
- * const key = SingleKey.fromHex('your_private_key_hex');
11
- *
12
- * // Create from raw bytes
13
- * const key = SingleKey.fromPrivateKey(privateKeyBytes);
14
- *
15
- * // Create random key
16
- * const randomKey = SingleKey.fromRandomBytes();
17
- *
18
- * // Sign a transaction
19
- * const signedTx = await key.sign(transaction);
20
- * ```
21
- */
22
- export declare class SingleKey implements Identity {
23
- private key;
24
- private constructor();
25
- /** Create a signing identity from raw private key bytes. */
26
- static fromPrivateKey(privateKey: Uint8Array): SingleKey;
27
- /** Create a signing identity from a hex-encoded private key. */
28
- static fromHex(privateKeyHex: string): SingleKey;
29
- /** Create a signing identity with a freshly generated random private key. */
30
- static fromRandomBytes(): SingleKey;
31
- /**
32
- * Export the private key as a hex string.
33
- *
34
- * @returns The private key as a hex string
35
- */
36
- toHex(): string;
37
- sign(tx: Transaction, inputIndexes?: number[]): Promise<Transaction>;
38
- compressedPublicKey(): Promise<Uint8Array>;
39
- xOnlyPublicKey(): Promise<Uint8Array>;
40
- signerSession(): SignerSession;
41
- signMessage(message: Uint8Array, signatureType?: "schnorr" | "ecdsa"): Promise<Uint8Array>;
42
- toReadonly(): Promise<ReadonlySingleKey>;
43
- }
44
- export declare class ReadonlySingleKey implements ReadonlyIdentity {
45
- private readonly publicKey;
46
- /** Create a readonly identity from a compressed public key. */
47
- constructor(publicKey: Uint8Array);
48
- /**
49
- * Create a ReadonlySingleKey from a compressed public key.
50
- *
51
- * @param publicKey - 33-byte compressed public key (02/03 prefix + 32-byte x coordinate)
52
- * @returns A new ReadonlySingleKey instance
53
- * @example
54
- * ```typescript
55
- * const pubkey = new Uint8Array(33); // your compressed public key
56
- * const readonlyKey = ReadonlySingleKey.fromPublicKey(pubkey);
57
- * ```
58
- */
59
- static fromPublicKey(publicKey: Uint8Array): ReadonlySingleKey;
60
- xOnlyPublicKey(): Promise<Uint8Array>;
61
- compressedPublicKey(): Promise<Uint8Array>;
62
- }