mainnet-js 3.0.0-next.0 → 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.
- package/dist/index.html +1 -1
- package/dist/{mainnet-3.0.0-next.0.js → mainnet-3.0.0-next.1.js} +21 -41
- package/dist/module/cache/walletCache.d.ts +10 -4
- package/dist/module/cache/walletCache.d.ts.map +1 -1
- package/dist/module/cache/walletCache.js +12 -13
- package/dist/module/cache/walletCache.js.map +1 -1
- package/dist/module/chain.d.ts +1 -1
- package/dist/module/chain.js +1 -1
- package/dist/module/chain.js.map +1 -1
- package/dist/module/constant.d.ts +1 -1
- package/dist/module/constant.d.ts.map +1 -1
- package/dist/module/constant.js +1 -1
- package/dist/module/constant.js.map +1 -1
- package/dist/module/enum.d.ts +1 -7
- package/dist/module/enum.d.ts.map +1 -1
- package/dist/module/enum.js +0 -6
- package/dist/module/enum.js.map +1 -1
- package/dist/module/history/getHistory.d.ts.map +1 -1
- package/dist/module/history/getHistory.js +0 -30
- package/dist/module/history/getHistory.js.map +1 -1
- package/dist/module/interface.d.ts +1 -2
- package/dist/module/interface.d.ts.map +1 -1
- package/dist/module/interface.js.map +1 -1
- package/dist/module/network/ElectrumNetworkProvider.js +1 -1
- package/dist/module/network/ElectrumNetworkProvider.js.map +1 -1
- package/dist/module/network/getRelayFeeCache.js +2 -2
- package/dist/module/network/getRelayFeeCache.js.map +1 -1
- package/dist/module/rate/ExchangeRate.d.ts +2 -1
- package/dist/module/rate/ExchangeRate.d.ts.map +1 -1
- package/dist/module/rate/ExchangeRate.js +4 -1
- package/dist/module/rate/ExchangeRate.js.map +1 -1
- package/dist/module/transaction/Wif.d.ts +9 -9
- package/dist/module/transaction/Wif.d.ts.map +1 -1
- package/dist/module/transaction/Wif.js +11 -13
- package/dist/module/transaction/Wif.js.map +1 -1
- package/dist/module/transaction/allocateFee.d.ts +3 -3
- package/dist/module/transaction/allocateFee.d.ts.map +1 -1
- package/dist/module/transaction/allocateFee.js +5 -6
- package/dist/module/transaction/allocateFee.js.map +1 -1
- package/dist/module/util/amountInSatoshi.d.ts +1 -1
- package/dist/module/util/amountInSatoshi.d.ts.map +1 -1
- package/dist/module/util/amountInSatoshi.js +3 -9
- package/dist/module/util/amountInSatoshi.js.map +1 -1
- package/dist/module/util/asSendRequestObject.d.ts.map +1 -1
- package/dist/module/util/asSendRequestObject.js +10 -7
- package/dist/module/util/asSendRequestObject.js.map +1 -1
- package/dist/module/util/convert.d.ts +3 -0
- package/dist/module/util/convert.d.ts.map +1 -1
- package/dist/module/util/convert.js +12 -0
- package/dist/module/util/convert.js.map +1 -1
- package/dist/module/util/index.d.ts +2 -3
- package/dist/module/util/index.d.ts.map +1 -1
- package/dist/module/util/index.js +2 -3
- package/dist/module/util/index.js.map +1 -1
- package/dist/module/util/satoshiToAmount.d.ts +1 -1
- package/dist/module/util/satoshiToAmount.d.ts.map +1 -1
- package/dist/module/util/satoshiToAmount.js +3 -9
- package/dist/module/util/satoshiToAmount.js.map +1 -1
- package/dist/module/util/sumSendRequestAmounts.d.ts.map +1 -1
- package/dist/module/util/sumSendRequestAmounts.js +3 -4
- package/dist/module/util/sumSendRequestAmounts.js.map +1 -1
- package/dist/module/util/sumUtxoValue.d.ts +1 -1
- package/dist/module/util/sumUtxoValue.js +2 -2
- package/dist/module/util/sumUtxoValue.js.map +1 -1
- package/dist/module/wallet/Base.d.ts +10 -12
- package/dist/module/wallet/Base.d.ts.map +1 -1
- package/dist/module/wallet/Base.js +18 -50
- package/dist/module/wallet/Base.js.map +1 -1
- package/dist/module/wallet/Util.js +1 -1
- package/dist/module/wallet/Util.js.map +1 -1
- package/dist/module/wallet/interface.d.ts +2 -3
- package/dist/module/wallet/interface.d.ts.map +1 -1
- package/dist/module/wallet/model.d.ts +12 -16
- package/dist/module/wallet/model.d.ts.map +1 -1
- package/dist/module/wallet/model.js +4 -8
- package/dist/module/wallet/model.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/cache/walletCache.ts +23 -36
- package/src/chain.ts +1 -1
- package/src/constant.ts +1 -1
- package/src/enum.ts +0 -6
- package/src/history/getHistory.test.ts +20 -34
- package/src/history/getHistory.ts +0 -32
- package/src/interface.ts +1 -2
- package/src/network/Connection.test.ts +3 -3
- package/src/network/ElectrumNetworkProvider.ts +1 -1
- package/src/network/Rpc.test.ts +2 -3
- package/src/network/getRelayFeeCache.ts +2 -2
- package/src/rate/ExchangeRate.test.ts +2 -44
- package/src/rate/ExchangeRate.ts +5 -2
- package/src/transaction/Wif.ts +24 -23
- package/src/transaction/allocateFee.test.ts +110 -131
- package/src/transaction/allocateFee.ts +14 -15
- package/src/util/amountInSatoshi.test.ts +1 -9
- package/src/util/amountInSatoshi.ts +6 -10
- package/src/util/asSendRequestObject.ts +12 -7
- package/src/util/convert.ts +18 -0
- package/src/util/index.ts +2 -7
- package/src/util/satoshiToAmount.test.ts +1 -1
- package/src/util/satoshiToAmount.ts +4 -10
- package/src/util/sumSendRequestAmounts.ts +3 -4
- package/src/util/sumUtxoValue.ts +3 -3
- package/src/wallet/Base.ts +28 -92
- package/src/wallet/Cashtokens.test.headless.js +11 -11
- package/src/wallet/Cashtokens.test.ts +36 -37
- package/src/wallet/HDWallet.test.ts +211 -68
- package/src/wallet/Util.ts +1 -1
- package/src/wallet/Wif.test.ts +108 -133
- package/src/wallet/interface.ts +2 -3
- package/src/wallet/model.test.ts +2 -5
- package/src/wallet/model.ts +15 -30
- package/dist/module/util/balanceObjectFromSatoshi.d.ts +0 -8
- package/dist/module/util/balanceObjectFromSatoshi.d.ts.map +0 -1
- package/dist/module/util/balanceObjectFromSatoshi.js +0 -35
- package/dist/module/util/balanceObjectFromSatoshi.js.map +0 -1
- package/src/util/balanceObjectFromSatoshi.test.ts +0 -58
- package/src/util/balanceObjectFromSatoshi.ts +0 -52
package/src/wallet/model.ts
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { sanitizeUnit } from "../util/sanitizeUnit.js";
|
|
3
|
-
import { UnitEnum } from "../enum.js";
|
|
4
|
-
import { NFTCapability, Utxo, UtxoId } 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:
|
|
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?:
|
|
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?:
|
|
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?:
|
|
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?:
|
|
123
|
-
amount?:
|
|
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?:
|
|
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?:
|
|
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 |
|
|
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?:
|
|
290
|
+
balance?: bigint;
|
|
304
291
|
explorerUrl?: string;
|
|
305
292
|
tokenIds?: string[];
|
|
306
293
|
unsignedTransaction?: string; // unsigned transaction hex
|
|
@@ -346,14 +333,12 @@ export class XPubKey {
|
|
|
346
333
|
export const fromUtxoId = (utxoId: string): UtxoId => {
|
|
347
334
|
const [txid, vout, satoshis] = utxoId.split(DELIMITER);
|
|
348
335
|
return {
|
|
349
|
-
satoshis: satoshis ? parseInt(satoshis) :
|
|
336
|
+
satoshis: satoshis ? BigInt(parseInt(satoshis)) : 0n,
|
|
350
337
|
vout: parseInt(vout),
|
|
351
338
|
txid,
|
|
352
339
|
} as UtxoId;
|
|
353
340
|
};
|
|
354
341
|
|
|
355
342
|
export const toUtxoId = (utxo: UtxoId): string => {
|
|
356
|
-
return [utxo.txid, utxo.vout
|
|
357
|
-
.join(DELIMITER)
|
|
358
|
-
.replace(/:+$/, "");
|
|
343
|
+
return [utxo.txid, utxo.vout].join(DELIMITER).replace(/:+$/, "");
|
|
359
344
|
};
|
|
@@ -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
|
-
}
|