diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a1e259f4..1788a646 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,10 +1,10 @@ name: test on: - push: - branches: - - master - pull_request: + push: + branches: + - master + pull_request: jobs: check: @@ -22,7 +22,7 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@v4 with: - version: 9 + version: 9 - name: Install Foundry uses: foundry-rs/foundry-toolchain@v1 @@ -42,8 +42,8 @@ jobs: - name: Configure sccache run: | - echo "RUSTC_WRAPPER=sccache" >> $GITHUB_ENV - echo "SCCACHE_GHA_ENABLED=true" >> $GITHUB_ENV + echo "RUSTC_WRAPPER=sccache" >> $GITHUB_ENV + echo "SCCACHE_GHA_ENABLED=true" >> $GITHUB_ENV - name: Run sccache-cache uses: mozilla-actions/sccache-action@v0.0.3 diff --git a/.solhint.json b/.solhint.json index 911f8b30..f8787f3b 100644 --- a/.solhint.json +++ b/.solhint.json @@ -1,10 +1,7 @@ { "extends": "solhint:recommended", "rules": { - "compiler-version": [ - "error", - ">=0.7.0" - ], + "compiler-version": ["error", ">=0.7.0"], "avoid-low-level-calls": "off", "const-name-snakecase": "warn", "var-name-mixedcase": "warn", @@ -30,4 +27,4 @@ "reentrancy": "error", "state-visibility": "warn" } -} \ No newline at end of file +} diff --git a/.vscode/extensions.json b/.vscode/extensions.json index d5fa10d5..f4f147b1 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -6,4 +6,4 @@ "nomicfoundation.hardhat-solidity", "tamasfe.even-better-toml" ] -} \ No newline at end of file +} diff --git a/.vscode/settings.json b/.vscode/settings.json index 08ae7b4d..d4e06116 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,18 +1,12 @@ { - "cSpell.words": [ - "ECIES", - "IPFS", - "keypairs" - ], + "cSpell.words": ["ECIES", "IPFS", "keypairs"], "[json]": { "editor.tabSize": 2 }, "json.schemas": [ { - "fileMatch": [ - "/script/deploy/sequences/*.json" - ], + "fileMatch": ["/script/deploy/sequences/*.json"], "url": "/script/deploy/sequence_schema.json" } ] -} \ No newline at end of file +} diff --git a/README.md b/README.md index cb44ea50..8d8bb9ae 100644 --- a/README.md +++ b/README.md @@ -110,8 +110,8 @@ When updating the version of a dependency provided through soldeer, the followin 1. Update the version of the dependency in `foundry.toml` or through `forge soldeer` 2. Re-run the [installation script](#first-run) 3. If the version number has changed: - - Change the existing entry in [remappings.txt](remappings.txt) to point to the new dependency version - - Update imports to use the new remapping + - Change the existing entry in [remappings.txt](remappings.txt) to point to the new dependency version + - Update imports to use the new remapping ### Packaging diff --git a/deployments/.arbitrum-one-v1.0.0.json b/deployments/.arbitrum-one-v1.0.0.json index f2df3d73..0e75f9d1 100644 --- a/deployments/.arbitrum-one-v1.0.0.json +++ b/deployments/.arbitrum-one-v1.0.0.json @@ -1,7 +1,7 @@ { -"deployments.BatchAuctionHouse": "0xBA00000054C5a2122cD6333054BFDdB90A287Ee3", -"deployments.BatchCatalogue": "0xE292cF4e316191CbFEbD74909356DF3cd9455e96", -"deployments.auctionModules.EncryptedMarginalPrice": "0x08B87749b379f5BCA1d74A7B3d4e9f3DeD41C706", -"deployments.auctionModules.FixedPriceBatch": "0xC11a71a304aB4c147e926342BA4CcCFd62d7368e", -"deployments.derivativeModules.BatchLinearVesting": "0x6c80F20C5C0404a3D5349F71F9B25c0654884092" + "deployments.BatchAuctionHouse": "0xBA00000054C5a2122cD6333054BFDdB90A287Ee3", + "deployments.BatchCatalogue": "0xE292cF4e316191CbFEbD74909356DF3cd9455e96", + "deployments.auctionModules.EncryptedMarginalPrice": "0x08B87749b379f5BCA1d74A7B3d4e9f3DeD41C706", + "deployments.auctionModules.FixedPriceBatch": "0xC11a71a304aB4c147e926342BA4CcCFd62d7368e", + "deployments.derivativeModules.BatchLinearVesting": "0x6c80F20C5C0404a3D5349F71F9B25c0654884092" } diff --git a/deployments/.arbitrum-sepolia-v0.1.json b/deployments/.arbitrum-sepolia-v0.1.json index d306b8fd..ed6f123c 100644 --- a/deployments/.arbitrum-sepolia-v0.1.json +++ b/deployments/.arbitrum-sepolia-v0.1.json @@ -1,10 +1,10 @@ { - "AtomicAuctionHouse": "0xAa000000c0F79193A7f3a76C9a0b8b905e901fea", - "BatchAuctionHouse": "0xBA0000004d9B5D528077C97dD0097b8DC836F173", - "AtomicCatalogue": "0x0e4996960731Fec8E7C9DBbD51383fC71174DD88", - "BatchCatalogue": "0x68a8d91d9936b5Ef8b65f516F8a5AAB6c7b1E43e", - "EncryptedMarginalPrice": "0x4a7D9A72C29C6f1e74Ce6a972c5CAD1b1B00dff9", - "FixedPriceSale": "0xE03E5bF70E04dB487bCa3A36beEFccd7b6be582F", - "AtomicLinearVesting": "0x3A327c856AF41EcF4d783975CE38f669dEeaB298", - "BatchLinearVesting": "0x3c068BF506925A8349CC14438ce91d2C43793D4e" + "AtomicAuctionHouse": "0xAa000000c0F79193A7f3a76C9a0b8b905e901fea", + "BatchAuctionHouse": "0xBA0000004d9B5D528077C97dD0097b8DC836F173", + "AtomicCatalogue": "0x0e4996960731Fec8E7C9DBbD51383fC71174DD88", + "BatchCatalogue": "0x68a8d91d9936b5Ef8b65f516F8a5AAB6c7b1E43e", + "EncryptedMarginalPrice": "0x4a7D9A72C29C6f1e74Ce6a972c5CAD1b1B00dff9", + "FixedPriceSale": "0xE03E5bF70E04dB487bCa3A36beEFccd7b6be582F", + "AtomicLinearVesting": "0x3A327c856AF41EcF4d783975CE38f669dEeaB298", + "BatchLinearVesting": "0x3c068BF506925A8349CC14438ce91d2C43793D4e" } diff --git a/deployments/.arbitrum-sepolia-v0.2.json b/deployments/.arbitrum-sepolia-v0.2.json index 3f97dbbc..02ea2763 100644 --- a/deployments/.arbitrum-sepolia-v0.2.json +++ b/deployments/.arbitrum-sepolia-v0.2.json @@ -7,4 +7,4 @@ "FixedPriceSale": "0x02c63F8aE0a8e9D0F7267AA4d0Af0567858188C2", "AtomicLinearVesting": "0x188Ad428c60eADFB0749B2E3A4836D63489304E3", "BatchLinearVesting": "0x392C629741a0c7350c7181addD5870dE178eeD94" -} \ No newline at end of file +} diff --git a/deployments/.arbitrum-sepolia-v0.3.json b/deployments/.arbitrum-sepolia-v0.3.json index b36d6d98..5efcde2f 100644 --- a/deployments/.arbitrum-sepolia-v0.3.json +++ b/deployments/.arbitrum-sepolia-v0.3.json @@ -1,17 +1,17 @@ { -"axis.AtomicAuctionHouse": "0xAA0000A0F9FF55d5F00aB9cc8d05eF78DE4f9E8f", -"axis.BatchAuctionHouse": "0xBA00003Cc5713c5339f4fD5cA0339D54A88BC87b", -"axis.AtomicCatalogue": "0xD223Ae37b01Fe549f3D5b1901e4B15053540540F", -"axis.BatchCatalogue": "0xd3dbab6EeD17f7e4ce64441E79A6e34ef40f2754", -"axis.EncryptedMarginalPrice": "0x87F2a19FBbf9e557a68bD35D85FAd20dEec40494", -"axis.FixedPriceSale": "0x0A0BA689D2D72D3f376293c534AF299B3C6Dac85", -"axis.AtomicLinearVesting": "0xA7413717C633175Bc5B669E94625a4d3FE009870", -"axis.BatchLinearVesting": "0xC818f1f000f9C24D014BCe2c5334e14B1360d9CD", -"axis.FixedPriceBatch": "0xB24D0b6ae015DC6fd279E330db101bB890d8060c", -"axis.BatchUniswapV2DirectToLiquidity": "0xE681311Ec0Aff9E6aCD03208f366eF4CD06e8215", -"axis.BatchUniswapV3DirectToLiquidity": "0xE6B7D1ba64c03A9e716358D0AfE34A087E3d26B1", -"axis.BatchCappedMerkleAllowlist": "0x98Bc9615c54fA03C7E31cD0e6599938f1a418d1b", -"axis.BatchMerkleAllowlist": "0x98Cd72f2271BC8485474E6277eAadA28c8Da4C59", -"axis.BatchTokenAllowlist": "0x98d7b3E03DEAA5039ff06D977EdE2EF2b6cD3169", -"axis.BatchAllocatedMerkleAllowlist": "0x98Dd423FD18cfbf34c78E24B8E923dadE7bcFCC0" + "axis.AtomicAuctionHouse": "0xAA0000A0F9FF55d5F00aB9cc8d05eF78DE4f9E8f", + "axis.BatchAuctionHouse": "0xBA00003Cc5713c5339f4fD5cA0339D54A88BC87b", + "axis.AtomicCatalogue": "0xD223Ae37b01Fe549f3D5b1901e4B15053540540F", + "axis.BatchCatalogue": "0xd3dbab6EeD17f7e4ce64441E79A6e34ef40f2754", + "axis.EncryptedMarginalPrice": "0x87F2a19FBbf9e557a68bD35D85FAd20dEec40494", + "axis.FixedPriceSale": "0x0A0BA689D2D72D3f376293c534AF299B3C6Dac85", + "axis.AtomicLinearVesting": "0xA7413717C633175Bc5B669E94625a4d3FE009870", + "axis.BatchLinearVesting": "0xC818f1f000f9C24D014BCe2c5334e14B1360d9CD", + "axis.FixedPriceBatch": "0xB24D0b6ae015DC6fd279E330db101bB890d8060c", + "axis.BatchUniswapV2DirectToLiquidity": "0xE681311Ec0Aff9E6aCD03208f366eF4CD06e8215", + "axis.BatchUniswapV3DirectToLiquidity": "0xE6B7D1ba64c03A9e716358D0AfE34A087E3d26B1", + "axis.BatchCappedMerkleAllowlist": "0x98Bc9615c54fA03C7E31cD0e6599938f1a418d1b", + "axis.BatchMerkleAllowlist": "0x98Cd72f2271BC8485474E6277eAadA28c8Da4C59", + "axis.BatchTokenAllowlist": "0x98d7b3E03DEAA5039ff06D977EdE2EF2b6cD3169", + "axis.BatchAllocatedMerkleAllowlist": "0x98Dd423FD18cfbf34c78E24B8E923dadE7bcFCC0" } diff --git a/deployments/.arbitrum-sepolia-v0.4.json b/deployments/.arbitrum-sepolia-v0.4.json index a545ae4e..95755df2 100644 --- a/deployments/.arbitrum-sepolia-v0.4.json +++ b/deployments/.arbitrum-sepolia-v0.4.json @@ -1,13 +1,13 @@ { -"axis.BatchAuctionHouse": "0xBA00002999aBfa63cA25B3A7aD4c8F3a578aBe28", -"axis.BatchCatalogue": "0x664268B82971D0c9A4F000a7329a057e85361E83", -"axis.EncryptedMarginalPrice": "0x2Ca8954B468E2FbfE55240B69db937861c12F0d0", -"axis.FixedPriceBatch": "0x8b47F82a58d8AFBE5167feBf0D3F3Bb509aaf2bd", -"axis.BatchLinearVesting": "0xFB1113E170CA6d95f3a91121BDD2370a822598E9", -"axis.BatchCappedMerkleAllowlist": "0x9888DbABd5981763697A4433Cb57E3F9DABEcB6a", -"axis.BatchMerkleAllowlist": "0x9837cA34C444cEbd07C699036D1D174C6392D9fa", -"axis.BatchTokenAllowlist": "0x988c61b36F7898e464a0Bf477d2dc06aC4E95F95", -"axis.BatchAllocatedMerkleAllowlist": "0x98B59b4BF62b0316D9B0f89D28A28d5D75BB8B46", -"axis.BatchUniswapV2DirectToLiquidity": "0xE676907Fa9a09dC1E3b67De11816665A1313524f", -"axis.BatchUniswapV3DirectToLiquidity": "0xE6ECF0f655E642834c79F30323e7ae941883ac00" + "axis.BatchAuctionHouse": "0xBA00002999aBfa63cA25B3A7aD4c8F3a578aBe28", + "axis.BatchCatalogue": "0x664268B82971D0c9A4F000a7329a057e85361E83", + "axis.EncryptedMarginalPrice": "0x2Ca8954B468E2FbfE55240B69db937861c12F0d0", + "axis.FixedPriceBatch": "0x8b47F82a58d8AFBE5167feBf0D3F3Bb509aaf2bd", + "axis.BatchLinearVesting": "0xFB1113E170CA6d95f3a91121BDD2370a822598E9", + "axis.BatchCappedMerkleAllowlist": "0x9888DbABd5981763697A4433Cb57E3F9DABEcB6a", + "axis.BatchMerkleAllowlist": "0x9837cA34C444cEbd07C699036D1D174C6392D9fa", + "axis.BatchTokenAllowlist": "0x988c61b36F7898e464a0Bf477d2dc06aC4E95F95", + "axis.BatchAllocatedMerkleAllowlist": "0x98B59b4BF62b0316D9B0f89D28A28d5D75BB8B46", + "axis.BatchUniswapV2DirectToLiquidity": "0xE676907Fa9a09dC1E3b67De11816665A1313524f", + "axis.BatchUniswapV3DirectToLiquidity": "0xE6ECF0f655E642834c79F30323e7ae941883ac00" } diff --git a/deployments/.arbitrum-sepolia-v0.5.json b/deployments/.arbitrum-sepolia-v0.5.json index 58f7229d..d8c215a2 100644 --- a/deployments/.arbitrum-sepolia-v0.5.json +++ b/deployments/.arbitrum-sepolia-v0.5.json @@ -1,13 +1,13 @@ { -"axis.BatchAuctionHouse": "0xBA00003622ee11Ffac8a07cf8D207b19c95F1FFf", -"axis.BatchCatalogue": "0x265aB5FABa5D855CFA46Af61936ca212CEb71146", -"axis.EncryptedMarginalPrice": "0x81661B3CC47218327cE17bAd69d9246FCC321667", -"axis.FixedPriceBatch": "0x0107DeD7dCD989470268eaeae2Aa2711Efa2597c", -"axis.BatchLinearVesting": "0x056ed71c999bDdF489d34eD767a50c608Ae16Bf9", -"axis.BatchCappedMerkleAllowlist": "0x9868c93CDec64f471b1DFf60f5e8249249dBa126", -"axis.BatchMerkleAllowlist": "0x989F7525b5e0c804e5A2707F14d34C523D56B43b", -"axis.BatchTokenAllowlist": "0x982598d92BBB2a2E54EdCd262EeF114a517fEeCE", -"axis.BatchAllocatedMerkleAllowlist": "0x98765dB6F0c4334075FB06d8D2998749b8CF604e", -"axis.BatchUniswapV2DirectToLiquidity": "0xE6c6B510E4b0e442BF01fabDc93d4bf032683C3C", -"axis.BatchUniswapV3DirectToLiquidity": "0xE6f7888cfc8219C93E70Ca528195b4afD80D7894" + "axis.BatchAuctionHouse": "0xBA00003622ee11Ffac8a07cf8D207b19c95F1FFf", + "axis.BatchCatalogue": "0x265aB5FABa5D855CFA46Af61936ca212CEb71146", + "axis.EncryptedMarginalPrice": "0x81661B3CC47218327cE17bAd69d9246FCC321667", + "axis.FixedPriceBatch": "0x0107DeD7dCD989470268eaeae2Aa2711Efa2597c", + "axis.BatchLinearVesting": "0x056ed71c999bDdF489d34eD767a50c608Ae16Bf9", + "axis.BatchCappedMerkleAllowlist": "0x9868c93CDec64f471b1DFf60f5e8249249dBa126", + "axis.BatchMerkleAllowlist": "0x989F7525b5e0c804e5A2707F14d34C523D56B43b", + "axis.BatchTokenAllowlist": "0x982598d92BBB2a2E54EdCd262EeF114a517fEeCE", + "axis.BatchAllocatedMerkleAllowlist": "0x98765dB6F0c4334075FB06d8D2998749b8CF604e", + "axis.BatchUniswapV2DirectToLiquidity": "0xE6c6B510E4b0e442BF01fabDc93d4bf032683C3C", + "axis.BatchUniswapV3DirectToLiquidity": "0xE6f7888cfc8219C93E70Ca528195b4afD80D7894" } diff --git a/deployments/.base-sepolia-v0.3.json b/deployments/.base-sepolia-v0.3.json index 713f6ab5..b8767dfd 100644 --- a/deployments/.base-sepolia-v0.3.json +++ b/deployments/.base-sepolia-v0.3.json @@ -1,13 +1,13 @@ { -"axis.BatchAuctionHouse": "0xBA000092028c37fdf4231090D9a0e42B3A983C17", -"axis.BatchCatalogue": "0xD55227c0C37C97Fa2619a9C7F658C173883C1E2a", -"axis.EncryptedMarginalPrice": "0x0599DA010907835037A0beC4525Dc5D600e790EB", -"axis.FixedPriceBatch": "0x71a2946A761FC6ecE1b16cb4517a3E3D7E30Cc92", -"axis.BatchLinearVesting": "0xc20918b09dE9708d2A7997dfFc3c5ACB34d4a15b", -"axis.BatchUniswapV2DirectToLiquidity": "0xE629a36159C7C6F827DA480DD541009031d50637", -"axis.BatchUniswapV3DirectToLiquidity": "0xE694614675d7b99d53Af80c98E02AAD46cd27183", -"axis.BatchCappedMerkleAllowlist": "0x98CcB00c5F9854517DA6ED466b3B391fEF501542", -"axis.BatchMerkleAllowlist": "0x98408652D32571BEd7e357D1402A1A8c27B879e7", -"axis.BatchTokenAllowlist": "0x980110C58Ace1FD0422E5c27c7d4e248a547Ec7D", -"axis.BatchAllocatedMerkleAllowlist": "0x98469eF36DDD7bEAF28EDbd3fE2F57bD18A4BF2c" + "axis.BatchAuctionHouse": "0xBA000092028c37fdf4231090D9a0e42B3A983C17", + "axis.BatchCatalogue": "0xD55227c0C37C97Fa2619a9C7F658C173883C1E2a", + "axis.EncryptedMarginalPrice": "0x0599DA010907835037A0beC4525Dc5D600e790EB", + "axis.FixedPriceBatch": "0x71a2946A761FC6ecE1b16cb4517a3E3D7E30Cc92", + "axis.BatchLinearVesting": "0xc20918b09dE9708d2A7997dfFc3c5ACB34d4a15b", + "axis.BatchUniswapV2DirectToLiquidity": "0xE629a36159C7C6F827DA480DD541009031d50637", + "axis.BatchUniswapV3DirectToLiquidity": "0xE694614675d7b99d53Af80c98E02AAD46cd27183", + "axis.BatchCappedMerkleAllowlist": "0x98CcB00c5F9854517DA6ED466b3B391fEF501542", + "axis.BatchMerkleAllowlist": "0x98408652D32571BEd7e357D1402A1A8c27B879e7", + "axis.BatchTokenAllowlist": "0x980110C58Ace1FD0422E5c27c7d4e248a547Ec7D", + "axis.BatchAllocatedMerkleAllowlist": "0x98469eF36DDD7bEAF28EDbd3fE2F57bD18A4BF2c" } diff --git a/deployments/.base-sepolia-v0.4.json b/deployments/.base-sepolia-v0.4.json index ba9b87c3..7bc1bf48 100644 --- a/deployments/.base-sepolia-v0.4.json +++ b/deployments/.base-sepolia-v0.4.json @@ -1,13 +1,13 @@ { -"axis.BatchAuctionHouse": "0xBA00002999aBfa63cA25B3A7aD4c8F3a578aBe28", -"axis.BatchCatalogue": "0x408fB738592232372069B592022F03BF3a241613", -"axis.EncryptedMarginalPrice": "0x02c63F8aE0a8e9D0F7267AA4d0Af0567858188C2", -"axis.FixedPriceBatch": "0x188Ad428c60eADFB0749B2E3A4836D63489304E3", -"axis.BatchLinearVesting": "0x392C629741a0c7350c7181addD5870dE178eeD94", -"axis.BatchCappedMerkleAllowlist": "0x9888DbABd5981763697A4433Cb57E3F9DABEcB6a", -"axis.BatchMerkleAllowlist": "0x9837cA34C444cEbd07C699036D1D174C6392D9fa", -"axis.BatchTokenAllowlist": "0x988c61b36F7898e464a0Bf477d2dc06aC4E95F95", -"axis.BatchAllocatedMerkleAllowlist": "0x98B59b4BF62b0316D9B0f89D28A28d5D75BB8B46", -"axis.BatchUniswapV2DirectToLiquidity": "0xE66538D4EEbf830b1Dc791894af4709Af257764d", -"axis.BatchUniswapV3DirectToLiquidity": "0xE661c46d94c53584095A8240958695bAD6d6fC2F" + "axis.BatchAuctionHouse": "0xBA00002999aBfa63cA25B3A7aD4c8F3a578aBe28", + "axis.BatchCatalogue": "0x408fB738592232372069B592022F03BF3a241613", + "axis.EncryptedMarginalPrice": "0x02c63F8aE0a8e9D0F7267AA4d0Af0567858188C2", + "axis.FixedPriceBatch": "0x188Ad428c60eADFB0749B2E3A4836D63489304E3", + "axis.BatchLinearVesting": "0x392C629741a0c7350c7181addD5870dE178eeD94", + "axis.BatchCappedMerkleAllowlist": "0x9888DbABd5981763697A4433Cb57E3F9DABEcB6a", + "axis.BatchMerkleAllowlist": "0x9837cA34C444cEbd07C699036D1D174C6392D9fa", + "axis.BatchTokenAllowlist": "0x988c61b36F7898e464a0Bf477d2dc06aC4E95F95", + "axis.BatchAllocatedMerkleAllowlist": "0x98B59b4BF62b0316D9B0f89D28A28d5D75BB8B46", + "axis.BatchUniswapV2DirectToLiquidity": "0xE66538D4EEbf830b1Dc791894af4709Af257764d", + "axis.BatchUniswapV3DirectToLiquidity": "0xE661c46d94c53584095A8240958695bAD6d6fC2F" } diff --git a/deployments/.base-sepolia-v0.5.json b/deployments/.base-sepolia-v0.5.json index a22db05c..b847b48f 100644 --- a/deployments/.base-sepolia-v0.5.json +++ b/deployments/.base-sepolia-v0.5.json @@ -1,13 +1,13 @@ { -"axis.BatchAuctionHouse": "0xBA00000D23A0793d5601d1e8E7B32aE88642cbEF", -"axis.BatchCatalogue": "0xcE56d3E3E145b44597B61E99c64cb82FB209Da04", -"axis.EncryptedMarginalPrice": "0xA7413717C633175Bc5B669E94625a4d3FE009870", -"axis.FixedPriceBatch": "0xC818f1f000f9C24D014BCe2c5334e14B1360d9CD", -"axis.BatchLinearVesting": "0x4042D4F2236D055212d485E028E8FE4939252F88", -"axis.BatchCappedMerkleAllowlist": "0x98a27160E2879334AaE4415E24C1feaa3D111392", -"axis.BatchMerkleAllowlist": "0x987e7515985887092582Cc4ea94be837a99C0b02", -"axis.BatchTokenAllowlist": "0x989a21D82D86e4934D3B8E94043F13Fb1C312F8a", -"axis.BatchAllocatedMerkleAllowlist": "0x987E2DB8E83c57Ad9aDf808e5394d77f72b49ab4", -"axis.BatchUniswapV2DirectToLiquidity": "0xE6F478d800e9807efAb601a1CD60BBd7CBA1c0b8", -"axis.BatchUniswapV3DirectToLiquidity": "0xE6BC347aA7Ce46bDb45F938605C5d4b88881bB1c" + "axis.BatchAuctionHouse": "0xBA00000D23A0793d5601d1e8E7B32aE88642cbEF", + "axis.BatchCatalogue": "0xcE56d3E3E145b44597B61E99c64cb82FB209Da04", + "axis.EncryptedMarginalPrice": "0xA7413717C633175Bc5B669E94625a4d3FE009870", + "axis.FixedPriceBatch": "0xC818f1f000f9C24D014BCe2c5334e14B1360d9CD", + "axis.BatchLinearVesting": "0x4042D4F2236D055212d485E028E8FE4939252F88", + "axis.BatchCappedMerkleAllowlist": "0x98a27160E2879334AaE4415E24C1feaa3D111392", + "axis.BatchMerkleAllowlist": "0x987e7515985887092582Cc4ea94be837a99C0b02", + "axis.BatchTokenAllowlist": "0x989a21D82D86e4934D3B8E94043F13Fb1C312F8a", + "axis.BatchAllocatedMerkleAllowlist": "0x987E2DB8E83c57Ad9aDf808e5394d77f72b49ab4", + "axis.BatchUniswapV2DirectToLiquidity": "0xE6F478d800e9807efAb601a1CD60BBd7CBA1c0b8", + "axis.BatchUniswapV3DirectToLiquidity": "0xE6BC347aA7Ce46bDb45F938605C5d4b88881bB1c" } diff --git a/deployments/.base-v1.0.0.json b/deployments/.base-v1.0.0.json index 4f9fed95..fedff4ad 100644 --- a/deployments/.base-v1.0.0.json +++ b/deployments/.base-v1.0.0.json @@ -1,7 +1,7 @@ { -"deployments.BatchAuctionHouse": "0xBA00000054C5a2122cD6333054BFDdB90A287Ee3", -"deployments.BatchCatalogue": "0x3b8cFDEde19B4AA36AB21c96973f9281276a3da2", -"deployments.auctionModules.EncryptedMarginalPrice": "0xD55227c0C37C97Fa2619a9C7F658C173883C1E2a", -"deployments.auctionModules.FixedPriceBatch": "0x101b502D216d27cb342e9686A2B34A1cD19B2F75", -"deployments.derivativeModules.BatchLinearVesting": "0x68a8d91d9936b5Ef8b65f516F8a5AAB6c7b1E43e" + "deployments.BatchAuctionHouse": "0xBA00000054C5a2122cD6333054BFDdB90A287Ee3", + "deployments.BatchCatalogue": "0x3b8cFDEde19B4AA36AB21c96973f9281276a3da2", + "deployments.auctionModules.EncryptedMarginalPrice": "0xD55227c0C37C97Fa2619a9C7F658C173883C1E2a", + "deployments.auctionModules.FixedPriceBatch": "0x101b502D216d27cb342e9686A2B34A1cD19B2F75", + "deployments.derivativeModules.BatchLinearVesting": "0x68a8d91d9936b5Ef8b65f516F8a5AAB6c7b1E43e" } diff --git a/deployments/.blast-sepolia-v0.1.json b/deployments/.blast-sepolia-v0.1.json index d0693b14..44f124fa 100644 --- a/deployments/.blast-sepolia-v0.1.json +++ b/deployments/.blast-sepolia-v0.1.json @@ -1,10 +1,10 @@ { - "AtomicAuctionHouse": "0xaa000000F812284225Ec15cDB90419C468921814", - "BatchAuctionHouse": "0xBA000000dAF253566F209323bE7E2e555eE36330", - "AtomicCatalogue": "0x4CD540B726720d9f622f9ff9E78BDf831a472D92", - "BatchCatalogue": "0x3896E3Ff997C91Dd43d8d26effC6Fdc5Ed0718B4", - "EncryptedMarginalPrice": "0xe2141BAd93C70D3448Aa69180d6B6581E2166B63", - "FixedPriceSale": "0xEFd165C54CB0FC5141DA4fb43B04f457D8a5A3e5", - "AtomicLinearVesting": "0xDE1314B9DBf7a7D1E7d50cf909BFce5891a1a9d8", - "BatchLinearVesting": "0x71960135E7170B3369daF6Eaca6121456a0F8A48" + "AtomicAuctionHouse": "0xaa000000F812284225Ec15cDB90419C468921814", + "BatchAuctionHouse": "0xBA000000dAF253566F209323bE7E2e555eE36330", + "AtomicCatalogue": "0x4CD540B726720d9f622f9ff9E78BDf831a472D92", + "BatchCatalogue": "0x3896E3Ff997C91Dd43d8d26effC6Fdc5Ed0718B4", + "EncryptedMarginalPrice": "0xe2141BAd93C70D3448Aa69180d6B6581E2166B63", + "FixedPriceSale": "0xEFd165C54CB0FC5141DA4fb43B04f457D8a5A3e5", + "AtomicLinearVesting": "0xDE1314B9DBf7a7D1E7d50cf909BFce5891a1a9d8", + "BatchLinearVesting": "0x71960135E7170B3369daF6Eaca6121456a0F8A48" } diff --git a/deployments/.blast-sepolia-v0.2.json b/deployments/.blast-sepolia-v0.2.json index a2fa2a71..e8e65e70 100644 --- a/deployments/.blast-sepolia-v0.2.json +++ b/deployments/.blast-sepolia-v0.2.json @@ -6,5 +6,5 @@ "EncryptedMarginalPrice": "0x8dA4D2f56d6f353E36220f567221aD4e1E84cB04", "FixedPriceSale": "0x296Dc8a6d40D819bFE7E4da7133961C8B007FC42", "AtomicLinearVesting": "0xfF0FE629C1a515437A9c939509769A7b6842778f", - "BatchLinearVesting": "0x58F17242Ab609c7561fe72Dc89b6A56999e227Cd" -} \ No newline at end of file + "BatchLinearVesting": "0x58F17242Ab609c7561fe72Dc89b6A56999e227Cd" +} diff --git a/deployments/.blast-sepolia-v0.3.json b/deployments/.blast-sepolia-v0.3.json index b4c299f4..5570a63a 100644 --- a/deployments/.blast-sepolia-v0.3.json +++ b/deployments/.blast-sepolia-v0.3.json @@ -1,17 +1,17 @@ { -"axis.AtomicAuctionHouse": "0xAA0000E35F2042621ff29B2f3d0F89665f896502", -"axis.BatchAuctionHouse": "0xBA00001Bd857EFd2dF10Da01DFe3a97CFa836Cc9", -"axis.AtomicCatalogue": "0x5Ec85e475B3BeDE1280907B0ac568b406fBC543A", -"axis.BatchCatalogue": "0x7F6Af3993d64cbC3A97617C98A2BCe03c1f5Ec30", -"axis.EncryptedMarginalPrice": "0x96B52Ab3e5CAc0BbF49Be5039F2f9ef5d53bD322", -"axis.FixedPriceSale": "0x3661B7704F7032103B3122C7796B5E03fAC715b5", -"axis.AtomicLinearVesting": "0x8270f3e8D874De8b974A0Bf928abDFf92171B1b2", -"axis.BatchLinearVesting": "0xFb1B55504E6f996D192f1F1B8fDfD4E987355552", -"axis.FixedPriceBatch": "0xEDa0cC0bbb45D8cd6354755856053d6Ea646E201", -"axis.BatchUniswapV2DirectToLiquidity": "0xE6093314BD7496437002B06bd0Cc3B245Adc32aE", -"axis.BatchUniswapV3DirectToLiquidity": "0xE64057e0BbDF8DFaA4cEa25E64391B22e4b55607", -"axis.BatchCappedMerkleAllowlist": "0x987727BD02CBf92B2E2d8e23B69E6FE627c2968e", -"axis.BatchMerkleAllowlist": "0x98d1E5d8961BAfBE848337c723DD3dC590923454", -"axis.BatchTokenAllowlist": "0x98062088FAE9D96C83B3efEbdE473A7C5B18C95F", -"axis.BatchAllocatedMerkleAllowlist": "0x98381a5D00a0B6c9Cdd94206F4b2B383457C312e" + "axis.AtomicAuctionHouse": "0xAA0000E35F2042621ff29B2f3d0F89665f896502", + "axis.BatchAuctionHouse": "0xBA00001Bd857EFd2dF10Da01DFe3a97CFa836Cc9", + "axis.AtomicCatalogue": "0x5Ec85e475B3BeDE1280907B0ac568b406fBC543A", + "axis.BatchCatalogue": "0x7F6Af3993d64cbC3A97617C98A2BCe03c1f5Ec30", + "axis.EncryptedMarginalPrice": "0x96B52Ab3e5CAc0BbF49Be5039F2f9ef5d53bD322", + "axis.FixedPriceSale": "0x3661B7704F7032103B3122C7796B5E03fAC715b5", + "axis.AtomicLinearVesting": "0x8270f3e8D874De8b974A0Bf928abDFf92171B1b2", + "axis.BatchLinearVesting": "0xFb1B55504E6f996D192f1F1B8fDfD4E987355552", + "axis.FixedPriceBatch": "0xEDa0cC0bbb45D8cd6354755856053d6Ea646E201", + "axis.BatchUniswapV2DirectToLiquidity": "0xE6093314BD7496437002B06bd0Cc3B245Adc32aE", + "axis.BatchUniswapV3DirectToLiquidity": "0xE64057e0BbDF8DFaA4cEa25E64391B22e4b55607", + "axis.BatchCappedMerkleAllowlist": "0x987727BD02CBf92B2E2d8e23B69E6FE627c2968e", + "axis.BatchMerkleAllowlist": "0x98d1E5d8961BAfBE848337c723DD3dC590923454", + "axis.BatchTokenAllowlist": "0x98062088FAE9D96C83B3efEbdE473A7C5B18C95F", + "axis.BatchAllocatedMerkleAllowlist": "0x98381a5D00a0B6c9Cdd94206F4b2B383457C312e" } diff --git a/deployments/.blast-sepolia-v0.4.json b/deployments/.blast-sepolia-v0.4.json index 2fb3d9c1..7309f925 100644 --- a/deployments/.blast-sepolia-v0.4.json +++ b/deployments/.blast-sepolia-v0.4.json @@ -1,13 +1,13 @@ { -"axis.BatchAuctionHouse": "0xBA00007A1868f4AEFdd39041327CbC4Ba5bF1632", -"axis.BatchCatalogue": "0xC6D5E3A1823304D28cdc6dc23b4117b6cA34C98E", -"axis.EncryptedMarginalPrice": "0x8F34bBB3edd28017f826FE7a73eb9297384BF0d8", -"axis.FixedPriceBatch": "0x87ED152099949F870725bD9517A1697d428ddF74", -"axis.BatchLinearVesting": "0xBD0474b8e7b65f3dF35d2817BA09aC864a199e31", -"axis.BatchCappedMerkleAllowlist": "0x981d6a6997B23C06f4E95862f72B7C06c039a647", -"axis.BatchMerkleAllowlist": "0x9859c6FA2594e93149bd76415cE3982f39888CCb", -"axis.BatchTokenAllowlist": "0x984B6165fC87c682441E81B4aa23A017cdbFba18", -"axis.BatchAllocatedMerkleAllowlist": "0x986455Ab4f64303E8F51e72F6BF1789182563F65", -"axis.BatchUniswapV2DirectToLiquidity": "0xE60007A0721A92f0eb538c360317d4808238700D", -"axis.BatchUniswapV3DirectToLiquidity": "0xE6b1113d108f86Fb7eF662ecF235dB6dB8978Cc3" + "axis.BatchAuctionHouse": "0xBA00007A1868f4AEFdd39041327CbC4Ba5bF1632", + "axis.BatchCatalogue": "0xC6D5E3A1823304D28cdc6dc23b4117b6cA34C98E", + "axis.EncryptedMarginalPrice": "0x8F34bBB3edd28017f826FE7a73eb9297384BF0d8", + "axis.FixedPriceBatch": "0x87ED152099949F870725bD9517A1697d428ddF74", + "axis.BatchLinearVesting": "0xBD0474b8e7b65f3dF35d2817BA09aC864a199e31", + "axis.BatchCappedMerkleAllowlist": "0x981d6a6997B23C06f4E95862f72B7C06c039a647", + "axis.BatchMerkleAllowlist": "0x9859c6FA2594e93149bd76415cE3982f39888CCb", + "axis.BatchTokenAllowlist": "0x984B6165fC87c682441E81B4aa23A017cdbFba18", + "axis.BatchAllocatedMerkleAllowlist": "0x986455Ab4f64303E8F51e72F6BF1789182563F65", + "axis.BatchUniswapV2DirectToLiquidity": "0xE60007A0721A92f0eb538c360317d4808238700D", + "axis.BatchUniswapV3DirectToLiquidity": "0xE6b1113d108f86Fb7eF662ecF235dB6dB8978Cc3" } diff --git a/deployments/.blast-sepolia-v0.5.json b/deployments/.blast-sepolia-v0.5.json index 88dfe371..f273ce0d 100644 --- a/deployments/.blast-sepolia-v0.5.json +++ b/deployments/.blast-sepolia-v0.5.json @@ -1,13 +1,13 @@ { -"axis.BatchAuctionHouse": "0xBA0000ac450437406583980336fE93AB2752999F", -"axis.BatchCatalogue": "0xCCDF364E4a5D51437FF2885C86205Cfe2d90087a", -"axis.EncryptedMarginalPrice": "0x3ae8dD1ee2752883459C4c33c2f7Aeb8a56669f0", -"axis.FixedPriceBatch": "0x9C5dF80078066a49E77537c4cc728a5e788e671F", -"axis.BatchLinearVesting": "0xAd21cD6Cea90e46436002e79B12247eCe16110B3", -"axis.BatchCappedMerkleAllowlist": "0x98e72F243db7CDfDB015865415A0AE1bFb071507", -"axis.BatchMerkleAllowlist": "0x9824De4B9A917D30a5427813E43e5DF968e19066", -"axis.BatchTokenAllowlist": "0x986e7E24A33Ef6fbDc6C3a94657fBb59d85AbE1C", -"axis.BatchAllocatedMerkleAllowlist": "0x9895D556E8d1be6C909EC88D43Dd0F6Ae6f7f4D7", -"axis.BatchUniswapV2DirectToLiquidity": "0xE6F7049c79AA674D1E7b709C3Dc42C614359956A", -"axis.BatchUniswapV3DirectToLiquidity": "0xE6EDA80884CF4D44841fF33a3162A68EebBa2b7b" + "axis.BatchAuctionHouse": "0xBA0000ac450437406583980336fE93AB2752999F", + "axis.BatchCatalogue": "0xCCDF364E4a5D51437FF2885C86205Cfe2d90087a", + "axis.EncryptedMarginalPrice": "0x3ae8dD1ee2752883459C4c33c2f7Aeb8a56669f0", + "axis.FixedPriceBatch": "0x9C5dF80078066a49E77537c4cc728a5e788e671F", + "axis.BatchLinearVesting": "0xAd21cD6Cea90e46436002e79B12247eCe16110B3", + "axis.BatchCappedMerkleAllowlist": "0x98e72F243db7CDfDB015865415A0AE1bFb071507", + "axis.BatchMerkleAllowlist": "0x9824De4B9A917D30a5427813E43e5DF968e19066", + "axis.BatchTokenAllowlist": "0x986e7E24A33Ef6fbDc6C3a94657fBb59d85AbE1C", + "axis.BatchAllocatedMerkleAllowlist": "0x9895D556E8d1be6C909EC88D43Dd0F6Ae6f7f4D7", + "axis.BatchUniswapV2DirectToLiquidity": "0xE6F7049c79AA674D1E7b709C3Dc42C614359956A", + "axis.BatchUniswapV3DirectToLiquidity": "0xE6EDA80884CF4D44841fF33a3162A68EebBa2b7b" } diff --git a/deployments/.blast-v1.0.0.json b/deployments/.blast-v1.0.0.json index 8255abe3..ccd8b6f8 100644 --- a/deployments/.blast-v1.0.0.json +++ b/deployments/.blast-v1.0.0.json @@ -1,7 +1,7 @@ { -"deployments.BatchAuctionHouse": "0xBA00000008b2B9CC31b98ed27628F714D12D9c7F", -"deployments.BatchCatalogue": "0x30c356DFBAc808BC62c860A9B285f024b40dF1fc", -"deployments.auctionModules.EncryptedMarginalPrice": "0x053219a03D5Bb08B8EeC2BB9743F723b312A1cE3", -"deployments.auctionModules.FixedPriceBatch": "0xe6c04Ce6ca70eeE60bEc40E2e6e62958D91E02CC", -"deployments.derivativeModules.BatchLinearVesting": "0xE292cF4e316191CbFEbD74909356DF3cd9455e96" + "deployments.BatchAuctionHouse": "0xBA00000008b2B9CC31b98ed27628F714D12D9c7F", + "deployments.BatchCatalogue": "0x30c356DFBAc808BC62c860A9B285f024b40dF1fc", + "deployments.auctionModules.EncryptedMarginalPrice": "0x053219a03D5Bb08B8EeC2BB9743F723b312A1cE3", + "deployments.auctionModules.FixedPriceBatch": "0xe6c04Ce6ca70eeE60bEc40E2e6e62958D91E02CC", + "deployments.derivativeModules.BatchLinearVesting": "0xE292cF4e316191CbFEbD74909356DF3cd9455e96" } diff --git a/deployments/.mantle-sepolia-v0.4.json b/deployments/.mantle-sepolia-v0.4.json index bd576ba9..63daa888 100644 --- a/deployments/.mantle-sepolia-v0.4.json +++ b/deployments/.mantle-sepolia-v0.4.json @@ -1,13 +1,13 @@ { -"axis.BatchAuctionHouse": "0xBA00002999aBfa63cA25B3A7aD4c8F3a578aBe28", -"axis.BatchCatalogue": "0xb5a822eaA5803Ac5b8Ed2DC4De3D5916b3F46605", -"axis.EncryptedMarginalPrice": "0x30c356DFBAc808BC62c860A9B285f024b40dF1fc", -"axis.FixedPriceBatch": "0x13B299062c5E613C304145D78dA733bF9711DfC9", -"axis.BatchLinearVesting": "0xA9AEAe1d42bbfa591F4a06945a895d75011bE6e8", -"axis.BatchCappedMerkleAllowlist": "0x98A9b42b2eCF9B1A6de9d2D2fA6929a93A094957", -"axis.BatchMerkleAllowlist": "0x982b5C065CE01507aBfEda487FC19275aaF95EB1", -"axis.BatchTokenAllowlist": "0x98E0306bAf959791211f7324A99B5094548aba72", -"axis.BatchAllocatedMerkleAllowlist": "0x98fEC87d19AF5e7bda897a644c9A06C0044F2c21", -"axis.BatchUniswapV2DirectToLiquidity": "0xE6F33CdB98B3D249002F2FCd12805Fccf7d78351", -"axis.BatchUniswapV3DirectToLiquidity": "0xE6755a98C6a89331bee40EBbCA35750Daac55aC5" + "axis.BatchAuctionHouse": "0xBA00002999aBfa63cA25B3A7aD4c8F3a578aBe28", + "axis.BatchCatalogue": "0xb5a822eaA5803Ac5b8Ed2DC4De3D5916b3F46605", + "axis.EncryptedMarginalPrice": "0x30c356DFBAc808BC62c860A9B285f024b40dF1fc", + "axis.FixedPriceBatch": "0x13B299062c5E613C304145D78dA733bF9711DfC9", + "axis.BatchLinearVesting": "0xA9AEAe1d42bbfa591F4a06945a895d75011bE6e8", + "axis.BatchCappedMerkleAllowlist": "0x98A9b42b2eCF9B1A6de9d2D2fA6929a93A094957", + "axis.BatchMerkleAllowlist": "0x982b5C065CE01507aBfEda487FC19275aaF95EB1", + "axis.BatchTokenAllowlist": "0x98E0306bAf959791211f7324A99B5094548aba72", + "axis.BatchAllocatedMerkleAllowlist": "0x98fEC87d19AF5e7bda897a644c9A06C0044F2c21", + "axis.BatchUniswapV2DirectToLiquidity": "0xE6F33CdB98B3D249002F2FCd12805Fccf7d78351", + "axis.BatchUniswapV3DirectToLiquidity": "0xE6755a98C6a89331bee40EBbCA35750Daac55aC5" } diff --git a/deployments/.mantle-sepolia-v0.5.json b/deployments/.mantle-sepolia-v0.5.json index 055897d0..f22ccf33 100644 --- a/deployments/.mantle-sepolia-v0.5.json +++ b/deployments/.mantle-sepolia-v0.5.json @@ -1,13 +1,13 @@ { -"axis.BatchAuctionHouse": "0xBA00000D23A0793d5601d1e8E7B32aE88642cbEF", -"axis.BatchCatalogue": "0x6c80F20C5C0404a3D5349F71F9B25c0654884092", -"axis.EncryptedMarginalPrice": "0xaC9957282BeA578f371078ddc4cD12A135B105d6", -"axis.FixedPriceBatch": "0x8b7e483d96004ca7893EfB14E049f7648b62322b", -"axis.BatchLinearVesting": "0x16D5Aab9d35f8B3ac7BD086eEDcCe5343682D5F0", -"axis.BatchCappedMerkleAllowlist": "0x98a27160E2879334AaE4415E24C1feaa3D111392", -"axis.BatchMerkleAllowlist": "0x987e7515985887092582Cc4ea94be837a99C0b02", -"axis.BatchTokenAllowlist": "0x989a21D82D86e4934D3B8E94043F13Fb1C312F8a", -"axis.BatchAllocatedMerkleAllowlist": "0x987E2DB8E83c57Ad9aDf808e5394d77f72b49ab4", -"axis.BatchUniswapV2DirectToLiquidity": "0xE6feE7a689Ff7493032Ba48B15fE841c6cC30DB9", -"axis.BatchUniswapV3DirectToLiquidity": "0xE6c1ab82a2b4a194C87e643668bb715619766F0B" + "axis.BatchAuctionHouse": "0xBA00000D23A0793d5601d1e8E7B32aE88642cbEF", + "axis.BatchCatalogue": "0x6c80F20C5C0404a3D5349F71F9B25c0654884092", + "axis.EncryptedMarginalPrice": "0xaC9957282BeA578f371078ddc4cD12A135B105d6", + "axis.FixedPriceBatch": "0x8b7e483d96004ca7893EfB14E049f7648b62322b", + "axis.BatchLinearVesting": "0x16D5Aab9d35f8B3ac7BD086eEDcCe5343682D5F0", + "axis.BatchCappedMerkleAllowlist": "0x98a27160E2879334AaE4415E24C1feaa3D111392", + "axis.BatchMerkleAllowlist": "0x987e7515985887092582Cc4ea94be837a99C0b02", + "axis.BatchTokenAllowlist": "0x989a21D82D86e4934D3B8E94043F13Fb1C312F8a", + "axis.BatchAllocatedMerkleAllowlist": "0x987E2DB8E83c57Ad9aDf808e5394d77f72b49ab4", + "axis.BatchUniswapV2DirectToLiquidity": "0xE6feE7a689Ff7493032Ba48B15fE841c6cC30DB9", + "axis.BatchUniswapV3DirectToLiquidity": "0xE6c1ab82a2b4a194C87e643668bb715619766F0B" } diff --git a/deployments/.mantle-v1.0.0.json b/deployments/.mantle-v1.0.0.json index 2a62385b..582ebe01 100644 --- a/deployments/.mantle-v1.0.0.json +++ b/deployments/.mantle-v1.0.0.json @@ -1,7 +1,7 @@ { -"deployments.BatchAuctionHouse": "0xBA00000054C5a2122cD6333054BFDdB90A287Ee3", -"deployments.BatchCatalogue": "0x30c356DFBAc808BC62c860A9B285f024b40dF1fc", -"deployments.auctionModules.EncryptedMarginalPrice": "0x053219a03D5Bb08B8EeC2BB9743F723b312A1cE3", -"deployments.auctionModules.FixedPriceBatch": "0xe6c04Ce6ca70eeE60bEc40E2e6e62958D91E02CC", -"deployments.derivativeModules.BatchLinearVesting": "0xE292cF4e316191CbFEbD74909356DF3cd9455e96" + "deployments.BatchAuctionHouse": "0xBA00000054C5a2122cD6333054BFDdB90A287Ee3", + "deployments.BatchCatalogue": "0x30c356DFBAc808BC62c860A9B285f024b40dF1fc", + "deployments.auctionModules.EncryptedMarginalPrice": "0x053219a03D5Bb08B8EeC2BB9743F723b312A1cE3", + "deployments.auctionModules.FixedPriceBatch": "0xe6c04Ce6ca70eeE60bEc40E2e6e62958D91E02CC", + "deployments.derivativeModules.BatchLinearVesting": "0xE292cF4e316191CbFEbD74909356DF3cd9455e96" } diff --git a/deployments/.mode-sepolia-v0.1.json b/deployments/.mode-sepolia-v0.1.json index 15489497..2e33bab3 100644 --- a/deployments/.mode-sepolia-v0.1.json +++ b/deployments/.mode-sepolia-v0.1.json @@ -1,10 +1,10 @@ { -"AtomicAuctionHouse": "0xAa000000c0F79193A7f3a76C9a0b8b905e901fea", -"BatchAuctionHouse": "0xBA0000004d9B5D528077C97dD0097b8DC836F173", -"AtomicCatalogue": "0x2C7aE1A3989f17a6d9935382bDe7F1b021055083", -"BatchCatalogue": "0x873966578C8ECcD61fc68F1Be3681146f86587e4", -"EncryptedMarginalPrice": "0x16006e7C3015dC53CD102A9a5eCcfB9749779D91", -"FixedPriceSale": "0x8Db46375e73545226E99b5e8cBfe2794ac835D38", -"AtomicLinearVesting": "0xA06A0A5D22E31D8d19c49FFd65c8FC37477077e2", -"BatchLinearVesting": "0xD55227c0C37C97Fa2619a9C7F658C173883C1E2a" + "AtomicAuctionHouse": "0xAa000000c0F79193A7f3a76C9a0b8b905e901fea", + "BatchAuctionHouse": "0xBA0000004d9B5D528077C97dD0097b8DC836F173", + "AtomicCatalogue": "0x2C7aE1A3989f17a6d9935382bDe7F1b021055083", + "BatchCatalogue": "0x873966578C8ECcD61fc68F1Be3681146f86587e4", + "EncryptedMarginalPrice": "0x16006e7C3015dC53CD102A9a5eCcfB9749779D91", + "FixedPriceSale": "0x8Db46375e73545226E99b5e8cBfe2794ac835D38", + "AtomicLinearVesting": "0xA06A0A5D22E31D8d19c49FFd65c8FC37477077e2", + "BatchLinearVesting": "0xD55227c0C37C97Fa2619a9C7F658C173883C1E2a" } diff --git a/deployments/.mode-sepolia-v0.2.json b/deployments/.mode-sepolia-v0.2.json index b8b43220..5dfa1700 100644 --- a/deployments/.mode-sepolia-v0.2.json +++ b/deployments/.mode-sepolia-v0.2.json @@ -7,4 +7,4 @@ "FixedPriceSale": "0x4a7D9A72C29C6f1e74Ce6a972c5CAD1b1B00dff9", "AtomicLinearVesting": "0xE03E5bF70E04dB487bCa3A36beEFccd7b6be582F", "BatchLinearVesting": "0x3A327c856AF41EcF4d783975CE38f669dEeaB298" -} \ No newline at end of file +} diff --git a/deployments/.mode-sepolia-v0.3.json b/deployments/.mode-sepolia-v0.3.json index 63cacd85..3c7fd8df 100644 --- a/deployments/.mode-sepolia-v0.3.json +++ b/deployments/.mode-sepolia-v0.3.json @@ -1,17 +1,17 @@ { -"axis.AtomicAuctionHouse": "0xAA0000A0F9FF55d5F00aB9cc8d05eF78DE4f9E8f", -"axis.BatchAuctionHouse": "0xBA00003Cc5713c5339f4fD5cA0339D54A88BC87b", -"axis.AtomicCatalogue": "0x04974BcFC715c148818724d9Caab3Fe8d0391b8b", -"axis.BatchCatalogue": "0x32273229B482F39f5F8fBfA71569eA743740217c", -"axis.EncryptedMarginalPrice": "0x4e519eEf63b9e127cFCeCA31C8E5485CdA65D355", -"axis.FixedPriceSale": "0xacD10C2B4aA625dd00cba40E4466c8Ff07288a16", -"axis.AtomicLinearVesting": "0x408fB738592232372069B592022F03BF3a241613", -"axis.BatchLinearVesting": "0x6CC5b76C2c98cB347F07C07a74a88134265312FF", -"axis.FixedPriceBatch": "0xC818f1f000f9C24D014BCe2c5334e14B1360d9CD", -"axis.BatchUniswapV2DirectToLiquidity": "0xE688Ee9d0527B4D4e9440619a99F0dADF68B4b26", -"axis.BatchUniswapV3DirectToLiquidity": "0xE68806DB45E015E9476339a3e54c8F2B4D4F7ecA", -"axis.BatchCappedMerkleAllowlist": "0x98565d59C0E85cB2922822B941342b24e0B36710", -"axis.BatchMerkleAllowlist": "0x98281879DF6b77eBfc3c7B584325cFE3cf3a499D", -"axis.BatchTokenAllowlist": "0x98Db66f6F636D6e863229c32662AFF11bE8Ab53F", -"axis.BatchAllocatedMerkleAllowlist": "0x98aAA09Fba83eD888Fa57eBb42c2e54fA6BF3611" + "axis.AtomicAuctionHouse": "0xAA0000A0F9FF55d5F00aB9cc8d05eF78DE4f9E8f", + "axis.BatchAuctionHouse": "0xBA00003Cc5713c5339f4fD5cA0339D54A88BC87b", + "axis.AtomicCatalogue": "0x04974BcFC715c148818724d9Caab3Fe8d0391b8b", + "axis.BatchCatalogue": "0x32273229B482F39f5F8fBfA71569eA743740217c", + "axis.EncryptedMarginalPrice": "0x4e519eEf63b9e127cFCeCA31C8E5485CdA65D355", + "axis.FixedPriceSale": "0xacD10C2B4aA625dd00cba40E4466c8Ff07288a16", + "axis.AtomicLinearVesting": "0x408fB738592232372069B592022F03BF3a241613", + "axis.BatchLinearVesting": "0x6CC5b76C2c98cB347F07C07a74a88134265312FF", + "axis.FixedPriceBatch": "0xC818f1f000f9C24D014BCe2c5334e14B1360d9CD", + "axis.BatchUniswapV2DirectToLiquidity": "0xE688Ee9d0527B4D4e9440619a99F0dADF68B4b26", + "axis.BatchUniswapV3DirectToLiquidity": "0xE68806DB45E015E9476339a3e54c8F2B4D4F7ecA", + "axis.BatchCappedMerkleAllowlist": "0x98565d59C0E85cB2922822B941342b24e0B36710", + "axis.BatchMerkleAllowlist": "0x98281879DF6b77eBfc3c7B584325cFE3cf3a499D", + "axis.BatchTokenAllowlist": "0x98Db66f6F636D6e863229c32662AFF11bE8Ab53F", + "axis.BatchAllocatedMerkleAllowlist": "0x98aAA09Fba83eD888Fa57eBb42c2e54fA6BF3611" } diff --git a/deployments/.mode-sepolia-v0.4.json b/deployments/.mode-sepolia-v0.4.json index a215c1f2..73fe335b 100644 --- a/deployments/.mode-sepolia-v0.4.json +++ b/deployments/.mode-sepolia-v0.4.json @@ -1,13 +1,13 @@ { -"axis.BatchAuctionHouse": "0xBA00002999aBfa63cA25B3A7aD4c8F3a578aBe28", -"axis.BatchCatalogue": "0x40Efc944A9bDe7Aea4853b435D5517433D02FfF8", -"axis.EncryptedMarginalPrice": "0x1A6Ba70B8e5957bCd03C20f9CF42D9e6D3d9b514", -"axis.FixedPriceBatch": "0x75DA61536510BA0bCa0C9Af21311A1Fc035DCf4e", -"axis.BatchLinearVesting": "0x90608F57161aC771b28fb0adCd2434cfa1463201", -"axis.BatchCappedMerkleAllowlist": "0x9888DbABd5981763697A4433Cb57E3F9DABEcB6a", -"axis.BatchMerkleAllowlist": "0x9837cA34C444cEbd07C699036D1D174C6392D9fa", -"axis.BatchTokenAllowlist": "0x988c61b36F7898e464a0Bf477d2dc06aC4E95F95", -"axis.BatchAllocatedMerkleAllowlist": "0x98B59b4BF62b0316D9B0f89D28A28d5D75BB8B46", -"axis.BatchUniswapV2DirectToLiquidity": "0xE60FD6203AF5D5d43433952a033Cb70Ba21784E9", -"axis.BatchUniswapV3DirectToLiquidity": "0xE6ce65C413a5Fc10Fa77B26032B33DCD68F8474a" + "axis.BatchAuctionHouse": "0xBA00002999aBfa63cA25B3A7aD4c8F3a578aBe28", + "axis.BatchCatalogue": "0x40Efc944A9bDe7Aea4853b435D5517433D02FfF8", + "axis.EncryptedMarginalPrice": "0x1A6Ba70B8e5957bCd03C20f9CF42D9e6D3d9b514", + "axis.FixedPriceBatch": "0x75DA61536510BA0bCa0C9Af21311A1Fc035DCf4e", + "axis.BatchLinearVesting": "0x90608F57161aC771b28fb0adCd2434cfa1463201", + "axis.BatchCappedMerkleAllowlist": "0x9888DbABd5981763697A4433Cb57E3F9DABEcB6a", + "axis.BatchMerkleAllowlist": "0x9837cA34C444cEbd07C699036D1D174C6392D9fa", + "axis.BatchTokenAllowlist": "0x988c61b36F7898e464a0Bf477d2dc06aC4E95F95", + "axis.BatchAllocatedMerkleAllowlist": "0x98B59b4BF62b0316D9B0f89D28A28d5D75BB8B46", + "axis.BatchUniswapV2DirectToLiquidity": "0xE60FD6203AF5D5d43433952a033Cb70Ba21784E9", + "axis.BatchUniswapV3DirectToLiquidity": "0xE6ce65C413a5Fc10Fa77B26032B33DCD68F8474a" } diff --git a/deployments/.mode-sepolia-v0.5.json b/deployments/.mode-sepolia-v0.5.json index efff7cc8..75727db8 100644 --- a/deployments/.mode-sepolia-v0.5.json +++ b/deployments/.mode-sepolia-v0.5.json @@ -1,13 +1,13 @@ { -"axis.BatchAuctionHouse": "0xBA00000D23A0793d5601d1e8E7B32aE88642cbEF", -"axis.BatchCatalogue": "0x3fF930D77CD37eB7d4960F5D10ec415978f90aeA", -"axis.EncryptedMarginalPrice": "0x8b47F82a58d8AFBE5167feBf0D3F3Bb509aaf2bd", -"axis.FixedPriceBatch": "0xFB1113E170CA6d95f3a91121BDD2370a822598E9", -"axis.BatchLinearVesting": "0xF170C78a493d9245d125e05bBEc35c98735f5277", -"axis.BatchCappedMerkleAllowlist": "0x98a27160E2879334AaE4415E24C1feaa3D111392", -"axis.BatchMerkleAllowlist": "0x987e7515985887092582Cc4ea94be837a99C0b02", -"axis.BatchTokenAllowlist": "0x989a21D82D86e4934D3B8E94043F13Fb1C312F8a", -"axis.BatchAllocatedMerkleAllowlist": "0x987E2DB8E83c57Ad9aDf808e5394d77f72b49ab4", -"axis.BatchUniswapV2DirectToLiquidity": "0xE6F478d800e9807efAb601a1CD60BBd7CBA1c0b8", -"axis.BatchUniswapV3DirectToLiquidity": "0xE6BB80a6B8628F150E340BdE2e0C49fA17E1e566" + "axis.BatchAuctionHouse": "0xBA00000D23A0793d5601d1e8E7B32aE88642cbEF", + "axis.BatchCatalogue": "0x3fF930D77CD37eB7d4960F5D10ec415978f90aeA", + "axis.EncryptedMarginalPrice": "0x8b47F82a58d8AFBE5167feBf0D3F3Bb509aaf2bd", + "axis.FixedPriceBatch": "0xFB1113E170CA6d95f3a91121BDD2370a822598E9", + "axis.BatchLinearVesting": "0xF170C78a493d9245d125e05bBEc35c98735f5277", + "axis.BatchCappedMerkleAllowlist": "0x98a27160E2879334AaE4415E24C1feaa3D111392", + "axis.BatchMerkleAllowlist": "0x987e7515985887092582Cc4ea94be837a99C0b02", + "axis.BatchTokenAllowlist": "0x989a21D82D86e4934D3B8E94043F13Fb1C312F8a", + "axis.BatchAllocatedMerkleAllowlist": "0x987E2DB8E83c57Ad9aDf808e5394d77f72b49ab4", + "axis.BatchUniswapV2DirectToLiquidity": "0xE6F478d800e9807efAb601a1CD60BBd7CBA1c0b8", + "axis.BatchUniswapV3DirectToLiquidity": "0xE6BB80a6B8628F150E340BdE2e0C49fA17E1e566" } diff --git a/design/EMPA.md b/design/EMPA.md index 6b0c0de4..1e39661b 100644 --- a/design/EMPA.md +++ b/design/EMPA.md @@ -51,7 +51,7 @@ Axis enables arbitrary auction and derivative combinations in a single settlemen #### Permit2 Approvals - Gasless for buyers after initial approval -[Permit2](https://github.com/Uniswap/permit2): Signature-based approvals for any ERC20 token + [Permit2](https://github.com/Uniswap/permit2): Signature-based approvals for any ERC20 token - [Integration Guide](https://blog.uniswap.org/permit2-integration-guide) ### Encryption Key Management @@ -563,11 +563,12 @@ Note: We assume that bid IDs are indexed from 1 such that all bid IDs are non-ze 1. Sort bids by price (high to low), then by order submitted (low to high). In EMP Auctions, bids are pre-sorted during decryption. 2. Iterate through the bids to find the ones that settle the auction to find: marginal price, marginal bid ID, partial fill ID, totalAmountIn, totalAmountOut - - If current bid price < minimum price, we have seen all valid bids and weren't able to settle at last price. Check if the auction can be filled at the minimum price. If so, calculate the intermediate marginal price that fills the capacity (>= minimumPrice). If not, the minimum price is the marginal price. Set marginal bid ID to zero since no bids were submitted at the marginal price. Exit loop. Otherwise, continue. - - Before considering the current bid, check if we can fill total capacity from previously considered bids at current bid price. If so, calculate the intermediate marginal price that fills the auction (>= currentPrice) and set marginalBidId to zero, which means no bids at the current price are included. Exit loop. Otherwise, continue. - - Current bid is now considered. Increment totalAmountIn with current bid amount. Calculate totalAmountOut from totalAmountIn at currentPrice. If totalAmountOut is enough to fill capacity, then the marginal price is the current bid price. If totalAmountOut is strictly greater than capacity, then current bid is a partial fill. Set the marginal bid ID to the current bid ID. Exit loop. Otherwise, continue. - - If this is the last bid in the queue, we have seen all valid bids and weren't able to settle at current price. Check if the auction can be filled at the minimum price. If so, calculate the intermediate marginal price that fills the capacity (>= minimumPrice). If not, the minimum price is the marginal price. Set marginal bid ID to zero since no bids were submitted at the marginal price. + + - If current bid price < minimum price, we have seen all valid bids and weren't able to settle at last price. Check if the auction can be filled at the minimum price. If so, calculate the intermediate marginal price that fills the capacity (>= minimumPrice). If not, the minimum price is the marginal price. Set marginal bid ID to zero since no bids were submitted at the marginal price. Exit loop. Otherwise, continue. + - Before considering the current bid, check if we can fill total capacity from previously considered bids at current bid price. If so, calculate the intermediate marginal price that fills the auction (>= currentPrice) and set marginalBidId to zero, which means no bids at the current price are included. Exit loop. Otherwise, continue. + - Current bid is now considered. Increment totalAmountIn with current bid amount. Calculate totalAmountOut from totalAmountIn at currentPrice. If totalAmountOut is enough to fill capacity, then the marginal price is the current bid price. If totalAmountOut is strictly greater than capacity, then current bid is a partial fill. Set the marginal bid ID to the current bid ID. Exit loop. Otherwise, continue. + - If this is the last bid in the queue, we have seen all valid bids and weren't able to settle at current price. Check if the auction can be filled at the minimum price. If so, calculate the intermediate marginal price that fills the capacity (>= minimumPrice). If not, the minimum price is the marginal price. Set marginal bid ID to zero since no bids were submitted at the marginal price. 3. Determine if Auction can be Settled: - - If marginalPrice >= minimumPrice and totalAmountOut >= minimumFilled, then we can settle the auction. Save marginal price and marginal bid ID in storage. If partial bid ID is not zero, claim it now so we don't have to deal with it later. Send proceeds and refund (if any) to seller. - - Otherwise, the auction cannot be settled. Save marginal price to a value greater than the highest bid price in storage so that all bids are refunded. Send refund to seller. + - If marginalPrice >= minimumPrice and totalAmountOut >= minimumFilled, then we can settle the auction. Save marginal price and marginal bid ID in storage. If partial bid ID is not zero, claim it now so we don't have to deal with it later. Send proceeds and refund (if any) to seller. + - Otherwise, the auction cannot be settled. Save marginal price to a value greater than the highest bid price in storage so that all bids are refunded. Send refund to seller. diff --git a/design/FEATURES.md b/design/FEATURES.md index 7edf0f99..4c9ce088 100644 --- a/design/FEATURES.md +++ b/design/FEATURES.md @@ -96,22 +96,18 @@ sealed-bid batch auctions could be done on-chain, but are difficult Atomic - Definition - - From the whitepaper: - > Atomic Auctions are then auctions where a bid is submitted, instantly accepted or rejected, and settled within a single transaction + - From the whitepaper: > Atomic Auctions are then auctions where a bid is submitted, instantly accepted or rejected, and settled within a single transaction - Atomic auctions are settled at the time of purchase - Settled immediately: offered tokens are transferred at time of purchase - Examples include: - - Sequential Dutch - > The main feature of an SDA includes splitting a large number of tokens into multiple discrete Dutch Auctions that are performed over time. This sequence of auctions uses a dynamic exchange rate for two arbitrary ERC20 tokens without the use of oracles. - - Gradual Dutch / Australian Auctions - > while SDAs split capacity into multiple discrete auctions, GDAs split capacity into infinitely many auctions + - Sequential Dutch > The main feature of an SDA includes splitting a large number of tokens into multiple discrete Dutch Auctions that are performed over time. This sequence of auctions uses a dynamic exchange rate for two arbitrary ERC20 tokens without the use of oracles. + - Gradual Dutch / Australian Auctions > while SDAs split capacity into multiple discrete auctions, GDAs split capacity into infinitely many auctions - The cumulative purchase price is increasing exponentially Batch - Definition - - From the whitepaper: - > Batch Auctions refer to the more familiar auction format of collecting bids from participants over a set duration and then settling the auction at the end based on the best received bids. “Batch” refers to the notion that proceeds are received and auction units distributed in a batch, rather than individually. + - From the whitepaper: > Batch Auctions refer to the more familiar auction format of collecting bids from participants over a set duration and then settling the auction at the end based on the best received bids. “Batch” refers to the notion that proceeds are received and auction units distributed in a batch, rather than individually. - Two major types: - Open - Bids are recorded on-chain @@ -123,10 +119,8 @@ Batch - This avoids having to provide functionality for bidders to claim a refund of their quote tokens - Payout tokens are transferred at the time of settlement - Examples include: - - Marginal Price Auction - > A marginal price auction, also called a uniform price auction, is a multiunit auction format where bidders place bids that include two variables: price and quantity of items to purchase. The auction is settled by awarding the items to the highest bids until capacity is expended. All winners pay the lowest accepted bid price. The price of this lowest accepted bid is also called the clearing price of the auction. - - Vickrey-Clarkes Groves - > VCG auctions are a form of second-price auction (sometimes called Vickrey auctions) extended to the multiunit domain. They require a sealed bidding process to incentivize participants to bid their best price. + - Marginal Price Auction > A marginal price auction, also called a uniform price auction, is a multiunit auction format where bidders place bids that include two variables: price and quantity of items to purchase. The auction is settled by awarding the items to the highest bids until capacity is expended. All winners pay the lowest accepted bid price. The price of this lowest accepted bid is also called the clearing price of the auction. + - Vickrey-Clarkes Groves > VCG auctions are a form of second-price auction (sometimes called Vickrey auctions) extended to the multiunit domain. They require a sealed bidding process to incentivize participants to bid their best price. ### Auction Configuration @@ -182,8 +176,7 @@ Derivative - At a certain expiration date, the full amount is vested - Different users can have different cliff dates (hence it requires ERC6909) - Linear vesting - - Rage vesting - > Rage Vesting introduces the concept of Rage Quitting, where users can unlock their proportional share of tokens vested at a point in time but forfeit the remaining balance. + - Rage vesting > Rage Vesting introduces the concept of Rage Quitting, where users can unlock their proportional share of tokens vested at a point in time but forfeit the remaining balance. - Staked vesting - Dynamic - Could implement an arbitrary vesting algorithm @@ -265,9 +258,9 @@ Fees can be taken by the protocol at the following points: - Only handle at the auction-level (e.g. `AuctionHouse`) what needs to be done there - This means that at least initially, there won't be pass-through functions to auction and derivative modules - The reasoning for this is that different auction and derivative types may have different functions and arguments, - and catering for those in the `AuctionHouse` core contract will increase complexity + and catering for those in the `AuctionHouse` core contract will increase complexity - For example, it makes the most sense for quote and payout token transfers to be performed at the level of `AuctionHouse`, - while derivative token transfers be handled in the respective derivative module (due to potential variations in behaviour and conditions)\ + while derivative token transfers be handled in the respective derivative module (due to potential variations in behaviour and conditions)\ - Data should also be stored in a similar manner - Third-parties will mainly interact with the auction and derivative modules diff --git a/design/SEALED_VERSIONS.md b/design/SEALED_VERSIONS.md index 56e34828..8916b948 100644 --- a/design/SEALED_VERSIONS.md +++ b/design/SEALED_VERSIONS.md @@ -30,16 +30,16 @@ Depending on the design of the system, these properties may be inherent or diffi There are four main types of batch auctions that could be built based on where the bids are submitted and where the bid evaluation logic is performed. We will refer to these as "local", for on-chain, and "external", for off-chain, to avoid using similar hyphenated words. Settlement is assumed to be on-chain. 1. Local (aka on-chain) bid submission and evaluation -Fully on-chain auction, similar to Gnosis auction, but with encryption. Since you cannot pre-sort the bids, it requires an intermediate step to decrypt and sort all submitted bids before settlement to avoid issues with the gas limit. The risk of DoS attacks is decreased by requiring bid deposits, but this leaks some information. This solution natively guarantees both "completeness" and "accuracy" of the bids. + Fully on-chain auction, similar to Gnosis auction, but with encryption. Since you cannot pre-sort the bids, it requires an intermediate step to decrypt and sort all submitted bids before settlement to avoid issues with the gas limit. The risk of DoS attacks is decreased by requiring bid deposits, but this leaks some information. This solution natively guarantees both "completeness" and "accuracy" of the bids. 2. External bid submission and local evaluation -Bids are collected off-chain, filtered for bids that aren't valid (e.g. below min price or too small), sorted, and submitted on-chain, where the auction price logic is performed to determine the winners. This version natively adheres to the "accuracy" guarantee through on-chain evaluation of bids, but requires trusting the "completeness" property of the bids that are submitted for evaluation. This is difficult to do in a decentralized way. + Bids are collected off-chain, filtered for bids that aren't valid (e.g. below min price or too small), sorted, and submitted on-chain, where the auction price logic is performed to determine the winners. This version natively adheres to the "accuracy" guarantee through on-chain evaluation of bids, but requires trusting the "completeness" property of the bids that are submitted for evaluation. This is difficult to do in a decentralized way. 3. Local submission and external evaluation -Bids are submitted on-chain (encrypted). Once the auction ends, an external party can decrypt the bid data, perform bid evaluation off-chain, and submit the winning bids with a validity proof of the evaluation. This version natively adheres to the "completness" property, but requires trusting the "accuracy" of the submitted evaluation. A validity proof can provide this in a decentralized way. This may be a workable solution if a ZK proof could be constructed correctly to verify the off-chain evaluation. Currently, we are running into issues with the size of the required circuit(s). More information on this below. + Bids are submitted on-chain (encrypted). Once the auction ends, an external party can decrypt the bid data, perform bid evaluation off-chain, and submit the winning bids with a validity proof of the evaluation. This version natively adheres to the "completness" property, but requires trusting the "accuracy" of the submitted evaluation. A validity proof can provide this in a decentralized way. This may be a workable solution if a ZK proof could be constructed correctly to verify the off-chain evaluation. Currently, we are running into issues with the size of the required circuit(s). More information on this below. 4. External bid submission and evaluation -Bids are collected off-chain and the settlement algorithm is performed to determine the winning bids. the winning bids are submitted on-chain for settlement of payments. This would have the best UX and is most gas efficient, but is the least decentralized. It requires trusting both the "completeness" and "accuracy" of the submitted evaluation. + Bids are collected off-chain and the settlement algorithm is performed to determine the winning bids. the winning bids are submitted on-chain for settlement of payments. This would have the best UX and is most gas efficient, but is the least decentralized. It requires trusting both the "completeness" and "accuracy" of the submitted evaluation. There is also a fifth option where Settlement is also performed externally and proved locally, which equates to a validium, but that isn't considered in detail here. diff --git a/script/deploy/sequence_schema.json b/script/deploy/sequence_schema.json index d2f07b5b..aef0ea24 100644 --- a/script/deploy/sequence_schema.json +++ b/script/deploy/sequence_schema.json @@ -41,4 +41,4 @@ }, "required": ["sequence"] } -} \ No newline at end of file +} diff --git a/script/deploy/sequences/fixed-batch.json b/script/deploy/sequences/fixed-batch.json index 635187fc..5b5f07a2 100644 --- a/script/deploy/sequences/fixed-batch.json +++ b/script/deploy/sequences/fixed-batch.json @@ -1,8 +1,8 @@ { "sequence": [ - { - "name": "FixedPriceBatch", - "installBatchAuctionHouse": true - } + { + "name": "FixedPriceBatch", + "installBatchAuctionHouse": true + } ] -} \ No newline at end of file +} diff --git a/script/deploy/sequences/origin.json b/script/deploy/sequences/origin.json index 58c7c894..be25463b 100644 --- a/script/deploy/sequences/origin.json +++ b/script/deploy/sequences/origin.json @@ -1,26 +1,26 @@ { - "sequence": [ - { - "name": "BatchAuctionHouse" - }, - { - "name": "BatchCatalogue" - }, - { - "name": "EncryptedMarginalPrice", - "installBatchAuctionHouse": true, - "maxReferrerFee": 1000, - "maxCuratorFee": 1000 - }, - { - "name": "FixedPriceBatch", - "installBatchAuctionHouse": true, - "maxReferrerFee": 1000, - "maxCuratorFee": 1000 - }, - { - "name": "BatchLinearVesting", - "installBatchAuctionHouse": true - } - ] -} \ No newline at end of file + "sequence": [ + { + "name": "BatchAuctionHouse" + }, + { + "name": "BatchCatalogue" + }, + { + "name": "EncryptedMarginalPrice", + "installBatchAuctionHouse": true, + "maxReferrerFee": 1000, + "maxCuratorFee": 1000 + }, + { + "name": "FixedPriceBatch", + "installBatchAuctionHouse": true, + "maxReferrerFee": 1000, + "maxCuratorFee": 1000 + }, + { + "name": "BatchLinearVesting", + "installBatchAuctionHouse": true + } + ] +} diff --git a/utils/hot-chain-svg/src/boot.js b/utils/hot-chain-svg/src/boot.js index 1eeb4fff..a21c3388 100644 --- a/utils/hot-chain-svg/src/boot.js +++ b/utils/hot-chain-svg/src/boot.js @@ -4,7 +4,7 @@ const VM = require('@ethereumjs/vm').default; async function boot() { const pk = Buffer.from( '1122334455667788112233445566778811223344556677881122334455667788', - 'hex' + 'hex', ); const accountAddress = Address.fromPrivateKey(pk); diff --git a/utils/hot-chain-svg/src/call.js b/utils/hot-chain-svg/src/call.js index 2a8e46cd..b141b494 100644 --- a/utils/hot-chain-svg/src/call.js +++ b/utils/hot-chain-svg/src/call.js @@ -16,7 +16,7 @@ async function call(vm, address, abi, name, args = []) { } const logs = renderResult.execResult.logs?.map(([address, topic, data]) => - data.toString().replace(/\x00/g, '') + data.toString().replace(/\x00/g, ''), ); if (logs?.length) { @@ -25,7 +25,7 @@ async function call(vm, address, abi, name, args = []) { const results = defaultAbiCoder.decode( ['string'], - renderResult.execResult.returnValue + renderResult.execResult.returnValue, ); return results[0]; diff --git a/utils/hot-chain-svg/src/compile.js b/utils/hot-chain-svg/src/compile.js index 93665495..ef663981 100644 --- a/utils/hot-chain-svg/src/compile.js +++ b/utils/hot-chain-svg/src/compile.js @@ -41,7 +41,7 @@ function compile(source, project_dir) { const input = getSolcInput(source); process.chdir(project_dir); const output = JSON.parse( - solc.compile(JSON.stringify(input), { import: findImports }) + solc.compile(JSON.stringify(input), { import: findImports }), ); let errors = []; diff --git a/utils/hot-chain-svg/src/index.js b/utils/hot-chain-svg/src/index.js index bba813c7..ba42f295 100644 --- a/utils/hot-chain-svg/src/index.js +++ b/utils/hot-chain-svg/src/index.js @@ -6,7 +6,16 @@ const call = require('./call'); const compile = require('./compile'); const deploy = require('./deploy'); -const SOURCE = path.join(__dirname, '..', '..', '..', 'src', 'modules', 'derivatives', 'LinearVestingCard.sol'); +const SOURCE = path.join( + __dirname, + '..', + '..', + '..', + 'src', + 'modules', + 'derivatives', + 'LinearVestingCard.sol', +); const PROJECT_DIR = path.join(__dirname, '..', '..', '..'); async function main() { diff --git a/utils/hot-chain-svg/src/serve.js b/utils/hot-chain-svg/src/serve.js index a370b377..8c4be6fe 100644 --- a/utils/hot-chain-svg/src/serve.js +++ b/utils/hot-chain-svg/src/serve.js @@ -18,7 +18,7 @@ async function serve(handler) { res.writeHead(200); handler().then( (content) => res.end(webpage(content)), - (error) => res.end(webpage(`
${error.message}
`)) + (error) => res.end(webpage(`
${error.message}
`)), ); return; } diff --git a/utils/hot-chain-svg/src/sync-nfts.js b/utils/hot-chain-svg/src/sync-nfts.js index 52c4aff4..87a7dac0 100644 --- a/utils/hot-chain-svg/src/sync-nfts.js +++ b/utils/hot-chain-svg/src/sync-nfts.js @@ -16,31 +16,31 @@ async function main() { const [mints, names] = await Promise.all([ contract.queryFilter( - contract.filters.TransferSingle(null, ethers.constants.AddressZero) + contract.filters.TransferSingle(null, ethers.constants.AddressZero), ), contract.queryFilter(contract.filters.CollectionNameUpdated()), ]); const collectionNames = Object.fromEntries( - names.map((e) => [e.args.collection.toLowerCase(), e.args.name]) + names.map((e) => [e.args.collection.toLowerCase(), e.args.name]), ); const owners = [...new Set(mints.map((e) => e.args.to.toLowerCase()))]; const ensNames = await Promise.all( - owners.map((address) => provider.lookupAddress(address)) + owners.map((address) => provider.lookupAddress(address)), ); const ownerNames = Object.fromEntries( - owners.map((address, index) => [address, ensNames[index] || address]) + owners.map((address, index) => [address, ensNames[index] || address]), ); const log = mints.map((e) => { const { id, to } = e.args; const collection = ethers.utils.hexZeroPad( id.and( - ethers.BigNumber.from('0xffffffffffffffffffffffffffffffffffffffff') + ethers.BigNumber.from('0xffffffffffffffffffffffffffffffffffffffff'), ), - 20 + 20, ); const name = collectionNames[collection] || collection; @@ -55,7 +55,7 @@ async function main() { const content = fs.readFileSync(readme, 'utf8'); const updated = content.replaceAll( /[\s\S]+/gim, - ['', ...log, ''].join('\n') + ['', ...log, ''].join('\n'), ); fs.writeFileSync(readme, updated); }