@ledgerhq/coin-celo 1.6.0-nightly.9 → 1.6.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 (75) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +30 -94
  3. package/lib/__tests__/bridge/buildOptimisticOperation.test.d.ts +2 -0
  4. package/lib/__tests__/bridge/buildOptimisticOperation.test.d.ts.map +1 -0
  5. package/lib/__tests__/bridge/buildOptimisticOperation.test.js +23 -0
  6. package/lib/__tests__/bridge/buildOptimisticOperation.test.js.map +1 -0
  7. package/lib/__tests__/bridge/buildTransaction.test.d.ts +2 -0
  8. package/lib/__tests__/bridge/buildTransaction.test.d.ts.map +1 -0
  9. package/lib/__tests__/bridge/buildTransaction.test.js +412 -0
  10. package/lib/__tests__/bridge/buildTransaction.test.js.map +1 -0
  11. package/lib/__tests__/bridge/createTransaction.test.d.ts +2 -0
  12. package/lib/__tests__/bridge/createTransaction.test.d.ts.map +1 -0
  13. package/lib/__tests__/bridge/createTransaction.test.js +22 -0
  14. package/lib/__tests__/bridge/createTransaction.test.js.map +1 -0
  15. package/lib/__tests__/bridge/deviceTransactionConfig.test.d.ts +2 -0
  16. package/lib/__tests__/bridge/deviceTransactionConfig.test.d.ts.map +1 -0
  17. package/lib/__tests__/bridge/deviceTransactionConfig.test.js +21 -0
  18. package/lib/__tests__/bridge/deviceTransactionConfig.test.js.map +1 -0
  19. package/lib/__tests__/bridge/estimateMaxSpendable.test.d.ts +2 -0
  20. package/lib/__tests__/bridge/estimateMaxSpendable.test.d.ts.map +1 -0
  21. package/lib/__tests__/bridge/estimateMaxSpendable.test.js +108 -0
  22. package/lib/__tests__/bridge/estimateMaxSpendable.test.js.map +1 -0
  23. package/lib/__tests__/bridge/getFeesForTransaction.test.d.ts +2 -0
  24. package/lib/__tests__/bridge/getFeesForTransaction.test.d.ts.map +1 -0
  25. package/lib/__tests__/bridge/getFeesForTransaction.test.js +212 -0
  26. package/lib/__tests__/bridge/getFeesForTransaction.test.js.map +1 -0
  27. package/lib/__tests__/bridge/getTransactionStatus.test.d.ts +2 -0
  28. package/lib/__tests__/bridge/getTransactionStatus.test.d.ts.map +1 -0
  29. package/lib/__tests__/bridge/getTransactionStatus.test.js +214 -0
  30. package/lib/__tests__/bridge/getTransactionStatus.test.js.map +1 -0
  31. package/lib/__tests__/bridge/logic.test.d.ts +2 -0
  32. package/lib/__tests__/bridge/logic.test.d.ts.map +1 -0
  33. package/lib/__tests__/bridge/logic.test.js +490 -0
  34. package/lib/__tests__/bridge/logic.test.js.map +1 -0
  35. package/lib/__tests__/bridge/prepareTransaction.test.d.ts +2 -0
  36. package/lib/__tests__/bridge/prepareTransaction.test.d.ts.map +1 -0
  37. package/lib/__tests__/bridge/prepareTransaction.test.js +233 -0
  38. package/lib/__tests__/bridge/prepareTransaction.test.js.map +1 -0
  39. package/lib-es/__tests__/bridge/buildOptimisticOperation.test.d.ts +2 -0
  40. package/lib-es/__tests__/bridge/buildOptimisticOperation.test.d.ts.map +1 -0
  41. package/lib-es/__tests__/bridge/buildOptimisticOperation.test.js +18 -0
  42. package/lib-es/__tests__/bridge/buildOptimisticOperation.test.js.map +1 -0
  43. package/lib-es/__tests__/bridge/buildTransaction.test.d.ts +2 -0
  44. package/lib-es/__tests__/bridge/buildTransaction.test.d.ts.map +1 -0
  45. package/lib-es/__tests__/bridge/buildTransaction.test.js +407 -0
  46. package/lib-es/__tests__/bridge/buildTransaction.test.js.map +1 -0
  47. package/lib-es/__tests__/bridge/createTransaction.test.d.ts +2 -0
  48. package/lib-es/__tests__/bridge/createTransaction.test.d.ts.map +1 -0
  49. package/lib-es/__tests__/bridge/createTransaction.test.js +17 -0
  50. package/lib-es/__tests__/bridge/createTransaction.test.js.map +1 -0
  51. package/lib-es/__tests__/bridge/deviceTransactionConfig.test.d.ts +2 -0
  52. package/lib-es/__tests__/bridge/deviceTransactionConfig.test.d.ts.map +1 -0
  53. package/lib-es/__tests__/bridge/deviceTransactionConfig.test.js +16 -0
  54. package/lib-es/__tests__/bridge/deviceTransactionConfig.test.js.map +1 -0
  55. package/lib-es/__tests__/bridge/estimateMaxSpendable.test.d.ts +2 -0
  56. package/lib-es/__tests__/bridge/estimateMaxSpendable.test.d.ts.map +1 -0
  57. package/lib-es/__tests__/bridge/estimateMaxSpendable.test.js +103 -0
  58. package/lib-es/__tests__/bridge/estimateMaxSpendable.test.js.map +1 -0
  59. package/lib-es/__tests__/bridge/getFeesForTransaction.test.d.ts +2 -0
  60. package/lib-es/__tests__/bridge/getFeesForTransaction.test.d.ts.map +1 -0
  61. package/lib-es/__tests__/bridge/getFeesForTransaction.test.js +207 -0
  62. package/lib-es/__tests__/bridge/getFeesForTransaction.test.js.map +1 -0
  63. package/lib-es/__tests__/bridge/getTransactionStatus.test.d.ts +2 -0
  64. package/lib-es/__tests__/bridge/getTransactionStatus.test.d.ts.map +1 -0
  65. package/lib-es/__tests__/bridge/getTransactionStatus.test.js +209 -0
  66. package/lib-es/__tests__/bridge/getTransactionStatus.test.js.map +1 -0
  67. package/lib-es/__tests__/bridge/logic.test.d.ts +2 -0
  68. package/lib-es/__tests__/bridge/logic.test.d.ts.map +1 -0
  69. package/lib-es/__tests__/bridge/logic.test.js +485 -0
  70. package/lib-es/__tests__/bridge/logic.test.js.map +1 -0
  71. package/lib-es/__tests__/bridge/prepareTransaction.test.d.ts +2 -0
  72. package/lib-es/__tests__/bridge/prepareTransaction.test.d.ts.map +1 -0
  73. package/lib-es/__tests__/bridge/prepareTransaction.test.js +228 -0
  74. package/lib-es/__tests__/bridge/prepareTransaction.test.js.map +1 -0
  75. package/package.json +11 -11
