@zoralabs/coins 0.4.0 → 0.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 (51) hide show
  1. package/.env.example +7 -0
  2. package/.turbo/turbo-build.log +51 -37
  3. package/CHANGELOG.md +12 -0
  4. package/README.md +29 -0
  5. package/abis/Coin.json +10 -0
  6. package/abis/CoinTest.json +48 -0
  7. package/abis/Create2.json +28 -0
  8. package/abis/DeployScript.json +9 -0
  9. package/abis/DeterministicDeployerAndCaller.json +315 -0
  10. package/abis/DeterministicUUPSProxyDeployer.json +167 -0
  11. package/abis/FactoryTest.json +20 -0
  12. package/abis/GenerateDeterministicParams.json +9 -0
  13. package/abis/ICoin.json +10 -0
  14. package/abis/IERC165.json +1 -1
  15. package/abis/IERC20.json +42 -39
  16. package/abis/IImmutableCreate2Factory.json +93 -0
  17. package/abis/ISafe.json +15 -0
  18. package/abis/ISymbol.json +15 -0
  19. package/abis/ImmutableCreate2FactoryUtils.json +15 -0
  20. package/abis/LibString.json +7 -0
  21. package/abis/ProxyShim.json +112 -0
  22. package/abis/UUPSUpgradeable.json +15 -14
  23. package/abis/ZoraFactory.json +0 -5
  24. package/addresses/8453.json +5 -8
  25. package/addresses/84532.json +5 -8
  26. package/deterministicConfig/deployerAndCaller.json +5 -0
  27. package/deterministicConfig/zoraFactory.json +8 -0
  28. package/dist/index.cjs +8 -2
  29. package/dist/index.cjs.map +1 -1
  30. package/dist/index.js +8 -2
  31. package/dist/index.js.map +1 -1
  32. package/dist/wagmiGenerated.d.ts +8 -0
  33. package/dist/wagmiGenerated.d.ts.map +1 -1
  34. package/foundry.toml +14 -0
  35. package/package/wagmiGenerated.ts +8 -2
  36. package/package.json +2 -1
  37. package/remappings.txt +2 -1
  38. package/script/CoinsDeployerBase.sol +98 -0
  39. package/script/Deploy.s.sol +14 -5
  40. package/script/GenerateDeterministicParams.s.sol +43 -0
  41. package/src/Coin.sol +26 -8
  42. package/src/ZoraFactoryImpl.sol +2 -2
  43. package/src/interfaces/ICoin.sol +8 -2
  44. package/src/proxy/ZoraFactory.sol +7 -1
  45. package/src/utils/CoinConstants.sol +2 -2
  46. package/src/version/ContractVersionBase.sol +1 -1
  47. package/test/Coin.t.sol +150 -4
  48. package/test/Factory.t.sol +34 -11
  49. package/test/utils/BaseTest.sol +4 -4
  50. package/abis/Deploy.json +0 -29
  51. package/addresses/1.json +0 -4
package/.env.example ADDED
@@ -0,0 +1,7 @@
1
+ # Turnkey authentication and private key information
2
+ TURNKEY_API_PUBLIC_KEY=""
3
+ TURNKEY_API_PRIVATE_KEY=""
4
+ TURNKEY_ORGANIZATION_ID=""
5
+ TURNKEY_PRIVATE_KEY_ID="xxxx-xxx-xxxx-xxxx-xxxxxxxx"
6
+ TURNKEY_TARGET_ADDRESS="xxxxxxxx"
7
+ DEPLOYER="xxxxxx"
@@ -1,20 +1,32 @@
1
1
 
2
- > @zoralabs/coins@0.4.0 build /home/runner/work/zora-protocol-private/zora-protocol-private/packages/coins
2
+ > @zoralabs/coins@0.6.0 build /home/runner/work/zora-protocol-private/zora-protocol-private/packages/coins
3
3
  > pnpm run wagmi:generate && pnpm run copy-abis && pnpm run prettier:write && tsup
4
4
 
5
5
 
6
- > @zoralabs/coins@0.4.0 wagmi:generate /home/runner/work/zora-protocol-private/zora-protocol-private/packages/coins
6
+ > @zoralabs/coins@0.6.0 wagmi:generate /home/runner/work/zora-protocol-private/zora-protocol-private/packages/coins
7
7
  > FOUNDRY_PROFILE=dev forge build && wagmi generate && pnpm exec rename-generated-abi-casing ./package/wagmiGenerated.ts
