@bigmi/core 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/LICENSE.md +21 -0
  3. package/README.md +137 -0
  4. package/dist/cjs/actions/getBalance.d.ts +7 -0
  5. package/dist/cjs/actions/getBalance.js +11 -0
  6. package/dist/cjs/actions/getBalance.js.map +1 -0
  7. package/dist/cjs/actions/getBlock.d.ts +12 -0
  8. package/dist/cjs/actions/getBlock.js +31 -0
  9. package/dist/cjs/actions/getBlock.js.map +1 -0
  10. package/dist/cjs/actions/getBlockCount.d.ts +4 -0
  11. package/dist/cjs/actions/getBlockCount.js +11 -0
  12. package/dist/cjs/actions/getBlockCount.js.map +1 -0
  13. package/dist/cjs/actions/getBlockStats.d.ts +14 -0
  14. package/dist/cjs/actions/getBlockStats.js +27 -0
  15. package/dist/cjs/actions/getBlockStats.js.map +1 -0
  16. package/dist/cjs/actions/getUTXOTransaction.d.ts +9 -0
  17. package/dist/cjs/actions/getUTXOTransaction.js +24 -0
  18. package/dist/cjs/actions/getUTXOTransaction.js.map +1 -0
  19. package/dist/cjs/actions/sendUTXOTransaction.d.ts +8 -0
  20. package/dist/cjs/actions/sendUTXOTransaction.js +15 -0
  21. package/dist/cjs/actions/sendUTXOTransaction.js.map +1 -0
  22. package/dist/cjs/actions/signPsbt.d.ts +3 -0
  23. package/dist/cjs/actions/signPsbt.js +11 -0
  24. package/dist/cjs/actions/signPsbt.js.map +1 -0
  25. package/dist/cjs/actions/waitForTransaction.d.ts +32 -0
  26. package/dist/cjs/actions/waitForTransaction.js +185 -0
  27. package/dist/cjs/actions/waitForTransaction.js.map +1 -0
  28. package/dist/cjs/actions/watchBlockNumber.d.ts +14 -0
  29. package/dist/cjs/actions/watchBlockNumber.js +45 -0
  30. package/dist/cjs/actions/watchBlockNumber.js.map +1 -0
  31. package/dist/cjs/chains/bitcoin.d.ts +36 -0
  32. package/dist/cjs/chains/bitcoin.js +21 -0
  33. package/dist/cjs/chains/bitcoin.js.map +1 -0
  34. package/dist/cjs/clients/types.d.ts +27 -0
  35. package/dist/cjs/clients/types.js +3 -0
  36. package/dist/cjs/clients/types.js.map +1 -0
  37. package/dist/cjs/decorators/UTXOAPIActions.d.ts +6 -0
  38. package/dist/cjs/decorators/UTXOAPIActions.js +10 -0
  39. package/dist/cjs/decorators/UTXOAPIActions.js.map +1 -0
  40. package/dist/cjs/decorators/UTXOActions.d.ts +10 -0
  41. package/dist/cjs/decorators/UTXOActions.js +14 -0
  42. package/dist/cjs/decorators/UTXOActions.js.map +1 -0
  43. package/dist/cjs/index.d.ts +38 -0
  44. package/dist/cjs/index.js +58 -0
  45. package/dist/cjs/index.js.map +1 -0
  46. package/dist/cjs/package.json +1 -0
  47. package/dist/cjs/transports/ankr.d.ts +2 -0
  48. package/dist/cjs/transports/ankr.js +21 -0
  49. package/dist/cjs/transports/ankr.js.map +1 -0
  50. package/dist/cjs/transports/blockchair.d.ts +2 -0
  51. package/dist/cjs/transports/blockchair.js +24 -0
  52. package/dist/cjs/transports/blockchair.js.map +1 -0
  53. package/dist/cjs/transports/blockcypher.d.ts +2 -0
  54. package/dist/cjs/transports/blockcypher.js +21 -0
  55. package/dist/cjs/transports/blockcypher.js.map +1 -0
  56. package/dist/cjs/transports/getHttpRpcClient.d.ts +19 -0
  57. package/dist/cjs/transports/getHttpRpcClient.js +77 -0
  58. package/dist/cjs/transports/getHttpRpcClient.js.map +1 -0
  59. package/dist/cjs/transports/getRpcProviderMethods.d.ts +2 -0
  60. package/dist/cjs/transports/getRpcProviderMethods.js +22 -0
  61. package/dist/cjs/transports/getRpcProviderMethods.js.map +1 -0
  62. package/dist/cjs/transports/mempool.d.ts +2 -0
  63. package/dist/cjs/transports/mempool.js +17 -0
  64. package/dist/cjs/transports/mempool.js.map +1 -0
  65. package/dist/cjs/transports/types.d.ts +60 -0
  66. package/dist/cjs/transports/types.js +3 -0
  67. package/dist/cjs/transports/types.js.map +1 -0
  68. package/dist/cjs/transports/utxo.d.ts +6 -0
  69. package/dist/cjs/transports/utxo.js +56 -0
  70. package/dist/cjs/transports/utxo.js.map +1 -0
  71. package/dist/cjs/types/blockStats.d.ts +34 -0
  72. package/dist/cjs/types/blockStats.js +3 -0
  73. package/dist/cjs/types/blockStats.js.map +1 -0
  74. package/dist/cjs/types/transaction.d.ts +41 -0
  75. package/dist/cjs/types/transaction.js +3 -0
  76. package/dist/cjs/types/transaction.js.map +1 -0
  77. package/dist/cjs/utils/cancelTransaction.d.ts +2 -0
  78. package/dist/cjs/utils/cancelTransaction.js +51 -0
  79. package/dist/cjs/utils/cancelTransaction.js.map +1 -0
  80. package/dist/cjs/utils/getUTXOAddress.d.ts +19 -0
  81. package/dist/cjs/utils/getUTXOAddress.js +120 -0
  82. package/dist/cjs/utils/getUTXOAddress.js.map +1 -0
  83. package/dist/cjs/utils/isUTXOAddress.d.ts +2 -0
  84. package/dist/cjs/utils/isUTXOAddress.js +18 -0
  85. package/dist/cjs/utils/isUTXOAddress.js.map +1 -0
  86. package/dist/cjs/utils/modifyFee.d.ts +2 -0
  87. package/dist/cjs/utils/modifyFee.js +50 -0
  88. package/dist/cjs/utils/modifyFee.js.map +1 -0
  89. package/dist/cjs/utils/observe.d.ts +11 -0
  90. package/dist/cjs/utils/observe.js +48 -0
  91. package/dist/cjs/utils/observe.js.map +1 -0
  92. package/dist/cjs/utils/poll.d.ts +9 -0
  93. package/dist/cjs/utils/poll.js +30 -0
  94. package/dist/cjs/utils/poll.js.map +1 -0
  95. package/dist/cjs/utils/sleep.d.ts +1 -0
  96. package/dist/cjs/utils/sleep.js +9 -0
  97. package/dist/cjs/utils/sleep.js.map +1 -0
  98. package/dist/esm/actions/getBalance.d.ts +8 -0
  99. package/dist/esm/actions/getBalance.js +8 -0
  100. package/dist/esm/actions/getBalance.js.map +1 -0
  101. package/dist/esm/actions/getBlock.d.ts +12 -0
  102. package/dist/esm/actions/getBlock.js +28 -0
  103. package/dist/esm/actions/getBlock.js.map +1 -0
  104. package/dist/esm/actions/getBlockCount.d.ts +4 -0
  105. package/dist/esm/actions/getBlockCount.js +8 -0
  106. package/dist/esm/actions/getBlockCount.js.map +1 -0
  107. package/dist/esm/actions/getBlockStats.d.ts +14 -0
  108. package/dist/esm/actions/getBlockStats.js +24 -0
  109. package/dist/esm/actions/getBlockStats.js.map +1 -0
  110. package/dist/esm/actions/getUTXOTransaction.d.ts +11 -0
  111. package/dist/esm/actions/getUTXOTransaction.js +21 -0
  112. package/dist/esm/actions/getUTXOTransaction.js.map +1 -0
  113. package/dist/esm/actions/sendUTXOTransaction.d.ts +10 -0
  114. package/dist/esm/actions/sendUTXOTransaction.js +12 -0
  115. package/dist/esm/actions/sendUTXOTransaction.js.map +1 -0
  116. package/dist/esm/actions/signPsbt.d.ts +3 -0
  117. package/dist/esm/actions/signPsbt.js +8 -0
  118. package/dist/esm/actions/signPsbt.js.map +1 -0
  119. package/dist/esm/actions/waitForTransaction.d.ts +75 -0
  120. package/dist/esm/actions/waitForTransaction.js +230 -0
  121. package/dist/esm/actions/waitForTransaction.js.map +1 -0
  122. package/dist/esm/actions/watchBlockNumber.d.ts +25 -0
  123. package/dist/esm/actions/watchBlockNumber.js +58 -0
  124. package/dist/esm/actions/watchBlockNumber.js.map +1 -0
  125. package/dist/esm/chains/bitcoin.d.ts +36 -0
  126. package/dist/esm/chains/bitcoin.js +18 -0
  127. package/dist/esm/chains/bitcoin.js.map +1 -0
  128. package/dist/esm/clients/types.d.ts +43 -0
  129. package/dist/esm/clients/types.js +2 -0
  130. package/dist/esm/clients/types.js.map +1 -0
  131. package/dist/esm/decorators/UTXOAPIActions.d.ts +6 -0
  132. package/dist/esm/decorators/UTXOAPIActions.js +7 -0
  133. package/dist/esm/decorators/UTXOAPIActions.js.map +1 -0
  134. package/dist/esm/decorators/UTXOActions.d.ts +10 -0
  135. package/dist/esm/decorators/UTXOActions.js +11 -0
  136. package/dist/esm/decorators/UTXOActions.js.map +1 -0
  137. package/dist/esm/index.d.ts +38 -0
  138. package/dist/esm/index.js +31 -0
  139. package/dist/esm/index.js.map +1 -0
  140. package/dist/esm/package.json +1 -0
  141. package/dist/esm/transports/ankr.d.ts +2 -0
  142. package/dist/esm/transports/ankr.js +18 -0
  143. package/dist/esm/transports/ankr.js.map +1 -0
  144. package/dist/esm/transports/blockchair.d.ts +2 -0
  145. package/dist/esm/transports/blockchair.js +21 -0
  146. package/dist/esm/transports/blockchair.js.map +1 -0
  147. package/dist/esm/transports/blockcypher.d.ts +2 -0
  148. package/dist/esm/transports/blockcypher.js +18 -0
  149. package/dist/esm/transports/blockcypher.js.map +1 -0
  150. package/dist/esm/transports/getHttpRpcClient.d.ts +24 -0
  151. package/dist/esm/transports/getHttpRpcClient.js +74 -0
  152. package/dist/esm/transports/getHttpRpcClient.js.map +1 -0
  153. package/dist/esm/transports/getRpcProviderMethods.d.ts +2 -0
  154. package/dist/esm/transports/getRpcProviderMethods.js +19 -0
  155. package/dist/esm/transports/getRpcProviderMethods.js.map +1 -0
  156. package/dist/esm/transports/mempool.d.ts +2 -0
  157. package/dist/esm/transports/mempool.js +14 -0
  158. package/dist/esm/transports/mempool.js.map +1 -0
  159. package/dist/esm/transports/types.d.ts +60 -0
  160. package/dist/esm/transports/types.js +2 -0
  161. package/dist/esm/transports/types.js.map +1 -0
  162. package/dist/esm/transports/utxo.d.ts +6 -0
  163. package/dist/esm/transports/utxo.js +53 -0
  164. package/dist/esm/transports/utxo.js.map +1 -0
  165. package/dist/esm/types/blockStats.d.ts +34 -0
  166. package/dist/esm/types/blockStats.js +2 -0
  167. package/dist/esm/types/blockStats.js.map +1 -0
  168. package/dist/esm/types/transaction.d.ts +41 -0
  169. package/dist/esm/types/transaction.js +2 -0
  170. package/dist/esm/types/transaction.js.map +1 -0
  171. package/dist/esm/utils/cancelTransaction.d.ts +2 -0
  172. package/dist/esm/utils/cancelTransaction.js +55 -0
  173. package/dist/esm/utils/cancelTransaction.js.map +1 -0
  174. package/dist/esm/utils/getUTXOAddress.d.ts +19 -0
  175. package/dist/esm/utils/getUTXOAddress.js +116 -0
  176. package/dist/esm/utils/getUTXOAddress.js.map +1 -0
  177. package/dist/esm/utils/isUTXOAddress.d.ts +2 -0
  178. package/dist/esm/utils/isUTXOAddress.js +14 -0
  179. package/dist/esm/utils/isUTXOAddress.js.map +1 -0
  180. package/dist/esm/utils/modifyFee.d.ts +2 -0
  181. package/dist/esm/utils/modifyFee.js +53 -0
  182. package/dist/esm/utils/modifyFee.js.map +1 -0
  183. package/dist/esm/utils/observe.d.ts +18 -0
  184. package/dist/esm/utils/observe.js +51 -0
  185. package/dist/esm/utils/observe.js.map +1 -0
  186. package/dist/esm/utils/poll.d.ts +12 -0
  187. package/dist/esm/utils/poll.js +30 -0
  188. package/dist/esm/utils/poll.js.map +1 -0
  189. package/dist/esm/utils/sleep.d.ts +1 -0
  190. package/dist/esm/utils/sleep.js +6 -0
  191. package/dist/esm/utils/sleep.js.map +1 -0
  192. package/dist/types/actions/getBalance.d.ts +9 -0
  193. package/dist/types/actions/getBalance.d.ts.map +1 -0
  194. package/dist/types/actions/getBlock.d.ts +13 -0
  195. package/dist/types/actions/getBlock.d.ts.map +1 -0
  196. package/dist/types/actions/getBlockCount.d.ts +5 -0
  197. package/dist/types/actions/getBlockCount.d.ts.map +1 -0
  198. package/dist/types/actions/getBlockStats.d.ts +15 -0
  199. package/dist/types/actions/getBlockStats.d.ts.map +1 -0
  200. package/dist/types/actions/getUTXOTransaction.d.ts +12 -0
  201. package/dist/types/actions/getUTXOTransaction.d.ts.map +1 -0
  202. package/dist/types/actions/sendUTXOTransaction.d.ts +11 -0
  203. package/dist/types/actions/sendUTXOTransaction.d.ts.map +1 -0
  204. package/dist/types/actions/signPsbt.d.ts +4 -0
  205. package/dist/types/actions/signPsbt.d.ts.map +1 -0
  206. package/dist/types/actions/waitForTransaction.d.ts +76 -0
  207. package/dist/types/actions/waitForTransaction.d.ts.map +1 -0
  208. package/dist/types/actions/watchBlockNumber.d.ts +26 -0
  209. package/dist/types/actions/watchBlockNumber.d.ts.map +1 -0
  210. package/dist/types/chains/bitcoin.d.ts +37 -0
  211. package/dist/types/chains/bitcoin.d.ts.map +1 -0
  212. package/dist/types/clients/types.d.ts +44 -0
  213. package/dist/types/clients/types.d.ts.map +1 -0
  214. package/dist/types/decorators/UTXOAPIActions.d.ts +7 -0
  215. package/dist/types/decorators/UTXOAPIActions.d.ts.map +1 -0
  216. package/dist/types/decorators/UTXOActions.d.ts +11 -0
  217. package/dist/types/decorators/UTXOActions.d.ts.map +1 -0
  218. package/dist/types/index.d.ts +39 -0
  219. package/dist/types/index.d.ts.map +1 -0
  220. package/dist/types/transports/ankr.d.ts +3 -0
  221. package/dist/types/transports/ankr.d.ts.map +1 -0
  222. package/dist/types/transports/blockchair.d.ts +3 -0
  223. package/dist/types/transports/blockchair.d.ts.map +1 -0
  224. package/dist/types/transports/blockcypher.d.ts +3 -0
  225. package/dist/types/transports/blockcypher.d.ts.map +1 -0
  226. package/dist/types/transports/getHttpRpcClient.d.ts +25 -0
  227. package/dist/types/transports/getHttpRpcClient.d.ts.map +1 -0
  228. package/dist/types/transports/getRpcProviderMethods.d.ts +3 -0
  229. package/dist/types/transports/getRpcProviderMethods.d.ts.map +1 -0
  230. package/dist/types/transports/mempool.d.ts +3 -0
  231. package/dist/types/transports/mempool.d.ts.map +1 -0
  232. package/dist/types/transports/types.d.ts +61 -0
  233. package/dist/types/transports/types.d.ts.map +1 -0
  234. package/dist/types/transports/utxo.d.ts +7 -0
  235. package/dist/types/transports/utxo.d.ts.map +1 -0
  236. package/dist/types/types/blockStats.d.ts +35 -0
  237. package/dist/types/types/blockStats.d.ts.map +1 -0
  238. package/dist/types/types/transaction.d.ts +42 -0
  239. package/dist/types/types/transaction.d.ts.map +1 -0
  240. package/dist/types/utils/cancelTransaction.d.ts +3 -0
  241. package/dist/types/utils/cancelTransaction.d.ts.map +1 -0
  242. package/dist/types/utils/getUTXOAddress.d.ts +20 -0
  243. package/dist/types/utils/getUTXOAddress.d.ts.map +1 -0
  244. package/dist/types/utils/isUTXOAddress.d.ts +3 -0
  245. package/dist/types/utils/isUTXOAddress.d.ts.map +1 -0
  246. package/dist/types/utils/modifyFee.d.ts +3 -0
  247. package/dist/types/utils/modifyFee.d.ts.map +1 -0
  248. package/dist/types/utils/observe.d.ts +19 -0
  249. package/dist/types/utils/observe.d.ts.map +1 -0
  250. package/dist/types/utils/poll.d.ts +13 -0
  251. package/dist/types/utils/poll.d.ts.map +1 -0
  252. package/dist/types/utils/sleep.d.ts +2 -0
  253. package/dist/types/utils/sleep.d.ts.map +1 -0
  254. package/package.json +50 -0
  255. package/src/actions/getBalance.ts +26 -0
  256. package/src/actions/getBlock.ts +58 -0
  257. package/src/actions/getBlockCount.ts +20 -0
  258. package/src/actions/getBlockStats.ts +55 -0
  259. package/src/actions/getUTXOTransaction.ts +43 -0
  260. package/src/actions/sendUTXOTransaction.ts +29 -0
  261. package/src/actions/signPsbt.ts +23 -0
  262. package/src/actions/waitForTransaction.ts +387 -0
  263. package/src/actions/watchBlockNumber.ts +105 -0
  264. package/src/chains/bitcoin.ts +18 -0
  265. package/src/clients/types.ts +48 -0
  266. package/src/decorators/UTXOAPIActions.ts +20 -0
  267. package/src/decorators/UTXOActions.ts +37 -0
  268. package/src/index.ts +97 -0
  269. package/src/transports/ankr.ts +30 -0
  270. package/src/transports/blockchair.ts +27 -0
  271. package/src/transports/blockcypher.ts +32 -0
  272. package/src/transports/getHttpRpcClient.ts +122 -0
  273. package/src/transports/getRpcProviderMethods.ts +22 -0
  274. package/src/transports/mempool.ts +34 -0
  275. package/src/transports/types.ts +71 -0
  276. package/src/transports/utxo.ts +84 -0
  277. package/src/types/blockStats.ts +35 -0
  278. package/src/types/transaction.ts +43 -0
  279. package/src/utils/cancelTransaction.ts +75 -0
  280. package/src/utils/getUTXOAddress.ts +148 -0
  281. package/src/utils/isUTXOAddress.ts +18 -0
  282. package/src/utils/modifyFee.ts +78 -0
  283. package/src/utils/observe.ts +81 -0
  284. package/src/utils/poll.ts +48 -0
  285. package/src/utils/sleep.ts +5 -0
  286. package/tsconfig.json +10 -0
