mainnet-js 2.7.34 → 3.0.0-next.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 (195) hide show
  1. package/dist/index.html +1 -1
  2. package/dist/{mainnet-2.7.34.js → mainnet-3.0.0-next.1.js} +728 -708
  3. package/dist/module/cache/MemoryCache.d.ts +0 -1
  4. package/dist/module/cache/MemoryCache.d.ts.map +1 -1
  5. package/dist/module/cache/MemoryCache.js +5 -7
  6. package/dist/module/cache/MemoryCache.js.map +1 -1
  7. package/dist/module/cache/index.d.ts +1 -0
  8. package/dist/module/cache/index.d.ts.map +1 -1
  9. package/dist/module/cache/index.js +1 -0
  10. package/dist/module/cache/index.js.map +1 -1
  11. package/dist/module/cache/walletCache.d.ts +45 -0
  12. package/dist/module/cache/walletCache.d.ts.map +1 -0
  13. package/dist/module/cache/walletCache.js +140 -0
  14. package/dist/module/cache/walletCache.js.map +1 -0
  15. package/dist/module/chain.d.ts +1 -1
  16. package/dist/module/chain.js +1 -1
  17. package/dist/module/chain.js.map +1 -1
  18. package/dist/module/constant.d.ts +1 -1
  19. package/dist/module/constant.d.ts.map +1 -1
  20. package/dist/module/constant.js +1 -1
  21. package/dist/module/constant.js.map +1 -1
  22. package/dist/module/enum.d.ts +1 -7
  23. package/dist/module/enum.d.ts.map +1 -1
  24. package/dist/module/enum.js +0 -6
  25. package/dist/module/enum.js.map +1 -1
  26. package/dist/module/history/{electrumTransformer.d.ts → getHistory.d.ts} +3 -3
  27. package/dist/module/history/getHistory.d.ts.map +1 -0
  28. package/dist/module/history/{electrumTransformer.js → getHistory.js} +17 -14
  29. package/dist/module/history/getHistory.js.map +1 -0
  30. package/dist/module/index.d.ts +3 -1
  31. package/dist/module/index.d.ts.map +1 -1
  32. package/dist/module/index.js +3 -1
  33. package/dist/module/index.js.map +1 -1
  34. package/dist/module/interface.d.ts +7 -2
  35. package/dist/module/interface.d.ts.map +1 -1
  36. package/dist/module/interface.js.map +1 -1
  37. package/dist/module/message/interface.d.ts +2 -2
  38. package/dist/module/message/interface.d.ts.map +1 -1
  39. package/dist/module/message/interface.js +0 -3
  40. package/dist/module/message/interface.js.map +1 -1
  41. package/dist/module/message/signed.d.ts +5 -5
  42. package/dist/module/message/signed.d.ts.map +1 -1
  43. package/dist/module/message/signed.js +8 -8
  44. package/dist/module/message/signed.js.map +1 -1
  45. package/dist/module/network/ElectrumNetworkProvider.d.ts +2 -2
  46. package/dist/module/network/ElectrumNetworkProvider.d.ts.map +1 -1
  47. package/dist/module/network/ElectrumNetworkProvider.js +3 -2
  48. package/dist/module/network/ElectrumNetworkProvider.js.map +1 -1
  49. package/dist/module/network/NetworkProvider.d.ts +2 -2
  50. package/dist/module/network/NetworkProvider.d.ts.map +1 -1
  51. package/dist/module/network/constant.js +4 -4
  52. package/dist/module/network/constant.js.map +1 -1
  53. package/dist/module/network/getRelayFeeCache.js +2 -2
  54. package/dist/module/network/getRelayFeeCache.js.map +1 -1
  55. package/dist/module/rate/ExchangeRate.d.ts +2 -1
  56. package/dist/module/rate/ExchangeRate.d.ts.map +1 -1
  57. package/dist/module/rate/ExchangeRate.js +4 -1
  58. package/dist/module/rate/ExchangeRate.js.map +1 -1
  59. package/dist/module/transaction/Wif.d.ts +25 -23
  60. package/dist/module/transaction/Wif.d.ts.map +1 -1
  61. package/dist/module/transaction/Wif.js +26 -25
  62. package/dist/module/transaction/Wif.js.map +1 -1
  63. package/dist/module/transaction/allocateFee.d.ts +3 -3
  64. package/dist/module/transaction/allocateFee.d.ts.map +1 -1
  65. package/dist/module/transaction/allocateFee.js +5 -6
  66. package/dist/module/transaction/allocateFee.js.map +1 -1
  67. package/dist/module/util/amountInSatoshi.d.ts +1 -1
  68. package/dist/module/util/amountInSatoshi.d.ts.map +1 -1
  69. package/dist/module/util/amountInSatoshi.js +3 -9
  70. package/dist/module/util/amountInSatoshi.js.map +1 -1
  71. package/dist/module/util/asSendRequestObject.d.ts.map +1 -1
  72. package/dist/module/util/asSendRequestObject.js +10 -7
  73. package/dist/module/util/asSendRequestObject.js.map +1 -1
  74. package/dist/module/util/checkUtxos.d.ts +2 -2
  75. package/dist/module/util/checkUtxos.d.ts.map +1 -1
  76. package/dist/module/util/checkUtxos.js +11 -12
  77. package/dist/module/util/checkUtxos.js.map +1 -1
  78. package/dist/module/util/convert.d.ts +3 -0
  79. package/dist/module/util/convert.d.ts.map +1 -1
  80. package/dist/module/util/convert.js +12 -0
  81. package/dist/module/util/convert.js.map +1 -1
  82. package/dist/module/util/deriveCashaddr.d.ts.map +1 -1
  83. package/dist/module/util/deriveCashaddr.js +6 -0
  84. package/dist/module/util/deriveCashaddr.js.map +1 -1
  85. package/dist/module/util/deriveNetwork.js +1 -1
  86. package/dist/module/util/deriveNetwork.js.map +1 -1
  87. package/dist/module/util/hd.d.ts +3 -0
  88. package/dist/module/util/hd.d.ts.map +1 -0
  89. package/dist/module/util/hd.js +11 -0
  90. package/dist/module/util/hd.js.map +1 -0
  91. package/dist/module/util/index.d.ts +3 -3
  92. package/dist/module/util/index.d.ts.map +1 -1
  93. package/dist/module/util/index.js +3 -3
  94. package/dist/module/util/index.js.map +1 -1
  95. package/dist/module/util/satoshiToAmount.d.ts +1 -1
  96. package/dist/module/util/satoshiToAmount.d.ts.map +1 -1
  97. package/dist/module/util/satoshiToAmount.js +3 -9
  98. package/dist/module/util/satoshiToAmount.js.map +1 -1
  99. package/dist/module/util/sumSendRequestAmounts.d.ts.map +1 -1
  100. package/dist/module/util/sumSendRequestAmounts.js +3 -4
  101. package/dist/module/util/sumSendRequestAmounts.js.map +1 -1
  102. package/dist/module/util/sumUtxoValue.d.ts +3 -3
  103. package/dist/module/util/sumUtxoValue.d.ts.map +1 -1
  104. package/dist/module/util/sumUtxoValue.js +2 -2
  105. package/dist/module/util/sumUtxoValue.js.map +1 -1
  106. package/dist/module/wallet/Base.d.ts +45 -103
  107. package/dist/module/wallet/Base.d.ts.map +1 -1
  108. package/dist/module/wallet/Base.js +99 -298
  109. package/dist/module/wallet/Base.js.map +1 -1
  110. package/dist/module/wallet/HDWallet.d.ts +164 -0
  111. package/dist/module/wallet/HDWallet.d.ts.map +1 -0
  112. package/dist/module/wallet/HDWallet.js +486 -0
  113. package/dist/module/wallet/HDWallet.js.map +1 -0
  114. package/dist/module/wallet/Util.js +1 -1
  115. package/dist/module/wallet/Util.js.map +1 -1
  116. package/dist/module/wallet/Watch.d.ts +151 -0
  117. package/dist/module/wallet/Watch.d.ts.map +1 -0
  118. package/dist/module/wallet/Watch.js +307 -0
  119. package/dist/module/wallet/Watch.js.map +1 -0
  120. package/dist/module/wallet/Wif.d.ts +23 -29
  121. package/dist/module/wallet/Wif.d.ts.map +1 -1
  122. package/dist/module/wallet/Wif.js +204 -267
  123. package/dist/module/wallet/Wif.js.map +1 -1
  124. package/dist/module/wallet/createWallet.d.ts +7 -1
  125. package/dist/module/wallet/createWallet.d.ts.map +1 -1
  126. package/dist/module/wallet/createWallet.js +26 -17
  127. package/dist/module/wallet/createWallet.js.map +1 -1
  128. package/dist/module/wallet/interface.d.ts +5 -6
  129. package/dist/module/wallet/interface.d.ts.map +1 -1
  130. package/dist/module/wallet/model.d.ts +15 -19
  131. package/dist/module/wallet/model.d.ts.map +1 -1
  132. package/dist/module/wallet/model.js +5 -25
  133. package/dist/module/wallet/model.js.map +1 -1
  134. package/dist/tsconfig.tsbuildinfo +1 -1
  135. package/package.json +1 -1
  136. package/src/cache/MemoryCache.ts +5 -5
  137. package/src/cache/index.ts +1 -0
  138. package/src/cache/walletCache.ts +239 -0
  139. package/src/chain.ts +1 -1
  140. package/src/constant.ts +1 -1
  141. package/src/enum.ts +0 -6
  142. package/src/history/{electrumTransformer.test.ts → getHistory.test.ts} +26 -53
  143. package/src/history/{electrumTransformer.ts → getHistory.ts} +31 -15
  144. package/src/index.ts +3 -1
  145. package/src/interface.ts +8 -2
  146. package/src/message/interface.ts +2 -28
  147. package/src/message/signed.test.ts +36 -48
  148. package/src/message/signed.ts +9 -12
  149. package/src/network/Connection.test.ts +3 -3
  150. package/src/network/ElectrumNetworkProvider.ts +5 -5
  151. package/src/network/NetworkProvider.ts +2 -2
  152. package/src/network/Rpc.test.ts +3 -4
  153. package/src/network/constant.ts +4 -4
  154. package/src/network/getRelayFeeCache.ts +2 -2
  155. package/src/rate/ExchangeRate.test.ts +2 -44
  156. package/src/rate/ExchangeRate.ts +5 -2
  157. package/src/transaction/Wif.ts +59 -52
  158. package/src/transaction/allocateFee.test.ts +110 -131
  159. package/src/transaction/allocateFee.ts +14 -15
  160. package/src/util/amountInSatoshi.test.ts +1 -9
  161. package/src/util/amountInSatoshi.ts +6 -10
  162. package/src/util/asSendRequestObject.ts +12 -7
  163. package/src/util/checkUtxos.ts +21 -26
  164. package/src/util/convert.ts +18 -0
  165. package/src/util/deriveCashaddr.ts +8 -0
  166. package/src/util/deriveNetwork.ts +1 -1
  167. package/src/util/derivePublicKeyHash.test.ts +0 -13
  168. package/src/util/hd.ts +16 -0
  169. package/src/util/index.ts +3 -7
  170. package/src/util/satoshiToAmount.test.ts +1 -1
  171. package/src/util/satoshiToAmount.ts +4 -10
  172. package/src/util/sumSendRequestAmounts.ts +3 -4
  173. package/src/util/sumUtxoValue.ts +7 -7
  174. package/src/wallet/Base.ts +147 -420
  175. package/src/wallet/Cashtokens.test.headless.js +11 -11
  176. package/src/wallet/Cashtokens.test.ts +36 -37
  177. package/src/wallet/HDWallet.test.ts +515 -0
  178. package/src/wallet/HDWallet.ts +764 -0
  179. package/src/wallet/Util.ts +1 -1
  180. package/src/wallet/Watch.ts +447 -0
  181. package/src/wallet/Wif.bip39.test.ts +1 -1
  182. package/src/wallet/Wif.test.ts +108 -133
  183. package/src/wallet/Wif.ts +258 -283
  184. package/src/wallet/createWallet.ts +28 -18
  185. package/src/wallet/interface.ts +5 -6
  186. package/src/wallet/model.test.ts +4 -7
  187. package/src/wallet/model.ts +19 -51
  188. package/dist/module/history/electrumTransformer.d.ts.map +0 -1
  189. package/dist/module/history/electrumTransformer.js.map +0 -1
  190. package/dist/module/util/balanceObjectFromSatoshi.d.ts +0 -8
  191. package/dist/module/util/balanceObjectFromSatoshi.d.ts.map +0 -1
  192. package/dist/module/util/balanceObjectFromSatoshi.js +0 -35
  193. package/dist/module/util/balanceObjectFromSatoshi.js.map +0 -1
  194. package/src/util/balanceObjectFromSatoshi.test.ts +0 -58
  195. package/src/util/balanceObjectFromSatoshi.ts +0 -52
