@ledgerhq/coin-casper 2.2.0 → 2.2.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 (130) 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 -53
  6. package/lib/api/index.integ.test.js.map +0 -1
  7. package/lib/api/index.test.d.ts +0 -2
  8. package/lib/api/index.test.d.ts.map +0 -1
  9. package/lib/api/index.test.js +0 -274
  10. package/lib/api/index.test.js.map +0 -1
  11. package/lib/bridge/bridgeHelpers/accountShape.test.d.ts +0 -2
  12. package/lib/bridge/bridgeHelpers/accountShape.test.d.ts.map +0 -1
  13. package/lib/bridge/bridgeHelpers/accountShape.test.js +0 -94
  14. package/lib/bridge/bridgeHelpers/accountShape.test.js.map +0 -1
  15. package/lib/bridge/bridgeHelpers/txn.test.d.ts +0 -2
  16. package/lib/bridge/bridgeHelpers/txn.test.d.ts.map +0 -1
  17. package/lib/bridge/bridgeHelpers/txn.test.js +0 -306
  18. package/lib/bridge/bridgeHelpers/txn.test.js.map +0 -1
  19. package/lib/bridge/broadcast.test.d.ts +0 -2
  20. package/lib/bridge/broadcast.test.d.ts.map +0 -1
  21. package/lib/bridge/broadcast.test.js +0 -72
  22. package/lib/bridge/broadcast.test.js.map +0 -1
  23. package/lib/bridge/buildOptimisticOperation.test.d.ts +0 -2
  24. package/lib/bridge/buildOptimisticOperation.test.d.ts.map +0 -1
  25. package/lib/bridge/buildOptimisticOperation.test.js +0 -76
  26. package/lib/bridge/buildOptimisticOperation.test.js.map +0 -1
  27. package/lib/bridge/createTransaction.test.d.ts +0 -2
  28. package/lib/bridge/createTransaction.test.d.ts.map +0 -1
  29. package/lib/bridge/createTransaction.test.js +0 -41
  30. package/lib/bridge/createTransaction.test.js.map +0 -1
  31. package/lib/bridge/deviceTransactionConfig.test.d.ts +0 -2
  32. package/lib/bridge/deviceTransactionConfig.test.d.ts.map +0 -1
  33. package/lib/bridge/deviceTransactionConfig.test.js +0 -148
  34. package/lib/bridge/deviceTransactionConfig.test.js.map +0 -1
  35. package/lib/bridge/estimateMaxSpendable.test.d.ts +0 -2
  36. package/lib/bridge/estimateMaxSpendable.test.d.ts.map +0 -1
  37. package/lib/bridge/estimateMaxSpendable.test.js +0 -133
  38. package/lib/bridge/estimateMaxSpendable.test.js.map +0 -1
  39. package/lib/bridge/getTransactionStatus.test.d.ts +0 -2
  40. package/lib/bridge/getTransactionStatus.test.d.ts.map +0 -1
  41. package/lib/bridge/getTransactionStatus.test.js +0 -214
  42. package/lib/bridge/getTransactionStatus.test.js.map +0 -1
  43. package/lib/bridge/prepareTransaction.test.d.ts +0 -2
  44. package/lib/bridge/prepareTransaction.test.d.ts.map +0 -1
  45. package/lib/bridge/prepareTransaction.test.js +0 -159
  46. package/lib/bridge/prepareTransaction.test.js.map +0 -1
  47. package/lib/bridge/transaction.test.d.ts +0 -2
  48. package/lib/bridge/transaction.test.d.ts.map +0 -1
  49. package/lib/bridge/transaction.test.js +0 -179
  50. package/lib/bridge/transaction.test.js.map +0 -1
  51. package/lib/common-logic/utils.additional.test.d.ts +0 -2
  52. package/lib/common-logic/utils.additional.test.d.ts.map +0 -1
  53. package/lib/common-logic/utils.additional.test.js +0 -58
  54. package/lib/common-logic/utils.additional.test.js.map +0 -1
  55. package/lib/common-logic/utils.unit.test.d.ts +0 -2
  56. package/lib/common-logic/utils.unit.test.d.ts.map +0 -1
  57. package/lib/common-logic/utils.unit.test.js +0 -52
  58. package/lib/common-logic/utils.unit.test.js.map +0 -1
  59. package/lib/hw-signMessage.test.d.ts +0 -2
  60. package/lib/hw-signMessage.test.d.ts.map +0 -1
  61. package/lib/hw-signMessage.test.js +0 -80
  62. package/lib/hw-signMessage.test.js.map +0 -1
  63. package/lib/signer/getAddress.test.d.ts +0 -2
  64. package/lib/signer/getAddress.test.d.ts.map +0 -1
  65. package/lib/signer/getAddress.test.js +0 -133
  66. package/lib/signer/getAddress.test.js.map +0 -1
  67. package/lib-es/api/index.integ.test.d.ts +0 -2
  68. package/lib-es/api/index.integ.test.d.ts.map +0 -1
  69. package/lib-es/api/index.integ.test.js +0 -51
  70. package/lib-es/api/index.integ.test.js.map +0 -1
  71. package/lib-es/api/index.test.d.ts +0 -2
  72. package/lib-es/api/index.test.d.ts.map +0 -1
  73. package/lib-es/api/index.test.js +0 -269
  74. package/lib-es/api/index.test.js.map +0 -1
  75. package/lib-es/bridge/bridgeHelpers/accountShape.test.d.ts +0 -2
  76. package/lib-es/bridge/bridgeHelpers/accountShape.test.d.ts.map +0 -1
  77. package/lib-es/bridge/bridgeHelpers/accountShape.test.js +0 -89
  78. package/lib-es/bridge/bridgeHelpers/accountShape.test.js.map +0 -1
  79. package/lib-es/bridge/bridgeHelpers/txn.test.d.ts +0 -2
  80. package/lib-es/bridge/bridgeHelpers/txn.test.d.ts.map +0 -1
  81. package/lib-es/bridge/bridgeHelpers/txn.test.js +0 -278
  82. package/lib-es/bridge/bridgeHelpers/txn.test.js.map +0 -1
  83. package/lib-es/bridge/broadcast.test.d.ts +0 -2
  84. package/lib-es/bridge/broadcast.test.d.ts.map +0 -1
  85. package/lib-es/bridge/broadcast.test.js +0 -70
  86. package/lib-es/bridge/broadcast.test.js.map +0 -1
  87. package/lib-es/bridge/buildOptimisticOperation.test.d.ts +0 -2
  88. package/lib-es/bridge/buildOptimisticOperation.test.d.ts.map +0 -1
  89. package/lib-es/bridge/buildOptimisticOperation.test.js +0 -74
  90. package/lib-es/bridge/buildOptimisticOperation.test.js.map +0 -1
  91. package/lib-es/bridge/createTransaction.test.d.ts +0 -2
  92. package/lib-es/bridge/createTransaction.test.d.ts.map +0 -1
  93. package/lib-es/bridge/createTransaction.test.js +0 -36
  94. package/lib-es/bridge/createTransaction.test.js.map +0 -1
  95. package/lib-es/bridge/deviceTransactionConfig.test.d.ts +0 -2
  96. package/lib-es/bridge/deviceTransactionConfig.test.d.ts.map +0 -1
  97. package/lib-es/bridge/deviceTransactionConfig.test.js +0 -143
  98. package/lib-es/bridge/deviceTransactionConfig.test.js.map +0 -1
  99. package/lib-es/bridge/estimateMaxSpendable.test.d.ts +0 -2
  100. package/lib-es/bridge/estimateMaxSpendable.test.d.ts.map +0 -1
  101. package/lib-es/bridge/estimateMaxSpendable.test.js +0 -131
  102. package/lib-es/bridge/estimateMaxSpendable.test.js.map +0 -1
  103. package/lib-es/bridge/getTransactionStatus.test.d.ts +0 -2
  104. package/lib-es/bridge/getTransactionStatus.test.d.ts.map +0 -1
  105. package/lib-es/bridge/getTransactionStatus.test.js +0 -212
  106. package/lib-es/bridge/getTransactionStatus.test.js.map +0 -1
  107. package/lib-es/bridge/prepareTransaction.test.d.ts +0 -2
  108. package/lib-es/bridge/prepareTransaction.test.d.ts.map +0 -1
  109. package/lib-es/bridge/prepareTransaction.test.js +0 -157
  110. package/lib-es/bridge/prepareTransaction.test.js.map +0 -1
  111. package/lib-es/bridge/transaction.test.d.ts +0 -2
  112. package/lib-es/bridge/transaction.test.d.ts.map +0 -1
  113. package/lib-es/bridge/transaction.test.js +0 -154
  114. package/lib-es/bridge/transaction.test.js.map +0 -1
  115. package/lib-es/common-logic/utils.additional.test.d.ts +0 -2
  116. package/lib-es/common-logic/utils.additional.test.d.ts.map +0 -1
  117. package/lib-es/common-logic/utils.additional.test.js +0 -56
  118. package/lib-es/common-logic/utils.additional.test.js.map +0 -1
  119. package/lib-es/common-logic/utils.unit.test.d.ts +0 -2
  120. package/lib-es/common-logic/utils.unit.test.d.ts.map +0 -1
  121. package/lib-es/common-logic/utils.unit.test.js +0 -50
  122. package/lib-es/common-logic/utils.unit.test.js.map +0 -1
  123. package/lib-es/hw-signMessage.test.d.ts +0 -2
  124. package/lib-es/hw-signMessage.test.d.ts.map +0 -1
  125. package/lib-es/hw-signMessage.test.js +0 -78
  126. package/lib-es/hw-signMessage.test.js.map +0 -1
  127. package/lib-es/signer/getAddress.test.d.ts +0 -2
  128. package/lib-es/signer/getAddress.test.d.ts.map +0 -1
  129. package/lib-es/signer/getAddress.test.js +0 -105
  130. package/lib-es/signer/getAddress.test.js.map +0 -1