@@ -0,0 +1,34 @@
1
+ export type BlockStats = Partial<{
2
+ avgfee: number;
3
+ avgfeerate: number;
4
+ avgtxsize: number;
5
+ blockhash: string;
6
+ feerate_percentiles: number[];
7
+ height: number;
8
+ ins: number;
9
+ maxfee: number;
10
+ maxfeerate: number;
11
+ maxtxsize: number;
12
+ medianfee: number;
13
+ mediantime: number;
14
+ mediantxsize: number;
15
+ minfee: number;
16
+ minfeerate: number;
17
+ mintxsize: number;
18
+ outs: number;
19
+ subsidy: number;
20
+ swtotal_size: number;
21
+ swtotal_weight: number;
22
+ swtxs: number;
23
+ time: number;
24
+ total_out: number;
25
+ total_size: number;
26
+ total_weight: number;
27
+ totalfee: number;
28
+ txs: number;
29
+ utxo_increase: number;
30
+ utxo_size_inc: number;
31
+ utxo_increase_actual: number;
32
+ utxo_size_inc_actual: number;
33
+ }>;
34
+ export type BlockStatsKeys = keyof BlockStats;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=blockStats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blockStats.js","sourceRoot":"","sources":["../../../src/types/blockStats.ts"],"names":[],"mappings":""}
@@ -0,0 +1,41 @@
1
+ export type UTXOTransaction = {
2
+ blockhash?: string;
3
+ blocktime?: number;
4
+ confirmations?: number;
5
+ hash: string;
6
+ hex: string;
7
+ in_active_chain?: boolean;
8
+ locktime: number;
9
+ size: number;
10
+ time?: number;
11
+ txid: string;
12
+ version: number;
13
+ vsize: number;
14
+ weight: number;
15
+ vin: {
16
+ scriptSig: {
17
+ asm: string;
18
+ hex: string;
19
+ };
20
+ sequence: number;
21
+ txid: string;
22
+ txinwitness: string[];
23
+ vout: number;
24
+ }[];
25
+ vout: {
26
+ n: 0;
27
+ scriptPubKey: {
28
+ address: string;
29
+ asm: string;
30
+ desc: string;
31
+ hex: string;
32
+ type: string;
33
+ } | {
34
+ asm: string;
35
+ desc: string;
36
+ hex: string;
37
+ type: string;
38
+ };
39
+ value: number;
40
+ }[];
41
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=transaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../../src/types/transaction.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import { Psbt } from 'bitcoinjs-lib';
2
+ export declare function cancelTransaction(psbt: Psbt, accountAddress: string): Psbt;
@@ -0,0 +1,55 @@
1
+ import { Psbt, address } from 'bitcoinjs-lib';
2
+ export function cancelTransaction(psbt, accountAddress) {
3
+ const newPsbt = new Psbt();
4
+ const inputs = psbt.data.inputs;
5
+ const txInputs = psbt.txInputs;
6
+ // Add inputs to the new PSBT
7
+ for (let i = 0; i < inputs.length; i++) {
8
+ const input = inputs[i];
9
+ const txInput = txInputs[i];
10
+ const inputData = {
11
+ hash: txInput.hash,
12
+ index: txInput.index,
13
+ };
14
+ // Include UTXO information
15
+ if (input.nonWitnessUtxo) {
16
+ inputData.nonWitnessUtxo = input.nonWitnessUtxo;
17
+ }
18
+ else if (input.witnessUtxo) {
19
+ inputData.witnessUtxo = input.witnessUtxo;
20
+ }
21
+ else {
22
+ throw new Error('Input UTXO information is missing');
23
+ }
24
+ // Include scripts if necessary
25
+ if (input.redeemScript) {
26
+ inputData.redeemScript = input.redeemScript;
27
+ }
28
+ if (input.witnessScript) {
29
+ inputData.witnessScript = input.witnessScript;
30
+ }
31
+ newPsbt.addInput(inputData);
32
+ }
33
+ // Compute total output amount from the original transaction
34
+ const outputs = psbt.txOutputs;
35
+ let totalOutputValue = BigInt(0);
36
+ for (const output of outputs) {
37
+ totalOutputValue += output.value;
38
+ }
39
+ if (totalOutputValue <= BigInt(0)) {
40
+ throw new Error('Total output value must be greater than zero');
41
+ }
42
+ // Create the output to send funds back to sender's address
43
+ const outputScript = address.toOutputScript(accountAddress);
44
+ newPsbt.addOutput({
45
+ script: outputScript,
46
+ value: totalOutputValue,
47
+ });
48
+ // Modify the input sequence number to enable RBF
49
+ newPsbt.txInputs.forEach((_, index) => {
50
+ // Set sequence number to less than 0xfffffffe, e.g., 0xfffffffd
51
+ newPsbt.setInputSequence(index, 0xfffffffd);
52
+ });
53
+ return newPsbt;
54
+ }
55
+ //# sourceMappingURL=cancelTransaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cancelTransaction.js","sourceRoot":"","sources":["../../../src/utils/cancelTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAc7C,MAAM,UAAU,iBAAiB,CAAC,IAAU,EAAE,cAAsB;IAClE,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAA;IAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAA;IAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;IAE9B,6BAA6B;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QACvB,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC3B,MAAM,SAAS,GAAc;YAC3B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAA;QAED,2BAA2B;QAC3B,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YACzB,SAAS,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAA;QACjD,CAAC;aAAM,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YAC7B,SAAS,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAA;QAC3C,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;QACtD,CAAC;QAED,+BAA+B;QAC/B,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACvB,SAAS,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAA;QAC7C,CAAC;QACD,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACxB,SAAS,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAA;QAC/C,CAAC;QAED,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;IAC7B,CAAC;IAED,4DAA4D;IAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAA;IAC9B,IAAI,gBAAgB,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;IAEhC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,gBAAgB,IAAI,MAAM,CAAC,KAAK,CAAA;IAClC,CAAC;IAED,IAAI,gBAAgB,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;IACjE,CAAC;IAED,2DAA2D;IAC3D,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA;IAC3D,OAAO,CAAC,SAAS,CAAC;QAChB,MAAM,EAAE,YAAY;QACpB,KAAK,EAAE,gBAAgB;KACxB,CAAC,CAAA;IAEF,iDAAiD;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;QACpC,gEAAgE;QAChE,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;IAEF,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -0,0 +1,19 @@
1
+ export declare enum UTXONetwork {
2
+ Mainnet = "mainnet",
3
+ Testnet = "testnet",
4
+ Regtest = "regtest"
5
+ }
6
+ export declare enum UTXOAddressType {
7
+ p2pkh = "p2pkh",
8
+ p2sh = "p2sh",
9
+ p2wpkh = "p2wpkh",
10
+ p2wsh = "p2wsh",
11
+ p2tr = "p2tr"
12
+ }
13
+ export type UTXOAddress = {
14
+ bech32: boolean;
15
+ network: UTXONetwork;
16
+ address: string;
17
+ type: UTXOAddressType;
18
+ };
19
+ export declare const getUTXOAddress: (address: string) => UTXOAddress;
@@ -0,0 +1,116 @@
1
+ import { sha256 } from '@noble/hashes/sha256';
2
+ import { bech32, bech32m } from 'bech32';
3
+ import bs58 from 'bs58';
4
+ export var UTXONetwork;
5
+ (function (UTXONetwork) {
6
+ UTXONetwork["Mainnet"] = "mainnet";
7
+ UTXONetwork["Testnet"] = "testnet";
8
+ UTXONetwork["Regtest"] = "regtest";
9
+ })(UTXONetwork || (UTXONetwork = {}));
10
+ export var UTXOAddressType;
11
+ (function (UTXOAddressType) {
12
+ UTXOAddressType["p2pkh"] = "p2pkh";
13
+ UTXOAddressType["p2sh"] = "p2sh";
14
+ UTXOAddressType["p2wpkh"] = "p2wpkh";
15
+ UTXOAddressType["p2wsh"] = "p2wsh";
16
+ UTXOAddressType["p2tr"] = "p2tr";
17
+ })(UTXOAddressType || (UTXOAddressType = {}));
18
+ const addressTypes = {
19
+ 0: {
20
+ type: UTXOAddressType.p2pkh,
21
+ network: UTXONetwork.Mainnet,
22
+ },
23
+ 111: {
24
+ type: UTXOAddressType.p2pkh,
25
+ network: UTXONetwork.Testnet,
26
+ },
27
+ 5: {
28
+ type: UTXOAddressType.p2sh,
29
+ network: UTXONetwork.Mainnet,
30
+ },
31
+ 196: {
32
+ type: UTXOAddressType.p2sh,
33
+ network: UTXONetwork.Testnet,
34
+ },
35
+ };
36
+ const parseBech32 = (address) => {
37
+ let decoded;
38
+ try {
39
+ if (address.startsWith('bc1p') ||
40
+ address.startsWith('tb1p') ||
41
+ address.startsWith('bcrt1p')) {
42
+ decoded = bech32m.decode(address);
43
+ }
44
+ else {
45
+ decoded = bech32.decode(address);
46
+ }
47
+ }
48
+ catch (_error) {
49
+ throw new Error('Invalid address');
50
+ }
51
+ const mapPrefixToNetwork = {
52
+ bc: UTXONetwork.Mainnet,
53
+ tb: UTXONetwork.Testnet,
54
+ bcrt: UTXONetwork.Regtest,
55
+ };
56
+ const network = mapPrefixToNetwork[decoded.prefix];
57
+ if (network === undefined) {
58
+ throw new Error('Invalid address');
59
+ }
60
+ const witnessVersion = decoded.words[0];
61
+ if (witnessVersion < 0 || witnessVersion > 16) {
62
+ throw new Error('Invalid address');
63
+ }
64
+ const data = bech32.fromWords(decoded.words.slice(1));
65
+ let type;
66
+ if (data.length === 20) {
67
+ type = UTXOAddressType.p2wpkh;
68
+ }
69
+ else if (witnessVersion === 1) {
70
+ type = UTXOAddressType.p2tr;
71
+ }
72
+ else {
73
+ type = UTXOAddressType.p2wsh;
74
+ }
75
+ return {
76
+ bech32: true,
77
+ network,
78
+ address,
79
+ type,
80
+ };
81
+ };
82
+ export const getUTXOAddress = (address) => {
83
+ let decoded;
84
+ const prefix = address.substring(0, 2).toLowerCase();
85
+ if (prefix === 'bc' || prefix === 'tb') {
86
+ return parseBech32(address);
87
+ }
88
+ try {
89
+ decoded = bs58.decode(address);
90
+ }
91
+ catch (_error) {
92
+ throw new Error('Invalid address');
93
+ }
94
+ const { length } = decoded;
95
+ if (length !== 25) {
96
+ throw new Error('Invalid address');
97
+ }
98
+ const version = decoded[0];
99
+ const checksum = decoded.slice(length - 4, length);
100
+ const body = decoded.slice(0, length - 4);
101
+ const expectedChecksum = sha256(sha256(body)).slice(0, 4);
102
+ if (checksum.some((value, index) => value !== expectedChecksum[index])) {
103
+ throw new Error('Invalid address');
104
+ }
105
+ const validVersions = Object.keys(addressTypes).map(Number);
106
+ if (!validVersions.includes(version)) {
107
+ throw new Error('Invalid address');
108
+ }
109
+ const addressType = addressTypes[version];
110
+ return {
111
+ ...addressType,
112
+ address,
113
+ bech32: false,
114
+ };
115
+ };
116
+ //# sourceMappingURL=getUTXOAddress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getUTXOAddress.js","sourceRoot":"","sources":["../../../src/utils/getUTXOAddress.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { type UTXONetwork } from './getUTXOAddress.js';
2
+ export declare const isUTXOAddress: (address: string, network?: UTXONetwork) => boolean;
@@ -0,0 +1,14 @@
1
+ import { getUTXOAddress } from './getUTXOAddress.js';
2
+ export const isUTXOAddress = (address, network) => {
3
+ try {
4
+ const utxoAddress = getUTXOAddress(address);
5
+ if (network) {
6
+ return network === utxoAddress.network;
7
+ }
8
+ return true;
9
+ }
10
+ catch (_error) {
11
+ return false;
12
+ }
13
+ };
14
+ //# sourceMappingURL=isUTXOAddress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isUTXOAddress.js","sourceRoot":"","sources":["../../../src/utils/isUTXOAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEtE,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,OAAe,EACf,OAAqB,EACZ,EAAE;IACX,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;QAE3C,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,OAAO,KAAK,WAAW,CAAC,OAAO,CAAA;QACxC,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ import { Psbt } from 'bitcoinjs-lib';
2
+ export declare function modifyFee(psbt: Psbt, newFee: bigint, accountAddress: string): Psbt;
@@ -0,0 +1,53 @@
1
+ import { Psbt, address } from 'bitcoinjs-lib';
2
+ export function modifyFee(psbt, newFee, accountAddress) {
3
+ const newPsbt = new Psbt();
4
+ const inputs = psbt.data.inputs;
5
+ const outputs = psbt.txOutputs;
6
+ // Add inputs to the new PSBT
7
+ for (let i = 0; i < inputs.length; i++) {
8
+ const input = inputs[i];
9
+ const inputData = {
10
+ hash: psbt.txInputs[i].hash,
11
+ index: psbt.txInputs[i].index,
12
+ };
13
+ // Include UTXO information
14
+ if (input.nonWitnessUtxo) {
15
+ inputData.nonWitnessUtxo = input.nonWitnessUtxo;
16
+ }
17
+ else if (input.witnessUtxo) {
18
+ inputData.witnessUtxo = input.witnessUtxo;
19
+ }
20
+ // Include scripts if necessary
21
+ if (input.redeemScript) {
22
+ inputData.redeemScript = input.redeemScript;
23
+ }
24
+ if (input.witnessScript) {
25
+ inputData.witnessScript = input.witnessScript;
26
+ }
27
+ newPsbt.addInput(inputData);
28
+ }
29
+ const changeOutputScript = address.toOutputScript(accountAddress);
30
+ // Add outputs to the new PSBT
31
+ for (const output of outputs) {
32
+ const outputData = {
33
+ script: output.script,
34
+ value: output.value,
35
+ };
36
+ const scriptsAreEqual = output.script.length === changeOutputScript.length &&
37
+ output.script.every((value, index) => value === changeOutputScript[index]);
38
+ if (scriptsAreEqual) {
39
+ outputData.value = output.value - newFee;
40
+ if (outputData.value < 0) {
41
+ throw new Error('Insufficient funds to adjust the fee by the specified amount.');
42
+ }
43
+ }
44
+ newPsbt.addOutput(outputData);
45
+ }
46
+ // Modify the input sequence number to enable RBF
47
+ newPsbt.txInputs.forEach((_, index) => {
48
+ // Set sequence number to less than 0xfffffffe, e.g., 0xfffffffd
49
+ newPsbt.setInputSequence(index, 0xfffffffd);
50
+ });
51
+ return newPsbt;
52
+ }
53
+ //# sourceMappingURL=modifyFee.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modifyFee.js","sourceRoot":"","sources":["../../../src/utils/modifyFee.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAc7C,MAAM,UAAU,SAAS,CAAC,IAAU,EAAE,MAAc,EAAE,cAAsB;IAC1E,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAA;IAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAA;IAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAA;IAE9B,6BAA6B;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QACvB,MAAM,SAAS,GAAc;YAC3B,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;YAC3B,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK;SAC9B,CAAA;QAED,2BAA2B;QAC3B,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YACzB,SAAS,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAA;QACjD,CAAC;aAAM,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YAC7B,SAAS,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAA;QAC3C,CAAC;QAED,+BAA+B;QAC/B,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACvB,SAAS,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAA;QAC7C,CAAC;QACD,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACxB,SAAS,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAA;QAC/C,CAAC;QAED,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;IAC7B,CAAC;IAED,MAAM,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA;IAEjE,8BAA8B;IAC9B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG;YACjB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAA;QAED,MAAM,eAAe,GACnB,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB,CAAC,MAAM;YAClD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAA;QAE5E,IAAI,eAAe,EAAE,CAAC;YACpB,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAA;YACxC,IAAI,UAAU,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAA;YACH,CAAC;QACH,CAAC;QAED,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;IAC/B,CAAC;IAED,iDAAiD;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;QACpC,gEAAgE;QAChE,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;IAEF,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { MaybePromise } from 'viem';
2
+ type Callback = ((...args: any[]) => any) | undefined;
3
+ type Callbacks = Record<string, Callback>;
4
+ /** @internal */
5
+ export declare const listenersCache: Map<string, {
6
+ id: number;
7
+ fns: Callbacks;
8
+ }[]>;
9
+ /** @internal */
10
+ export declare const cleanupCache: Map<string, () => void>;
11
+ type EmitFunction<callbacks extends Callbacks> = (emit: callbacks) => MaybePromise<void | (() => void)>;
12
+ /**
13
+ * @description Sets up an observer for a given function. If another function
14
+ * is set up under the same observer id, the function will only be called once
15
+ * for both instances of the observer.
16
+ */
17
+ export declare function observe<callbacks extends Callbacks>(observerId: string, callbacks: callbacks, fn: EmitFunction<callbacks>): () => void;
18
+ export {};
@@ -0,0 +1,51 @@
1
+ /** @internal */
2
+ export const listenersCache = /*#__PURE__*/ new Map();
3
+ /** @internal */
4
+ export const cleanupCache = /*#__PURE__*/ new Map();
5
+ let callbackCount = 0;
6
+ /**
7
+ * @description Sets up an observer for a given function. If another function
8
+ * is set up under the same observer id, the function will only be called once
9
+ * for both instances of the observer.
10
+ */
11
+ export function observe(observerId, callbacks, fn) {
12
+ const callbackId = ++callbackCount;
13
+ const getListeners = () => listenersCache.get(observerId) || [];
14
+ const unsubscribe = () => {
15
+ const listeners = getListeners();
16
+ listenersCache.set(observerId, listeners.filter((cb) => cb.id !== callbackId));
17
+ };
18
+ const unwatch = () => {
19
+ const cleanup = cleanupCache.get(observerId);
20
+ if (getListeners().length === 1 && cleanup) {
21
+ cleanup();
22
+ }
23
+ unsubscribe();
24
+ };
25
+ const listeners = getListeners();
26
+ listenersCache.set(observerId, [
27
+ ...listeners,
28
+ { id: callbackId, fns: callbacks },
29
+ ]);
30
+ if (listeners && listeners.length > 0) {
31
+ return unwatch;
32
+ }
33
+ const emit = {};
34
+ for (const key in callbacks) {
35
+ emit[key] = ((...args) => {
36
+ const listeners = getListeners();
37
+ if (listeners.length === 0) {
38
+ return;
39
+ }
40
+ for (const listener of listeners) {
41
+ listener.fns[key]?.(...args);
42
+ }
43
+ });
44
+ }
45
+ const cleanup = fn(emit);
46
+ if (typeof cleanup === 'function') {
47
+ cleanupCache.set(observerId, cleanup);
48
+ }
49
+ return unwatch;
50
+ }
51
+ //# sourceMappingURL=observe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observe.js","sourceRoot":"","sources":["../../../src/utils/observe.ts"],"names":[],"mappings":"AAKA,gBAAgB;AAChB,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,GAAG,EAGhD,CAAA;AACH,gBAAgB;AAChB,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,GAAG,EAAsB,CAAA;AAMvE,IAAI,aAAa,GAAG,CAAC,CAAA;AAErB;;;;GAIG;AACH,MAAM,UAAU,OAAO,CACrB,UAAkB,EAClB,SAAoB,EACpB,EAA2B;IAE3B,MAAM,UAAU,GAAG,EAAE,aAAa,CAAA;IAElC,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAA;IAE/D,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;QAChC,cAAc,CAAC,GAAG,CAChB,UAAU,EACV,SAAS,CAAC,MAAM,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,UAAU,CAAC,CACpD,CAAA;IACH,CAAC,CAAA;IAED,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QAC5C,IAAI,YAAY,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;YAC3C,OAAO,EAAE,CAAA;QACX,CAAC;QACD,WAAW,EAAE,CAAA;IACf,CAAC,CAAA;IAED,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;IAChC,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE;QAC7B,GAAG,SAAS;QACZ,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE;KACnC,CAAC,CAAA;IAEF,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,MAAM,IAAI,GAAc,EAAe,CAAA;IACvC,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CACX,GAAG,IAAyD,EAC5D,EAAE;YACF,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;YAChC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAM;YACR,CAAC;YACD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAA;YAC9B,CAAC;QACH,CAAC,CAAgD,CAAA;IACnD,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;IACxB,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;QAClC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IACvC,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -0,0 +1,12 @@
1
+ type PollOptions<T> = {
2
+ emitOnBegin?: boolean | undefined;
3
+ initialWaitTime?: ((data: T | undefined) => Promise<number>) | undefined;
4
+ interval: number;
5
+ };
6
+ /**
7
+ * @description Polls a function at a specified interval.
8
+ */
9
+ export declare function poll<T>(fn: ({ unpoll }: {
10
+ unpoll: () => void;
11
+ }) => Promise<T | undefined>, { emitOnBegin, initialWaitTime, interval }: PollOptions<T>): () => void;
12
+ export {};
@@ -0,0 +1,30 @@
1
+ import { sleep } from './sleep.js';
2
+ /**
3
+ * @description Polls a function at a specified interval.
4
+ */
5
+ export function poll(fn, { emitOnBegin, initialWaitTime, interval }) {
6
+ let active = true;
7
+ const unwatch = () => {
8
+ active = false;
9
+ };
10
+ const watch = async () => {
11
+ let data = undefined;
12
+ if (emitOnBegin) {
13
+ data = await fn({ unpoll: unwatch });
14
+ }
15
+ const initialWait = (await initialWaitTime?.(data)) ?? interval;
16
+ await sleep(initialWait);
17
+ const poll = async () => {
18
+ if (!active) {
19
+ return;
20
+ }
21
+ await fn({ unpoll: unwatch });
22
+ await sleep(interval);
23
+ poll();
24
+ };
25
+ poll();
26
+ };
27
+ watch();
28
+ return unwatch;
29
+ }
30
+ //# sourceMappingURL=poll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poll.js","sourceRoot":"","sources":["../../../src/utils/poll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAWlC;;GAEG;AACH,MAAM,UAAU,IAAI,CAClB,EAAkE,EAClE,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAkB;IAE1D,IAAI,MAAM,GAAG,IAAI,CAAA;IAEjB,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,MAAM,GAAG,KAAK,CAAA;IAChB,CAAC,CAAA;IAED,MAAM,KAAK,GAAG,KAAK,IAAI,EAAE;QACvB,IAAI,IAAI,GAAkB,SAAS,CAAA;QACnC,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;QACtC,CAAC;QAED,MAAM,WAAW,GAAG,CAAC,MAAM,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,QAAQ,CAAA;QAC/D,MAAM,KAAK,CAAC,WAAW,CAAC,CAAA;QAExB,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;YACtB,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAM;YACR,CAAC;YACD,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;YAC7B,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAA;YACrB,IAAI,EAAE,CAAA;QACR,CAAC,CAAA;QAED,IAAI,EAAE,CAAA;IACR,CAAC,CAAA;IACD,KAAK,EAAE,CAAA;IAEP,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function sleep(ms: number): Promise<null>;
@@ -0,0 +1,6 @@
1
+ export function sleep(ms) {
2
+ return new Promise((resolve) => {
3
+ setTimeout(() => resolve(null), ms);
4
+ });
5
+ }
6
+ //# sourceMappingURL=sleep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sleep.js","sourceRoot":"","sources":["../../../src/utils/sleep.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,KAAK,CAAC,EAAU;IAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { Account, Chain, Client, Transport } from 'viem';
2
+ import type { UTXOAPISchema } from '../transports/types.js';
3
+ export type GetBalanceParameters = {
4
+ /** The address of the account. */
5
+ address: string;
6
+ };
7
+ export type GetBalanceReturnType = bigint;
8
+ export declare function getBalance<C extends Chain | undefined, A extends Account | undefined = Account | undefined>(client: Client<Transport, C, A, UTXOAPISchema>, params: GetBalanceParameters): Promise<GetBalanceReturnType>;
9
+ //# sourceMappingURL=getBalance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getBalance.d.ts","sourceRoot":"","sources":["../../../src/actions/getBalance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAE3D,MAAM,MAAM,oBAAoB,GAAG;IACjC,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAA;AAEzC,wBAAsB,UAAU,CAC9B,CAAC,SAAS,KAAK,GAAG,SAAS,EAC3B,CAAC,SAAS,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,EAEnD,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,aAAa,CAAC,EAC9C,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,oBAAoB,CAAC,CAS/B"}
@@ -0,0 +1,13 @@
1
+ import { Block } from 'bitcoinjs-lib';
2
+ import { type Account, type Chain, type Client, type Transport } from 'viem';
3
+ import type { UTXOSchema } from '../transports/types.js';
4
+ export type GetBlockParameters = {
5
+ blockHash: string;
6
+ blockNumber?: never;
7
+ } | {
8
+ blockHash?: never;
9
+ blockNumber: number;
10
+ };
11
+ export type GetBlockReturnType = Block;
12
+ export declare function getBlock<C extends Chain | undefined, A extends Account | undefined = Account | undefined>(client: Client<Transport, C, A, UTXOSchema>, { blockHash, blockNumber }: GetBlockParameters): Promise<GetBlockReturnType>;
13
+ //# sourceMappingURL=getBlock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getBlock.d.ts","sourceRoot":"","sources":["../../../src/actions/getBlock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,EACL,KAAK,OAAO,EAEZ,KAAK,KAAK,EACV,KAAK,MAAM,EACX,KAAK,SAAS,EACf,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAExD,MAAM,MAAM,kBAAkB,GAC1B;IACE,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,KAAK,CAAA;CACpB,GACD;IACE,SAAS,CAAC,EAAE,KAAK,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAEL,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAAA;AAEtC,wBAAsB,QAAQ,CAC5B,CAAC,SAAS,KAAK,GAAG,SAAS,EAC3B,CAAC,SAAS,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,EAEnD,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,EAC3C,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,kBAAkB,GAC7C,OAAO,CAAC,kBAAkB,CAAC,CA6B7B"}
@@ -0,0 +1,5 @@
1
+ import type { Account, Chain, Client, Transport } from 'viem';
2
+ import type { UTXOSchema } from '../transports/types.js';
3
+ export type GetBlockCountReturnType = number;
4
+ export declare function getBlockCount<C extends Chain | undefined, A extends Account | undefined = Account | undefined>(client: Client<Transport, C, A, UTXOSchema>): Promise<GetBlockCountReturnType>;
5
+ //# sourceMappingURL=getBlockCount.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getBlockCount.d.ts","sourceRoot":"","sources":["../../../src/actions/getBlockCount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAExD,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAA;AAE5C,wBAAsB,aAAa,CACjC,CAAC,SAAS,KAAK,GAAG,SAAS,EAC3B,CAAC,SAAS,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,EAEnD,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,GAC1C,OAAO,CAAC,uBAAuB,CAAC,CASlC"}
@@ -0,0 +1,15 @@
1
+ import { type Account, type Chain, type Client, type Transport } from 'viem';
2
+ import type { UTXOSchema } from '../transports/types.js';
3
+ import type { BlockStats, BlockStatsKeys } from '../types/blockStats.js';
4
+ export type GetBlockStatsParameters = ({
5
+ blockHash: string;
6
+ blockNumber?: never;
7
+ } | {
8
+ blockHash?: never;
9
+ blockNumber: number;
10
+ }) & {
11
+ stats?: Array<BlockStatsKeys>;
12
+ };
13
+ export type GetBlockStatsReturnType = BlockStats;
14
+ export declare function getBlockStats<C extends Chain | undefined, A extends Account | undefined = Account | undefined>(client: Client<Transport, C, A, UTXOSchema>, { blockHash, blockNumber, stats }: GetBlockStatsParameters): Promise<GetBlockStatsReturnType>;
15
+ //# sourceMappingURL=getBlockStats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getBlockStats.d.ts","sourceRoot":"","sources":["../../../src/actions/getBlockStats.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EAEZ,KAAK,KAAK,EACV,KAAK,MAAM,EACX,KAAK,SAAS,EACf,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAExE,MAAM,MAAM,uBAAuB,GAAG,CAClC;IACE,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,KAAK,CAAA;CACpB,GACD;IACE,SAAS,CAAC,EAAE,KAAK,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;CACpB,CACJ,GAAG;IACF,KAAK,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,UAAU,CAAA;AAEhD,wBAAsB,aAAa,CACjC,CAAC,SAAS,KAAK,GAAG,SAAS,EAC3B,CAAC,SAAS,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,EAEnD,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,EAC3C,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,uBAAuB,GACzD,OAAO,CAAC,uBAAuB,CAAC,CAuBlC"}
@@ -0,0 +1,12 @@
1
+ import { type Account, type Chain, type Client, type Transport } from 'viem';
2
+ import type { UTXOSchema } from '../transports/types.js';
3
+ import type { UTXOTransaction } from '../types/transaction.js';
4
+ export type GetUTXOTransactionParameters = {
5
+ /** The Id of the transaction */
6
+ txId: string;
7
+ /** The block in which to look for the transaction */
8
+ blockHash?: string;
9
+ };
10
+ export type GetUTXOTransactionReturnType = UTXOTransaction;
11
+ export declare function getUTXOTransaction<C extends Chain | undefined, A extends Account | undefined = Account | undefined>(client: Client<Transport, C, A, UTXOSchema>, { txId, blockHash }: GetUTXOTransactionParameters): Promise<GetUTXOTransactionReturnType>;
12
+ //# sourceMappingURL=getUTXOTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getUTXOTransaction.d.ts","sourceRoot":"","sources":["../../../src/actions/getUTXOTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,MAAM,EAEX,KAAK,SAAS,EACf,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAE9D,MAAM,MAAM,4BAA4B,GAAG;IACzC,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,4BAA4B,GAAG,eAAe,CAAA;AAE1D,wBAAsB,kBAAkB,CACtC,CAAC,SAAS,KAAK,GAAG,SAAS,EAC3B,CAAC,SAAS,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,EAEnD,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,EAC3C,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,4BAA4B,GAChD,OAAO,CAAC,4BAA4B,CAAC,CAiBvC"}
@@ -0,0 +1,11 @@
1
+ import type { Account, Chain, Client, Transport } from 'viem';
2
+ import type { UTXOSchema } from '../transports/types.js';
3
+ export type SendUTXOTransactionParameters = {
4
+ /** The hex string of the raw transaction. */
5
+ hex: string;
6
+ /** Rejects transactions whose fee rate is higher than the specified value, expressed in BTC/kB. Set to 0 to accept any fee rate. Default = 0.10 */
7
+ maxFeeRate?: number;
8
+ };
9
+ export type SendUTXOTransactionReturnType = string;
10
+ export declare function sendUTXOTransaction<C extends Chain | undefined, A extends Account | undefined = Account | undefined>(client: Client<Transport, C, A, UTXOSchema>, { hex, maxFeeRate }: SendUTXOTransactionParameters): Promise<SendUTXOTransactionReturnType>;
11
+ //# sourceMappingURL=sendUTXOTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sendUTXOTransaction.d.ts","sourceRoot":"","sources":["../../../src/actions/sendUTXOTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAExD,MAAM,MAAM,6BAA6B,GAAG;IAC1C,6CAA6C;IAC7C,GAAG,EAAE,MAAM,CAAA;IACX,mJAAmJ;IACnJ,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,6BAA6B,GAAG,MAAM,CAAA;AAElD,wBAAsB,mBAAmB,CACvC,CAAC,SAAS,KAAK,GAAG,SAAS,EAC3B,CAAC,SAAS,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,EAEnD,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,EAC3C,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,6BAA6B,GACjD,OAAO,CAAC,6BAA6B,CAAC,CAUxC"}
@@ -0,0 +1,4 @@
1
+ import type { Account, Chain, Client, Transport } from 'viem';
2
+ import type { SignPsbtParameters, SignPsbtReturnType, UTXOWalletSchema } from '../clients/types.js';
3
+ export declare function signPsbt<C extends Chain | undefined, A extends Account | undefined = Account | undefined>(client: Client<Transport, C, A, UTXOWalletSchema>, params: SignPsbtParameters): Promise<SignPsbtReturnType>;
4
+ //# sourceMappingURL=signPsbt.d.ts.map