@@ -1,10 +1,11 @@
1
1
  import { prefixFromNetworkMap } from "../enum.js";
2
+ import { getNamedWalletId } from "./Base.js";
3
+ import { HDWallet, RegTestHDWallet, TestNetHDWallet } from "./HDWallet.js";
2
4
  import {
3
- getNamedWalletId,
4
5
  RegTestWatchWallet,
5
6
  TestNetWatchWallet,
6
7
  WatchWallet,
7
- } from "./Base.js";
8
+ } from "./Watch.js";
8
9
  import {
9
10
  RegTestWallet,
10
11
  RegTestWifWallet,
@@ -50,6 +51,17 @@ export const walletClassMap = {
50
51
  return RegTestWatchWallet;
51
52
  },
52
53
  },
54
+ hd: {
55
+ mainnet: () => {
56
+ return HDWallet;
57
+ },
58
+ testnet: () => {
59
+ return TestNetHDWallet;
60
+ },
61
+ regtest: () => {
62
+ return RegTestHDWallet;
63
+ },
64
+ },
53
65
  };
54
66
 
55
67
  /**
@@ -104,7 +116,7 @@ export async function namedWallet(
104
116
  wallet = await walletClassMap[walletType][networkType]().named(name);
105
117
  checkWalletTypeAndNetwork(wallet, walletType, networkType);
106
118
  } else {
107
- let walletId = await getNamedWalletId(name, dbName);
119
+ const walletId = await getNamedWalletId(name, dbName);
108
120
  if (walletId !== undefined) {
109
121
  wallet = await walletFromId(walletId);
110
122
  wallet.name = name;
@@ -148,21 +160,20 @@ export async function replaceNamedWallet(body): Promise<Wallet> {
148
160
  * @returns A promise to a new wallet object
149
161
  */
