@whetstone-research/doppler-sdk 0.0.1-alpha.9 → 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +726 -25
- package/dist/DopplerSDK.d.mts +45 -7
- package/dist/DopplerSDK.d.ts +45 -7
- package/dist/DopplerSDK.js +35 -12
- package/dist/DopplerSDK.mjs +34 -11
- package/dist/abis/bytecodes.d.mts +3 -2
- package/dist/abis/bytecodes.d.ts +3 -2
- package/dist/abis/bytecodes.js +9 -6
- package/dist/abis/bytecodes.mjs +1 -2
- package/dist/abis/index.d.mts +1507 -129
- package/dist/abis/index.d.ts +1507 -129
- package/dist/abis/index.js +43 -20
- package/dist/abis/index.mjs +2 -3
- package/dist/addresses.d.mts +16 -3
- package/dist/addresses.d.ts +16 -3
- package/dist/addresses.js +13 -5
- package/dist/addresses.mjs +2 -2
- package/dist/builders/DynamicAuctionBuilder.d.mts +119 -0
- package/dist/builders/DynamicAuctionBuilder.d.ts +119 -0
- package/dist/builders/DynamicAuctionBuilder.js +29 -0
- package/dist/builders/DynamicAuctionBuilder.js.map +1 -0
- package/dist/builders/DynamicAuctionBuilder.mjs +20 -0
- package/dist/builders/DynamicAuctionBuilder.mjs.map +1 -0
- package/dist/builders/MulticurveBuilder.d.mts +132 -0
- package/dist/builders/MulticurveBuilder.d.ts +132 -0
- package/dist/builders/MulticurveBuilder.js +29 -0
- package/dist/builders/MulticurveBuilder.js.map +1 -0
- package/dist/builders/MulticurveBuilder.mjs +20 -0
- package/dist/builders/MulticurveBuilder.mjs.map +1 -0
- package/dist/builders/StaticAuctionBuilder.d.mts +124 -0
- package/dist/builders/StaticAuctionBuilder.d.ts +124 -0
- package/dist/builders/StaticAuctionBuilder.js +29 -0
- package/dist/builders/StaticAuctionBuilder.js.map +1 -0
- package/dist/builders/StaticAuctionBuilder.mjs +20 -0
- package/dist/builders/StaticAuctionBuilder.mjs.map +1 -0
- package/dist/builders/index.d.mts +8 -0
- package/dist/builders/index.d.ts +8 -0
- package/dist/builders/index.js +56 -0
- package/dist/builders/index.js.map +1 -0
- package/dist/builders/index.mjs +23 -0
- package/dist/builders/index.mjs.map +1 -0
- package/dist/builders/shared.d.mts +116 -0
- package/dist/builders/shared.d.ts +116 -0
- package/dist/builders/shared.js +39 -0
- package/dist/builders/shared.js.map +1 -0
- package/dist/builders/shared.mjs +18 -0
- package/dist/builders/shared.mjs.map +1 -0
- package/dist/builders.d.mts +8 -131
- package/dist/builders.d.ts +8 -131
- package/dist/builders.js +44 -5
- package/dist/builders.mjs +22 -3
- package/dist/chunk-3PNCB4W5.js +4 -0
- package/dist/{chunk-KRN3ROUE.js.map → chunk-3PNCB4W5.js.map} +1 -1
- package/dist/chunk-3RK7LRAA.js +282 -0
- package/dist/chunk-3RK7LRAA.js.map +1 -0
- package/dist/chunk-4HM3ERBU.js +13 -0
- package/dist/chunk-4HM3ERBU.js.map +1 -0
- package/dist/{chunk-7W72MFJO.mjs → chunk-4TROGENW.mjs} +5 -4
- package/dist/chunk-4TROGENW.mjs.map +1 -0
- package/dist/chunk-5TL5V6UX.mjs +3 -0
- package/dist/{chunk-AZLFJNTG.mjs.map → chunk-5TL5V6UX.mjs.map} +1 -1
- package/dist/chunk-64AWG57M.mjs +192 -0
- package/dist/chunk-64AWG57M.mjs.map +1 -0
- package/dist/chunk-6KWCHTK3.js +166 -0
- package/dist/chunk-6KWCHTK3.js.map +1 -0
- package/dist/chunk-6OOWOPCX.js +1708 -0
- package/dist/chunk-6OOWOPCX.js.map +1 -0
- package/dist/chunk-7BBRPWQJ.js +257 -0
- package/dist/chunk-7BBRPWQJ.js.map +1 -0
- package/dist/{chunk-AQPINKEW.mjs → chunk-AKSEBAR7.mjs} +29 -19
- package/dist/chunk-AKSEBAR7.mjs.map +1 -0
- package/dist/chunk-AS64GWBX.js +204 -0
- package/dist/chunk-AS64GWBX.js.map +1 -0
- package/dist/chunk-AULFBXM5.mjs +331 -0
- package/dist/chunk-AULFBXM5.mjs.map +1 -0
- package/dist/chunk-AW3WR2D3.mjs +238 -0
- package/dist/chunk-AW3WR2D3.mjs.map +1 -0
- package/dist/chunk-BIQQ53O2.js +45 -0
- package/dist/chunk-BIQQ53O2.js.map +1 -0
- package/dist/chunk-C6MPV3CY.js +260 -0
- package/dist/chunk-C6MPV3CY.js.map +1 -0
- package/dist/{chunk-AYPP5JEQ.mjs → chunk-CLEQO6GU.mjs} +5 -5
- package/dist/chunk-CLEQO6GU.mjs.map +1 -0
- package/dist/chunk-CVHPLURA.js +147 -0
- package/dist/chunk-CVHPLURA.js.map +1 -0
- package/dist/chunk-D2RBCFNW.mjs +130 -0
- package/dist/chunk-D2RBCFNW.mjs.map +1 -0
- package/dist/chunk-ECD4FV3A.mjs +11 -0
- package/dist/chunk-ECD4FV3A.mjs.map +1 -0
- package/dist/chunk-EDJBZPMW.mjs +255 -0
- package/dist/chunk-EDJBZPMW.mjs.map +1 -0
- package/dist/chunk-FPAI4QYW.mjs +145 -0
- package/dist/chunk-FPAI4QYW.mjs.map +1 -0
- package/dist/chunk-HM25ZMO3.js +18 -0
- package/dist/chunk-HM25ZMO3.js.map +1 -0
- package/dist/chunk-IHC6UYKK.js +4 -0
- package/dist/{chunk-DRBRT57F.js.map → chunk-IHC6UYKK.js.map} +1 -1
- package/dist/{chunk-AXA7YT2G.mjs → chunk-J5BFFL3X.mjs} +87 -47
- package/dist/chunk-J5BFFL3X.mjs.map +1 -0
- package/dist/chunk-JIKAD4YL.js +4 -0
- package/dist/{chunk-KEXKKQVW.js.map → chunk-JIKAD4YL.js.map} +1 -1
- package/dist/{chunk-EFAPDN4J.js → chunk-JWEXGALU.js} +730 -33
- package/dist/chunk-JWEXGALU.js.map +1 -0
- package/dist/{chunk-4K5GBNQV.mjs → chunk-KDT76YQE.mjs} +52 -13
- package/dist/chunk-KDT76YQE.mjs.map +1 -0
- package/dist/chunk-LMQLMMEX.js +317 -0
- package/dist/chunk-LMQLMMEX.js.map +1 -0
- package/dist/{chunk-TOMVBPNZ.js → chunk-LS4TK6SX.js} +9 -4
- package/dist/chunk-LS4TK6SX.js.map +1 -0
- package/dist/chunk-M4WMHD3X.mjs +40 -0
- package/dist/chunk-M4WMHD3X.mjs.map +1 -0
- package/dist/chunk-MCOK3UFR.mjs +280 -0
- package/dist/chunk-MCOK3UFR.mjs.map +1 -0
- package/dist/chunk-MGQSQCFG.js +176 -0
- package/dist/chunk-MGQSQCFG.js.map +1 -0
- package/dist/chunk-MKE3BUL3.mjs +3 -0
- package/dist/{chunk-CYDWEPFL.mjs.map → chunk-MKE3BUL3.mjs.map} +1 -1
- package/dist/chunk-MNJ5OYPE.mjs +17 -0
- package/dist/chunk-MNJ5OYPE.mjs.map +1 -0
- package/dist/chunk-MNXD45J7.mjs +164 -0
- package/dist/chunk-MNXD45J7.mjs.map +1 -0
- package/dist/chunk-NGDPQC5E.js +333 -0
- package/dist/chunk-NGDPQC5E.js.map +1 -0
- package/dist/chunk-NNNCVFOH.mjs +16 -0
- package/dist/chunk-NNNCVFOH.mjs.map +1 -0
- package/dist/chunk-NZ4BJ2IC.mjs +315 -0
- package/dist/chunk-NZ4BJ2IC.mjs.map +1 -0
- package/dist/chunk-OKNM7ODQ.js +29 -0
- package/dist/chunk-OKNM7ODQ.js.map +1 -0
- package/dist/{chunk-DCFHANLR.mjs → chunk-OTG75GVH.mjs} +725 -34
- package/dist/chunk-OTG75GVH.mjs.map +1 -0
- package/dist/chunk-OZ6DGBRL.mjs +25 -0
- package/dist/chunk-OZ6DGBRL.mjs.map +1 -0
- package/dist/chunk-P25HBGP5.mjs +3 -0
- package/dist/chunk-P25HBGP5.mjs.map +1 -0
- package/dist/{chunk-XG7K4R56.js → chunk-P7KLEPVI.js} +52 -12
- package/dist/chunk-P7KLEPVI.js.map +1 -0
- package/dist/{chunk-OPKQMN46.mjs → chunk-PAPXGPJB.mjs} +9 -4
- package/dist/chunk-PAPXGPJB.mjs.map +1 -0
- package/dist/chunk-PCNXJAU5.js +19 -0
- package/dist/chunk-PCNXJAU5.js.map +1 -0
- package/dist/{chunk-PMIJTXU6.js → chunk-PD6HWEMG.js} +40 -30
- package/dist/chunk-PD6HWEMG.js.map +1 -0
- package/dist/{chunk-ER42VG7H.js → chunk-PH2KXREH.js} +20 -3
- package/dist/chunk-PH2KXREH.js.map +1 -0
- package/dist/chunk-Q5ERW5ZW.mjs +107 -0
- package/dist/chunk-Q5ERW5ZW.mjs.map +1 -0
- package/dist/chunk-Q7YNBSVH.js +28 -0
- package/dist/chunk-Q7YNBSVH.js.map +1 -0
- package/dist/{chunk-T644D54P.mjs → chunk-QKO2FZGN.mjs} +16 -4
- package/dist/chunk-QKO2FZGN.mjs.map +1 -0
- package/dist/{chunk-CIRZKWLL.js → chunk-RVFSRYI5.js} +5 -3
- package/dist/chunk-RVFSRYI5.js.map +1 -0
- package/dist/{chunk-KPBCG4X2.js → chunk-RW37KJ77.js} +11 -11
- package/dist/chunk-RW37KJ77.js.map +1 -0
- package/dist/chunk-SD7BHT2F.mjs +3 -0
- package/dist/chunk-SD7BHT2F.mjs.map +1 -0
- package/dist/chunk-SP5M57BG.mjs +258 -0
- package/dist/chunk-SP5M57BG.mjs.map +1 -0
- package/dist/chunk-TKSHYEYA.mjs +1706 -0
- package/dist/chunk-TKSHYEYA.mjs.map +1 -0
- package/dist/chunk-WTS75RUC.js +4 -0
- package/dist/chunk-WTS75RUC.js.map +1 -0
- package/dist/{chunk-EIRVZJTT.js → chunk-XRPIGMA2.js} +108 -68
- package/dist/chunk-XRPIGMA2.js.map +1 -0
- package/dist/chunk-XTKSM4QE.js +132 -0
- package/dist/chunk-XTKSM4QE.js.map +1 -0
- package/dist/chunk-XUE3CIJ5.mjs +174 -0
- package/dist/chunk-XUE3CIJ5.mjs.map +1 -0
- package/dist/chunk-YYUOLM6U.js +244 -0
- package/dist/chunk-YYUOLM6U.js.map +1 -0
- package/dist/chunk-ZH44DHVR.mjs +26 -0
- package/dist/chunk-ZH44DHVR.mjs.map +1 -0
- package/dist/chunk-ZPHOOG72.js +112 -0
- package/dist/chunk-ZPHOOG72.js.map +1 -0
- package/dist/constants.d.mts +7 -2
- package/dist/constants.d.ts +7 -2
- package/dist/constants.js +57 -38
- package/dist/constants.mjs +1 -2
- package/dist/deployments.generated.d.mts +2 -0
- package/dist/deployments.generated.d.ts +2 -0
- package/dist/deployments.generated.js +12 -0
- package/dist/deployments.generated.js.map +1 -0
- package/dist/deployments.generated.mjs +3 -0
- package/dist/deployments.generated.mjs.map +1 -0
- package/dist/entities/DopplerFactory.d.mts +139 -11
- package/dist/entities/DopplerFactory.d.ts +139 -11
- package/dist/entities/DopplerFactory.js +17 -7
- package/dist/entities/DopplerFactory.mjs +16 -6
- package/dist/entities/auction/DynamicAuction.d.mts +19 -4
- package/dist/entities/auction/DynamicAuction.d.ts +19 -4
- package/dist/entities/auction/DynamicAuction.js +6 -6
- package/dist/entities/auction/DynamicAuction.mjs +5 -5
- package/dist/entities/auction/MulticurvePool.d.mts +55 -0
- package/dist/entities/auction/MulticurvePool.d.ts +55 -0
- package/dist/entities/auction/MulticurvePool.js +18 -0
- package/dist/entities/auction/MulticurvePool.js.map +1 -0
- package/dist/entities/auction/MulticurvePool.mjs +9 -0
- package/dist/entities/auction/MulticurvePool.mjs.map +1 -0
- package/dist/entities/auction/StaticAuction.d.mts +6 -3
- package/dist/entities/auction/StaticAuction.d.ts +6 -3
- package/dist/entities/auction/StaticAuction.js +6 -6
- package/dist/entities/auction/StaticAuction.mjs +5 -5
- package/dist/entities/auction/index.d.mts +3 -0
- package/dist/entities/auction/index.d.ts +3 -0
- package/dist/entities/auction/index.js +16 -9
- package/dist/entities/auction/index.mjs +10 -7
- package/dist/entities/quoter/Quoter.d.mts +44 -2
- package/dist/entities/quoter/Quoter.d.ts +44 -2
- package/dist/entities/quoter/Quoter.js +6 -6
- package/dist/entities/quoter/Quoter.mjs +5 -5
- package/dist/entities/quoter/index.d.mts +3 -0
- package/dist/entities/quoter/index.d.ts +3 -0
- package/dist/entities/quoter/index.js +6 -6
- package/dist/entities/quoter/index.mjs +5 -5
- package/dist/entities/token/derc20/Derc20.d.mts +33 -7
- package/dist/entities/token/derc20/Derc20.d.ts +33 -7
- package/dist/entities/token/derc20/Derc20.js +4 -5
- package/dist/entities/token/derc20/Derc20.mjs +3 -4
- package/dist/entities/token/derc20/index.d.mts +3 -0
- package/dist/entities/token/derc20/index.d.ts +3 -0
- package/dist/entities/token/derc20/index.js +4 -5
- package/dist/entities/token/derc20/index.mjs +3 -4
- package/dist/entities/token/eth/Eth.d.mts +7 -3
- package/dist/entities/token/eth/Eth.d.ts +7 -3
- package/dist/entities/token/eth/Eth.js +2 -3
- package/dist/entities/token/eth/Eth.mjs +1 -2
- package/dist/entities/token/eth/index.d.mts +3 -0
- package/dist/entities/token/eth/index.d.ts +3 -0
- package/dist/entities/token/eth/index.js +2 -3
- package/dist/entities/token/eth/index.mjs +1 -2
- package/dist/entities/token/index.d.mts +3 -0
- package/dist/entities/token/index.d.ts +3 -0
- package/dist/entities/token/index.js +6 -7
- package/dist/entities/token/index.mjs +4 -5
- package/dist/index.d.mts +18 -6
- package/dist/index.d.ts +18 -6
- package/dist/index.js +305 -140
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +32 -19
- package/dist/index.mjs.map +1 -1
- package/dist/types.d.mts +260 -22
- package/dist/types.d.ts +260 -22
- package/dist/types.js +12 -3
- package/dist/types.mjs +3 -2
- package/dist/utils/airlock.d.mts +11 -0
- package/dist/utils/airlock.d.ts +11 -0
- package/dist/utils/airlock.js +26 -0
- package/dist/utils/airlock.js.map +1 -0
- package/dist/utils/airlock.mjs +5 -0
- package/dist/utils/airlock.mjs.map +1 -0
- package/dist/utils/balanceDelta.d.mts +10 -0
- package/dist/utils/balanceDelta.d.ts +10 -0
- package/dist/utils/balanceDelta.js +12 -0
- package/dist/utils/balanceDelta.js.map +1 -0
- package/dist/utils/balanceDelta.mjs +3 -0
- package/dist/utils/balanceDelta.mjs.map +1 -0
- package/dist/utils/computeOptimalGamma.d.mts +7 -0
- package/dist/utils/computeOptimalGamma.d.ts +7 -0
- package/dist/utils/computeOptimalGamma.js +12 -0
- package/dist/utils/computeOptimalGamma.js.map +1 -0
- package/dist/utils/computeOptimalGamma.mjs +3 -0
- package/dist/utils/computeOptimalGamma.mjs.map +1 -0
- package/dist/utils/index.d.mts +11 -0
- package/dist/utils/index.d.ts +11 -0
- package/dist/utils/index.js +114 -24
- package/dist/utils/index.mjs +14 -4
- package/dist/utils/isToken0Expected.d.mts +13 -0
- package/dist/utils/isToken0Expected.d.ts +13 -0
- package/dist/utils/isToken0Expected.js +12 -0
- package/dist/utils/isToken0Expected.js.map +1 -0
- package/dist/utils/isToken0Expected.mjs +3 -0
- package/dist/utils/isToken0Expected.mjs.map +1 -0
- package/dist/utils/marketCapHelpers.d.mts +309 -0
- package/dist/utils/marketCapHelpers.d.ts +309 -0
- package/dist/utils/marketCapHelpers.js +54 -0
- package/dist/utils/marketCapHelpers.js.map +1 -0
- package/dist/utils/marketCapHelpers.mjs +5 -0
- package/dist/utils/marketCapHelpers.mjs.map +1 -0
- package/dist/utils/poolKey.d.mts +17 -0
- package/dist/utils/poolKey.d.ts +17 -0
- package/dist/utils/poolKey.js +12 -0
- package/dist/utils/poolKey.js.map +1 -0
- package/dist/utils/poolKey.mjs +3 -0
- package/dist/utils/poolKey.mjs.map +1 -0
- package/dist/utils/priceHelpers.d.mts +3 -3
- package/dist/utils/priceHelpers.d.ts +3 -3
- package/dist/utils/priceHelpers.js +10 -11
- package/dist/utils/priceHelpers.mjs +2 -3
- package/dist/utils/tickMath.d.mts +8 -1
- package/dist/utils/tickMath.d.ts +8 -1
- package/dist/utils/tickMath.js +17 -14
- package/dist/utils/tickMath.mjs +1 -2
- package/dist/utils/tokenAddressMiner.d.mts +30 -0
- package/dist/utils/tokenAddressMiner.d.ts +30 -0
- package/dist/utils/tokenAddressMiner.js +14 -0
- package/dist/utils/tokenAddressMiner.js.map +1 -0
- package/dist/utils/tokenAddressMiner.mjs +5 -0
- package/dist/utils/tokenAddressMiner.mjs.map +1 -0
- package/package.json +14 -11
- package/dist/__tests__/mocks/addresses.d.mts +0 -46
- package/dist/__tests__/mocks/addresses.d.ts +0 -46
- package/dist/__tests__/mocks/addresses.js +0 -53
- package/dist/__tests__/mocks/addresses.js.map +0 -1
- package/dist/__tests__/mocks/addresses.mjs +0 -44
- package/dist/__tests__/mocks/addresses.mjs.map +0 -1
- package/dist/__tests__/mocks/clients.d.mts +0 -22
- package/dist/__tests__/mocks/clients.d.ts +0 -22
- package/dist/__tests__/mocks/clients.js +0 -17036
- package/dist/__tests__/mocks/clients.js.map +0 -1
- package/dist/__tests__/mocks/clients.mjs +0 -17032
- package/dist/__tests__/mocks/clients.mjs.map +0 -1
- package/dist/chunk-2N5JZSZ4.js +0 -14
- package/dist/chunk-2N5JZSZ4.js.map +0 -1
- package/dist/chunk-4K5GBNQV.mjs.map +0 -1
- package/dist/chunk-7F5IXZLH.js +0 -308
- package/dist/chunk-7F5IXZLH.js.map +0 -1
- package/dist/chunk-7W72MFJO.mjs.map +0 -1
- package/dist/chunk-AQPINKEW.mjs.map +0 -1
- package/dist/chunk-AXA7YT2G.mjs.map +0 -1
- package/dist/chunk-AYPP5JEQ.mjs.map +0 -1
- package/dist/chunk-AZLFJNTG.mjs +0 -3
- package/dist/chunk-CIRZKWLL.js.map +0 -1
- package/dist/chunk-CIVGL27M.mjs +0 -160
- package/dist/chunk-CIVGL27M.mjs.map +0 -1
- package/dist/chunk-CYDWEPFL.mjs +0 -3
- package/dist/chunk-DCFHANLR.mjs.map +0 -1
- package/dist/chunk-DRBRT57F.js +0 -4
- package/dist/chunk-EFAPDN4J.js.map +0 -1
- package/dist/chunk-EIRVZJTT.js.map +0 -1
- package/dist/chunk-ER42VG7H.js.map +0 -1
- package/dist/chunk-FPGJKJIR.js +0 -872
- package/dist/chunk-FPGJKJIR.js.map +0 -1
- package/dist/chunk-HRFHDSNE.js +0 -180
- package/dist/chunk-HRFHDSNE.js.map +0 -1
- package/dist/chunk-IHBIBFZK.mjs +0 -12
- package/dist/chunk-IHBIBFZK.mjs.map +0 -1
- package/dist/chunk-JIDZBQ7R.mjs +0 -870
- package/dist/chunk-JIDZBQ7R.mjs.map +0 -1
- package/dist/chunk-KEXKKQVW.js +0 -42
- package/dist/chunk-KFD6U3LQ.mjs +0 -305
- package/dist/chunk-KFD6U3LQ.mjs.map +0 -1
- package/dist/chunk-KPBCG4X2.js.map +0 -1
- package/dist/chunk-KRN3ROUE.js +0 -4
- package/dist/chunk-KT7U37XS.mjs +0 -207
- package/dist/chunk-KT7U37XS.mjs.map +0 -1
- package/dist/chunk-LOROXNH3.mjs +0 -37
- package/dist/chunk-LOROXNH3.mjs.map +0 -1
- package/dist/chunk-LZO67TYV.mjs +0 -176
- package/dist/chunk-LZO67TYV.mjs.map +0 -1
- package/dist/chunk-MZ2UBC4M.mjs +0 -80
- package/dist/chunk-MZ2UBC4M.mjs.map +0 -1
- package/dist/chunk-OPKQMN46.mjs.map +0 -1
- package/dist/chunk-PMIJTXU6.js.map +0 -1
- package/dist/chunk-T644D54P.mjs.map +0 -1
- package/dist/chunk-TOMVBPNZ.js.map +0 -1
- package/dist/chunk-UHT4QLL7.js +0 -162
- package/dist/chunk-UHT4QLL7.js.map +0 -1
- package/dist/chunk-XG7K4R56.js.map +0 -1
- package/dist/chunk-YNP2HGJZ.js +0 -82
- package/dist/chunk-YNP2HGJZ.js.map +0 -1
- package/dist/chunk-ZAIP54LX.js +0 -209
- package/dist/chunk-ZAIP54LX.js.map +0 -1
- package/dist/magic-string.es-CBLXTCZP.js +0 -1304
- package/dist/magic-string.es-CBLXTCZP.js.map +0 -1
- package/dist/magic-string.es-QHA47FSB.mjs +0 -1298
- package/dist/magic-string.es-QHA47FSB.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/addresses.ts"],"names":[],"mappings":"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","file":"chunk-AW3WR2D3.mjs","sourcesContent":["import { Address } from 'viem'\nimport { GENERATED_DOPPLER_DEPLOYMENTS } from './deployments.generated'\n\n// Chain IDs\nexport const CHAIN_IDS = {\n MAINNET: 1,\n BASE: 8453,\n BASE_SEPOLIA: 84532,\n INK: 57073,\n UNICHAIN: 130,\n UNICHAIN_SEPOLIA: 1301,\n MONAD_TESTNET: 10143,\n MONAD_MAINNET: 143,\n} as const\n\nexport type SupportedChainId = typeof CHAIN_IDS[keyof typeof CHAIN_IDS]\n\n// Human-friendly chain key type (e.g., 'BASE', 'UNICHAIN')\nexport type SupportedChainKey = keyof typeof CHAIN_IDS\n\n// Contract addresses per chain\nexport interface ChainAddresses {\n // Core contracts\n airlock: Address\n tokenFactory: Address\n\n // Static auction contracts (V3)\n v3Initializer: Address\n v3Quoter: Address\n lockableV3Initializer?: Address\n \n // Dynamic auction contracts (V4)\n v4Initializer: Address\n // Multicurve initializer (V4) — optional per chain\n v4MulticurveInitializer?: Address\n v4ScheduledMulticurveInitializer?: Address\n dopplerLens: Address\n dopplerDeployer: Address\n poolManager: Address\n\n // Doppler404 contracts\n doppler404Factory?: Address\n \n // Migration contracts\n v2Migrator: Address\n v3Migrator: Address\n v4Migrator: Address\n v4MigratorHook?: Address\n noOpMigrator?: Address\n \n // Governance contracts\n governanceFactory: Address\n noOpGovernanceFactory?: Address\n streamableFeesLocker?: Address\n \n // Router contracts\n universalRouter: Address\n univ2Router02?: Address\n permit2: Address\n \n // Other contracts\n bundler?: Address\n \n // Uniswap contracts\n weth: Address\n uniswapV2Factory?: Address\n uniswapV3Factory?: Address\n uniswapV4Quoter: Address\n}\n\n// Not yet deployed placeholder\nconst ZERO_ADDRESS = '0x0000000000000000000000000000000000000000' as Address\n\nexport const ADDRESSES: Record<SupportedChainId, ChainAddresses> = {\n [CHAIN_IDS.MAINNET]: {\n // Mainnet addresses not yet deployed\n airlock: ZERO_ADDRESS,\n tokenFactory: ZERO_ADDRESS,\n v3Initializer: ZERO_ADDRESS,\n v3Quoter: ZERO_ADDRESS,\n v4Initializer: ZERO_ADDRESS,\n dopplerLens: ZERO_ADDRESS,\n dopplerDeployer: ZERO_ADDRESS,\n v2Migrator: ZERO_ADDRESS,\n v3Migrator: ZERO_ADDRESS,\n v4Migrator: ZERO_ADDRESS,\n poolManager: ZERO_ADDRESS,\n governanceFactory: ZERO_ADDRESS,\n universalRouter: ZERO_ADDRESS,\n permit2: '0x000000000022D473030F116dDEE9F6B43aC78BA3' as Address,\n weth: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2' as Address,\n uniswapV2Factory: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f' as Address,\n uniswapV3Factory: '0x1F98431c8aD98523631AE4a59f267346ea31F984' as Address,\n uniswapV4Quoter: '0x52f0e24d1c21c8a0cb1e5a5dd6198556bd9e1203' as Address,\n },\n [CHAIN_IDS.BASE]: {\n airlock: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].Airlock as Address,\n tokenFactory: '0xFAafdE6a5b658684cC5eb0C5c2c755B00A246F45' as Address,\n v3Initializer: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].UniswapV3Initializer as Address,\n v3Quoter: '0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a' as Address,\n lockableV3Initializer: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].LockableUniswapV3Initializer as Address,\n v4Initializer: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].UniswapV4Initializer as Address,\n v4MulticurveInitializer: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].UniswapV4MulticurveInitializer as Address, // From Doppler multicurve deployments (Base mainnet)\n v4ScheduledMulticurveInitializer: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].UniswapV4ScheduledMulticurveInitializer as Address, // From Doppler scheduled multicurve deployments (Base mainnet)\n dopplerLens: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].DopplerLensQuoter as Address,\n dopplerDeployer: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].DopplerDeployer as Address,\n poolManager: '0x498581ff718922c3f8e6a244956af099b2652b2b' as Address,\n v2Migrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].UniswapV2Migrator as Address,\n v3Migrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].UniswapV2Migrator as Address,\n v4Migrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].UniswapV4Migrator as Address,\n noOpMigrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].NoOpMigrator as Address,\n governanceFactory: '0xb4deE32EB70A5E55f3D2d861F49Fb3D79f7a14d9' as Address,\n noOpGovernanceFactory: '0xe7dfbd5b0a2c3b4464653a9becdc489229ef090e' as Address,\n streamableFeesLocker: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].StreamableFeesLocker as Address,\n universalRouter: '0x6ff5693b99212da76ad316178a184ab56d299b43' as Address,\n univ2Router02: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24' as Address,\n permit2: '0x000000000022D473030F116dDEE9F6B43aC78BA3' as Address,\n bundler: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].Bundler as Address,\n weth: '0x4200000000000000000000000000000000000006' as Address,\n uniswapV4Quoter: '0x0d5e0f971ed27fbff6c2837bf31316121532048d' as Address,\n },\n [CHAIN_IDS.BASE_SEPOLIA]: {\n airlock: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].Airlock as Address,\n tokenFactory: '0xc69ba223c617f7d936b3cf2012aa644815dbe9ff' as Address,\n doppler404Factory: '0xdd8cea2890f1b3498436f19ec8da8fecc2cb7af7' as Address,\n v3Initializer: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].UniswapV3Initializer as Address,\n v3Quoter: '0xC5290058841028F1614F3A6F0F5816cAd0df5E27' as Address,\n lockableV3Initializer: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].LockableUniswapV3Initializer as Address,\n v4Initializer: '0x8e891d249f1ecbffa6143c03eb1b12843aef09d3' as Address,\n v4MulticurveInitializer: '0x359b5952a254baaa0105381825daedb8986bb55c' as Address, // From doppler multicurve deployments (Base Sepolia)\n v4ScheduledMulticurveInitializer: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].UniswapV4ScheduledMulticurveInitializer as Address, // From Doppler scheduled multicurve deployments (Base Sepolia)\n dopplerLens: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].DopplerLensQuoter as Address,\n dopplerDeployer: '0x60a039e4add40ca95e0475c11e8a4182d06c9aa0' as Address,\n poolManager: '0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408' as Address,\n v2Migrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].UniswapV2Migrator as Address,\n v3Migrator: '0xb2ec6559704467306d04322a5dc082b2af4562dd' as Address,\n v4Migrator: '0xb2ec6559704467306d04322a5dc082b2af4562dd' as Address,\n v4MigratorHook: '0x508812fcdd4972a59b66eb2cad3772279c052000' as Address,\n noOpMigrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].NoOpMigrator as Address,\n governanceFactory: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].GovernanceFactory as Address,\n noOpGovernanceFactory: '0x916b8987e4ad325c10d58ed8dc2036a6ff5eb228' as Address,\n streamableFeesLocker: '0x4da7d7a8034510c0ffd38a9252237ae8dba3cb61' as Address,\n universalRouter: '0x492E6456D9528771018DeB9E87ef7750EF184104' as Address,\n univ2Router02: '0x1689E7B1F10000AE47eBfE339a4f69dECd19F602' as Address,\n permit2: '0x000000000022D473030F116dDEE9F6B43aC78BA3' as Address,\n bundler: '0x69DB7c20cDdA49Bed2bFb21e16Fa218330C50661' as Address,\n weth: '0x4200000000000000000000000000000000000006' as Address,\n uniswapV4Quoter: '0x4A6513c898fe1B2d0E78d3b0e0A4a151589B1cBa' as Address,\n },\n [CHAIN_IDS.INK]: {\n airlock: '0x014E1c0bd34f3B10546E554CB33B3293fECDD056' as Address,\n tokenFactory: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.INK].TokenFactory as Address,\n v3Initializer: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.INK].UniswapV3Initializer as Address,\n v3Quoter: '0x96b572D2d880cf2Fa2563651BD23ADE6f5516652' as Address,\n v4Initializer: '0xC99b485499f78995C6F1640dbB1413c57f8BA684' as Address,\n dopplerLens: '0x3972c00f7ed4885e145823eb7c655375d275a1c5' as Address,\n dopplerDeployer: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.INK].DopplerDeployer as Address,\n poolManager: '0x360e68faccca8ca495c1b759fd9eee466db9fb32' as Address,\n v2Migrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.INK].UniswapV2Migrator as Address,\n v3Migrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.INK].UniswapV2Migrator as Address,\n v4Migrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.INK].UniswapV2Migrator as Address, // Same as v2/v3 migrator\n governanceFactory: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.INK].GovernanceFactory as Address,\n noOpGovernanceFactory: ZERO_ADDRESS, // Not yet deployed\n streamableFeesLocker: ZERO_ADDRESS, // Not yet deployed\n universalRouter: '0x112908dac86e20e7241b0927479ea3bf935d1fa0' as Address,\n univ2Router02: '0xB3FB126ACDd5AdCA2f50Ac644a7a2303745f18b4' as Address,\n permit2: '0x000000000022D473030F116dDEE9F6B43aC78BA3' as Address,\n bundler: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.INK].Bundler as Address,\n weth: '0x4200000000000000000000000000000000000006' as Address,\n uniswapV4Quoter: '0x3972c00f7ed4885e145823eb7c655375d275a1c5' as Address,\n },\n [CHAIN_IDS.UNICHAIN]: {\n airlock: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].Airlock as Address,\n tokenFactory: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].TokenFactory as Address,\n v3Initializer: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].UniswapV3Initializer as Address,\n v3Quoter: '0x385A5cf5F83e99f7BB2852b6A19C3538b9FA7658' as Address,\n v4Initializer: '0x2F2BAcd46d3F5c9EE052Ab392b73711dB89129DB' as Address,\n dopplerLens: '0x333e3c607b141b18ff6de9f258db6e77fe7491e0' as Address,\n dopplerDeployer: '0x06FEFD02F0b6d9f57F52cfacFc113665Dfa20F0f' as Address,\n poolManager: '0x1f98400000000000000000000000000000000004' as Address,\n v2Migrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].UniswapV2Migrator as Address,\n v3Migrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].UniswapV2Migrator as Address,\n v4Migrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].UniswapV2Migrator as Address, // Same as v2/v3 migrator\n noOpMigrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].NoOpMigrator as Address,\n governanceFactory: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].GovernanceFactory as Address,\n noOpGovernanceFactory: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].NoOpGovernanceFactory as Address,\n streamableFeesLocker: ZERO_ADDRESS, // Not yet deployed\n universalRouter: '0xef740bf23acae26f6492b10de645d6b98dc8eaf3' as Address,\n univ2Router02: '0x284f11109359a7e1306c3e447ef14d38400063ff' as Address,\n permit2: '0x000000000022D473030F116dDEE9F6B43aC78BA3' as Address,\n bundler: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].Bundler as Address,\n weth: '0x4200000000000000000000000000000000000006' as Address,\n uniswapV4Quoter: '0x333e3c607b141b18ff6de9f258db6e77fe7491e0' as Address,\n },\n [CHAIN_IDS.UNICHAIN_SEPOLIA]: {\n airlock: '0x651ab94B4777e2e4cdf96082d90C65bd947b73A4' as Address,\n tokenFactory: '0xC5E5a19a2ee32831Fcb8a81546979AF43936EbaA' as Address,\n v3Initializer: '0x7Fb9a622186B4660A5988C223ebb9d3690dD5007' as Address,\n v3Quoter: '0x6Dd37329A1A225a6Fca658265D460423DCafBF89' as Address,\n v4Initializer: '0x992375478626E67F4e639d3298EbCAaE51C3dF0b' as Address,\n dopplerLens: '0x56dcd40a3f2d466f48e7f48bdbe5cc9b92ae4472' as Address,\n dopplerDeployer: '0x2f2bacd46d3f5c9ee052ab392b73711db89129db' as Address,\n poolManager: '0x00B036B58a818B1BC34d502D3fE730Db729e62AC' as Address,\n v2Migrator: '0x44C448E38A2C3D206c9132E7f645510dFbBC946b' as Address,\n v3Migrator: '0x44C448E38A2C3D206c9132E7f645510dFbBC946b' as Address,\n v4Migrator: '0x44C448E38A2C3D206c9132E7f645510dFbBC946b' as Address, // Same as v2/v3 migrator\n noOpMigrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN_SEPOLIA].NoOpMigrator as Address,\n governanceFactory: '0x1E4332EEfAE9e4967C2D186f7b2d439D778e81cC' as Address,\n noOpGovernanceFactory: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN_SEPOLIA].NoOpGovernanceFactory as Address,\n streamableFeesLocker: ZERO_ADDRESS, // Not yet deployed\n universalRouter: '0xf70536B3bcC1bD1a972dc186A2cf84cC6da6Be5D' as Address,\n univ2Router02: '0x284f11109359a7e1306c3e447ef14d38400063ff' as Address,\n permit2: '0x000000000022D473030F116dDEE9F6B43aC78BA3' as Address,\n bundler: '0x63f8C8F9beFaab2FaCD7Ece0b0242f78B920Ee90' as Address,\n weth: '0x4200000000000000000000000000000000000006' as Address,\n uniswapV4Quoter: '0x56dcd40a3f2d466f48e7f48bdbe5cc9b92ae4472' as Address,\n },\n [CHAIN_IDS.MONAD_TESTNET]: {\n airlock: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].Airlock as Address,\n tokenFactory: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].TokenFactory as Address,\n v3Initializer: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].UniswapV3Initializer as Address,\n v3Quoter: ZERO_ADDRESS,\n v4Initializer: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].UniswapV4Initializer as Address,\n dopplerLens: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].DopplerLensQuoter as Address,\n dopplerDeployer: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].DopplerDeployer as Address,\n poolManager: '0xe93882f395B0b24180855c68Ab19B2d78573ceBc' as Address,\n v2Migrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].UniswapV2Migrator as Address,\n v3Migrator: ZERO_ADDRESS,\n v4Migrator: '0xBEd386a1Fc62B6598c9b8d2BF634471B6Fe75EB7' as Address, // Same as v2/v3 migrator\n noOpMigrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].NoOpMigrator as Address,\n governanceFactory: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].GovernanceFactory as Address,\n noOpGovernanceFactory: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].NoOpGovernanceFactory as Address,\n streamableFeesLocker: '0x91231cDdD8d6C86Df602070a3081478e074b97b7' as Address, // Not yet deployed\n universalRouter: ZERO_ADDRESS,\n univ2Router02: ZERO_ADDRESS,\n permit2: '0x000000000022D473030F116dDEE9F6B43aC78BA3' as Address,\n bundler: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].Bundler as Address,\n weth: ZERO_ADDRESS, // TODO: Get Monad Testnet weth\n uniswapV4Quoter: ZERO_ADDRESS,\n },\n [CHAIN_IDS.MONAD_MAINNET]: {\n airlock: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].Airlock as Address,\n tokenFactory: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].TokenFactory as Address,\n v3Initializer: ZERO_ADDRESS,\n v3Quoter: \"0x66266174564170519409d8853898f065c719536b\" as Address,\n v4Initializer: ZERO_ADDRESS,\n dopplerLens: ZERO_ADDRESS,\n dopplerDeployer: ZERO_ADDRESS,\n poolManager: '0x188d586ddcf52439676ca21a244753fa19f9ea8e' as Address,\n v2Migrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].UniswapV2Migrator as Address,\n v3Migrator: ZERO_ADDRESS,\n v4Migrator: ZERO_ADDRESS, // Same as v2/v3 migrator\n noOpMigrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].NoOpMigrator as Address,\n governanceFactory: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].GovernanceFactory as Address,\n noOpGovernanceFactory: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].NoOpGovernanceFactory as Address,\n v4ScheduledMulticurveInitializer: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].UniswapV4ScheduledMulticurveInitializer as Address,\n streamableFeesLocker: ZERO_ADDRESS, // Not yet deployed\n universalRouter: \"0x0d97dc33264bfc1c226207428a79b26757fb9dc3\" as Address,\n univ2Router02: ZERO_ADDRESS,\n permit2: '0x000000000022D473030F116dDEE9F6B43aC78BA3' as Address,\n bundler: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].Bundler as Address,\n weth: \"0xEE8c0E9f1BFFb4Eb878d8f15f368A02a35481242\" as Address, // TODO: Get Monad Mainnet weth\n uniswapV4Quoter: \"0xa222dd357a9076d1091ed6aa2e16c9742dd26891\" as Address,\n }\n}\n/**\n * Get addresses for a specific chain\n */\nexport function getAddresses(chainId: number): ChainAddresses {\n const addresses = ADDRESSES[chainId as SupportedChainId]\n if (!addresses) {\n throw new Error(`Unsupported chain ID: ${chainId}`)\n }\n return addresses\n}\n\n/**\n * List of supported chain IDs for easy iteration/validation\n */\nexport const SUPPORTED_CHAIN_IDS = Object.values(CHAIN_IDS) as SupportedChainId[]\n\n/**\n * Runtime/type guard for narrowing a number to SupportedChainId\n */\nexport function isSupportedChainId(id: number): id is SupportedChainId {\n // Numeric object keys are coerced to strings at runtime; `in` is fine here\n return id in ADDRESSES\n}\n"]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkYYUOLM6U_js = require('./chunk-YYUOLM6U.js');
|
|
4
|
+
|
|
5
|
+
// src/utils/airlock.ts
|
|
6
|
+
var airlockAbi = [
|
|
7
|
+
{
|
|
8
|
+
type: "function",
|
|
9
|
+
name: "owner",
|
|
10
|
+
inputs: [],
|
|
11
|
+
outputs: [{ name: "", type: "address", internalType: "address" }],
|
|
12
|
+
stateMutability: "view"
|
|
13
|
+
}
|
|
14
|
+
];
|
|
15
|
+
var getAirlockOwner = async (publicClient) => {
|
|
16
|
+
const client = publicClient;
|
|
17
|
+
const chainId = client.chain?.id;
|
|
18
|
+
if (!chainId || !chunkYYUOLM6U_js.ADDRESSES[chainId]) {
|
|
19
|
+
throw new Error("Unsupported chain ID for airlock owner lookup");
|
|
20
|
+
}
|
|
21
|
+
const airlockAddress = chunkYYUOLM6U_js.ADDRESSES[chainId].airlock;
|
|
22
|
+
const owner = await client.readContract({
|
|
23
|
+
address: airlockAddress,
|
|
24
|
+
abi: airlockAbi,
|
|
25
|
+
functionName: "owner"
|
|
26
|
+
});
|
|
27
|
+
if (!owner) throw new Error("Airlock owner not found");
|
|
28
|
+
return owner;
|
|
29
|
+
};
|
|
30
|
+
var DEFAULT_AIRLOCK_BENEFICIARY_SHARES = BigInt(5e16);
|
|
31
|
+
var createAirlockBeneficiary = (owner, shares = DEFAULT_AIRLOCK_BENEFICIARY_SHARES) => ({
|
|
32
|
+
beneficiary: owner,
|
|
33
|
+
shares
|
|
34
|
+
});
|
|
35
|
+
var getAirlockBeneficiary = async (publicClient, shares = DEFAULT_AIRLOCK_BENEFICIARY_SHARES) => {
|
|
36
|
+
const owner = await getAirlockOwner(publicClient);
|
|
37
|
+
return createAirlockBeneficiary(owner, shares);
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
exports.DEFAULT_AIRLOCK_BENEFICIARY_SHARES = DEFAULT_AIRLOCK_BENEFICIARY_SHARES;
|
|
41
|
+
exports.createAirlockBeneficiary = createAirlockBeneficiary;
|
|
42
|
+
exports.getAirlockBeneficiary = getAirlockBeneficiary;
|
|
43
|
+
exports.getAirlockOwner = getAirlockOwner;
|
|
44
|
+
//# sourceMappingURL=chunk-BIQQ53O2.js.map
|
|
45
|
+
//# sourceMappingURL=chunk-BIQQ53O2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/airlock.ts"],"names":["ADDRESSES"],"mappings":";;;;;AAIA,IAAM,UAAA,GAAa;AAAA,EACjB;AAAA,IACE,IAAA,EAAM,UAAA;AAAA,IACN,IAAA,EAAM,OAAA;AAAA,IACN,QAAQ,EAAC;AAAA,IACT,OAAA,EAAS,CAAC,EAAE,IAAA,EAAM,IAAI,IAAA,EAAM,SAAA,EAAW,YAAA,EAAc,SAAA,EAAW,CAAA;AAAA,IAChE,eAAA,EAAiB;AAAA;AAErB,CAAA;AAEO,IAAM,eAAA,GAAkB,OAAO,YAAA,KAA4C;AAChF,EAAA,MAAM,MAAA,GAAS,YAAA;AACf,EAAA,MAAM,OAAA,GAAU,OAAO,KAAA,EAAO,EAAA;AAC9B,EAAA,IAAI,CAAC,OAAA,IAAW,CAACA,0BAAA,CAAU,OAAO,CAAA,EAAG;AACnC,IAAA,MAAM,IAAI,MAAM,+CAA+C,CAAA;AAAA,EACjE;AAEA,EAAA,MAAM,cAAA,GAAiBA,0BAAA,CAAU,OAAO,CAAA,CAAE,OAAA;AAE1C,EAAA,MAAM,KAAA,GAAQ,MAAM,MAAA,CAAO,YAAA,CAAa;AAAA,IACtC,OAAA,EAAS,cAAA;AAAA,IACT,GAAA,EAAK,UAAA;AAAA,IACL,YAAA,EAAc;AAAA,GACf,CAAA;AAED,EAAA,IAAI,CAAC,KAAA,EAAO,MAAM,IAAI,MAAM,yBAAyB,CAAA;AACrD,EAAA,OAAO,KAAA;AACT;AAGO,IAAM,kCAAA,GAAqC,OAAO,IAAI;AAEtD,IAAM,wBAAA,GAA2B,CACtC,KAAA,EACA,MAAA,GAAiB,kCAAA,MACI;AAAA,EACrB,WAAA,EAAa,KAAA;AAAA,EACb;AACF,CAAA;AAEO,IAAM,qBAAA,GAAwB,OACnC,YAAA,EACA,MAAA,GAAiB,kCAAA,KACY;AAC7B,EAAA,MAAM,KAAA,GAAQ,MAAM,eAAA,CAAgB,YAAY,CAAA;AAChD,EAAA,OAAO,wBAAA,CAAyB,OAAO,MAAM,CAAA;AAC/C","file":"chunk-BIQQ53O2.js","sourcesContent":["import type { PublicClient, Address } from 'viem'\nimport { ADDRESSES, type SupportedChainId } from '../addresses'\nimport type { BeneficiaryData } from '../types'\n\nconst airlockAbi = [\n {\n type: 'function',\n name: 'owner',\n inputs: [],\n outputs: [{ name: '', type: 'address', internalType: 'address' }],\n stateMutability: 'view',\n },\n] as const;\n\nexport const getAirlockOwner = async (publicClient: unknown): Promise<Address> => {\n const client = publicClient as PublicClient\n const chainId = client.chain?.id as SupportedChainId | undefined\n if (!chainId || !ADDRESSES[chainId]) {\n throw new Error('Unsupported chain ID for airlock owner lookup')\n }\n\n const airlockAddress = ADDRESSES[chainId].airlock\n\n const owner = await client.readContract({\n address: airlockAddress,\n abi: airlockAbi,\n functionName: 'owner',\n })\n\n if (!owner) throw new Error('Airlock owner not found')\n return owner as Address\n}\n\n// Default airlock beneficiary shares (5% = 0.05e18 WAD)\nexport const DEFAULT_AIRLOCK_BENEFICIARY_SHARES = BigInt(5e16) // 5% in WAD\n\nexport const createAirlockBeneficiary = (\n owner: Address,\n shares: bigint = DEFAULT_AIRLOCK_BENEFICIARY_SHARES\n): BeneficiaryData => ({\n beneficiary: owner,\n shares,\n})\n\nexport const getAirlockBeneficiary = async (\n publicClient: unknown,\n shares: bigint = DEFAULT_AIRLOCK_BENEFICIARY_SHARES\n): Promise<BeneficiaryData> => {\n const owner = await getAirlockOwner(publicClient)\n return createAirlockBeneficiary(owner, shares)\n}\n"]}
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkZPHOOG72_js = require('./chunk-ZPHOOG72.js');
|
|
4
|
+
var chunkAS64GWBX_js = require('./chunk-AS64GWBX.js');
|
|
5
|
+
var chunkPH2KXREH_js = require('./chunk-PH2KXREH.js');
|
|
6
|
+
var chunkOKNM7ODQ_js = require('./chunk-OKNM7ODQ.js');
|
|
7
|
+
|
|
8
|
+
// src/builders/StaticAuctionBuilder.ts
|
|
9
|
+
var StaticAuctionBuilder = class _StaticAuctionBuilder {
|
|
10
|
+
constructor(chainId) {
|
|
11
|
+
this.chainId = chainId;
|
|
12
|
+
}
|
|
13
|
+
static forChain(chainId) {
|
|
14
|
+
return new _StaticAuctionBuilder(chainId);
|
|
15
|
+
}
|
|
16
|
+
tokenConfig(params) {
|
|
17
|
+
if (params && "type" in params && params.type === "doppler404") {
|
|
18
|
+
this.token = {
|
|
19
|
+
type: "doppler404",
|
|
20
|
+
name: params.name,
|
|
21
|
+
symbol: params.symbol,
|
|
22
|
+
baseURI: params.baseURI,
|
|
23
|
+
unit: params.unit
|
|
24
|
+
};
|
|
25
|
+
} else {
|
|
26
|
+
this.token = {
|
|
27
|
+
type: "standard",
|
|
28
|
+
name: params.name,
|
|
29
|
+
symbol: params.symbol,
|
|
30
|
+
tokenURI: params.tokenURI,
|
|
31
|
+
yearlyMintRate: params.yearlyMintRate ?? chunkPH2KXREH_js.DEFAULT_V3_YEARLY_MINT_RATE
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
return this;
|
|
35
|
+
}
|
|
36
|
+
saleConfig(params) {
|
|
37
|
+
this.sale = {
|
|
38
|
+
initialSupply: params.initialSupply,
|
|
39
|
+
numTokensToSell: params.numTokensToSell,
|
|
40
|
+
numeraire: params.numeraire
|
|
41
|
+
};
|
|
42
|
+
return this;
|
|
43
|
+
}
|
|
44
|
+
// Provide pool ticks directly
|
|
45
|
+
poolByTicks(params) {
|
|
46
|
+
const fee = params.fee ?? chunkPH2KXREH_js.DEFAULT_V3_FEE;
|
|
47
|
+
const startTick = params.startTick ?? chunkPH2KXREH_js.DEFAULT_V3_START_TICK;
|
|
48
|
+
const endTick = params.endTick ?? chunkPH2KXREH_js.DEFAULT_V3_END_TICK;
|
|
49
|
+
this.pool = {
|
|
50
|
+
startTick,
|
|
51
|
+
endTick,
|
|
52
|
+
fee,
|
|
53
|
+
numPositions: params.numPositions ?? chunkPH2KXREH_js.DEFAULT_V3_NUM_POSITIONS,
|
|
54
|
+
maxShareToBeSold: params.maxShareToBeSold ?? chunkPH2KXREH_js.DEFAULT_V3_MAX_SHARE_TO_BE_SOLD
|
|
55
|
+
};
|
|
56
|
+
return this;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* @deprecated Use withMarketCapRange() instead for more intuitive market cap configuration
|
|
60
|
+
*/
|
|
61
|
+
poolByPriceRange(params) {
|
|
62
|
+
const fee = params.fee ?? chunkPH2KXREH_js.DEFAULT_V3_FEE;
|
|
63
|
+
const tickSpacing = fee === 100 ? chunkPH2KXREH_js.TICK_SPACINGS[100] : fee === 500 ? chunkPH2KXREH_js.TICK_SPACINGS[500] : fee === 3e3 ? chunkPH2KXREH_js.TICK_SPACINGS[3e3] : chunkPH2KXREH_js.TICK_SPACINGS[1e4];
|
|
64
|
+
const ticks = chunkZPHOOG72_js.computeTicks(params.priceRange, tickSpacing);
|
|
65
|
+
return this.poolByTicks({
|
|
66
|
+
startTick: ticks.startTick,
|
|
67
|
+
endTick: ticks.endTick,
|
|
68
|
+
fee,
|
|
69
|
+
numPositions: params.numPositions,
|
|
70
|
+
maxShareToBeSold: params.maxShareToBeSold
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Configure pool using target market cap range.
|
|
75
|
+
* Converts market cap values (in USD) to Uniswap ticks.
|
|
76
|
+
*
|
|
77
|
+
* @param params - Market cap configuration
|
|
78
|
+
* @returns Builder instance for chaining
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* ```ts
|
|
82
|
+
* builder
|
|
83
|
+
* .saleConfig({ initialSupply, numTokensToSell, numeraire: WETH })
|
|
84
|
+
* .withMarketCapRange({
|
|
85
|
+
* marketCap: { start: 100_000, end: 10_000_000 }, // $100k to $10M
|
|
86
|
+
* numerairePrice: 3000, // ETH = $3000
|
|
87
|
+
* })
|
|
88
|
+
* ```
|
|
89
|
+
*/
|
|
90
|
+
withMarketCapRange(params) {
|
|
91
|
+
if (!this.sale?.numeraire) {
|
|
92
|
+
throw new Error("Must call saleConfig() before withMarketCapRange()");
|
|
93
|
+
}
|
|
94
|
+
const tokenSupply = params.tokenSupply ?? this.sale.initialSupply;
|
|
95
|
+
if (!tokenSupply) {
|
|
96
|
+
throw new Error(
|
|
97
|
+
"tokenSupply must be provided (either via saleConfig() or withMarketCapRange() params)"
|
|
98
|
+
);
|
|
99
|
+
}
|
|
100
|
+
const fee = params.fee ?? chunkPH2KXREH_js.DEFAULT_V3_FEE;
|
|
101
|
+
const tickSpacing = fee === 100 ? chunkPH2KXREH_js.TICK_SPACINGS[100] : fee === 500 ? chunkPH2KXREH_js.TICK_SPACINGS[500] : fee === 3e3 ? chunkPH2KXREH_js.TICK_SPACINGS[3e3] : chunkPH2KXREH_js.TICK_SPACINGS[1e4];
|
|
102
|
+
const startValidation = chunkAS64GWBX_js.validateMarketCapParameters(
|
|
103
|
+
params.marketCap.start,
|
|
104
|
+
tokenSupply,
|
|
105
|
+
params.tokenDecimals
|
|
106
|
+
);
|
|
107
|
+
const endValidation = chunkAS64GWBX_js.validateMarketCapParameters(
|
|
108
|
+
params.marketCap.end,
|
|
109
|
+
tokenSupply,
|
|
110
|
+
params.tokenDecimals
|
|
111
|
+
);
|
|
112
|
+
const allWarnings = [...startValidation.warnings, ...endValidation.warnings];
|
|
113
|
+
if (allWarnings.length > 0) {
|
|
114
|
+
console.warn("Market cap validation warnings:");
|
|
115
|
+
allWarnings.forEach((w) => console.warn(` - ${w}`));
|
|
116
|
+
}
|
|
117
|
+
const { startTick: rawStartTick, endTick: rawEndTick } = chunkAS64GWBX_js.marketCapRangeToTicks(
|
|
118
|
+
params.marketCap,
|
|
119
|
+
tokenSupply,
|
|
120
|
+
params.numerairePrice,
|
|
121
|
+
params.tokenDecimals ?? 18,
|
|
122
|
+
params.numeraireDecimals ?? 18,
|
|
123
|
+
tickSpacing,
|
|
124
|
+
this.sale.numeraire
|
|
125
|
+
);
|
|
126
|
+
const { startTick, endTick } = chunkAS64GWBX_js.transformTicksForAuction(
|
|
127
|
+
rawStartTick,
|
|
128
|
+
rawEndTick,
|
|
129
|
+
this.sale.numeraire
|
|
130
|
+
);
|
|
131
|
+
return this.poolByTicks({
|
|
132
|
+
startTick,
|
|
133
|
+
endTick,
|
|
134
|
+
fee,
|
|
135
|
+
numPositions: params.numPositions,
|
|
136
|
+
maxShareToBeSold: params.maxShareToBeSold
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Configure beneficiaries for fee streaming on locked V3 pools.
|
|
141
|
+
*
|
|
142
|
+
* When beneficiaries are provided, the pool enters a "Locked" state where:
|
|
143
|
+
* - Fees are collected and distributed to beneficiaries according to their shares
|
|
144
|
+
* - Liquidity cannot be exited/migrated (pool stays locked permanently)
|
|
145
|
+
* - Anyone can call collectFees() to distribute accumulated fees
|
|
146
|
+
*
|
|
147
|
+
* IMPORTANT:
|
|
148
|
+
* - Shares must sum to exactly WAD (1e18 = 100%)
|
|
149
|
+
* - Protocol owner (Airlock.owner()) must be included with at least 5% shares
|
|
150
|
+
* - Beneficiaries will be automatically sorted by address (ascending)
|
|
151
|
+
* - Use withMigration({ type: 'noOp' }) when using beneficiaries
|
|
152
|
+
*
|
|
153
|
+
* @example
|
|
154
|
+
* ```typescript
|
|
155
|
+
* builder.withBeneficiaries([
|
|
156
|
+
* { beneficiary: protocolOwner, shares: parseEther('0.05') }, // 5% (minimum required)
|
|
157
|
+
* { beneficiary: teamWallet, shares: parseEther('0.45') }, // 45%
|
|
158
|
+
* { beneficiary: daoTreasury, shares: parseEther('0.50') }, // 50%
|
|
159
|
+
* ])
|
|
160
|
+
* ```
|
|
161
|
+
*/
|
|
162
|
+
withBeneficiaries(beneficiaries) {
|
|
163
|
+
this.beneficiaries = [...beneficiaries].sort((a, b) => {
|
|
164
|
+
const aAddr = a.beneficiary.toLowerCase();
|
|
165
|
+
const bAddr = b.beneficiary.toLowerCase();
|
|
166
|
+
return aAddr < bAddr ? -1 : aAddr > bAddr ? 1 : 0;
|
|
167
|
+
});
|
|
168
|
+
return this;
|
|
169
|
+
}
|
|
170
|
+
withVesting(params) {
|
|
171
|
+
if (!params) {
|
|
172
|
+
this.vesting = void 0;
|
|
173
|
+
return this;
|
|
174
|
+
}
|
|
175
|
+
this.vesting = {
|
|
176
|
+
duration: Number(params.duration ?? chunkPH2KXREH_js.DEFAULT_V3_VESTING_DURATION),
|
|
177
|
+
cliffDuration: params.cliffDuration ?? 0,
|
|
178
|
+
recipients: params.recipients,
|
|
179
|
+
amounts: params.amounts
|
|
180
|
+
};
|
|
181
|
+
return this;
|
|
182
|
+
}
|
|
183
|
+
withGovernance(params) {
|
|
184
|
+
this.governance = params;
|
|
185
|
+
return this;
|
|
186
|
+
}
|
|
187
|
+
withMigration(migration) {
|
|
188
|
+
this.migration = migration;
|
|
189
|
+
return this;
|
|
190
|
+
}
|
|
191
|
+
withUserAddress(address) {
|
|
192
|
+
this.userAddress = address;
|
|
193
|
+
return this;
|
|
194
|
+
}
|
|
195
|
+
withIntegrator(address) {
|
|
196
|
+
this.integrator = address ?? chunkPH2KXREH_js.ZERO_ADDRESS;
|
|
197
|
+
return this;
|
|
198
|
+
}
|
|
199
|
+
withGasLimit(gas) {
|
|
200
|
+
this.gasLimit = gas;
|
|
201
|
+
return this;
|
|
202
|
+
}
|
|
203
|
+
// Address override helpers
|
|
204
|
+
overrideModule(key, address) {
|
|
205
|
+
this.moduleAddresses = {
|
|
206
|
+
...this.moduleAddresses ?? {},
|
|
207
|
+
[key]: address
|
|
208
|
+
};
|
|
209
|
+
return this;
|
|
210
|
+
}
|
|
211
|
+
withTokenFactory(address) {
|
|
212
|
+
return this.overrideModule("tokenFactory", address);
|
|
213
|
+
}
|
|
214
|
+
withAirlock(address) {
|
|
215
|
+
return this.overrideModule("airlock", address);
|
|
216
|
+
}
|
|
217
|
+
withV3Initializer(address) {
|
|
218
|
+
return this.overrideModule("v3Initializer", address);
|
|
219
|
+
}
|
|
220
|
+
withGovernanceFactory(address) {
|
|
221
|
+
return this.overrideModule("governanceFactory", address);
|
|
222
|
+
}
|
|
223
|
+
withV2Migrator(address) {
|
|
224
|
+
return this.overrideModule("v2Migrator", address);
|
|
225
|
+
}
|
|
226
|
+
withV3Migrator(address) {
|
|
227
|
+
return this.overrideModule("v3Migrator", address);
|
|
228
|
+
}
|
|
229
|
+
withV4Migrator(address) {
|
|
230
|
+
return this.overrideModule("v4Migrator", address);
|
|
231
|
+
}
|
|
232
|
+
withNoOpMigrator(address) {
|
|
233
|
+
return this.overrideModule("noOpMigrator", address);
|
|
234
|
+
}
|
|
235
|
+
build() {
|
|
236
|
+
if (!this.token) throw new Error("tokenConfig is required");
|
|
237
|
+
if (!this.sale) throw new Error("saleConfig is required");
|
|
238
|
+
if (!this.pool) throw new Error("pool configuration is required");
|
|
239
|
+
if (!this.migration) throw new Error("migration configuration is required");
|
|
240
|
+
if (!this.userAddress) throw new Error("userAddress is required");
|
|
241
|
+
const governance = this.governance ?? (chunkOKNM7ODQ_js.isNoOpEnabledChain(this.chainId) ? { type: "noOp" } : { type: "default" });
|
|
242
|
+
const poolWithBeneficiaries = this.beneficiaries ? { ...this.pool, beneficiaries: this.beneficiaries } : this.pool;
|
|
243
|
+
return {
|
|
244
|
+
token: this.token,
|
|
245
|
+
sale: this.sale,
|
|
246
|
+
pool: poolWithBeneficiaries,
|
|
247
|
+
vesting: this.vesting,
|
|
248
|
+
governance,
|
|
249
|
+
migration: this.migration,
|
|
250
|
+
integrator: this.integrator ?? chunkPH2KXREH_js.ZERO_ADDRESS,
|
|
251
|
+
userAddress: this.userAddress,
|
|
252
|
+
modules: this.moduleAddresses,
|
|
253
|
+
gas: this.gasLimit
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
};
|
|
257
|
+
|
|
258
|
+
exports.StaticAuctionBuilder = StaticAuctionBuilder;
|
|
259
|
+
//# sourceMappingURL=chunk-C6MPV3CY.js.map
|
|
260
|
+
//# sourceMappingURL=chunk-C6MPV3CY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/builders/StaticAuctionBuilder.ts"],"names":["DEFAULT_V3_YEARLY_MINT_RATE","DEFAULT_V3_FEE","DEFAULT_V3_START_TICK","DEFAULT_V3_END_TICK","DEFAULT_V3_NUM_POSITIONS","DEFAULT_V3_MAX_SHARE_TO_BE_SOLD","TICK_SPACINGS","computeTicks","validateMarketCapParameters","marketCapRangeToTicks","transformTicksForAuction","DEFAULT_V3_VESTING_DURATION","ZERO_ADDRESS","isNoOpEnabledChain"],"mappings":"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","file":"chunk-C6MPV3CY.js","sourcesContent":["import type { Address } from 'viem'\nimport {\n DEFAULT_V3_END_TICK,\n DEFAULT_V3_FEE,\n DEFAULT_V3_MAX_SHARE_TO_BE_SOLD,\n DEFAULT_V3_NUM_POSITIONS,\n DEFAULT_V3_START_TICK,\n DEFAULT_V3_VESTING_DURATION,\n DEFAULT_V3_YEARLY_MINT_RATE,\n TICK_SPACINGS,\n ZERO_ADDRESS,\n} from '../constants'\nimport {\n marketCapRangeToTicks,\n transformTicksForAuction,\n validateMarketCapParameters,\n} from '../utils'\nimport {\n isNoOpEnabledChain,\n type CreateStaticAuctionParams,\n type GovernanceOption,\n type MigrationConfig,\n type PriceRange,\n type VestingConfig,\n type TokenConfig,\n type StaticAuctionMarketCapConfig,\n type ModuleAddressOverrides,\n} from '../types'\nimport { type SupportedChainId } from '../addresses'\nimport { computeTicks, type BaseAuctionBuilder } from './shared'\n\nexport class StaticAuctionBuilder<C extends SupportedChainId>\n implements BaseAuctionBuilder<C> {\n private token?: TokenConfig\n private sale?: CreateStaticAuctionParams<C>['sale']\n private pool?: CreateStaticAuctionParams<C>['pool']\n private beneficiaries?: { beneficiary: Address; shares: bigint }[]\n private vesting?: VestingConfig\n private governance?: GovernanceOption<C>\n private migration?: MigrationConfig\n private integrator?: Address\n private userAddress?: Address\n private moduleAddresses?: ModuleAddressOverrides\n private gasLimit?: bigint\n public chainId: C\n\n constructor(chainId: C) {\n this.chainId = chainId\n }\n\n static forChain<C extends SupportedChainId>(chainId: C): StaticAuctionBuilder<C> {\n return new StaticAuctionBuilder(chainId)\n }\n\n tokenConfig(\n params:\n | { type?: 'standard'; name: string; symbol: string; tokenURI: string; yearlyMintRate?: bigint }\n | { type: 'doppler404'; name: string; symbol: string; baseURI: string; unit?: bigint }\n ): this {\n if (params && 'type' in params && params.type === 'doppler404') {\n this.token = {\n type: 'doppler404',\n name: params.name,\n symbol: params.symbol,\n baseURI: params.baseURI,\n unit: params.unit,\n }\n } else {\n this.token = {\n type: 'standard',\n name: params.name,\n symbol: params.symbol,\n tokenURI: params.tokenURI,\n yearlyMintRate: params.yearlyMintRate ?? DEFAULT_V3_YEARLY_MINT_RATE,\n }\n }\n return this\n }\n\n saleConfig(params: {\n initialSupply: bigint\n numTokensToSell: bigint\n numeraire: Address\n }): this {\n this.sale = {\n initialSupply: params.initialSupply,\n numTokensToSell: params.numTokensToSell,\n numeraire: params.numeraire,\n }\n return this\n }\n\n // Provide pool ticks directly\n poolByTicks(params: {\n startTick?: number\n endTick?: number\n fee?: number\n numPositions?: number\n maxShareToBeSold?: bigint\n }): this {\n const fee = params.fee ?? DEFAULT_V3_FEE\n const startTick = params.startTick ?? DEFAULT_V3_START_TICK\n const endTick = params.endTick ?? DEFAULT_V3_END_TICK\n this.pool = {\n startTick,\n endTick,\n fee,\n numPositions: params.numPositions ?? DEFAULT_V3_NUM_POSITIONS,\n maxShareToBeSold: params.maxShareToBeSold ?? DEFAULT_V3_MAX_SHARE_TO_BE_SOLD,\n }\n return this\n }\n\n /**\n * @deprecated Use withMarketCapRange() instead for more intuitive market cap configuration\n */\n poolByPriceRange(params: {\n priceRange: PriceRange\n fee?: number\n numPositions?: number\n maxShareToBeSold?: bigint\n }): this {\n const fee = params.fee ?? DEFAULT_V3_FEE\n const tickSpacing =\n fee === 100 ? TICK_SPACINGS[100] : fee === 500 ? TICK_SPACINGS[500] : fee === 3000 ? TICK_SPACINGS[3000] : TICK_SPACINGS[10000]\n const ticks = computeTicks(params.priceRange, tickSpacing)\n return this.poolByTicks({\n startTick: ticks.startTick,\n endTick: ticks.endTick,\n fee,\n numPositions: params.numPositions,\n maxShareToBeSold: params.maxShareToBeSold,\n })\n }\n\n /**\n * Configure pool using target market cap range.\n * Converts market cap values (in USD) to Uniswap ticks.\n *\n * @param params - Market cap configuration\n * @returns Builder instance for chaining\n *\n * @example\n * ```ts\n * builder\n * .saleConfig({ initialSupply, numTokensToSell, numeraire: WETH })\n * .withMarketCapRange({\n * marketCap: { start: 100_000, end: 10_000_000 }, // $100k to $10M\n * numerairePrice: 3000, // ETH = $3000\n * })\n * ```\n */\n withMarketCapRange(params: StaticAuctionMarketCapConfig): this {\n // Validate required config exists\n if (!this.sale?.numeraire) {\n throw new Error('Must call saleConfig() before withMarketCapRange()')\n }\n\n // Get token supply from config or param\n const tokenSupply = params.tokenSupply ?? this.sale.initialSupply\n if (!tokenSupply) {\n throw new Error(\n 'tokenSupply must be provided (either via saleConfig() or withMarketCapRange() params)'\n )\n }\n\n // Determine fee and tick spacing\n const fee = params.fee ?? DEFAULT_V3_FEE\n const tickSpacing =\n fee === 100 ? TICK_SPACINGS[100] :\n fee === 500 ? TICK_SPACINGS[500] :\n fee === 3000 ? TICK_SPACINGS[3000] :\n TICK_SPACINGS[10000]\n\n // Validate market cap parameters\n const startValidation = validateMarketCapParameters(\n params.marketCap.start,\n tokenSupply,\n params.tokenDecimals\n )\n const endValidation = validateMarketCapParameters(\n params.marketCap.end,\n tokenSupply,\n params.tokenDecimals\n )\n\n // Log warnings if any\n const allWarnings = [...startValidation.warnings, ...endValidation.warnings]\n if (allWarnings.length > 0) {\n console.warn('Market cap validation warnings:')\n allWarnings.forEach(w => console.warn(` - ${w}`))\n }\n\n // Convert market cap range to ticks and transform for auction contract\n const { startTick: rawStartTick, endTick: rawEndTick } = marketCapRangeToTicks(\n params.marketCap,\n tokenSupply,\n params.numerairePrice,\n params.tokenDecimals ?? 18,\n params.numeraireDecimals ?? 18,\n tickSpacing,\n this.sale.numeraire\n )\n\n const { startTick, endTick } = transformTicksForAuction(\n rawStartTick,\n rawEndTick,\n this.sale.numeraire\n )\n\n // Delegate to existing poolByTicks method\n return this.poolByTicks({\n startTick,\n endTick,\n fee,\n numPositions: params.numPositions,\n maxShareToBeSold: params.maxShareToBeSold,\n })\n }\n\n /**\n * Configure beneficiaries for fee streaming on locked V3 pools.\n *\n * When beneficiaries are provided, the pool enters a \"Locked\" state where:\n * - Fees are collected and distributed to beneficiaries according to their shares\n * - Liquidity cannot be exited/migrated (pool stays locked permanently)\n * - Anyone can call collectFees() to distribute accumulated fees\n *\n * IMPORTANT:\n * - Shares must sum to exactly WAD (1e18 = 100%)\n * - Protocol owner (Airlock.owner()) must be included with at least 5% shares\n * - Beneficiaries will be automatically sorted by address (ascending)\n * - Use withMigration({ type: 'noOp' }) when using beneficiaries\n *\n * @example\n * ```typescript\n * builder.withBeneficiaries([\n * { beneficiary: protocolOwner, shares: parseEther('0.05') }, // 5% (minimum required)\n * { beneficiary: teamWallet, shares: parseEther('0.45') }, // 45%\n * { beneficiary: daoTreasury, shares: parseEther('0.50') }, // 50%\n * ])\n * ```\n */\n withBeneficiaries(beneficiaries: { beneficiary: Address; shares: bigint }[]): this {\n // Sort beneficiaries by address (ascending) as required by the contract\n this.beneficiaries = [...beneficiaries].sort((a, b) => {\n const aAddr = a.beneficiary.toLowerCase()\n const bAddr = b.beneficiary.toLowerCase()\n return aAddr < bAddr ? -1 : aAddr > bAddr ? 1 : 0\n })\n return this\n }\n\n withVesting(params?: { duration?: bigint; cliffDuration?: number; recipients?: Address[]; amounts?: bigint[] }): this {\n if (!params) {\n this.vesting = undefined\n return this\n }\n this.vesting = {\n duration: Number(params.duration ?? DEFAULT_V3_VESTING_DURATION),\n cliffDuration: params.cliffDuration ?? 0,\n recipients: params.recipients,\n amounts: params.amounts,\n }\n return this\n }\n\n withGovernance(params: GovernanceOption<C>): this {\n this.governance = params\n return this\n }\n\n withMigration(migration: MigrationConfig): this {\n this.migration = migration\n return this\n }\n\n withUserAddress(address: Address): this {\n this.userAddress = address\n return this\n }\n\n withIntegrator(address?: Address): this {\n this.integrator = address ?? ZERO_ADDRESS\n return this\n }\n\n withGasLimit(gas?: bigint): this {\n this.gasLimit = gas\n return this\n }\n\n // Address override helpers\n private overrideModule<K extends keyof ModuleAddressOverrides>(key: K, address: NonNullable<ModuleAddressOverrides[K]>): this {\n this.moduleAddresses = {\n ...(this.moduleAddresses ?? {}),\n [key]: address,\n } as ModuleAddressOverrides\n return this\n }\n\n withTokenFactory(address: Address): this {\n return this.overrideModule('tokenFactory', address)\n }\n\n withAirlock(address: Address): this {\n return this.overrideModule('airlock', address)\n }\n\n withV3Initializer(address: Address): this {\n return this.overrideModule('v3Initializer', address)\n }\n\n withGovernanceFactory(address: Address): this {\n return this.overrideModule('governanceFactory', address)\n }\n\n withV2Migrator(address: Address): this {\n return this.overrideModule('v2Migrator', address)\n }\n\n withV3Migrator(address: Address): this {\n return this.overrideModule('v3Migrator', address)\n }\n\n withV4Migrator(address: Address): this {\n return this.overrideModule('v4Migrator', address)\n }\n\n withNoOpMigrator(address: Address): this {\n return this.overrideModule('noOpMigrator', address)\n }\n\n build(): CreateStaticAuctionParams<C> {\n if (!this.token) throw new Error('tokenConfig is required')\n if (!this.sale) throw new Error('saleConfig is required')\n if (!this.pool) throw new Error('pool configuration is required')\n if (!this.migration) throw new Error('migration configuration is required')\n if (!this.userAddress) throw new Error('userAddress is required')\n\n // Default governance: noOp on supported chains, default on others (e.g., Ink)\n const governance = this.governance ?? (\n isNoOpEnabledChain(this.chainId)\n ? { type: 'noOp' as const }\n : { type: 'default' as const }\n )\n\n // Merge beneficiaries into pool config if provided\n const poolWithBeneficiaries = this.beneficiaries\n ? { ...this.pool, beneficiaries: this.beneficiaries }\n : this.pool\n\n return {\n token: this.token,\n sale: this.sale,\n pool: poolWithBeneficiaries,\n vesting: this.vesting,\n governance: governance as GovernanceOption<C>,\n migration: this.migration,\n integrator: this.integrator ?? ZERO_ADDRESS,\n userAddress: this.userAddress,\n modules: this.moduleAddresses,\n gas: this.gasLimit,\n }\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getNearestUsableTick, priceToTick, tickToPrice } from './chunk-
|
|
1
|
+
import { getNearestUsableTick, priceToTick, tickToPrice } from './chunk-KDT76YQE.mjs';
|
|
2
2
|
import { parseEther, formatEther } from 'viem';
|
|
3
3
|
|
|
4
4
|
function calculateTickRange(minPrice, maxPrice, tickSpacing, wethDecimals = 18, tokenDecimals = 18) {
|
|
@@ -16,8 +16,8 @@ function calculateTokensToSell(targetRaiseETH, avgPricePerToken) {
|
|
|
16
16
|
const tokensToSell = targetRaiseETH / avgPricePerToken;
|
|
17
17
|
return parseEther(tokensToSell.toFixed(18));
|
|
18
18
|
}
|
|
19
|
-
function calculateGamma(startTick, endTick,
|
|
20
|
-
const totalEpochs =
|
|
19
|
+
function calculateGamma(startTick, endTick, duration, epochLength) {
|
|
20
|
+
const totalEpochs = duration / epochLength;
|
|
21
21
|
const tickRange = Math.abs(endTick - startTick);
|
|
22
22
|
return Math.floor(tickRange / totalEpochs);
|
|
23
23
|
}
|
|
@@ -63,5 +63,5 @@ function estimateSlippage(amountIn, liquidity, currentTick, fee) {
|
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
export { calculateFDV, calculateGamma, calculateMarketCap, calculateTickRange, calculateTokensToSell, estimatePriceAtEpoch, estimateSlippage, formatTickAsPrice };
|
|
66
|
-
//# sourceMappingURL=chunk-
|
|
67
|
-
//# sourceMappingURL=chunk-
|
|
66
|
+
//# sourceMappingURL=chunk-CLEQO6GU.mjs.map
|
|
67
|
+
//# sourceMappingURL=chunk-CLEQO6GU.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/priceHelpers.ts"],"names":[],"mappings":"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","file":"chunk-CLEQO6GU.mjs","sourcesContent":["/**\n * Price helper utilities for common token launch scenarios\n */\n\nimport { parseEther, formatEther } from 'viem'\nimport { priceToTick, tickToPrice, getNearestUsableTick } from './tickMath'\n\n/**\n * Calculate the tick range for a desired price range\n * @param minPrice Minimum price (ETH per token)\n * @param maxPrice Maximum price (ETH per token)\n * @param tickSpacing The tick spacing of the pool\n * @param wethDecimals Decimals of WETH (usually 18)\n * @param tokenDecimals Decimals of the token (usually 18)\n * @returns Object with startTick and endTick\n */\nexport function calculateTickRange(\n minPrice: number,\n maxPrice: number,\n tickSpacing: number,\n wethDecimals = 18,\n tokenDecimals = 18\n): { startTick: number; endTick: number } {\n // For token/WETH pools, we need to invert the price\n // because Uniswap orders tokens by address\n const startTick = getNearestUsableTick(\n priceToTick(1 / maxPrice, tokenDecimals, wethDecimals),\n tickSpacing\n )\n \n const endTick = getNearestUsableTick(\n priceToTick(1 / minPrice, tokenDecimals, wethDecimals),\n tickSpacing\n )\n \n return { startTick, endTick }\n}\n\n/**\n * Calculate the number of tokens to sell based on desired raise\n * @param targetRaiseETH Target amount to raise in ETH\n * @param avgPricePerToken Average expected price per token in ETH\n * @returns Number of tokens to sell (as bigint)\n */\nexport function calculateTokensToSell(\n targetRaiseETH: number,\n avgPricePerToken: number\n): bigint {\n const tokensToSell = targetRaiseETH / avgPricePerToken\n return parseEther(tokensToSell.toFixed(18))\n}\n\n/**\n * Calculate gamma for dynamic auctions\n * @param startTick Starting tick\n * @param endTick Ending tick\n * @param duration Duration in seconds\n * @param epochLength Epoch length in seconds\n * @returns Gamma value\n */\nexport function calculateGamma(\n startTick: number,\n endTick: number,\n duration: number,\n epochLength: number\n): number {\n const totalEpochs = duration / epochLength\n const tickRange = Math.abs(endTick - startTick)\n return Math.floor(tickRange / totalEpochs)\n}\n\n/**\n * Estimate the price at a specific epoch in a dynamic auction\n * @param startTick Starting tick\n * @param gamma Tick movement per epoch\n * @param currentEpoch Current epoch number\n * @param tokenDecimals Token decimals\n * @param wethDecimals WETH decimals\n * @param isIncreasing Whether price increases (true) or decreases (false) over time\n * @returns Estimated price in ETH per token\n */\nexport function estimatePriceAtEpoch(\n startTick: number,\n gamma: number,\n currentEpoch: number,\n tokenDecimals = 18,\n wethDecimals = 18,\n isIncreasing = true\n): number {\n const direction = isIncreasing ? 1 : -1\n const currentTick = startTick + (currentEpoch * gamma * direction)\n \n // Get price from tick (returns WETH/token)\n const wethPerToken = tickToPrice(currentTick, tokenDecimals, wethDecimals, false)\n \n // Invert to get ETH per token\n return 1 / wethPerToken\n}\n\n/**\n * Format a tick value to a human-readable price string\n * @param tick The tick value\n * @param tokenSymbol Symbol of the token\n * @param numeraireSymbol Symbol of the numeraire (e.g., \"ETH\")\n * @param tokenDecimals Token decimals\n * @param numeraireDecimals Numeraire decimals\n * @returns Formatted price string\n */\nexport function formatTickAsPrice(\n tick: number,\n tokenSymbol: string,\n numeraireSymbol: string,\n tokenDecimals = 18,\n numeraireDecimals = 18\n): string {\n const price = tickToPrice(tick, tokenDecimals, numeraireDecimals, false)\n const ethPerToken = 1 / price\n \n if (ethPerToken < 0.0001) {\n return `${ethPerToken.toExponential(2)} ${numeraireSymbol} per ${tokenSymbol}`\n } else if (ethPerToken < 1) {\n return `${ethPerToken.toFixed(6)} ${numeraireSymbol} per ${tokenSymbol}`\n } else {\n return `${ethPerToken.toFixed(2)} ${numeraireSymbol} per ${tokenSymbol}`\n }\n}\n\n/**\n * Calculate the market cap at a given price\n * @param totalSupply Total token supply (as bigint)\n * @param pricePerToken Price per token in ETH\n * @param ethPrice Current ETH price in USD (optional)\n * @returns Market cap object with ETH and USD values\n */\nexport function calculateMarketCap(\n totalSupply: bigint,\n pricePerToken: number,\n ethPrice?: number\n): { eth: string; usd?: string } {\n const totalSupplyNumber = Number(formatEther(totalSupply))\n const marketCapETH = totalSupplyNumber * pricePerToken\n \n const result: { eth: string; usd?: string } = {\n eth: `${marketCapETH.toFixed(2)} ETH`\n }\n \n if (ethPrice) {\n const marketCapUSD = marketCapETH * ethPrice\n result.usd = `$${marketCapUSD.toLocaleString('en-US', { maximumFractionDigits: 0 })}`\n }\n \n return result\n}\n\n/**\n * Calculate fully diluted valuation (FDV)\n * @param totalSupply Total token supply including vested tokens (as bigint)\n * @param pricePerToken Price per token in ETH\n * @param ethPrice Current ETH price in USD (optional)\n * @returns FDV object with ETH and USD values\n */\nexport function calculateFDV(\n totalSupply: bigint,\n pricePerToken: number,\n ethPrice?: number\n): { eth: string; usd?: string } {\n // FDV is the same calculation as market cap but includes all tokens\n return calculateMarketCap(totalSupply, pricePerToken, ethPrice)\n}\n\n/**\n * Estimate slippage for a trade in a concentrated liquidity pool\n * @param amountIn Amount to trade\n * @param liquidity Current liquidity\n * @param currentTick Current tick\n * @param fee Pool fee (e.g., 3000 for 0.3%)\n * @returns Estimated slippage percentage\n */\nexport function estimateSlippage(\n amountIn: bigint,\n liquidity: bigint,\n currentTick: number,\n fee: number\n): number {\n // Simplified slippage estimation\n // In practice, you'd need to simulate the swap through tick ranges\n const feeMultiplier = 1 - (fee / 1000000)\n const liquidityNumber = Number(liquidity) / 1e18\n const amountNumber = Number(amountIn) / 1e18\n \n // Basic approximation: slippage increases with trade size relative to liquidity\n const impactRatio = amountNumber / liquidityNumber\n const slippage = impactRatio * 100 * feeMultiplier\n \n return Math.min(slippage, 100) // Cap at 100%\n}"]}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// src/deployments.generated.ts
|
|
4
|
+
var GENERATED_DOPPLER_DEPLOYMENTS = {
|
|
5
|
+
"130": {
|
|
6
|
+
"Airlock": "0x77EbfBAE15AD200758E9E2E61597c0B07d731254",
|
|
7
|
+
"Bundler": "0x91231cDdD8d6C86Df602070a3081478e074b97b7",
|
|
8
|
+
"DopplerDeployer": "0x0d2f38d807bfAd5C18e430516e10ab560D300caF",
|
|
9
|
+
"DopplerLensQuoter": "0x82Ac010C67f70BACf7655cd8948a4AD92A173CAC",
|
|
10
|
+
"GovernanceFactory": "0x99C94B9Df930E1E21a4E4a2c105dBff21bF5c5aE",
|
|
11
|
+
"LockableUniswapV3Initializer": "0xA3C847eAb58eAa9cbc215C785c9cfBc19CDABD5f",
|
|
12
|
+
"NoOpGovernanceFactory": "0x3AD727ee0FBBb8Ee0920933FdB96F23fD56f1299",
|
|
13
|
+
"NoOpMigrator": "0x917da361072ce968acD810BbfC9B64079426ebf0",
|
|
14
|
+
"StreamableFeesLocker": "0x6ddfED58D238Ca3195E49d8ac3d4cEa6386E5C33",
|
|
15
|
+
"TokenFactory": "0x43d0D97EC9241A8F05A264f94B82A1d2E600f2B3",
|
|
16
|
+
"UniswapV2Migrator": "0xf6023127f6E937091D5B605680056A6D27524bad",
|
|
17
|
+
"UniswapV3Initializer": "0x9F4e56be80f08ba1A2445645EFa6d231E27b43ec",
|
|
18
|
+
"UniswapV4Initializer": "0x4B0EC16Eb40318Ca5A4346f20F04A2285C19675B",
|
|
19
|
+
"UniswapV4Migrator": "0x49F3fBB2dFF7f3d03B622e3b2a6d3F2E6fdB2a5A",
|
|
20
|
+
"UniswapV4MigratorHook": "0x53C050d3B09C80024138165520Bd7c078D9e2000"
|
|
21
|
+
},
|
|
22
|
+
"143": {
|
|
23
|
+
"Airlock": "0x660eAaEdEBc968f8f3694354FA8EC0b4c5Ba8D12",
|
|
24
|
+
"AirlockMultisig": "0x9916Ec1c1E0462F6F8f7514e414F06bf001Ac82A",
|
|
25
|
+
"Bundler": "0xC99b485499f78995C6F1640dbB1413c57f8BA684",
|
|
26
|
+
"GovernanceFactory": "0xFAafdE6a5b658684cC5eb0C5c2c755B00A246F45",
|
|
27
|
+
"LaunchpadGovernanceFactory": "0x5FBe931dc4B923A7abe4c47aD68d5bF9Eda5B76D",
|
|
28
|
+
"LockableUniswapV3Initializer": "0x8b4C7DB9121FC885689C0A50D5a1429F15AEc2a0",
|
|
29
|
+
"NoOpGovernanceFactory": "0xb4deE32EB70A5E55f3D2d861F49Fb3D79f7a14d9",
|
|
30
|
+
"NoOpMigrator": "0x5F3bA43D44375286296Cb85F1EA2EBfa25dde731",
|
|
31
|
+
"TokenFactory": "0xaA47D2977d622DBdFD33eeF6a8276727c52EB4e5",
|
|
32
|
+
"UniswapV2Migrator": "0x136191B46478cAB023cbC01a36160C4Aad81677a",
|
|
33
|
+
"UniswapV4ScheduledMulticurveInitializer": "0xCe3099B2F07029b086E5e92a1573C5f5A3071783",
|
|
34
|
+
"UniswapV4ScheduledMulticurveInitializerHook": "0x580ca49389d83b019d07E17e99454f2F218e2dc0"
|
|
35
|
+
},
|
|
36
|
+
"1301": {
|
|
37
|
+
"Airlock": "0x0d2f38d807bfAd5C18e430516e10ab560D300caF",
|
|
38
|
+
"AirlockMultisig": "0x40Bcb4dDA3BcF7dba30C5d10c31EE2791ed9ddCa",
|
|
39
|
+
"Bundler": "0xED344444633B965cd148F8fFCE3765938A179094",
|
|
40
|
+
"DopplerDeployer": "0x77B5F559EE9cf3bfcf2fFf5731a84332D8eECAC9",
|
|
41
|
+
"DopplerLensQuoter": "0x917da361072ce968acD810BbfC9B64079426ebf0",
|
|
42
|
+
"GovernanceFactory": "0x4225C632b62622Bd7B0A3eC9745C0a866Ff94F6F",
|
|
43
|
+
"LockableUniswapV3Initializer": "0x9dFb775dB7b005d9Dc77DA84D8b2e42C281D0344",
|
|
44
|
+
"NoOpGovernanceFactory": "0x7E5D336A6E9e453c9f02E5102CC039E015Fd8fb8",
|
|
45
|
+
"NoOpMigrator": "0x193F48A45B6025dDeD10bc4BaeEF65c833696387",
|
|
46
|
+
"StreamableFeesLocker": "0x1728E8B3282502f275949109331E070b819B38eA",
|
|
47
|
+
"TokenFactory": "0x82Ac010C67f70BACf7655cd8948a4AD92A173CAC",
|
|
48
|
+
"UniswapV2Migrator": "0x620e3fec244e913d73f2163623b62d02DB69638B",
|
|
49
|
+
"UniswapV3Initializer": "0xE0dC4012AC9C868F09c6e4b20d66ED46D6F258d0",
|
|
50
|
+
"UniswapV4Initializer": "0x70d20cd48791E527036491dc464C8Dc58351Dd93",
|
|
51
|
+
"UniswapV4Migrator": "0xb6D69eAA98E657bEEFF7ca4452768e6f707aa6b1",
|
|
52
|
+
"UniswapV4MigratorHook": "0xFB0671Ec46190b09255776d2D77744fa101Ba500",
|
|
53
|
+
"UniswapV4MulticurveInitializer": "0xac7939F1B4079d55A7fA4DFA314Ac0173A77bA40",
|
|
54
|
+
"UniswapV4MulticurveInitializerHook": "0x11b55A121a38FDab8FAF16f9f1A4f124E3f42d40"
|
|
55
|
+
},
|
|
56
|
+
"4801": {
|
|
57
|
+
"Airlock": "0x5F3bA43D44375286296Cb85F1EA2EBfa25dde731",
|
|
58
|
+
"GovernanceFactory": "0x136191B46478cAB023cbC01a36160C4Aad81677a",
|
|
59
|
+
"TokenFactory": "0x5FBe931dc4B923A7abe4c47aD68d5bF9Eda5B76D",
|
|
60
|
+
"UniswapV2Migrator": "0x8b4C7DB9121FC885689C0A50D5a1429F15AEc2a0",
|
|
61
|
+
"UniswapV3Initializer": "0x9916Ec1c1E0462F6F8f7514e414F06bf001Ac82A",
|
|
62
|
+
"WETH": "0x660eAaEdEBc968f8f3694354FA8EC0b4c5Ba8D12"
|
|
63
|
+
},
|
|
64
|
+
"8453": {
|
|
65
|
+
"Airlock": "0x660eAaEdEBc968f8f3694354FA8EC0b4c5Ba8D12",
|
|
66
|
+
"Bundler": "0x136191B46478cAB023cbC01a36160C4Aad81677a",
|
|
67
|
+
"DopplerDeployer": "0x49F3fBB2dFF7f3d03B622e3b2a6d3F2E6fdB2a5A",
|
|
68
|
+
"DopplerLensQuoter": "0x43d0D97EC9241A8F05A264f94B82A1d2E600f2B3",
|
|
69
|
+
"GovernanceFactory": "0xa82c66b6ddEb92089015C3565E05B5c9750b2d4B",
|
|
70
|
+
"LaunchpadGovernanceFactory": "0x40Bcb4dDA3BcF7dba30C5d10c31EE2791ed9ddCa",
|
|
71
|
+
"LockableUniswapV3Initializer": "0xE0dC4012AC9C868F09c6e4b20d66ED46D6F258d0",
|
|
72
|
+
"NoOpGovernanceFactory": "0x3AD727ee0FBBb8Ee0920933FdB96F23fD56f1299",
|
|
73
|
+
"NoOpMigrator": "0x6ddfED58D238Ca3195E49d8ac3d4cEa6386E5C33",
|
|
74
|
+
"StreamableFeesLocker": "0x0A00775D71a42cd33D62780003035e7F5b47bD3A",
|
|
75
|
+
"TokenFactory": "0x4225C632b62622Bd7B0A3eC9745C0a866Ff94F6F",
|
|
76
|
+
"UniswapV2Migrator": "0x5F3bA43D44375286296Cb85F1EA2EBfa25dde731",
|
|
77
|
+
"UniswapV3Initializer": "0xaA47D2977d622DBdFD33eeF6a8276727c52EB4e5",
|
|
78
|
+
"UniswapV4Initializer": "0xED344444633B965cd148F8fFCE3765938A179094",
|
|
79
|
+
"UniswapV4Migrator": "0x166109C4EE7fE69164631Caa937dAA5F5cEbFef0",
|
|
80
|
+
"UniswapV4MigratorHook": "0x45178A8D6d368D612B7552B217802b7F97262000",
|
|
81
|
+
"UniswapV4MulticurveInitializer": "0x65dE470Da664A5be139A5D812bE5FDa0d76CC951",
|
|
82
|
+
"UniswapV4MulticurveInitializerHook": "0x892D3C2B4ABEAAF67d52A7B29783E2161B7CaD40",
|
|
83
|
+
"UniswapV4ScheduledMulticurveInitializer": "0xA36715dA46Ddf4A769f3290f49AF58bF8132ED8E",
|
|
84
|
+
"UniswapV4ScheduledMulticurveInitializerHook": "0x3e342a06f9592459D75721d6956B570F02eF2Dc0"
|
|
85
|
+
},
|
|
86
|
+
"10143": {
|
|
87
|
+
"Airlock": "0xa82c66b6ddEb92089015C3565E05B5c9750b2d4B",
|
|
88
|
+
"AirlockMultisig": "0x3AD727ee0FBBb8Ee0920933FdB96F23fD56f1299",
|
|
89
|
+
"Bundler": "0xf6023127f6E937091D5B605680056A6D27524bad",
|
|
90
|
+
"DopplerDeployer": "0x166109C4EE7fE69164631Caa937dAA5F5cEbFef0",
|
|
91
|
+
"DopplerLensQuoter": "0x2F2BAcd46d3F5c9EE052Ab392b73711dB89129DB",
|
|
92
|
+
"GovernanceFactory": "0x014E1c0bd34f3B10546E554CB33B3293fECDD056",
|
|
93
|
+
"LockableUniswapV3Initializer": "0x99C94B9Df930E1E21a4E4a2c105dBff21bF5c5aE",
|
|
94
|
+
"NoOpGovernanceFactory": "0x094D926A969B3024ca46D2186BF13FD5CDBA9CE2",
|
|
95
|
+
"NoOpMigrator": "0x5CadB034267751a364dDD4d321C99E07A307f915",
|
|
96
|
+
"StreamableFeesLocker": "0x0d2f38d807bfAd5C18e430516e10ab560D300caF",
|
|
97
|
+
"TokenFactory": "0x8AF018e28c273826e6b2d5a99e81c8fB63729b07",
|
|
98
|
+
"UniswapV2Migrator": "0x43d0D97EC9241A8F05A264f94B82A1d2E600f2B3",
|
|
99
|
+
"UniswapV3Initializer": "0x9F4e56be80f08ba1A2445645EFa6d231E27b43ec",
|
|
100
|
+
"UniswapV4Initializer": "0x06FEFD02F0b6d9f57F52cfacFc113665Dfa20F0f",
|
|
101
|
+
"UniswapV4Migrator": "0x4B0EC16Eb40318Ca5A4346f20F04A2285C19675B",
|
|
102
|
+
"UniswapV4MigratorHook": "0x76E1f507592d9856B48482c599732d129eD6a500",
|
|
103
|
+
"UniswapV4MulticurveInitializer": "0xA3C847eAb58eAa9cbc215C785c9cfBc19CDABD5f",
|
|
104
|
+
"UniswapV4MulticurveInitializerHook": "0xFaF16d11737E6552156DD328cD26C530e1da2D40",
|
|
105
|
+
"WETH": "0x660eAaEdEBc968f8f3694354FA8EC0b4c5Ba8D12"
|
|
106
|
+
},
|
|
107
|
+
"57073": {
|
|
108
|
+
"Airlock": "0x660eAaEdEBc968f8f3694354FA8EC0b4c5Ba8D12",
|
|
109
|
+
"Bundler": "0x136191B46478cAB023cbC01a36160C4Aad81677a",
|
|
110
|
+
"DopplerDeployer": "0xa82c66b6ddEb92089015C3565E05B5c9750b2d4B",
|
|
111
|
+
"DopplerLensQuoter": "0x8AF018e28c273826e6b2d5a99e81c8fB63729b07",
|
|
112
|
+
"GovernanceFactory": "0xb4deE32EB70A5E55f3D2d861F49Fb3D79f7a14d9",
|
|
113
|
+
"TokenFactory": "0xFAafdE6a5b658684cC5eb0C5c2c755B00A246F45",
|
|
114
|
+
"UniswapV2Migrator": "0x5F3bA43D44375286296Cb85F1EA2EBfa25dde731",
|
|
115
|
+
"UniswapV3Initializer": "0xaA47D2977d622DBdFD33eeF6a8276727c52EB4e5",
|
|
116
|
+
"UniswapV4Initializer": "0x014E1c0bd34f3B10546E554CB33B3293fECDD056"
|
|
117
|
+
},
|
|
118
|
+
"84532": {
|
|
119
|
+
"Airlock": "0x3411306Ce66c9469BFF1535BA955503c4Bde1C6e",
|
|
120
|
+
"AirlockMultisig": "0x852a09C89463D236eea2f097623574f23E225769",
|
|
121
|
+
"BasicMultisig": "0x6f645FA08B7eadAD620CEC85634204b1d7A46DC2",
|
|
122
|
+
"Bundler": "0xab7BACB0d5C2C10152f92D34e07F530EB3CB0Fb1",
|
|
123
|
+
"DopplerDeployer": "0x82D727ffda3F874da802663fC2f3f4b83dC3AAbA",
|
|
124
|
+
"DopplerLensQuoter": "0x4a8d81Db741248a36D9eb3bc6eF648Bf798B47a7",
|
|
125
|
+
"GovernanceFactory": "0x9dBFaaDC8c0cB2c34bA698DD9426555336992e20",
|
|
126
|
+
"LockableUniswapV3Initializer": "0x16AdA5Be50C3c2D94Af5fEae6b539C40A78Ad53c",
|
|
127
|
+
"NoOpGovernanceFactory": "0x7bD798fafC99A3b17E261F8308A8C11B56935ea1",
|
|
128
|
+
"NoOpMigrator": "0xF11066abbd329ac4bBA39455340539322C222eb0",
|
|
129
|
+
"StreamableFeesLocker": "0x3345E557c5C0b474bE1eb4693264008B8562Aa9c",
|
|
130
|
+
"TeamGovernanceFactory": "0x8aF3001ED75F86f4Dd910577ECa9C5dB7CEa765c",
|
|
131
|
+
"TokenFactory": "0x9D8fd79B2a59c5d91ccBd79c3AEb4de56451Bb02",
|
|
132
|
+
"UniswapV2Migrator": "0x04a898f3722c38F9Def707bD17DC78920EFA977C",
|
|
133
|
+
"UniswapV3Initializer": "0x4C3062B9ccFdbCB10353F57C1B59a29d4c5CFa47",
|
|
134
|
+
"UniswapV4Initializer": "0x832e4763dEEcB9941a768f2bBd18583219F018Cc",
|
|
135
|
+
"UniswapV4Migrator": "0xf326D8cdB65A4ad334cFBdD7d3A3CB27Be8b770d",
|
|
136
|
+
"UniswapV4MigratorHook": "0x9D0C38A80647E53D5a8a319B39De2B66B8586500",
|
|
137
|
+
"UniswapV4MulticurveInitializer": "0x1718405E58c61425cDc0083262bC9f72198F5232",
|
|
138
|
+
"UniswapV4MulticurveInitializerHook": "0x6a1061FC558dDe1E6fD0eFd641b370d435b56d40",
|
|
139
|
+
"UniswapV4ScheduledMulticurveInitializer": "0x5C10D3e14Aae2Ef95619B25E907E013260E832E4",
|
|
140
|
+
"UniswapV4ScheduledMulticurveInitializerHook": "0x5D663F9C993deFf2D17ce4232D75f347df7DADc0",
|
|
141
|
+
"WETH": "0x660eAaEdEBc968f8f3694354FA8EC0b4c5Ba8D12"
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
exports.GENERATED_DOPPLER_DEPLOYMENTS = GENERATED_DOPPLER_DEPLOYMENTS;
|
|
146
|
+
//# sourceMappingURL=chunk-CVHPLURA.js.map
|
|
147
|
+
//# sourceMappingURL=chunk-CVHPLURA.js.map
|