@ledgerhq/coin-mina 1.3.0-nightly.8 → 1.3.0
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 +21 -70
- package/lib/api/index.integ.test.d.ts +2 -0
- package/lib/api/index.integ.test.d.ts.map +1 -0
- package/lib/api/index.integ.test.js +57 -0
- package/lib/api/index.integ.test.js.map +1 -0
- package/lib/api/rosetta/utils.test.d.ts +2 -0
- package/lib/api/rosetta/utils.test.d.ts.map +1 -0
- package/lib/api/rosetta/utils.test.js +82 -0
- package/lib/api/rosetta/utils.test.js.map +1 -0
- package/lib/bridge/broadcast.test.d.ts +2 -0
- package/lib/bridge/broadcast.test.d.ts.map +1 -0
- package/lib/bridge/broadcast.test.js +36 -0
- package/lib/bridge/broadcast.test.js.map +1 -0
- package/lib/bridge/buildTransaction.test.d.ts +2 -0
- package/lib/bridge/buildTransaction.test.d.ts.map +1 -0
- package/lib/bridge/buildTransaction.test.js +57 -0
- package/lib/bridge/buildTransaction.test.js.map +1 -0
- package/lib/bridge/createTransaction.test.d.ts +2 -0
- package/lib/bridge/createTransaction.test.d.ts.map +1 -0
- package/lib/bridge/createTransaction.test.js +24 -0
- package/lib/bridge/createTransaction.test.js.map +1 -0
- package/lib/bridge/getTransactionStatus.test.d.ts +2 -0
- package/lib/bridge/getTransactionStatus.test.d.ts.map +1 -0
- package/lib/bridge/getTransactionStatus.test.js +138 -0
- package/lib/bridge/getTransactionStatus.test.js.map +1 -0
- package/lib/bridge/index.test.d.ts +2 -0
- package/lib/bridge/index.test.d.ts.map +1 -0
- package/lib/bridge/index.test.js +32 -0
- package/lib/bridge/index.test.js.map +1 -0
- package/lib/bridge/prepareTransaction.test.d.ts +2 -0
- package/lib/bridge/prepareTransaction.test.d.ts.map +1 -0
- package/lib/bridge/prepareTransaction.test.js +43 -0
- package/lib/bridge/prepareTransaction.test.js.map +1 -0
- package/lib/bridge/signOperation.test.d.ts +2 -0
- package/lib/bridge/signOperation.test.d.ts.map +1 -0
- package/lib/bridge/signOperation.test.js +129 -0
- package/lib/bridge/signOperation.test.js.map +1 -0
- package/lib/bridge/synchronisation.test.d.ts +2 -0
- package/lib/bridge/synchronisation.test.d.ts.map +1 -0
- package/lib/bridge/synchronisation.test.js +164 -0
- package/lib/bridge/synchronisation.test.js.map +1 -0
- package/lib/common-logic/index.test.d.ts +2 -0
- package/lib/common-logic/index.test.d.ts.map +1 -0
- package/lib/common-logic/index.test.js +181 -0
- package/lib/common-logic/index.test.js.map +1 -0
- package/lib/signer/getAddress.test.d.ts +2 -0
- package/lib/signer/getAddress.test.d.ts.map +1 -0
- package/lib/signer/getAddress.test.js +106 -0
- package/lib/signer/getAddress.test.js.map +1 -0
- package/lib/test/testUtils.test.d.ts +2 -0
- package/lib/test/testUtils.test.d.ts.map +1 -0
- package/lib/test/testUtils.test.js +11 -0
- package/lib/test/testUtils.test.js.map +1 -0
- package/lib-es/api/index.integ.test.d.ts +2 -0
- package/lib-es/api/index.integ.test.d.ts.map +1 -0
- package/lib-es/api/index.integ.test.js +55 -0
- package/lib-es/api/index.integ.test.js.map +1 -0
- package/lib-es/api/rosetta/utils.test.d.ts +2 -0
- package/lib-es/api/rosetta/utils.test.d.ts.map +1 -0
- package/lib-es/api/rosetta/utils.test.js +80 -0
- package/lib-es/api/rosetta/utils.test.js.map +1 -0
- package/lib-es/bridge/broadcast.test.d.ts +2 -0
- package/lib-es/bridge/broadcast.test.d.ts.map +1 -0
- package/lib-es/bridge/broadcast.test.js +31 -0
- package/lib-es/bridge/broadcast.test.js.map +1 -0
- package/lib-es/bridge/buildTransaction.test.d.ts +2 -0
- package/lib-es/bridge/buildTransaction.test.d.ts.map +1 -0
- package/lib-es/bridge/buildTransaction.test.js +55 -0
- package/lib-es/bridge/buildTransaction.test.js.map +1 -0
- package/lib-es/bridge/createTransaction.test.d.ts +2 -0
- package/lib-es/bridge/createTransaction.test.d.ts.map +1 -0
- package/lib-es/bridge/createTransaction.test.js +19 -0
- package/lib-es/bridge/createTransaction.test.js.map +1 -0
- package/lib-es/bridge/getTransactionStatus.test.d.ts +2 -0
- package/lib-es/bridge/getTransactionStatus.test.d.ts.map +1 -0
- package/lib-es/bridge/getTransactionStatus.test.js +133 -0
- package/lib-es/bridge/getTransactionStatus.test.js.map +1 -0
- package/lib-es/bridge/index.test.d.ts +2 -0
- package/lib-es/bridge/index.test.d.ts.map +1 -0
- package/lib-es/bridge/index.test.js +30 -0
- package/lib-es/bridge/index.test.js.map +1 -0
- package/lib-es/bridge/prepareTransaction.test.d.ts +2 -0
- package/lib-es/bridge/prepareTransaction.test.d.ts.map +1 -0
- package/lib-es/bridge/prepareTransaction.test.js +38 -0
- package/lib-es/bridge/prepareTransaction.test.js.map +1 -0
- package/lib-es/bridge/signOperation.test.d.ts +2 -0
- package/lib-es/bridge/signOperation.test.d.ts.map +1 -0
- package/lib-es/bridge/signOperation.test.js +127 -0
- package/lib-es/bridge/signOperation.test.js.map +1 -0
- package/lib-es/bridge/synchronisation.test.d.ts +2 -0
- package/lib-es/bridge/synchronisation.test.d.ts.map +1 -0
- package/lib-es/bridge/synchronisation.test.js +159 -0
- package/lib-es/bridge/synchronisation.test.js.map +1 -0
- package/lib-es/common-logic/index.test.d.ts +2 -0
- package/lib-es/common-logic/index.test.d.ts.map +1 -0
- package/lib-es/common-logic/index.test.js +179 -0
- package/lib-es/common-logic/index.test.js.map +1 -0
- package/lib-es/signer/getAddress.test.d.ts +2 -0
- package/lib-es/signer/getAddress.test.d.ts.map +1 -0
- package/lib-es/signer/getAddress.test.js +101 -0
- package/lib-es/signer/getAddress.test.js.map +1 -0
- package/lib-es/test/testUtils.test.d.ts +2 -0
- package/lib-es/test/testUtils.test.d.ts.map +1 -0
- package/lib-es/test/testUtils.test.js +9 -0
- package/lib-es/test/testUtils.test.js.map +1 -0
- package/package.json +8 -8
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import resolver from "./getAddress";
|
|
2
|
+
import { getCryptoCurrencyById } from "@ledgerhq/cryptoassets/lib/currencies";
|
|
3
|
+
describe("Mina getAddress resolver", () => {
|
|
4
|
+
// Mock the signer context
|
|
5
|
+
const mockSigner = {
|
|
6
|
+
getAddress: jest.fn(),
|
|
7
|
+
signTransaction: jest.fn(),
|
|
8
|
+
};
|
|
9
|
+
const commonOptions = {
|
|
10
|
+
currency: getCryptoCurrencyById("mina"),
|
|
11
|
+
derivationMode: "minabip44",
|
|
12
|
+
};
|
|
13
|
+
const mockSignerContext = jest.fn(async (deviceId, callback) => {
|
|
14
|
+
return callback(mockSigner);
|
|
15
|
+
});
|
|
16
|
+
beforeEach(() => {
|
|
17
|
+
jest.clearAllMocks();
|
|
18
|
+
});
|
|
19
|
+
it("should call the signer with the correct account number", async () => {
|
|
20
|
+
const options = {
|
|
21
|
+
...commonOptions,
|
|
22
|
+
path: "44'/12586'/0'/0/0",
|
|
23
|
+
verify: false,
|
|
24
|
+
};
|
|
25
|
+
// Mock response from signer
|
|
26
|
+
mockSigner.getAddress.mockResolvedValue({
|
|
27
|
+
publicKey: "testPublicKey123",
|
|
28
|
+
});
|
|
29
|
+
const getAddress = resolver(mockSignerContext);
|
|
30
|
+
await getAddress("device1", options);
|
|
31
|
+
expect(mockSigner.getAddress).toHaveBeenCalledWith(0, false);
|
|
32
|
+
});
|
|
33
|
+
it("should pass the verify flag correctly", async () => {
|
|
34
|
+
const options = {
|
|
35
|
+
path: "44'/12586'/2'/0/0",
|
|
36
|
+
verify: true,
|
|
37
|
+
...commonOptions,
|
|
38
|
+
};
|
|
39
|
+
// Mock response from signer
|
|
40
|
+
mockSigner.getAddress.mockResolvedValue({
|
|
41
|
+
publicKey: "testPublicKey456",
|
|
42
|
+
});
|
|
43
|
+
const getAddress = resolver(mockSignerContext);
|
|
44
|
+
await getAddress("device1", options);
|
|
45
|
+
expect(mockSigner.getAddress).toHaveBeenCalledWith(2, true);
|
|
46
|
+
});
|
|
47
|
+
it("should default to verify=false when not provided", async () => {
|
|
48
|
+
const options = {
|
|
49
|
+
path: "44'/12586'/1'/0/0",
|
|
50
|
+
...commonOptions,
|
|
51
|
+
};
|
|
52
|
+
// Mock response from signer
|
|
53
|
+
mockSigner.getAddress.mockResolvedValue({
|
|
54
|
+
publicKey: "testPublicKey789",
|
|
55
|
+
});
|
|
56
|
+
const getAddress = resolver(mockSignerContext);
|
|
57
|
+
await getAddress("device1", options);
|
|
58
|
+
expect(mockSigner.getAddress).toHaveBeenCalledWith(1, false);
|
|
59
|
+
});
|
|
60
|
+
it("should return the correct address format", async () => {
|
|
61
|
+
const options = {
|
|
62
|
+
path: "44'/12586'/3'/0/0",
|
|
63
|
+
...commonOptions,
|
|
64
|
+
};
|
|
65
|
+
const expectedPublicKey = "minaPublicKeyABC123";
|
|
66
|
+
// Mock response from signer
|
|
67
|
+
mockSigner.getAddress.mockResolvedValue({
|
|
68
|
+
publicKey: expectedPublicKey,
|
|
69
|
+
});
|
|
70
|
+
const getAddress = resolver(mockSignerContext);
|
|
71
|
+
const result = await getAddress("device1", options);
|
|
72
|
+
expect(result).toEqual({
|
|
73
|
+
address: expectedPublicKey,
|
|
74
|
+
publicKey: expectedPublicKey,
|
|
75
|
+
path: options.path,
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
it("should throw an error for invalid path", async () => {
|
|
79
|
+
const options = {
|
|
80
|
+
path: "44'/789'/0'/0/0", // Invalid coin type for Mina
|
|
81
|
+
verify: false,
|
|
82
|
+
...commonOptions,
|
|
83
|
+
};
|
|
84
|
+
const getAddress = resolver(mockSignerContext);
|
|
85
|
+
await expect(getAddress("device1", options)).rejects.toThrow();
|
|
86
|
+
});
|
|
87
|
+
it("should throw an error when publicKey is undefined", async () => {
|
|
88
|
+
const options = {
|
|
89
|
+
path: "44'/12586'/0'/0/0",
|
|
90
|
+
verify: false,
|
|
91
|
+
...commonOptions,
|
|
92
|
+
};
|
|
93
|
+
// Mock response from signer with undefined publicKey
|
|
94
|
+
mockSigner.getAddress.mockResolvedValue({
|
|
95
|
+
publicKey: undefined,
|
|
96
|
+
});
|
|
97
|
+
const getAddress = resolver(mockSignerContext);
|
|
98
|
+
await expect(getAddress("device1", options)).rejects.toThrow("[mina] getAddress: expected publicKey to be defined");
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
//# sourceMappingURL=getAddress.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getAddress.test.js","sourceRoot":"","sources":["../../src/signer/getAddress.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testUtils.test.d.ts","sourceRoot":"","sources":["../../src/test/testUtils.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { getRandomTransferID } from "./testUtils";
|
|
2
|
+
describe("testUtils", () => {
|
|
3
|
+
it("getRandomTransferID", () => {
|
|
4
|
+
const id = getRandomTransferID();
|
|
5
|
+
expect(id).toBeDefined();
|
|
6
|
+
expect(id.length).toBeGreaterThan(0);
|
|
7
|
+
});
|
|
8
|
+
});
|
|
9
|
+
//# sourceMappingURL=testUtils.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testUtils.test.js","sourceRoot":"","sources":["../../src/test/testUtils.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC7B,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAAC;QACjC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACzB,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ledgerhq/coin-mina",
|
|
3
|
-
"version": "1.3.0
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "Mina Coin integration",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Ledger",
|
|
@@ -108,14 +108,14 @@
|
|
|
108
108
|
"invariant": "^2.2.2",
|
|
109
109
|
"lodash": "^4.17.21",
|
|
110
110
|
"rxjs": "^7.8.1",
|
|
111
|
-
"@ledgerhq/coin-framework": "^6.7.0
|
|
112
|
-
"@ledgerhq/cryptoassets": "^13.31.0
|
|
113
|
-
"@ledgerhq/devices": "8.6.
|
|
114
|
-
"@ledgerhq/errors": "^6.
|
|
115
|
-
"@ledgerhq/live-network": "^2.0.20
|
|
111
|
+
"@ledgerhq/coin-framework": "^6.7.0",
|
|
112
|
+
"@ledgerhq/cryptoassets": "^13.31.0",
|
|
113
|
+
"@ledgerhq/devices": "8.6.1",
|
|
114
|
+
"@ledgerhq/errors": "^6.26.0",
|
|
115
|
+
"@ledgerhq/live-network": "^2.0.20",
|
|
116
116
|
"@ledgerhq/logs": "^6.13.0",
|
|
117
|
-
"@ledgerhq/types-cryptoassets": "^7.29.0
|
|
118
|
-
"@ledgerhq/types-live": "^6.87.0
|
|
117
|
+
"@ledgerhq/types-cryptoassets": "^7.29.0",
|
|
118
|
+
"@ledgerhq/types-live": "^6.87.0"
|
|
119
119
|
},
|
|
120
120
|
"devDependencies": {
|
|
121
121
|
"@types/bs58check": "^2.1.2",
|