@ledgerhq/coin-canton 0.5.0-nightly.4 → 0.5.0-nightly.6
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/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +20 -0
- package/lib/api/getBalance.integ.test.js +1 -1
- package/lib/api/getBalance.integ.test.js.map +1 -1
- package/lib/api/index.d.ts.map +1 -1
- package/lib/api/index.js +20 -28
- package/lib/api/index.js.map +1 -1
- package/lib/api/lastBlock.integ.test.js +1 -1
- package/lib/api/lastBlock.integ.test.js.map +1 -1
- package/lib/api/listOperations.integ.test.js +1 -1
- package/lib/api/listOperations.integ.test.js.map +1 -1
- package/lib/bridge/broadcast.d.ts.map +1 -1
- package/lib/bridge/broadcast.js +2 -2
- package/lib/bridge/broadcast.js.map +1 -1
- package/lib/bridge/broadcast.test.js +9 -0
- package/lib/bridge/broadcast.test.js.map +1 -1
- package/lib/bridge/createTransaction.js +1 -1
- package/lib/bridge/createTransaction.js.map +1 -1
- package/lib/bridge/getTransactionStatus.js +1 -1
- package/lib/bridge/getTransactionStatus.js.map +1 -1
- package/lib/bridge/onboard.d.ts +4 -3
- package/lib/bridge/onboard.d.ts.map +1 -1
- package/lib/bridge/onboard.integ.test.js +11 -8
- package/lib/bridge/onboard.integ.test.js.map +1 -1
- package/lib/bridge/onboard.js +24 -16
- package/lib/bridge/onboard.js.map +1 -1
- package/lib/bridge/prepareTransaction.js +1 -1
- package/lib/bridge/prepareTransaction.js.map +1 -1
- package/lib/bridge/signOperation.d.ts.map +1 -1
- package/lib/bridge/signOperation.js +10 -5
- package/lib/bridge/signOperation.js.map +1 -1
- package/lib/bridge/sync.d.ts.map +1 -1
- package/lib/bridge/sync.js +28 -20
- package/lib/bridge/sync.js.map +1 -1
- package/lib/common-logic/account/getBalance.d.ts +2 -1
- package/lib/common-logic/account/getBalance.d.ts.map +1 -1
- package/lib/common-logic/account/getBalance.js +7 -7
- package/lib/common-logic/account/getBalance.js.map +1 -1
- package/lib/common-logic/account/getBalance.unit.test.js +6 -3
- package/lib/common-logic/account/getBalance.unit.test.js.map +1 -1
- package/lib/common-logic/history/lastBlock.d.ts +2 -1
- package/lib/common-logic/history/lastBlock.d.ts.map +1 -1
- package/lib/common-logic/history/lastBlock.js +3 -3
- package/lib/common-logic/history/lastBlock.js.map +1 -1
- package/lib/common-logic/history/lastBlock.test.js +5 -2
- package/lib/common-logic/history/lastBlock.test.js.map +1 -1
- package/lib/common-logic/history/listOperations.d.ts +2 -1
- package/lib/common-logic/history/listOperations.d.ts.map +1 -1
- package/lib/common-logic/history/listOperations.js +2 -2
- package/lib/common-logic/history/listOperations.js.map +1 -1
- package/lib/common-logic/transaction/broadcast.d.ts +2 -1
- package/lib/common-logic/transaction/broadcast.d.ts.map +1 -1
- package/lib/common-logic/transaction/broadcast.js +4 -4
- package/lib/common-logic/transaction/broadcast.js.map +1 -1
- package/lib/common-logic/transaction/broadcast.test.js +6 -3
- package/lib/common-logic/transaction/broadcast.test.js.map +1 -1
- package/lib/common-logic/transaction/craftTransaction.d.ts +3 -1
- package/lib/common-logic/transaction/craftTransaction.d.ts.map +1 -1
- package/lib/common-logic/transaction/craftTransaction.js +8 -4
- package/lib/common-logic/transaction/craftTransaction.js.map +1 -1
- package/lib/common-logic/transaction/estimateFees.d.ts +2 -1
- package/lib/common-logic/transaction/estimateFees.d.ts.map +1 -1
- package/lib/common-logic/transaction/estimateFees.js +3 -4
- package/lib/common-logic/transaction/estimateFees.js.map +1 -1
- package/lib/network/gateway.d.ts +24 -14
- package/lib/network/gateway.d.ts.map +1 -1
- package/lib/network/gateway.integ.test.js +17 -14
- package/lib/network/gateway.integ.test.js.map +1 -1
- package/lib/network/gateway.js +33 -33
- package/lib/network/gateway.js.map +1 -1
- package/lib/types/bridge.d.ts +5 -2
- package/lib/types/bridge.d.ts.map +1 -1
- package/lib-es/api/getBalance.integ.test.js +1 -1
- package/lib-es/api/getBalance.integ.test.js.map +1 -1
- package/lib-es/api/index.d.ts.map +1 -1
- package/lib-es/api/index.js +19 -27
- package/lib-es/api/index.js.map +1 -1
- package/lib-es/api/lastBlock.integ.test.js +1 -1
- package/lib-es/api/lastBlock.integ.test.js.map +1 -1
- package/lib-es/api/listOperations.integ.test.js +1 -1
- package/lib-es/api/listOperations.integ.test.js.map +1 -1
- package/lib-es/bridge/broadcast.d.ts.map +1 -1
- package/lib-es/bridge/broadcast.js +2 -2
- package/lib-es/bridge/broadcast.js.map +1 -1
- package/lib-es/bridge/broadcast.test.js +9 -0
- package/lib-es/bridge/broadcast.test.js.map +1 -1
- package/lib-es/bridge/createTransaction.js +1 -1
- package/lib-es/bridge/createTransaction.js.map +1 -1
- package/lib-es/bridge/getTransactionStatus.js +1 -1
- package/lib-es/bridge/getTransactionStatus.js.map +1 -1
- package/lib-es/bridge/onboard.d.ts +4 -3
- package/lib-es/bridge/onboard.d.ts.map +1 -1
- package/lib-es/bridge/onboard.integ.test.js +11 -8
- package/lib-es/bridge/onboard.integ.test.js.map +1 -1
- package/lib-es/bridge/onboard.js +24 -16
- package/lib-es/bridge/onboard.js.map +1 -1
- package/lib-es/bridge/prepareTransaction.js +1 -1
- package/lib-es/bridge/prepareTransaction.js.map +1 -1
- package/lib-es/bridge/signOperation.d.ts.map +1 -1
- package/lib-es/bridge/signOperation.js +10 -5
- package/lib-es/bridge/signOperation.js.map +1 -1
- package/lib-es/bridge/sync.d.ts.map +1 -1
- package/lib-es/bridge/sync.js +28 -20
- package/lib-es/bridge/sync.js.map +1 -1
- package/lib-es/common-logic/account/getBalance.d.ts +2 -1
- package/lib-es/common-logic/account/getBalance.d.ts.map +1 -1
- package/lib-es/common-logic/account/getBalance.js +7 -7
- package/lib-es/common-logic/account/getBalance.js.map +1 -1
- package/lib-es/common-logic/account/getBalance.unit.test.js +6 -3
- package/lib-es/common-logic/account/getBalance.unit.test.js.map +1 -1
- package/lib-es/common-logic/history/lastBlock.d.ts +2 -1
- package/lib-es/common-logic/history/lastBlock.d.ts.map +1 -1
- package/lib-es/common-logic/history/lastBlock.js +3 -3
- package/lib-es/common-logic/history/lastBlock.js.map +1 -1
- package/lib-es/common-logic/history/lastBlock.test.js +5 -2
- package/lib-es/common-logic/history/lastBlock.test.js.map +1 -1
- package/lib-es/common-logic/history/listOperations.d.ts +2 -1
- package/lib-es/common-logic/history/listOperations.d.ts.map +1 -1
- package/lib-es/common-logic/history/listOperations.js +2 -2
- package/lib-es/common-logic/history/listOperations.js.map +1 -1
- package/lib-es/common-logic/transaction/broadcast.d.ts +2 -1
- package/lib-es/common-logic/transaction/broadcast.d.ts.map +1 -1
- package/lib-es/common-logic/transaction/broadcast.js +4 -4
- package/lib-es/common-logic/transaction/broadcast.js.map +1 -1
- package/lib-es/common-logic/transaction/broadcast.test.js +6 -3
- package/lib-es/common-logic/transaction/broadcast.test.js.map +1 -1
- package/lib-es/common-logic/transaction/craftTransaction.d.ts +3 -1
- package/lib-es/common-logic/transaction/craftTransaction.d.ts.map +1 -1
- package/lib-es/common-logic/transaction/craftTransaction.js +9 -5
- package/lib-es/common-logic/transaction/craftTransaction.js.map +1 -1
- package/lib-es/common-logic/transaction/estimateFees.d.ts +2 -1
- package/lib-es/common-logic/transaction/estimateFees.d.ts.map +1 -1
- package/lib-es/common-logic/transaction/estimateFees.js +3 -4
- package/lib-es/common-logic/transaction/estimateFees.js.map +1 -1
- package/lib-es/network/gateway.d.ts +24 -14
- package/lib-es/network/gateway.d.ts.map +1 -1
- package/lib-es/network/gateway.integ.test.js +17 -14
- package/lib-es/network/gateway.integ.test.js.map +1 -1
- package/lib-es/network/gateway.js +33 -33
- package/lib-es/network/gateway.js.map +1 -1
- package/lib-es/types/bridge.d.ts +5 -2
- package/lib-es/types/bridge.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/api/getBalance.integ.test.ts +1 -1
- package/src/api/index.ts +22 -51
- package/src/api/lastBlock.integ.test.ts +1 -1
- package/src/api/listOperations.integ.test.ts +1 -1
- package/src/bridge/broadcast.test.ts +11 -0
- package/src/bridge/broadcast.ts +5 -2
- package/src/bridge/createTransaction.ts +1 -1
- package/src/bridge/getTransactionStatus.ts +1 -1
- package/src/bridge/onboard.integ.test.ts +22 -10
- package/src/bridge/onboard.ts +32 -13
- package/src/bridge/prepareTransaction.ts +1 -1
- package/src/bridge/signOperation.ts +20 -7
- package/src/bridge/sync.ts +28 -23
- package/src/common-logic/account/getBalance.ts +12 -7
- package/src/common-logic/account/getBalance.unit.test.ts +8 -3
- package/src/common-logic/history/lastBlock.test.ts +7 -2
- package/src/common-logic/history/lastBlock.ts +5 -3
- package/src/common-logic/history/listOperations.ts +3 -2
- package/src/common-logic/transaction/broadcast.test.ts +8 -3
- package/src/common-logic/transaction/broadcast.ts +6 -3
- package/src/common-logic/transaction/craftTransaction.ts +22 -5
- package/src/common-logic/transaction/estimateFees.ts +5 -4
- package/src/network/gateway.integ.test.ts +29 -11
- package/src/network/gateway.ts +66 -35
- package/src/types/bridge.ts +5 -0
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import coinConfig from "../config";
|
|
2
2
|
import { generateMockKeyPair } from "../test/cantonTestUtils";
|
|
3
3
|
import { getLedgerEnd, prepareOnboarding, getBalance, getOperations, getPartyById, getPartyByPubKey, submitOnboarding, prepareTapRequest, submitTapRequest, preparePreApprovalTransaction, submitPreApprovalTransaction, } from "./gateway";
|
|
4
|
+
const mockCurrency = {
|
|
5
|
+
id: "canton_network",
|
|
6
|
+
};
|
|
4
7
|
describe("gateway (devnet)", () => {
|
|
5
8
|
let onboardedAccount = null;
|
|
6
9
|
beforeAll(async () => {
|
|
@@ -29,7 +32,7 @@ describe("gateway (devnet)", () => {
|
|
|
29
32
|
partyId: "", // set in next test
|
|
30
33
|
};
|
|
31
34
|
// WHEN
|
|
32
|
-
const response = await prepareOnboarding(keyPair.publicKeyHex, "ed25519");
|
|
35
|
+
const response = await prepareOnboarding(mockCurrency, keyPair.publicKeyHex, "ed25519");
|
|
33
36
|
// THEN
|
|
34
37
|
expect(response).toHaveProperty("party_id");
|
|
35
38
|
expect(response).toHaveProperty("party_name");
|
|
@@ -46,10 +49,10 @@ describe("gateway (devnet)", () => {
|
|
|
46
49
|
// GIVEN
|
|
47
50
|
const { keyPair } = getOnboardedAccount();
|
|
48
51
|
const prepareRequest = { public_key: keyPair.publicKeyHex, public_key_type: "ed25519" };
|
|
49
|
-
const prepareResponse = await prepareOnboarding(keyPair.publicKeyHex, "ed25519");
|
|
52
|
+
const prepareResponse = await prepareOnboarding(mockCurrency, keyPair.publicKeyHex, "ed25519");
|
|
50
53
|
const signature = keyPair.sign(prepareResponse.transactions.combined_hash);
|
|
51
54
|
// WHEN
|
|
52
|
-
const response = await submitOnboarding(prepareRequest, prepareResponse, signature);
|
|
55
|
+
const response = await submitOnboarding(mockCurrency, prepareRequest, prepareResponse, signature);
|
|
53
56
|
// Save onboarded account for all tests that need a valid party ID
|
|
54
57
|
onboardedAccount = {
|
|
55
58
|
keyPair,
|
|
@@ -64,14 +67,14 @@ describe("gateway (devnet)", () => {
|
|
|
64
67
|
});
|
|
65
68
|
describe("getLedgerEnd", () => {
|
|
66
69
|
it("should return ledger end", async () => {
|
|
67
|
-
const end = await getLedgerEnd();
|
|
70
|
+
const end = await getLedgerEnd(mockCurrency);
|
|
68
71
|
expect(end).toBeGreaterThanOrEqual(0);
|
|
69
72
|
});
|
|
70
73
|
});
|
|
71
74
|
describe("getBalance", () => {
|
|
72
75
|
it("should return user balance", async () => {
|
|
73
76
|
const { partyId } = getOnboardedAccount();
|
|
74
|
-
const balance = await getBalance(partyId);
|
|
77
|
+
const balance = await getBalance(mockCurrency, partyId);
|
|
75
78
|
expect(balance.length).toBeGreaterThanOrEqual(0);
|
|
76
79
|
if (balance.length > 0) {
|
|
77
80
|
expect(balance[0].amount).toBeGreaterThanOrEqual(0);
|
|
@@ -81,19 +84,19 @@ describe("gateway (devnet)", () => {
|
|
|
81
84
|
});
|
|
82
85
|
describe("getPartyById", () => {
|
|
83
86
|
it.skip("should return party info", async () => {
|
|
84
|
-
const party = await getPartyById("4f2e1485107adf5f");
|
|
87
|
+
const party = await getPartyById(mockCurrency, "4f2e1485107adf5f");
|
|
85
88
|
expect(party).toBeDefined();
|
|
86
89
|
});
|
|
87
90
|
});
|
|
88
91
|
describe("getPartyByPubKey", () => {
|
|
89
92
|
it.skip("should return party info", async () => {
|
|
90
|
-
const party = await getPartyByPubKey("122027c6dbbbdbffe0fa3122ae05175f3b9328e879e9ce96b670354deb64a45683c1");
|
|
93
|
+
const party = await getPartyByPubKey(mockCurrency, "122027c6dbbbdbffe0fa3122ae05175f3b9328e879e9ce96b670354deb64a45683c1");
|
|
91
94
|
expect(party).toBeDefined();
|
|
92
95
|
});
|
|
93
96
|
});
|
|
94
97
|
describe("getOperations", () => {
|
|
95
98
|
it("should return user transactions", async () => {
|
|
96
|
-
const { operations } = await getOperations("party-5f29bb32e9939939::12202becd8062a1d170209956cfd977fca76fcb4d2a892d08c77a7483f35a11d6440");
|
|
99
|
+
const { operations } = await getOperations(mockCurrency, "party-5f29bb32e9939939::12202becd8062a1d170209956cfd977fca76fcb4d2a892d08c77a7483f35a11d6440", {});
|
|
97
100
|
expect(operations.length).toBeGreaterThanOrEqual(0);
|
|
98
101
|
});
|
|
99
102
|
});
|
|
@@ -103,7 +106,7 @@ describe("gateway (devnet)", () => {
|
|
|
103
106
|
const { partyId } = getOnboardedAccount();
|
|
104
107
|
const amount = 1000;
|
|
105
108
|
// WHEN
|
|
106
|
-
const response = await prepareTapRequest({ partyId, amount });
|
|
109
|
+
const response = await prepareTapRequest(mockCurrency, { partyId, amount });
|
|
107
110
|
// THEN
|
|
108
111
|
expect(response).toHaveProperty("serialized");
|
|
109
112
|
expect(response).toHaveProperty("hash");
|
|
@@ -115,13 +118,13 @@ describe("gateway (devnet)", () => {
|
|
|
115
118
|
it("should submit tap request with proper signature", async () => {
|
|
116
119
|
// GIVEN
|
|
117
120
|
const { keyPair, partyId } = getOnboardedAccount();
|
|
118
|
-
const tapPrepareResponse = await prepareTapRequest({
|
|
121
|
+
const tapPrepareResponse = await prepareTapRequest(mockCurrency, {
|
|
119
122
|
partyId,
|
|
120
123
|
amount: 1000,
|
|
121
124
|
});
|
|
122
125
|
const tapSignature = keyPair.sign(tapPrepareResponse.hash);
|
|
123
126
|
// WHEN
|
|
124
|
-
const response = await submitTapRequest({
|
|
127
|
+
const response = await submitTapRequest(mockCurrency, {
|
|
125
128
|
partyId,
|
|
126
129
|
serialized: tapPrepareResponse.serialized,
|
|
127
130
|
signature: tapSignature,
|
|
@@ -138,7 +141,7 @@ describe("gateway (devnet)", () => {
|
|
|
138
141
|
// GIVEN
|
|
139
142
|
const { partyId } = getOnboardedAccount();
|
|
140
143
|
// WHEN
|
|
141
|
-
const response = await preparePreApprovalTransaction(partyId);
|
|
144
|
+
const response = await preparePreApprovalTransaction(mockCurrency, partyId);
|
|
142
145
|
// THEN
|
|
143
146
|
expect(response).toHaveProperty("serialized");
|
|
144
147
|
expect(response).toHaveProperty("hash");
|
|
@@ -150,10 +153,10 @@ describe("gateway (devnet)", () => {
|
|
|
150
153
|
it("should submit pre-approval transaction with proper signature", async () => {
|
|
151
154
|
// GIVEN
|
|
152
155
|
const { keyPair, partyId } = getOnboardedAccount();
|
|
153
|
-
const preparedTransaction = await preparePreApprovalTransaction(partyId);
|
|
156
|
+
const preparedTransaction = await preparePreApprovalTransaction(mockCurrency, partyId);
|
|
154
157
|
const preApprovalSignature = keyPair.sign(preparedTransaction.hash);
|
|
155
158
|
// WHEN
|
|
156
|
-
const response = await submitPreApprovalTransaction(partyId, preparedTransaction, preApprovalSignature);
|
|
159
|
+
const response = await submitPreApprovalTransaction(mockCurrency, partyId, preparedTransaction, preApprovalSignature);
|
|
157
160
|
// THEN
|
|
158
161
|
expect(response).toHaveProperty("isApproved");
|
|
159
162
|
expect(response).toHaveProperty("submissionId");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway.integ.test.js","sourceRoot":"","sources":["../../src/network/gateway.integ.test.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,6BAA6B,EAC7B,4BAA4B,GAC7B,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"gateway.integ.test.js","sourceRoot":"","sources":["../../src/network/gateway.integ.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import network from "@ledgerhq/live-network";
|
|
2
2
|
import { getEnv } from "@ledgerhq/live-env";
|
|
3
3
|
import coinConfig from "../config";
|
|
4
|
-
const getGatewayUrl = () => coinConfig.getCoinConfig().gatewayUrl;
|
|
5
|
-
const getNodeId = () => coinConfig.getCoinConfig().nodeId || "ledger-devnet-stg";
|
|
6
|
-
const getNetworkType = () => coinConfig.getCoinConfig().networkType;
|
|
4
|
+
const getGatewayUrl = (currency) => coinConfig.getCoinConfig(currency).gatewayUrl;
|
|
5
|
+
const getNodeId = (currency) => coinConfig.getCoinConfig(currency).nodeId || "ledger-devnet-stg";
|
|
6
|
+
const getNetworkType = (currency) => coinConfig.getCoinConfig(currency).networkType;
|
|
7
7
|
const gatewayNetwork = (req) => {
|
|
8
8
|
const API_KEY = getEnv("CANTON_API_KEY");
|
|
9
9
|
return network({
|
|
@@ -14,9 +14,9 @@ const gatewayNetwork = (req) => {
|
|
|
14
14
|
},
|
|
15
15
|
});
|
|
16
16
|
};
|
|
17
|
-
export async function prepareOnboarding(pubKey, pubKeyType) {
|
|
18
|
-
const gatewayUrl = getGatewayUrl();
|
|
19
|
-
const nodeId = getNodeId();
|
|
17
|
+
export async function prepareOnboarding(currency, pubKey, pubKeyType) {
|
|
18
|
+
const gatewayUrl = getGatewayUrl(currency);
|
|
19
|
+
const nodeId = getNodeId(currency);
|
|
20
20
|
const fullUrl = `${gatewayUrl}/v1/node/${nodeId}/onboarding/prepare`;
|
|
21
21
|
const { data } = await gatewayNetwork({
|
|
22
22
|
method: "POST",
|
|
@@ -28,10 +28,10 @@ export async function prepareOnboarding(pubKey, pubKeyType) {
|
|
|
28
28
|
});
|
|
29
29
|
return data;
|
|
30
30
|
}
|
|
31
|
-
export async function submitOnboarding(prepareRequest, prepareResponse, signature) {
|
|
31
|
+
export async function submitOnboarding(currency, prepareRequest, prepareResponse, signature) {
|
|
32
32
|
const { data } = await gatewayNetwork({
|
|
33
33
|
method: "POST",
|
|
34
|
-
url: `${getGatewayUrl()}/v1/node/${getNodeId()}/onboarding/submit`,
|
|
34
|
+
url: `${getGatewayUrl(currency)}/v1/node/${getNodeId(currency)}/onboarding/submit`,
|
|
35
35
|
data: {
|
|
36
36
|
prepare_request: prepareRequest,
|
|
37
37
|
prepare_response: prepareResponse,
|
|
@@ -40,10 +40,10 @@ export async function submitOnboarding(prepareRequest, prepareResponse, signatur
|
|
|
40
40
|
});
|
|
41
41
|
return data;
|
|
42
42
|
}
|
|
43
|
-
export async function submit(partyId, serialized, signature) {
|
|
43
|
+
export async function submit(currency, partyId, serialized, signature) {
|
|
44
44
|
const { data } = await gatewayNetwork({
|
|
45
45
|
method: "POST",
|
|
46
|
-
url: `${getGatewayUrl()}/v1/node/${getNodeId()}/party/${partyId}/transaction/submit`,
|
|
46
|
+
url: `${getGatewayUrl(currency)}/v1/node/${getNodeId(currency)}/party/${partyId}/transaction/submit`,
|
|
47
47
|
data: {
|
|
48
48
|
serialized,
|
|
49
49
|
signature,
|
|
@@ -51,30 +51,30 @@ export async function submit(partyId, serialized, signature) {
|
|
|
51
51
|
});
|
|
52
52
|
return data;
|
|
53
53
|
}
|
|
54
|
-
export async function getBalance(partyId) {
|
|
54
|
+
export async function getBalance(currency, partyId) {
|
|
55
55
|
const { data } = await gatewayNetwork({
|
|
56
56
|
method: "GET",
|
|
57
|
-
url: `${getGatewayUrl()}/v1/node/${getNodeId()}/party/${partyId}/balance`,
|
|
57
|
+
url: `${getGatewayUrl(currency)}/v1/node/${getNodeId(currency)}/party/${partyId}/balance`,
|
|
58
58
|
});
|
|
59
59
|
return data;
|
|
60
60
|
}
|
|
61
|
-
export async function getPartyById(partyId) {
|
|
62
|
-
return await getParty(partyId, "party-id");
|
|
61
|
+
export async function getPartyById(currency, partyId) {
|
|
62
|
+
return await getParty(currency, partyId, "party-id");
|
|
63
63
|
}
|
|
64
|
-
export async function getPartyByPubKey(pubKey) {
|
|
65
|
-
return await getParty(pubKey, "public-key");
|
|
64
|
+
export async function getPartyByPubKey(currency, pubKey) {
|
|
65
|
+
return await getParty(currency, pubKey, "public-key");
|
|
66
66
|
}
|
|
67
|
-
async function getParty(identifier, by) {
|
|
67
|
+
async function getParty(currency, identifier, by) {
|
|
68
68
|
const { data } = await gatewayNetwork({
|
|
69
69
|
method: "GET",
|
|
70
|
-
url: `${getGatewayUrl()}/v1/node/${getNodeId()}/party/${identifier}?by=${by}`,
|
|
70
|
+
url: `${getGatewayUrl(currency)}/v1/node/${getNodeId(currency)}/party/${identifier}?by=${by}`,
|
|
71
71
|
});
|
|
72
72
|
return data;
|
|
73
73
|
}
|
|
74
|
-
export async function getOperations(partyId, options) {
|
|
74
|
+
export async function getOperations(currency, partyId, options) {
|
|
75
75
|
const { data } = await gatewayNetwork({
|
|
76
76
|
method: "GET",
|
|
77
|
-
url: `${getGatewayUrl()}/v1/node/${getNodeId()}/party/${partyId}/operations`,
|
|
77
|
+
url: `${getGatewayUrl(currency)}/v1/node/${getNodeId(currency)}/party/${partyId}/operations`,
|
|
78
78
|
params: options,
|
|
79
79
|
});
|
|
80
80
|
return data;
|
|
@@ -84,8 +84,8 @@ var TransactionType;
|
|
|
84
84
|
TransactionType["TAP_REQUEST"] = "tap-request";
|
|
85
85
|
TransactionType["TRANSFER_PRE_APPROVAL_PROPOSAL"] = "transfer-pre-approval-proposal";
|
|
86
86
|
})(TransactionType || (TransactionType = {}));
|
|
87
|
-
export async function prepareTapRequest({ partyId, amount = 1000000
|
|
88
|
-
if (getNetworkType() === "mainnet") {
|
|
87
|
+
export async function prepareTapRequest(currency, { partyId, amount = 1000000 }) {
|
|
88
|
+
if (getNetworkType(currency) === "mainnet") {
|
|
89
89
|
return {
|
|
90
90
|
serialized: "",
|
|
91
91
|
json: null,
|
|
@@ -94,7 +94,7 @@ export async function prepareTapRequest({ partyId, amount = 1000000, }) {
|
|
|
94
94
|
}
|
|
95
95
|
const { data } = await gatewayNetwork({
|
|
96
96
|
method: "POST",
|
|
97
|
-
url: `${getGatewayUrl()}/v1/node/${getNodeId()}/party/${partyId}/transaction/prepare`,
|
|
97
|
+
url: `${getGatewayUrl(currency)}/v1/node/${getNodeId(currency)}/party/${partyId}/transaction/prepare`,
|
|
98
98
|
data: {
|
|
99
99
|
amount: parseInt(amount.toString(), 10), // Convert to integer to avoid scientific notation
|
|
100
100
|
type: TransactionType.TAP_REQUEST,
|
|
@@ -102,10 +102,10 @@ export async function prepareTapRequest({ partyId, amount = 1000000, }) {
|
|
|
102
102
|
});
|
|
103
103
|
return data;
|
|
104
104
|
}
|
|
105
|
-
export async function submitTapRequest({ partyId, serialized, signature
|
|
105
|
+
export async function submitTapRequest(currency, { partyId, serialized, signature }) {
|
|
106
106
|
const { data } = await gatewayNetwork({
|
|
107
107
|
method: "POST",
|
|
108
|
-
url: `${getGatewayUrl()}/v1/node/${getNodeId()}/party/${partyId}/transaction/submit`,
|
|
108
|
+
url: `${getGatewayUrl(currency)}/v1/node/${getNodeId(currency)}/party/${partyId}/transaction/submit`,
|
|
109
109
|
data: {
|
|
110
110
|
serialized,
|
|
111
111
|
signature,
|
|
@@ -113,25 +113,25 @@ export async function submitTapRequest({ partyId, serialized, signature, }) {
|
|
|
113
113
|
});
|
|
114
114
|
return data;
|
|
115
115
|
}
|
|
116
|
-
export async function prepareTransferRequest(partyId, params) {
|
|
116
|
+
export async function prepareTransferRequest(currency, partyId, params) {
|
|
117
117
|
const { data } = await gatewayNetwork({
|
|
118
118
|
method: "POST",
|
|
119
|
-
url: `${getGatewayUrl()}/v1/node/${getNodeId()}/party/${partyId}/transaction/prepare`,
|
|
119
|
+
url: `${getGatewayUrl(currency)}/v1/node/${getNodeId(currency)}/party/${partyId}/transaction/prepare`,
|
|
120
120
|
data: params,
|
|
121
121
|
});
|
|
122
122
|
return data;
|
|
123
123
|
}
|
|
124
|
-
export async function getLedgerEnd() {
|
|
124
|
+
export async function getLedgerEnd(currency) {
|
|
125
125
|
const { data } = await gatewayNetwork({
|
|
126
126
|
method: "GET",
|
|
127
|
-
url: `${getGatewayUrl()}/v1/node/${getNodeId()}/ledger-end`,
|
|
127
|
+
url: `${getGatewayUrl(currency)}/v1/node/${getNodeId(currency)}/ledger-end`,
|
|
128
128
|
});
|
|
129
129
|
return data;
|
|
130
130
|
}
|
|
131
|
-
export async function preparePreApprovalTransaction(partyId) {
|
|
131
|
+
export async function preparePreApprovalTransaction(currency, partyId) {
|
|
132
132
|
const { data } = await gatewayNetwork({
|
|
133
133
|
method: "POST",
|
|
134
|
-
url: `${getGatewayUrl()}/v1/node/${getNodeId()}/party/${partyId}/transaction/prepare`,
|
|
134
|
+
url: `${getGatewayUrl(currency)}/v1/node/${getNodeId(currency)}/party/${partyId}/transaction/prepare`,
|
|
135
135
|
data: {
|
|
136
136
|
type: TransactionType.TRANSFER_PRE_APPROVAL_PROPOSAL,
|
|
137
137
|
receiver: partyId,
|
|
@@ -139,10 +139,10 @@ export async function preparePreApprovalTransaction(partyId) {
|
|
|
139
139
|
});
|
|
140
140
|
return data;
|
|
141
141
|
}
|
|
142
|
-
export async function submitPreApprovalTransaction(partyId, { serialized }, signature) {
|
|
142
|
+
export async function submitPreApprovalTransaction(currency, partyId, { serialized }, signature) {
|
|
143
143
|
const { data } = await gatewayNetwork({
|
|
144
144
|
method: "POST",
|
|
145
|
-
url: `${getGatewayUrl()}/v1/node/${getNodeId()}/party/${partyId}/transaction/submit`,
|
|
145
|
+
url: `${getGatewayUrl(currency)}/v1/node/${getNodeId(currency)}/party/${partyId}/transaction/submit`,
|
|
146
146
|
data: {
|
|
147
147
|
serialized,
|
|
148
148
|
signature,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../src/network/gateway.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAE7C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,UAAU,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../src/network/gateway.ts"],"names":[],"mappings":"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"}
|
package/lib-es/types/bridge.d.ts
CHANGED
|
@@ -2,9 +2,10 @@ import type { BigNumber } from "bignumber.js";
|
|
|
2
2
|
import type { Observable } from "rxjs";
|
|
3
3
|
import type { Account, AccountRaw, CurrencyBridge, TransactionCommon, TransactionCommonRaw, TransactionStatusCommon, TransactionStatusCommonRaw } from "@ledgerhq/types-live";
|
|
4
4
|
import type { CantonOnboardProgress, CantonOnboardResult, CantonPreApprovalProgress, CantonPreApprovalResult } from "./onboard";
|
|
5
|
+
import type { CryptoCurrency } from "@ledgerhq/types-cryptoassets";
|
|
5
6
|
export interface CantonCurrencyBridge extends CurrencyBridge {
|
|
6
|
-
onboardAccount: (deviceId: string, derivationPath: string) => Observable<CantonOnboardProgress | CantonOnboardResult>;
|
|
7
|
-
authorizePreapproval: (deviceId: string, derivationPath: string, partyId: string) => Observable<CantonPreApprovalProgress | CantonPreApprovalResult>;
|
|
7
|
+
onboardAccount: (currency: CryptoCurrency, deviceId: string, derivationPath: string) => Observable<CantonOnboardProgress | CantonOnboardResult>;
|
|
8
|
+
authorizePreapproval: (currency: CryptoCurrency, deviceId: string, derivationPath: string, partyId: string) => Observable<CantonPreApprovalProgress | CantonPreApprovalResult>;
|
|
8
9
|
}
|
|
9
10
|
export type NetworkInfo = {
|
|
10
11
|
family: "canton";
|
|
@@ -19,10 +20,12 @@ export type NetworkInfoRaw = {
|
|
|
19
20
|
export type Transaction = TransactionCommon & {
|
|
20
21
|
family: "canton";
|
|
21
22
|
fee: BigNumber | null | undefined;
|
|
23
|
+
memo?: string;
|
|
22
24
|
};
|
|
23
25
|
export type TransactionRaw = TransactionCommonRaw & {
|
|
24
26
|
family: "canton";
|
|
25
27
|
fee: string | null | undefined;
|
|
28
|
+
memo?: string;
|
|
26
29
|
};
|
|
27
30
|
export type TransactionStatus = TransactionStatusCommon;
|
|
28
31
|
export type TransactionStatusRaw = TransactionStatusCommonRaw;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/types/bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,KAAK,EACV,OAAO,EACP,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,uBAAuB,EACvB,0BAA0B,EAC3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,qBAAqB,EACrB,mBAAmB,EACnB,yBAAyB,EACzB,uBAAuB,EACxB,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/types/bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,KAAK,EACV,OAAO,EACP,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,uBAAuB,EACvB,0BAA0B,EAC3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,qBAAqB,EACrB,mBAAmB,EACnB,yBAAyB,EACzB,uBAAuB,EACxB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D,cAAc,EAAE,CACd,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,KACnB,UAAU,CAAC,qBAAqB,GAAG,mBAAmB,CAAC,CAAC;IAC7D,oBAAoB,EAAE,CACpB,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,KACZ,UAAU,CAAC,yBAAyB,GAAG,uBAAuB,CAAC,CAAC;CACtE;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,QAAQ,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,SAAS,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,QAAQ,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,iBAAiB,GAAG;IAC5C,MAAM,EAAE,QAAQ,CAAC;IACjB,GAAG,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,CAAC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,oBAAoB,GAAG;IAClD,MAAM,EAAE,QAAQ,CAAC;IACjB,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,uBAAuB,CAAC;AACxD,MAAM,MAAM,oBAAoB,GAAG,0BAA0B,CAAC;AAE9D,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AACF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG;IACpC,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG;IAC1C,eAAe,EAAE,kBAAkB,CAAC;CACrC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ledgerhq/coin-canton",
|
|
3
|
-
"version": "0.5.0-nightly.
|
|
3
|
+
"version": "0.5.0-nightly.6",
|
|
4
4
|
"description": "Canton coin integration",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Ledger",
|
|
@@ -101,8 +101,8 @@
|
|
|
101
101
|
"bignumber.js": "^9.1.2",
|
|
102
102
|
"invariant": "^2.2.4",
|
|
103
103
|
"rxjs": "^7.8.1",
|
|
104
|
-
"@ledgerhq/coin-framework": "^6.4.0-nightly.
|
|
105
|
-
"@ledgerhq/cryptoassets": "^13.28.0-nightly.
|
|
104
|
+
"@ledgerhq/coin-framework": "^6.4.0-nightly.5",
|
|
105
|
+
"@ledgerhq/cryptoassets": "^13.28.0-nightly.3",
|
|
106
106
|
"@ledgerhq/devices": "8.5.1",
|
|
107
107
|
"@ledgerhq/errors": "^6.25.0",
|
|
108
108
|
"@ledgerhq/live-env": "^2.16.0-nightly.1",
|
package/src/api/index.ts
CHANGED
|
@@ -8,31 +8,36 @@ import {
|
|
|
8
8
|
Reward,
|
|
9
9
|
Stake,
|
|
10
10
|
TransactionIntent,
|
|
11
|
-
|
|
11
|
+
Operation,
|
|
12
|
+
Balance,
|
|
13
|
+
Pagination,
|
|
12
14
|
} from "@ledgerhq/coin-framework/api/index";
|
|
13
15
|
import coinConfig, { type CantonConfig } from "../config";
|
|
14
|
-
import {
|
|
15
|
-
broadcast,
|
|
16
|
-
combine,
|
|
17
|
-
craftTransaction,
|
|
18
|
-
estimateFees,
|
|
19
|
-
getBalance,
|
|
20
|
-
lastBlock,
|
|
21
|
-
listOperations,
|
|
22
|
-
} from "../common-logic";
|
|
23
|
-
import BigNumber from "bignumber.js";
|
|
16
|
+
import { combine } from "../common-logic/transaction/combine";
|
|
24
17
|
|
|
25
18
|
export function createApi(config: CantonConfig): AlpacaApi {
|
|
26
19
|
coinConfig.setCoinConfig(() => ({ ...config, status: { type: "active" } }));
|
|
27
20
|
|
|
28
21
|
return {
|
|
29
|
-
broadcast
|
|
22
|
+
broadcast: (_tx: string): Promise<string> => {
|
|
23
|
+
throw new Error("broadcast is not supported");
|
|
24
|
+
},
|
|
30
25
|
combine,
|
|
31
|
-
craftTransaction:
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
26
|
+
craftTransaction(_transactionIntent: TransactionIntent, _customFees?: FeeEstimation) {
|
|
27
|
+
throw new Error("craftTransaction is not supported");
|
|
28
|
+
},
|
|
29
|
+
estimateFees(_transactionIntent: TransactionIntent): Promise<FeeEstimation> {
|
|
30
|
+
throw new Error("estimateFees is not supported");
|
|
31
|
+
},
|
|
32
|
+
getBalance(_address: string): Promise<Balance[]> {
|
|
33
|
+
throw new Error("getBalance is not supported");
|
|
34
|
+
},
|
|
35
|
+
lastBlock(): Promise<BlockInfo> {
|
|
36
|
+
throw new Error("listOperations is not supported");
|
|
37
|
+
},
|
|
38
|
+
listOperations(_address: string, _pagination: Pagination): Promise<[Operation[], string]> {
|
|
39
|
+
throw new Error("listOperations is not supported");
|
|
40
|
+
},
|
|
36
41
|
getBlock(_height): Promise<Block> {
|
|
37
42
|
throw new Error("getBlock is not supported");
|
|
38
43
|
},
|
|
@@ -47,37 +52,3 @@ export function createApi(config: CantonConfig): AlpacaApi {
|
|
|
47
52
|
},
|
|
48
53
|
};
|
|
49
54
|
}
|
|
50
|
-
|
|
51
|
-
const craft =
|
|
52
|
-
(tokenId: string) =>
|
|
53
|
-
async (transactionIntent: TransactionIntent): Promise<CraftedTransaction> => {
|
|
54
|
-
const tx = await craftTransaction(
|
|
55
|
-
{ address: transactionIntent.sender },
|
|
56
|
-
{
|
|
57
|
-
recipient: transactionIntent.recipient,
|
|
58
|
-
amount: new BigNumber(transactionIntent.amount.toString()),
|
|
59
|
-
tokenId,
|
|
60
|
-
expireInSeconds: 24 * 60 * 60,
|
|
61
|
-
},
|
|
62
|
-
);
|
|
63
|
-
|
|
64
|
-
return { transaction: tx.serializedTransaction };
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
const estimate =
|
|
68
|
-
(tokenId: string) =>
|
|
69
|
-
async (transactionIntent: TransactionIntent): Promise<FeeEstimation> => {
|
|
70
|
-
const { serializedTransaction } = await craftTransaction(
|
|
71
|
-
{ address: transactionIntent.sender },
|
|
72
|
-
{
|
|
73
|
-
recipient: transactionIntent.recipient,
|
|
74
|
-
amount: new BigNumber(transactionIntent.amount.toString()),
|
|
75
|
-
tokenId,
|
|
76
|
-
expireInSeconds: 24 * 60 * 60,
|
|
77
|
-
},
|
|
78
|
-
);
|
|
79
|
-
|
|
80
|
-
const value = await estimateFees(serializedTransaction);
|
|
81
|
-
|
|
82
|
-
return { value };
|
|
83
|
-
};
|
|
@@ -4,6 +4,11 @@ jest.mock("@ledgerhq/coin-framework/operation");
|
|
|
4
4
|
jest.mock("../common-logic");
|
|
5
5
|
import { patchOperationWithHash } from "@ledgerhq/coin-framework/operation";
|
|
6
6
|
import { broadcast as broadcastLogic } from "../common-logic";
|
|
7
|
+
import { CryptoCurrency } from "@ledgerhq/types-cryptoassets";
|
|
8
|
+
|
|
9
|
+
const mockCurrency = {
|
|
10
|
+
id: "canton_network",
|
|
11
|
+
} as unknown as CryptoCurrency;
|
|
7
12
|
|
|
8
13
|
describe("broadcast", () => {
|
|
9
14
|
let patchOperationSpy: jest.SpyInstance;
|
|
@@ -16,6 +21,9 @@ describe("broadcast", () => {
|
|
|
16
21
|
|
|
17
22
|
it("should broadcast", () => {
|
|
18
23
|
broadcast({
|
|
24
|
+
account: {
|
|
25
|
+
currency: mockCurrency,
|
|
26
|
+
},
|
|
19
27
|
signedOperation: {
|
|
20
28
|
signature: undefined,
|
|
21
29
|
operation: undefined,
|
|
@@ -26,6 +34,9 @@ describe("broadcast", () => {
|
|
|
26
34
|
|
|
27
35
|
it("should patch operation with hash", () => {
|
|
28
36
|
broadcast({
|
|
37
|
+
account: {
|
|
38
|
+
currency: mockCurrency,
|
|
39
|
+
},
|
|
29
40
|
signedOperation: {
|
|
30
41
|
signature: undefined,
|
|
31
42
|
operation: undefined,
|
package/src/bridge/broadcast.ts
CHANGED
|
@@ -3,8 +3,11 @@ import { patchOperationWithHash } from "@ledgerhq/coin-framework/operation";
|
|
|
3
3
|
import { broadcast as broadcastLogic } from "../common-logic";
|
|
4
4
|
import { Transaction } from "../types";
|
|
5
5
|
|
|
6
|
-
export const broadcast: AccountBridge<Transaction>["broadcast"] = async ({
|
|
6
|
+
export const broadcast: AccountBridge<Transaction>["broadcast"] = async ({
|
|
7
|
+
account,
|
|
8
|
+
signedOperation,
|
|
9
|
+
}) => {
|
|
7
10
|
const { operation, signature } = signedOperation;
|
|
8
|
-
const hash = await broadcastLogic(signature);
|
|
11
|
+
const hash = await broadcastLogic(account.currency, signature);
|
|
9
12
|
return patchOperationWithHash(operation, hash);
|
|
10
13
|
};
|
|
@@ -25,7 +25,7 @@ export const getTransactionStatus: AccountBridge<
|
|
|
25
25
|
const warnings: Record<string, Error> = {};
|
|
26
26
|
|
|
27
27
|
// reserveAmount is the minimum amount of currency that an account must hold in order to stay activated
|
|
28
|
-
const reserveAmount = new BigNumber(coinConfig.getCoinConfig().minReserve || 0);
|
|
28
|
+
const reserveAmount = new BigNumber(coinConfig.getCoinConfig(account.currency).minReserve || 0);
|
|
29
29
|
const estimatedFees = new BigNumber(transaction.fee || 0);
|
|
30
30
|
const totalSpent = new BigNumber(transaction.amount).plus(estimatedFees);
|
|
31
31
|
const amount = new BigNumber(transaction.amount);
|