@ledgerhq/coin-celo 1.6.0-nightly.6 → 1.6.0-nightly.7

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 (75) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +13 -0
  3. package/package.json +8 -8
  4. package/lib/__tests__/bridge/buildOptimisticOperation.test.d.ts +0 -2
  5. package/lib/__tests__/bridge/buildOptimisticOperation.test.d.ts.map +0 -1
  6. package/lib/__tests__/bridge/buildOptimisticOperation.test.js +0 -23
  7. package/lib/__tests__/bridge/buildOptimisticOperation.test.js.map +0 -1
  8. package/lib/__tests__/bridge/buildTransaction.test.d.ts +0 -2
  9. package/lib/__tests__/bridge/buildTransaction.test.d.ts.map +0 -1
  10. package/lib/__tests__/bridge/buildTransaction.test.js +0 -412
  11. package/lib/__tests__/bridge/buildTransaction.test.js.map +0 -1
  12. package/lib/__tests__/bridge/createTransaction.test.d.ts +0 -2
  13. package/lib/__tests__/bridge/createTransaction.test.d.ts.map +0 -1
  14. package/lib/__tests__/bridge/createTransaction.test.js +0 -22
  15. package/lib/__tests__/bridge/createTransaction.test.js.map +0 -1
  16. package/lib/__tests__/bridge/deviceTransactionConfig.test.d.ts +0 -2
  17. package/lib/__tests__/bridge/deviceTransactionConfig.test.d.ts.map +0 -1
  18. package/lib/__tests__/bridge/deviceTransactionConfig.test.js +0 -21
  19. package/lib/__tests__/bridge/deviceTransactionConfig.test.js.map +0 -1
  20. package/lib/__tests__/bridge/estimateMaxSpendable.test.d.ts +0 -2
  21. package/lib/__tests__/bridge/estimateMaxSpendable.test.d.ts.map +0 -1
  22. package/lib/__tests__/bridge/estimateMaxSpendable.test.js +0 -108
  23. package/lib/__tests__/bridge/estimateMaxSpendable.test.js.map +0 -1
  24. package/lib/__tests__/bridge/getFeesForTransaction.test.d.ts +0 -2
  25. package/lib/__tests__/bridge/getFeesForTransaction.test.d.ts.map +0 -1
  26. package/lib/__tests__/bridge/getFeesForTransaction.test.js +0 -212
  27. package/lib/__tests__/bridge/getFeesForTransaction.test.js.map +0 -1
  28. package/lib/__tests__/bridge/getTransactionStatus.test.d.ts +0 -2
  29. package/lib/__tests__/bridge/getTransactionStatus.test.d.ts.map +0 -1
  30. package/lib/__tests__/bridge/getTransactionStatus.test.js +0 -214
  31. package/lib/__tests__/bridge/getTransactionStatus.test.js.map +0 -1
  32. package/lib/__tests__/bridge/logic.test.d.ts +0 -2
  33. package/lib/__tests__/bridge/logic.test.d.ts.map +0 -1
  34. package/lib/__tests__/bridge/logic.test.js +0 -490
  35. package/lib/__tests__/bridge/logic.test.js.map +0 -1
  36. package/lib/__tests__/bridge/prepareTransaction.test.d.ts +0 -2
  37. package/lib/__tests__/bridge/prepareTransaction.test.d.ts.map +0 -1
  38. package/lib/__tests__/bridge/prepareTransaction.test.js +0 -233
  39. package/lib/__tests__/bridge/prepareTransaction.test.js.map +0 -1
  40. package/lib-es/__tests__/bridge/buildOptimisticOperation.test.d.ts +0 -2
  41. package/lib-es/__tests__/bridge/buildOptimisticOperation.test.d.ts.map +0 -1
  42. package/lib-es/__tests__/bridge/buildOptimisticOperation.test.js +0 -18
  43. package/lib-es/__tests__/bridge/buildOptimisticOperation.test.js.map +0 -1
  44. package/lib-es/__tests__/bridge/buildTransaction.test.d.ts +0 -2
  45. package/lib-es/__tests__/bridge/buildTransaction.test.d.ts.map +0 -1
  46. package/lib-es/__tests__/bridge/buildTransaction.test.js +0 -407
  47. package/lib-es/__tests__/bridge/buildTransaction.test.js.map +0 -1
  48. package/lib-es/__tests__/bridge/createTransaction.test.d.ts +0 -2
  49. package/lib-es/__tests__/bridge/createTransaction.test.d.ts.map +0 -1
  50. package/lib-es/__tests__/bridge/createTransaction.test.js +0 -17
  51. package/lib-es/__tests__/bridge/createTransaction.test.js.map +0 -1
  52. package/lib-es/__tests__/bridge/deviceTransactionConfig.test.d.ts +0 -2
  53. package/lib-es/__tests__/bridge/deviceTransactionConfig.test.d.ts.map +0 -1
  54. package/lib-es/__tests__/bridge/deviceTransactionConfig.test.js +0 -16
  55. package/lib-es/__tests__/bridge/deviceTransactionConfig.test.js.map +0 -1
  56. package/lib-es/__tests__/bridge/estimateMaxSpendable.test.d.ts +0 -2
  57. package/lib-es/__tests__/bridge/estimateMaxSpendable.test.d.ts.map +0 -1
  58. package/lib-es/__tests__/bridge/estimateMaxSpendable.test.js +0 -103
  59. package/lib-es/__tests__/bridge/estimateMaxSpendable.test.js.map +0 -1
  60. package/lib-es/__tests__/bridge/getFeesForTransaction.test.d.ts +0 -2
  61. package/lib-es/__tests__/bridge/getFeesForTransaction.test.d.ts.map +0 -1
  62. package/lib-es/__tests__/bridge/getFeesForTransaction.test.js +0 -207
  63. package/lib-es/__tests__/bridge/getFeesForTransaction.test.js.map +0 -1
  64. package/lib-es/__tests__/bridge/getTransactionStatus.test.d.ts +0 -2
  65. package/lib-es/__tests__/bridge/getTransactionStatus.test.d.ts.map +0 -1
  66. package/lib-es/__tests__/bridge/getTransactionStatus.test.js +0 -209
  67. package/lib-es/__tests__/bridge/getTransactionStatus.test.js.map +0 -1
  68. package/lib-es/__tests__/bridge/logic.test.d.ts +0 -2
  69. package/lib-es/__tests__/bridge/logic.test.d.ts.map +0 -1
  70. package/lib-es/__tests__/bridge/logic.test.js +0 -485
  71. package/lib-es/__tests__/bridge/logic.test.js.map +0 -1
  72. package/lib-es/__tests__/bridge/prepareTransaction.test.d.ts +0 -2
  73. package/lib-es/__tests__/bridge/prepareTransaction.test.d.ts.map +0 -1
  74. package/lib-es/__tests__/bridge/prepareTransaction.test.js +0 -228
  75. package/lib-es/__tests__/bridge/prepareTransaction.test.js.map +0 -1
