@zoralabs/coins 2.3.0 → 2.4.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 (72) hide show
  1. package/.turbo/turbo-build$colon$js.log +119 -101
  2. package/CHANGELOG.md +31 -1
  3. package/README.md +1 -0
  4. package/abis/AddressConstants.json +7 -0
  5. package/abis/BaseTest.json +65 -3
  6. package/abis/BuySupplyWithV4SwapHook.json +429 -0
  7. package/abis/FeeEstimatorHook.json +23 -0
  8. package/abis/ITrustedMsgSenderProviderLookup.json +21 -0
  9. package/abis/IUniswapV4Router04.json +484 -0
  10. package/abis/IZoraV4CoinHook.json +5 -0
  11. package/abis/MockAirlock.json +39 -0
  12. package/abis/SimpleERC20.json +326 -0
  13. package/abis/TrustedMsgSenderProviderLookup.json +215 -0
  14. package/abis/VmContractHelper242.json +233 -0
  15. package/abis/ZoraV4CoinHook.json +21 -3
  16. package/addresses/8453.json +7 -9
  17. package/audits/report-cantinacode-zora-1021.pdf +0 -0
  18. package/dist/index.cjs +140 -19
  19. package/dist/index.cjs.map +1 -1
  20. package/dist/index.js +139 -18
  21. package/dist/index.js.map +1 -1
  22. package/dist/wagmiGenerated.d.ts +205 -28
  23. package/dist/wagmiGenerated.d.ts.map +1 -1
  24. package/foundry.toml +5 -1
  25. package/package/wagmiGenerated.ts +139 -18
  26. package/package.json +3 -3
  27. package/script/DeployPostDeploymentHooks.s.sol +1 -3
  28. package/script/DeployTrustedMsgSenderLookup.s.sol +20 -0
  29. package/src/deployment/CoinsDeployerBase.sol +31 -9
  30. package/src/hooks/ZoraV4CoinHook.sol +19 -55
  31. package/src/hooks/deployment/BuySupplyWithV4SwapHook.sol +310 -0
  32. package/src/interfaces/ITrustedMsgSenderProviderLookup.sol +18 -0
  33. package/src/interfaces/IZoraV4CoinHook.sol +3 -0
  34. package/src/libs/HooksDeployment.sol +9 -8
  35. package/src/libs/V4Liquidity.sol +50 -6
  36. package/src/utils/AutoSwapper.sol +1 -1
  37. package/src/utils/TrustedMsgSenderProviderLookup.sol +73 -0
  38. package/src/version/ContractVersionBase.sol +1 -1
  39. package/test/BuySupplyWithV4SwapHook.t.sol +509 -0
  40. package/test/Coin.t.sol +21 -9
  41. package/test/CoinUniV4.t.sol +1 -2
  42. package/test/ContentCoinRewards.t.sol +1 -3
  43. package/test/CreatorCoin.t.sol +1 -4
  44. package/test/CreatorCoinRewards.t.sol +5 -3
  45. package/test/Factory.t.sol +3 -3
  46. package/test/HooksDeployment.t.sol +58 -6
  47. package/test/LiquidityMigration.t.sol +6 -2
  48. package/test/MultiOwnable.t.sol +4 -4
  49. package/test/TrustedMsgSenderProviderLookup.t.sol +112 -0
  50. package/test/Upgrades.t.sol +41 -27
  51. package/test/ZoraHookRegistry.t.sol +19 -9
  52. package/test/mocks/MockAirlock.sol +22 -0
  53. package/test/mocks/SimpleERC20.sol +8 -0
  54. package/test/utils/BaseTest.sol +185 -6
  55. package/test/utils/FeeEstimatorHook.sol +3 -1
  56. package/test/utils/TrustedSenderTestHelper.sol +18 -0
  57. package/test/utils/hookmate/README.md +50 -0
  58. package/test/utils/hookmate/artifacts/DeployHelper.sol +20 -0
  59. package/test/utils/hookmate/artifacts/Permit2.sol +16 -0
  60. package/test/utils/hookmate/artifacts/UniversalRouter.sol +29 -0
  61. package/test/utils/hookmate/artifacts/V4PoolManager.sol +17 -0
  62. package/test/utils/hookmate/artifacts/V4PositionManager.sol +23 -0
  63. package/test/utils/hookmate/artifacts/V4Quoter.sol +17 -0
  64. package/test/utils/hookmate/artifacts/V4Router.sol +18 -0
  65. package/test/utils/hookmate/constants/AddressConstants.sol +193 -0
  66. package/test/utils/hookmate/interfaces/router/IUniswapV4Router04.sol +173 -0
  67. package/test/utils/hookmate/interfaces/router/PathKey.sol +34 -0
  68. package/test/utils/hookmate/test/utils/SwapFeeEventAsserter.sol +24 -0
  69. package/wagmi.config.ts +1 -1
  70. package/src/utils/uniswap/BytesLib.sol +0 -35
  71. package/src/utils/uniswap/Path.sol +0 -31
  72. /package/abis/{VmContractHelper226.json → VmContractHelper235.json} +0 -0
