essential-eth 0.9.1-next.0 → 0.9.1

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 (104) hide show
  1. package/dist/cjs/classes/Contract.js +66 -311
  2. package/dist/cjs/classes/test/Contract/crv-abi.js +256 -252
  3. package/dist/cjs/classes/test/Contract/ens-abi.js +212 -497
  4. package/dist/cjs/classes/test/Contract/fei-abi.js +284 -605
  5. package/dist/cjs/classes/test/Contract/foo-abi.js +21 -44
  6. package/dist/cjs/classes/test/Contract/uniswap-abi.js +68 -64
  7. package/dist/cjs/classes/utils/clean-block.js +30 -52
  8. package/dist/cjs/classes/utils/clean-log.js +20 -42
  9. package/dist/cjs/classes/utils/clean-transaction-receipt.js +30 -51
  10. package/dist/cjs/classes/utils/clean-transaction.js +30 -52
  11. package/dist/cjs/classes/utils/encode-decode-transaction.js +107 -148
  12. package/dist/cjs/classes/utils/fetchers.js +44 -166
  13. package/dist/cjs/classes/utils/hex-to-decimal.js +6 -1
  14. package/dist/cjs/classes/utils/prepare-transaction.js +36 -59
  15. package/dist/cjs/index.js +56 -25
  16. package/dist/cjs/index.umd.js +1 -1
  17. package/dist/cjs/index.umd.js.map +1 -1
  18. package/dist/cjs/logger/logger.js +29 -123
  19. package/dist/cjs/logger/package-version.d.ts +1 -1
  20. package/dist/cjs/logger/package-version.js +4 -1
  21. package/dist/cjs/providers/AlchemyProvider.js +9 -82
  22. package/dist/cjs/providers/BaseProvider.js +520 -958
  23. package/dist/cjs/providers/FallthroughProvider.js +47 -156
  24. package/dist/cjs/providers/JsonRpcProvider.js +28 -114
  25. package/dist/cjs/providers/test/json-rpc-provider/get-logs/mocks.js +104 -101
  26. package/dist/cjs/providers/test/mock-of.js +6 -3
  27. package/dist/cjs/providers/test/rpc-urls.js +23 -15
  28. package/dist/cjs/providers/utils/chains-info.js +3 -1
  29. package/dist/cjs/shared/tiny-big/helpers.js +42 -93
  30. package/dist/cjs/shared/tiny-big/tiny-big.js +81 -210
  31. package/dist/cjs/shared/validate-type.js +7 -7
  32. package/dist/cjs/types/Block.types.js +2 -1
  33. package/dist/cjs/types/Contract.types.js +2 -1
  34. package/dist/cjs/types/FeeData.types.js +2 -1
  35. package/dist/cjs/types/Filter.types.js +2 -1
  36. package/dist/cjs/types/Network.types.js +2 -3
  37. package/dist/cjs/types/Transaction.types.js +2 -1
  38. package/dist/cjs/utils/bytes.js +318 -286
  39. package/dist/cjs/utils/compute-address.js +15 -8
  40. package/dist/cjs/utils/compute-public-key.js +10 -5
  41. package/dist/cjs/utils/ether-to-gwei.js +11 -10
  42. package/dist/cjs/utils/ether-to-wei.js +11 -10
  43. package/dist/cjs/utils/gwei-to-ether.js +11 -10
  44. package/dist/cjs/utils/hash-message.js +16 -11
  45. package/dist/cjs/utils/is-address.js +12 -8
  46. package/dist/cjs/utils/keccak256.js +14 -8
  47. package/dist/cjs/utils/solidity-keccak256.js +60 -49
  48. package/dist/cjs/utils/split-signature.js +73 -55
  49. package/dist/cjs/utils/to-checksum-address.js +20 -15
  50. package/dist/cjs/utils/to-utf8-bytes.js +6 -1
  51. package/dist/cjs/utils/wei-to-ether.js +15 -13
  52. package/dist/esm/logger/package-version.d.ts +1 -1
  53. package/dist/esm/logger/package-version.js +1 -1
  54. package/package.json +2 -2
  55. package/readme.md +1 -1
  56. package/dist/cjs/classes/test/Contract/crv.test.js +0 -497
  57. package/dist/cjs/classes/test/Contract/ens.test.js +0 -160
  58. package/dist/cjs/classes/test/Contract/fei.test.js +0 -224
  59. package/dist/cjs/classes/test/Contract/foo.test.js +0 -33
  60. package/dist/cjs/classes/test/Contract/uni.test.js +0 -289
  61. package/dist/cjs/providers/test/fallthrough-provider/get-gas-price.test.js +0 -228
  62. package/dist/cjs/providers/test/get-transaction-count.test.js +0 -239
  63. package/dist/cjs/providers/test/json-rpc-provider/call.test.js +0 -375
  64. package/dist/cjs/providers/test/json-rpc-provider/estimate-gas.test.js +0 -217
  65. package/dist/cjs/providers/test/json-rpc-provider/get-balance.test.js +0 -223
  66. package/dist/cjs/providers/test/json-rpc-provider/get-block-number.test.js +0 -163
  67. package/dist/cjs/providers/test/json-rpc-provider/get-block.test.js +0 -414
  68. package/dist/cjs/providers/test/json-rpc-provider/get-code.test.js +0 -282
  69. package/dist/cjs/providers/test/json-rpc-provider/get-fee-data.test.js +0 -187
  70. package/dist/cjs/providers/test/json-rpc-provider/get-gas-price.test.js +0 -167
  71. package/dist/cjs/providers/test/json-rpc-provider/get-logs/get-logs.test.js +0 -219
  72. package/dist/cjs/providers/test/json-rpc-provider/get-network.test.js +0 -232
  73. package/dist/cjs/providers/test/json-rpc-provider/get-transaction-receipt.test.js +0 -280
  74. package/dist/cjs/providers/test/json-rpc-provider/get-transaction.test.js +0 -266
  75. package/dist/cjs/providers/test/test-alchemy-provider.test.js +0 -151
  76. package/dist/cjs/shared/tiny-big/helpers.test.js +0 -29
  77. package/dist/cjs/shared/tiny-big/tiny-big.test.js +0 -34
  78. package/dist/cjs/utils/tests/bytes/arrayify.test.js +0 -64
  79. package/dist/cjs/utils/tests/bytes/concat.test.js +0 -17
  80. package/dist/cjs/utils/tests/bytes/hex-concat.test.js +0 -65
  81. package/dist/cjs/utils/tests/bytes/hex-data-length.test.js +0 -66
  82. package/dist/cjs/utils/tests/bytes/hex-data-slice.test.js +0 -51
  83. package/dist/cjs/utils/tests/bytes/hex-strip-zeros.test.js +0 -75
  84. package/dist/cjs/utils/tests/bytes/hex-value.test.js +0 -141
  85. package/dist/cjs/utils/tests/bytes/hex-zero-pad.test.js +0 -100
  86. package/dist/cjs/utils/tests/bytes/hexlify.test.js +0 -78
  87. package/dist/cjs/utils/tests/bytes/is-bytes-like.test.js +0 -68
  88. package/dist/cjs/utils/tests/bytes/is-bytes.test.js +0 -76
  89. package/dist/cjs/utils/tests/bytes/is-hex-string.test.js +0 -97
  90. package/dist/cjs/utils/tests/bytes/strip-zeros.test.js +0 -106
  91. package/dist/cjs/utils/tests/bytes/zero-pad.test.js +0 -144
  92. package/dist/cjs/utils/tests/compute-address.test.js +0 -49
  93. package/dist/cjs/utils/tests/compute-public-key.test.js +0 -26
  94. package/dist/cjs/utils/tests/ether-to-gwei.test.js +0 -26
  95. package/dist/cjs/utils/tests/ether-to-wei.test.js +0 -36
  96. package/dist/cjs/utils/tests/gwei-to-ether.test.js +0 -28
  97. package/dist/cjs/utils/tests/hash-message.test.js +0 -32
  98. package/dist/cjs/utils/tests/is-address.test.js +0 -48
  99. package/dist/cjs/utils/tests/keccak256.test.js +0 -121
  100. package/dist/cjs/utils/tests/solidity-keccak256.test.js +0 -311
  101. package/dist/cjs/utils/tests/split-signature.test.js +0 -46
  102. package/dist/cjs/utils/tests/to-checksum-address.test.js +0 -39
  103. package/dist/cjs/utils/tests/to-utf8-bytes.test.js +0 -34
  104. package/dist/cjs/utils/tests/wei-to-ether.test.js +0 -41
