@zoralabs/coins 0.1.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 (116) hide show
  1. package/.turbo/turbo-build.log +76 -0
  2. package/CHANGELOG.md +14 -0
  3. package/LICENSE +21 -0
  4. package/abis/Address.json +29 -0
  5. package/abis/BaseTest.json +691 -0
  6. package/abis/Clones.json +7 -0
  7. package/abis/Coin.json +1693 -0
  8. package/abis/CoinConstants.json +93 -0
  9. package/abis/CoinTest.json +998 -0
  10. package/abis/ContextUpgradeable.json +25 -0
  11. package/abis/ContractVersionBase.json +15 -0
  12. package/abis/Deploy.json +29 -0
  13. package/abis/ECDSA.json +29 -0
  14. package/abis/EIP712.json +67 -0
  15. package/abis/EIP712Upgradeable.json +74 -0
  16. package/abis/ERC1967Proxy.json +67 -0
  17. package/abis/ERC1967Utils.json +85 -0
  18. package/abis/ERC20PermitUpgradeable.json +527 -0
  19. package/abis/ERC20Upgradeable.json +333 -0
  20. package/abis/FactoryTest.json +845 -0
  21. package/abis/IBeacon.json +15 -0
  22. package/abis/ICoin.json +541 -0
  23. package/abis/ICoinComments.json +53 -0
  24. package/abis/IERC1155Errors.json +104 -0
  25. package/abis/IERC165.json +21 -0
  26. package/abis/IERC1822Proxiable.json +15 -0
  27. package/abis/IERC20.json +221 -0
  28. package/abis/IERC20Errors.json +88 -0
  29. package/abis/IERC20Metadata.json +224 -0
  30. package/abis/IERC20Permit.json +77 -0
  31. package/abis/IERC5267.json +51 -0
  32. package/abis/IERC721.json +287 -0
  33. package/abis/IERC721Enumerable.json +343 -0
  34. package/abis/IERC721Errors.json +105 -0
  35. package/abis/IERC721Metadata.json +332 -0
  36. package/abis/IERC721Receiver.json +36 -0
  37. package/abis/IERC721TokenReceiver.json +36 -0
  38. package/abis/IERC7572.json +21 -0
  39. package/abis/IMulticall3.json +440 -0
  40. package/abis/INonfungiblePositionManager.json +366 -0
  41. package/abis/IProtocolRewards.json +348 -0
  42. package/abis/ISwapRouter.json +137 -0
  43. package/abis/IUniswapV3Pool.json +148 -0
  44. package/abis/IUniswapV3SwapCallback.json +25 -0
  45. package/abis/IVersionedContract.json +15 -0
  46. package/abis/IWETH.json +118 -0
  47. package/abis/IZoraFactory.json +138 -0
  48. package/abis/Initializable.json +25 -0
  49. package/abis/Math.json +7 -0
  50. package/abis/MockERC20.json +322 -0
  51. package/abis/MockERC721.json +350 -0
  52. package/abis/MultiOwnable.json +171 -0
  53. package/abis/MultiOwnableTest.json +796 -0
  54. package/abis/NoncesUpgradeable.json +60 -0
  55. package/abis/OwnableUpgradeable.json +99 -0
  56. package/abis/ProtocolRewards.json +494 -0
  57. package/abis/Proxy.json +6 -0
  58. package/abis/ReentrancyGuardUpgradeable.json +30 -0
  59. package/abis/SafeERC20.json +34 -0
  60. package/abis/Script.json +15 -0
  61. package/abis/ShortStrings.json +18 -0
  62. package/abis/StdAssertions.json +379 -0
  63. package/abis/StdInvariant.json +180 -0
  64. package/abis/Strings.json +18 -0
  65. package/abis/Test.json +570 -0
  66. package/abis/UUPSUpgradeable.json +130 -0
  67. package/abis/Vm.json +8627 -0
  68. package/abis/VmSafe.json +7297 -0
  69. package/abis/ZoraFactory.json +67 -0
  70. package/abis/ZoraFactoryImpl.json +422 -0
  71. package/abis/stdError.json +119 -0
  72. package/abis/stdStorageSafe.json +52 -0
  73. package/addresses/1.json +4 -0
  74. package/addresses/8453.json +9 -0
  75. package/addresses/84532.json +9 -0
  76. package/dist/index.cjs +1236 -0
  77. package/dist/index.cjs.map +1 -0
  78. package/dist/index.d.ts +2 -0
  79. package/dist/index.d.ts.map +1 -0
  80. package/dist/index.js +1208 -0
  81. package/dist/index.js.map +1 -0
  82. package/dist/wagmiGenerated.d.ts +1645 -0
  83. package/dist/wagmiGenerated.d.ts.map +1 -0
  84. package/foundry.toml +9 -0
  85. package/package/index.ts +1 -0
  86. package/package/wagmiGenerated.ts +1211 -0
  87. package/package.json +48 -0
  88. package/remappings.txt +4 -0
  89. package/script/Deploy.s.sol +14 -0
  90. package/slither.config.json +6 -0
  91. package/src/Coin.sol +579 -0
  92. package/src/ZoraFactoryImpl.sol +142 -0
  93. package/src/interfaces/ICoin.sol +194 -0
  94. package/src/interfaces/ICoinComments.sol +8 -0
  95. package/src/interfaces/IERC7572.sol +12 -0
  96. package/src/interfaces/INonfungiblePositionManager.sol +104 -0
  97. package/src/interfaces/IProtocolRewards.sol +12 -0
  98. package/src/interfaces/ISwapRouter.sol +38 -0
  99. package/src/interfaces/IUniswapV3Pool.sol +43 -0
  100. package/src/interfaces/IUniswapV3SwapCallback.sol +17 -0
  101. package/src/interfaces/IWETH.sol +16 -0
  102. package/src/interfaces/IZoraFactory.sol +56 -0
  103. package/src/proxy/ZoraFactory.sol +26 -0
  104. package/src/utils/CoinConstants.sol +67 -0
  105. package/src/utils/MultiOwnable.sol +126 -0
  106. package/src/utils/TickMath.sol +210 -0
  107. package/src/version/ContractVersionBase.sol +14 -0
  108. package/test/Coin.t.sol +443 -0
  109. package/test/Factory.t.sol +298 -0
  110. package/test/MultiOwnable.t.sol +156 -0
  111. package/test/utils/BaseTest.sol +178 -0
  112. package/test/utils/ProtocolRewards.sol +1499 -0
  113. package/tsconfig.build.json +10 -0
  114. package/tsconfig.json +9 -0
  115. package/tsup.config.ts +11 -0
  116. package/wagmi.config.ts +16 -0
