@ledgerhq/coin-canton 0.5.0-nightly.4 → 0.5.0-nightly.5
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 +12 -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 +17 -12
- 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 +17 -12
- 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 +17 -14
- 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 +4 -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,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.5",
|
|
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);
|
|
@@ -10,10 +10,14 @@ import {
|
|
|
10
10
|
CantonPreApprovalResult,
|
|
11
11
|
} from "../types/onboard";
|
|
12
12
|
import coinConfig from "../config";
|
|
13
|
+
import { CryptoCurrency } from "@ledgerhq/types-cryptoassets";
|
|
13
14
|
|
|
14
15
|
describe("onboard (devnet)", () => {
|
|
15
16
|
const mockDeviceId = "test-device-id";
|
|
16
17
|
const mockDerivationPath = "44'/6767'/0'/0'/0'";
|
|
18
|
+
const mockCurrency = {
|
|
19
|
+
id: "canton_network",
|
|
20
|
+
} as unknown as CryptoCurrency;
|
|
17
21
|
|
|
18
22
|
let onboardedAccount: {
|
|
19
23
|
keyPair: ReturnType<typeof generateMockKeyPair>;
|
|
@@ -53,7 +57,7 @@ describe("onboard (devnet)", () => {
|
|
|
53
57
|
|
|
54
58
|
const onboardObservable = buildOnboardAccount(mockSignerContext);
|
|
55
59
|
const onboardValues = await firstValueFrom(
|
|
56
|
-
onboardObservable(mockDeviceId, mockDerivationPath).pipe(toArray()),
|
|
60
|
+
onboardObservable(mockCurrency, mockDeviceId, mockDerivationPath).pipe(toArray()),
|
|
57
61
|
);
|
|
58
62
|
const onboardResult = onboardValues.find(
|
|
59
63
|
(value): value is CantonOnboardResult => "partyId" in value,
|
|
@@ -72,7 +76,7 @@ describe("onboard (devnet)", () => {
|
|
|
72
76
|
};
|
|
73
77
|
|
|
74
78
|
// WHEN
|
|
75
|
-
const result = await isAccountOnboarded(keyPair.publicKeyHex);
|
|
79
|
+
const result = await isAccountOnboarded(mockCurrency, keyPair.publicKeyHex);
|
|
76
80
|
|
|
77
81
|
// THEN
|
|
78
82
|
expect(result).not.toBe(false);
|
|
@@ -87,7 +91,7 @@ describe("onboard (devnet)", () => {
|
|
|
87
91
|
const keyPair = generateMockKeyPair();
|
|
88
92
|
|
|
89
93
|
// WHEN
|
|
90
|
-
const result = await isAccountOnboarded(keyPair.publicKeyHex);
|
|
94
|
+
const result = await isAccountOnboarded(mockCurrency, keyPair.publicKeyHex);
|
|
91
95
|
|
|
92
96
|
// THEN
|
|
93
97
|
expect(result).toEqual({ isOnboarded: false });
|
|
@@ -98,7 +102,7 @@ describe("onboard (devnet)", () => {
|
|
|
98
102
|
const keyPair = generateMockKeyPair();
|
|
99
103
|
|
|
100
104
|
// WHEN
|
|
101
|
-
const result = await isAccountOnboarded(keyPair.publicKeyHex);
|
|
105
|
+
const result = await isAccountOnboarded(mockCurrency, keyPair.publicKeyHex);
|
|
102
106
|
|
|
103
107
|
// THEN
|
|
104
108
|
expect(result).toEqual({ isOnboarded: false });
|
|
@@ -117,7 +121,7 @@ describe("onboard (devnet)", () => {
|
|
|
117
121
|
|
|
118
122
|
// WHEN
|
|
119
123
|
const allValues = await firstValueFrom(
|
|
120
|
-
onboardObservable(mockDeviceId, mockDerivationPath).pipe(toArray()),
|
|
124
|
+
onboardObservable(mockCurrency, mockDeviceId, mockDerivationPath).pipe(toArray()),
|
|
121
125
|
);
|
|
122
126
|
const progressValues = allValues.filter(
|
|
123
127
|
(value): value is CantonOnboardProgress => "status" in value && !("partyId" in value),
|
|
@@ -149,7 +153,7 @@ describe("onboard (devnet)", () => {
|
|
|
149
153
|
|
|
150
154
|
// WHEN
|
|
151
155
|
const secondOnboardValues = await firstValueFrom(
|
|
152
|
-
secondOnboardObservable(mockDeviceId, mockDerivationPath).pipe(toArray()),
|
|
156
|
+
secondOnboardObservable(mockCurrency, mockDeviceId, mockDerivationPath).pipe(toArray()),
|
|
153
157
|
);
|
|
154
158
|
const secondResult = secondOnboardValues.find(
|
|
155
159
|
(value): value is CantonOnboardResult => "partyId" in value,
|
|
@@ -170,9 +174,12 @@ describe("onboard (devnet)", () => {
|
|
|
170
174
|
|
|
171
175
|
// WHEN
|
|
172
176
|
const preapprovalValues = await firstValueFrom(
|
|
173
|
-
preapprovalObservable(
|
|
174
|
-
|
|
175
|
-
|
|
177
|
+
preapprovalObservable(
|
|
178
|
+
mockCurrency,
|
|
179
|
+
mockDeviceId,
|
|
180
|
+
mockDerivationPath,
|
|
181
|
+
onboardResult.partyId,
|
|
182
|
+
).pipe(toArray()),
|
|
176
183
|
);
|
|
177
184
|
|
|
178
185
|
const progressValues = preapprovalValues.filter(
|
|
@@ -208,7 +215,12 @@ describe("onboard (devnet)", () => {
|
|
|
208
215
|
// WHEN & THEN
|
|
209
216
|
try {
|
|
210
217
|
await firstValueFrom(
|
|
211
|
-
preapprovalObservable(
|
|
218
|
+
preapprovalObservable(
|
|
219
|
+
mockCurrency,
|
|
220
|
+
mockDeviceId,
|
|
221
|
+
mockDerivationPath,
|
|
222
|
+
"invalid-party-id-123",
|
|
223
|
+
),
|
|
212
224
|
);
|
|
213
225
|
expect(true).toBe(true);
|
|
214
226
|
} catch (error) {
|