@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 +0,0 @@
1
- {"version":3,"file":"prepareTransaction.test.js","sourceRoot":"","sources":["../../src/bridge/prepareTransaction.test.ts"],"names":[],"mappings":";;;;;AAAA,gEAAqC;AACrC,0EAA8C;AAC9C,gCAAkC;AAClC,6DAA0D;AAI1D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACpB,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAEhC,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,IAAI,eAAiC,CAAC;IACtC,IAAI,WAA6B,CAAC;IAClC,UAAU,CAAC,GAAG,EAAE;QACd,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAR,cAAQ,EAAE,EAAE,UAAU,CAAC,CAAC;QACnD,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,YAAY,EAAZ,0BAAY,EAAE,EAAE,cAAc,CAAC,CAAC;QAC/D,eAAe,CAAC,iBAAiB,CAAC;YAChC,GAAG,EAAE,IAAI,sBAAS,CAAC,CAAC,CAAC;YACrB,kBAAkB,EAAE,IAAI,sBAAS,CAAC,CAAC,CAAC;SACrC,CAAC,CAAC;QACH,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,KAAK,GAAG;YACZ,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,sBAAS,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,IAAI,sBAAS,CAAC,CAAC,CAAC,EAAE;SACtE,CAAC;QACF,MAAM,KAAK,GAAG,MAAM,IAAA,uCAAkB,EAAC,EAAa,EAAE,KAAoB,CAAC,CAAC;QAC5E,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,sBAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,IAAI,sBAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,MAAM,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,WAAW,CAAC,CAAC,oBAAoB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,KAAK,GAAG;YACZ,KAAK,EAAE,CAAC;YACR,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,sBAAS,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,IAAI,sBAAS,CAAC,CAAC,CAAC,EAAE;SACtE,CAAC;QACF,MAAM,KAAK,GAAG,MAAM,IAAA,uCAAkB,EAAC,EAAa,EAAE,KAAoB,CAAC,CAAC;QAC5E,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=signOperation.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signOperation.test.d.ts","sourceRoot":"","sources":["../../src/bridge/signOperation.test.ts"],"names":[],"mappings":""}
@@ -1,129 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const bignumber_js_1 = require("bignumber.js");
4
- const rxjs_1 = require("rxjs");
5
- const operation_1 = require("@ledgerhq/coin-framework/operation");
6
- const signOperation_1 = require("./signOperation");
7
- const buildTransaction_1 = require("./buildTransaction");
8
- const common_logic_1 = require("../common-logic");
9
- const fixtures_1 = require("../test/fixtures");
10
- // Mock dependencies
11
- jest.mock("@ledgerhq/coin-framework/operation");
12
- jest.mock("./buildTransaction");
13
- jest.mock("../common-logic");
14
- describe("signOperation", () => {
15
- // Mock reset before each test
16
- beforeEach(() => {
17
- jest.clearAllMocks();
18
- // Setup mocks
19
- operation_1.encodeOperationId.mockReturnValue("mock_operation_id");
20
- buildTransaction_1.buildTransaction.mockResolvedValue(mockUnsignedTransaction);
21
- common_logic_1.reEncodeRawSignature.mockReturnValue("encoded_signature");
22
- });
23
- // Use fixtures instead of defining mock data locally
24
- const mockAccount = (0, fixtures_1.createMockAccount)();
25
- const mockTransaction = (0, fixtures_1.createMockTransaction)();
26
- const mockUnsignedTransaction = (0, fixtures_1.createMockUnsignedTransaction)(mockAccount, mockTransaction);
27
- const mockSignerContext = (0, fixtures_1.createMockSignerContext)();
28
- describe("buildOptimisticOperation", () => {
29
- it("should build operation with correct values", () => {
30
- const result = (0, signOperation_1.buildOptimisticOperation)(mockAccount, mockTransaction, new bignumber_js_1.BigNumber(10));
31
- expect(result).toEqual({
32
- id: "mock_operation_id",
33
- hash: "",
34
- type: "OUT",
35
- value: new bignumber_js_1.BigNumber(1010), // amount + fee
36
- fee: new bignumber_js_1.BigNumber(10),
37
- blockHash: null,
38
- blockHeight: null,
39
- senders: [mockAccount.freshAddress],
40
- recipients: [mockTransaction.recipient],
41
- accountId: mockAccount.id,
42
- date: expect.any(Date),
43
- extra: {
44
- memo: "test memo",
45
- accountCreationFee: "0",
46
- },
47
- });
48
- expect(operation_1.encodeOperationId).toHaveBeenCalledWith(mockAccount.id, "", "OUT");
49
- });
50
- it("should subtract account creation fee from value when present", () => {
51
- const txWithCreationFee = (0, fixtures_1.createMockTransaction)({
52
- fees: {
53
- fee: new bignumber_js_1.BigNumber(10),
54
- accountCreationFee: new bignumber_js_1.BigNumber(5),
55
- },
56
- });
57
- const result = (0, signOperation_1.buildOptimisticOperation)(mockAccount, txWithCreationFee, new bignumber_js_1.BigNumber(10));
58
- // Value should be amount + fee - accountCreationFee = 1000 + 10 - 5 = 1005
59
- expect(result.value).toEqual(new bignumber_js_1.BigNumber(1005));
60
- expect(result.extra.accountCreationFee).toBe("5");
61
- });
62
- });
63
- describe("buildSignOperation", () => {
64
- it("should emit correct events and return signed operation", done => {
65
- const signOperation = (0, signOperation_1.buildSignOperation)(mockSignerContext);
66
- const events = [];
67
- const observable = signOperation({
68
- account: mockAccount,
69
- transaction: mockTransaction,
70
- deviceId: fixtures_1.mockDeviceId,
71
- });
72
- observable.subscribe({
73
- next: event => {
74
- events.push(event.type);
75
- if (event.type === "signed") {
76
- const { operation, signature } = event.signedOperation;
77
- // Check operation
78
- expect(operation).toEqual(expect.objectContaining({
79
- id: "mock_operation_id",
80
- type: "OUT",
81
- value: new bignumber_js_1.BigNumber(1010),
82
- fee: new bignumber_js_1.BigNumber(10),
83
- senders: [mockAccount.freshAddress],
84
- recipients: [mockTransaction.recipient],
85
- }));
86
- // Check signature
87
- const parsedSignature = JSON.parse(signature);
88
- expect(parsedSignature).toEqual({
89
- transaction: mockUnsignedTransaction,
90
- signature: "encoded_signature",
91
- });
92
- }
93
- },
94
- complete: () => {
95
- // Check all events were emitted in the correct order
96
- expect(events).toEqual([
97
- "device-signature-requested",
98
- "device-signature-granted",
99
- "signed",
100
- ]);
101
- done();
102
- },
103
- error: error => done(error),
104
- });
105
- });
106
- it("should build transaction with correct parameters", async () => {
107
- const signOperation = (0, signOperation_1.buildSignOperation)(mockSignerContext);
108
- const observable = signOperation({
109
- account: mockAccount,
110
- transaction: mockTransaction,
111
- deviceId: fixtures_1.mockDeviceId,
112
- });
113
- await (0, rxjs_1.firstValueFrom)(observable.pipe());
114
- expect(buildTransaction_1.buildTransaction).toHaveBeenCalledWith(mockAccount, mockTransaction);
115
- });
116
- it("should call signer with correct parameters", async () => {
117
- const mockSignerContextSpy = (0, fixtures_1.createMockSignerContext)();
118
- const signOperation = (0, signOperation_1.buildSignOperation)(mockSignerContextSpy);
119
- const observable = signOperation({
120
- account: mockAccount,
121
- transaction: mockTransaction,
122
- deviceId: fixtures_1.mockDeviceId,
123
- });
124
- await (0, rxjs_1.firstValueFrom)(observable.pipe());
125
- expect(mockSignerContextSpy).toHaveBeenCalledWith(fixtures_1.mockDeviceId, expect.any(Function));
126
- });
127
- });
128
- });
129
- //# 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,164 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const synchronisation_1 = require("./synchronisation");
7
- jest.mock("@ledgerhq/coin-framework/account/accountId");
8
- jest.mock("@ledgerhq/coin-framework/bridge/jsHelpers");
9
- jest.mock("@ledgerhq/coin-framework/operation");
10
- jest.mock("../api");
11
- const accountId_1 = require("@ledgerhq/coin-framework/account/accountId");
12
- const jsHelpers_1 = require("@ledgerhq/coin-framework/bridge/jsHelpers");
13
- const operation_1 = require("@ledgerhq/coin-framework/operation");
14
- const api_1 = require("../api");
15
- const bignumber_js_1 = __importDefault(require("bignumber.js"));
16
- const fixtures_1 = require("../test/fixtures");
17
- describe("synchronisation", () => {
18
- beforeEach(() => {
19
- jest.clearAllMocks();
20
- });
21
- describe("mapRosettaTxnToOperation", () => {
22
- const mockAccountId = "account_id";
23
- const mockAddress = "sender_address";
24
- beforeEach(() => {
25
- jest.spyOn({ getBlockInfo: api_1.getBlockInfo }, "getBlockInfo").mockResolvedValue(fixtures_1.mockBlockInfo);
26
- jest
27
- .spyOn({ encodeOperationId: operation_1.encodeOperationId }, "encodeOperationId")
28
- .mockReturnValue("encoded_operation_id");
29
- });
30
- it("should map payment transaction (OUT)", async () => {
31
- const mockTxn = (0, fixtures_1.createMockTxn)({
32
- type: "OUT",
33
- senderAddress: mockAddress,
34
- receiverAddress: "receiver_address",
35
- status: "Success",
36
- });
37
- const result = await (0, synchronisation_1.mapRosettaTxnToOperation)(mockAccountId, mockAddress, mockTxn);
38
- expect(result).toHaveLength(1);
39
- expect(result[0]).toEqual({
40
- id: "encoded_operation_id",
41
- type: "OUT",
42
- hash: "tx_hash",
43
- value: new bignumber_js_1.default(900),
44
- fee: new bignumber_js_1.default(-100),
45
- blockHeight: 123,
46
- hasFailed: false,
47
- blockHash: "block_hash",
48
- accountId: mockAccountId,
49
- senders: [mockAddress],
50
- recipients: ["receiver_address"],
51
- date: new Date(1672531200000),
52
- extra: {
53
- memo: "test memo",
54
- accountCreationFee: "0",
55
- },
56
- });
57
- });
58
- it("should map payment transaction (IN)", async () => {
59
- const mockTxn = (0, fixtures_1.createMockTxn)({
60
- type: "IN",
61
- senderAddress: "sender_other",
62
- receiverAddress: mockAddress,
63
- status: "Success",
64
- });
65
- const result = await (0, synchronisation_1.mapRosettaTxnToOperation)(mockAccountId, mockAddress, mockTxn);
66
- expect(result).toHaveLength(1);
67
- expect(result[0]).toEqual({
68
- id: "encoded_operation_id",
69
- type: "IN",
70
- hash: "tx_hash",
71
- value: new bignumber_js_1.default(1000),
72
- fee: new bignumber_js_1.default(-100),
73
- blockHeight: 123,
74
- hasFailed: false,
75
- blockHash: "block_hash",
76
- accountId: mockAccountId,
77
- senders: ["sender_other"],
78
- recipients: [mockAddress],
79
- date: new Date(1672531200000),
80
- extra: {
81
- memo: "test memo",
82
- accountCreationFee: "0",
83
- },
84
- });
85
- });
86
- it("should map redelegate transaction", async () => {
87
- const mockTxn = (0, fixtures_1.createMockTxn)({
88
- type: "REDELEGATE",
89
- senderAddress: mockAddress,
90
- receiverAddress: "not_used",
91
- memo: "redelegate",
92
- status: "Success",
93
- });
94
- const result = await (0, synchronisation_1.mapRosettaTxnToOperation)(mockAccountId, mockAddress, mockTxn);
95
- expect(result).toHaveLength(1);
96
- expect(result[0]).toEqual({
97
- id: "encoded_operation_id",
98
- type: "REDELEGATE",
99
- hash: "tx_hash",
100
- value: new bignumber_js_1.default(0),
101
- fee: new bignumber_js_1.default(0),
102
- blockHeight: 123,
103
- hasFailed: false,
104
- blockHash: "block_hash",
105
- accountId: mockAccountId,
106
- senders: [mockAddress],
107
- recipients: ["unknown"],
108
- date: new Date(1672531200000),
109
- extra: {
110
- memo: "redelegate",
111
- accountCreationFee: "0",
112
- },
113
- });
114
- });
115
- it("should handle failed transactions", async () => {
116
- const mockTxn = (0, fixtures_1.createMockTxn)({
117
- type: "OUT",
118
- senderAddress: mockAddress,
119
- receiverAddress: "receiver_address",
120
- status: "Failed",
121
- memo: "failed",
122
- });
123
- const result = await (0, synchronisation_1.mapRosettaTxnToOperation)(mockAccountId, mockAddress, mockTxn);
124
- expect(result).toHaveLength(1);
125
- expect(result[0].hasFailed).toBe(true);
126
- });
127
- });
128
- describe("getAccountShape", () => {
129
- beforeEach(() => {
130
- jest.spyOn({ encodeAccountId: accountId_1.encodeAccountId }, "encodeAccountId").mockReturnValue("account_id");
131
- jest.spyOn({ getAccount: api_1.getAccount }, "getAccount").mockResolvedValue(fixtures_1.mockAccountData);
132
- jest.spyOn({ getTransactions: api_1.getTransactions }, "getTransactions").mockResolvedValue([]);
133
- jest.spyOn({ mergeOps: jsHelpers_1.mergeOps }, "mergeOps").mockReturnValue([]);
134
- });
135
- it("should get account shape with correct data", async () => {
136
- const mockInfo = (0, fixtures_1.createMockAccountInfo)();
137
- const result = await (0, synchronisation_1.getAccountShape)(mockInfo, {
138
- paginationConfig: {
139
- operationsPerAccountId: {
140
- account_id: 10,
141
- },
142
- },
143
- });
144
- expect(accountId_1.encodeAccountId).toHaveBeenCalledWith({
145
- type: "js",
146
- version: "2",
147
- currencyId: "mina",
148
- xpubOrAddress: "test_address",
149
- derivationMode: "minabip44",
150
- });
151
- expect(api_1.getAccount).toHaveBeenCalledWith("test_address");
152
- expect(api_1.getTransactions).toHaveBeenCalledWith("test_address", 0);
153
- expect(result).toEqual({
154
- id: "account_id",
155
- balance: fixtures_1.mockAccountData.balance,
156
- spendableBalance: fixtures_1.mockAccountData.spendableBalance,
157
- blockHeight: fixtures_1.mockAccountData.blockHeight,
158
- operationsCount: 0,
159
- operations: [],
160
- });
161
- });
162
- });
163
- });
164
- //# 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,181 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const _1 = require(".");
4
- const bignumber_js_1 = require("bignumber.js");
5
- const consts_1 = require("../consts");
6
- // Mock functions to create test objects
7
- function createMockAccount(overrides = {}) {
8
- return {
9
- spendableBalance: new bignumber_js_1.BigNumber(1000),
10
- pendingOperations: [],
11
- ...overrides,
12
- };
13
- }
14
- function createMockTransaction(overrides = {}) {
15
- return {
16
- family: "mina",
17
- amount: new bignumber_js_1.BigNumber(0),
18
- recipient: "B62qiVhtBtqakq8sNTHdCTXn6tETSK6gtsmNHRn1WdLqjGLpsHbw1xc",
19
- ...overrides,
20
- };
21
- }
22
- describe("getAccountNumFromPath", () => {
23
- it("should return undefined for invalid account number", () => {
24
- const account = (0, _1.getAccountNumFromPath)("44'/616'/4'/0/0");
25
- expect(account).toBe(undefined);
26
- });
27
- it("should return undefined for unsupported path", () => {
28
- const account = (0, _1.getAccountNumFromPath)("44'/616'/4/0/0");
29
- expect(account).toBe(undefined);
30
- });
31
- it("should return the account number", () => {
32
- const account = (0, _1.getAccountNumFromPath)("44'/12586'/4'/0/0");
33
- expect(account).toBe(4);
34
- });
35
- });
36
- describe("testingAddress", () => {
37
- const validAddresses = [
38
- "B62qiVhtBtqakq8sNTHdCTXn6tETSK6gtsmNHRn1WdLqjGLpsHbw1xc",
39
- "B62qr5cXFjdnZXYxP5dEwRY7wENxcod4Q2oLxUDiq1QrBXZZyxMH8q4",
40
- "B62qqmRToRiXZjyLLMJoGnQFXXZuZWdqaNYr43xEDDQzkXMHLouCMZp",
41
- "B62qnixP59E4vJytpDWZ5YQPrnmqb7YNwhVWiuSAkxbYdX5RauHWwcm",
42
- "B62qmfBiJx88gM9opov4MDxmDVKMutQsBQ1aGt7TrQYyGQx66fRFxvC",
43
- "B62qosg21UpwpfPFaxTyirdfUVDHe2Ynsyv1QydE4z34zbLuBZ92ALM",
44
- "B62qkWUvsVEnXmd4poHbkKujHNnjxkDcZtrLxN1FTa8pp3GkfHMB1gv",
45
- "B62qoiK7DJurVUUJx1dmJGULdNUmX5bjdiYvoWXEXGugS2Cx3YDsHhy",
46
- "B62qn1KptFUxxu8aRS52NGQ3GWzn5h8v7U9k571r4LCs5obpoZyd81e",
47
- "B62qis2tX1rveddCeJeBAZJnXcCwWPp1x9ScZ3iMCxbV29gRbxWo7qi",
48
- "B62qpBKEDTnS4efjBmou7iztx5x152JEmc29XMR1Y3FVCpnmfKGX4R4",
49
- "B62qro5bGnk7eCNMA1S5QWmzn5sCcRWckbw83GGaqN3HM2QzP9zYS83",
50
- "B62qospDjUj43x2yMKiNehojWWRUsE1wpdUDVpfxH8V3n5Y1QgJKFfw",
51
- "B62qrmYwToypQv8v9cjxJdyhAxKihrqtTtEkYC4Y3u412KCPLGSD93V",
52
- "B62qj3rpYkGM1T3VN6JDAJs9NccHCRQDYMcQ6UCBc81ff5HXTDjU44d",
53
- "B62qp2kks3r14P8GWkR2ieT18JobwnmrBFGEoqy3dAReiyM8aDp4be7",
54
- "B62qpW1SYPcp7TcHJYL6egnN9qzvNtQL5XGyiM8S6UsHvxCYzhhFPjz",
55
- "B62qospDjUj43x2yMKiNehojWWRUsE1wpdUDVpfxH8V3n5Y1QgJKFfw",
56
- "B62qj5L8U8A8gexpHLWHxBdfjKuWb8HMguVPecQ5FGqgZAwBAKHvhEy",
57
- "B62qnt5WShcbVVnVqQqWjkyMJdxMwLq4QbRbgMjoi5nmvQw7dZLRtpx",
58
- "B62qrGUxqRWn9A8PEJschgLZuS5S1GJiairh65mgTapaK58nkTKHUs8",
59
- "B62qkS7hmMkzmNDjeCUKyAMZSw1c98MxszZPA7WnvBuh7Pq66ztiwdt",
60
- "B62qjGWerE9MPNk7E2jEJe9Ex5GxkNR9JCc5mhFeJdGFaNDHnMdGQJQ",
61
- "B62qpp2DLkLxwFn1QZdkEWgiRFMYnkgh6cj5AJC5pqCYiALh8BmiYJ8",
62
- "B62qqALaAoEnaJPSNmQaDkUwFGiKwZo4zRK4Ay5eSMxAMVhNxwr2KeM",
63
- "B62qospDjUj43x2yMKiNehojWWRUsE1wpdUDVpfxH8V3n5Y1QgJKFfw",
64
- "B62qr3epzHUrxrdminUN4Hzuinuc7aBDAFSR94mPmmxVsbuFpUvDDq6",
65
- "B62qrJurUKtcqdhQu1XtJJfSH7rR1xrEtSWPQQcFwBJBwVcsFSyVSM3",
66
- ];
67
- const invalidAddresses = [
68
- "", // Empty address
69
- null, // Null address
70
- undefined, // Undefined address
71
- "123", // Too short
72
- "B61qiVhtBtqakq8sNTHdCTXn6tETSK6gtsmNHRn1WdLqjGLpsHbw1xc", // Incorrect prefix
73
- "B62q!@#$%^&*()_+{}|:<>?`~", // Invalid characters
74
- "B62qj5L8U8A8gexpHLWHxBdfjKuWb8HMguVPecQ5FGqgZAwBAKHvhE", // Too short
75
- "B62qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq", // Too long
76
- " B62qiVhtBtqakq8sNTHdCTXn6tETSK6gtsmNHRn1WdLqjGLpsHbw1xc", // Leading whitespace
77
- "B62qiVhtBtqakq8sNTHdCTXn6tETSK6gtsmNHRn1WdLqjGLpsHbw1xc ", // Trailing whitespace
78
- "B62qiVhtBtqakq8sNTHdC TXn6tETSK6gtsmNHRn1WdLqjGLpsHbw1xc", // Internal whitespace
79
- "C62qiVhtBtqakq8sNTHdCTXn6tETSK6gtsmNHRn1WdLqjGLpsHbw1xc", // Incorrect prefix
80
- ];
81
- it("should return true for valid address", () => {
82
- for (const address of validAddresses) {
83
- expect((0, _1.isValidAddress)(address)).toBe(true);
84
- }
85
- });
86
- it("should return false for invalid address", () => {
87
- for (const address of invalidAddresses) {
88
- expect((0, _1.isValidAddress)(address)).toBe(false);
89
- }
90
- });
91
- });
92
- describe("isValidMemo", () => {
93
- it("should return true for valid memo", () => {
94
- expect((0, _1.isValidMemo)("")).toBe(true);
95
- expect((0, _1.isValidMemo)("Valid memo")).toBe(true);
96
- expect((0, _1.isValidMemo)("A".repeat(consts_1.MAX_MEMO_LENGTH))).toBe(true);
97
- });
98
- it("should return false for memo exceeding max length", () => {
99
- expect((0, _1.isValidMemo)("A".repeat(consts_1.MAX_MEMO_LENGTH + 1))).toBe(false);
100
- });
101
- });
102
- describe("getMaxAmount", () => {
103
- it("should calculate correct max amount with no fees", () => {
104
- const account = createMockAccount({
105
- spendableBalance: new bignumber_js_1.BigNumber(1000),
106
- pendingOperations: [],
107
- });
108
- const transaction = createMockTransaction();
109
- expect((0, _1.getMaxAmount)(account, transaction).toNumber()).toBe(1000);
110
- });
111
- it("should calculate correct max amount with fees", () => {
112
- const account = createMockAccount({
113
- spendableBalance: new bignumber_js_1.BigNumber(1000),
114
- pendingOperations: [],
115
- });
116
- const transaction = createMockTransaction();
117
- const fees = new bignumber_js_1.BigNumber(10);
118
- expect((0, _1.getMaxAmount)(account, transaction, fees).toNumber()).toBe(990);
119
- });
120
- it("should subtract pending operations from max amount", () => {
121
- const account = createMockAccount({
122
- spendableBalance: new bignumber_js_1.BigNumber(1000),
123
- pendingOperations: [
124
- { value: new bignumber_js_1.BigNumber(100) },
125
- { value: new bignumber_js_1.BigNumber(200) },
126
- ],
127
- });
128
- const transaction = createMockTransaction();
129
- expect((0, _1.getMaxAmount)(account, transaction).toNumber()).toBe(700);
130
- });
131
- it("should return 0 when max amount would be negative", () => {
132
- const account = createMockAccount({
133
- spendableBalance: new bignumber_js_1.BigNumber(100),
134
- pendingOperations: [{ value: new bignumber_js_1.BigNumber(200) }],
135
- });
136
- const transaction = createMockTransaction();
137
- expect((0, _1.getMaxAmount)(account, transaction).toNumber()).toBe(0);
138
- });
139
- });
140
- describe("getTotalSpent", () => {
141
- it("should return spendable balance when useAllAmount is true", () => {
142
- const account = createMockAccount({
143
- spendableBalance: new bignumber_js_1.BigNumber(1000),
144
- });
145
- const transaction = createMockTransaction({
146
- useAllAmount: true,
147
- amount: new bignumber_js_1.BigNumber(500),
148
- });
149
- const fees = new bignumber_js_1.BigNumber(10);
150
- expect((0, _1.getTotalSpent)(account, transaction, fees).toNumber()).toBe(1000);
151
- });
152
- it("should return amount plus fees when useAllAmount is false", () => {
153
- const account = createMockAccount({
154
- spendableBalance: new bignumber_js_1.BigNumber(1000),
155
- });
156
- const transaction = createMockTransaction({
157
- useAllAmount: false,
158
- amount: new bignumber_js_1.BigNumber(500),
159
- });
160
- const fees = new bignumber_js_1.BigNumber(10);
161
- expect((0, _1.getTotalSpent)(account, transaction, fees).toNumber()).toBe(510);
162
- });
163
- });
164
- describe("reEncodeRawSignature", () => {
165
- it("should correctly re-encode a valid signature", () => {
166
- const rawSignature = "a".repeat(64) + "b".repeat(64);
167
- const result = (0, _1.reEncodeRawSignature)(rawSignature);
168
- // Check that the result has the correct format (reverse bytes)
169
- expect(result.length).toBe(128);
170
- // Check field part
171
- const fieldPart = result.substring(0, 64);
172
- expect(fieldPart).toBe("a".repeat(64).match(/.{2}/g)?.reverse().join(""));
173
- // Check scalar part
174
- const scalarPart = result.substring(64);
175
- expect(scalarPart).toBe("b".repeat(64).match(/.{2}/g)?.reverse().join(""));
176
- });
177
- it("should throw an error for invalid signature length", () => {
178
- expect(() => (0, _1.reEncodeRawSignature)("too_short")).toThrow("Invalid raw signature input");
179
- });
180
- });
181
- //# 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,106 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const getAddress_1 = __importDefault(require("./getAddress"));
7
- const currencies_1 = require("@ledgerhq/cryptoassets/lib/currencies");
8
- describe("Mina getAddress resolver", () => {
9
- // Mock the signer context
10
- const mockSigner = {
11
- getAddress: jest.fn(),
12
- signTransaction: jest.fn(),
13
- };
14
- const commonOptions = {
15
- currency: (0, currencies_1.getCryptoCurrencyById)("mina"),
16
- derivationMode: "minabip44",
17
- };
18
- const mockSignerContext = jest.fn(async (deviceId, callback) => {
19
- return callback(mockSigner);
20
- });
21
- beforeEach(() => {
22
- jest.clearAllMocks();
23
- });
24
- it("should call the signer with the correct account number", async () => {
25
- const options = {
26
- ...commonOptions,
27
- path: "44'/12586'/0'/0/0",
28
- verify: false,
29
- };
30
- // Mock response from signer
31
- mockSigner.getAddress.mockResolvedValue({
32
- publicKey: "testPublicKey123",
33
- });
34
- const getAddress = (0, getAddress_1.default)(mockSignerContext);
35
- await getAddress("device1", options);
36
- expect(mockSigner.getAddress).toHaveBeenCalledWith(0, false);
37
- });
38
- it("should pass the verify flag correctly", async () => {
39
- const options = {
40
- path: "44'/12586'/2'/0/0",
41
- verify: true,
42
- ...commonOptions,
43
- };
44
- // Mock response from signer
45
- mockSigner.getAddress.mockResolvedValue({
46
- publicKey: "testPublicKey456",
47
- });
48
- const getAddress = (0, getAddress_1.default)(mockSignerContext);
49
- await getAddress("device1", options);
50
- expect(mockSigner.getAddress).toHaveBeenCalledWith(2, true);
51
- });
52
- it("should default to verify=false when not provided", async () => {
53
- const options = {
54
- path: "44'/12586'/1'/0/0",
55
- ...commonOptions,
56
- };
57
- // Mock response from signer
58
- mockSigner.getAddress.mockResolvedValue({
59
- publicKey: "testPublicKey789",
60
- });
61
- const getAddress = (0, getAddress_1.default)(mockSignerContext);
62
- await getAddress("device1", options);
63
- expect(mockSigner.getAddress).toHaveBeenCalledWith(1, false);
64
- });
65
- it("should return the correct address format", async () => {
66
- const options = {
67
- path: "44'/12586'/3'/0/0",
68
- ...commonOptions,
69
- };
70
- const expectedPublicKey = "minaPublicKeyABC123";
71
- // Mock response from signer
72
- mockSigner.getAddress.mockResolvedValue({
73
- publicKey: expectedPublicKey,
74
- });
75
- const getAddress = (0, getAddress_1.default)(mockSignerContext);
76
- const result = await getAddress("device1", options);
77
- expect(result).toEqual({
78
- address: expectedPublicKey,
79
- publicKey: expectedPublicKey,
80
- path: options.path,
81
- });
82
- });
83
- it("should throw an error for invalid path", async () => {
84
- const options = {
85
- path: "44'/789'/0'/0/0", // Invalid coin type for Mina
86
- verify: false,
87
- ...commonOptions,
88
- };
89
- const getAddress = (0, getAddress_1.default)(mockSignerContext);
90
- await expect(getAddress("device1", options)).rejects.toThrow();
91
- });
92
- it("should throw an error when publicKey is undefined", async () => {
93
- const options = {
94
- path: "44'/12586'/0'/0/0",
95
- verify: false,
96
- ...commonOptions,
97
- };
98
- // Mock response from signer with undefined publicKey
99
- mockSigner.getAddress.mockResolvedValue({
100
- publicKey: undefined,
101
- });
102
- const getAddress = (0, getAddress_1.default)(mockSignerContext);
103
- await expect(getAddress("device1", options)).rejects.toThrow("[mina] getAddress: expected publicKey to be defined");
104
- });
105
- });
106
- //# sourceMappingURL=getAddress.test.js.map