@@ -0,0 +1,15 @@
1
+ [
2
+ {
3
+ "type": "function",
4
+ "name": "implementation",
5
+ "inputs": [],
6
+ "outputs": [
7
+ {
8
+ "name": "",
9
+ "type": "address",
10
+ "internalType": "address"
11
+ }
12
+ ],
13
+ "stateMutability": "view"
14
+ }
15
+ ]
@@ -0,0 +1,541 @@
1
+ [
2
+ {
3
+ "type": "function",
4
+ "name": "burn",
5
+ "inputs": [
6
+ {
7
+ "name": "amount",
8
+ "type": "uint256",
9
+ "internalType": "uint256"
10
+ }
11
+ ],
12
+ "outputs": [],
13
+ "stateMutability": "nonpayable"
14
+ },
15
+ {
16
+ "type": "function",
17
+ "name": "buy",
18
+ "inputs": [
19
+ {
20
+ "name": "recipient",
21
+ "type": "address",
22
+ "internalType": "address"
23
+ },
24
+ {
25
+ "name": "orderSize",
26
+ "type": "uint256",
27
+ "internalType": "uint256"
28
+ },
29
+ {
30
+ "name": "minAmountOut",
31
+ "type": "uint256",
32
+ "internalType": "uint256"
33
+ },
34
+ {
35
+ "name": "sqrtPriceLimitX96",
36
+ "type": "uint160",
37
+ "internalType": "uint160"
38
+ },
39
+ {
40
+ "name": "tradeReferrer",
41
+ "type": "address",
42
+ "internalType": "address"
43
+ }
44
+ ],
45
+ "outputs": [
46
+ {
47
+ "name": "",
48
+ "type": "uint256",
49
+ "internalType": "uint256"
50
+ }
51
+ ],
52
+ "stateMutability": "payable"
53
+ },
54
+ {
55
+ "type": "function",
56
+ "name": "platformReferrer",
57
+ "inputs": [],
58
+ "outputs": [
59
+ {
60
+ "name": "",
61
+ "type": "address",
62
+ "internalType": "address"
63
+ }
64
+ ],
65
+ "stateMutability": "view"
66
+ },
67
+ {
68
+ "type": "function",
69
+ "name": "sell",
70
+ "inputs": [
71
+ {
72
+ "name": "recipient",
73
+ "type": "address",
74
+ "internalType": "address"
75
+ },
76
+ {
77
+ "name": "orderSize",
78
+ "type": "uint256",
79
+ "internalType": "uint256"
80
+ },
81
+ {
82
+ "name": "minAmountOut",
83
+ "type": "uint256",
84
+ "internalType": "uint256"
85
+ },
86
+ {
87
+ "name": "sqrtPriceLimitX96",
88
+ "type": "uint160",
89
+ "internalType": "uint160"
90
+ },
91
+ {
92
+ "name": "tradeReferrer",
93
+ "type": "address",
94
+ "internalType": "address"
95
+ }
96
+ ],
97
+ "outputs": [
98
+ {
99
+ "name": "",
100
+ "type": "uint256",
101
+ "internalType": "uint256"
102
+ }
103
+ ],
104
+ "stateMutability": "nonpayable"
105
+ },
106
+ {
107
+ "type": "function",
108
+ "name": "tokenURI",
109
+ "inputs": [],
110
+ "outputs": [
111
+ {
112
+ "name": "",
113
+ "type": "string",
114
+ "internalType": "string"
115
+ }
116
+ ],
117
+ "stateMutability": "view"
118
+ },
119
+ {
120
+ "type": "event",
121
+ "name": "CoinBuy",
122
+ "inputs": [
123
+ {
124
+ "name": "buyer",
125
+ "type": "address",
126
+ "indexed": true,
127
+ "internalType": "address"
128
+ },
129
+ {
130
+ "name": "recipient",
131
+ "type": "address",
132
+ "indexed": true,
133
+ "internalType": "address"
134
+ },
135
+ {
136
+ "name": "tradeReferrer",
137
+ "type": "address",
138
+ "indexed": true,
139
+ "internalType": "address"
140
+ },
141
+ {
142
+ "name": "coinsPurchased",
143
+ "type": "uint256",
144
+ "indexed": false,
145
+ "internalType": "uint256"
146
+ },
147
+ {
148
+ "name": "currency",
149
+ "type": "address",
150
+ "indexed": false,
151
+ "internalType": "address"
152
+ },
153
+ {
154
+ "name": "amountFee",
155
+ "type": "uint256",
156
+ "indexed": false,
157
+ "internalType": "uint256"
158
+ },
159
+ {
160
+ "name": "amountSold",
161
+ "type": "uint256",
162
+ "indexed": false,
163
+ "internalType": "uint256"
164
+ },
165
+ {
166
+ "name": "comment",
167
+ "type": "string",
168
+ "indexed": false,
169
+ "internalType": "string"
170
+ }
171
+ ],
172
+ "anonymous": false
173
+ },
174
+ {
175
+ "type": "event",
176
+ "name": "CoinMarketRewards",
177
+ "inputs": [
178
+ {
179
+ "name": "creatorPayoutAddress",
180
+ "type": "address",
181
+ "indexed": true,
182
+ "internalType": "address"
183
+ },
184
+ {
185
+ "name": "platformReferrer",
186
+ "type": "address",
187
+ "indexed": true,
188
+ "internalType": "address"
189
+ },
190
+ {
191
+ "name": "protocolRewardRecipient",
192
+ "type": "address",
193
+ "indexed": false,
194
+ "internalType": "address"
195
+ },
196
+ {
197
+ "name": "currency",
198
+ "type": "address",
199
+ "indexed": false,
200
+ "internalType": "address"
201
+ },
202
+ {
203
+ "name": "marketRewards",
204
+ "type": "tuple",
205
+ "indexed": false,
206
+ "internalType": "struct ICoin.MarketRewards",
207
+ "components": [
208
+ {
209
+ "name": "totalAmountCurrency",
210
+ "type": "uint256",
211
+ "internalType": "uint256"
212
+ },
213
+ {
214
+ "name": "totalAmountCoin",
215
+ "type": "uint256",
216
+ "internalType": "uint256"
217
+ },
218
+ {
219
+ "name": "creatorPayoutAmountCurrency",
220
+ "type": "uint256",
221
+ "internalType": "uint256"
222
+ },
223
+ {
224
+ "name": "creatorPayoutAmountCoin",
225
+ "type": "uint256",
226
+ "internalType": "uint256"
227
+ },
228
+ {
229
+ "name": "platformReferrerAmountCurrency",
230
+ "type": "uint256",
231
+ "internalType": "uint256"
232
+ },
233
+ {
234
+ "name": "platformReferrerAmountCoin",
235
+ "type": "uint256",
236
+ "internalType": "uint256"
237
+ },
238
+ {
239
+ "name": "protocolAmountCurrency",
240
+ "type": "uint256",
241
+ "internalType": "uint256"
242
+ },
243
+ {
244
+ "name": "protocolAmountCoin",
245
+ "type": "uint256",
246
+ "internalType": "uint256"
247
+ }
248
+ ]
249
+ }
250
+ ],
251
+ "anonymous": false
252
+ },
253
+ {
254
+ "type": "event",
255
+ "name": "CoinPayoutRecipientUpdated",
256
+ "inputs": [
257
+ {
258
+ "name": "caller",
259
+ "type": "address",
260
+ "indexed": true,
261
+ "internalType": "address"
262
+ },
263
+ {
264
+ "name": "prevRecipient",
265
+ "type": "address",
266
+ "indexed": true,
267
+ "internalType": "address"
268
+ },
269
+ {
270
+ "name": "newRecipient",
271
+ "type": "address",
272
+ "indexed": true,
273
+ "internalType": "address"
274
+ }
275
+ ],
276
+ "anonymous": false
277
+ },
278
+ {
279
+ "type": "event",
280
+ "name": "CoinSell",
281
+ "inputs": [
282
+ {
283
+ "name": "seller",
284
+ "type": "address",
285
+ "indexed": true,
286
+ "internalType": "address"
287
+ },
288
+ {
289
+ "name": "recipient",
290
+ "type": "address",
291
+ "indexed": true,
292
+ "internalType": "address"
293
+ },
294
+ {
295
+ "name": "tradeReferrer",
296
+ "type": "address",
297
+ "indexed": true,
298
+ "internalType": "address"
299
+ },
300
+ {
301
+ "name": "coinsSold",
302
+ "type": "uint256",
303
+ "indexed": false,
304
+ "internalType": "uint256"
305
+ },
306
+ {
307
+ "name": "currency",
308
+ "type": "address",
309
+ "indexed": false,
310
+ "internalType": "address"
311
+ },
312
+ {
313
+ "name": "amountFee",
314
+ "type": "uint256",
315
+ "indexed": false,
316
+ "internalType": "uint256"
317
+ },
318
+ {
319
+ "name": "amountPurchased",
320
+ "type": "uint256",
321
+ "indexed": false,
322
+ "internalType": "uint256"
323
+ },
324
+ {
325
+ "name": "comment",
326
+ "type": "string",
327
+ "indexed": false,
328
+ "internalType": "string"
329
+ }
330
+ ],
331
+ "anonymous": false
332
+ },
333
+ {
334
+ "type": "event",
335
+ "name": "CoinTradeRewards",
336
+ "inputs": [
337
+ {
338
+ "name": "creatorPayoutRecipient",
339
+ "type": "address",
340
+ "indexed": true,
341
+ "internalType": "address"
342
+ },
343
+ {
344
+ "name": "platformReferrer",
345
+ "type": "address",
346
+ "indexed": true,
347
+ "internalType": "address"
348
+ },
349
+ {
350
+ "name": "tradeReferrer",
351
+ "type": "address",
352
+ "indexed": true,
353
+ "internalType": "address"
354
+ },
355
+ {
356
+ "name": "protocolRewardRecipient",
357
+ "type": "address",
358
+ "indexed": false,
359
+ "internalType": "address"
360
+ },
361
+ {
362
+ "name": "creatorReward",
363
+ "type": "uint256",
364
+ "indexed": false,
365
+ "internalType": "uint256"
366
+ },
367
+ {
368
+ "name": "platformReferrerReward",
369
+ "type": "uint256",
370
+ "indexed": false,
371
+ "internalType": "uint256"
372
+ },
373
+ {
374
+ "name": "traderReferrerReward",
375
+ "type": "uint256",
376
+ "indexed": false,
377
+ "internalType": "uint256"
378
+ },
379
+ {
380
+ "name": "protocolReward",
381
+ "type": "uint256",
382
+ "indexed": false,
383
+ "internalType": "uint256"
384
+ },
385
+ {
386
+ "name": "currency",
387
+ "type": "address",
388
+ "indexed": false,
389
+ "internalType": "address"
390
+ }
391
+ ],
392
+ "anonymous": false
393
+ },
394
+ {
395
+ "type": "event",
396
+ "name": "CoinTransfer",
397
+ "inputs": [
398
+ {
399
+ "name": "sender",
400
+ "type": "address",
401
+ "indexed": true,
402
+ "internalType": "address"
403
+ },
404
+ {
405
+ "name": "recipient",
406
+ "type": "address",
407
+ "indexed": true,
408
+ "internalType": "address"
409
+ },
410
+ {
411
+ "name": "amount",
412
+ "type": "uint256",
413
+ "indexed": false,
414
+ "internalType": "uint256"
415
+ },
416
+ {
417
+ "name": "senderBalance",
418
+ "type": "uint256",
419
+ "indexed": false,
420
+ "internalType": "uint256"
421
+ },
422
+ {
423
+ "name": "recipientBalance",
424
+ "type": "uint256",
425
+ "indexed": false,
426
+ "internalType": "uint256"
427
+ }
428
+ ],
429
+ "anonymous": false
430
+ },
431
+ {
432
+ "type": "event",
433
+ "name": "ContractMetadataUpdated",
434
+ "inputs": [
435
+ {
436
+ "name": "caller",
437
+ "type": "address",
438
+ "indexed": true,
439
+ "internalType": "address"
440
+ },
441
+ {
442
+ "name": "newURI",
443
+ "type": "string",
444
+ "indexed": false,
445
+ "internalType": "string"
446
+ },
447
+ {
448
+ "name": "name",
449
+ "type": "string",
450
+ "indexed": false,
451
+ "internalType": "string"
452
+ }
453
+ ],
454
+ "anonymous": false
455
+ },
456
+ {
457
+ "type": "error",
458
+ "name": "AddressZero",
459
+ "inputs": []
460
+ },
461
+ {
462
+ "type": "error",
463
+ "name": "ERC20TransferAmountMismatch",
464
+ "inputs": []
465
+ },
466
+ {
467
+ "type": "error",
468
+ "name": "EthAmountMismatch",
469
+ "inputs": []
470
+ },
471
+ {
472
+ "type": "error",
473
+ "name": "EthAmountTooSmall",
474
+ "inputs": []
475
+ },
476
+ {
477
+ "type": "error",
478
+ "name": "EthTransferFailed",
479
+ "inputs": []
480
+ },
481
+ {
482
+ "type": "error",
483
+ "name": "EthTransferInvalid",
484
+ "inputs": []
485
+ },
486
+ {
487
+ "type": "error",
488
+ "name": "InitialOrderSizeTooLarge",
489
+ "inputs": []
490
+ },
491
+ {
492
+ "type": "error",
493
+ "name": "InsufficientFunds",
494
+ "inputs": []
495
+ },
496
+ {
497
+ "type": "error",
498
+ "name": "InsufficientLiquidity",
499
+ "inputs": []
500
+ },
501
+ {
502
+ "type": "error",
503
+ "name": "InvalidCurrencyLowerTick",
504
+ "inputs": []
505
+ },
506
+ {
507
+ "type": "error",
508
+ "name": "InvalidMarketType",
509
+ "inputs": []
510
+ },
511
+ {
512
+ "type": "error",
513
+ "name": "InvalidWethLowerTick",
514
+ "inputs": []
515
+ },
516
+ {
517
+ "type": "error",
518
+ "name": "MarketAlreadyGraduated",
519
+ "inputs": []
520
+ },
521
+ {
522
+ "type": "error",
523
+ "name": "MarketNotGraduated",
524
+ "inputs": []
525
+ },
526
+ {
527
+ "type": "error",
528
+ "name": "OnlyPool",
529
+ "inputs": []
530
+ },
531
+ {
532
+ "type": "error",
533
+ "name": "OnlyWeth",
534
+ "inputs": []
535
+ },
536
+ {
537
+ "type": "error",
538
+ "name": "SlippageBoundsExceeded",
539
+ "inputs": []
540
+ }
541
+ ]
@@ -0,0 +1,53 @@
1
+ [
2
+ {
3
+ "type": "function",
4
+ "name": "balanceOf",
5
+ "inputs": [
6
+ {
7
+ "name": "",
8
+ "type": "address",
9
+ "internalType": "address"
10
+ }
11
+ ],
12
+ "outputs": [
13
+ {
14
+ "name": "",
15
+ "type": "uint256",
16
+ "internalType": "uint256"
17
+ }
18
+ ],
19
+ "stateMutability": "view"
20
+ },
21
+ {
22
+ "type": "function",
23
+ "name": "isOwner",
24
+ "inputs": [
25
+ {
26
+ "name": "",
27
+ "type": "address",
28
+ "internalType": "address"
29
+ }
30
+ ],
31
+ "outputs": [
32
+ {
33
+ "name": "",
34
+ "type": "bool",
35
+ "internalType": "bool"
36
+ }
37
+ ],
38
+ "stateMutability": "view"
39
+ },
40
+ {
41
+ "type": "function",
42
+ "name": "payoutRecipient",
43
+ "inputs": [],
44
+ "outputs": [
45
+ {
46
+ "name": "",
47
+ "type": "address",
48
+ "internalType": "address"
49
+ }
50
+ ],
51
+ "stateMutability": "view"
52
+ }
53
+ ]
@@ -0,0 +1,104 @@
1
+ [
2
+ {
3
+ "type": "error",
4
+ "name": "ERC1155InsufficientBalance",
5
+ "inputs": [
6
+ {
7
+ "name": "sender",
8
+ "type": "address",
9
+ "internalType": "address"
10
+ },
11
+ {
12
+ "name": "balance",
13
+ "type": "uint256",
14
+ "internalType": "uint256"
15
+ },
16
+ {
17
+ "name": "needed",
18
+ "type": "uint256",
19
+ "internalType": "uint256"
20
+ },
21
+ {
22
+ "name": "tokenId",
23
+ "type": "uint256",
24
+ "internalType": "uint256"
25
+ }
26
+ ]
27
+ },
28
+ {
29
+ "type": "error",
30
+ "name": "ERC1155InvalidApprover",
31
+ "inputs": [
32
+ {
33
+ "name": "approver",
34
+ "type": "address",
35
+ "internalType": "address"
36
+ }
37
+ ]
38
+ },
39
+ {
40
+ "type": "error",
41
+ "name": "ERC1155InvalidArrayLength",
42
+ "inputs": [
43
+ {
44
+ "name": "idsLength",
45
+ "type": "uint256",
46
+ "internalType": "uint256"
47
+ },
48
+ {
49
+ "name": "valuesLength",
50
+ "type": "uint256",
51
+ "internalType": "uint256"
52
+ }
53
+ ]
54
+ },
55
+ {
56
+ "type": "error",
57
+ "name": "ERC1155InvalidOperator",
58
+ "inputs": [
59
+ {
60
+ "name": "operator",
61
+ "type": "address",
62
+ "internalType": "address"
63
+ }
64
+ ]
65
+ },
66
+ {
67
+ "type": "error",
68
+ "name": "ERC1155InvalidReceiver",
69
+ "inputs": [
70
+ {
71
+ "name": "receiver",
72
+ "type": "address",
73
+ "internalType": "address"
74
+ }
75
+ ]
76
+ },
77
+ {
78
+ "type": "error",
79
+ "name": "ERC1155InvalidSender",
80
+ "inputs": [
81
+ {
82
+ "name": "sender",
83
+ "type": "address",
84
+ "internalType": "address"
85
+ }
86
+ ]
87
+ },
88
+ {
89
+ "type": "error",
90
+ "name": "ERC1155MissingApprovalForAll",
91
+ "inputs": [
92
+ {
93
+ "name": "operator",
94
+ "type": "address",
95
+ "internalType": "address"
96
+ },
97
+ {
98
+ "name": "owner",
99
+ "type": "address",
100
+ "internalType": "address"
101
+ }
102
+ ]
103
+ }
104
+ ]