@zoralabs/coins 0.5.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 (40) hide show
  1. package/.env.example +7 -0
  2. package/.turbo/turbo-build.log +49 -37
  3. package/CHANGELOG.md +6 -0
  4. package/README.md +29 -0
  5. package/abis/CoinTest.json +28 -0
  6. package/abis/Create2.json +28 -0
  7. package/abis/DeployScript.json +9 -0
  8. package/abis/DeterministicDeployerAndCaller.json +315 -0
  9. package/abis/DeterministicUUPSProxyDeployer.json +167 -0
  10. package/abis/FactoryTest.json +20 -0
  11. package/abis/GenerateDeterministicParams.json +9 -0
  12. package/abis/IERC165.json +1 -1
  13. package/abis/IERC20.json +42 -39
  14. package/abis/IImmutableCreate2Factory.json +93 -0
  15. package/abis/ISafe.json +15 -0
  16. package/abis/ISymbol.json +15 -0
  17. package/abis/ImmutableCreate2FactoryUtils.json +15 -0
  18. package/abis/LibString.json +7 -0
  19. package/abis/ProxyShim.json +112 -0
  20. package/abis/UUPSUpgradeable.json +15 -14
  21. package/abis/ZoraFactory.json +0 -5
  22. package/addresses/8453.json +5 -8
  23. package/addresses/84532.json +5 -8
  24. package/deterministicConfig/deployerAndCaller.json +5 -0
  25. package/deterministicConfig/zoraFactory.json +8 -0
  26. package/foundry.toml +14 -0
  27. package/package.json +3 -2
  28. package/remappings.txt +2 -1
  29. package/script/CoinsDeployerBase.sol +98 -0
  30. package/script/Deploy.s.sol +14 -5
  31. package/script/GenerateDeterministicParams.s.sol +43 -0
  32. package/src/Coin.sol +1 -1
  33. package/src/proxy/ZoraFactory.sol +7 -1
  34. package/src/utils/CoinConstants.sol +2 -2
  35. package/src/version/ContractVersionBase.sol +1 -1
  36. package/test/Coin.t.sol +119 -6
  37. package/test/Factory.t.sol +34 -11
  38. package/test/utils/BaseTest.sol +4 -4
  39. package/abis/Deploy.json +0 -29
  40. 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,22 +1,32 @@
1
1
 
2
- > @zoralabs/coins@0.5.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.5.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.28
10
- installing solc version "0.8.28"
11
- Successfully installed solc 0.8.28
12
- Solc 0.8.28 finished in 102.29s
9
+ Compiling 93 files with Solc 0.8.28
10
+ Solc 0.8.28 finished in 106.36s
13
11
  Compiler run successful with warnings:
14
12
  Warning (9302): Return value of low-level calls not used.
15
- --> test/Coin.t.sol:414:9:
13
+ --> test/Coin.t.sol:527:9:
16
14
  |
17
- 414 | address(coin).call{value: 1 ether}("");
15
+ 527 | address(coin).call{value: 1 ether}("");
18
16
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
19
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
+
20
30
  - Validating plugins
21
31
  ✔ Validating plugins
22
32
  - Resolving contracts
@@ -30,36 +40,38 @@ Warning (9302): Return value of low-level calls not used.
30
40
  ✅ Updated ./package/wagmiGenerated.ts (2 replacements)
31
41
  ✨ All files processed successfully!
32
42
 
33
- > @zoralabs/coins@0.5.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
34
44
  > pnpm exec bundle-abis
35
45
 
36
46
 
37
- > @zoralabs/coins@0.5.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
38
48
  > prettier --write 'src/**/*.sol' 'test/**/*.sol' 'script/**/*.sol'
39
49
 
40
- src/Coin.sol 1814ms (unchanged)
41
- src/interfaces/ICoin.sol 80ms (unchanged)
42
- src/interfaces/ICoinComments.sol 6ms (unchanged)
43
- src/interfaces/IERC7572.sol 11ms (unchanged)
44
- src/interfaces/INonfungiblePositionManager.sol 25ms (unchanged)
45
- src/interfaces/IProtocolRewards.sol 9ms (unchanged)
46
- src/interfaces/ISwapRouter.sol 11ms (unchanged)
47
- src/interfaces/IUniswapV3Pool.sol 6ms (unchanged)
48
- src/interfaces/IUniswapV3SwapCallback.sol 5ms (unchanged)
49
- src/interfaces/IWETH.sol 6ms (unchanged)
50
- src/interfaces/IZoraFactory.sol 10ms (unchanged)
51
- src/proxy/ZoraFactory.sol 13ms (unchanged)
52
- src/utils/CoinConstants.sol 14ms (unchanged)
53
- src/utils/MultiOwnable.sol 177ms (unchanged)
54
- src/utils/TickMath.sol 406ms (unchanged)
55
- src/version/ContractVersionBase.sol 5ms (unchanged)
56
- src/ZoraFactoryImpl.sol 196ms (unchanged)
57
- test/Coin.t.sol 910ms (unchanged)
58
- test/Factory.t.sol 381ms (unchanged)
59
- test/MultiOwnable.t.sol 187ms (unchanged)
60
- test/utils/BaseTest.sol 274ms (unchanged)
61
- test/utils/ProtocolRewards.sol 1114ms (unchanged)
62
- script/Deploy.s.sol 9ms (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)
63
75
  CLI Building entry: package/index.ts
64
76
  CLI Using tsconfig: tsconfig.json
65
77
  CLI tsup v7.3.0
@@ -68,9 +80,9 @@ CLI Target: es2021
68
80
  CLI Cleaning output folder
69
81
  CJS Build start
70
82
  ESM Build start
71
- CJS dist/index.cjs 32.06 KB
72
- CJS dist/index.cjs.map 56.56 KB
73
- CJS ⚡️ Build success in 70ms
74
83
  ESM dist/index.js 31.00 KB
75
84
  ESM dist/index.js.map 56.45 KB
76
- ESM ⚡️ Build success in 76ms
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,11 @@
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
+
3
9
  ## 0.5.0
4
10
 
5
11
  ### 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.
@@ -425,6 +425,20 @@
425
425
  "outputs": [],
426
426
  "stateMutability": "nonpayable"
427
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
+ },
428
442
  {
429
443
  "type": "function",
430
444
  "name": "test_market_slippage",
@@ -516,6 +530,20 @@
516
530
  "outputs": [],
517
531
  "stateMutability": "nonpayable"
518
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
+ },
519
547
  {
520
548
  "type": "function",
521
549
  "name": "test_sell_for_eth_fuzz",
@@ -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
+ ]