150
162
  export async function createWallet(body: WalletRequestI): Promise<Wallet> {
151
- let wallet;
152
- let walletType = body.type ? body.type : "seed";
153
- let networkType = body.network ? body.network : "mainnet";
163
+ const walletType = body.type ? body.type : "seed";
164
+ const networkType = body.network ? body.network : "mainnet";
154
165
 
155
166
  // Named wallets are saved in the database
156
167
  if (body.name && body.name.length > 0) {
157
- wallet = await namedWallet(body.name, walletType, networkType);
168
+ const wallet = await namedWallet(body.name, walletType, networkType);
158
169
  return wallet;
159
170
  }
160
171
  // This handles unsaved/unnamed wallets
161
172
  else {
162
- let walletClass = walletClassMap[walletType][networkType]();
163
- wallet = await new walletClass();
173
+ const walletClass = walletClassMap[walletType][networkType]();
174
+ const wallet = new walletClass();
164
175
  wallet.walletType = walletType;
165
- return wallet.generate();
176
+ return wallet.initialize();
166
177
  }
167
178
  }
168
179
 
@@ -174,7 +185,7 @@ export async function createWallet(body: WalletRequestI): Promise<Wallet> {
174
185
  export async function createWalletResponse(
175
186
  walletRequest: WalletRequestI
176
187
  ): Promise<WalletResponseI> {
177
- let wallet = await createWallet(walletRequest);
188
+ const wallet = await createWallet(walletRequest);
178
189
  if (wallet) {
179
190
  return asJsonResponse(wallet);
180
191
  } else {
@@ -212,17 +223,16 @@ function asJsonResponse(wallet: Wallet): WalletResponseI {
212
223
  * @returns A wallet
213
224
  */
214
225
  export async function walletFromId(walletId: string): Promise<any> {
215
- let [walletType, network, name]: string[] = walletId.split(":");
226
+ const [walletType, network, name]: string[] = walletId.split(":");
216
227
 
217
228
  if (walletType === "named") {
218
229
  return await namedWallet(name, walletType, network);
219
230
  }
220
- let walletRequest = {
221
- name: "",
222
- network: network,
223
- type: walletType,
224
- } as WalletRequestI;
225
- let wallet = await createWallet(walletRequest);
231
+
232
+ const walletClass = walletClassMap[walletType][network]();
233
+ const wallet = new walletClass();
234
+ wallet.walletType = walletType;
235
+
226
236
  await (wallet as any).fromId(walletId);
227
237
  return wallet;
228
238
  }
@@ -1,8 +1,7 @@
1
1
  import { WalletTypeEnum, FeePaidByEnum } from "./enum.js";
2
2
  import { NetworkEnum } from "../enum.js";
3
3
  import { ElectrumRawTransaction } from "../network/interface.js";
4
- import { BalanceResponse } from "../util/balanceObjectFromSatoshi.js";
5
- import { UtxoI } from "../interface.js";
4
+ import { Utxo } from "../interface.js";
6
5
 
7
6
  export interface WalletRequestI {
8
7
  name?: string;
@@ -44,7 +43,7 @@ export interface WalletInfoI {
44
43
  }
45
44
 
46
45
  export interface SendRequestOptionsI {
47
- utxoIds?: string[] | UtxoI[];
46
+ utxoIds?: string[] | Utxo[];
48
47
  changeAddress?: string;
49
48
  slpSemiAware?: boolean; // a flag which requires an utxo to have more than 546 sats to be spendable and counted in the balance
50
49
  queryBalance?: boolean;
@@ -52,7 +51,7 @@ export interface SendRequestOptionsI {
52
51
  feePaidBy?: FeePaidByEnum;
53
52
  checkTokenQuantities?: boolean; // true
54
53
  tokenOperation?: "send" | "genesis" | "mint" | "burn"; // undefined. internal use only
55
- ensureUtxos?: UtxoI[]; // ensure these inputs will be consumed in the transaction
54
+ ensureUtxos?: Utxo[]; // ensure these inputs will be consumed in the transaction
56
55
  buildUnsigned?: boolean; // false
57
56
  }
58
57
 
@@ -83,7 +82,7 @@ export interface WalletI {
83
82
  // namedExists(name: string, dbName?: string): Promise<boolean>;
84
83
 
85
84
  // Funds
86
- getBalance(rawUnit?: any): Promise<any>;
85
+ getBalance(): Promise<any>;
87
86
  getMaxAmountToSend(params?: any): Promise<any>;
88
87
  send(requests: any, options?: any): Promise<any>;
89
88
  sendMax(address: string, options?: any): Promise<any>;
@@ -97,7 +96,7 @@ export interface WaitForTransactionOptions {
97
96
 
98
97
  export interface WaitForTransactionResponse {
99
98
  transactionInfo?: ElectrumRawTransaction;
100
- balance?: BalanceResponse;
99
+ balance?: bigint;
101
100
  }
102
101
 
103
102
  export type CancelFn = () => Promise<void>;
@@ -1,27 +1,24 @@
1
- import { UtxoI } from "../interface";
1
+ import { UtxoId } from "../interface";
2
2
  import { fromUtxoId, toUtxoId } from "./model";
3
3
 
4
4
  test("Should serialize utxo", () => {
5
5
  const utxo = toUtxoId({
6
6
  txid: "this",
7
7
  vout: 42,
8
- satoshis: 1,
9
8
  }).toString();
10
- expect(utxo).toBe("this:42:1");
9
+ expect(utxo).toBe("this:42");
11
10
  });
12
11
 
13
12
  test("Should deserialize utxo", () => {
14
13
  const utxo = fromUtxoId("this:42:1");
15
14
  expect(utxo.txid).toBe("this");
16
15
  expect(utxo.vout).toBe(42);
17
- expect(utxo.satoshis).toBe(1);
18
16
  });
19
17
 
20
18
  test("Should deserialize utxo", () => {
21
19
  const u = {
22
20
  txid: "this",
23
21
  vout: 42,
24
- satoshis: 1,
25
- } as UtxoI;
26
- expect(toUtxoId(u)).toBe("this:42:1");
22
+ } as UtxoId;
23
+ expect(toUtxoId(u)).toBe("this:42");
27
24
  });
@@ -1,7 +1,4 @@
1
- import { BalanceResponse } from "../util/balanceObjectFromSatoshi.js";
2
- import { sanitizeUnit } from "../util/sanitizeUnit.js";
3
- import { UnitEnum } from "../enum.js";
4
- import { NFTCapability, UtxoI } from "../interface.js";
1
+ import { NFTCapability, UtxoId } from "../interface.js";
5
2
  import { DELIMITER } from "../constant.js";
6
3
  import {
7
4
  Input,
@@ -28,21 +25,11 @@ export type SendRequestType =
28
25
 
29
26
  export class SendRequest {
30
27
  cashaddr: string;
31
- value: number;
32
- unit: UnitEnum;
28
+ value: bigint;
33
29
 
34
- constructor({
35
- cashaddr,
36
- value,
37
- unit,
38
- }: {
39
- cashaddr: string;
40
- value: number;
41
- unit: UnitEnum;
42
- }) {
30
+ constructor({ cashaddr, value }: { cashaddr: string; value: bigint }) {
43
31
  this.cashaddr = cashaddr;
44
- this.value = value;
45
- this.unit = sanitizeUnit(unit);
32
+ this.value = BigInt(value);
46
33
  }
47
34
  }
48
35
 
@@ -51,7 +38,7 @@ export class TokenGenesisRequest {
51
38
  capability?: NFTCapability;
52
39
  commitment?: string;
53
40
  cashaddr?: string;
54
- value?: number; // satoshi value
41
+ value?: bigint; // satoshi value
55
42
 
56
43
  constructor({
57
44
  amount,
@@ -64,7 +51,7 @@ export class TokenGenesisRequest {
64
51
  capability?: NFTCapability;
65
52
  commitment?: string;
66
53
  cashaddr?: string;
67
- value?: number;
54
+ value?: bigint;
68
55
  }) {
69
56
  this.amount = amount;
70
57
  this.capability = capability;
@@ -104,7 +91,7 @@ export class TokenBurnRequest {
104
91
 
105
92
  export class TokenSendRequest {
106
93
  cashaddr: string; // cashaddr or tokenaddr to send tokens to
107
- value?: number; // satoshi value
94
+ value?: bigint; // satoshi value
108
95
  amount: bigint; // fungible token amount
109
96
  tokenId: string;
110
97
  capability?: NFTCapability;
@@ -119,8 +106,8 @@ export class TokenSendRequest {
119
106
  commitment,
120
107
  }: {
121
108
  cashaddr: string;
122
- value?: number;
123
- amount?: number | bigint;
109
+ value?: bigint;
110
+ amount?: bigint;
124
111
  tokenId: string;
125
112
  capability?: NFTCapability;
126
113
  commitment?: string;
@@ -140,7 +127,7 @@ export class TokenMintRequest {
140
127
  capability?: NFTCapability;
141
128
  commitment?: string;
142
129
  cashaddr?: string;
143
- value?: number;
130
+ value?: bigint;
144
131
 
145
132
  constructor({
146
133
  capability,
@@ -151,7 +138,7 @@ export class TokenMintRequest {
151
138
  capability?: NFTCapability;
152
139
  commitment?: string;
153
140
  cashaddr?: string;
154
- value?: number;
141
+ value?: bigint;
155
142
  }) {
156
143
  this.capability = capability;
157
144
  this.commitment = commitment;
@@ -294,13 +281,13 @@ export class OpReturnData {
294
281
  }
295
282
  }
296
283
 
297
- export type SendRequestArray = Array<string | number | UnitEnum | Uint8Array>;
284
+ export type SendRequestArray = Array<string | bigint | Uint8Array>;
298
285
 
299
286
  export type SourceOutput = Input & Output;
300
287
 
301
288
  export class SendResponse {
302
289
  txId?: string;
303
- balance?: BalanceResponse;
290
+ balance?: bigint;
304
291
  explorerUrl?: string;
305
292
  tokenIds?: string[];
306
293
  unsignedTransaction?: string; // unsigned transaction hex
@@ -343,34 +330,15 @@ export class XPubKey {
343
330
  }
344
331
  }
345
332
 
346
- export const fromUtxoId = (utxoId: string): UtxoI => {
347
- const [txid, vout, satoshis, tokenId, amount, capability, commitment] =
348
- utxoId.split(DELIMITER);
333
+ export const fromUtxoId = (utxoId: string): UtxoId => {
334
+ const [txid, vout, satoshis] = utxoId.split(DELIMITER);
349
335
  return {
350
- satoshis: satoshis ? parseInt(satoshis) : 0,
336
+ satoshis: satoshis ? BigInt(parseInt(satoshis)) : 0n,
351
337
  vout: parseInt(vout),
352
338
  txid,
353
- token: tokenId
354
- ? {
355
- tokenId,
356
- amount: BigInt(amount),
357
- capability: capability || undefined,
358
- commitment: commitment || undefined,
359
- }
360
- : undefined,
361
- } as UtxoI;
339
+ } as UtxoId;
362
340
  };
363
341
 
364
- export const toUtxoId = (utxo: UtxoI): string => {
365
- return [
366
- utxo.txid,
367
- utxo.vout,
368
- utxo.satoshis,
369
- utxo.token?.tokenId,
370
- utxo.token?.amount,
371
- utxo.token?.capability,
372
- utxo.token?.commitment,
373
- ]
374
- .join(DELIMITER)
375
- .replace(/:+$/, "");
342
+ export const toUtxoId = (utxo: UtxoId): string => {
343
+ return [utxo.txid, utxo.vout].join(DELIMITER).replace(/:+$/, "");
376
344
  };
@@ -1 +0,0 @@
1
- {"version":3,"file":"electrumTransformer.d.ts","sourceRoot":"","sources":["../../../src/history/electrumTransformer.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAG5D,OAAO,EAAE,sBAAsB,EAAY,MAAM,gBAAgB,CAAC;AASlE,eAAO,MAAM,iBAAiB,qEAQ3B;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,eAAe,CAAC;IAC1B,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,KAAG,OAAO,CAAC,sBAAsB,EAAE,CAkTnC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"electrumTransformer.js","sourceRoot":"","sources":["../../../src/history/electrumTransformer.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- export interface BalanceResponse {
2
- bch: number;
3
- sat: number;
4
- [currency: string]: number;
5
- }
6
- export declare function balanceResponseFromSatoshi(value: number, priceCache?: boolean): Promise<BalanceResponse>;
7
- export declare function balanceFromSatoshi(value: number, rawUnit: string, priceCache?: boolean): Promise<number>;
8
- //# sourceMappingURL=balanceObjectFromSatoshi.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"balanceObjectFromSatoshi.d.ts","sourceRoot":"","sources":["../../../src/util/balanceObjectFromSatoshi.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5B;AAED,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE,MAAM,EACb,UAAU,GAAE,OAAc,GACzB,OAAO,CAAC,eAAe,CAAC,CAU1B;AAED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,UAAU,GAAE,OAAc,GACzB,OAAO,CAAC,MAAM,CAAC,CAmBjB"}
@@ -1,35 +0,0 @@
1
- import { bchParam } from "../chain.js";
2
- import { UnitEnum } from "../enum.js";
3
- import { floor } from "./floor.js";
4
- import { ExchangeRate } from "../rate/ExchangeRate.js";
5
- import { sanitizeUnit } from "./sanitizeUnit.js";
6
- import { Config } from "../config.js";
7
- export async function balanceResponseFromSatoshi(value, priceCache = true) {
8
- const response = {};
9
- response.bch = value / bchParam.subUnits;
10
- response.sat = value;
11
- const currencyValue = (value / bchParam.subUnits) *
12
- (await ExchangeRate.get(Config.DefaultCurrency, priceCache));
13
- response[Config.DefaultCurrency] = floor(currencyValue, 2);
14
- return response;
15
- }
16
- export async function balanceFromSatoshi(value, rawUnit, priceCache = true) {
17
- const unit = sanitizeUnit(rawUnit);
18
- switch (unit) {
19
- case UnitEnum.BCH:
20
- return value / bchParam.subUnits;
21
- case UnitEnum.SAT:
22
- return value;
23
- case UnitEnum.SATS:
24
- return value;
25
- case UnitEnum.SATOSHI:
26
- return value;
27
- case UnitEnum.SATOSHIS:
28
- return value;
29
- default:
30
- const currencyValue = (value / bchParam.subUnits) *
31
- (await ExchangeRate.get(Config.DefaultCurrency, priceCache));
32
- return Number(currencyValue.toFixed(2));
33
- }
34
- }
35
- //# sourceMappingURL=balanceObjectFromSatoshi.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"balanceObjectFromSatoshi.js","sourceRoot":"","sources":["../../../src/util/balanceObjectFromSatoshi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAQtC,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,KAAa,EACb,aAAsB,IAAI;IAE1B,MAAM,QAAQ,GAAG,EAAqB,CAAC;IAEvC,QAAQ,CAAC,GAAG,GAAG,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC;IACzC,QAAQ,CAAC,GAAG,GAAG,KAAK,CAAC;IACrB,MAAM,aAAa,GACjB,CAAC,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAC3B,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC;IAC/D,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IAC3D,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,KAAa,EACb,OAAe,EACf,aAAsB,IAAI;IAE1B,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACnC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ,CAAC,GAAG;YACf,OAAO,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC;QACnC,KAAK,QAAQ,CAAC,GAAG;YACf,OAAO,KAAK,CAAC;QACf,KAAK,QAAQ,CAAC,IAAI;YAChB,OAAO,KAAK,CAAC;QACf,KAAK,QAAQ,CAAC,OAAO;YACnB,OAAO,KAAK,CAAC;QACf,KAAK,QAAQ,CAAC,QAAQ;YACpB,OAAO,KAAK,CAAC;QACf;YACE,MAAM,aAAa,GACjB,CAAC,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC;gBAC3B,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC;YAC/D,OAAO,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC"}
@@ -1,58 +0,0 @@
1
- import { Config } from "../config";
2
- import { bchParam } from "../chain";
3
- import { balanceResponseFromSatoshi } from "./balanceObjectFromSatoshi";
4
- import { balanceFromSatoshi } from "./balanceObjectFromSatoshi";
5
-
6
- test("Get balanceResponse from 1 bch in satoshi", async () => {
7
- let bal = await balanceResponseFromSatoshi(100000000);
8
- expect(bal.bch).toBe(1);
9
- expect(bal.sat).toBe(bchParam.subUnits);
10
- });
11
-
12
- test("Get balanceResponse from 0", async () => {
13
- let bal = await balanceResponseFromSatoshi(0);
14
- expect(bal.bch).toBe(0);
15
- expect(bal.sat).toBe(0);
16
- expect(bal.usd).toBe(0);
17
- });
18
-
19
- test("Get balanceResponse from 1 bch in eur", async () => {
20
- Config.DefaultCurrency = "eur";
21
- let bal = await balanceResponseFromSatoshi(100000000);
22
- expect(bal.bch).toBe(1);
23
- expect(bal.sat).toBe(bchParam.subUnits);
24
- expect(bal.eur).toBeGreaterThan(0);
25
- Config.DefaultCurrency = "usd";
26
- });
27
-
28
- test("Get balanceResponse from 1 satoshi", async () => {
29
- let bal = await balanceResponseFromSatoshi(110000000);
30
- expect(bal.bch).toBe(1.1);
31
- expect(bal.sat).toBe(110000000);
32
- expect(bal.usd!.toString()).toMatch(/\d+\.?\d{1,2}/);
33
- });
34
-
35
- test("Get balanceResponse from 1 sat", async () => {
36
- let val = await balanceFromSatoshi(1, "sat");
37
- expect(val).toBe(1);
38
- });
39
-
40
- test("Get balanceResponse from 1 sats", async () => {
41
- let val = await balanceFromSatoshi(1, "sats");
42
- expect(val).toBe(1);
43
- });
44
-
45
- test("Get balanceResponse from 1 satoshi", async () => {
46
- let val = await balanceFromSatoshi(1, "satoshi");
47
- expect(val).toBe(1);
48
- });
49
-
50
- test("Get balanceResponse from 1 satoshis", async () => {
51
- let val = await balanceFromSatoshi(1, "satoshis");
52
- expect(val).toBe(1);
53
- });
54
-
55
- test("Get balanceResponse from 1 bch", async () => {
56
- let val = await balanceFromSatoshi(bchParam.subUnits, "bch");
57
- expect(val).toBe(1);
58
- });
@@ -1,52 +0,0 @@
1
- import { bchParam } from "../chain.js";
2
- import { UnitEnum } from "../enum.js";
3
- import { floor } from "./floor.js";
4
- import { ExchangeRate } from "../rate/ExchangeRate.js";
5
- import { sanitizeUnit } from "./sanitizeUnit.js";
6
- import { Config } from "../config.js";
7
-
8
- export interface BalanceResponse {
9
- bch: number;
10
- sat: number;
11
- [currency: string]: number;
12
- }
13
-
14
- export async function balanceResponseFromSatoshi(
15
- value: number,
16
- priceCache: boolean = true
17
- ): Promise<BalanceResponse> {
18
- const response = {} as BalanceResponse;
19
-
20
- response.bch = value / bchParam.subUnits;
21
- response.sat = value;
22
- const currencyValue =
23
- (value / bchParam.subUnits) *
24
- (await ExchangeRate.get(Config.DefaultCurrency, priceCache));
25
- response[Config.DefaultCurrency] = floor(currencyValue, 2);
26
- return response;
27
- }
28
-
29
- export async function balanceFromSatoshi(
30
- value: number,
31
- rawUnit: string,
32
- priceCache: boolean = true
33
- ): Promise<number> {
34
- const unit = sanitizeUnit(rawUnit);
35
- switch (unit) {
36
- case UnitEnum.BCH:
37
- return value / bchParam.subUnits;
38
- case UnitEnum.SAT:
39
- return value;
40
- case UnitEnum.SATS:
41
- return value;
42
- case UnitEnum.SATOSHI:
43
- return value;
44
- case UnitEnum.SATOSHIS:
45
- return value;
46
- default:
47
- const currencyValue =
48
- (value / bchParam.subUnits) *
49
- (await ExchangeRate.get(Config.DefaultCurrency, priceCache));
50
- return Number(currencyValue.toFixed(2));
51
- }
52
- }