8
8
 
9
- Compiling 79 files with Solc 0.8.23
10
- Solc 0.8.23 finished in 198.33s
9
+ Compiling 93 files with Solc 0.8.28
10
+ Solc 0.8.28 finished in 106.36s
11
11
  Compiler run successful with warnings:
12
12
  Warning (9302): Return value of low-level calls not used.
13
- --> test/Coin.t.sol:377:9:
13
+ --> test/Coin.t.sol:527:9:
14
14
  |
15
- 377 | address(coin).call{value: 1 ether}("");
15
+ 527 | address(coin).call{value: 1 ether}("");
16
16
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
17
17
 
18
+ Warning (2072): Unused local variable.
19
+ --> test/Coin.t.sol:446:10:
20
+ |
21
+ 446 | (address newCoinAddr, ) = factory.deploy(
22
+ | ^^^^^^^^^^^^^^^^^^^
23
+
24
+ Warning (2072): Unused local variable.
25
+ --> test/Coin.t.sol:464:10:
26
+ |
27
+ 464 | (address newCoinAddr, ) = factory.deploy(
28
+ | ^^^^^^^^^^^^^^^^^^^
29
+
18
30
  - Validating plugins
19
31
  ✔ Validating plugins
20
32
  - Resolving contracts
@@ -28,36 +40,38 @@ Warning (9302): Return value of low-level calls not used.
28
40
  ✅ Updated ./package/wagmiGenerated.ts (2 replacements)
29
41
  ✨ All files processed successfully!
30
42
 
31
- > @zoralabs/coins@0.4.0 copy-abis /home/runner/work/zora-protocol-private/zora-protocol-private/packages/coins
43
+ > @zoralabs/coins@0.6.0 copy-abis /home/runner/work/zora-protocol-private/zora-protocol-private/packages/coins
32
44
  > pnpm exec bundle-abis
33
45
 
34
46
 
35
- > @zoralabs/coins@0.4.0 prettier:write /home/runner/work/zora-protocol-private/zora-protocol-private/packages/coins
47
+ > @zoralabs/coins@0.6.0 prettier:write /home/runner/work/zora-protocol-private/zora-protocol-private/packages/coins
36
48
  > prettier --write 'src/**/*.sol' 'test/**/*.sol' 'script/**/*.sol'
37
49
 
38
- src/Coin.sol 728ms (unchanged)
39
- src/interfaces/ICoin.sol 36ms (unchanged)
40
- src/interfaces/ICoinComments.sol 3ms (unchanged)
41
- src/interfaces/IERC7572.sol 1ms (unchanged)
42
- src/interfaces/INonfungiblePositionManager.sol 21ms (unchanged)
43
- src/interfaces/IProtocolRewards.sol 6ms (unchanged)
44
- src/interfaces/ISwapRouter.sol 9ms (unchanged)
45
- src/interfaces/IUniswapV3Pool.sol 4ms (unchanged)
46
- src/interfaces/IUniswapV3SwapCallback.sol 3ms (unchanged)
47
- src/interfaces/IWETH.sol 8ms (unchanged)
48
- src/interfaces/IZoraFactory.sol 12ms (unchanged)
49
- src/proxy/ZoraFactory.sol 13ms (unchanged)
50
- src/utils/CoinConstants.sol 6ms (unchanged)
51
- src/utils/MultiOwnable.sol 88ms (unchanged)
52
- src/utils/TickMath.sol 138ms (unchanged)
53
- src/version/ContractVersionBase.sol 2ms (unchanged)
54
- src/ZoraFactoryImpl.sol 86ms (unchanged)
55
- test/Coin.t.sol 378ms (unchanged)
56
- test/Factory.t.sol 155ms (unchanged)
57
- test/MultiOwnable.t.sol 109ms (unchanged)
58
- test/utils/BaseTest.sol 108ms (unchanged)
59
- test/utils/ProtocolRewards.sol 407ms (unchanged)
60
- script/Deploy.s.sol 4ms (unchanged)
50
+ src/Coin.sol 1610ms (unchanged)
51
+ src/interfaces/ICoin.sol 66ms (unchanged)
52
+ src/interfaces/ICoinComments.sol 8ms (unchanged)
53
+ src/interfaces/IERC7572.sol 4ms (unchanged)
54
+ src/interfaces/INonfungiblePositionManager.sol 19ms (unchanged)
55
+ src/interfaces/IProtocolRewards.sol 14ms (unchanged)
56
+ src/interfaces/ISwapRouter.sol 6ms (unchanged)
57
+ src/interfaces/IUniswapV3Pool.sol 14ms (unchanged)
58
+ src/interfaces/IUniswapV3SwapCallback.sol 7ms (unchanged)
59
+ src/interfaces/IWETH.sol 16ms (unchanged)
60
+ src/interfaces/IZoraFactory.sol 11ms (unchanged)
61
+ src/proxy/ZoraFactory.sol 30ms (unchanged)
62
+ src/utils/CoinConstants.sol 10ms (unchanged)
63
+ src/utils/MultiOwnable.sol 223ms (unchanged)
64
+ src/utils/TickMath.sol 417ms (unchanged)
65
+ src/version/ContractVersionBase.sol 7ms (unchanged)
66
+ src/ZoraFactoryImpl.sol 234ms (unchanged)
67
+ test/Coin.t.sol 1368ms (unchanged)
68
+ test/Factory.t.sol 470ms (unchanged)
69
+ test/MultiOwnable.t.sol 280ms (unchanged)
70
+ test/utils/BaseTest.sol 238ms (unchanged)
71
+ test/utils/ProtocolRewards.sol 1003ms (unchanged)
72
+ script/CoinsDeployerBase.sol 96ms (unchanged)
73
+ script/Deploy.s.sol 12ms (unchanged)
74
+ script/GenerateDeterministicParams.s.sol 54ms (unchanged)
61
75
  CLI Building entry: package/index.ts
62
76
  CLI Using tsconfig: tsconfig.json
63
77
  CLI tsup v7.3.0
@@ -66,9 +80,9 @@ CLI Target: es2021
66
80
  CLI Cleaning output folder
67
81
  CJS Build start
68
82
  ESM Build start
69
- ESM dist/index.js 30.86 KB
70
- ESM dist/index.js.map 56.19 KB
71
- ESM ⚡️ Build success in 20ms
72
- CJS dist/index.cjs 31.91 KB
73
- CJS dist/index.cjs.map 56.30 KB
74
- CJS ⚡️ Build success in 21ms
83
+ ESM dist/index.js 31.00 KB
84
+ ESM dist/index.js.map 56.45 KB
85
+ ESM ⚡️ Build success in 47ms
86
+ CJS dist/index.cjs 32.06 KB
87
+ CJS dist/index.cjs.map 56.56 KB
88
+ CJS ⚡️ Build success in 49ms
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @zoralabs/coins
2
2
 
3
+ ## 0.6.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 55bc4bf3: Update WETH tick and use as the minimum
8
+
9
+ ## 0.5.0
10
+
11
+ ### Minor Changes
12
+
13
+ - 39ffa77c: Add coin refunds for large sells with little liquidity
14
+
3
15
  ## 0.4.0
4
16
 
5
17
  ### Minor Changes
package/README.md ADDED
@@ -0,0 +1,29 @@
1
+ # Coins
2
+
3
+ ## Deployment
4
+
5
+ The `ZoraFactory` contract is deployed deterministically using a turnkey account. The deployment process uses a helper contract, [DeterministicDeployerAndCaller](../../packages/shared-contracts/src/deployment/DeterministicDeployerAndCaller.sol).
6
+
7
+ ### Prerequisites
8
+
9
+ - Ensure you have [Forge](https://book.getfoundry.sh/getting-started/installation) installed.
10
+ - Familiarity with [turnkey accounts](https://docs.turnkey.com/) is recommended.
11
+
12
+ ### Setting up environment variables
13
+
14
+ In the `packages/coins` directory:
15
+
16
+ 1. Copy `.env.example` to `.env`
17
+ 2. Populate the parameters in `.env`
18
+
19
+ ### Deploying the Coins Factory
20
+
21
+ 1. Deploy the `ZoraFactory` contract, you must pass the `--ffi` flag to enable calling an external script to sign the deployment with turnkey:
22
+
23
+ ```bash
24
+ forge script script/Deploy.s.sol $(chains {chainName} --deploy) --broadcast --verify --ffi
25
+ ```
26
+
27
+ where `{chainName}` is the emdash name of the chain you want to deploy on.
28
+
29
+ 2. Verify the factory contract. Since it is deployed with create2, foundry won't always recognize the deployed contract; verification instructions will be printed out in the logs.
package/abis/Coin.json CHANGED
@@ -288,6 +288,11 @@
288
288
  }
289
289
  ],
290
290
  "outputs": [
291
+ {
292
+ "name": "",
293
+ "type": "uint256",
294
+ "internalType": "uint256"
295
+ },
291
296
  {
292
297
  "name": "",
293
298
  "type": "uint256",
@@ -748,6 +753,11 @@
748
753
  }
749
754
  ],
750
755
  "outputs": [
756
+ {
757
+ "name": "",
758
+ "type": "uint256",
759
+ "internalType": "uint256"
760
+ },
751
761
  {
752
762
  "name": "",
753
763
  "type": "uint256",
@@ -308,6 +308,19 @@
308
308
  "outputs": [],
309
309
  "stateMutability": "nonpayable"
310
310
  },
311
+ {
312
+ "type": "function",
313
+ "name": "test_buy_validate_return_amounts",
314
+ "inputs": [
315
+ {
316
+ "name": "orderSize",
317
+ "type": "uint256",
318
+ "internalType": "uint256"
319
+ }
320
+ ],
321
+ "outputs": [],
322
+ "stateMutability": "nonpayable"
323
+ },
311
324
  {
312
325
  "type": "function",
313
326
  "name": "test_buy_with_eth",
@@ -412,6 +425,20 @@
412
425
  "outputs": [],
413
426
  "stateMutability": "nonpayable"
414
427
  },
428
+ {
429
+ "type": "function",
430
+ "name": "test_invalid_currency_tick",
431
+ "inputs": [],
432
+ "outputs": [],
433
+ "stateMutability": "nonpayable"
434
+ },
435
+ {
436
+ "type": "function",
437
+ "name": "test_invalid_weth_tick",
438
+ "inputs": [],
439
+ "outputs": [],
440
+ "stateMutability": "nonpayable"
441
+ },
415
442
  {
416
443
  "type": "function",
417
444
  "name": "test_market_slippage",
@@ -503,6 +530,20 @@
503
530
  "outputs": [],
504
531
  "stateMutability": "nonpayable"
505
532
  },
533
+ {
534
+ "type": "function",
535
+ "name": "test_sell_for_eth_direct_and_claim_secondary",
536
+ "inputs": [],
537
+ "outputs": [],
538
+ "stateMutability": "nonpayable"
539
+ },
540
+ {
541
+ "type": "function",
542
+ "name": "test_sell_for_eth_direct_and_claim_secondary_push_eth",
543
+ "inputs": [],
544
+ "outputs": [],
545
+ "stateMutability": "nonpayable"
546
+ },
506
547
  {
507
548
  "type": "function",
508
549
  "name": "test_sell_for_eth_fuzz",
@@ -523,6 +564,13 @@
523
564
  "outputs": [],
524
565
  "stateMutability": "nonpayable"
525
566
  },
567
+ {
568
+ "type": "function",
569
+ "name": "test_sell_partial_execution",
570
+ "inputs": [],
571
+ "outputs": [],
572
+ "stateMutability": "nonpayable"
573
+ },
526
574
  {
527
575
  "type": "function",
528
576
  "name": "test_set_contract_uri",
@@ -0,0 +1,28 @@
1
+ [
2
+ {
3
+ "type": "error",
4
+ "name": "Create2EmptyBytecode",
5
+ "inputs": []
6
+ },
7
+ {
8
+ "type": "error",
9
+ "name": "Create2FailedDeployment",
10
+ "inputs": []
11
+ },
12
+ {
13
+ "type": "error",
14
+ "name": "Create2InsufficientBalance",
15
+ "inputs": [
16
+ {
17
+ "name": "balance",
18
+ "type": "uint256",
19
+ "internalType": "uint256"
20
+ },
21
+ {
22
+ "name": "needed",
23
+ "type": "uint256",
24
+ "internalType": "uint256"
25
+ }
26
+ ]
27
+ }
28
+ ]
@@ -0,0 +1,9 @@
1
+ [
2
+ {
3
+ "type": "function",
4
+ "name": "run",
5
+ "inputs": [],
6
+ "outputs": [],
7
+ "stateMutability": "nonpayable"
8
+ }
9
+ ]
@@ -0,0 +1,315 @@
1
+ [
2
+ {
3
+ "type": "constructor",
4
+ "inputs": [],
5
+ "stateMutability": "nonpayable"
6
+ },
7
+ {
8
+ "type": "function",
9
+ "name": "eip712Domain",
10
+ "inputs": [],
11
+ "outputs": [
12
+ {
13
+ "name": "fields",
14
+ "type": "bytes1",
15
+ "internalType": "bytes1"
16
+ },
17
+ {
18
+ "name": "name",
19
+ "type": "string",
20
+ "internalType": "string"
21
+ },
22
+ {
23
+ "name": "version",
24
+ "type": "string",
25
+ "internalType": "string"
26
+ },
27
+ {
28
+ "name": "chainId",
29
+ "type": "uint256",
30
+ "internalType": "uint256"
31
+ },
32
+ {
33
+ "name": "verifyingContract",
34
+ "type": "address",
35
+ "internalType": "address"
36
+ },
37
+ {
38
+ "name": "salt",
39
+ "type": "bytes32",
40
+ "internalType": "bytes32"
41
+ },
42
+ {
43
+ "name": "extensions",
44
+ "type": "uint256[]",
45
+ "internalType": "uint256[]"
46
+ }
47
+ ],
48
+ "stateMutability": "view"
49
+ },
50
+ {
51
+ "type": "function",
52
+ "name": "hashDigest",
53
+ "inputs": [
54
+ {
55
+ "name": "salt",
56
+ "type": "bytes32",
57
+ "internalType": "bytes32"
58
+ },
59
+ {
60
+ "name": "code",
61
+ "type": "bytes",
62
+ "internalType": "bytes"
63
+ },
64
+ {
65
+ "name": "postCreateCall",
66
+ "type": "bytes",
67
+ "internalType": "bytes"
68
+ }
69
+ ],
70
+ "outputs": [
71
+ {
72
+ "name": "",
73
+ "type": "bytes32",
74
+ "internalType": "bytes32"
75
+ }
76
+ ],
77
+ "stateMutability": "view"
78
+ },
79
+ {
80
+ "type": "function",
81
+ "name": "permitSafeCreate2AndCall",
82
+ "inputs": [
83
+ {
84
+ "name": "signature",
85
+ "type": "bytes",
86
+ "internalType": "bytes"
87
+ },
88
+ {
89
+ "name": "salt",
90
+ "type": "bytes32",
91
+ "internalType": "bytes32"
92
+ },
93
+ {
94
+ "name": "code",
95
+ "type": "bytes",
96
+ "internalType": "bytes"
97
+ },
98
+ {
99
+ "name": "postCreateCall",
100
+ "type": "bytes",
101
+ "internalType": "bytes"
102
+ },
103
+ {
104
+ "name": "_expectedAddress",
105
+ "type": "address",
106
+ "internalType": "address"
107
+ }
108
+ ],
109
+ "outputs": [
110
+ {
111
+ "name": "",
112
+ "type": "address",
113
+ "internalType": "address"
114
+ }
115
+ ],
116
+ "stateMutability": "payable"
117
+ },
118
+ {
119
+ "type": "function",
120
+ "name": "proxyConstructorArgs",
121
+ "inputs": [],
122
+ "outputs": [
123
+ {
124
+ "name": "",
125
+ "type": "bytes",
126
+ "internalType": "bytes"
127
+ }
128
+ ],
129
+ "stateMutability": "view"
130
+ },
131
+ {
132
+ "type": "function",
133
+ "name": "proxyCreationCode",
134
+ "inputs": [
135
+ {
136
+ "name": "proxyCode",
137
+ "type": "bytes",
138
+ "internalType": "bytes"
139
+ }
140
+ ],
141
+ "outputs": [
142
+ {
143
+ "name": "",
144
+ "type": "bytes",
145
+ "internalType": "bytes"
146
+ }
147
+ ],
148
+ "stateMutability": "view"
149
+ },
150
+ {
151
+ "type": "function",
152
+ "name": "proxyShim",
153
+ "inputs": [],
154
+ "outputs": [
155
+ {
156
+ "name": "",
157
+ "type": "address",
158
+ "internalType": "contract ProxyShim"
159
+ }
160
+ ],
161
+ "stateMutability": "view"
162
+ },
163
+ {
164
+ "type": "function",
165
+ "name": "safeCreate2AndCall",
166
+ "inputs": [
167
+ {
168
+ "name": "salt",
169
+ "type": "bytes32",
170
+ "internalType": "bytes32"
171
+ },
172
+ {
173
+ "name": "code",
174
+ "type": "bytes",
175
+ "internalType": "bytes"
176
+ },
177
+ {
178
+ "name": "postCreateCall",
179
+ "type": "bytes",
180
+ "internalType": "bytes"
181
+ },
182
+ {
183
+ "name": "_expectedAddress",
184
+ "type": "address",
185
+ "internalType": "address"
186
+ }
187
+ ],
188
+ "outputs": [
189
+ {
190
+ "name": "",
191
+ "type": "address",
192
+ "internalType": "address"
193
+ }
194
+ ],
195
+ "stateMutability": "payable"
196
+ },
197
+ {
198
+ "type": "event",
199
+ "name": "EIP712DomainChanged",
200
+ "inputs": [],
201
+ "anonymous": false
202
+ },
203
+ {
204
+ "type": "error",
205
+ "name": "CallFailed",
206
+ "inputs": [
207
+ {
208
+ "name": "returnData",
209
+ "type": "bytes",
210
+ "internalType": "bytes"
211
+ }
212
+ ]
213
+ },
214
+ {
215
+ "type": "error",
216
+ "name": "Create2EmptyBytecode",
217
+ "inputs": []
218
+ },
219
+ {
220
+ "type": "error",
221
+ "name": "Create2FailedDeployment",
222
+ "inputs": []
223
+ },
224
+ {
225
+ "type": "error",
226
+ "name": "Create2InsufficientBalance",
227
+ "inputs": [
228
+ {
229
+ "name": "balance",
230
+ "type": "uint256",
231
+ "internalType": "uint256"
232
+ },
233
+ {
234
+ "name": "needed",
235
+ "type": "uint256",
236
+ "internalType": "uint256"
237
+ }
238
+ ]
239
+ },
240
+ {
241
+ "type": "error",
242
+ "name": "ECDSAInvalidSignature",
243
+ "inputs": []
244
+ },
245
+ {
246
+ "type": "error",
247
+ "name": "ECDSAInvalidSignatureLength",
248
+ "inputs": [
249
+ {
250
+ "name": "length",
251
+ "type": "uint256",
252
+ "internalType": "uint256"
253
+ }
254
+ ]
255
+ },
256
+ {
257
+ "type": "error",
258
+ "name": "ECDSAInvalidSignatureS",
259
+ "inputs": [
260
+ {
261
+ "name": "s",
262
+ "type": "bytes32",
263
+ "internalType": "bytes32"
264
+ }
265
+ ]
266
+ },
267
+ {
268
+ "type": "error",
269
+ "name": "FactoryProxyAddressMismatch",
270
+ "inputs": [
271
+ {
272
+ "name": "expected",
273
+ "type": "address",
274
+ "internalType": "address"
275
+ },
276
+ {
277
+ "name": "actual",
278
+ "type": "address",
279
+ "internalType": "address"
280
+ }
281
+ ]
282
+ },
283
+ {
284
+ "type": "error",
285
+ "name": "InvalidSalt",
286
+ "inputs": [
287
+ {
288
+ "name": "signer",
289
+ "type": "address",
290
+ "internalType": "address"
291
+ },
292
+ {
293
+ "name": "salt",
294
+ "type": "bytes32",
295
+ "internalType": "bytes32"
296
+ }
297
+ ]
298
+ },
299
+ {
300
+ "type": "error",
301
+ "name": "InvalidShortString",
302
+ "inputs": []
303
+ },
304
+ {
305
+ "type": "error",
306
+ "name": "StringTooLong",
307
+ "inputs": [
308
+ {
309
+ "name": "str",
310
+ "type": "string",
311
+ "internalType": "string"
312
+ }
313
+ ]
314
+ }
315
+ ]