@@ -0,0 +1,233 @@
1
+ [
2
+ {
3
+ "type": "function",
4
+ "name": "deployCode",
5
+ "inputs": [
6
+ {
7
+ "name": "_artifact",
8
+ "type": "string",
9
+ "internalType": "string"
10
+ },
11
+ {
12
+ "name": "_value",
13
+ "type": "uint256",
14
+ "internalType": "uint256"
15
+ },
16
+ {
17
+ "name": "_salt",
18
+ "type": "bytes32",
19
+ "internalType": "bytes32"
20
+ }
21
+ ],
22
+ "outputs": [
23
+ {
24
+ "name": "",
25
+ "type": "address",
26
+ "internalType": "address"
27
+ }
28
+ ],
29
+ "stateMutability": "nonpayable"
30
+ },
31
+ {
32
+ "type": "function",
33
+ "name": "deployCode",
34
+ "inputs": [
35
+ {
36
+ "name": "_artifact",
37
+ "type": "string",
38
+ "internalType": "string"
39
+ },
40
+ {
41
+ "name": "_args",
42
+ "type": "bytes",
43
+ "internalType": "bytes"
44
+ },
45
+ {
46
+ "name": "_salt",
47
+ "type": "bytes32",
48
+ "internalType": "bytes32"
49
+ }
50
+ ],
51
+ "outputs": [
52
+ {
53
+ "name": "",
54
+ "type": "address",
55
+ "internalType": "address"
56
+ }
57
+ ],
58
+ "stateMutability": "nonpayable"
59
+ },
60
+ {
61
+ "type": "function",
62
+ "name": "deployCode",
63
+ "inputs": [
64
+ {
65
+ "name": "_artifact",
66
+ "type": "string",
67
+ "internalType": "string"
68
+ },
69
+ {
70
+ "name": "_value",
71
+ "type": "uint256",
72
+ "internalType": "uint256"
73
+ }
74
+ ],
75
+ "outputs": [
76
+ {
77
+ "name": "",
78
+ "type": "address",
79
+ "internalType": "address"
80
+ }
81
+ ],
82
+ "stateMutability": "nonpayable"
83
+ },
84
+ {
85
+ "type": "function",
86
+ "name": "deployCode",
87
+ "inputs": [
88
+ {
89
+ "name": "_artifact",
90
+ "type": "string",
91
+ "internalType": "string"
92
+ },
93
+ {
94
+ "name": "_salt",
95
+ "type": "bytes32",
96
+ "internalType": "bytes32"
97
+ }
98
+ ],
99
+ "outputs": [
100
+ {
101
+ "name": "",
102
+ "type": "address",
103
+ "internalType": "address"
104
+ }
105
+ ],
106
+ "stateMutability": "nonpayable"
107
+ },
108
+ {
109
+ "type": "function",
110
+ "name": "deployCode",
111
+ "inputs": [
112
+ {
113
+ "name": "_artifact",
114
+ "type": "string",
115
+ "internalType": "string"
116
+ },
117
+ {
118
+ "name": "_args",
119
+ "type": "bytes",
120
+ "internalType": "bytes"
121
+ }
122
+ ],
123
+ "outputs": [
124
+ {
125
+ "name": "",
126
+ "type": "address",
127
+ "internalType": "address"
128
+ }
129
+ ],
130
+ "stateMutability": "nonpayable"
131
+ },
132
+ {
133
+ "type": "function",
134
+ "name": "deployCode",
135
+ "inputs": [
136
+ {
137
+ "name": "_artifact",
138
+ "type": "string",
139
+ "internalType": "string"
140
+ },
141
+ {
142
+ "name": "_args",
143
+ "type": "bytes",
144
+ "internalType": "bytes"
145
+ },
146
+ {
147
+ "name": "_value",
148
+ "type": "uint256",
149
+ "internalType": "uint256"
150
+ },
151
+ {
152
+ "name": "_salt",
153
+ "type": "bytes32",
154
+ "internalType": "bytes32"
155
+ }
156
+ ],
157
+ "outputs": [
158
+ {
159
+ "name": "",
160
+ "type": "address",
161
+ "internalType": "address"
162
+ }
163
+ ],
164
+ "stateMutability": "nonpayable"
165
+ },
166
+ {
167
+ "type": "function",
168
+ "name": "deployCode",
169
+ "inputs": [
170
+ {
171
+ "name": "_artifact",
172
+ "type": "string",
173
+ "internalType": "string"
174
+ }
175
+ ],
176
+ "outputs": [
177
+ {
178
+ "name": "",
179
+ "type": "address",
180
+ "internalType": "address"
181
+ }
182
+ ],
183
+ "stateMutability": "nonpayable"
184
+ },
185
+ {
186
+ "type": "function",
187
+ "name": "deployCode",
188
+ "inputs": [
189
+ {
190
+ "name": "_artifact",
191
+ "type": "string",
192
+ "internalType": "string"
193
+ },
194
+ {
195
+ "name": "_args",
196
+ "type": "bytes",
197
+ "internalType": "bytes"
198
+ },
199
+ {
200
+ "name": "_value",
201
+ "type": "uint256",
202
+ "internalType": "uint256"
203
+ }
204
+ ],
205
+ "outputs": [
206
+ {
207
+ "name": "",
208
+ "type": "address",
209
+ "internalType": "address"
210
+ }
211
+ ],
212
+ "stateMutability": "nonpayable"
213
+ },
214
+ {
215
+ "type": "function",
216
+ "name": "getCode",
217
+ "inputs": [
218
+ {
219
+ "name": "_artifact",
220
+ "type": "string",
221
+ "internalType": "string"
222
+ }
223
+ ],
224
+ "outputs": [
225
+ {
226
+ "name": "",
227
+ "type": "bytes",
228
+ "internalType": "bytes"
229
+ }
230
+ ],
231
+ "stateMutability": "nonpayable"
232
+ }
233
+ ]
@@ -13,9 +13,9 @@
13
13
  "internalType": "contract IDeployedCoinVersionLookup"
