@ledgerhq/coin-mina 1.3.0 → 1.3.1-nightly.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.
Files changed (106) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/package.json +6 -6
  3. package/lib/api/index.integ.test.d.ts +0 -2
  4. package/lib/api/index.integ.test.d.ts.map +0 -1
  5. package/lib/api/index.integ.test.js +0 -57
  6. package/lib/api/index.integ.test.js.map +0 -1
  7. package/lib/api/rosetta/utils.test.d.ts +0 -2
  8. package/lib/api/rosetta/utils.test.d.ts.map +0 -1
  9. package/lib/api/rosetta/utils.test.js +0 -82
  10. package/lib/api/rosetta/utils.test.js.map +0 -1
  11. package/lib/bridge/broadcast.test.d.ts +0 -2
  12. package/lib/bridge/broadcast.test.d.ts.map +0 -1
  13. package/lib/bridge/broadcast.test.js +0 -36
  14. package/lib/bridge/broadcast.test.js.map +0 -1
  15. package/lib/bridge/buildTransaction.test.d.ts +0 -2
  16. package/lib/bridge/buildTransaction.test.d.ts.map +0 -1
  17. package/lib/bridge/buildTransaction.test.js +0 -57
  18. package/lib/bridge/buildTransaction.test.js.map +0 -1
  19. package/lib/bridge/createTransaction.test.d.ts +0 -2
  20. package/lib/bridge/createTransaction.test.d.ts.map +0 -1
  21. package/lib/bridge/createTransaction.test.js +0 -24
  22. package/lib/bridge/createTransaction.test.js.map +0 -1
  23. package/lib/bridge/getTransactionStatus.test.d.ts +0 -2
  24. package/lib/bridge/getTransactionStatus.test.d.ts.map +0 -1
  25. package/lib/bridge/getTransactionStatus.test.js +0 -138
  26. package/lib/bridge/getTransactionStatus.test.js.map +0 -1
  27. package/lib/bridge/index.test.d.ts +0 -2
  28. package/lib/bridge/index.test.d.ts.map +0 -1
  29. package/lib/bridge/index.test.js +0 -32
  30. package/lib/bridge/index.test.js.map +0 -1
  31. package/lib/bridge/prepareTransaction.test.d.ts +0 -2
  32. package/lib/bridge/prepareTransaction.test.d.ts.map +0 -1
  33. package/lib/bridge/prepareTransaction.test.js +0 -43
  34. package/lib/bridge/prepareTransaction.test.js.map +0 -1
  35. package/lib/bridge/signOperation.test.d.ts +0 -2
  36. package/lib/bridge/signOperation.test.d.ts.map +0 -1
  37. package/lib/bridge/signOperation.test.js +0 -129
  38. package/lib/bridge/signOperation.test.js.map +0 -1
  39. package/lib/bridge/synchronisation.test.d.ts +0 -2
  40. package/lib/bridge/synchronisation.test.d.ts.map +0 -1
  41. package/lib/bridge/synchronisation.test.js +0 -164
  42. package/lib/bridge/synchronisation.test.js.map +0 -1
  43. package/lib/common-logic/index.test.d.ts +0 -2
  44. package/lib/common-logic/index.test.d.ts.map +0 -1
  45. package/lib/common-logic/index.test.js +0 -181
  46. package/lib/common-logic/index.test.js.map +0 -1
  47. package/lib/signer/getAddress.test.d.ts +0 -2
  48. package/lib/signer/getAddress.test.d.ts.map +0 -1
  49. package/lib/signer/getAddress.test.js +0 -106
  50. package/lib/signer/getAddress.test.js.map +0 -1
  51. package/lib/test/testUtils.test.d.ts +0 -2
  52. package/lib/test/testUtils.test.d.ts.map +0 -1
  53. package/lib/test/testUtils.test.js +0 -11
  54. package/lib/test/testUtils.test.js.map +0 -1
  55. package/lib-es/api/index.integ.test.d.ts +0 -2
  56. package/lib-es/api/index.integ.test.d.ts.map +0 -1
  57. package/lib-es/api/index.integ.test.js +0 -55
  58. package/lib-es/api/index.integ.test.js.map +0 -1
  59. package/lib-es/api/rosetta/utils.test.d.ts +0 -2
  60. package/lib-es/api/rosetta/utils.test.d.ts.map +0 -1
  61. package/lib-es/api/rosetta/utils.test.js +0 -80
  62. package/lib-es/api/rosetta/utils.test.js.map +0 -1
  63. package/lib-es/bridge/broadcast.test.d.ts +0 -2
  64. package/lib-es/bridge/broadcast.test.d.ts.map +0 -1
  65. package/lib-es/bridge/broadcast.test.js +0 -31
  66. package/lib-es/bridge/broadcast.test.js.map +0 -1
  67. package/lib-es/bridge/buildTransaction.test.d.ts +0 -2
  68. package/lib-es/bridge/buildTransaction.test.d.ts.map +0 -1
  69. package/lib-es/bridge/buildTransaction.test.js +0 -55
  70. package/lib-es/bridge/buildTransaction.test.js.map +0 -1
  71. package/lib-es/bridge/createTransaction.test.d.ts +0 -2
  72. package/lib-es/bridge/createTransaction.test.d.ts.map +0 -1
  73. package/lib-es/bridge/createTransaction.test.js +0 -19
  74. package/lib-es/bridge/createTransaction.test.js.map +0 -1
  75. package/lib-es/bridge/getTransactionStatus.test.d.ts +0 -2
  76. package/lib-es/bridge/getTransactionStatus.test.d.ts.map +0 -1
  77. package/lib-es/bridge/getTransactionStatus.test.js +0 -133
  78. package/lib-es/bridge/getTransactionStatus.test.js.map +0 -1
  79. package/lib-es/bridge/index.test.d.ts +0 -2
  80. package/lib-es/bridge/index.test.d.ts.map +0 -1
  81. package/lib-es/bridge/index.test.js +0 -30
  82. package/lib-es/bridge/index.test.js.map +0 -1
  83. package/lib-es/bridge/prepareTransaction.test.d.ts +0 -2
  84. package/lib-es/bridge/prepareTransaction.test.d.ts.map +0 -1
  85. package/lib-es/bridge/prepareTransaction.test.js +0 -38
  86. package/lib-es/bridge/prepareTransaction.test.js.map +0 -1
  87. package/lib-es/bridge/signOperation.test.d.ts +0 -2
  88. package/lib-es/bridge/signOperation.test.d.ts.map +0 -1
  89. package/lib-es/bridge/signOperation.test.js +0 -127
  90. package/lib-es/bridge/signOperation.test.js.map +0 -1
  91. package/lib-es/bridge/synchronisation.test.d.ts +0 -2
  92. package/lib-es/bridge/synchronisation.test.d.ts.map +0 -1
  93. package/lib-es/bridge/synchronisation.test.js +0 -159
  94. package/lib-es/bridge/synchronisation.test.js.map +0 -1
  95. package/lib-es/common-logic/index.test.d.ts +0 -2
  96. package/lib-es/common-logic/index.test.d.ts.map +0 -1
  97. package/lib-es/common-logic/index.test.js +0 -179
  98. package/lib-es/common-logic/index.test.js.map +0 -1
  99. package/lib-es/signer/getAddress.test.d.ts +0 -2
  100. package/lib-es/signer/getAddress.test.d.ts.map +0 -1
  101. package/lib-es/signer/getAddress.test.js +0 -101
  102. package/lib-es/signer/getAddress.test.js.map +0 -1
  103. package/lib-es/test/testUtils.test.d.ts +0 -2
  104. package/lib-es/test/testUtils.test.d.ts.map +0 -1
  105. package/lib-es/test/testUtils.test.js +0 -9
  106. package/lib-es/test/testUtils.test.js.map +0 -1
