@ledgerhq/coin-celo 1.6.0 → 1.6.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 (74) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/package.json +8 -8
  3. package/lib/__tests__/bridge/buildOptimisticOperation.test.d.ts +0 -2
  4. package/lib/__tests__/bridge/buildOptimisticOperation.test.d.ts.map +0 -1
  5. package/lib/__tests__/bridge/buildOptimisticOperation.test.js +0 -23
  6. package/lib/__tests__/bridge/buildOptimisticOperation.test.js.map +0 -1
  7. package/lib/__tests__/bridge/buildTransaction.test.d.ts +0 -2
  8. package/lib/__tests__/bridge/buildTransaction.test.d.ts.map +0 -1
  9. package/lib/__tests__/bridge/buildTransaction.test.js +0 -412
  10. package/lib/__tests__/bridge/buildTransaction.test.js.map +0 -1
  11. package/lib/__tests__/bridge/createTransaction.test.d.ts +0 -2
  12. package/lib/__tests__/bridge/createTransaction.test.d.ts.map +0 -1
  13. package/lib/__tests__/bridge/createTransaction.test.js +0 -22
  14. package/lib/__tests__/bridge/createTransaction.test.js.map +0 -1
  15. package/lib/__tests__/bridge/deviceTransactionConfig.test.d.ts +0 -2
  16. package/lib/__tests__/bridge/deviceTransactionConfig.test.d.ts.map +0 -1
  17. package/lib/__tests__/bridge/deviceTransactionConfig.test.js +0 -21
  18. package/lib/__tests__/bridge/deviceTransactionConfig.test.js.map +0 -1
  19. package/lib/__tests__/bridge/estimateMaxSpendable.test.d.ts +0 -2
  20. package/lib/__tests__/bridge/estimateMaxSpendable.test.d.ts.map +0 -1
  21. package/lib/__tests__/bridge/estimateMaxSpendable.test.js +0 -108
  22. package/lib/__tests__/bridge/estimateMaxSpendable.test.js.map +0 -1
  23. package/lib/__tests__/bridge/getFeesForTransaction.test.d.ts +0 -2
  24. package/lib/__tests__/bridge/getFeesForTransaction.test.d.ts.map +0 -1
  25. package/lib/__tests__/bridge/getFeesForTransaction.test.js +0 -212
  26. package/lib/__tests__/bridge/getFeesForTransaction.test.js.map +0 -1
  27. package/lib/__tests__/bridge/getTransactionStatus.test.d.ts +0 -2
  28. package/lib/__tests__/bridge/getTransactionStatus.test.d.ts.map +0 -1
  29. package/lib/__tests__/bridge/getTransactionStatus.test.js +0 -214
  30. package/lib/__tests__/bridge/getTransactionStatus.test.js.map +0 -1
  31. package/lib/__tests__/bridge/logic.test.d.ts +0 -2
  32. package/lib/__tests__/bridge/logic.test.d.ts.map +0 -1
  33. package/lib/__tests__/bridge/logic.test.js +0 -490
  34. package/lib/__tests__/bridge/logic.test.js.map +0 -1
  35. package/lib/__tests__/bridge/prepareTransaction.test.d.ts +0 -2
  36. package/lib/__tests__/bridge/prepareTransaction.test.d.ts.map +0 -1
  37. package/lib/__tests__/bridge/prepareTransaction.test.js +0 -233
  38. package/lib/__tests__/bridge/prepareTransaction.test.js.map +0 -1
  39. package/lib-es/__tests__/bridge/buildOptimisticOperation.test.d.ts +0 -2
  40. package/lib-es/__tests__/bridge/buildOptimisticOperation.test.d.ts.map +0 -1
  41. package/lib-es/__tests__/bridge/buildOptimisticOperation.test.js +0 -18
  42. package/lib-es/__tests__/bridge/buildOptimisticOperation.test.js.map +0 -1
  43. package/lib-es/__tests__/bridge/buildTransaction.test.d.ts +0 -2
  44. package/lib-es/__tests__/bridge/buildTransaction.test.d.ts.map +0 -1
  45. package/lib-es/__tests__/bridge/buildTransaction.test.js +0 -407
  46. package/lib-es/__tests__/bridge/buildTransaction.test.js.map +0 -1
  47. package/lib-es/__tests__/bridge/createTransaction.test.d.ts +0 -2
  48. package/lib-es/__tests__/bridge/createTransaction.test.d.ts.map +0 -1
  49. package/lib-es/__tests__/bridge/createTransaction.test.js +0 -17
  50. package/lib-es/__tests__/bridge/createTransaction.test.js.map +0 -1
  51. package/lib-es/__tests__/bridge/deviceTransactionConfig.test.d.ts +0 -2
  52. package/lib-es/__tests__/bridge/deviceTransactionConfig.test.d.ts.map +0 -1
  53. package/lib-es/__tests__/bridge/deviceTransactionConfig.test.js +0 -16
  54. package/lib-es/__tests__/bridge/deviceTransactionConfig.test.js.map +0 -1
  55. package/lib-es/__tests__/bridge/estimateMaxSpendable.test.d.ts +0 -2
  56. package/lib-es/__tests__/bridge/estimateMaxSpendable.test.d.ts.map +0 -1
  57. package/lib-es/__tests__/bridge/estimateMaxSpendable.test.js +0 -103
  58. package/lib-es/__tests__/bridge/estimateMaxSpendable.test.js.map +0 -1
  59. package/lib-es/__tests__/bridge/getFeesForTransaction.test.d.ts +0 -2
  60. package/lib-es/__tests__/bridge/getFeesForTransaction.test.d.ts.map +0 -1
  61. package/lib-es/__tests__/bridge/getFeesForTransaction.test.js +0 -207
  62. package/lib-es/__tests__/bridge/getFeesForTransaction.test.js.map +0 -1
  63. package/lib-es/__tests__/bridge/getTransactionStatus.test.d.ts +0 -2
  64. package/lib-es/__tests__/bridge/getTransactionStatus.test.d.ts.map +0 -1
  65. package/lib-es/__tests__/bridge/getTransactionStatus.test.js +0 -209
  66. package/lib-es/__tests__/bridge/getTransactionStatus.test.js.map +0 -1
  67. package/lib-es/__tests__/bridge/logic.test.d.ts +0 -2
  68. package/lib-es/__tests__/bridge/logic.test.d.ts.map +0 -1
  69. package/lib-es/__tests__/bridge/logic.test.js +0 -485
  70. package/lib-es/__tests__/bridge/logic.test.js.map +0 -1
  71. package/lib-es/__tests__/bridge/prepareTransaction.test.d.ts +0 -2
  72. package/lib-es/__tests__/bridge/prepareTransaction.test.d.ts.map +0 -1
  73. package/lib-es/__tests__/bridge/prepareTransaction.test.js +0 -228
  74. package/lib-es/__tests__/bridge/prepareTransaction.test.js.map +0 -1
