@zoralabs/coins 0.4.0 → 0.5.1-sdkalpha.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.
- package/.env.example +7 -0
- package/.turbo/turbo-build.log +93 -74
- package/CHANGELOG.md +12 -0
- package/README.md +29 -0
- package/abis/Coin.json +10 -0
- package/abis/CoinTest.json +55 -0
- package/abis/Create2.json +28 -0
- package/abis/DeployScript.json +9 -0
- package/abis/DeterministicDeployerAndCaller.json +315 -0
- package/abis/DeterministicUUPSProxyDeployer.json +167 -0
- package/abis/FactoryTest.json +20 -0
- package/abis/GenerateDeterministicParams.json +9 -0
- package/abis/ICoin.json +10 -0
- package/abis/IImmutableCreate2Factory.json +93 -0
- package/abis/ISafe.json +15 -0
- package/abis/ISymbol.json +15 -0
- package/abis/ImmutableCreate2FactoryUtils.json +15 -0
- package/abis/LibString.json +7 -0
- package/abis/ProxyShim.json +112 -0
- package/abis/ZoraFactory.json +0 -5
- package/addresses/8453.json +5 -8
- package/addresses/84532.json +5 -8
- package/deterministicConfig/deployerAndCaller.json +5 -0
- package/deterministicConfig/zoraFactory.json +8 -0
- package/dist/index.cjs +100 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +96 -3
- package/dist/index.js.map +1 -1
- package/dist/wagmiGenerated.d.ts +475 -0
- package/dist/wagmiGenerated.d.ts.map +1 -1
- package/foundry.toml +14 -0
- package/integration/.env +2 -0
- package/lcov.info +634 -0
- package/package/wagmiGenerated.ts +111 -2
- package/package.json +4 -3
- package/remappings.txt +2 -1
- package/script/CoinsDeployerBase.sol +98 -0
- package/script/Deploy.s.sol +14 -5
- package/script/GenerateDeterministicParams.s.sol +43 -0
- package/src/Coin.sol +25 -7
- package/src/ZoraFactoryImpl.sol +2 -2
- package/src/interfaces/ICoin.sol +8 -2
- package/src/proxy/ZoraFactory.sol +7 -1
- package/src/version/ContractVersionBase.sol +1 -1
- package/test/Coin.t.sol +152 -4
- package/test/Factory.t.sol +33 -0
- package/test/utils/BaseTest.sol +4 -4
- package/wagmi.config.ts +7 -1
- package/abis/Deploy.json +0 -29
- package/addresses/1.json +0 -4
package/.env.example
ADDED
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,74 +1,93 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
>
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
>
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
[33m
|
|
19
|
-
|
|
20
|
-
[
|
|
21
|
-
[
|
|
22
|
-
[
|
|
23
|
-
[
|
|
24
|
-
[
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
src
|
|
53
|
-
|
|
54
|
-
src/
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
> @zoralabs/coins@0.5.0 build /Users/iain/zora/zora-protocol-private/packages/coins
|
|
4
|
+
> pnpm run wagmi:generate && pnpm run copy-abis && pnpm run prettier:write && tsup
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
> @zoralabs/coins@0.5.0 wagmi:generate /Users/iain/zora/zora-protocol-private/packages/coins
|
|
8
|
+
> FOUNDRY_PROFILE=dev forge build && wagmi generate && pnpm exec rename-generated-abi-casing ./package/wagmiGenerated.ts
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
Compiler run [33msuccessful with warnings[0m:
|
|
14
|
+
[1;33mWarning (9302)[0m[1;37m: Return value of low-level calls not used.[0m
|
|
15
|
+
[34m-->[0m test/Coin.t.sol:527:9:
|
|
16
|
+
[34m |[0m
|
|
17
|
+
[34m527 |[0m [33maddress(coin).call{value: 1 ether}("")[0m;
|
|
18
|
+
[34m |[0m [1;33m^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^[0m
|
|
19
|
+
|
|
20
|
+
[1;33mWarning (2072)[0m[1;37m: Unused local variable.[0m
|
|
21
|
+
[34m-->[0m script/DeployCoinImpl.s.sol:14:9:
|
|
22
|
+
[34m |[0m
|
|
23
|
+
[34m14 |[0m [33mDeterministicDeployerAndCaller deployer[0m = createOrGetDeployerAndCaller();
|
|
24
|
+
[34m |[0m [1;33m^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^[0m
|
|
25
|
+
|
|
26
|
+
[1;33mWarning (2072)[0m[1;37m: Unused local variable.[0m
|
|
27
|
+
[34m-->[0m test/Coin.t.sol:446:10:
|
|
28
|
+
[34m |[0m
|
|
29
|
+
[34m446 |[0m ([33maddress newCoinAddr[0m, ) = factory.deploy(
|
|
30
|
+
[34m |[0m [1;33m^^^^^^^^^^^^^^^^^^^[0m
|
|
31
|
+
|
|
32
|
+
[1;33mWarning (2072)[0m[1;37m: Unused local variable.[0m
|
|
33
|
+
[34m-->[0m test/Coin.t.sol:464:10:
|
|
34
|
+
[34m |[0m
|
|
35
|
+
[34m464 |[0m ([33maddress newCoinAddr[0m, ) = factory.deploy(
|
|
36
|
+
[34m |[0m [1;33m^^^^^^^^^^^^^^^^^^^[0m
|
|
37
|
+
|
|
38
|
+
[?25l[1G[33m⠋[39m Validating plugins[1G[2K[1G[32m✔[39m Validating plugins
|
|
39
|
+
[?25h[?25l[1G[33m⠙[39m Resolving contracts[1G[2K[1G[32m✔[39m Resolving contracts
|
|
40
|
+
[?25h[?25l[1G[33m⠹[39m Running plugins[1G[2K[1G[32m✔[39m Running plugins
|
|
41
|
+
[?25h[?25l[1G[33m⠸[39m Writing to [90mpackage/wagmiGenerated.ts[39m[?25l[1G[2K[1G[33m⠼[39m Writing to [90mpackage/wagmiGenerated.ts[39m[1G[2K[1G[32m✔[39m Writing to [90mpackage/wagmiGenerated.ts[39m
|
|
42
|
+
[?25h🔄 Processing 1 file(s) to replace 'Abi' with 'ABI'...
|
|
43
|
+
📝 Processing ./package/wagmiGenerated.ts...
|
|
44
|
+
✅ Updated ./package/wagmiGenerated.ts (2 replacements)
|
|
45
|
+
✨ All files processed successfully!
|
|
46
|
+
|
|
47
|
+
> @zoralabs/coins@0.5.0 copy-abis /Users/iain/zora/zora-protocol-private/packages/coins
|
|
48
|
+
> pnpm exec bundle-abis
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
> @zoralabs/coins@0.5.0 prettier:write /Users/iain/zora/zora-protocol-private/packages/coins
|
|
52
|
+
> prettier --write 'src/**/*.sol' 'test/**/*.sol' 'script/**/*.sol'
|
|
53
|
+
|
|
54
|
+
src/Coin.sol[2K[1G[90msrc/Coin.sol[39m 364ms (unchanged)
|
|
55
|
+
src/interfaces/ICoin.sol[2K[1G[90msrc/interfaces/ICoin.sol[39m 19ms (unchanged)
|
|
56
|
+
src/interfaces/ICoinComments.sol[2K[1G[90msrc/interfaces/ICoinComments.sol[39m 2ms (unchanged)
|
|
57
|
+
src/interfaces/IERC7572.sol[2K[1G[90msrc/interfaces/IERC7572.sol[39m 1ms (unchanged)
|
|
58
|
+
src/interfaces/INonfungiblePositionManager.sol[2K[1G[90msrc/interfaces/INonfungiblePositionManager.sol[39m 8ms (unchanged)
|
|
59
|
+
src/interfaces/IProtocolRewards.sol[2K[1G[90msrc/interfaces/IProtocolRewards.sol[39m 3ms (unchanged)
|
|
60
|
+
src/interfaces/ISwapRouter.sol[2K[1G[90msrc/interfaces/ISwapRouter.sol[39m 2ms (unchanged)
|
|
61
|
+
src/interfaces/IUniswapV3Pool.sol[2K[1G[90msrc/interfaces/IUniswapV3Pool.sol[39m 2ms (unchanged)
|
|
62
|
+
src/interfaces/IUniswapV3SwapCallback.sol[2K[1G[90msrc/interfaces/IUniswapV3SwapCallback.sol[39m 1ms (unchanged)
|
|
63
|
+
src/interfaces/IWETH.sol[2K[1G[90msrc/interfaces/IWETH.sol[39m 2ms (unchanged)
|
|
64
|
+
src/interfaces/IZoraFactory.sol[2K[1G[90msrc/interfaces/IZoraFactory.sol[39m 3ms (unchanged)
|
|
65
|
+
src/proxy/ZoraFactory.sol[2K[1G[90msrc/proxy/ZoraFactory.sol[39m 7ms (unchanged)
|
|
66
|
+
src/utils/CoinConstants.sol[2K[1G[90msrc/utils/CoinConstants.sol[39m 4ms (unchanged)
|
|
67
|
+
src/utils/MultiOwnable.sol[2K[1G[90msrc/utils/MultiOwnable.sol[39m 47ms (unchanged)
|
|
68
|
+
src/utils/TickMath.sol[2K[1G[90msrc/utils/TickMath.sol[39m 89ms (unchanged)
|
|
69
|
+
src/version/ContractVersionBase.sol[2K[1G[90msrc/version/ContractVersionBase.sol[39m 1ms (unchanged)
|
|
70
|
+
src/ZoraFactoryImpl.sol[2K[1G[90msrc/ZoraFactoryImpl.sol[39m 45ms (unchanged)
|
|
71
|
+
test/Coin.t.sol[2K[1G[90mtest/Coin.t.sol[39m 276ms (unchanged)
|
|
72
|
+
test/Factory.t.sol[2K[1G[90mtest/Factory.t.sol[39m 131ms (unchanged)
|
|
73
|
+
test/MultiOwnable.t.sol[2K[1G[90mtest/MultiOwnable.t.sol[39m 68ms (unchanged)
|
|
74
|
+
test/utils/BaseTest.sol[2K[1G[90mtest/utils/BaseTest.sol[39m 69ms (unchanged)
|
|
75
|
+
test/utils/ProtocolRewards.sol[2K[1G[90mtest/utils/ProtocolRewards.sol[39m 255ms (unchanged)
|
|
76
|
+
script/CoinsDeployerBase.sol[2K[1G[90mscript/CoinsDeployerBase.sol[39m 30ms (unchanged)
|
|
77
|
+
script/Deploy.s.sol[2K[1G[90mscript/Deploy.s.sol[39m 4ms (unchanged)
|
|
78
|
+
script/DeployCoinImpl.s.sol[2K[1G[90mscript/DeployCoinImpl.s.sol[39m 4ms (unchanged)
|
|
79
|
+
script/GenerateDeterministicParams.s.sol[2K[1G[90mscript/GenerateDeterministicParams.s.sol[39m 11ms (unchanged)
|
|
80
|
+
[34mCLI[39m Building entry: package/index.ts
|
|
81
|
+
[34mCLI[39m Using tsconfig: tsconfig.json
|
|
82
|
+
[34mCLI[39m tsup v7.3.0
|
|
83
|
+
[34mCLI[39m Using tsup config: /Users/iain/zora/zora-protocol-private/packages/coins/tsup.config.ts
|
|
84
|
+
[34mCLI[39m Target: es2021
|
|
85
|
+
[34mCLI[39m Cleaning output folder
|
|
86
|
+
[34mCJS[39m Build start
|
|
87
|
+
[34mESM[39m Build start
|
|
88
|
+
[32mCJS[39m [1mdist/index.cjs [22m[32m32.06 KB[39m
|
|
89
|
+
[32mCJS[39m [1mdist/index.cjs.map [22m[32m56.56 KB[39m
|
|
90
|
+
[32mCJS[39m ⚡️ Build success in 12ms
|
|
91
|
+
[32mESM[39m [1mdist/index.js [22m[32m31.00 KB[39m
|
|
92
|
+
[32mESM[39m [1mdist/index.js.map [22m[32m56.45 KB[39m
|
|
93
|
+
[32mESM[39m ⚡️ Build success in 12ms
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @zoralabs/coins
|
|
2
2
|
|
|
3
|
+
## 0.5.1-sdkalpha.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 29a34eaf: Introduce Coins SDK
|
|
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",
|
package/abis/CoinTest.json
CHANGED
|
@@ -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",
|
|
@@ -405,6 +418,13 @@
|
|
|
405
418
|
"outputs": [],
|
|
406
419
|
"stateMutability": "nonpayable"
|
|
407
420
|
},
|
|
421
|
+
{
|
|
422
|
+
"type": "function",
|
|
423
|
+
"name": "test_fork_buy_with_eth",
|
|
424
|
+
"inputs": [],
|
|
425
|
+
"outputs": [],
|
|
426
|
+
"stateMutability": "nonpayable"
|
|
427
|
+
},
|
|
408
428
|
{
|
|
409
429
|
"type": "function",
|
|
410
430
|
"name": "test_initialize_validation",
|
|
@@ -412,6 +432,20 @@
|
|
|
412
432
|
"outputs": [],
|
|
413
433
|
"stateMutability": "nonpayable"
|
|
414
434
|
},
|
|
435
|
+
{
|
|
436
|
+
"type": "function",
|
|
437
|
+
"name": "test_invalid_currency_tick",
|
|
438
|
+
"inputs": [],
|
|
439
|
+
"outputs": [],
|
|
440
|
+
"stateMutability": "nonpayable"
|
|
441
|
+
},
|
|
442
|
+
{
|
|
443
|
+
"type": "function",
|
|
444
|
+
"name": "test_invalid_weth_tick",
|
|
445
|
+
"inputs": [],
|
|
446
|
+
"outputs": [],
|
|
447
|
+
"stateMutability": "nonpayable"
|
|
448
|
+
},
|
|
415
449
|
{
|
|
416
450
|
"type": "function",
|
|
417
451
|
"name": "test_market_slippage",
|
|
@@ -503,6 +537,20 @@
|
|
|
503
537
|
"outputs": [],
|
|
504
538
|
"stateMutability": "nonpayable"
|
|
505
539
|
},
|
|
540
|
+
{
|
|
541
|
+
"type": "function",
|
|
542
|
+
"name": "test_sell_for_eth_direct_and_claim_secondary",
|
|
543
|
+
"inputs": [],
|
|
544
|
+
"outputs": [],
|
|
545
|
+
"stateMutability": "nonpayable"
|
|
546
|
+
},
|
|
547
|
+
{
|
|
548
|
+
"type": "function",
|
|
549
|
+
"name": "test_sell_for_eth_direct_and_claim_secondary_push_eth",
|
|
550
|
+
"inputs": [],
|
|
551
|
+
"outputs": [],
|
|
552
|
+
"stateMutability": "nonpayable"
|
|
553
|
+
},
|
|
506
554
|
{
|
|
507
555
|
"type": "function",
|
|
508
556
|
"name": "test_sell_for_eth_fuzz",
|
|
@@ -523,6 +571,13 @@
|
|
|
523
571
|
"outputs": [],
|
|
524
572
|
"stateMutability": "nonpayable"
|
|
525
573
|
},
|
|
574
|
+
{
|
|
575
|
+
"type": "function",
|
|
576
|
+
"name": "test_sell_partial_execution",
|
|
577
|
+
"inputs": [],
|
|
578
|
+
"outputs": [],
|
|
579
|
+
"stateMutability": "nonpayable"
|
|
580
|
+
},
|
|
526
581
|
{
|
|
527
582
|
"type": "function",
|
|
528
583
|
"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
|
+
]
|