@@ -1,159 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const bignumber_js_1 = require("bignumber.js");
4
- const prepareTransaction_1 = require("./prepareTransaction");
5
- const fee_1 = require("./bridgeHelpers/fee");
6
- const jsHelpers_1 = require("@ledgerhq/coin-framework/bridge/jsHelpers");
7
- const fixtures_1 = require("../test/fixtures");
8
- // Mock dependencies
9
- jest.mock("./bridgeHelpers/fee", () => ({
10
- getEstimatedFees: jest.fn(),
11
- }));
12
- jest.mock("@ledgerhq/coin-framework/bridge/jsHelpers", () => ({
13
- updateTransaction: jest.fn((tx, updates) => ({ ...tx, ...updates })),
14
- }));
15
- describe("prepareTransaction", () => {
16
- const mockAccount = (0, fixtures_1.createMockAccount)({
17
- id: "casper:0:testAccount",
18
- spendableBalance: new bignumber_js_1.BigNumber(10000000),
19
- });
20
- const mockTransaction = (0, fixtures_1.createMockTransaction)({
21
- recipient: "01fedcba0987654321",
22
- amount: new bignumber_js_1.BigNumber(5000000),
23
- useAllAmount: false,
24
- fees: new bignumber_js_1.BigNumber(1000000),
25
- transferId: "1",
26
- });
27
- const mockEstimatedFees = new bignumber_js_1.BigNumber(1000000);
28
- beforeEach(() => {
29
- jest.clearAllMocks();
30
- fee_1.getEstimatedFees.mockReturnValue(mockEstimatedFees);
31
- });
32
- test("should prepare a regular transaction with estimated fees", async () => {
33
- const result = await (0, prepareTransaction_1.prepareTransaction)(mockAccount, mockTransaction);
34
- expect(fee_1.getEstimatedFees).toHaveBeenCalled();
35
- expect(jsHelpers_1.updateTransaction).toHaveBeenCalledWith(mockTransaction, {
36
- fees: mockEstimatedFees,
37
- amount: mockTransaction.amount,
38
- });
39
- expect(result).toEqual({
40
- ...mockTransaction,
41
- fees: mockEstimatedFees,
42
- });
43
- });
44
- test("should calculate correct amount for useAllAmount transactions", async () => {
45
- const useAllAmountTx = (0, fixtures_1.createMockTransaction)({
46
- ...mockTransaction,
47
- useAllAmount: true,
48
- });
49
- const result = await (0, prepareTransaction_1.prepareTransaction)(mockAccount, useAllAmountTx);
50
- const expectedAmount = mockAccount.spendableBalance.minus(mockEstimatedFees);
51
- expect(jsHelpers_1.updateTransaction).toHaveBeenCalledWith(useAllAmountTx, {
52
- fees: mockEstimatedFees,
53
- amount: expectedAmount,
54
- });
55
- expect(result).toEqual({
56
- ...useAllAmountTx,
57
- fees: mockEstimatedFees,
58
- amount: expectedAmount,
59
- });
60
- });
61
- test("should recalculate amount for useAllAmount transactions after fee update", async () => {
62
- const useAllAmountTx = (0, fixtures_1.createMockTransaction)({
63
- ...mockTransaction,
64
- useAllAmount: true,
65
- });
66
- const result = await (0, prepareTransaction_1.prepareTransaction)(mockAccount, useAllAmountTx);
67
- const expectedAmount = mockAccount.spendableBalance.minus(mockEstimatedFees);
68
- expect(result.amount).toEqual(expectedAmount);
69
- });
70
- // Using parameterized testing with fixtures
71
- describe("with test case fixtures", () => {
72
- // Define test cases inline for controlled fee values
73
- test.each([
74
- {
75
- name: "Standard transaction",
76
- account: (0, fixtures_1.createMockAccount)({
77
- spendableBalance: new bignumber_js_1.BigNumber("10000000000"),
78
- }),
79
- transaction: (0, fixtures_1.createMockTransaction)({
80
- amount: new bignumber_js_1.BigNumber("1000000000"),
81
- useAllAmount: false,
82
- }),
83
- expectedResult: {
84
- fees: mockEstimatedFees,
85
- amount: new bignumber_js_1.BigNumber("1000000000"),
86
- },
87
- },
88
- {
89
- name: "Use all amount transaction",
90
- account: (0, fixtures_1.createMockAccount)({
91
- spendableBalance: new bignumber_js_1.BigNumber("10000000000"),
92
- }),
93
- transaction: (0, fixtures_1.createMockTransaction)({
94
- useAllAmount: true,
95
- }),
96
- expectedResult: {
97
- fees: mockEstimatedFees,
98
- amount: new bignumber_js_1.BigNumber("10000000000").minus(mockEstimatedFees),
99
- },
100
- },
101
- {
102
- name: "Low balance account",
103
- account: (0, fixtures_1.createMockAccount)({
104
- spendableBalance: new bignumber_js_1.BigNumber(mockEstimatedFees.div(2)),
105
- }),
106
- transaction: (0, fixtures_1.createMockTransaction)({
107
- useAllAmount: true,
108
- }),
109
- expectedResult: {
110
- fees: mockEstimatedFees,
111
- // For low balance, amount should be negative (will be handled in the test)
112
- amount: new bignumber_js_1.BigNumber(mockEstimatedFees.div(2)).minus(mockEstimatedFees),
113
- },
114
- },
115
- {
116
- name: "Exactly enough for fees",
117
- account: (0, fixtures_1.createMockAccount)({
118
- spendableBalance: mockEstimatedFees,
119
- }),
120
- transaction: (0, fixtures_1.createMockTransaction)({
121
- useAllAmount: true,
122
- }),
123
- expectedResult: {
124
- fees: mockEstimatedFees,
125
- // For exact fee balance, amount should be zero
126
- amount: new bignumber_js_1.BigNumber("0"),
127
- },
128
- },
129
- {
130
- name: "Custom fee override",
131
- account: (0, fixtures_1.createMockAccount)({
132
- spendableBalance: new bignumber_js_1.BigNumber("10000000000"),
133
- }),
134
- transaction: (0, fixtures_1.createMockTransaction)({
135
- fees: new bignumber_js_1.BigNumber("2000000"),
136
- useAllAmount: true,
137
- }),
138
- expectedResult: {
139
- fees: mockEstimatedFees,
140
- amount: new bignumber_js_1.BigNumber("10000000000").minus(mockEstimatedFees),
141
- },
142
- },
143
- ])("$name", async ({ account, transaction, expectedResult }) => {
144
- const result = await (0, prepareTransaction_1.prepareTransaction)(account, transaction);
145
- expect(result.fees).toEqual(expectedResult.fees);
146
- // For negative balance scenarios, just check they're less than or equal to zero
147
- if (account.spendableBalance.lt(mockEstimatedFees) && transaction.useAllAmount) {
148
- expect(result.amount.lte(new bignumber_js_1.BigNumber("0"))).toBe(true);
149
- }
150
- else if (account.spendableBalance.eq(mockEstimatedFees) && transaction.useAllAmount) {
151
- expect(result.amount.eq(new bignumber_js_1.BigNumber("0"))).toBe(true);
152
- }
153
- else {
154
- expect(result.amount).toEqual(expectedResult.amount);
155
- }
156
- });
157
- });
158
- });
159
- //# sourceMappingURL=prepareTransaction.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prepareTransaction.test.js","sourceRoot":"","sources":["../../src/bridge/prepareTransaction.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=transaction.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transaction.test.d.ts","sourceRoot":"","sources":["../../src/bridge/transaction.test.ts"],"names":[],"mappings":""}
@@ -1,179 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- const bignumber_js_1 = require("bignumber.js");
27
- const transaction_1 = __importStar(require("./transaction"));
28
- const fixtures_1 = require("../test/fixtures");
29
- describe("transaction", () => {
30
- // Using the createMockAccount function from fixtures
31
- const account = (0, fixtures_1.createMockAccount)({
32
- id: "casper:0:testAccount",
33
- balance: new bignumber_js_1.BigNumber(100000000),
34
- spendableBalance: new bignumber_js_1.BigNumber(100000000),
35
- blockHeight: 123456,
36
- freshAddress: "0123456789",
37
- freshAddressPath: "44'/506'/0'/0/0",
38
- lastSyncDate: new Date(),
39
- });
40
- describe("formatTransaction", () => {
41
- test("should format a transaction with amount", () => {
42
- const tx = (0, fixtures_1.createMockTransaction)({
43
- recipient: fixtures_1.TEST_ADDRESSES.RECIPIENT_SECP256K1,
44
- useAllAmount: false,
45
- amount: new bignumber_js_1.BigNumber(50000000),
46
- fees: new bignumber_js_1.BigNumber(1000000),
47
- transferId: "1",
48
- });
49
- const result = (0, transaction_1.formatTransaction)(tx, account);
50
- expect(result).toContain("SEND");
51
- expect(result).toContain("0.05");
52
- expect(result).toContain("CSPR");
53
- expect(result).toContain(`TO ${fixtures_1.TEST_ADDRESSES.RECIPIENT_SECP256K1}`);
54
- });
55
- test("should format a transaction with useAllAmount", () => {
56
- const tx = (0, fixtures_1.createMockTransaction)({
57
- recipient: fixtures_1.TEST_ADDRESSES.RECIPIENT_SECP256K1,
58
- useAllAmount: true,
59
- amount: new bignumber_js_1.BigNumber(0),
60
- fees: new bignumber_js_1.BigNumber(1000000),
61
- transferId: "1",
62
- });
63
- const result = (0, transaction_1.formatTransaction)(tx, account);
64
- expect(result).toContain("SEND MAX");
65
- expect(result).toContain(`TO ${fixtures_1.TEST_ADDRESSES.RECIPIENT_SECP256K1}`);
66
- });
67
- test("should format a transaction with zero amount", () => {
68
- const tx = (0, fixtures_1.createMockTransaction)({
69
- recipient: fixtures_1.TEST_ADDRESSES.RECIPIENT_SECP256K1,
70
- useAllAmount: false,
71
- amount: new bignumber_js_1.BigNumber(0),
72
- fees: new bignumber_js_1.BigNumber(1000000),
73
- transferId: "1",
74
- });
75
- const result = (0, transaction_1.formatTransaction)(tx, account);
76
- expect(result).toContain("SEND");
77
- expect(result).not.toContain("MAX");
78
- expect(result).not.toContain("CSPR");
79
- expect(result).toContain(`TO ${fixtures_1.TEST_ADDRESSES.RECIPIENT_SECP256K1}`);
80
- });
81
- test("should format a transaction with different address formats", () => {
82
- // Test with ED25519 address format
83
- const tx = (0, fixtures_1.createMockTransaction)({
84
- recipient: fixtures_1.TEST_ADDRESSES.RECIPIENT_ED25519,
85
- amount: new bignumber_js_1.BigNumber(50000000),
86
- });
87
- const result = (0, transaction_1.formatTransaction)(tx, account);
88
- expect(result).toContain(`TO ${fixtures_1.TEST_ADDRESSES.RECIPIENT_ED25519}`);
89
- });
90
- test("should format a transaction with transfer ID", () => {
91
- const tx = (0, fixtures_1.createMockTransaction)({
92
- recipient: fixtures_1.TEST_ADDRESSES.RECIPIENT_SECP256K1,
93
- amount: new bignumber_js_1.BigNumber(50000000),
94
- transferId: fixtures_1.TEST_TRANSFER_IDS.VALID,
95
- });
96
- const result = (0, transaction_1.formatTransaction)(tx, account);
97
- expect(result).toContain("0.05");
98
- expect(result).toContain("CSPR");
99
- expect(result).toContain(`TO ${fixtures_1.TEST_ADDRESSES.RECIPIENT_SECP256K1}`);
100
- });
101
- });
102
- describe("fromTransactionRaw", () => {
103
- test("should convert a transaction raw to a transaction", () => {
104
- const raw = {
105
- family: "casper",
106
- recipient: fixtures_1.TEST_ADDRESSES.RECIPIENT_SECP256K1,
107
- useAllAmount: false,
108
- amount: "50000000",
109
- fees: "1000000",
110
- transferId: fixtures_1.TEST_TRANSFER_IDS.VALID,
111
- };
112
- const result = (0, transaction_1.fromTransactionRaw)(raw);
113
- expect(result.family).toBe("casper");
114
- expect(result.recipient).toBe(fixtures_1.TEST_ADDRESSES.RECIPIENT_SECP256K1);
115
- expect(result.useAllAmount).toBe(false);
116
- expect(result.amount).toEqual(new bignumber_js_1.BigNumber(50000000));
117
- expect(result.fees).toEqual(new bignumber_js_1.BigNumber(1000000));
118
- expect(result.transferId).toBe(fixtures_1.TEST_TRANSFER_IDS.VALID);
119
- });
120
- test("should handle transaction raw without optional fields", () => {
121
- const raw = {
122
- family: "casper",
123
- recipient: fixtures_1.TEST_ADDRESSES.RECIPIENT_SECP256K1,
124
- useAllAmount: false,
125
- amount: "50000000",
126
- fees: "1000000",
127
- };
128
- const result = (0, transaction_1.fromTransactionRaw)(raw);
129
- expect(result.family).toBe("casper");
130
- expect(result.transferId).toBeUndefined();
131
- });
132
- });
133
- describe("toTransactionRaw", () => {
134
- test("should convert a transaction to a transaction raw", () => {
135
- const tx = (0, fixtures_1.createMockTransaction)({
136
- recipient: fixtures_1.TEST_ADDRESSES.RECIPIENT_SECP256K1,
137
- useAllAmount: false,
138
- amount: new bignumber_js_1.BigNumber(50000000),
139
- fees: new bignumber_js_1.BigNumber(1000000),
140
- transferId: fixtures_1.TEST_TRANSFER_IDS.VALID,
141
- });
142
- const result = transaction_1.default.toTransactionRaw(tx);
143
- expect(result.family).toBe("casper");
144
- expect(result.recipient).toBe(fixtures_1.TEST_ADDRESSES.RECIPIENT_SECP256K1);
145
- expect(result.useAllAmount).toBe(false);
146
- expect(result.amount).toBe("50000000");
147
- expect(result.fees).toBe("1000000");
148
- expect(result.transferId).toBe(fixtures_1.TEST_TRANSFER_IDS.VALID);
149
- });
150
- test("should handle transaction without optional fields", () => {
151
- const tx = (0, fixtures_1.createMockTransaction)({
152
- recipient: fixtures_1.TEST_ADDRESSES.RECIPIENT_SECP256K1,
153
- useAllAmount: false,
154
- amount: new bignumber_js_1.BigNumber(50000000),
155
- fees: new bignumber_js_1.BigNumber(1000000),
156
- transferId: undefined,
157
- });
158
- const result = transaction_1.default.toTransactionRaw(tx);
159
- expect(result.transferId).toBeUndefined();
160
- });
161
- test("should handle different transaction scenarios", () => {
162
- // Test with useAllAmount = true
163
- const maxTx = (0, fixtures_1.createMockTransaction)({
164
- useAllAmount: true,
165
- amount: new bignumber_js_1.BigNumber(0),
166
- });
167
- const maxResult = transaction_1.default.toTransactionRaw(maxTx);
168
- expect(maxResult.useAllAmount).toBe(true);
169
- expect(maxResult.amount).toBe("0");
170
- // Test with very large amount
171
- const largeTx = (0, fixtures_1.createMockTransaction)({
172
- amount: new bignumber_js_1.BigNumber("9999000000000"), // 9,999 CSPR
173
- });
174
- const largeResult = transaction_1.default.toTransactionRaw(largeTx);
175
- expect(largeResult.amount).toBe("9999000000000");
176
- });
177
- });
178
- });
179
- //# sourceMappingURL=transaction.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transaction.test.js","sourceRoot":"","sources":["../../src/bridge/transaction.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=utils.additional.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.additional.test.d.ts","sourceRoot":"","sources":["../../src/common-logic/utils.additional.test.ts"],"names":[],"mappings":""}
@@ -1,58 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const utils_1 = require("./utils");
4
- describe("Casper utils", () => {
5
- describe("isNoErrorReturnCode", () => {
6
- test("should return true for code 0x9000", () => {
7
- expect((0, utils_1.isNoErrorReturnCode)(0x9000)).toBe(true);
8
- });
9
- test("should return false for other codes", () => {
10
- expect((0, utils_1.isNoErrorReturnCode)(0x6984)).toBe(false);
11
- expect((0, utils_1.isNoErrorReturnCode)(0x6a80)).toBe(false);
12
- expect((0, utils_1.isNoErrorReturnCode)(0)).toBe(false);
13
- });
14
- });
15
- describe("getPath", () => {
16
- test("should add m/ prefix if not present", () => {
17
- expect((0, utils_1.getPath)("44'/506'/0'/0/0")).toBe("m/44'/506'/0'/0/0");
18
- });
19
- test("should not modify path if m/ prefix is already present", () => {
20
- expect((0, utils_1.getPath)("m/44'/506'/0'/0/0")).toBe("m/44'/506'/0'/0/0");
21
- });
22
- test("should handle empty path", () => {
23
- expect((0, utils_1.getPath)("")).toBe("");
24
- });
25
- });
26
- describe("isError", () => {
27
- test("should not throw for successful return code", () => {
28
- expect(() => (0, utils_1.isError)({ returnCode: 0x9000, errorMessage: "Success" })).not.toThrow();
29
- });
30
- test("should throw for error return codes", () => {
31
- expect(() => (0, utils_1.isError)({ returnCode: 0x6a80, errorMessage: "Bad data" })).toThrow("27264 - Bad data");
32
- });
33
- });
34
- describe("methodToString", () => {
35
- test("should return 'Token transfer' for method 0", () => {
36
- expect((0, utils_1.methodToString)(0)).toBe("Token transfer");
37
- });
38
- test("should return 'Unknown' for other methods", () => {
39
- expect((0, utils_1.methodToString)(1)).toBe("Unknown");
40
- expect((0, utils_1.methodToString)(999)).toBe("Unknown");
41
- });
42
- });
43
- describe("getRandomTransferID", () => {
44
- test("should return a string containing a number", () => {
45
- const result = (0, utils_1.getRandomTransferID)();
46
- expect(typeof result).toBe("string");
47
- expect(Number.isNaN(parseInt(result, 10))).toBe(false);
48
- });
49
- test("should generate different IDs on multiple calls", () => {
50
- const id1 = (0, utils_1.getRandomTransferID)();
51
- const id2 = (0, utils_1.getRandomTransferID)();
52
- const id3 = (0, utils_1.getRandomTransferID)();
53
- // There's a very small chance these could be the same, but it's extremely unlikely
54
- expect(new Set([id1, id2, id3]).size).toBeGreaterThan(0);
55
- });
56
- });
57
- });
58
- //# sourceMappingURL=utils.additional.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.additional.test.js","sourceRoot":"","sources":["../../src/common-logic/utils.additional.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=utils.unit.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.unit.test.d.ts","sourceRoot":"","sources":["../../src/common-logic/utils.unit.test.ts"],"names":[],"mappings":""}
@@ -1,52 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const casper_js_sdk_1 = require("casper-js-sdk");
4
- const addresses_1 = require("../bridge/bridgeHelpers/addresses");
5
- describe("Casper addresses", () => {
6
- const pubKeys = {
7
- // valid
8
- validSecp256k1: "0203a17118ec0e64c4e4fdbdbee0ea14d118c9aaf08c6c81bbb776cae607ceb84ecb",
9
- validEd25519: "016470ae57b0a3ad5a679d2e0422909bfb9ded445e20cbe6b4c9806f844c94d401",
10
- validSecp256k1Checksum: "0203A17118eC0e64c4e4FdbDbEe0eA14D118C9aAf08C6c81bbB776Cae607cEB84EcB", // Checksummed
11
- validEd25519Checksum: "016470AE57b0a3aD5A679d2e0422909Bfb9dEd445e20cbE6B4c9806f844c94d401", // Checksummed
12
- // invalid
13
- invalidSecp256k1: "0203A17118ec0e64c4e4fdbdbee0ea14d118c9aaf08c6c81bbc776cae607ceb84ecb",
14
- invalidEd25519: "016470ae57b0a3ad5a679d2e0422909bfb9ded445e20cbe6b8c9806f844c94D401",
15
- invalidAddresstype: "036470ae57b0a3ad5a679d2e0422909bfb9ded445e20cbe6b8c9806f844c94d401", // Invalid address type
16
- invalidLength: "12345", // Invalid length
17
- invalidCharacter: "xyz123", // Contains non-hex characters
18
- invalidChecksum: "016470ae57b0a3ad5a679d2e0422909bfb9ded445e20cbe6b4c9806f844c94D400", // Invalid checksum
19
- };
20
- test("Check if valid addresses are valid", () => {
21
- expect((0, addresses_1.isAddressValid)(pubKeys.validEd25519)).toBe(true);
22
- expect((0, addresses_1.isAddressValid)(pubKeys.validSecp256k1)).toBe(true);
23
- expect((0, addresses_1.isAddressValid)(pubKeys.validSecp256k1Checksum)).toBe(true);
24
- expect((0, addresses_1.isAddressValid)(pubKeys.validEd25519Checksum)).toBe(true);
25
- });
26
- test("Check if invalid addresses are invalid", () => {
27
- expect((0, addresses_1.isAddressValid)(pubKeys.invalidEd25519)).toBe(false);
28
- expect((0, addresses_1.isAddressValid)(pubKeys.invalidSecp256k1)).toBe(false);
29
- expect((0, addresses_1.isAddressValid)(pubKeys.invalidLength)).toBe(false);
30
- expect((0, addresses_1.isAddressValid)(pubKeys.invalidCharacter)).toBe(false);
31
- expect((0, addresses_1.isAddressValid)(pubKeys.invalidChecksum)).toBe(false);
32
- });
33
- test("Get the address from the publick key", () => {
34
- /**
35
- * Extracts the public key and key signature from a given Casper address.
36
- *
37
- * @param {string} address - The Casper address from which to extract the public key and key signature.
38
- * @returns {{ pubkey: Buffer, keySig: CLPublicKeyTag }} An object containing the public key as a Buffer and the key signature as a CLPublicKeyTag.
39
- */
40
- function casperPubKeyFromAddress(address) {
41
- const keySig = parseInt(address.slice(0, 2), 10);
42
- const pubkeyHex = address.slice(2);
43
- const pubkey = Buffer.from(pubkeyHex, "hex");
44
- return { pubkey, keySig };
45
- }
46
- expect((0, addresses_1.casperAddressFromPubKey)(casperPubKeyFromAddress(pubKeys.validSecp256k1).pubkey, casper_js_sdk_1.KeyAlgorithm.SECP256K1)).toBe(pubKeys.validSecp256k1);
47
- expect((0, addresses_1.casperAddressFromPubKey)(casperPubKeyFromAddress(pubKeys.validSecp256k1Checksum).pubkey, casper_js_sdk_1.KeyAlgorithm.SECP256K1)).toBe(pubKeys.validSecp256k1Checksum.toLowerCase());
48
- expect((0, addresses_1.casperAddressFromPubKey)(casperPubKeyFromAddress(pubKeys.validEd25519).pubkey, casper_js_sdk_1.KeyAlgorithm.ED25519)).toBe(pubKeys.validEd25519);
49
- expect((0, addresses_1.casperAddressFromPubKey)(casperPubKeyFromAddress(pubKeys.validEd25519Checksum).pubkey, casper_js_sdk_1.KeyAlgorithm.ED25519)).toBe(pubKeys.validEd25519Checksum.toLowerCase());
50
- });
51
- });
52
- //# sourceMappingURL=utils.unit.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.unit.test.js","sourceRoot":"","sources":["../../src/common-logic/utils.unit.test.ts"],"names":[],"mappings":";;AAAA,iDAA6C;AAC7C,iEAA4F;AAE5F,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,MAAM,OAAO,GAAG;QACd,QAAQ;QACR,cAAc,EAAE,sEAAsE;QACtF,YAAY,EAAE,oEAAoE;QAClF,sBAAsB,EAAE,sEAAsE,EAAE,cAAc;QAC9G,oBAAoB,EAAE,oEAAoE,EAAE,cAAc;QAC1G,UAAU;QACV,gBAAgB,EAAE,sEAAsE;QACxF,cAAc,EAAE,oEAAoE;QACpF,kBAAkB,EAAE,oEAAoE,EAAE,uBAAuB;QACjH,aAAa,EAAE,OAAO,EAAE,iBAAiB;QACzC,gBAAgB,EAAE,QAAQ,EAAE,8BAA8B;QAC1D,eAAe,EAAE,oEAAoE,EAAE,mBAAmB;KAC3G,CAAC;IAEF,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,IAAA,0BAAc,EAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,CAAC,IAAA,0BAAc,EAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,CAAC,IAAA,0BAAc,EAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClE,MAAM,CAAC,IAAA,0BAAc,EAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,IAAA,0BAAc,EAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3D,MAAM,CAAC,IAAA,0BAAc,EAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7D,MAAM,CAAC,IAAA,0BAAc,EAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1D,MAAM,CAAC,IAAA,0BAAc,EAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7D,MAAM,CAAC,IAAA,0BAAc,EAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAChD;;;;;WAKG;QACH,SAAS,uBAAuB,CAAC,OAAe;YAI9C,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAiB,CAAC;YACjE,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAC5B,CAAC;QAED,MAAM,CACJ,IAAA,mCAAuB,EACrB,uBAAuB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,MAAM,EACtD,4BAAY,CAAC,SAAS,CACvB,CACF,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC/B,MAAM,CACJ,IAAA,mCAAuB,EACrB,uBAAuB,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,MAAM,EAC9D,4BAAY,CAAC,SAAS,CACvB,CACF,CAAC,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC,CAAC;QACrD,MAAM,CACJ,IAAA,mCAAuB,EACrB,uBAAuB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,EACpD,4BAAY,CAAC,OAAO,CACrB,CACF,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC7B,MAAM,CACJ,IAAA,mCAAuB,EACrB,uBAAuB,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,MAAM,EAC5D,4BAAY,CAAC,OAAO,CACrB,CACF,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=hw-signMessage.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hw-signMessage.test.d.ts","sourceRoot":"","sources":["../src/hw-signMessage.test.ts"],"names":[],"mappings":""}
@@ -1,80 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const hw_signMessage_1 = require("./hw-signMessage");
4
- describe("hw-signMessage", () => {
5
- // Test fixtures
6
- const mockDeviceId = "device_123";
7
- // Only define the properties actually used by the signMessage function
8
- const mockAccount = {
9
- freshAddressPath: "44'/506'/0'/0/1",
10
- };
11
- // Mock signature response
12
- const mockSignatureResponse = {
13
- errorMessage: "",
14
- returnCode: 0x9000,
15
- signatureRS: Buffer.from("00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff", "hex"),
16
- signatureRSV: Buffer.from("00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff01", "hex"),
17
- signature_compact: new Uint8Array(Buffer.from("00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff01", "hex")),
18
- };
19
- // Mock a successful signer
20
- const mockSigner = {
21
- showAddressAndPubKey: jest.fn(),
22
- getAddressAndPubKey: jest.fn(),
23
- sign: jest.fn().mockResolvedValue(mockSignatureResponse),
24
- };
25
- // Mock signerContext function
26
- const mockSignerContext = jest.fn((deviceId, callback) => callback(mockSigner));
27
- beforeEach(() => {
28
- jest.clearAllMocks();
29
- });
30
- test("should sign a plain text message correctly", async () => {
31
- const message = "Hello Casper Network";
32
- const result = await (0, hw_signMessage_1.signMessage)(mockSignerContext)(mockDeviceId, mockAccount, { message });
33
- // Verify the signer was called with correct parameters
34
- expect(mockSignerContext).toHaveBeenCalledWith(mockDeviceId, expect.any(Function));
35
- expect(mockSigner.sign).toHaveBeenCalledWith(mockAccount.freshAddressPath, expect.any(Buffer));
36
- // Verify the correct signature format is returned
37
- expect(result).toEqual({
38
- rsv: {
39
- r: "00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff",
40
- s: "01",
41
- v: NaN,
42
- },
43
- signature: "0x00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff01",
44
- });
45
- });
46
- test("should sign a hex message correctly", async () => {
47
- const message = "0x123456789abcdef";
48
- const result = await (0, hw_signMessage_1.signMessage)(mockSignerContext)(mockDeviceId, mockAccount, { message });
49
- expect(mockSigner.sign).toHaveBeenCalledWith(mockAccount.freshAddressPath, expect.any(Buffer));
50
- expect(result.signature).toBe("0x00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff01");
51
- });
52
- test("should sign a base64 message correctly", async () => {
53
- const message = "SGVsbG8gQ2FzcGVyIE5ldHdvcms="; // "Hello Casper Network" in base64
54
- const result = await (0, hw_signMessage_1.signMessage)(mockSignerContext)(mockDeviceId, mockAccount, { message });
55
- expect(mockSigner.sign).toHaveBeenCalledWith(mockAccount.freshAddressPath, expect.any(Buffer));
56
- expect(result.signature).toBe("0x00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff01");
57
- });
58
- test("should throw error if message is empty", async () => {
59
- await expect((0, hw_signMessage_1.signMessage)(mockSignerContext)(mockDeviceId, mockAccount, { message: "" })).rejects.toThrow("Message cannot be empty");
60
- });
61
- test("should throw error if message is undefined", async () => {
62
- await expect((0, hw_signMessage_1.signMessage)(mockSignerContext)(mockDeviceId, mockAccount, { message: undefined })).rejects.toThrow("Message cannot be empty");
63
- });
64
- test("should throw error if message is not a string", async () => {
65
- await expect((0, hw_signMessage_1.signMessage)(mockSignerContext)(mockDeviceId, mockAccount, {
66
- message: { type: "EIP712" },
67
- })).rejects.toThrow("Signing EIP712Message not supported");
68
- });
69
- test("should propagate errors from the signer", async () => {
70
- // Mock an error from the signer
71
- const errorSigner = {
72
- showAddressAndPubKey: jest.fn(),
73
- getAddressAndPubKey: jest.fn(),
74
- sign: jest.fn().mockRejectedValue(new Error("Device disconnected")),
75
- };
76
- const errorSignerContext = jest.fn((deviceId, callback) => callback(errorSigner));
77
- await expect((0, hw_signMessage_1.signMessage)(errorSignerContext)(mockDeviceId, mockAccount, { message: "test" })).rejects.toThrow("Device disconnected");
78
- });
79
- });
80
- //# sourceMappingURL=hw-signMessage.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hw-signMessage.test.js","sourceRoot":"","sources":["../src/hw-signMessage.test.ts"],"names":[],"mappings":";;AAEA,qDAA+C;AAG/C,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,gBAAgB;IAChB,MAAM,YAAY,GAAG,YAAY,CAAC;IAElC,uEAAuE;IACvE,MAAM,WAAW,GAAG;QAClB,gBAAgB,EAAE,iBAAiB;KACd,CAAC;IAExB,0BAA0B;IAC1B,MAAM,qBAAqB,GAAoB;QAC7C,YAAY,EAAE,EAAE;QAChB,UAAU,EAAE,MAAM;QAClB,WAAW,EAAE,MAAM,CAAC,IAAI,CACtB,kEAAkE,EAClE,KAAK,CACN;QACD,YAAY,EAAE,MAAM,CAAC,IAAI,CACvB,oEAAoE,EACpE,KAAK,CACN;QACD,iBAAiB,EAAE,IAAI,UAAU,CAC/B,MAAM,CAAC,IAAI,CAAC,oEAAoE,EAAE,KAAK,CAAC,CACzF;KACF,CAAC;IAEF,2BAA2B;IAC3B,MAAM,UAAU,GAAiB;QAC/B,oBAAoB,EAAE,IAAI,CAAC,EAAE,EAAE;QAC/B,mBAAmB,EAAE,IAAI,CAAC,EAAE,EAAE;QAC9B,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,qBAAqB,CAAC;KACzD,CAAC;IAEF,8BAA8B;IAC9B,MAAM,iBAAiB,GAAgC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CACpF,QAAQ,CAAC,UAAU,CAAC,CACrB,CAAC;IAEF,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,OAAO,GAAG,sBAAsB,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,IAAA,4BAAW,EAAC,iBAAiB,CAAC,CAAC,YAAY,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAE5F,uDAAuD;QACvD,MAAM,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnF,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QAE/F,kDAAkD;QAClD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,GAAG,EAAE;gBACH,CAAC,EAAE,kEAAkE;gBACrE,CAAC,EAAE,IAAI;gBACP,CAAC,EAAE,GAAG;aACP;YACD,SAAS,EAAE,sEAAsE;SAClF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,OAAO,GAAG,mBAAmB,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,IAAA,4BAAW,EAAC,iBAAiB,CAAC,CAAC,YAAY,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAE5F,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/F,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAC3B,sEAAsE,CACvE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,OAAO,GAAG,8BAA8B,CAAC,CAAC,mCAAmC;QACnF,MAAM,MAAM,GAAG,MAAM,IAAA,4BAAW,EAAC,iBAAiB,CAAC,CAAC,YAAY,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAE5F,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/F,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAC3B,sEAAsE,CACvE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,MAAM,CACV,IAAA,4BAAW,EAAC,iBAAiB,CAAC,CAAC,YAAY,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAC3E,CAAC,OAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,MAAM,CACV,IAAA,4BAAW,EAAC,iBAAiB,CAAC,CAAC,YAAY,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,SAAgB,EAAE,CAAC,CACzF,CAAC,OAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,MAAM,CACV,IAAA,4BAAW,EAAC,iBAAiB,CAAC,CAAC,YAAY,EAAE,WAAW,EAAE;YACxD,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAS;SACnC,CAAC,CACH,CAAC,OAAO,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACzD,gCAAgC;QAChC,MAAM,WAAW,GAAiB;YAChC,oBAAoB,EAAE,IAAI,CAAC,EAAE,EAAE;YAC/B,mBAAmB,EAAE,IAAI,CAAC,EAAE,EAAE;YAC9B,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;SACpE,CAAC;QAEF,MAAM,kBAAkB,GAAgC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CACrF,QAAQ,CAAC,WAAW,CAAC,CACtB,CAAC;QAEF,MAAM,MAAM,CACV,IAAA,4BAAW,EAAC,kBAAkB,CAAC,CAAC,YAAY,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAChF,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -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":""}