@ledgerhq/coin-canton 0.5.0-nightly.1 → 0.5.0-nightly.2
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/.unimportedrc.json +12 -4
- package/CHANGELOG.md +21 -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 +11 -8
- package/lib/api/index.js.map +1 -1
- package/lib/bridge/createTransaction.test.js +1 -1
- package/lib/bridge/createTransaction.test.js.map +1 -1
- package/lib/bridge/index.d.ts +3 -3
- package/lib/bridge/index.d.ts.map +1 -1
- package/lib/bridge/index.js +9 -1
- package/lib/bridge/index.js.map +1 -1
- package/lib/bridge/onboard.d.ts +10 -0
- package/lib/bridge/onboard.d.ts.map +1 -0
- package/lib/bridge/onboard.integ.test.d.ts +2 -0
- package/lib/bridge/onboard.integ.test.d.ts.map +1 -0
- package/lib/bridge/onboard.integ.test.js +156 -0
- package/lib/bridge/onboard.integ.test.js.map +1 -0
- package/lib/bridge/onboard.js +139 -0
- package/lib/bridge/onboard.js.map +1 -0
- package/lib/bridge/prepareTransaction.d.ts.map +1 -1
- package/lib/bridge/prepareTransaction.js +5 -7
- package/lib/bridge/prepareTransaction.js.map +1 -1
- package/lib/bridge/signOperation.d.ts.map +1 -1
- package/lib/bridge/signOperation.js +2 -1
- package/lib/bridge/signOperation.js.map +1 -1
- package/lib/bridge/sync.d.ts.map +1 -1
- package/lib/bridge/sync.integ.test.d.ts +2 -0
- package/lib/bridge/sync.integ.test.d.ts.map +1 -0
- package/lib/bridge/sync.integ.test.js +175 -0
- package/lib/bridge/sync.integ.test.js.map +1 -0
- package/lib/bridge/sync.js +39 -36
- package/lib/bridge/sync.js.map +1 -1
- package/lib/bridge/updateTransaction.d.ts.map +1 -1
- package/lib/bridge/updateTransaction.js +0 -4
- package/lib/bridge/updateTransaction.js.map +1 -1
- package/lib/common-logic/history/listOperations.d.ts.map +1 -1
- package/lib/common-logic/history/listOperations.js +19 -31
- package/lib/common-logic/history/listOperations.js.map +1 -1
- package/lib/common-logic/transaction/craftTransaction.d.ts +4 -3
- package/lib/common-logic/transaction/craftTransaction.d.ts.map +1 -1
- package/lib/common-logic/transaction/craftTransaction.js +10 -12
- package/lib/common-logic/transaction/craftTransaction.js.map +1 -1
- package/lib/network/gateway.d.ts +194 -3
- package/lib/network/gateway.d.ts.map +1 -1
- package/lib/network/gateway.integ.test.js +121 -11
- package/lib/network/gateway.integ.test.js.map +1 -1
- package/lib/network/gateway.js +96 -18
- package/lib/network/gateway.js.map +1 -1
- package/lib/network/node.d.ts +2 -2
- package/lib/network/node.d.ts.map +1 -1
- package/lib/network/node.js.map +1 -1
- package/lib/network/types.d.ts +1 -1
- package/lib/network/types.d.ts.map +1 -1
- package/lib/signer/getAddress.d.ts.map +1 -1
- package/lib/signer/getAddress.js +2 -2
- package/lib/signer/getAddress.js.map +1 -1
- package/lib/test/cantonTestUtils.d.ts +33 -0
- package/lib/test/cantonTestUtils.d.ts.map +1 -0
- package/lib/test/cantonTestUtils.js +159 -0
- package/lib/test/cantonTestUtils.js.map +1 -0
- package/lib/types/bridge.d.ts +7 -1
- package/lib/types/bridge.d.ts.map +1 -1
- package/lib/types/index.d.ts +1 -10
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/index.js +1 -0
- package/lib/types/index.js.map +1 -1
- package/lib/types/onboard.d.ts +55 -0
- package/lib/types/onboard.d.ts.map +1 -0
- package/lib/types/onboard.js +22 -0
- package/lib/types/onboard.js.map +1 -0
- 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 +12 -9
- package/lib-es/api/index.js.map +1 -1
- package/lib-es/bridge/createTransaction.test.js +1 -1
- package/lib-es/bridge/createTransaction.test.js.map +1 -1
- package/lib-es/bridge/index.d.ts +3 -3
- package/lib-es/bridge/index.d.ts.map +1 -1
- package/lib-es/bridge/index.js +9 -1
- package/lib-es/bridge/index.js.map +1 -1
- package/lib-es/bridge/onboard.d.ts +10 -0
- package/lib-es/bridge/onboard.d.ts.map +1 -0
- package/lib-es/bridge/onboard.integ.test.d.ts +2 -0
- package/lib-es/bridge/onboard.integ.test.d.ts.map +1 -0
- package/lib-es/bridge/onboard.integ.test.js +151 -0
- package/lib-es/bridge/onboard.integ.test.js.map +1 -0
- package/lib-es/bridge/onboard.js +133 -0
- package/lib-es/bridge/onboard.js.map +1 -0
- package/lib-es/bridge/prepareTransaction.d.ts.map +1 -1
- package/lib-es/bridge/prepareTransaction.js +6 -8
- 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 +2 -1
- package/lib-es/bridge/signOperation.js.map +1 -1
- package/lib-es/bridge/sync.d.ts.map +1 -1
- package/lib-es/bridge/sync.integ.test.d.ts +2 -0
- package/lib-es/bridge/sync.integ.test.d.ts.map +1 -0
- package/lib-es/bridge/sync.integ.test.js +137 -0
- package/lib-es/bridge/sync.integ.test.js.map +1 -0
- package/lib-es/bridge/sync.js +38 -35
- package/lib-es/bridge/sync.js.map +1 -1
- package/lib-es/bridge/updateTransaction.d.ts.map +1 -1
- package/lib-es/bridge/updateTransaction.js +0 -4
- package/lib-es/bridge/updateTransaction.js.map +1 -1
- package/lib-es/common-logic/history/listOperations.d.ts.map +1 -1
- package/lib-es/common-logic/history/listOperations.js +20 -29
- package/lib-es/common-logic/history/listOperations.js.map +1 -1
- package/lib-es/common-logic/transaction/craftTransaction.d.ts +4 -3
- package/lib-es/common-logic/transaction/craftTransaction.d.ts.map +1 -1
- package/lib-es/common-logic/transaction/craftTransaction.js +10 -12
- package/lib-es/common-logic/transaction/craftTransaction.js.map +1 -1
- package/lib-es/network/gateway.d.ts +194 -3
- package/lib-es/network/gateway.d.ts.map +1 -1
- package/lib-es/network/gateway.integ.test.js +122 -12
- package/lib-es/network/gateway.integ.test.js.map +1 -1
- package/lib-es/network/gateway.js +90 -17
- package/lib-es/network/gateway.js.map +1 -1
- package/lib-es/network/node.d.ts +2 -2
- package/lib-es/network/node.d.ts.map +1 -1
- package/lib-es/network/node.js.map +1 -1
- package/lib-es/network/types.d.ts +1 -1
- package/lib-es/network/types.d.ts.map +1 -1
- package/lib-es/signer/getAddress.d.ts.map +1 -1
- package/lib-es/signer/getAddress.js +2 -2
- package/lib-es/signer/getAddress.js.map +1 -1
- package/lib-es/test/cantonTestUtils.d.ts +33 -0
- package/lib-es/test/cantonTestUtils.d.ts.map +1 -0
- package/lib-es/test/cantonTestUtils.js +151 -0
- package/lib-es/test/cantonTestUtils.js.map +1 -0
- package/lib-es/types/bridge.d.ts +7 -1
- package/lib-es/types/bridge.d.ts.map +1 -1
- package/lib-es/types/index.d.ts +1 -10
- package/lib-es/types/index.d.ts.map +1 -1
- package/lib-es/types/index.js +1 -0
- package/lib-es/types/index.js.map +1 -1
- package/lib-es/types/onboard.d.ts +55 -0
- package/lib-es/types/onboard.d.ts.map +1 -0
- package/lib-es/types/onboard.js +19 -0
- package/lib-es/types/onboard.js.map +1 -0
- package/package.json +6 -6
- package/src/api/getBalance.integ.test.ts +1 -2
- package/src/api/index.ts +33 -26
- package/src/bridge/createTransaction.test.ts +1 -1
- package/src/bridge/index.ts +14 -4
- package/src/bridge/onboard.integ.test.ts +219 -0
- package/src/bridge/onboard.ts +220 -0
- package/src/bridge/prepareTransaction.ts +6 -15
- package/src/bridge/signOperation.ts +3 -2
- package/src/bridge/sync.integ.test.ts +180 -0
- package/src/bridge/sync.ts +57 -49
- package/src/bridge/updateTransaction.ts +0 -5
- package/src/common-logic/history/listOperations.ts +20 -31
- package/src/common-logic/transaction/craftTransaction.ts +13 -17
- package/src/network/gateway.integ.test.ts +156 -17
- package/src/network/gateway.ts +333 -26
- package/src/network/node.ts +3 -3
- package/src/network/types.ts +1 -1
- package/src/signer/getAddress.ts +3 -5
- package/src/test/cantonTestUtils.ts +181 -0
- package/src/types/bridge.ts +20 -0
- package/src/types/index.ts +1 -11
- package/src/types/onboard.ts +65 -0
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import coinConfig from "../config";
|
|
2
|
-
import {
|
|
2
|
+
import { generateMockKeyPair } from "../test/cantonTestUtils";
|
|
3
|
+
import { getLedgerEnd, prepareOnboarding, getBalance, getOperations, getPartyById, getPartyByPubKey, submitOnboarding, prepareTapRequest, submitTapRequest, preparePreApprovalTransaction, submitPreApprovalTransaction, } from "./gateway";
|
|
3
4
|
describe("gateway (devnet)", () => {
|
|
4
|
-
|
|
5
|
+
let onboardedAccount = null;
|
|
6
|
+
beforeAll(async () => {
|
|
5
7
|
coinConfig.setCoinConfig(() => ({
|
|
6
8
|
gatewayUrl: "https://canton-gateway.api.live.ledger-test.com",
|
|
7
9
|
useGateway: true,
|
|
@@ -10,14 +12,53 @@ describe("gateway (devnet)", () => {
|
|
|
10
12
|
type: "active",
|
|
11
13
|
},
|
|
12
14
|
}));
|
|
13
|
-
});
|
|
15
|
+
}, 60000);
|
|
16
|
+
const getOnboardedAccount = () => {
|
|
17
|
+
if (!onboardedAccount) {
|
|
18
|
+
throw new Error("Shared onboarded account not available. Check beforeAll setup.");
|
|
19
|
+
}
|
|
20
|
+
return onboardedAccount;
|
|
21
|
+
};
|
|
14
22
|
describe("prepareOnboarding", () => {
|
|
15
23
|
it("should prepare onboarding", async () => {
|
|
16
|
-
|
|
24
|
+
// GIVEN
|
|
25
|
+
const keyPair = generateMockKeyPair();
|
|
26
|
+
// Save onboarded account for all tests that need a valid party ID
|
|
27
|
+
onboardedAccount = {
|
|
28
|
+
keyPair,
|
|
29
|
+
partyId: "", // set in next test
|
|
30
|
+
};
|
|
31
|
+
// WHEN
|
|
32
|
+
const response = await prepareOnboarding(keyPair.publicKeyHex, "ed25519");
|
|
33
|
+
// THEN
|
|
17
34
|
expect(response).toHaveProperty("party_id");
|
|
18
35
|
expect(response).toHaveProperty("party_name");
|
|
19
36
|
expect(response).toHaveProperty("public_key_fingerprint");
|
|
20
|
-
expect(response).toHaveProperty("
|
|
37
|
+
expect(response).toHaveProperty("transactions");
|
|
38
|
+
expect(response.transactions).toHaveProperty("combined_hash");
|
|
39
|
+
expect(response.party_name).toBe(keyPair.publicKeyHex);
|
|
40
|
+
expect(response.public_key_fingerprint).toBe(keyPair.fingerprint);
|
|
41
|
+
}, 30000);
|
|
42
|
+
});
|
|
43
|
+
describe("submitOnboarding", () => {
|
|
44
|
+
it("should submit onboarding with proper signature", async () => {
|
|
45
|
+
// GIVEN
|
|
46
|
+
const { keyPair } = getOnboardedAccount();
|
|
47
|
+
const prepareRequest = { public_key: keyPair.publicKeyHex, public_key_type: "ed25519" };
|
|
48
|
+
const prepareResponse = await prepareOnboarding(keyPair.publicKeyHex, "ed25519");
|
|
49
|
+
const signature = keyPair.sign(prepareResponse.transactions.combined_hash);
|
|
50
|
+
// WHEN
|
|
51
|
+
const response = await submitOnboarding(prepareRequest, prepareResponse, signature);
|
|
52
|
+
// Save onboarded account for all tests that need a valid party ID
|
|
53
|
+
onboardedAccount = {
|
|
54
|
+
keyPair,
|
|
55
|
+
partyId: response.party.party_id,
|
|
56
|
+
};
|
|
57
|
+
// THEN
|
|
58
|
+
expect(response).toHaveProperty("party");
|
|
59
|
+
expect(response.party).toHaveProperty("party_id");
|
|
60
|
+
expect(response.party).toHaveProperty("public_key");
|
|
61
|
+
expect(response.party.public_key).toBe(keyPair.publicKeyHex);
|
|
21
62
|
}, 30000);
|
|
22
63
|
});
|
|
23
64
|
describe("getLedgerEnd", () => {
|
|
@@ -28,10 +69,13 @@ describe("gateway (devnet)", () => {
|
|
|
28
69
|
});
|
|
29
70
|
describe("getBalance", () => {
|
|
30
71
|
it("should return user balance", async () => {
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
expect(balance
|
|
34
|
-
|
|
72
|
+
const { partyId } = getOnboardedAccount();
|
|
73
|
+
const balance = await getBalance(partyId);
|
|
74
|
+
expect(balance.length).toBeGreaterThanOrEqual(0);
|
|
75
|
+
if (balance.length > 0) {
|
|
76
|
+
expect(balance[0].amount).toBeGreaterThanOrEqual(0);
|
|
77
|
+
expect(balance[0]).toHaveProperty("instrument_id");
|
|
78
|
+
}
|
|
35
79
|
});
|
|
36
80
|
});
|
|
37
81
|
describe("getPartyById", () => {
|
|
@@ -46,11 +90,77 @@ describe("gateway (devnet)", () => {
|
|
|
46
90
|
expect(party).toBeDefined();
|
|
47
91
|
});
|
|
48
92
|
});
|
|
49
|
-
describe("
|
|
93
|
+
describe("getOperations", () => {
|
|
50
94
|
it("should return user transactions", async () => {
|
|
51
|
-
const {
|
|
52
|
-
expect(
|
|
95
|
+
const { operations } = await getOperations("party-5f29bb32e9939939::12202becd8062a1d170209956cfd977fca76fcb4d2a892d08c77a7483f35a11d6440");
|
|
96
|
+
expect(operations.length).toBeGreaterThanOrEqual(0);
|
|
53
97
|
});
|
|
54
98
|
});
|
|
99
|
+
describe("prepareTapRequest", () => {
|
|
100
|
+
it("should prepare tap request for onboarded party", async () => {
|
|
101
|
+
// GIVEN
|
|
102
|
+
const { partyId } = getOnboardedAccount();
|
|
103
|
+
const amount = 1000;
|
|
104
|
+
// WHEN
|
|
105
|
+
const response = await prepareTapRequest({ partyId, amount });
|
|
106
|
+
// THEN
|
|
107
|
+
expect(response).toHaveProperty("serialized");
|
|
108
|
+
expect(response).toHaveProperty("hash");
|
|
109
|
+
expect(typeof response.serialized).toBe("string");
|
|
110
|
+
expect(typeof response.hash).toBe("string");
|
|
111
|
+
}, 30000);
|
|
112
|
+
});
|
|
113
|
+
describe("submitTapRequest", () => {
|
|
114
|
+
it("should submit tap request with proper signature", async () => {
|
|
115
|
+
// GIVEN
|
|
116
|
+
const { keyPair, partyId } = getOnboardedAccount();
|
|
117
|
+
const tapPrepareResponse = await prepareTapRequest({
|
|
118
|
+
partyId,
|
|
119
|
+
amount: 1000,
|
|
120
|
+
});
|
|
121
|
+
const tapSignature = keyPair.sign(tapPrepareResponse.hash);
|
|
122
|
+
// WHEN
|
|
123
|
+
const response = await submitTapRequest({
|
|
124
|
+
partyId,
|
|
125
|
+
serialized: tapPrepareResponse.serialized,
|
|
126
|
+
signature: tapSignature,
|
|
127
|
+
});
|
|
128
|
+
// THEN
|
|
129
|
+
expect(response).toHaveProperty("submission_id");
|
|
130
|
+
expect(response).toHaveProperty("update_id");
|
|
131
|
+
expect(typeof response.submission_id).toBe("string");
|
|
132
|
+
expect(typeof response.update_id).toBe("string");
|
|
133
|
+
}, 30000);
|
|
134
|
+
});
|
|
135
|
+
describe("preparePreApprovalTransaction", () => {
|
|
136
|
+
it("should prepare pre-approval transaction for onboarded party", async () => {
|
|
137
|
+
// GIVEN
|
|
138
|
+
const { partyId } = getOnboardedAccount();
|
|
139
|
+
// WHEN
|
|
140
|
+
const response = await preparePreApprovalTransaction(partyId);
|
|
141
|
+
// THEN
|
|
142
|
+
expect(response).toHaveProperty("serialized");
|
|
143
|
+
expect(response).toHaveProperty("hash");
|
|
144
|
+
expect(typeof response.serialized).toBe("string");
|
|
145
|
+
expect(typeof response.hash).toBe("string");
|
|
146
|
+
}, 30000);
|
|
147
|
+
});
|
|
148
|
+
describe("submitPreApprovalTransaction", () => {
|
|
149
|
+
it("should submit pre-approval transaction with proper signature", async () => {
|
|
150
|
+
// GIVEN
|
|
151
|
+
const { keyPair, partyId } = getOnboardedAccount();
|
|
152
|
+
const preparedTransaction = await preparePreApprovalTransaction(partyId);
|
|
153
|
+
const preApprovalSignature = keyPair.sign(preparedTransaction.hash);
|
|
154
|
+
// WHEN
|
|
155
|
+
const response = await submitPreApprovalTransaction(partyId, preparedTransaction, preApprovalSignature);
|
|
156
|
+
// THEN
|
|
157
|
+
expect(response).toHaveProperty("isApproved");
|
|
158
|
+
expect(response).toHaveProperty("submissionId");
|
|
159
|
+
expect(response).toHaveProperty("updateId");
|
|
160
|
+
expect(response.isApproved).toBe(true);
|
|
161
|
+
expect(typeof response.submissionId).toBe("string");
|
|
162
|
+
expect(typeof response.updateId).toBe("string");
|
|
163
|
+
}, 30000);
|
|
164
|
+
});
|
|
55
165
|
});
|
|
56
166
|
//# sourceMappingURL=gateway.integ.test.js.map
|
|
@@ -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,EACL,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,
|
|
1
|
+
{"version":3,"file":"gateway.integ.test.js","sourceRoot":"","sources":["../../src/network/gateway.integ.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,25 @@
|
|
|
1
1
|
import network from "@ledgerhq/live-network";
|
|
2
|
+
import { getEnv } from "@ledgerhq/live-env";
|
|
2
3
|
import coinConfig from "../config";
|
|
3
4
|
const getGatewayUrl = () => coinConfig.getCoinConfig().gatewayUrl;
|
|
4
|
-
const getNodeId = () => coinConfig.getCoinConfig().nodeId || "ledger-
|
|
5
|
+
const getNodeId = () => coinConfig.getCoinConfig().nodeId || "ledger-devnet-stg";
|
|
6
|
+
const gatewayNetwork = (req) => {
|
|
7
|
+
const API_KEY = getEnv("CANTON_API_KEY");
|
|
8
|
+
return network({
|
|
9
|
+
...req,
|
|
10
|
+
headers: {
|
|
11
|
+
...(req.headers || {}),
|
|
12
|
+
...(API_KEY && { "X-Ledger-Canton-Api-Key": API_KEY }),
|
|
13
|
+
},
|
|
14
|
+
});
|
|
15
|
+
};
|
|
5
16
|
export async function prepareOnboarding(pubKey, pubKeyType) {
|
|
6
|
-
const
|
|
17
|
+
const gatewayUrl = getGatewayUrl();
|
|
18
|
+
const nodeId = getNodeId();
|
|
19
|
+
const fullUrl = `${gatewayUrl}/v1/node/${nodeId}/onboarding/prepare`;
|
|
20
|
+
const { data } = await gatewayNetwork({
|
|
7
21
|
method: "POST",
|
|
8
|
-
url:
|
|
22
|
+
url: fullUrl,
|
|
9
23
|
data: {
|
|
10
24
|
public_key: pubKey,
|
|
11
25
|
public_key_type: pubKeyType,
|
|
@@ -14,7 +28,7 @@ export async function prepareOnboarding(pubKey, pubKeyType) {
|
|
|
14
28
|
return data;
|
|
15
29
|
}
|
|
16
30
|
export async function submitOnboarding(prepareRequest, prepareResponse, signature) {
|
|
17
|
-
const { data } = await
|
|
31
|
+
const { data } = await gatewayNetwork({
|
|
18
32
|
method: "POST",
|
|
19
33
|
url: `${getGatewayUrl()}/v1/node/${getNodeId()}/onboarding/submit`,
|
|
20
34
|
data: {
|
|
@@ -26,7 +40,7 @@ export async function submitOnboarding(prepareRequest, prepareResponse, signatur
|
|
|
26
40
|
return data;
|
|
27
41
|
}
|
|
28
42
|
export async function submit(serializedTx, signature) {
|
|
29
|
-
const { data } = await
|
|
43
|
+
const { data } = await gatewayNetwork({
|
|
30
44
|
method: "POST",
|
|
31
45
|
url: `${getGatewayUrl()}/v1/node/${getNodeId()}/transaction/submit`,
|
|
32
46
|
data: {
|
|
@@ -37,41 +51,100 @@ export async function submit(serializedTx, signature) {
|
|
|
37
51
|
return data;
|
|
38
52
|
}
|
|
39
53
|
export async function getBalance(partyId) {
|
|
40
|
-
const { data } = await
|
|
54
|
+
const { data } = await gatewayNetwork({
|
|
41
55
|
method: "GET",
|
|
42
|
-
|
|
56
|
+
// TODO: we need better solution ?
|
|
57
|
+
url: `${getGatewayUrl()}/v1/node/${getNodeId()}/party/${partyId.replace(/_/g, ":")}/balance`,
|
|
43
58
|
});
|
|
44
59
|
return data;
|
|
45
60
|
}
|
|
46
61
|
export async function getPartyById(partyId) {
|
|
47
|
-
return await getParty(partyId, "
|
|
62
|
+
return await getParty(partyId, "party-id");
|
|
48
63
|
}
|
|
49
64
|
export async function getPartyByPubKey(pubKey) {
|
|
50
|
-
return await getParty(pubKey, "
|
|
65
|
+
return await getParty(pubKey, "public-key");
|
|
51
66
|
}
|
|
52
67
|
async function getParty(identifier, by) {
|
|
53
|
-
const { data } = await
|
|
68
|
+
const { data } = await gatewayNetwork({
|
|
54
69
|
method: "GET",
|
|
55
|
-
url: `${getGatewayUrl()}/v1/node/${getNodeId()}/party/${identifier}`,
|
|
70
|
+
url: `${getGatewayUrl()}/v1/node/${getNodeId()}/party/${identifier}?by=${by}`,
|
|
71
|
+
});
|
|
72
|
+
return data;
|
|
73
|
+
}
|
|
74
|
+
export async function getOperations(partyId, options) {
|
|
75
|
+
const { data } = await gatewayNetwork({
|
|
76
|
+
method: "GET",
|
|
77
|
+
url: `${getGatewayUrl()}/v1/node/${getNodeId()}/party/${partyId.replace(/_/g, ":")}/operations`,
|
|
78
|
+
params: options,
|
|
79
|
+
});
|
|
80
|
+
return data;
|
|
81
|
+
}
|
|
82
|
+
var TransactionType;
|
|
83
|
+
(function (TransactionType) {
|
|
84
|
+
TransactionType["TAP_REQUEST"] = "tap-request";
|
|
85
|
+
TransactionType["TRANSFER_PRE_APPROVAL_PROPOSAL"] = "transfer-pre-approval-proposal";
|
|
86
|
+
})(TransactionType || (TransactionType = {}));
|
|
87
|
+
export async function prepareTapRequest({ partyId, amount = 1000000, }) {
|
|
88
|
+
const { data } = await gatewayNetwork({
|
|
89
|
+
method: "POST",
|
|
90
|
+
url: `${getGatewayUrl()}/v1/node/${getNodeId()}/party/${partyId}/transaction/prepare`,
|
|
56
91
|
data: {
|
|
57
|
-
|
|
92
|
+
amount: parseInt(amount.toString(), 10), // Convert to integer to avoid scientific notation
|
|
93
|
+
type: TransactionType.TAP_REQUEST,
|
|
58
94
|
},
|
|
59
95
|
});
|
|
60
96
|
return data;
|
|
61
97
|
}
|
|
62
|
-
export async function
|
|
98
|
+
export async function submitTapRequest({ partyId, serialized, signature, }) {
|
|
99
|
+
const { data } = await gatewayNetwork({
|
|
100
|
+
method: "POST",
|
|
101
|
+
url: `${getGatewayUrl()}/v1/node/${getNodeId()}/party/${partyId}/transaction/submit`,
|
|
102
|
+
data: {
|
|
103
|
+
serialized,
|
|
104
|
+
signature,
|
|
105
|
+
},
|
|
106
|
+
});
|
|
107
|
+
return data;
|
|
108
|
+
}
|
|
109
|
+
export async function prepareTransferRequest(partyId, params) {
|
|
63
110
|
const { data } = await network({
|
|
64
|
-
method: "
|
|
65
|
-
url: `${getGatewayUrl()}/v1/node/${getNodeId()}/party/${partyId}/
|
|
66
|
-
data:
|
|
111
|
+
method: "POST",
|
|
112
|
+
url: `${getGatewayUrl()}/v1/node/${getNodeId()}/party/${partyId}/transaction/prepare`,
|
|
113
|
+
data: params,
|
|
67
114
|
});
|
|
68
115
|
return data;
|
|
69
116
|
}
|
|
70
117
|
export async function getLedgerEnd() {
|
|
71
|
-
const { data } = await
|
|
118
|
+
const { data } = await gatewayNetwork({
|
|
72
119
|
method: "GET",
|
|
73
120
|
url: `${getGatewayUrl()}/v1/node/${getNodeId()}/ledger-end`,
|
|
74
121
|
});
|
|
75
122
|
return data;
|
|
76
123
|
}
|
|
124
|
+
export async function preparePreApprovalTransaction(partyId) {
|
|
125
|
+
const { data } = await gatewayNetwork({
|
|
126
|
+
method: "POST",
|
|
127
|
+
url: `${getGatewayUrl()}/v1/node/${getNodeId()}/party/${partyId}/transaction/prepare`,
|
|
128
|
+
data: {
|
|
129
|
+
type: TransactionType.TRANSFER_PRE_APPROVAL_PROPOSAL,
|
|
130
|
+
receiver: partyId,
|
|
131
|
+
},
|
|
132
|
+
});
|
|
133
|
+
return data;
|
|
134
|
+
}
|
|
135
|
+
export async function submitPreApprovalTransaction(partyId, { serialized }, signature) {
|
|
136
|
+
const { data } = await gatewayNetwork({
|
|
137
|
+
method: "POST",
|
|
138
|
+
url: `${getGatewayUrl()}/v1/node/${getNodeId()}/party/${partyId}/transaction/submit`,
|
|
139
|
+
data: {
|
|
140
|
+
serialized,
|
|
141
|
+
signature,
|
|
142
|
+
},
|
|
143
|
+
});
|
|
144
|
+
return {
|
|
145
|
+
isApproved: true,
|
|
146
|
+
submissionId: data.submission_id,
|
|
147
|
+
updateId: data.update_id,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
77
150
|
//# sourceMappingURL=gateway.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../src/network/gateway.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../src/network/gateway.ts"],"names":[],"mappings":"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"}
|
package/lib-es/network/node.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { AccountInfoResponse,
|
|
1
|
+
import { AccountInfoResponse, SubmitResponse } from "./types";
|
|
2
2
|
export declare const generateJWT: () => string;
|
|
3
3
|
export declare const simulate: (serializedTx: string) => Promise<number>;
|
|
4
4
|
export declare const getNextSequence: (address: string) => Promise<number>;
|
|
5
5
|
export declare const getLedgerEnd: () => Promise<number>;
|
|
6
|
-
export declare const submit: (signedTx: string) => Promise<
|
|
6
|
+
export declare const submit: (signedTx: string) => Promise<SubmitResponse>;
|
|
7
7
|
export declare const getAccountInfo: (address: string) => Promise<AccountInfoResponse>;
|
|
8
8
|
//# sourceMappingURL=node.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/network/node.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/network/node.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAO9D,eAAO,MAAM,WAAW,cAoBvB,CAAC;AAeF,eAAO,MAAM,QAAQ,GAAU,cAAc,MAAM,KAAG,OAAO,CAAC,MAAM,CAcnE,CAAC;AAGF,eAAO,MAAM,eAAe,GAAU,SAAS,MAAM,KAAG,OAAO,CAAC,MAAM,CAYrE,CAAC;AAEF,eAAO,MAAM,YAAY,QAAa,OAAO,CAAC,MAAM,CAQnD,CAAC;AAEF,eAAO,MAAM,MAAM,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,cAAc,CAQrE,CAAC;AAEF,eAAO,MAAM,cAAc,GAAU,SAAS,MAAM,KAAG,OAAO,CAAC,mBAAmB,CAiBjF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/network/node.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/network/node.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/network/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE;QACJ,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,EAAE,EAAE;QACF,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,cAAc,GACtB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,GACjC;IACE,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AACN,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,cAAc,CAEnE;AAED,MAAM,MAAM,UAAU,GAAG,YAAY,CAAC;AACtC,MAAM,MAAM,mBAAmB,GAAG;IAChC,YAAY,EAAE;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;CACpB,GAAG,cAAc,CAAC;AAEnB,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/network/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE;QACJ,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,EAAE,EAAE;QACF,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,cAAc,GACtB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,GACjC;IACE,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AACN,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,cAAc,CAEnE;AAED,MAAM,MAAM,UAAU,GAAG,YAAY,CAAC;AACtC,MAAM,MAAM,mBAAmB,GAAG;IAChC,YAAY,EAAE;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;CACpB,GAAG,cAAc,CAAC;AAEnB,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,oBAAoB,EAAE,CAAC;CACtC,GAAG,cAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getAddress.d.ts","sourceRoot":"","sources":["../../src/signer/getAddress.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mDAAmD,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,
|
|
1
|
+
{"version":3,"file":"getAddress.d.ts","sourceRoot":"","sources":["../../src/signer/getAddress.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mDAAmD,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,QAAA,MAAM,UAAU,GAAI,eAAe,aAAa,CAAC,YAAY,CAAC,KAAG,YAUhE,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const getAddress = (signerContext) => {
|
|
2
|
-
return async (deviceId, { path
|
|
3
|
-
const { address, publicKey } =
|
|
2
|
+
return async (deviceId, { path }) => {
|
|
3
|
+
const { address, publicKey } = await signerContext(deviceId, signer => signer.getAddress(path));
|
|
4
4
|
return {
|
|
5
5
|
path,
|
|
6
6
|
address,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getAddress.js","sourceRoot":"","sources":["../../src/signer/getAddress.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,GAAG,CAAC,aAA0C,EAAgB,EAAE;IAC9E,OAAO,KAAK,EAAE,QAAgB,EAAE,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"getAddress.js","sourceRoot":"","sources":["../../src/signer/getAddress.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,GAAG,CAAC,aAA0C,EAAgB,EAAE;IAC9E,OAAO,KAAK,EAAE,QAAgB,EAAE,EAAE,IAAI,EAAqB,EAAE,EAAE;QAC7D,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAEhG,OAAO;YACL,IAAI;YACJ,OAAO;YACP,SAAS;SACV,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canton Testing Utilities for Ed25519 Key Generation
|
|
3
|
+
*
|
|
4
|
+
* Provides utilities to generate proper Ed25519 keypairs for testing Canton
|
|
5
|
+
* onboarding without requiring physical Ledger devices.
|
|
6
|
+
*/
|
|
7
|
+
export interface CantonTestKeyPair {
|
|
8
|
+
publicKeyHex: string;
|
|
9
|
+
privateKeyHex: string;
|
|
10
|
+
privateKeyPem: string;
|
|
11
|
+
fingerprint: string;
|
|
12
|
+
sign: (hashHex: string) => string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Generate fresh Ed25519 keypair
|
|
16
|
+
*/
|
|
17
|
+
export declare function generateMockKeyPair(): CantonTestKeyPair;
|
|
18
|
+
/**
|
|
19
|
+
* Verify Ed25519 signature against public key and message hash
|
|
20
|
+
*/
|
|
21
|
+
export declare function verifySignature(publicKeyHex: string, signatureHex: string, messageHashHex: string): {
|
|
22
|
+
isValid: boolean;
|
|
23
|
+
error?: string;
|
|
24
|
+
details: any;
|
|
25
|
+
};
|
|
26
|
+
export declare function createMockSigner(keyPair: CantonTestKeyPair): {
|
|
27
|
+
getAddress: (derivationPath: string) => Promise<{
|
|
28
|
+
address: string;
|
|
29
|
+
publicKey: string;
|
|
30
|
+
}>;
|
|
31
|
+
signTransaction: (derivationPath: string, hashToSign: string) => Promise<string>;
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=cantonTestUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cantonTestUtils.d.ts","sourceRoot":"","sources":["../../src/test/cantonTestUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;CACnC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,iBAAiB,CAiDvD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,GACrB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE,CAwFpD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB;iCAEpB,MAAM;;;;sCAKD,MAAM,cAAc,MAAM;EAKrE"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canton Testing Utilities for Ed25519 Key Generation
|
|
3
|
+
*
|
|
4
|
+
* Provides utilities to generate proper Ed25519 keypairs for testing Canton
|
|
5
|
+
* onboarding without requiring physical Ledger devices.
|
|
6
|
+
*/
|
|
7
|
+
import crypto from "crypto";
|
|
8
|
+
/**
|
|
9
|
+
* Generate fresh Ed25519 keypair
|
|
10
|
+
*/
|
|
11
|
+
export function generateMockKeyPair() {
|
|
12
|
+
const { publicKey, privateKey } = crypto.generateKeyPairSync("ed25519");
|
|
13
|
+
const publicKeyBuffer = publicKey.export({ type: "spki", format: "der" });
|
|
14
|
+
const rawPublicKey = publicKeyBuffer.slice(-32);
|
|
15
|
+
const publicKeyHex = rawPublicKey.toString("hex");
|
|
16
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
17
|
+
const privateKeyPem = privateKey.export({ type: "pkcs8", format: "pem" });
|
|
18
|
+
const privateKeyDer = privateKey.export({ type: "pkcs8", format: "der" });
|
|
19
|
+
const privateKeyHex = privateKeyDer.toString("hex");
|
|
20
|
+
// Generate fingerprint: Canton computes SHA256(purpose_bytes + public_key_bytes)
|
|
21
|
+
// where purpose_bytes is 4-byte big-endian representation of PURPOSE_PUBLIC_KEY_FINGERPRINT (12)
|
|
22
|
+
const PURPOSE_PUBLIC_KEY_FINGERPRINT = 12;
|
|
23
|
+
const purposeBytes = Buffer.allocUnsafe(4);
|
|
24
|
+
purposeBytes.writeInt32BE(PURPOSE_PUBLIC_KEY_FINGERPRINT, 0);
|
|
25
|
+
const hash = crypto.createHash("sha256");
|
|
26
|
+
hash.update(purposeBytes);
|
|
27
|
+
hash.update(rawPublicKey);
|
|
28
|
+
const hashedContent = hash.digest();
|
|
29
|
+
// Multihash encoding: 0x12 (SHA256) + 0x20 (32 bytes) + hash
|
|
30
|
+
const multihashPrefix = Buffer.from([0x12, 0x20]);
|
|
31
|
+
const fingerprintBuffer = Buffer.concat([multihashPrefix, hashedContent]);
|
|
32
|
+
const fingerprint = fingerprintBuffer.toString("hex");
|
|
33
|
+
return {
|
|
34
|
+
publicKeyHex, // 64-char hex string (no 0x prefix)
|
|
35
|
+
privateKeyHex, // ASN.1 DER encoded private key in hex format
|
|
36
|
+
privateKeyPem, // PEM format string
|
|
37
|
+
fingerprint, // Canton format: multihash prefix + SHA256(public key)
|
|
38
|
+
/**
|
|
39
|
+
* Sign a transaction hash using proper Ed25519 signature
|
|
40
|
+
*/
|
|
41
|
+
sign: (hashHex) => {
|
|
42
|
+
const hashBuffer = Buffer.from(hashHex, "hex");
|
|
43
|
+
const privateKeyObj = crypto.createPrivateKey({
|
|
44
|
+
key: privateKeyPem,
|
|
45
|
+
format: "pem",
|
|
46
|
+
type: "pkcs8",
|
|
47
|
+
});
|
|
48
|
+
const signature = crypto.sign(null, hashBuffer, privateKeyObj);
|
|
49
|
+
return signature.toString("hex");
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Verify Ed25519 signature against public key and message hash
|
|
55
|
+
*/
|
|
56
|
+
export function verifySignature(publicKeyHex, signatureHex, messageHashHex) {
|
|
57
|
+
try {
|
|
58
|
+
// Clean inputs - remove 0x prefixes if present
|
|
59
|
+
const cleanPublicKey = publicKeyHex.startsWith("0x") ? publicKeyHex.slice(2) : publicKeyHex;
|
|
60
|
+
const cleanSignature = signatureHex.startsWith("0x") ? signatureHex.slice(2) : signatureHex;
|
|
61
|
+
const cleanMessageHash = messageHashHex.startsWith("0x")
|
|
62
|
+
? messageHashHex.slice(2)
|
|
63
|
+
: messageHashHex;
|
|
64
|
+
const details = {
|
|
65
|
+
publicKeyLength: cleanPublicKey.length,
|
|
66
|
+
signatureLength: cleanSignature.length,
|
|
67
|
+
messageHashLength: cleanMessageHash.length,
|
|
68
|
+
publicKeyBytes: cleanPublicKey.length / 2,
|
|
69
|
+
signatureBytes: cleanSignature.length / 2,
|
|
70
|
+
messageHashBytes: cleanMessageHash.length / 2,
|
|
71
|
+
};
|
|
72
|
+
// Validate input lengths
|
|
73
|
+
if (cleanPublicKey.length !== 64) {
|
|
74
|
+
return {
|
|
75
|
+
isValid: false,
|
|
76
|
+
error: `Invalid public key length: expected 64 hex chars (32 bytes), got ${cleanPublicKey.length}`,
|
|
77
|
+
details,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
// Ed25519 signatures should be 64 bytes, but we might receive 65 bytes with recovery ID
|
|
81
|
+
let processedSignature = cleanSignature;
|
|
82
|
+
if (cleanSignature.length === 130) {
|
|
83
|
+
processedSignature = cleanSignature.slice(2, -2);
|
|
84
|
+
details.originalSignatureLength = cleanSignature.length;
|
|
85
|
+
details.processedSignatureLength = processedSignature.length;
|
|
86
|
+
}
|
|
87
|
+
else if (cleanSignature.length !== 128) {
|
|
88
|
+
return {
|
|
89
|
+
isValid: false,
|
|
90
|
+
error: `Invalid signature length: expected 128 hex chars (64 bytes) or 130 hex chars (65 bytes), got ${cleanSignature.length}`,
|
|
91
|
+
details,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
// Convert hex to buffers
|
|
95
|
+
const publicKeyBuffer = Buffer.from(cleanPublicKey, "hex");
|
|
96
|
+
const signatureBuffer = Buffer.from(processedSignature, "hex");
|
|
97
|
+
const messageBuffer = Buffer.from(cleanMessageHash, "hex");
|
|
98
|
+
// Create public key object for verification
|
|
99
|
+
// Ed25519 public keys need to be wrapped in SPKI format for Node.js crypto
|
|
100
|
+
const spkiHeader = Buffer.from([
|
|
101
|
+
0x30,
|
|
102
|
+
0x2a, // SEQUENCE, length 42
|
|
103
|
+
0x30,
|
|
104
|
+
0x05, // SEQUENCE, length 5
|
|
105
|
+
0x06,
|
|
106
|
+
0x03,
|
|
107
|
+
0x2b,
|
|
108
|
+
0x65,
|
|
109
|
+
0x70, // OID for Ed25519
|
|
110
|
+
0x03,
|
|
111
|
+
0x21,
|
|
112
|
+
0x00, // BIT STRING, length 33, no unused bits
|
|
113
|
+
]);
|
|
114
|
+
const spkiPublicKey = Buffer.concat([spkiHeader, publicKeyBuffer]);
|
|
115
|
+
const publicKeyObj = crypto.createPublicKey({
|
|
116
|
+
key: spkiPublicKey,
|
|
117
|
+
format: "der",
|
|
118
|
+
type: "spki",
|
|
119
|
+
});
|
|
120
|
+
// Verify signature
|
|
121
|
+
const isValid = crypto.verify(null, messageBuffer, publicKeyObj, signatureBuffer);
|
|
122
|
+
return {
|
|
123
|
+
isValid,
|
|
124
|
+
details: {
|
|
125
|
+
...details,
|
|
126
|
+
processedSignatureLength: processedSignature.length,
|
|
127
|
+
verificationMethod: "Node.js crypto.verify with Ed25519",
|
|
128
|
+
},
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
return {
|
|
133
|
+
isValid: false,
|
|
134
|
+
error: `Verification failed: ${error instanceof Error ? error.message : String(error)}`,
|
|
135
|
+
details: { error: String(error) },
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
export function createMockSigner(keyPair) {
|
|
140
|
+
return {
|
|
141
|
+
getAddress: async (derivationPath) => ({
|
|
142
|
+
address: `canton_test_${keyPair.fingerprint.slice(-8)}`,
|
|
143
|
+
publicKey: keyPair.publicKeyHex,
|
|
144
|
+
}),
|
|
145
|
+
signTransaction: async (derivationPath, hashToSign) => {
|
|
146
|
+
const cleanHash = hashToSign.startsWith("0x") ? hashToSign.slice(2) : hashToSign;
|
|
147
|
+
return keyPair.sign(cleanHash);
|
|
148
|
+
},
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=cantonTestUtils.js.map
|