@@ -1,228 +0,0 @@
1
- import BigNumber from "bignumber.js";
2
- import { accountFixture, accountWithTokenAccountFixture, tokenTransactionFixture, transactionFixture, } from "../../bridge/fixtures";
3
- import prepareTransaction from "../../bridge/prepareTransaction";
4
- const chainIdMock = jest.fn();
5
- const nonceMock = jest.fn();
6
- jest.mock("../../network/sdk", () => {
7
- return {
8
- celoKit: jest.fn(() => ({
9
- contracts: {
10
- getLockedGold: jest.fn(async () => ({
11
- address: "address",
12
- lock: jest.fn(() => ({
13
- txo: {
14
- encodeABI: jest.fn(() => "0x6C6F636B5F64617461"), // lock_data
15
- estimateGas: jest.fn(async () => 2),
16
- },
17
- })),
18
- unlock: jest.fn(() => ({
19
- txo: {
20
- encodeABI: jest.fn(() => "0x756E6C6F636B5F64617461"), // unlock_data
21
- estimateGas: jest.fn(async () => 3),
22
- },
23
- })),
24
- withdraw: jest.fn(() => ({
25
- txo: {
26
- encodeABI: jest.fn(() => "0x77697468647261775F64617461"), // withdraw_data
27
- estimateGas: jest.fn(async () => 3),
28
- },
29
- })),
30
- vote: jest.fn(() => ({
31
- txo: {
32
- encodeABI: jest.fn(() => "0x766F74655F64617461"), // vote_data
33
- estimateGas: jest.fn(async () => 3),
34
- },
35
- })),
36
- getAccountNonvotingLockedGold: jest.fn(() => BigNumber(0)),
37
- })),
38
- getGoldToken: jest.fn(async () => ({
39
- address: "gold_token_address",
40
- transfer: jest.fn(() => ({
41
- txo: {
42
- encodeABI: jest.fn(() => "0x73656E645F64617461"), // send_data
43
- },
44
- })),
45
- })),
46
- getStableToken: jest.fn(async () => ({
47
- address: "stable_token_address",
48
- transfer: jest.fn(() => ({
49
- txo: {
50
- encodeABI: jest.fn(() => "0x73656E645F746F6B656E5F64617461"), // stable_token_data
51
- },
52
- })),
53
- })),
54
- getErc20: jest.fn(async () => ({
55
- address: "erc20_token_address",
56
- transfer: jest.fn(() => ({
57
- txo: {
58
- encodeABI: jest.fn(() => "0x73656E645F65726332305F746F6B656E5F64617461"), // send_erc20_token_data
59
- },
60
- })),
61
- })),
62
- },
63
- connection: {
64
- chainId: chainIdMock,
65
- nonce: nonceMock,
66
- estimateGasWithInflationFactor: jest.fn().mockReturnValue(3),
67
- gasPrice: jest.fn(async () => BigNumber(2)),
68
- web3: { eth: { getBlock: jest.fn().mockResolvedValue({ baseFeePerGas: 10 }) } },
69
- getMaxPriorityFeePerGas: jest.fn().mockReturnValue(1),
70
- },
71
- })),
72
- };
73
- });
74
- describe("prepareTransaction", () => {
75
- it("should return the transaction if the address is invalid", async () => {
76
- const transaction = await prepareTransaction(accountFixture, transactionFixture);
77
- expect(transaction).toMatchObject({
78
- amount: BigNumber(10),
79
- recipient: "recipient",
80
- useAllAmount: false,
81
- family: "celo",
82
- mode: "send",
83
- index: 0,
84
- fees: null,
85
- });
86
- });
87
- it("should return the transaction if it doesn't have a recipient", async () => {
88
- const transaction = await prepareTransaction(accountFixture, {
89
- ...transactionFixture,
90
- recipient: "",
91
- });
92
- expect(transaction).toMatchObject({
93
- amount: BigNumber(10),
94
- recipient: "",
95
- useAllAmount: false,
96
- family: "celo",
97
- mode: "send",
98
- index: 0,
99
- fees: null,
100
- });
101
- });
102
- it("should return the vote transaction if it doesn't have a recipient", async () => {
103
- const transaction = await prepareTransaction(accountFixture, {
104
- ...transactionFixture,
105
- recipient: "",
106
- mode: "vote",
107
- });
108
- expect(transaction).toMatchObject({
109
- amount: BigNumber(10),
110
- recipient: "",
111
- useAllAmount: false,
112
- family: "celo",
113
- mode: "vote",
114
- index: 0,
115
- fees: null,
116
- });
117
- });
118
- it("should return the vote transaction if the amount is less than or equal to zero", async () => {
119
- const transaction = await prepareTransaction(accountFixture, {
120
- ...transactionFixture,
121
- recipient: "0x79D5A290D7ba4b99322d91b577589e8d0BF87072",
122
- mode: "vote",
123
- amount: BigNumber(0),
124
- });
125
- expect(transaction).toMatchObject({
126
- amount: BigNumber(0),
127
- recipient: "0x79D5A290D7ba4b99322d91b577589e8d0BF87072",
128
- useAllAmount: false,
129
- family: "celo",
130
- mode: "vote",
131
- index: 0,
132
- fees: null,
133
- });
134
- });
135
- it("should return the prepared transaction", async () => {
136
- const transaction = await prepareTransaction({ ...accountFixture, balance: BigNumber(222222), spendableBalance: BigNumber(222222) }, {
137
- ...transactionFixture,
138
- recipient: "0x79D5A290D7ba4b99322d91b577589e8d0BF87072",
139
- amount: BigNumber(22),
140
- });
141
- expect(transaction).toMatchObject({
142
- amount: BigNumber(22),
143
- recipient: "0x79D5A290D7ba4b99322d91b577589e8d0BF87072",
144
- useAllAmount: false,
145
- family: "celo",
146
- mode: "send",
147
- index: 0,
148
- fees: BigNumber(24),
149
- });
150
- });
151
- it("should return the prepared stable token transaction", async () => {
152
- const transaction = await prepareTransaction({
153
- ...accountWithTokenAccountFixture,
154
- balance: BigNumber(222222),
155
- spendableBalance: BigNumber(222222),
156
- subAccounts: [
157
- {
158
- ...accountWithTokenAccountFixture.subAccounts[0],
159
- token: {
160
- ...accountWithTokenAccountFixture.subAccounts[0].token,
161
- id: "cEUR",
162
- },
163
- },
164
- ],
165
- }, {
166
- ...tokenTransactionFixture,
167
- recipient: "0x79D5A290D7ba4b99322d91b577589e8d0BF87072",
168
- amount: BigNumber(22),
169
- });
170
- expect(transaction).toMatchObject({
171
- amount: BigNumber(22),
172
- recipient: "0x79D5A290D7ba4b99322d91b577589e8d0BF87072",
173
- useAllAmount: false,
174
- family: "celo",
175
- mode: "send",
176
- index: 0,
177
- fees: BigNumber(24),
178
- subAccountId: "subAccountId",
179
- data: Buffer.from("0x73656E645F746F6B656E5F64617461"),
180
- });
181
- });
182
- it("should return the prepared token transaction", async () => {
183
- const transaction = await prepareTransaction({
184
- ...accountWithTokenAccountFixture,
185
- balance: BigNumber(222222),
186
- spendableBalance: BigNumber(222222),
187
- }, {
188
- ...tokenTransactionFixture,
189
- recipient: "0x79D5A290D7ba4b99322d91b577589e8d0BF87072",
190
- amount: BigNumber(22),
191
- });
192
- expect(transaction).toMatchObject({
193
- amount: BigNumber(22),
194
- recipient: "0x79D5A290D7ba4b99322d91b577589e8d0BF87072",
195
- useAllAmount: false,
196
- family: "celo",
197
- mode: "send",
198
- index: 0,
199
- fees: BigNumber(24),
200
- subAccountId: "subAccountId",
201
- data: Buffer.from("0x73656E645F65726332305F746F6B656E5F64617461"),
202
- });
203
- });
204
- it("should return the prepared token transaction with useAllAmount", async () => {
205
- const transaction = await prepareTransaction({
206
- ...accountWithTokenAccountFixture,
207
- balance: BigNumber(222222),
208
- spendableBalance: BigNumber(222222),
209
- }, {
210
- ...tokenTransactionFixture,
211
- recipient: "0x79D5A290D7ba4b99322d91b577589e8d0BF87072",
212
- amount: BigNumber(22),
213
- useAllAmount: true,
214
- });
215
- expect(transaction).toMatchObject({
216
- amount: BigNumber(212),
217
- recipient: "0x79D5A290D7ba4b99322d91b577589e8d0BF87072",
218
- useAllAmount: true,
219
- family: "celo",
220
- mode: "send",
221
- index: 0,
222
- fees: BigNumber(24),
223
- subAccountId: "subAccountId",
224
- data: Buffer.from("0x73656E645F65726332305F746F6B656E5F64617461"),
225
- });
226
- });
227
- });
228
- //# sourceMappingURL=prepareTransaction.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prepareTransaction.test.js","sourceRoot":"","sources":["../../../src/__tests__/bridge/prepareTransaction.test.ts"],"names":[],"mappings":"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"}