14
14
  },
15
15
  {
16
- "name": "trustedMessageSenders_",
17
- "type": "address[]",
18
- "internalType": "address[]"
16
+ "name": "trustedMsgSenderLookup_",
17
+ "type": "address",
18
+ "internalType": "contract ITrustedMsgSenderProviderLookup"
19
19
  },
20
20
  {
21
21
  "name": "upgradeGate_",
@@ -1037,6 +1037,19 @@
1037
1037
  ],
1038
1038
  "stateMutability": "view"
1039
1039
  },
1040
+ {
1041
+ "type": "function",
1042
+ "name": "getTrustedMsgSenderLookup",
1043
+ "inputs": [],
1044
+ "outputs": [
1045
+ {
1046
+ "name": "",
1047
+ "type": "address",
1048
+ "internalType": "contract ITrustedMsgSenderProviderLookup"
1049
+ }
1050
+ ],
1051
+ "stateMutability": "view"
1052
+ },
1040
1053
  {
1041
1054
  "type": "function",
1042
1055
  "name": "initializeFromMigration",
@@ -1845,6 +1858,11 @@
1845
1858
  }
1846
1859
  ]
1847
1860
  },
1861
+ {
1862
+ "type": "error",
1863
+ "name": "TrustedMsgSenderLookupCannotBeZeroAddress",
1864
+ "inputs": []
1865
+ },
1848
1866
  {
1849
1867
  "type": "error",
1850
1868
  "name": "UpgradeGateCannotBeZeroAddress",
@@ -1,15 +1,13 @@
1
1
  {
2
- "BUY_SUPPLY_WITH_SWAP_ROUTER_HOOK": "0xc90e349360C43a0217CEF289f231C66D4748960F",
2
+ "BUY_SUPPLY_WITH_SWAP_ROUTER_HOOK": "0xd8CC7bCA1dE52eA788829B16E375e9B96C18D433",
3
3
  "COIN_V3_IMPL": "0x45Bf86430af7CD071Ea23aE52325A78C8d12aD5a",
4
- "COIN_V4_IMPL": "0xca72309AaF706d290E08608b1Af47943902f69b2",
5
- "COIN_VERSION": "1.1.0",
6
- "CREATOR_COIN_HOOK": "0x1258e5f3C71ca9dCE95Ce734Ba5759532E46D040",
7
- "CREATOR_COIN_HOOK_SALT": "0x00000000000000000000000000000000000000000000000000000000000029b1",
8
- "CREATOR_COIN_IMPL": "0x88CC4E08C7608723f3E44e17aC669Fb43b6A8313",
4
+ "COIN_V4_IMPL": "0x7Cad62748DDf516CF85bC2C05C14786D84Cf861c",
5
+ "COIN_VERSION": "2.3.0",
6
+ "CREATOR_COIN_IMPL": "0x36853f9f48fAEe51Bd3db15db21EB4B9038bB795",
9
7
  "HOOK_UPGRADE_GATE": "0xD88f6BdD765313CaFA5888C177c325E2C3AbF2D2",
10
8
  "ZORA_FACTORY": "0x777777751622c0d3258f214F9DF38E35BF45baF3",
11
- "ZORA_FACTORY_IMPL": "0x57e338b97757f6E416965BEB9A5Cd2DB48b10c42",
9
+ "ZORA_FACTORY_IMPL": "0x8Ec7f068A77fa5FC1925110f82381374BA054Ff2",
12
10
  "ZORA_HOOK_REGISTRY": "0x777777C4c14b133858c3982D41Dbf02509fc18d7",
13
- "ZORA_V4_COIN_HOOK": "0x2b15a16B3Ef024005bA899Bb51764FCd58Cf9040",
14
- "ZORA_V4_COIN_HOOK_SALT": "0x0000000000000000000000000000000000000000000000000000000000000f90"
11
+ "ZORA_V4_COIN_HOOK": "0xC8d077444625eB300A427a6dfB2b1DBf9b159040",
12
+ "ZORA_V4_COIN_HOOK_SALT": "0x0000000000000000000000000000000000000000000000000000000000001624"
15
13
  }
package/dist/index.cjs CHANGED
@@ -22,7 +22,7 @@ var index_exports = {};
22
22
  __export(index_exports, {
23
23
  autoSwapperABI: () => autoSwapperABI,
24
24
  baseCoinABI: () => baseCoinABI,
25
- buySupplyWithSwapRouterHookABI: () => buySupplyWithSwapRouterHookABI,
25
+ buySupplyWithV4SwapHookABI: () => buySupplyWithV4SwapHookABI,
26
26
  contentCoinABI: () => contentCoinABI,
27
27
  creatorCoinABI: () => creatorCoinABI,
28
28
  iPermit2ABI: () => iPermit2ABI,
@@ -1204,7 +1204,7 @@ var baseCoinABI = [
1204
1204
  { type: "error", inputs: [], name: "SlippageBoundsExceeded" },
1205
1205
  { type: "error", inputs: [], name: "UseRevokeOwnershipToRemoveSelf" }
1206
1206
  ];
1207
- var buySupplyWithSwapRouterHookABI = [
1207
+ var buySupplyWithV4SwapHookABI = [
1208
1208
  {
1209
1209
  type: "constructor",
1210
1210
  inputs: [
@@ -1229,6 +1229,63 @@ var buySupplyWithSwapRouterHookABI = [
1229
1229
  outputs: [{ name: "", internalType: "bytes", type: "bytes" }],
1230
1230
  stateMutability: "payable"
1231
1231
  },
1232
+ {
1233
+ type: "function",
1234
+ inputs: [{ name: "data", internalType: "bytes", type: "bytes" }],
1235
+ name: "decodeV4RouteData",
1236
+ outputs: [
1237
+ {
1238
+ name: "v4Route",
1239
+ internalType: "struct PoolKey[]",
1240
+ type: "tuple[]",
1241
+ components: [
1242
+ { name: "currency0", internalType: "Currency", type: "address" },
1243
+ { name: "currency1", internalType: "Currency", type: "address" },
1244
+ { name: "fee", internalType: "uint24", type: "uint24" },
1245
+ { name: "tickSpacing", internalType: "int24", type: "int24" },
1246
+ { name: "hooks", internalType: "contract IHooks", type: "address" }
1247
+ ]
1248
+ },
1249
+ { name: "startAmount", internalType: "uint256", type: "uint256" }
1250
+ ],
1251
+ stateMutability: "pure"
1252
+ },
1253
+ {
1254
+ type: "function",
1255
+ inputs: [
1256
+ {
1257
+ name: "params",
1258
+ internalType: "struct BuySupplyWithV4SwapHook.InitialSupplyParams",
1259
+ type: "tuple",
1260
+ components: [
1261
+ { name: "buyRecipient", internalType: "address", type: "address" },
1262
+ { name: "v3Route", internalType: "bytes", type: "bytes" },
1263
+ {
1264
+ name: "v4Route",
1265
+ internalType: "struct PoolKey[]",
1266
+ type: "tuple[]",
1267
+ components: [
1268
+ { name: "currency0", internalType: "Currency", type: "address" },
1269
+ { name: "currency1", internalType: "Currency", type: "address" },
1270
+ { name: "fee", internalType: "uint24", type: "uint24" },
1271
+ { name: "tickSpacing", internalType: "int24", type: "int24" },
1272
+ {
1273
+ name: "hooks",
1274
+ internalType: "contract IHooks",
1275
+ type: "address"
1276
+ }
1277
+ ]
1278
+ },
1279
+ { name: "inputCurrency", internalType: "address", type: "address" },
1280
+ { name: "inputAmount", internalType: "uint256", type: "uint256" },
1281
+ { name: "minAmountOut", internalType: "uint256", type: "uint256" }
1282
+ ]
1283
+ }
1284
+ ],
1285
+ name: "encodeBuySupplyWithV4SwapHookData",
1286
+ outputs: [{ name: "", internalType: "bytes", type: "bytes" }],
1287
+ stateMutability: "pure"
1288
+ },
1232
1289
  {
1233
1290
  type: "function",
1234
1291
  inputs: [],
@@ -1238,6 +1295,15 @@ var buySupplyWithSwapRouterHookABI = [
1238
1295
  ],
1239
1296
  stateMutability: "view"
1240
1297
  },
1298
+ {
1299
+ type: "function",
1300
+ inputs: [],
1301
+ name: "poolManager",
1302
+ outputs: [
1303
+ { name: "", internalType: "contract IPoolManager", type: "address" }
1304
+ ],
1305
+ stateMutability: "view"
1306
+ },
1241
1307
  {
1242
1308
  type: "function",
1243
1309
  inputs: [{ name: "interfaceId", internalType: "bytes4", type: "bytes4" }],
@@ -1245,6 +1311,15 @@ var buySupplyWithSwapRouterHookABI = [
1245
1311
  outputs: [{ name: "", internalType: "bool", type: "bool" }],
1246
1312
  stateMutability: "pure"
1247
1313
  },
1314
+ {
1315
+ type: "function",
1316
+ inputs: [],
1317
+ name: "swapRouter",
1318
+ outputs: [
1319
+ { name: "", internalType: "contract ISwapRouter", type: "address" }
1320
+ ],
1321
+ stateMutability: "view"
1322
+ },
1248
1323
  {
1249
1324
  type: "function",
1250
1325
  inputs: [{ name: "data", internalType: "bytes", type: "bytes" }],
@@ -1252,6 +1327,58 @@ var buySupplyWithSwapRouterHookABI = [
1252
1327
  outputs: [{ name: "", internalType: "bytes", type: "bytes" }],
1253
1328
  stateMutability: "nonpayable"
1254
1329
  },
1330
+ {
1331
+ type: "event",
1332
+ anonymous: false,
1333
+ inputs: [
1334
+ { name: "coin", internalType: "address", type: "address", indexed: true },
1335
+ {
1336
+ name: "recipient",
1337
+ internalType: "address",
1338
+ type: "address",
1339
+ indexed: true
1340
+ },
1341
+ {
1342
+ name: "coinsPurchased",
1343
+ internalType: "uint256",
1344
+ type: "uint256",
1345
+ indexed: true
1346
+ },
1347
+ { name: "v3Route", internalType: "bytes", type: "bytes", indexed: false },
1348
+ {
1349
+ name: "v4Route",
1350
+ internalType: "struct PoolKey[]",
1351
+ type: "tuple[]",
1352
+ components: [
1353
+ { name: "currency0", internalType: "Currency", type: "address" },
1354
+ { name: "currency1", internalType: "Currency", type: "address" },
1355
+ { name: "fee", internalType: "uint24", type: "uint24" },
1356
+ { name: "tickSpacing", internalType: "int24", type: "int24" },
1357
+ { name: "hooks", internalType: "contract IHooks", type: "address" }
1358
+ ],
1359
+ indexed: false
1360
+ },
1361
+ {
1362
+ name: "inputCurrency",
1363
+ internalType: "address",
1364
+ type: "address",
1365
+ indexed: false
1366
+ },
1367
+ {
1368
+ name: "inputAmount",
1369
+ internalType: "uint256",
1370
+ type: "uint256",
1371
+ indexed: false
1372
+ },
1373
+ {
1374
+ name: "v4SwapInput",
1375
+ internalType: "uint256",
1376
+ type: "uint256",
1377
+ indexed: false
1378
+ }
1379
+ ],
1380
+ name: "BuyInitialSupply"
1381
+ },
1255
1382
  {
1256
1383
  type: "error",
1257
1384
  inputs: [{ name: "target", internalType: "address", type: "address" }],
@@ -1263,20 +1390,17 @@ var buySupplyWithSwapRouterHookABI = [
1263
1390
  name: "AddressInsufficientBalance"
1264
1391
  },
1265
1392
  { type: "error", inputs: [], name: "AddressZero" },
1393
+ { type: "error", inputs: [], name: "FailedInnerCall" },
1394
+ { type: "error", inputs: [], name: "HookNotImplemented" },
1266
1395
  {
1267
1396
  type: "error",
1268
- inputs: [{ name: "balance", internalType: "uint256", type: "uint256" }],
1269
- name: "CoinBalanceNot0"
1270
- },
1271
- {
1272
- type: "error",
1273
- inputs: [{ name: "balance", internalType: "uint256", type: "uint256" }],
1274
- name: "CurrencyBalanceNot0"
1397
+ inputs: [
1398
+ { name: "inputAmount", internalType: "uint256", type: "uint256" },
1399
+ { name: "availableAmount", internalType: "uint256", type: "uint256" }
1400
+ ],
1401
+ name: "InsufficientInputCurrency"
1275
1402
  },
1276
- { type: "error", inputs: [], name: "Erc20NotReceived" },
1277
- { type: "error", inputs: [], name: "FailedInnerCall" },
1278
- { type: "error", inputs: [], name: "HookNotImplemented" },
1279
- { type: "error", inputs: [], name: "InvalidSwapRouterCall" },
1403
+ { type: "error", inputs: [], name: "InsufficientOutputAmount" },
1280
1404
  { type: "error", inputs: [], name: "NotFactory" },
1281
1405
  { type: "error", inputs: [], name: "OnlyPoolManager" },
1282
1406
  {
@@ -1284,11 +1408,8 @@ var buySupplyWithSwapRouterHookABI = [
1284
1408
  inputs: [{ name: "token", internalType: "address", type: "address" }],
1285
1409
  name: "SafeERC20FailedOperation"
1286
1410
  },
1287
- {
1288
- type: "error",
1289
- inputs: [{ name: "error", internalType: "bytes", type: "bytes" }],
1290
- name: "SwapReverted"
1291
- }
1411
+ { type: "error", inputs: [], name: "V3RouteCannotStartWithInputCurrency" },
1412
+ { type: "error", inputs: [], name: "V3RouteDoesNotConnectToV4RouteStart" }
1292
1413
  ];
1293
1414
  var contentCoinABI = [
1294
1415
  {
@@ -4855,7 +4976,7 @@ var zoraFactoryImplABI = [
4855
4976
  0 && (module.exports = {
4856
4977
  autoSwapperABI,
4857
4978
  baseCoinABI,
4858
- buySupplyWithSwapRouterHookABI,
4979
+ buySupplyWithV4SwapHookABI,
4859
4980
  contentCoinABI,
4860
4981
  creatorCoinABI,
4861
4982
  iPermit2ABI,