@@ -0,0 +1,207 @@
1
+ import BigNumber from "bignumber.js";
2
+ import getFeesForTransaction from "../../bridge/getFeesForTransaction";
3
+ import { accountFixture, 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
+ getAccountNonvotingLockedGold: jest.fn(() => BigNumber(0)),
45
+ })),
46
+ getElection: jest.fn(async () => ({
47
+ vote: voteMock,
48
+ revoke: revokeMock,
49
+ activate: jest.fn(() => ({
50
+ find: jest.fn(() => ({
51
+ txo: {
52
+ encodeABI: jest.fn(() => ({ data: "vote_data" })),
53
+ estimateGas: jest.fn(async () => 3),
54
+ },
55
+ })),
56
+ })),
57
+ address: "vote_address",
58
+ })),
59
+ getAccounts: jest.fn(async () => ({
60
+ voteSignerToAccount: voteSignerToAccountMock,
61
+ createAccount: jest.fn(() => ({
62
+ txo: {
63
+ encodeABI: jest.fn(() => ({ data: "register_data" })),
64
+ estimateGas: jest.fn(async () => 3),
65
+ },
66
+ })),
67
+ address: "register_address",
68
+ })),
69
+ getStableToken: jest.fn(async () => ({
70
+ address: "stable_token_address",
71
+ transfer: jest.fn(() => ({
72
+ txo: {
73
+ encodeABI: jest.fn(() => ({ data: "send_token_data" })),
74
+ },
75
+ })),
76
+ })),
77
+ getErc20: jest.fn(async () => ({
78
+ address: "erc20_token_address",
79
+ transfer: jest.fn(() => ({
80
+ txo: {
81
+ encodeABI: jest.fn(() => ({ data: "send_token_data" })),
82
+ },
83
+ })),
84
+ })),
85
+ },
86
+ connection: {
87
+ chainId: chainIdMock,
88
+ nonce: nonceMock,
89
+ estimateGasWithInflationFactor: jest.fn().mockReturnValue(3),
90
+ gasPrice: jest.fn(async () => BigNumber(2)),
91
+ getMaxPriorityFeePerGas: jest.fn().mockResolvedValue(1),
92
+ },
93
+ })),
94
+ };
95
+ });
96
+ describe("getFeesForTransaction", () => {
97
+ it("should return the correct fees for a send transaction", async () => {
98
+ const fees = await getFeesForTransaction({
99
+ account: { ...accountFixture, balance: BigNumber(123), spendableBalance: BigNumber(123) },
100
+ transaction: transactionFixture,
101
+ });
102
+ expect(fees).toEqual(BigNumber(24));
103
+ });
104
+ it("should return the correct fees for a revoke transaction without revoked transactions", async () => {
105
+ revokeMock.mockClear();
106
+ revokeMock.mockReturnValue({
107
+ find: jest.fn(() => false),
108
+ });
109
+ const fees = await getFeesForTransaction({
110
+ account: { ...accountFixture, balance: BigNumber(123), spendableBalance: BigNumber(123) },
111
+ transaction: { ...transactionFixture, mode: "revoke" },
112
+ });
113
+ expect(fees).toEqual(BigNumber(0));
114
+ });
115
+ it("should return the correct fees for a revoke transaction with revoked transactions", async () => {
116
+ revokeMock.mockClear();
117
+ revokeMock.mockReturnValue({
118
+ find: jest.fn(() => ({
119
+ txo: {
120
+ encodeABI: jest.fn(() => ({ data: "revoke_data" })),
121
+ estimateGas: jest.fn(async () => 2),
122
+ },
123
+ })),
124
+ });
125
+ const fees = await getFeesForTransaction({
126
+ account: { ...accountFixture, balance: BigNumber(123), spendableBalance: BigNumber(123) },
127
+ transaction: { ...transactionFixture, mode: "revoke" },
128
+ });
129
+ expect(fees).toEqual(BigNumber(4));
130
+ });
131
+ it("should return the correct fees for a revoke transaction with revoked transactions and useAllAmount set to true", async () => {
132
+ revokeMock.mockClear();
133
+ revokeMock.mockReturnValue({
134
+ find: jest.fn(() => ({
135
+ txo: {
136
+ encodeABI: jest.fn(() => ({ data: "revoke_data" })),
137
+ estimateGas: jest.fn(async () => 2),
138
+ },
139
+ })),
140
+ });
141
+ const fees = await getFeesForTransaction({
142
+ account: {
143
+ ...accountFixture,
144
+ balance: BigNumber(123),
145
+ spendableBalance: BigNumber(123),
146
+ celoResources: {
147
+ ...accountFixture.celoResources,
148
+ votes: [
149
+ {
150
+ activatable: true,
151
+ amount: BigNumber(10),
152
+ index: 0,
153
+ revokable: true,
154
+ type: "active",
155
+ validatorGroup: transactionFixture.recipient,
156
+ },
157
+ ],
158
+ },
159
+ },
160
+ transaction: { ...transactionFixture, mode: "revoke", useAllAmount: true },
161
+ });
162
+ expect(fees).toEqual(BigNumber(4));
163
+ });
164
+ it("should return the correct fees for a withdraw transaction", async () => {
165
+ const fees = await getFeesForTransaction({
166
+ account: { ...accountFixture, balance: BigNumber(123), spendableBalance: BigNumber(123) },
167
+ transaction: { ...transactionFixture, mode: "withdraw" },
168
+ });
169
+ expect(fees).toEqual(BigNumber(6));
170
+ });
171
+ it("should return the correct fees for a vote transaction", async () => {
172
+ const fees = await getFeesForTransaction({
173
+ account: { ...accountFixture, balance: BigNumber(123), spendableBalance: BigNumber(123) },
174
+ transaction: { ...transactionFixture, mode: "vote" },
175
+ });
176
+ expect(fees).toEqual(BigNumber(2));
177
+ });
178
+ it("should return the correct fees for a lock transaction", async () => {
179
+ const fees = await getFeesForTransaction({
180
+ account: { ...accountFixture, balance: BigNumber(123), spendableBalance: BigNumber(123) },
181
+ transaction: { ...transactionFixture, mode: "lock" },
182
+ });
183
+ expect(fees).toEqual(BigNumber(4));
184
+ });
185
+ it("should return the correct fees for a unlock transaction", async () => {
186
+ const fees = await getFeesForTransaction({
187
+ account: { ...accountFixture, balance: BigNumber(123), spendableBalance: BigNumber(123) },
188
+ transaction: { ...transactionFixture, mode: "unlock" },
189
+ });
190
+ expect(fees).toEqual(BigNumber(6));
191
+ });
192
+ it("should return the correct fees for an activate transaction", async () => {
193
+ const fees = await getFeesForTransaction({
194
+ account: { ...accountFixture, balance: BigNumber(123), spendableBalance: BigNumber(123) },
195
+ transaction: { ...transactionFixture, mode: "activate" },
196
+ });
197
+ expect(fees).toEqual(BigNumber(6));
198
+ });
199
+ it("should return the correct fees for a register transaction", async () => {
200
+ const fees = await getFeesForTransaction({
201
+ account: { ...accountFixture, balance: BigNumber(123), spendableBalance: BigNumber(123) },
202
+ transaction: { ...transactionFixture, mode: "register" },
203
+ });
204
+ expect(fees).toEqual(BigNumber(6));
205
+ });
206
+ });
207
+ //# sourceMappingURL=getFeesForTransaction.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getFeesForTransaction.test.js","sourceRoot":"","sources":["../../../src/__tests__/bridge/getFeesForTransaction.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=getTransactionStatus.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTransactionStatus.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/bridge/getTransactionStatus.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,209 @@
1
+ import { accountFixture, transactionFixture } from "../../bridge/fixtures";
2
+ import getTransactionStatus from "../../bridge/getTransactionStatus";
3
+ import BigNumber from "bignumber.js";
4
+ jest.mock("../../network/sdk", () => {
5
+ return {
6
+ celoKit: jest.fn(() => ({
7
+ contracts: {
8
+ getLockedGold: jest.fn(async () => ({
9
+ address: "address",
10
+ lock: jest.fn(() => ({
11
+ txo: {
12
+ encodeABI: jest.fn(() => ({ data: "lock_data" })),
13
+ estimateGas: jest.fn(async () => 2),
14
+ },
15
+ })),
16
+ unlock: jest.fn(() => ({
17
+ txo: {
18
+ encodeABI: jest.fn(() => ({ data: "unlock_data" })),
19
+ estimateGas: jest.fn(async () => 3),
20
+ },
21
+ })),
22
+ withdraw: jest.fn(() => ({
23
+ txo: {
24
+ encodeABI: jest.fn(() => ({ data: "withdraw_data" })),
25
+ estimateGas: jest.fn(async () => 3),
26
+ },
27
+ })),
28
+ vote: jest.fn(() => ({
29
+ txo: {
30
+ encodeABI: jest.fn(() => ({ data: "vote_data" })),
31
+ estimateGas: jest.fn(async () => 3),
32
+ },
33
+ })),
34
+ getAccountNonvotingLockedGold: jest.fn(() => BigNumber(100)),
35
+ })),
36
+ },
37
+ })),
38
+ };
39
+ });
40
+ describe("getTransactionStatus", () => {
41
+ it("should return an InvalidAddressBecauseDestinationIsAlsoSource error in case the recipient is also the sender", async () => {
42
+ const transactionStatus = await getTransactionStatus({ ...accountFixture, balance: BigNumber(123), spendableBalance: BigNumber(123) }, {
43
+ ...transactionFixture,
44
+ recipient: accountFixture.freshAddress,
45
+ fees: BigNumber(2),
46
+ });
47
+ expect(transactionStatus.errors["recipient"].name).toEqual("InvalidAddressBecauseDestinationIsAlsoSource");
48
+ expect(transactionStatus.errors).not.toHaveProperty("fees");
49
+ expect(transactionStatus.errors).not.toHaveProperty("amount");
50
+ expect(Object.keys(transactionStatus.warnings).length).toEqual(0);
51
+ });
52
+ it("should return an FeeNotLoaded error in case the transaction is missing fees", async () => {
53
+ const transactionStatus = await getTransactionStatus({ ...accountFixture, balance: BigNumber(123), spendableBalance: BigNumber(123) }, {
54
+ ...transactionFixture,
55
+ recipient: "0x79D5A290D7ba4b99322d91b577589e8d0BF87072",
56
+ });
57
+ expect(transactionStatus.errors["fees"].name).toEqual("FeeNotLoaded");
58
+ expect(transactionStatus.errors).not.toHaveProperty("recipient");
59
+ expect(transactionStatus.errors).not.toHaveProperty("amount");
60
+ expect(Object.keys(transactionStatus.warnings).length).toEqual(0);
61
+ });
62
+ it("should return an NotEnoughBalance error in case the transaction is more than the account balance", async () => {
63
+ const transactionStatus = await getTransactionStatus({ ...accountFixture, balance: BigNumber(123), spendableBalance: BigNumber(123) }, {
64
+ ...transactionFixture,
65
+ recipient: "0x79D5A290D7ba4b99322d91b577589e8d0BF87072",
66
+ fees: BigNumber(2),
67
+ amount: BigNumber(88888),
68
+ });
69
+ expect(transactionStatus.errors["amount"].name).toEqual("NotEnoughBalance");
70
+ expect(transactionStatus.errors).not.toHaveProperty("recipient");
71
+ expect(transactionStatus.errors).not.toHaveProperty("fees");
72
+ expect(Object.keys(transactionStatus.warnings).length).toEqual(0);
73
+ });
74
+ it("should return an RecipientRequired error in case the transaction does not have a recipient address", async () => {
75
+ const transactionStatus = await getTransactionStatus({ ...accountFixture, balance: BigNumber(123), spendableBalance: BigNumber(123) }, {
76
+ ...transactionFixture,
77
+ recipient: "",
78
+ fees: BigNumber(2),
79
+ });
80
+ expect(transactionStatus.errors["recipient"].name).toEqual("RecipientRequired");
81
+ expect(transactionStatus.errors).not.toHaveProperty("amount");
82
+ expect(transactionStatus.errors).not.toHaveProperty("fees");
83
+ expect(Object.keys(transactionStatus.warnings).length).toEqual(0);
84
+ });
85
+ it("should return an InvalidAddress error in case the transaction does not have a valid recipient address", async () => {
86
+ const transactionStatus = await getTransactionStatus({ ...accountFixture, balance: BigNumber(123), spendableBalance: BigNumber(123) }, {
87
+ ...transactionFixture,
88
+ fees: BigNumber(2),
89
+ });
90
+ expect(transactionStatus.errors["recipient"].name).toEqual("InvalidAddress");
91
+ expect(transactionStatus.errors).not.toHaveProperty("amount");
92
+ expect(transactionStatus.errors).not.toHaveProperty("fees");
93
+ expect(Object.keys(transactionStatus.warnings).length).toEqual(0);
94
+ });
95
+ it("should return a CeloAllFundsWarning warning in case of a send or lock transaction is using all the balance above the safety buffer", async () => {
96
+ const transactionStatus = await getTransactionStatus({
97
+ ...accountFixture,
98
+ balance: BigNumber(10000000000000000),
99
+ spendableBalance: BigNumber(10000000000000000),
100
+ celoResources: {
101
+ ...accountFixture.celoResources,
102
+ lockedBalance: BigNumber(44444),
103
+ },
104
+ }, {
105
+ ...transactionFixture,
106
+ recipient: "0x79D5A290D7ba4b99322d91b577589e8d0BF87072",
107
+ amount: BigNumber(9000000000000000),
108
+ fees: BigNumber(2),
109
+ });
110
+ expect(transactionStatus.warnings["amount"].name).toEqual("CeloAllFundsWarning");
111
+ expect(transactionStatus.errors).not.toHaveProperty("amount");
112
+ expect(transactionStatus.errors).not.toHaveProperty("fees");
113
+ expect(transactionStatus.errors).not.toHaveProperty("recipient");
114
+ });
115
+ it("should not return any error or warning", async () => {
116
+ const transactionStatus = await getTransactionStatus({
117
+ ...accountFixture,
118
+ balance: BigNumber(10000000000000000),
119
+ spendableBalance: BigNumber(10000000000000000),
120
+ celoResources: {
121
+ ...accountFixture.celoResources,
122
+ lockedBalance: BigNumber(44444),
123
+ },
124
+ }, {
125
+ ...transactionFixture,
126
+ recipient: "0x79D5A290D7ba4b99322d91b577589e8d0BF87072",
127
+ fees: BigNumber(2),
128
+ useAllAmount: true,
129
+ mode: "vote",
130
+ });
131
+ expect(transactionStatus.errors).not.toHaveProperty("amount");
132
+ expect(transactionStatus.errors).not.toHaveProperty("fees");
133
+ expect(transactionStatus.errors).not.toHaveProperty("recipient");
134
+ expect(Object.keys(transactionStatus.warnings).length).toEqual(0);
135
+ });
136
+ it("should return an AmountRequired error", async () => {
137
+ const transactionStatus = await getTransactionStatus({
138
+ ...accountFixture,
139
+ balance: BigNumber(10000000000000000),
140
+ spendableBalance: BigNumber(10000000000000000),
141
+ celoResources: {
142
+ ...accountFixture.celoResources,
143
+ lockedBalance: BigNumber(44444),
144
+ },
145
+ }, {
146
+ ...transactionFixture,
147
+ recipient: "0x79D5A290D7ba4b99322d91b577589e8d0BF87072",
148
+ fees: BigNumber(2),
149
+ amount: BigNumber(0),
150
+ });
151
+ expect(transactionStatus.errors["amount"].name).toEqual("AmountRequired");
152
+ expect(transactionStatus.errors).not.toHaveProperty("fees");
153
+ expect(transactionStatus.errors).not.toHaveProperty("recipient");
154
+ expect(Object.keys(transactionStatus.warnings).length).toEqual(0);
155
+ });
156
+ it("should return an NotEnoughBalance error for a vote transaction where the amount is higher than the total non-voting locked balance", async () => {
157
+ const transactionStatus = await getTransactionStatus({
158
+ ...accountFixture,
159
+ balance: BigNumber(10000000000000000),
160
+ spendableBalance: BigNumber(10000000000000000),
161
+ celoResources: {
162
+ ...accountFixture.celoResources,
163
+ lockedBalance: BigNumber(44444),
164
+ },
165
+ }, {
166
+ ...transactionFixture,
167
+ recipient: "0x79D5A290D7ba4b99322d91b577589e8d0BF87072",
168
+ fees: BigNumber(2),
169
+ amount: BigNumber(200),
170
+ mode: "vote",
171
+ });
172
+ expect(transactionStatus.errors["amount"].name).toEqual("NotEnoughBalance");
173
+ expect(transactionStatus.errors).not.toHaveProperty("fees");
174
+ expect(transactionStatus.errors).not.toHaveProperty("recipient");
175
+ expect(Object.keys(transactionStatus.warnings).length).toEqual(0);
176
+ });
177
+ it("should return an NotEnoughBalance error for a revoke transaction where the amount is higher than the total non-voting locked balance", async () => {
178
+ const transactionStatus = await getTransactionStatus({
179
+ ...accountFixture,
180
+ balance: BigNumber(10000000000000000),
181
+ spendableBalance: BigNumber(10000000000000000),
182
+ celoResources: {
183
+ ...accountFixture.celoResources,
184
+ lockedBalance: BigNumber(44444),
185
+ votes: [
186
+ {
187
+ activatable: true,
188
+ amount: BigNumber(109),
189
+ index: 0,
190
+ revokable: true,
191
+ type: "active",
192
+ validatorGroup: transactionFixture.recipient,
193
+ },
194
+ ],
195
+ },
196
+ }, {
197
+ ...transactionFixture,
198
+ recipient: "0x79D5A290D7ba4b99322d91b577589e8d0BF87072",
199
+ useAllAmount: true,
200
+ fees: BigNumber(2),
201
+ mode: "revoke",
202
+ });
203
+ expect(transactionStatus.errors).not.toHaveProperty("amount");
204
+ expect(transactionStatus.errors).not.toHaveProperty("fees");
205
+ expect(transactionStatus.errors).not.toHaveProperty("recipient");
206
+ expect(Object.keys(transactionStatus.warnings).length).toEqual(0);
207
+ });
208
+ });
209
+ //# sourceMappingURL=getTransactionStatus.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTransactionStatus.test.js","sourceRoot":"","sources":["../../../src/__tests__/bridge/getTransactionStatus.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=logic.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logic.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/bridge/logic.test.ts"],"names":[],"mappings":""}