@@ -1,127 +0,0 @@
1
- import { BigNumber } from "bignumber.js";
2
- import { firstValueFrom } from "rxjs";
3
- import { encodeOperationId } from "@ledgerhq/coin-framework/operation";
4
- import { buildSignOperation, buildOptimisticOperation } from "./signOperation";
5
- import { buildTransaction } from "./buildTransaction";
6
- import { reEncodeRawSignature } from "../common-logic";
7
- import { createMockAccount, createMockTransaction, createMockUnsignedTransaction, mockDeviceId, createMockSignerContext, } from "../test/fixtures";
8
- // Mock dependencies
9
- jest.mock("@ledgerhq/coin-framework/operation");
10
- jest.mock("./buildTransaction");
11
- jest.mock("../common-logic");
12
- describe("signOperation", () => {
13
- // Mock reset before each test
14
- beforeEach(() => {
15
- jest.clearAllMocks();
16
- // Setup mocks
17
- encodeOperationId.mockReturnValue("mock_operation_id");
18
- buildTransaction.mockResolvedValue(mockUnsignedTransaction);
19
- reEncodeRawSignature.mockReturnValue("encoded_signature");
20
- });
21
- // Use fixtures instead of defining mock data locally
22
- const mockAccount = createMockAccount();
23
- const mockTransaction = createMockTransaction();
24
- const mockUnsignedTransaction = createMockUnsignedTransaction(mockAccount, mockTransaction);
25
- const mockSignerContext = createMockSignerContext();
26
- describe("buildOptimisticOperation", () => {
27
- it("should build operation with correct values", () => {
28
- const result = buildOptimisticOperation(mockAccount, mockTransaction, new BigNumber(10));
29
- expect(result).toEqual({
30
- id: "mock_operation_id",
31
- hash: "",
32
- type: "OUT",
33
- value: new BigNumber(1010), // amount + fee
34
- fee: new BigNumber(10),
35
- blockHash: null,
36
- blockHeight: null,
37
- senders: [mockAccount.freshAddress],
38
- recipients: [mockTransaction.recipient],
39
- accountId: mockAccount.id,
40
- date: expect.any(Date),
41
- extra: {
42
- memo: "test memo",
43
- accountCreationFee: "0",
44
- },
45
- });
46
- expect(encodeOperationId).toHaveBeenCalledWith(mockAccount.id, "", "OUT");
47
- });
48
- it("should subtract account creation fee from value when present", () => {
49
- const txWithCreationFee = createMockTransaction({
50
- fees: {
51
- fee: new BigNumber(10),
52
- accountCreationFee: new BigNumber(5),
53
- },
54
- });
55
- const result = buildOptimisticOperation(mockAccount, txWithCreationFee, new BigNumber(10));
56
- // Value should be amount + fee - accountCreationFee = 1000 + 10 - 5 = 1005
57
- expect(result.value).toEqual(new BigNumber(1005));
58
- expect(result.extra.accountCreationFee).toBe("5");
59
- });
60
- });
61
- describe("buildSignOperation", () => {
62
- it("should emit correct events and return signed operation", done => {
63
- const signOperation = buildSignOperation(mockSignerContext);
64
- const events = [];
65
- const observable = signOperation({
66
- account: mockAccount,
67
- transaction: mockTransaction,
68
- deviceId: mockDeviceId,
69
- });
70
- observable.subscribe({
71
- next: event => {
72
- events.push(event.type);
73
- if (event.type === "signed") {
74
- const { operation, signature } = event.signedOperation;
75
- // Check operation
76
- expect(operation).toEqual(expect.objectContaining({
77
- id: "mock_operation_id",
78
- type: "OUT",
79
- value: new BigNumber(1010),
80
- fee: new BigNumber(10),
81
- senders: [mockAccount.freshAddress],
82
- recipients: [mockTransaction.recipient],
83
- }));
84
- // Check signature
85
- const parsedSignature = JSON.parse(signature);
86
- expect(parsedSignature).toEqual({
87
- transaction: mockUnsignedTransaction,
88
- signature: "encoded_signature",
89
- });
90
- }
91
- },
92
- complete: () => {
93
- // Check all events were emitted in the correct order
94
- expect(events).toEqual([
95
- "device-signature-requested",
96
- "device-signature-granted",
97
- "signed",
98
- ]);
99
- done();
100
- },
101
- error: error => done(error),
102
- });
103
- });
104
- it("should build transaction with correct parameters", async () => {
105
- const signOperation = buildSignOperation(mockSignerContext);
106
- const observable = signOperation({
107
- account: mockAccount,
108
- transaction: mockTransaction,
109
- deviceId: mockDeviceId,
110
- });
111
- await firstValueFrom(observable.pipe());
112
- expect(buildTransaction).toHaveBeenCalledWith(mockAccount, mockTransaction);
113
- });
114
- it("should call signer with correct parameters", async () => {
115
- const mockSignerContextSpy = createMockSignerContext();
116
- const signOperation = buildSignOperation(mockSignerContextSpy);
117
- const observable = signOperation({
118
- account: mockAccount,
119
- transaction: mockTransaction,
120
- deviceId: mockDeviceId,
121
- });
122
- await firstValueFrom(observable.pipe());
123
- expect(mockSignerContextSpy).toHaveBeenCalledWith(mockDeviceId, expect.any(Function));
124
- });
125
- });
126
- });
127
- //# sourceMappingURL=signOperation.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signOperation.test.js","sourceRoot":"","sources":["../../src/bridge/signOperation.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=synchronisation.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"synchronisation.test.d.ts","sourceRoot":"","sources":["../../src/bridge/synchronisation.test.ts"],"names":[],"mappings":""}
@@ -1,159 +0,0 @@
1
- import { getAccountShape, mapRosettaTxnToOperation } from "./synchronisation";
2
- jest.mock("@ledgerhq/coin-framework/account/accountId");
3
- jest.mock("@ledgerhq/coin-framework/bridge/jsHelpers");
4
- jest.mock("@ledgerhq/coin-framework/operation");
5
- jest.mock("../api");
6
- import { encodeAccountId } from "@ledgerhq/coin-framework/account/accountId";
7
- import { mergeOps } from "@ledgerhq/coin-framework/bridge/jsHelpers";
8
- import { encodeOperationId } from "@ledgerhq/coin-framework/operation";
9
- import { getAccount, getTransactions, getBlockInfo } from "../api";
10
- import BigNumber from "bignumber.js";
11
- import { createMockTxn, createMockAccountInfo, mockBlockInfo, mockAccountData, } from "../test/fixtures";
12
- describe("synchronisation", () => {
13
- beforeEach(() => {
14
- jest.clearAllMocks();
15
- });
16
- describe("mapRosettaTxnToOperation", () => {
17
- const mockAccountId = "account_id";
18
- const mockAddress = "sender_address";
19
- beforeEach(() => {
20
- jest.spyOn({ getBlockInfo }, "getBlockInfo").mockResolvedValue(mockBlockInfo);
21
- jest
22
- .spyOn({ encodeOperationId }, "encodeOperationId")
23
- .mockReturnValue("encoded_operation_id");
24
- });
25
- it("should map payment transaction (OUT)", async () => {
26
- const mockTxn = createMockTxn({
27
- type: "OUT",
28
- senderAddress: mockAddress,
29
- receiverAddress: "receiver_address",
30
- status: "Success",
31
- });
32
- const result = await mapRosettaTxnToOperation(mockAccountId, mockAddress, mockTxn);
33
- expect(result).toHaveLength(1);
34
- expect(result[0]).toEqual({
35
- id: "encoded_operation_id",
36
- type: "OUT",
37
- hash: "tx_hash",
38
- value: new BigNumber(900),
39
- fee: new BigNumber(-100),
40
- blockHeight: 123,
41
- hasFailed: false,
42
- blockHash: "block_hash",
43
- accountId: mockAccountId,
44
- senders: [mockAddress],
45
- recipients: ["receiver_address"],
46
- date: new Date(1672531200000),
47
- extra: {
48
- memo: "test memo",
49
- accountCreationFee: "0",
50
- },
51
- });
52
- });
53
- it("should map payment transaction (IN)", async () => {
54
- const mockTxn = createMockTxn({
55
- type: "IN",
56
- senderAddress: "sender_other",
57
- receiverAddress: mockAddress,
58
- status: "Success",
59
- });
60
- const result = await mapRosettaTxnToOperation(mockAccountId, mockAddress, mockTxn);
61
- expect(result).toHaveLength(1);
62
- expect(result[0]).toEqual({
63
- id: "encoded_operation_id",
64
- type: "IN",
65
- hash: "tx_hash",
66
- value: new BigNumber(1000),
67
- fee: new BigNumber(-100),
68
- blockHeight: 123,
69
- hasFailed: false,
70
- blockHash: "block_hash",
71
- accountId: mockAccountId,
72
- senders: ["sender_other"],
73
- recipients: [mockAddress],
74
- date: new Date(1672531200000),
75
- extra: {
76
- memo: "test memo",
77
- accountCreationFee: "0",
78
- },
79
- });
80
- });
81
- it("should map redelegate transaction", async () => {
82
- const mockTxn = createMockTxn({
83
- type: "REDELEGATE",
84
- senderAddress: mockAddress,
85
- receiverAddress: "not_used",
86
- memo: "redelegate",
87
- status: "Success",
88
- });
89
- const result = await mapRosettaTxnToOperation(mockAccountId, mockAddress, mockTxn);
90
- expect(result).toHaveLength(1);
91
- expect(result[0]).toEqual({
92
- id: "encoded_operation_id",
93
- type: "REDELEGATE",
94
- hash: "tx_hash",
95
- value: new BigNumber(0),
96
- fee: new BigNumber(0),
97
- blockHeight: 123,
98
- hasFailed: false,
99
- blockHash: "block_hash",
100
- accountId: mockAccountId,
101
- senders: [mockAddress],
102
- recipients: ["unknown"],
103
- date: new Date(1672531200000),
104
- extra: {
105
- memo: "redelegate",
106
- accountCreationFee: "0",
107
- },
108
- });
109
- });
110
- it("should handle failed transactions", async () => {
111
- const mockTxn = createMockTxn({
112
- type: "OUT",
113
- senderAddress: mockAddress,
114
- receiverAddress: "receiver_address",
115
- status: "Failed",
116
- memo: "failed",
117
- });
118
- const result = await mapRosettaTxnToOperation(mockAccountId, mockAddress, mockTxn);
119
- expect(result).toHaveLength(1);
120
- expect(result[0].hasFailed).toBe(true);
121
- });
122
- });
123
- describe("getAccountShape", () => {
124
- beforeEach(() => {
125
- jest.spyOn({ encodeAccountId }, "encodeAccountId").mockReturnValue("account_id");
126
- jest.spyOn({ getAccount }, "getAccount").mockResolvedValue(mockAccountData);
127
- jest.spyOn({ getTransactions }, "getTransactions").mockResolvedValue([]);
128
- jest.spyOn({ mergeOps }, "mergeOps").mockReturnValue([]);
129
- });
130
- it("should get account shape with correct data", async () => {
131
- const mockInfo = createMockAccountInfo();
132
- const result = await getAccountShape(mockInfo, {
133
- paginationConfig: {
134
- operationsPerAccountId: {
135
- account_id: 10,
136
- },
137
- },
138
- });
139
- expect(encodeAccountId).toHaveBeenCalledWith({
140
- type: "js",
141
- version: "2",
142
- currencyId: "mina",
143
- xpubOrAddress: "test_address",
144
- derivationMode: "minabip44",
145
- });
146
- expect(getAccount).toHaveBeenCalledWith("test_address");
147
- expect(getTransactions).toHaveBeenCalledWith("test_address", 0);
148
- expect(result).toEqual({
149
- id: "account_id",
150
- balance: mockAccountData.balance,
151
- spendableBalance: mockAccountData.spendableBalance,
152
- blockHeight: mockAccountData.blockHeight,
153
- operationsCount: 0,
154
- operations: [],
155
- });
156
- });
157
- });
158
- });
159
- //# sourceMappingURL=synchronisation.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"synchronisation.test.js","sourceRoot":"","sources":["../../src/bridge/synchronisation.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=index.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../src/common-logic/index.test.ts"],"names":[],"mappings":""}
@@ -1,179 +0,0 @@
1
- import { getAccountNumFromPath, isValidAddress, getMaxAmount, getTotalSpent, reEncodeRawSignature, isValidMemo, } from ".";
2
- import { BigNumber } from "bignumber.js";
3
- import { MAX_MEMO_LENGTH } from "../consts";
4
- // Mock functions to create test objects
5
- function createMockAccount(overrides = {}) {
6
- return {
7
- spendableBalance: new BigNumber(1000),
8
- pendingOperations: [],
9
- ...overrides,
10
- };
11
- }
12
- function createMockTransaction(overrides = {}) {
13
- return {
14
- family: "mina",
15
- amount: new BigNumber(0),
16
- recipient: "B62qiVhtBtqakq8sNTHdCTXn6tETSK6gtsmNHRn1WdLqjGLpsHbw1xc",
17
- ...overrides,
18
- };
19
- }
20
- describe("getAccountNumFromPath", () => {
21
- it("should return undefined for invalid account number", () => {
22
- const account = getAccountNumFromPath("44'/616'/4'/0/0");
23
- expect(account).toBe(undefined);
24
- });
25
- it("should return undefined for unsupported path", () => {
26
- const account = getAccountNumFromPath("44'/616'/4/0/0");
27
- expect(account).toBe(undefined);
28
- });
29
- it("should return the account number", () => {
30
- const account = getAccountNumFromPath("44'/12586'/4'/0/0");
31
- expect(account).toBe(4);
32
- });
33
- });
34
- describe("testingAddress", () => {
35
- const validAddresses = [
36
- "B62qiVhtBtqakq8sNTHdCTXn6tETSK6gtsmNHRn1WdLqjGLpsHbw1xc",
37
- "B62qr5cXFjdnZXYxP5dEwRY7wENxcod4Q2oLxUDiq1QrBXZZyxMH8q4",
38
- "B62qqmRToRiXZjyLLMJoGnQFXXZuZWdqaNYr43xEDDQzkXMHLouCMZp",
39
- "B62qnixP59E4vJytpDWZ5YQPrnmqb7YNwhVWiuSAkxbYdX5RauHWwcm",
40
- "B62qmfBiJx88gM9opov4MDxmDVKMutQsBQ1aGt7TrQYyGQx66fRFxvC",
41
- "B62qosg21UpwpfPFaxTyirdfUVDHe2Ynsyv1QydE4z34zbLuBZ92ALM",
42
- "B62qkWUvsVEnXmd4poHbkKujHNnjxkDcZtrLxN1FTa8pp3GkfHMB1gv",
43
- "B62qoiK7DJurVUUJx1dmJGULdNUmX5bjdiYvoWXEXGugS2Cx3YDsHhy",
44
- "B62qn1KptFUxxu8aRS52NGQ3GWzn5h8v7U9k571r4LCs5obpoZyd81e",
45
- "B62qis2tX1rveddCeJeBAZJnXcCwWPp1x9ScZ3iMCxbV29gRbxWo7qi",
46
- "B62qpBKEDTnS4efjBmou7iztx5x152JEmc29XMR1Y3FVCpnmfKGX4R4",
47
- "B62qro5bGnk7eCNMA1S5QWmzn5sCcRWckbw83GGaqN3HM2QzP9zYS83",
48
- "B62qospDjUj43x2yMKiNehojWWRUsE1wpdUDVpfxH8V3n5Y1QgJKFfw",
49
- "B62qrmYwToypQv8v9cjxJdyhAxKihrqtTtEkYC4Y3u412KCPLGSD93V",
50
- "B62qj3rpYkGM1T3VN6JDAJs9NccHCRQDYMcQ6UCBc81ff5HXTDjU44d",
51
- "B62qp2kks3r14P8GWkR2ieT18JobwnmrBFGEoqy3dAReiyM8aDp4be7",
52
- "B62qpW1SYPcp7TcHJYL6egnN9qzvNtQL5XGyiM8S6UsHvxCYzhhFPjz",
53
- "B62qospDjUj43x2yMKiNehojWWRUsE1wpdUDVpfxH8V3n5Y1QgJKFfw",
54
- "B62qj5L8U8A8gexpHLWHxBdfjKuWb8HMguVPecQ5FGqgZAwBAKHvhEy",
55
- "B62qnt5WShcbVVnVqQqWjkyMJdxMwLq4QbRbgMjoi5nmvQw7dZLRtpx",
56
- "B62qrGUxqRWn9A8PEJschgLZuS5S1GJiairh65mgTapaK58nkTKHUs8",
57
- "B62qkS7hmMkzmNDjeCUKyAMZSw1c98MxszZPA7WnvBuh7Pq66ztiwdt",
58
- "B62qjGWerE9MPNk7E2jEJe9Ex5GxkNR9JCc5mhFeJdGFaNDHnMdGQJQ",
59
- "B62qpp2DLkLxwFn1QZdkEWgiRFMYnkgh6cj5AJC5pqCYiALh8BmiYJ8",
60
- "B62qqALaAoEnaJPSNmQaDkUwFGiKwZo4zRK4Ay5eSMxAMVhNxwr2KeM",
61
- "B62qospDjUj43x2yMKiNehojWWRUsE1wpdUDVpfxH8V3n5Y1QgJKFfw",
62
- "B62qr3epzHUrxrdminUN4Hzuinuc7aBDAFSR94mPmmxVsbuFpUvDDq6",
63
- "B62qrJurUKtcqdhQu1XtJJfSH7rR1xrEtSWPQQcFwBJBwVcsFSyVSM3",
64
- ];
65
- const invalidAddresses = [
66
- "", // Empty address
67
- null, // Null address
68
- undefined, // Undefined address
69
- "123", // Too short
70
- "B61qiVhtBtqakq8sNTHdCTXn6tETSK6gtsmNHRn1WdLqjGLpsHbw1xc", // Incorrect prefix
71
- "B62q!@#$%^&*()_+{}|:<>?`~", // Invalid characters
72
- "B62qj5L8U8A8gexpHLWHxBdfjKuWb8HMguVPecQ5FGqgZAwBAKHvhE", // Too short
73
- "B62qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq", // Too long
74
- " B62qiVhtBtqakq8sNTHdCTXn6tETSK6gtsmNHRn1WdLqjGLpsHbw1xc", // Leading whitespace
75
- "B62qiVhtBtqakq8sNTHdCTXn6tETSK6gtsmNHRn1WdLqjGLpsHbw1xc ", // Trailing whitespace
76
- "B62qiVhtBtqakq8sNTHdC TXn6tETSK6gtsmNHRn1WdLqjGLpsHbw1xc", // Internal whitespace
77
- "C62qiVhtBtqakq8sNTHdCTXn6tETSK6gtsmNHRn1WdLqjGLpsHbw1xc", // Incorrect prefix
78
- ];
79
- it("should return true for valid address", () => {
80
- for (const address of validAddresses) {
81
- expect(isValidAddress(address)).toBe(true);
82
- }
83
- });
84
- it("should return false for invalid address", () => {
85
- for (const address of invalidAddresses) {
86
- expect(isValidAddress(address)).toBe(false);
87
- }
88
- });
89
- });
90
- describe("isValidMemo", () => {
91
- it("should return true for valid memo", () => {
92
- expect(isValidMemo("")).toBe(true);
93
- expect(isValidMemo("Valid memo")).toBe(true);
94
- expect(isValidMemo("A".repeat(MAX_MEMO_LENGTH))).toBe(true);
95
- });
96
- it("should return false for memo exceeding max length", () => {
97
- expect(isValidMemo("A".repeat(MAX_MEMO_LENGTH + 1))).toBe(false);
98
- });
99
- });
100
- describe("getMaxAmount", () => {
101
- it("should calculate correct max amount with no fees", () => {
102
- const account = createMockAccount({
103
- spendableBalance: new BigNumber(1000),
104
- pendingOperations: [],
105
- });
106
- const transaction = createMockTransaction();
107
- expect(getMaxAmount(account, transaction).toNumber()).toBe(1000);
108
- });
109
- it("should calculate correct max amount with fees", () => {
110
- const account = createMockAccount({
111
- spendableBalance: new BigNumber(1000),
112
- pendingOperations: [],
113
- });
114
- const transaction = createMockTransaction();
115
- const fees = new BigNumber(10);
116
- expect(getMaxAmount(account, transaction, fees).toNumber()).toBe(990);
117
- });
118
- it("should subtract pending operations from max amount", () => {
119
- const account = createMockAccount({
120
- spendableBalance: new BigNumber(1000),
121
- pendingOperations: [
122
- { value: new BigNumber(100) },
123
- { value: new BigNumber(200) },
124
- ],
125
- });
126
- const transaction = createMockTransaction();
127
- expect(getMaxAmount(account, transaction).toNumber()).toBe(700);
128
- });
129
- it("should return 0 when max amount would be negative", () => {
130
- const account = createMockAccount({
131
- spendableBalance: new BigNumber(100),
132
- pendingOperations: [{ value: new BigNumber(200) }],
133
- });
134
- const transaction = createMockTransaction();
135
- expect(getMaxAmount(account, transaction).toNumber()).toBe(0);
136
- });
137
- });
138
- describe("getTotalSpent", () => {
139
- it("should return spendable balance when useAllAmount is true", () => {
140
- const account = createMockAccount({
141
- spendableBalance: new BigNumber(1000),
142
- });
143
- const transaction = createMockTransaction({
144
- useAllAmount: true,
145
- amount: new BigNumber(500),
146
- });
147
- const fees = new BigNumber(10);
148
- expect(getTotalSpent(account, transaction, fees).toNumber()).toBe(1000);
149
- });
150
- it("should return amount plus fees when useAllAmount is false", () => {
151
- const account = createMockAccount({
152
- spendableBalance: new BigNumber(1000),
153
- });
154
- const transaction = createMockTransaction({
155
- useAllAmount: false,
156
- amount: new BigNumber(500),
157
- });
158
- const fees = new BigNumber(10);
159
- expect(getTotalSpent(account, transaction, fees).toNumber()).toBe(510);
160
- });
161
- });
162
- describe("reEncodeRawSignature", () => {
163
- it("should correctly re-encode a valid signature", () => {
164
- const rawSignature = "a".repeat(64) + "b".repeat(64);
165
- const result = reEncodeRawSignature(rawSignature);
166
- // Check that the result has the correct format (reverse bytes)
167
- expect(result.length).toBe(128);
168
- // Check field part
169
- const fieldPart = result.substring(0, 64);
170
- expect(fieldPart).toBe("a".repeat(64).match(/.{2}/g)?.reverse().join(""));
171
- // Check scalar part
172
- const scalarPart = result.substring(64);
173
- expect(scalarPart).toBe("b".repeat(64).match(/.{2}/g)?.reverse().join(""));
174
- });
175
- it("should throw an error for invalid signature length", () => {
176
- expect(() => reEncodeRawSignature("too_short")).toThrow("Invalid raw signature input");
177
- });
178
- });
179
- //# sourceMappingURL=index.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/common-logic/index.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=getAddress.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getAddress.test.d.ts","sourceRoot":"","sources":["../../src/signer/getAddress.test.ts"],"names":[],"mappings":""}
@@ -1,101 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"getAddress.test.js","sourceRoot":"","sources":["../../src/signer/getAddress.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=testUtils.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"testUtils.test.d.ts","sourceRoot":"","sources":["../../src/test/testUtils.test.ts"],"names":[],"mappings":""}
@@ -1,9 +0,0 @@
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