@@ -1,407 +0,0 @@
1
- import BigNumber from "bignumber.js";
2
- import buildTransaction from "../../bridge/buildTransaction";
3
- import { accountFixture, accountWithTokenAccountFixture, transactionFixture, } from "../../bridge/fixtures";
4
- const chainIdMock = jest.fn();
5
- const nonceMock = jest.fn();
6
- const voteMock = jest.fn(() => ({
7
- txo: {
8
- encodeABI: jest.fn(() => ({ data: "vote_data" })),
9
- estimateGas: jest.fn(async () => 1),
10
- },
11
- }));
12
- const revokeMock = jest.fn();
13
- const voteSignerToAccountMock = jest.fn();
14
- jest.mock("../../network/sdk", () => {
15
- return {
16
- celoKit: jest.fn(() => ({
17
- contracts: {
18
- getLockedGold: jest.fn(async () => ({
19
- address: "address",
20
- lock: jest.fn(() => ({
21
- txo: {
22
- encodeABI: jest.fn(() => ({ data: "lock_data" })),
23
- estimateGas: jest.fn(async () => 2),
24
- },
25
- })),
26
- unlock: jest.fn(() => ({
27
- txo: {
28
- encodeABI: jest.fn(() => ({ data: "unlock_data" })),
29
- estimateGas: jest.fn(async () => 3),
30
- },
31
- })),
32
- withdraw: jest.fn(() => ({
33
- txo: {
34
- encodeABI: jest.fn(() => ({ data: "withdraw_data" })),
35
- estimateGas: jest.fn(async () => 3),
36
- },
37
- })),
38
- vote: jest.fn(() => ({
39
- txo: {
40
- encodeABI: jest.fn(() => ({ data: "vote_data" })),
41
- estimateGas: jest.fn(async () => 3),
42
- },
43
- })),
44
- })),
45
- getElection: jest.fn(async () => ({
46
- vote: voteMock,
47
- revoke: revokeMock,
48
- activate: jest.fn(() => ({
49
- find: jest.fn(() => ({
50
- txo: {
51
- encodeABI: jest.fn(() => ({ data: "vote_data" })),
52
- estimateGas: jest.fn(async () => 3),
53
- },
54
- })),
55
- })),
56
- address: "vote_address",
57
- })),
58
- getAccounts: jest.fn(async () => ({
59
- voteSignerToAccount: voteSignerToAccountMock,
60
- createAccount: jest.fn(() => ({
61
- txo: {
62
- encodeABI: jest.fn(() => ({ data: "register_data" })),
63
- estimateGas: jest.fn(async () => 3),
64
- },
65
- })),
66
- address: "register_address",
67
- })),
68
- getStableToken: jest.fn(async () => ({
69
- address: "stable_token_address",
70
- transfer: jest.fn(() => ({
71
- txo: {
72
- encodeABI: jest.fn(() => ({ data: "send_token_data" })),
73
- },
74
- })),
75
- })),
76
- getErc20: jest.fn(async () => ({
77
- address: "erc20_token_address",
78
- transfer: jest.fn(() => ({
79
- txo: {
80
- encodeABI: jest.fn(() => ({ data: "send_token_data" })),
81
- },
82
- })),
83
- })),
84
- },
85
- connection: {
86
- chainId: chainIdMock,
87
- nonce: nonceMock,
88
- estimateGasWithInflationFactor: jest.fn().mockReturnValue(3),
89
- web3: { eth: { getBlock: jest.fn().mockResolvedValue({ baseFeePerGas: 10 }) } },
90
- getMaxPriorityFeePerGas: jest.fn().mockResolvedValue(1),
91
- },
92
- })),
93
- };
94
- });
95
- describe("buildTransaction", () => {
96
- it("should build a lock transaction", async () => {
97
- const transaction = await buildTransaction({ ...accountFixture, spendableBalance: BigNumber(123) }, {
98
- ...transactionFixture,
99
- mode: "lock",
100
- });
101
- expect(transaction).toMatchObject({
102
- from: accountFixture.freshAddress,
103
- to: "address",
104
- value: "10",
105
- data: { data: "lock_data" },
106
- gas: "12",
107
- });
108
- expect(chainIdMock).toHaveBeenCalledTimes(1);
109
- expect(nonceMock).toHaveBeenCalledWith(accountFixture.freshAddress);
110
- });
111
- it("should build a lock transaction with useAllAmount", async () => {
112
- const transaction = await buildTransaction({ ...accountFixture, spendableBalance: BigNumber(123) }, {
113
- ...transactionFixture,
114
- mode: "lock",
115
- useAllAmount: true,
116
- fees: BigNumber(2),
117
- });
118
- expect(transaction).toMatchObject({
119
- from: accountFixture.freshAddress,
120
- to: "address",
121
- value: "121",
122
- data: { data: "lock_data" },
123
- gas: "12",
124
- });
125
- });
126
- it("should build an unlock transaction", async () => {
127
- const transaction = await buildTransaction({
128
- ...accountFixture,
129
- spendableBalance: BigNumber(123),
130
- celoResources: {
131
- registrationStatus: false,
132
- lockedBalance: BigNumber(0),
133
- nonvotingLockedBalance: BigNumber(40),
134
- pendingWithdrawals: null,
135
- votes: null,
136
- electionAddress: null,
137
- lockedGoldAddress: null,
138
- maxNumGroupsVotedFor: BigNumber(0),
139
- },
140
- }, {
141
- ...transactionFixture,
142
- mode: "unlock",
143
- });
144
- expect(transaction).toMatchObject({
145
- from: accountFixture.freshAddress,
146
- to: "address",
147
- data: { data: "unlock_data" },
148
- gas: "12",
149
- });
150
- });
151
- it("should build an unlock transaction with useAllAmount", async () => {
152
- const transaction = await buildTransaction({
153
- ...accountFixture,
154
- spendableBalance: BigNumber(123),
155
- celoResources: {
156
- registrationStatus: false,
157
- lockedBalance: BigNumber(0),
158
- nonvotingLockedBalance: BigNumber(40),
159
- pendingWithdrawals: null,
160
- votes: null,
161
- electionAddress: null,
162
- lockedGoldAddress: null,
163
- maxNumGroupsVotedFor: BigNumber(0),
164
- },
165
- }, {
166
- ...transactionFixture,
167
- useAllAmount: true,
168
- mode: "unlock",
169
- });
170
- expect(transaction).toMatchObject({
171
- from: accountFixture.freshAddress,
172
- to: "address",
173
- data: { data: "unlock_data" },
174
- gas: "12",
175
- });
176
- });
177
- it("should build a withdraw transaction", async () => {
178
- const transaction = await buildTransaction({
179
- ...accountFixture,
180
- spendableBalance: BigNumber(123),
181
- celoResources: {
182
- registrationStatus: false,
183
- lockedBalance: BigNumber(0),
184
- nonvotingLockedBalance: BigNumber(40),
185
- pendingWithdrawals: null,
186
- votes: null,
187
- electionAddress: null,
188
- lockedGoldAddress: null,
189
- maxNumGroupsVotedFor: BigNumber(0),
190
- },
191
- }, {
192
- ...transactionFixture,
193
- mode: "withdraw",
194
- });
195
- expect(transaction).toMatchObject({
196
- from: accountFixture.freshAddress,
197
- to: "address",
198
- data: { data: "withdraw_data" },
199
- gas: "12",
200
- });
201
- });
202
- it("should build a vote transaction", async () => {
203
- const transaction = await buildTransaction({
204
- ...accountFixture,
205
- spendableBalance: BigNumber(123),
206
- celoResources: {
207
- registrationStatus: false,
208
- lockedBalance: BigNumber(0),
209
- nonvotingLockedBalance: BigNumber(40),
210
- pendingWithdrawals: null,
211
- votes: null,
212
- electionAddress: null,
213
- lockedGoldAddress: null,
214
- maxNumGroupsVotedFor: BigNumber(0),
215
- },
216
- }, {
217
- ...transactionFixture,
218
- mode: "vote",
219
- });
220
- expect(transaction).toMatchObject({
221
- from: accountFixture.freshAddress,
222
- to: "vote_address",
223
- data: { data: "vote_data" },
224
- gas: "12",
225
- });
226
- expect(voteMock).toHaveBeenCalledTimes(1);
227
- expect(voteMock).toHaveBeenCalledWith(transactionFixture.recipient, new BigNumber(10));
228
- });
229
- it("should build a revoke transaction but fail without revokes", async () => {
230
- revokeMock.mockClear();
231
- revokeMock.mockReturnValue({
232
- find: jest.fn(() => false),
233
- });
234
- expect(async () => await buildTransaction({
235
- ...accountFixture,
236
- spendableBalance: BigNumber(123),
237
- celoResources: {
238
- registrationStatus: false,
239
- lockedBalance: BigNumber(0),
240
- nonvotingLockedBalance: BigNumber(40),
241
- pendingWithdrawals: null,
242
- votes: null,
243
- electionAddress: null,
244
- lockedGoldAddress: null,
245
- maxNumGroupsVotedFor: BigNumber(0),
246
- },
247
- }, {
248
- ...transactionFixture,
249
- mode: "revoke",
250
- })).rejects.toThrow("No votes to revoke");
251
- });
252
- it("should build a revoke transaction", async () => {
253
- revokeMock.mockClear();
254
- voteSignerToAccountMock.mockReturnValue("signer_account");
255
- revokeMock.mockReturnValue({
256
- find: jest.fn(() => ({
257
- txo: {
258
- encodeABI: jest.fn(() => ({ data: "revoke_data" })),
259
- estimateGas: jest.fn(async () => 2),
260
- },
261
- })),
262
- });
263
- const transaction = await buildTransaction({
264
- ...accountFixture,
265
- spendableBalance: BigNumber(123),
266
- celoResources: {
267
- registrationStatus: false,
268
- lockedBalance: BigNumber(0),
269
- nonvotingLockedBalance: BigNumber(40),
270
- pendingWithdrawals: null,
271
- votes: null,
272
- electionAddress: null,
273
- lockedGoldAddress: null,
274
- maxNumGroupsVotedFor: BigNumber(0),
275
- },
276
- }, {
277
- ...transactionFixture,
278
- mode: "revoke",
279
- });
280
- expect(transaction).toMatchObject({
281
- from: accountFixture.freshAddress,
282
- to: "vote_address",
283
- data: { data: "revoke_data" },
284
- gas: "12",
285
- });
286
- expect(revokeMock).toHaveBeenCalledTimes(1);
287
- expect(revokeMock).toHaveBeenCalledWith("signer_account", transactionFixture.recipient, new BigNumber(10));
288
- expect(voteSignerToAccountMock).toHaveBeenCalledWith(accountFixture.freshAddress);
289
- });
290
- it("should build a revoke transaction with useAllAmount", async () => {
291
- revokeMock.mockClear();
292
- voteSignerToAccountMock.mockReturnValue("signer_account");
293
- revokeMock.mockReturnValue({
294
- find: jest.fn(() => ({
295
- txo: {
296
- encodeABI: jest.fn(() => ({ data: "revoke_data" })),
297
- estimateGas: jest.fn(async () => 2),
298
- },
299
- })),
300
- });
301
- const transaction = await buildTransaction({
302
- ...accountFixture,
303
- spendableBalance: BigNumber(123),
304
- celoResources: {
305
- registrationStatus: false,
306
- lockedBalance: BigNumber(0),
307
- nonvotingLockedBalance: BigNumber(40),
308
- pendingWithdrawals: null,
309
- votes: null,
310
- electionAddress: null,
311
- lockedGoldAddress: null,
312
- maxNumGroupsVotedFor: BigNumber(0),
313
- },
314
- }, {
315
- ...transactionFixture,
316
- useAllAmount: true,
317
- mode: "revoke",
318
- });
319
- expect(transaction).toMatchObject({
320
- from: accountFixture.freshAddress,
321
- to: "vote_address",
322
- data: { data: "revoke_data" },
323
- gas: "12",
324
- });
325
- expect(revokeMock).toHaveBeenCalledTimes(1);
326
- expect(revokeMock).toHaveBeenCalledWith("signer_account", transactionFixture.recipient, new BigNumber(10));
327
- expect(voteSignerToAccountMock).toHaveBeenCalledWith(accountFixture.freshAddress);
328
- });
329
- it("should build an activate transaction", async () => {
330
- const transaction = await buildTransaction({ ...accountFixture, spendableBalance: BigNumber(123) }, {
331
- ...transactionFixture,
332
- mode: "activate",
333
- });
334
- expect(transaction).toMatchObject({
335
- from: accountFixture.freshAddress,
336
- to: "vote_address",
337
- data: { data: "vote_data" },
338
- gas: "12",
339
- });
340
- });
341
- it("should build a register transaction", async () => {
342
- const transaction = await buildTransaction({ ...accountFixture, spendableBalance: BigNumber(123) }, {
343
- ...transactionFixture,
344
- mode: "register",
345
- });
346
- expect(transaction).toMatchObject({
347
- from: accountFixture.freshAddress,
348
- to: "register_address",
349
- data: { data: "register_data" },
350
- gas: "12",
351
- });
352
- });
353
- it("should build a send transaction", async () => {
354
- const transaction = await buildTransaction({ ...accountFixture, spendableBalance: BigNumber(123) }, {
355
- ...transactionFixture,
356
- mode: "send",
357
- });
358
- expect(transaction).toMatchObject({
359
- from: accountFixture.freshAddress,
360
- to: transactionFixture.recipient,
361
- value: "10",
362
- gas: "12",
363
- });
364
- });
365
- it("should build a token transaction", async () => {
366
- const transaction = await buildTransaction({
367
- ...accountWithTokenAccountFixture,
368
- spendableBalance: BigNumber(123),
369
- }, {
370
- ...transactionFixture,
371
- subAccountId: accountWithTokenAccountFixture.subAccounts[0].id,
372
- mode: "send",
373
- });
374
- expect(transaction).toMatchObject({
375
- from: accountFixture.freshAddress,
376
- to: "recipient",
377
- value: "10",
378
- gas: "12",
379
- });
380
- });
381
- it("should build a stable token transaction", async () => {
382
- const transaction = await buildTransaction({
383
- ...accountWithTokenAccountFixture,
384
- spendableBalance: BigNumber(123),
385
- subAccounts: [
386
- {
387
- ...accountWithTokenAccountFixture.subAccounts[0],
388
- token: {
389
- ...accountWithTokenAccountFixture.subAccounts[0].token,
390
- id: "cEUR",
391
- },
392
- },
393
- ],
394
- }, {
395
- ...transactionFixture,
396
- subAccountId: accountWithTokenAccountFixture.subAccounts[0].id,
397
- mode: "send",
398
- });
399
- expect(transaction).toMatchObject({
400
- from: accountFixture.freshAddress,
401
- to: "recipient",
402
- value: "10",
403
- gas: "12",
404
- });
405
- });
406
- });
407
- //# sourceMappingURL=buildTransaction.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"buildTransaction.test.js","sourceRoot":"","sources":["../../../src/__tests__/bridge/buildTransaction.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=createTransaction.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createTransaction.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/bridge/createTransaction.test.ts"],"names":[],"mappings":""}
@@ -1,17 +0,0 @@
1
- import BigNumber from "bignumber.js";
2
- import createTransaction from "../../bridge/createTransaction";
3
- import { accountFixture } from "../../bridge/fixtures";
4
- describe("createTransaction", () => {
5
- it("returns a dummy transaction", () => {
6
- expect(createTransaction(accountFixture)).toMatchObject({
7
- family: "celo",
8
- amount: new BigNumber(0),
9
- recipient: "",
10
- useAllAmount: false,
11
- fees: null,
12
- mode: "send",
13
- index: null,
14
- });
15
- });
16
- });
17
- //# sourceMappingURL=createTransaction.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createTransaction.test.js","sourceRoot":"","sources":["../../../src/__tests__/bridge/createTransaction.test.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,iBAAiB,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC;YACtD,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC;YACxB,SAAS,EAAE,EAAE;YACb,YAAY,EAAE,KAAK;YACnB,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=deviceTransactionConfig.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deviceTransactionConfig.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/bridge/deviceTransactionConfig.test.ts"],"names":[],"mappings":""}
@@ -1,16 +0,0 @@
1
- import getDeviceTransactionConfig from "../../bridge/deviceTransactionConfig";
2
- describe("deviceTransactionConfig", () => {
3
- it("returns the expected config", () => {
4
- expect(getDeviceTransactionConfig()).toEqual([
5
- {
6
- type: "amount",
7
- label: "Amount",
8
- },
9
- {
10
- type: "fees",
11
- label: "Fees",
12
- },
13
- ]);
14
- });
15
- });
16
- //# sourceMappingURL=deviceTransactionConfig.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deviceTransactionConfig.test.js","sourceRoot":"","sources":["../../../src/__tests__/bridge/deviceTransactionConfig.test.ts"],"names":[],"mappings":"AAAA,OAAO,0BAA0B,MAAM,sCAAsC,CAAC;AAE9E,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,CAAC,0BAA0B,EAAE,CAAC,CAAC,OAAO,CAAC;YAC3C;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;aAChB;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,MAAM;aACd;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=estimateMaxSpendable.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"estimateMaxSpendable.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/bridge/estimateMaxSpendable.test.ts"],"names":[],"mappings":""}
@@ -1,103 +0,0 @@
1
- import BigNumber from "bignumber.js";
2
- import estimateMaxSpendable from "../../bridge/estimateMaxSpendable";
3
- import { accountFixture, accountWithTokenAccountFixture, tokenTransactionFixture, transactionFixture, } from "../../bridge/fixtures";
4
- jest.mock("../../bridge/getFeesForTransaction", async () => 12);
5
- const voteMock = jest.fn(() => ({
6
- txo: {
7
- encodeABI: jest.fn(() => ({ data: "vote_data" })),
8
- estimateGas: jest.fn(async () => 1),
9
- },
10
- }));
11
- jest.mock("../../network/sdk", () => {
12
- return {
13
- celoKit: jest.fn(() => ({
14
- contracts: {
15
- getLockedGold: jest.fn(async () => ({
16
- address: "address",
17
- getAccountNonvotingLockedGold: jest.fn(async () => BigNumber(22)),
18
- lock: jest.fn(() => ({
19
- txo: {
20
- encodeABI: jest.fn(() => ({ data: "lock_data" })),
21
- estimateGas: jest.fn(async () => 2),
22
- },
23
- })),
24
- unlock: jest.fn(() => ({
25
- txo: {
26
- encodeABI: jest.fn(() => ({ data: "unlock_data" })),
27
- estimateGas: jest.fn(async () => 3),
28
- },
29
- })),
30
- withdraw: jest.fn(() => ({
31
- txo: {
32
- encodeABI: jest.fn(() => ({ data: "withdraw_data" })),
33
- estimateGas: jest.fn(async () => 3),
34
- },
35
- })),
36
- vote: jest.fn(() => ({
37
- txo: {
38
- encodeABI: jest.fn(() => ({ data: "vote_data" })),
39
- estimateGas: jest.fn(async () => 3),
40
- },
41
- })),
42
- })),
43
- getElection: jest.fn(async () => ({
44
- vote: voteMock,
45
- revoke: jest.fn(),
46
- address: "vote_address",
47
- })),
48
- getAccounts: jest.fn(async () => ({
49
- voteSignerToAccount: jest.fn(),
50
- createAccount: jest.fn(() => ({
51
- txo: {
52
- encodeABI: jest.fn(() => ({ data: "register_data" })),
53
- estimateGas: jest.fn(async () => 3),
54
- },
55
- })),
56
- address: "register_address",
57
- })),
58
- getStableToken: jest.fn(async () => ({
59
- address: "stable_token_address",
60
- transfer: jest.fn(() => ({
61
- txo: {
62
- encodeABI: jest.fn(() => ({ data: "send_token_data" })),
63
- },
64
- })),
65
- })),
66
- getErc20: jest.fn(async () => ({
67
- address: "erc20_token_address",
68
- transfer: jest.fn(() => ({
69
- txo: {
70
- encodeABI: jest.fn(() => ({ data: "send_token_data" })),
71
- },
72
- })),
73
- })),
74
- },
75
- connection: {
76
- chainId: jest.fn(),
77
- nonce: jest.fn(),
78
- estimateGasWithInflationFactor: jest.fn().mockReturnValue(3),
79
- },
80
- })),
81
- };
82
- });
83
- describe("estimateMaxSpendable", () => {
84
- it("returns the maximum spendable for a celo account", async () => {
85
- const maximumAmount = await estimateMaxSpendable({
86
- account: { ...accountFixture, balance: BigNumber(100), spendableBalance: BigNumber(100) },
87
- transaction: transactionFixture,
88
- });
89
- expect(maximumAmount).toEqual(BigNumber(100));
90
- });
91
- it("returns the maximum spendable for a celo account", async () => {
92
- const maximumAmount = await estimateMaxSpendable({
93
- account: {
94
- ...accountWithTokenAccountFixture,
95
- balance: BigNumber(100),
96
- spendableBalance: BigNumber(100),
97
- },
98
- transaction: tokenTransactionFixture,
99
- });
100
- expect(maximumAmount).toEqual(BigNumber(212));
101
- });
102
- });
103
- //# sourceMappingURL=estimateMaxSpendable.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"estimateMaxSpendable.test.js","sourceRoot":"","sources":["../../../src/__tests__/bridge/estimateMaxSpendable.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=getFeesForTransaction.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getFeesForTransaction.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/bridge/getFeesForTransaction.test.ts"],"names":[],"mappings":""}