@@ -1,311 +0,0 @@
1
- import { solidityKeccak256 } from "../../index";
2
- /**
3
- *
4
- * @param inputs
5
- */ function testSolidityKeccak256(inputs) {
6
- inputs.forEach(function(input) {
7
- expect(solidityKeccak256(input.types, input.values)).toBe(input.expected);
8
- });
9
- }
10
- describe("solidityKeccak256", function() {
11
- it("should match expected hash - addresses", function() {
12
- var inputs = [
13
- {
14
- types: [
15
- "address"
16
- ],
17
- values: [
18
- "0x4d7F1790644Af787933c9fF0e2cff9a9B4299Abb"
19
- ],
20
- expected: "0x72fe4a1287bb827ec8d04e045f7559955a8e694063af513008f111670674178a"
21
- },
22
- {
23
- types: [
24
- "address",
25
- "address"
26
- ],
27
- values: [
28
- "0xB5503a7db1A9105cd459D99153e69a76a8EF1530",
29
- "0xaa0fc255b079e775f9307e5cfec472a555cebc3a"
30
- ],
31
- expected: "0x36020dd625e805ec80eb7c7e36e5b69108500af4bb4913245a3d643d33466581"
32
- }
33
- ];
34
- testSolidityKeccak256(inputs);
35
- });
36
- it("should match expected hash - strings", function() {
37
- var inputs = [
38
- {
39
- types: [
40
- "string"
41
- ],
42
- values: [
43
- "essential-eth"
44
- ],
45
- expected: "0xd5b027dc2bddae7475604f19ca210363f0a3c63a32d79c2fff540b9c21249f2c"
46
- },
47
- {
48
- types: [
49
- "string",
50
- "string"
51
- ],
52
- values: [
53
- "firstText",
54
- "secondString"
55
- ],
56
- expected: "0xf9b3d91668a0f53719a929eb38ac29b07896b3a33ef806cfbe5033bb5ce1e58b"
57
- },
58
- {
59
- types: [
60
- "string",
61
- "string",
62
- "string"
63
- ],
64
- values: [
65
- "example1",
66
- "2934823",
67
- "true"
68
- ],
69
- expected: "0x731e3313bb527075d72c8a724eea170cdc200edf65c958d3014f666faf9a4d41"
70
- }
71
- ];
72
- testSolidityKeccak256(inputs);
73
- });
74
- it("should match expected hash for bytes (dynamic size) & BytesLike", function() {
75
- var inputs = [
76
- {
77
- types: [
78
- "bytes"
79
- ],
80
- values: [
81
- [
82
- 115,
83
- 101,
84
- 99,
85
- 114,
86
- 101,
87
- 116
88
- ]
89
- ],
90
- expected: "0x65462b0520ef7d3df61b9992ed3bea0c56ead753be7c8b3614e0ce01e4cac41b"
91
- },
92
- {
93
- types: [
94
- "bytes"
95
- ],
96
- values: [
97
- "0x62797465734c696b65"
98
- ],
99
- expected: "0x89ddb668afdb92cd9027c2ecf8ef3f36f2a76d07f72db32f17be6ddd5552abfb"
100
- },
101
- {
102
- types: [
103
- "bytes",
104
- "bytes"
105
- ],
106
- values: [
107
- "0x657373656e7469616c2d657468",
108
- [
109
- 115,
110
- 109,
111
- 97,
112
- 108,
113
- 108,
114
- 101,
115
- 115,
116
- 116
117
- ]
118
- ],
119
- expected: "0xb57d179e947e0bfe9813227c428eeea3558dc20e47a9fe64b9d9f29b9b5eeff0"
120
- }
121
- ];
122
- testSolidityKeccak256(inputs);
123
- });
124
- it("should match expected hash for bytes (static size)", function() {
125
- var inputs = [
126
- {
127
- types: [
128
- "bytes4"
129
- ],
130
- values: [
131
- [
132
- 116,
133
- 101,
134
- 115,
135
- 116
136
- ]
137
- ],
138
- expected: "0x9c22ff5f21f0b81b113e63f7db6da94fedef11b2119b4088b89664fb9a3cb658"
139
- },
140
- {
141
- types: [
142
- "bytes13",
143
- "bytes1",
144
- "bytes2",
145
- "bytes5",
146
- "bytes1"
147
- ],
148
- values: [
149
- [
150
- 101,
151
- 115,
152
- 115,
153
- 101,
154
- 110,
155
- 116,
156
- 105,
157
- 97,
158
- 108,
159
- 45,
160
- 101,
161
- 116,
162
- 104
163
- ],
164
- [
165
- 32
166
- ],
167
- [
168
- 105,
169
- 115
170
- ],
171
- [
172
- 103,
173
- 114,
174
- 101,
175
- 97,
176
- 116
177
- ],
178
- [
179
- 33
180
- ]
181
- ],
182
- expected: "0xe44f351d6a5adfe8e8917ee07b7269e9fb019a97fba5eeab82899b02e3f15d1f"
183
- }
184
- ];
185
- testSolidityKeccak256(inputs);
186
- });
187
- it('should match expected hash for booleans (specified as type "bool" to match solidity)', function() {
188
- var inputs = [
189
- {
190
- types: [
191
- "bool"
192
- ],
193
- values: [
194
- true
195
- ],
196
- expected: "0x5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2"
197
- },
198
- {
199
- types: [
200
- "bool",
201
- "bool"
202
- ],
203
- values: [
204
- false,
205
- false
206
- ],
207
- expected: "0x54a8c0ab653c15bfb48b47fd011ba2b9617af01cb45cab344acd57c924d56798"
208
- }
209
- ];
210
- testSolidityKeccak256(inputs);
211
- });
212
- it("should match expected hash for (signed and unsigned) integers", function() {
213
- var inputs = [
214
- {
215
- types: [
216
- "int16"
217
- ],
218
- values: [
219
- -1
220
- ],
221
- expected: "0x06d41322d79dfed27126569cb9a80eb0967335bf2f3316359d2a93c779fcd38a"
222
- },
223
- {
224
- types: [
225
- "uint48"
226
- ],
227
- values: [
228
- 12
229
- ],
230
- expected: "0x505be1cd98680abcc2473d7336b83f86f30185d233a18e7dbf9a0add7f7fb583"
231
- },
232
- {
233
- types: [
234
- "int16",
235
- "uint48"
236
- ],
237
- values: [
238
- -1,
239
- 12
240
- ],
241
- expected: "0x81da7abb5c9c7515f57dab2fc946f01217ab52f3bd8958bc36bd55894451a93c"
242
- }
243
- ];
244
- testSolidityKeccak256(inputs);
245
- });
246
- it("should match expected hash when passing different types into the same solidityKeccak256 function call", function() {
247
- var inputs = [
248
- {
249
- types: [
250
- "int16",
251
- "string",
252
- "bool"
253
- ],
254
- values: [
255
- -5,
256
- "essential-eth",
257
- true
258
- ],
259
- expected: "0xa7bbaa8154fe7d3d9a9d813fa435b386fd75dc57d02b620baafc04074658c454"
260
- },
261
- {
262
- types: [
263
- "address",
264
- "uint48",
265
- "bytes4"
266
- ],
267
- values: [
268
- "0xB5503a7db1A9105cd459D99153e69a76a8EF1530",
269
- 20,
270
- [
271
- 116,
272
- 101,
273
- 115,
274
- 116
275
- ]
276
- ],
277
- expected: "0x6e4e133a4879decc8bf952c54092cb965ba979f38d5e6fb62d47e6bdd7ea390c"
278
- },
279
- {
280
- types: [
281
- "string[3]",
282
- "bytes",
283
- "bool[2]"
284
- ],
285
- values: [
286
- [
287
- "ethereum",
288
- "blockchain",
289
- "204"
290
- ],
291
- [
292
- 115,
293
- 111,
294
- 108,
295
- 105,
296
- 100,
297
- 105,
298
- 116,
299
- 121
300
- ],
301
- [
302
- false,
303
- true
304
- ]
305
- ],
306
- expected: "0xb66a5a976e76e7f2d8b2d5baff670f9937c12b6c3484a9479075d9ecfc2700d2"
307
- }
308
- ];
309
- testSolidityKeccak256(inputs);
310
- });
311
- });
@@ -1,46 +0,0 @@
1
- import { splitSignature } from "../split-signature";
2
- describe("splitSignature", function() {
3
- it("should match expected results", function() {
4
- var testCases = [
5
- {
6
- signature: "0x60bc4ed91f2021aefe7045f3f77bd12f87eb733aee24bd1965343b3c27b3971647252185b7d2abb411b01b5d1ac4ab41ea486df1e9b396758c1aec6c1b6eee331b",
7
- expected: {
8
- _vs: "0x47252185b7d2abb411b01b5d1ac4ab41ea486df1e9b396758c1aec6c1b6eee33",
9
- compact: "0x60bc4ed91f2021aefe7045f3f77bd12f87eb733aee24bd1965343b3c27b3971647252185b7d2abb411b01b5d1ac4ab41ea486df1e9b396758c1aec6c1b6eee33",
10
- r: "0x60bc4ed91f2021aefe7045f3f77bd12f87eb733aee24bd1965343b3c27b39716",
11
- recoveryParam: 0,
12
- s: "0x47252185b7d2abb411b01b5d1ac4ab41ea486df1e9b396758c1aec6c1b6eee33",
13
- v: 27,
14
- yParityAndS: "0x47252185b7d2abb411b01b5d1ac4ab41ea486df1e9b396758c1aec6c1b6eee33"
15
- }
16
- },
17
- {
18
- signature: "0x60bc4ed91f2021aefe7045f3f77bd12f87eb733aee24bd1965343b3c27b3971647252185b7d2abb411b01b5d1ac4ab41ea486df1e9b396758c1aec6c1b6eee33",
19
- expected: {
20
- _vs: "0x47252185b7d2abb411b01b5d1ac4ab41ea486df1e9b396758c1aec6c1b6eee33",
21
- compact: "0x60bc4ed91f2021aefe7045f3f77bd12f87eb733aee24bd1965343b3c27b3971647252185b7d2abb411b01b5d1ac4ab41ea486df1e9b396758c1aec6c1b6eee33",
22
- r: "0x60bc4ed91f2021aefe7045f3f77bd12f87eb733aee24bd1965343b3c27b39716",
23
- recoveryParam: 0,
24
- s: "0x47252185b7d2abb411b01b5d1ac4ab41ea486df1e9b396758c1aec6c1b6eee33",
25
- v: 27,
26
- yParityAndS: "0x47252185b7d2abb411b01b5d1ac4ab41ea486df1e9b396758c1aec6c1b6eee33"
27
- }
28
- }
29
- ];
30
- testCases.forEach(function(testCase) {
31
- expect(splitSignature(testCase.signature)).toStrictEqual(testCase.expected);
32
- });
33
- });
34
- it("should throw error on invalid signature", function() {
35
- var signature = "0x60bc4ed91f2021aefe7045f3f77bd12f87eb733aee24bd1965343b3c27b3971647252185b7d2abb411b01b5d1ac4ab41ea486df1e9b396758c1aec6c1b6eee33238423849234765127";
36
- expect(function() {
37
- splitSignature(signature);
38
- }).toThrow("invalid signature string");
39
- });
40
- it("should throw error on invalid v byte", function() {
41
- var signature = "0x60bc4ed91f2021aefe7045f3f77bd12f87eb733aee24bd1965343b3c27b3971647252185b7d2abb411b01b5d1ac4ab41ea486df1e9b396758c1aec6c1b6eee3305";
42
- expect(function() {
43
- splitSignature(signature);
44
- }).toThrow("signature invalid v byte");
45
- });
46
- });
@@ -1,39 +0,0 @@
1
- import { toChecksumAddress } from "../../index";
2
- describe("ether-to-wei", function() {
3
- it("happy path", function() {
4
- var addresses = [
5
- "0x52908400098527886E0F7030069857D2E4169EE7",
6
- "0x8617E340B3D01FA5F11F306F4090FD50E238070D",
7
- "0xde709f2102306220921060314715629080e2fb77",
8
- "0x27b1fdb04752bbc536007a920d24acb045561c26",
9
- "0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed",
10
- "0xfB6916095ca1df60bB79Ce92cE3Ea74c37c5d359",
11
- "0xdbF03B407c01E7cD3CBea99509d93f8DDDC8C6FB",
12
- "0xD1220A0cf47c7B9Be7A2E6BA89F429762e7b9aDb"
13
- ];
14
- addresses.forEach(function(address) {
15
- expect(toChecksumAddress(address)).toStrictEqual(address);
16
- });
17
- });
18
- it("invalid inputs", function() {
19
- var invalidChecksumAddress = "0x8617E340b3D01FA5F11F306F4090FD50E238070D";
20
- expect(function() {
21
- toChecksumAddress(invalidChecksumAddress);
22
- }).toThrow('Invalid Checksum address for "'.concat(invalidChecksumAddress, '"'));
23
- expect(function() {
24
- // @ts-expect-error should not accept boolean
25
- toChecksumAddress(false);
26
- }).toThrow("string required. Received boolean");
27
- expect(function() {
28
- // @ts-expect-error should not accept array
29
- toChecksumAddress([
30
- 1,
31
- 2,
32
- 3
33
- ]);
34
- }).toThrow("string required. Received object");
35
- expect(function() {
36
- toChecksumAddress("0x1");
37
- }).toThrow('Invalid Ethereum address "0x1"');
38
- });
39
- });
@@ -1,34 +0,0 @@
1
- import { toUtf8Bytes } from "../../index";
2
- describe("utils.toUtf8Bytes", function() {
3
- it("should correctly convert to UTF8 bytes", function() {
4
- var testCases = [
5
- {
6
- input: "0xa",
7
- expected: new Uint8Array([
8
- 48,
9
- 120,
10
- 97
11
- ])
12
- },
13
- {
14
- input: "1",
15
- expected: new Uint8Array([
16
- 49
17
- ])
18
- },
19
- {
20
- input: "false",
21
- expected: new Uint8Array([
22
- 102,
23
- 97,
24
- 108,
25
- 115,
26
- 101
27
- ])
28
- }
29
- ];
30
- testCases.forEach(function(testCase) {
31
- expect(toUtf8Bytes(testCase.input)).toStrictEqual(testCase.expected);
32
- });
33
- });
34
- });
@@ -1,41 +0,0 @@
1
- import Big from "big.js";
2
- import { tinyBig, weiToEther } from "../../index";
3
- describe("wei-to-ether", function() {
4
- it("happy path", function() {
5
- expect(weiToEther("100000000000000000000.0").toString()).toBe("100");
6
- expect(weiToEther(100000000000000000000.0).toString()).toBe("100");
7
- expect(weiToEther("1000000000000000000000.0").toNumber()).toBe(1000);
8
- expect(weiToEther(1000000000000000000000.0).toNumber()).toBe(1000);
9
- expect(weiToEther(tinyBig("1000000000000000000000.0")).toNumber()).toBe(1000);
10
- expect(weiToEther(tinyBig(1000000000000000000000.0)).toNumber()).toBe(1000);
11
- expect(weiToEther(Big("1000000000000000000000.0")).toNumber()).toBe(1000);
12
- expect(weiToEther(Big(1000000000000000000000.0)).toNumber()).toBe(1000);
13
- });
14
- it("matches expected value toString", function() {
15
- expect(weiToEther("10").toString()).toBe("0.00000000000000001");
16
- expect(weiToEther("1000000000000000000000").toString()).toBe("1000");
17
- });
18
- it("matches expected value toNumber", function() {
19
- /* easy */ expect(weiToEther("9").toNumber()).toBe(9e-18);
20
- expect(weiToEther("9").toNumber()).toBe(9e-18);
21
- /* harder */ expect(weiToEther("999999").toNumber()).toBe(9.99999e-13);
22
- });
23
- it("support hex", function() {
24
- expect(weiToEther("0x14").toString()).toBe("0.00000000000000002");
25
- expect(weiToEther(0x14).toString()).toBe("0.00000000000000002");
26
- });
27
- it("wrong types", function() {
28
- expect(function() {
29
- // @ts-expect-error should not accept boolean
30
- weiToEther(false);
31
- }).toThrow();
32
- expect(function() {
33
- // @ts-expect-error should not accept array
34
- weiToEther([
35
- 1,
36
- 2,
37
- 3
38
- ]);
39
- }).toThrow();
40
- });
41
- });