@whetstone-research/doppler-sdk 0.0.1-alpha.8 → 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-FVTIDXYK.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-DMAHXBA5.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-5IT5OXQ5.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-ZRDU6CIB.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-3OZRDL3O.js +0 -162
- package/dist/chunk-3OZRDL3O.js.map +0 -1
- package/dist/chunk-4K5GBNQV.mjs.map +0 -1
- package/dist/chunk-5IT5OXQ5.js.map +0 -1
- package/dist/chunk-7F5IXZLH.js +0 -308
- package/dist/chunk-7F5IXZLH.js.map +0 -1
- package/dist/chunk-7VP5VR7J.js +0 -82
- package/dist/chunk-7VP5VR7J.js.map +0 -1
- package/dist/chunk-7W72MFJO.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-CYDWEPFL.mjs +0 -3
- package/dist/chunk-DCFHANLR.mjs.map +0 -1
- package/dist/chunk-DMAHXBA5.mjs.map +0 -1
- package/dist/chunk-DRBRT57F.js +0 -4
- package/dist/chunk-EFAPDN4J.js.map +0 -1
- package/dist/chunk-ER42VG7H.js.map +0 -1
- package/dist/chunk-FVTIDXYK.mjs.map +0 -1
- package/dist/chunk-IHBIBFZK.mjs +0 -12
- package/dist/chunk-IHBIBFZK.mjs.map +0 -1
- package/dist/chunk-IXSKPEHB.mjs +0 -160
- package/dist/chunk-IXSKPEHB.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-O6GYIJ6X.mjs +0 -80
- package/dist/chunk-O6GYIJ6X.mjs.map +0 -1
- package/dist/chunk-OPKQMN46.mjs.map +0 -1
- package/dist/chunk-RIMM47JL.mjs +0 -176
- package/dist/chunk-RIMM47JL.mjs.map +0 -1
- package/dist/chunk-SUOMK3CU.js +0 -872
- package/dist/chunk-SUOMK3CU.js.map +0 -1
- package/dist/chunk-T644D54P.mjs.map +0 -1
- package/dist/chunk-TOMVBPNZ.js.map +0 -1
- package/dist/chunk-XEMZQHTX.mjs +0 -870
- package/dist/chunk-XEMZQHTX.mjs.map +0 -1
- package/dist/chunk-XG7K4R56.js.map +0 -1
- package/dist/chunk-XQ2VMR26.js +0 -180
- package/dist/chunk-XQ2VMR26.js.map +0 -1
- package/dist/chunk-ZAIP54LX.js +0 -209
- package/dist/chunk-ZAIP54LX.js.map +0 -1
- package/dist/chunk-ZRDU6CIB.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,174 @@
|
|
|
1
|
+
import { DopplerDN404Bytecode, DERC20Bytecode } from './chunk-4TROGENW.mjs';
|
|
2
|
+
import { decodeAbiParameters, encodeAbiParameters, keccak256, encodePacked, getAddress } from 'viem';
|
|
3
|
+
|
|
4
|
+
var DEFAULT_MAX_ITERATIONS = 1e6;
|
|
5
|
+
var STANDARD_TOKEN_DATA_ABI = [
|
|
6
|
+
{ type: "string" },
|
|
7
|
+
{ type: "string" },
|
|
8
|
+
{ type: "uint256" },
|
|
9
|
+
{ type: "uint256" },
|
|
10
|
+
{ type: "address[]" },
|
|
11
|
+
{ type: "uint256[]" },
|
|
12
|
+
{ type: "string" }
|
|
13
|
+
];
|
|
14
|
+
var DOPPLER404_TOKEN_DATA_ABI = [
|
|
15
|
+
{ type: "string" },
|
|
16
|
+
{ type: "string" },
|
|
17
|
+
{ type: "string" },
|
|
18
|
+
{ type: "uint256" }
|
|
19
|
+
];
|
|
20
|
+
function normalizePrefix(prefix) {
|
|
21
|
+
const normalized = prefix.trim().toLowerCase().replace(/^0x/, "");
|
|
22
|
+
if (normalized.length === 0) {
|
|
23
|
+
throw new Error("TokenAddressMiner: prefix must contain at least one hex character");
|
|
24
|
+
}
|
|
25
|
+
if (normalized.length > 40) {
|
|
26
|
+
throw new Error("TokenAddressMiner: prefix cannot exceed 40 hex characters");
|
|
27
|
+
}
|
|
28
|
+
if (!/^[0-9a-f]+$/i.test(normalized)) {
|
|
29
|
+
throw new Error("TokenAddressMiner: prefix must be a hexadecimal string");
|
|
30
|
+
}
|
|
31
|
+
return normalized;
|
|
32
|
+
}
|
|
33
|
+
function computeCreate2Address(salt, initCodeHash, deployer) {
|
|
34
|
+
const encoded = encodePacked(
|
|
35
|
+
["bytes1", "address", "bytes32", "bytes32"],
|
|
36
|
+
["0xff", deployer, salt, initCodeHash]
|
|
37
|
+
);
|
|
38
|
+
return getAddress(`0x${keccak256(encoded).slice(-40)}`);
|
|
39
|
+
}
|
|
40
|
+
function buildTokenInitHash(params) {
|
|
41
|
+
const { variant, tokenData, initialSupply, recipient, owner, customBytecode } = params;
|
|
42
|
+
if (variant === "doppler404") {
|
|
43
|
+
const [name2, symbol2, baseURI] = decodeAbiParameters(
|
|
44
|
+
DOPPLER404_TOKEN_DATA_ABI,
|
|
45
|
+
tokenData
|
|
46
|
+
);
|
|
47
|
+
const initHashData2 = encodeAbiParameters(
|
|
48
|
+
[
|
|
49
|
+
{ type: "string" },
|
|
50
|
+
{ type: "string" },
|
|
51
|
+
{ type: "uint256" },
|
|
52
|
+
{ type: "address" },
|
|
53
|
+
{ type: "address" },
|
|
54
|
+
{ type: "string" }
|
|
55
|
+
],
|
|
56
|
+
[name2, symbol2, initialSupply, recipient, owner, baseURI]
|
|
57
|
+
);
|
|
58
|
+
return keccak256(
|
|
59
|
+
encodePacked(
|
|
60
|
+
["bytes", "bytes"],
|
|
61
|
+
[customBytecode ?? DopplerDN404Bytecode, initHashData2]
|
|
62
|
+
)
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
const [
|
|
66
|
+
name,
|
|
67
|
+
symbol,
|
|
68
|
+
yearlyMintRate,
|
|
69
|
+
vestingDuration,
|
|
70
|
+
vestingRecipients,
|
|
71
|
+
vestingAmounts,
|
|
72
|
+
tokenURI
|
|
73
|
+
] = decodeAbiParameters(STANDARD_TOKEN_DATA_ABI, tokenData);
|
|
74
|
+
const initHashData = encodeAbiParameters(
|
|
75
|
+
[
|
|
76
|
+
{ type: "string" },
|
|
77
|
+
{ type: "string" },
|
|
78
|
+
{ type: "uint256" },
|
|
79
|
+
{ type: "address" },
|
|
80
|
+
{ type: "address" },
|
|
81
|
+
{ type: "uint256" },
|
|
82
|
+
{ type: "uint256" },
|
|
83
|
+
{ type: "address[]" },
|
|
84
|
+
{ type: "uint256[]" },
|
|
85
|
+
{ type: "string" }
|
|
86
|
+
],
|
|
87
|
+
[
|
|
88
|
+
name,
|
|
89
|
+
symbol,
|
|
90
|
+
initialSupply,
|
|
91
|
+
recipient,
|
|
92
|
+
owner,
|
|
93
|
+
yearlyMintRate,
|
|
94
|
+
vestingDuration,
|
|
95
|
+
Array.from(vestingRecipients),
|
|
96
|
+
Array.from(vestingAmounts),
|
|
97
|
+
tokenURI
|
|
98
|
+
]
|
|
99
|
+
);
|
|
100
|
+
return keccak256(
|
|
101
|
+
encodePacked(
|
|
102
|
+
["bytes", "bytes"],
|
|
103
|
+
[customBytecode ?? DERC20Bytecode, initHashData]
|
|
104
|
+
)
|
|
105
|
+
);
|
|
106
|
+
}
|
|
107
|
+
function mineTokenAddress(params) {
|
|
108
|
+
const {
|
|
109
|
+
prefix,
|
|
110
|
+
tokenFactory,
|
|
111
|
+
initialSupply,
|
|
112
|
+
recipient,
|
|
113
|
+
owner,
|
|
114
|
+
tokenData,
|
|
115
|
+
tokenVariant = "standard",
|
|
116
|
+
customBytecode,
|
|
117
|
+
maxIterations = DEFAULT_MAX_ITERATIONS,
|
|
118
|
+
startSalt = 0n,
|
|
119
|
+
hook
|
|
120
|
+
} = params;
|
|
121
|
+
if (maxIterations <= 0 || !Number.isFinite(maxIterations)) {
|
|
122
|
+
throw new Error("TokenAddressMiner: maxIterations must be a positive finite number");
|
|
123
|
+
}
|
|
124
|
+
if (startSalt < 0n) {
|
|
125
|
+
throw new Error("TokenAddressMiner: startSalt cannot be negative");
|
|
126
|
+
}
|
|
127
|
+
const normalizedPrefix = normalizePrefix(prefix);
|
|
128
|
+
const tokenInitHash = buildTokenInitHash({
|
|
129
|
+
variant: tokenVariant,
|
|
130
|
+
tokenData,
|
|
131
|
+
initialSupply,
|
|
132
|
+
recipient,
|
|
133
|
+
owner,
|
|
134
|
+
customBytecode
|
|
135
|
+
});
|
|
136
|
+
const hookConfig = hook ? {
|
|
137
|
+
deployer: hook.deployer,
|
|
138
|
+
initCodeHash: hook.initCodeHash,
|
|
139
|
+
prefix: hook.prefix ? normalizePrefix(hook.prefix) : void 0
|
|
140
|
+
} : void 0;
|
|
141
|
+
const maxSalt = startSalt + BigInt(maxIterations);
|
|
142
|
+
let iterations = 0;
|
|
143
|
+
for (let salt = startSalt; salt < maxSalt; salt++) {
|
|
144
|
+
const saltHex = `0x${salt.toString(16).padStart(64, "0")}`;
|
|
145
|
+
const candidate = computeCreate2Address(saltHex, tokenInitHash, tokenFactory);
|
|
146
|
+
iterations++;
|
|
147
|
+
if (candidate.slice(2).toLowerCase().startsWith(normalizedPrefix)) {
|
|
148
|
+
let hookAddress;
|
|
149
|
+
if (hookConfig) {
|
|
150
|
+
hookAddress = computeCreate2Address(
|
|
151
|
+
saltHex,
|
|
152
|
+
hookConfig.initCodeHash,
|
|
153
|
+
hookConfig.deployer
|
|
154
|
+
);
|
|
155
|
+
if (hookConfig.prefix && !hookAddress.slice(2).toLowerCase().startsWith(hookConfig.prefix)) {
|
|
156
|
+
continue;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return {
|
|
160
|
+
salt: saltHex,
|
|
161
|
+
tokenAddress: candidate,
|
|
162
|
+
iterations,
|
|
163
|
+
hookAddress
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
throw new Error(
|
|
168
|
+
`TokenAddressMiner: could not find salt matching prefix ${prefix} within ${maxIterations} iterations`
|
|
169
|
+
);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
export { mineTokenAddress };
|
|
173
|
+
//# sourceMappingURL=chunk-XUE3CIJ5.mjs.map
|
|
174
|
+
//# sourceMappingURL=chunk-XUE3CIJ5.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/tokenAddressMiner.ts"],"names":["name","symbol","initHashData"],"mappings":";;;AAYA,IAAM,sBAAA,GAAyB,GAAA;AA+B/B,IAAM,uBAAA,GAA0B;AAAA,EAC9B,EAAE,MAAM,QAAA,EAAS;AAAA,EACjB,EAAE,MAAM,QAAA,EAAS;AAAA,EACjB,EAAE,MAAM,SAAA,EAAU;AAAA,EAClB,EAAE,MAAM,SAAA,EAAU;AAAA,EAClB,EAAE,MAAM,WAAA,EAAY;AAAA,EACpB,EAAE,MAAM,WAAA,EAAY;AAAA,EACpB,EAAE,MAAM,QAAA;AACV,CAAA;AAEA,IAAM,yBAAA,GAA4B;AAAA,EAChC,EAAE,MAAM,QAAA,EAAS;AAAA,EACjB,EAAE,MAAM,QAAA,EAAS;AAAA,EACjB,EAAE,MAAM,QAAA,EAAS;AAAA,EACjB,EAAE,MAAM,SAAA;AACV,CAAA;AAEA,SAAS,gBAAgB,MAAA,EAAwB;AAC/C,EAAA,MAAM,UAAA,GAAa,OAAO,IAAA,EAAK,CAAE,aAAY,CAAE,OAAA,CAAQ,OAAO,EAAE,CAAA;AAChE,EAAA,IAAI,UAAA,CAAW,WAAW,CAAA,EAAG;AAC3B,IAAA,MAAM,IAAI,MAAM,mEAAmE,CAAA;AAAA,EACrF;AACA,EAAA,IAAI,UAAA,CAAW,SAAS,EAAA,EAAI;AAC1B,IAAA,MAAM,IAAI,MAAM,2DAA2D,CAAA;AAAA,EAC7E;AACA,EAAA,IAAI,CAAC,cAAA,CAAe,IAAA,CAAK,UAAU,CAAA,EAAG;AACpC,IAAA,MAAM,IAAI,MAAM,wDAAwD,CAAA;AAAA,EAC1E;AACA,EAAA,OAAO,UAAA;AACT;AAEA,SAAS,qBAAA,CAAsB,IAAA,EAAY,YAAA,EAAoB,QAAA,EAA4B;AACzF,EAAA,MAAM,OAAA,GAAU,YAAA;AAAA,IACd,CAAC,QAAA,EAAU,SAAA,EAAW,SAAA,EAAW,SAAS,CAAA;AAAA,IAC1C,CAAC,MAAA,EAAQ,QAAA,EAAU,IAAA,EAAM,YAAY;AAAA,GACvC;AACA,EAAA,OAAO,UAAA,CAAW,KAAK,SAAA,CAAU,OAAO,EAAE,KAAA,CAAM,GAAG,CAAC,CAAA,CAAE,CAAA;AACxD;AAEA,SAAS,mBAAmB,MAAA,EAOnB;AACP,EAAA,MAAM,EAAE,OAAA,EAAS,SAAA,EAAW,eAAe,SAAA,EAAW,KAAA,EAAO,gBAAe,GAAI,MAAA;AAEhF,EAAA,IAAI,YAAY,YAAA,EAAc;AAC5B,IAAA,MAAM,CAACA,KAAAA,EAAMC,OAAAA,EAAQ,OAAO,CAAA,GAAI,mBAAA;AAAA,MAC9B,yBAAA;AAAA,MACA;AAAA,KACF;AAEA,IAAA,MAAMC,aAAAA,GAAe,mBAAA;AAAA,MACnB;AAAA,QACE,EAAE,MAAM,QAAA,EAAS;AAAA,QACjB,EAAE,MAAM,QAAA,EAAS;AAAA,QACjB,EAAE,MAAM,SAAA,EAAU;AAAA,QAClB,EAAE,MAAM,SAAA,EAAU;AAAA,QAClB,EAAE,MAAM,SAAA,EAAU;AAAA,QAClB,EAAE,MAAM,QAAA;AAAS,OACnB;AAAA,MACA,CAACF,KAAAA,EAAMC,OAAAA,EAAQ,aAAA,EAAe,SAAA,EAAW,OAAO,OAAO;AAAA,KACzD;AAEA,IAAA,OAAO,SAAA;AAAA,MACL,YAAA;AAAA,QACE,CAAC,SAAS,OAAO,CAAA;AAAA,QACjB,CAAE,cAAA,IAAmB,oBAAA,EAA+BC,aAAY;AAAA;AAClE,KACF;AAAA,EACF;AAEA,EAAA,MAAM;AAAA,IACJ,IAAA;AAAA,IACA,MAAA;AAAA,IACA,cAAA;AAAA,IACA,eAAA;AAAA,IACA,iBAAA;AAAA,IACA,cAAA;AAAA,IACA;AAAA,GACF,GAAI,mBAAA,CAAoB,uBAAA,EAAyB,SAAS,CAAA;AAU1D,EAAA,MAAM,YAAA,GAAe,mBAAA;AAAA,IACnB;AAAA,MACE,EAAE,MAAM,QAAA,EAAS;AAAA,MACjB,EAAE,MAAM,QAAA,EAAS;AAAA,MACjB,EAAE,MAAM,SAAA,EAAU;AAAA,MAClB,EAAE,MAAM,SAAA,EAAU;AAAA,MAClB,EAAE,MAAM,SAAA,EAAU;AAAA,MAClB,EAAE,MAAM,SAAA,EAAU;AAAA,MAClB,EAAE,MAAM,SAAA,EAAU;AAAA,MAClB,EAAE,MAAM,WAAA,EAAY;AAAA,MACpB,EAAE,MAAM,WAAA,EAAY;AAAA,MACpB,EAAE,MAAM,QAAA;AAAS,KACnB;AAAA,IACA;AAAA,MACE,IAAA;AAAA,MACA,MAAA;AAAA,MACA,aAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,cAAA;AAAA,MACA,eAAA;AAAA,MACA,KAAA,CAAM,KAAK,iBAAiB,CAAA;AAAA,MAC5B,KAAA,CAAM,KAAK,cAAc,CAAA;AAAA,MACzB;AAAA;AACF,GACF;AAEA,EAAA,OAAO,SAAA;AAAA,IACL,YAAA;AAAA,MACE,CAAC,SAAS,OAAO,CAAA;AAAA,MACjB,CAAE,cAAA,IAAmB,cAAA,EAAyB,YAAY;AAAA;AAC5D,GACF;AACF;AAEO,SAAS,iBAAiB,MAAA,EAA4D;AAC3F,EAAA,MAAM;AAAA,IACJ,MAAA;AAAA,IACA,YAAA;AAAA,IACA,aAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,SAAA;AAAA,IACA,YAAA,GAAe,UAAA;AAAA,IACf,cAAA;AAAA,IACA,aAAA,GAAgB,sBAAA;AAAA,IAChB,SAAA,GAAY,EAAA;AAAA,IACZ;AAAA,GACF,GAAI,MAAA;AAEJ,EAAA,IAAI,iBAAiB,CAAA,IAAK,CAAC,MAAA,CAAO,QAAA,CAAS,aAAa,CAAA,EAAG;AACzD,IAAA,MAAM,IAAI,MAAM,mEAAmE,CAAA;AAAA,EACrF;AACA,EAAA,IAAI,YAAY,EAAA,EAAI;AAClB,IAAA,MAAM,IAAI,MAAM,iDAAiD,CAAA;AAAA,EACnE;AAEA,EAAA,MAAM,gBAAA,GAAmB,gBAAgB,MAAM,CAAA;AAC/C,EAAA,MAAM,gBAAgB,kBAAA,CAAmB;AAAA,IACvC,OAAA,EAAS,YAAA;AAAA,IACT,SAAA;AAAA,IACA,aAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,MAAM,aAAa,IAAA,GACf;AAAA,IACE,UAAU,IAAA,CAAK,QAAA;AAAA,IACf,cAAc,IAAA,CAAK,YAAA;AAAA,IACnB,QAAQ,IAAA,CAAK,MAAA,GAAS,eAAA,CAAgB,IAAA,CAAK,MAAM,CAAA,GAAI;AAAA,GACvD,GACA,MAAA;AAEJ,EAAA,MAAM,OAAA,GAAU,SAAA,GAAY,MAAA,CAAO,aAAa,CAAA;AAChD,EAAA,IAAI,UAAA,GAAa,CAAA;AAEjB,EAAA,KAAA,IAAS,IAAA,GAAO,SAAA,EAAW,IAAA,GAAO,OAAA,EAAS,IAAA,EAAA,EAAQ;AACjD,IAAA,MAAM,OAAA,GAAU,KAAK,IAAA,CAAK,QAAA,CAAS,EAAE,CAAA,CAAE,QAAA,CAAS,EAAA,EAAI,GAAG,CAAC,CAAA,CAAA;AACxD,IAAA,MAAM,SAAA,GAAY,qBAAA,CAAsB,OAAA,EAAS,aAAA,EAAe,YAAY,CAAA;AAC5E,IAAA,UAAA,EAAA;AACA,IAAA,IAAI,SAAA,CAAU,MAAM,CAAC,CAAA,CAAE,aAAY,CAAE,UAAA,CAAW,gBAAgB,CAAA,EAAG;AACjE,MAAA,IAAI,WAAA;AACJ,MAAA,IAAI,UAAA,EAAY;AACd,QAAA,WAAA,GAAc,qBAAA;AAAA,UACZ,OAAA;AAAA,UACA,UAAA,CAAW,YAAA;AAAA,UACX,UAAA,CAAW;AAAA,SACb;AACA,QAAA,IACE,UAAA,CAAW,MAAA,IACX,CAAC,WAAA,CAAY,KAAA,CAAM,CAAC,CAAA,CAAE,WAAA,EAAY,CAAE,UAAA,CAAW,UAAA,CAAW,MAAM,CAAA,EAChE;AACA,UAAA;AAAA,QACF;AAAA,MACF;AACA,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,OAAA;AAAA,QACN,YAAA,EAAc,SAAA;AAAA,QACd,UAAA;AAAA,QACA;AAAA,OACF;AAAA,IACF;AAAA,EACF;AAEA,EAAA,MAAM,IAAI,KAAA;AAAA,IACR,CAAA,uDAAA,EAA0D,MAAM,CAAA,QAAA,EAAW,aAAa,CAAA,WAAA;AAAA,GAC1F;AACF","file":"chunk-XUE3CIJ5.mjs","sourcesContent":["import {\n type Address,\n type Hash,\n type Hex,\n encodeAbiParameters,\n encodePacked,\n keccak256,\n getAddress,\n decodeAbiParameters,\n} from 'viem'\nimport { DERC20Bytecode, DopplerDN404Bytecode } from '../abis'\n\nconst DEFAULT_MAX_ITERATIONS = 1_000_000\n\nexport type TokenVariant = 'standard' | 'doppler404'\n\nexport interface TokenAddressHookConfig {\n deployer: Address\n initCodeHash: Hash\n prefix?: string\n}\n\nexport interface TokenAddressMiningParams {\n prefix: string\n tokenFactory: Address\n initialSupply: bigint\n recipient: Address\n owner: Address\n tokenData: Hex\n tokenVariant?: TokenVariant\n customBytecode?: Hex\n maxIterations?: number\n startSalt?: bigint\n hook?: TokenAddressHookConfig\n}\n\nexport interface TokenAddressMiningResult {\n salt: Hash\n tokenAddress: Address\n iterations: number\n hookAddress?: Address\n}\n\nconst STANDARD_TOKEN_DATA_ABI = [\n { type: 'string' },\n { type: 'string' },\n { type: 'uint256' },\n { type: 'uint256' },\n { type: 'address[]' },\n { type: 'uint256[]' },\n { type: 'string' },\n] as const\n\nconst DOPPLER404_TOKEN_DATA_ABI = [\n { type: 'string' },\n { type: 'string' },\n { type: 'string' },\n { type: 'uint256' },\n] as const\n\nfunction normalizePrefix(prefix: string): string {\n const normalized = prefix.trim().toLowerCase().replace(/^0x/, '')\n if (normalized.length === 0) {\n throw new Error('TokenAddressMiner: prefix must contain at least one hex character')\n }\n if (normalized.length > 40) {\n throw new Error('TokenAddressMiner: prefix cannot exceed 40 hex characters')\n }\n if (!/^[0-9a-f]+$/i.test(normalized)) {\n throw new Error('TokenAddressMiner: prefix must be a hexadecimal string')\n }\n return normalized\n}\n\nfunction computeCreate2Address(salt: Hash, initCodeHash: Hash, deployer: Address): Address {\n const encoded = encodePacked(\n ['bytes1', 'address', 'bytes32', 'bytes32'],\n ['0xff', deployer, salt, initCodeHash]\n )\n return getAddress(`0x${keccak256(encoded).slice(-40)}`)\n}\n\nfunction buildTokenInitHash(params: {\n variant: TokenVariant\n tokenData: Hex\n initialSupply: bigint\n recipient: Address\n owner: Address\n customBytecode?: Hex\n}): Hash {\n const { variant, tokenData, initialSupply, recipient, owner, customBytecode } = params\n\n if (variant === 'doppler404') {\n const [name, symbol, baseURI] = decodeAbiParameters(\n DOPPLER404_TOKEN_DATA_ABI,\n tokenData\n ) as readonly [string, string, string, bigint | undefined]\n\n const initHashData = encodeAbiParameters(\n [\n { type: 'string' },\n { type: 'string' },\n { type: 'uint256' },\n { type: 'address' },\n { type: 'address' },\n { type: 'string' },\n ],\n [name, symbol, initialSupply, recipient, owner, baseURI]\n )\n\n return keccak256(\n encodePacked(\n ['bytes', 'bytes'],\n [(customBytecode ?? (DopplerDN404Bytecode as Hex)), initHashData]\n )\n ) as Hash\n }\n\n const [\n name,\n symbol,\n yearlyMintRate,\n vestingDuration,\n vestingRecipients,\n vestingAmounts,\n tokenURI,\n ] = decodeAbiParameters(STANDARD_TOKEN_DATA_ABI, tokenData) as readonly [\n string,\n string,\n bigint,\n bigint,\n readonly Address[],\n readonly bigint[],\n string\n ]\n\n const initHashData = encodeAbiParameters(\n [\n { type: 'string' },\n { type: 'string' },\n { type: 'uint256' },\n { type: 'address' },\n { type: 'address' },\n { type: 'uint256' },\n { type: 'uint256' },\n { type: 'address[]' },\n { type: 'uint256[]' },\n { type: 'string' },\n ],\n [\n name,\n symbol,\n initialSupply,\n recipient,\n owner,\n yearlyMintRate,\n vestingDuration,\n Array.from(vestingRecipients),\n Array.from(vestingAmounts),\n tokenURI,\n ]\n )\n\n return keccak256(\n encodePacked(\n ['bytes', 'bytes'],\n [(customBytecode ?? (DERC20Bytecode as Hex)), initHashData]\n )\n ) as Hash\n}\n\nexport function mineTokenAddress(params: TokenAddressMiningParams): TokenAddressMiningResult {\n const {\n prefix,\n tokenFactory,\n initialSupply,\n recipient,\n owner,\n tokenData,\n tokenVariant = 'standard',\n customBytecode,\n maxIterations = DEFAULT_MAX_ITERATIONS,\n startSalt = 0n,\n hook,\n } = params\n\n if (maxIterations <= 0 || !Number.isFinite(maxIterations)) {\n throw new Error('TokenAddressMiner: maxIterations must be a positive finite number')\n }\n if (startSalt < 0n) {\n throw new Error('TokenAddressMiner: startSalt cannot be negative')\n }\n\n const normalizedPrefix = normalizePrefix(prefix)\n const tokenInitHash = buildTokenInitHash({\n variant: tokenVariant,\n tokenData,\n initialSupply,\n recipient,\n owner,\n customBytecode,\n })\n\n const hookConfig = hook\n ? {\n deployer: hook.deployer,\n initCodeHash: hook.initCodeHash,\n prefix: hook.prefix ? normalizePrefix(hook.prefix) : undefined,\n }\n : undefined\n\n const maxSalt = startSalt + BigInt(maxIterations)\n let iterations = 0\n\n for (let salt = startSalt; salt < maxSalt; salt++) {\n const saltHex = `0x${salt.toString(16).padStart(64, '0')}` as Hash\n const candidate = computeCreate2Address(saltHex, tokenInitHash, tokenFactory)\n iterations++\n if (candidate.slice(2).toLowerCase().startsWith(normalizedPrefix)) {\n let hookAddress: Address | undefined\n if (hookConfig) {\n hookAddress = computeCreate2Address(\n saltHex,\n hookConfig.initCodeHash,\n hookConfig.deployer\n )\n if (\n hookConfig.prefix &&\n !hookAddress.slice(2).toLowerCase().startsWith(hookConfig.prefix)\n ) {\n continue\n }\n }\n return {\n salt: saltHex,\n tokenAddress: candidate,\n iterations,\n hookAddress,\n }\n }\n }\n\n throw new Error(\n `TokenAddressMiner: could not find salt matching prefix ${prefix} within ${maxIterations} iterations`\n )\n}\n"]}
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkCVHPLURA_js = require('./chunk-CVHPLURA.js');
|
|
4
|
+
|
|
5
|
+
// src/addresses.ts
|
|
6
|
+
var CHAIN_IDS = {
|
|
7
|
+
MAINNET: 1,
|
|
8
|
+
BASE: 8453,
|
|
9
|
+
BASE_SEPOLIA: 84532,
|
|
10
|
+
INK: 57073,
|
|
11
|
+
UNICHAIN: 130,
|
|
12
|
+
UNICHAIN_SEPOLIA: 1301,
|
|
13
|
+
MONAD_TESTNET: 10143,
|
|
14
|
+
MONAD_MAINNET: 143
|
|
15
|
+
};
|
|
16
|
+
var ZERO_ADDRESS = "0x0000000000000000000000000000000000000000";
|
|
17
|
+
var ADDRESSES = {
|
|
18
|
+
[CHAIN_IDS.MAINNET]: {
|
|
19
|
+
// Mainnet addresses not yet deployed
|
|
20
|
+
airlock: ZERO_ADDRESS,
|
|
21
|
+
tokenFactory: ZERO_ADDRESS,
|
|
22
|
+
v3Initializer: ZERO_ADDRESS,
|
|
23
|
+
v3Quoter: ZERO_ADDRESS,
|
|
24
|
+
v4Initializer: ZERO_ADDRESS,
|
|
25
|
+
dopplerLens: ZERO_ADDRESS,
|
|
26
|
+
dopplerDeployer: ZERO_ADDRESS,
|
|
27
|
+
v2Migrator: ZERO_ADDRESS,
|
|
28
|
+
v3Migrator: ZERO_ADDRESS,
|
|
29
|
+
v4Migrator: ZERO_ADDRESS,
|
|
30
|
+
poolManager: ZERO_ADDRESS,
|
|
31
|
+
governanceFactory: ZERO_ADDRESS,
|
|
32
|
+
universalRouter: ZERO_ADDRESS,
|
|
33
|
+
permit2: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
|
|
34
|
+
weth: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
|
|
35
|
+
uniswapV2Factory: "0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f",
|
|
36
|
+
uniswapV3Factory: "0x1F98431c8aD98523631AE4a59f267346ea31F984",
|
|
37
|
+
uniswapV4Quoter: "0x52f0e24d1c21c8a0cb1e5a5dd6198556bd9e1203"
|
|
38
|
+
},
|
|
39
|
+
[CHAIN_IDS.BASE]: {
|
|
40
|
+
airlock: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].Airlock,
|
|
41
|
+
tokenFactory: "0xFAafdE6a5b658684cC5eb0C5c2c755B00A246F45",
|
|
42
|
+
v3Initializer: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].UniswapV3Initializer,
|
|
43
|
+
v3Quoter: "0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a",
|
|
44
|
+
lockableV3Initializer: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].LockableUniswapV3Initializer,
|
|
45
|
+
v4Initializer: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].UniswapV4Initializer,
|
|
46
|
+
v4MulticurveInitializer: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].UniswapV4MulticurveInitializer,
|
|
47
|
+
// From Doppler multicurve deployments (Base mainnet)
|
|
48
|
+
v4ScheduledMulticurveInitializer: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].UniswapV4ScheduledMulticurveInitializer,
|
|
49
|
+
// From Doppler scheduled multicurve deployments (Base mainnet)
|
|
50
|
+
dopplerLens: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].DopplerLensQuoter,
|
|
51
|
+
dopplerDeployer: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].DopplerDeployer,
|
|
52
|
+
poolManager: "0x498581ff718922c3f8e6a244956af099b2652b2b",
|
|
53
|
+
v2Migrator: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].UniswapV2Migrator,
|
|
54
|
+
v3Migrator: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].UniswapV2Migrator,
|
|
55
|
+
v4Migrator: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].UniswapV4Migrator,
|
|
56
|
+
noOpMigrator: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].NoOpMigrator,
|
|
57
|
+
governanceFactory: "0xb4deE32EB70A5E55f3D2d861F49Fb3D79f7a14d9",
|
|
58
|
+
noOpGovernanceFactory: "0xe7dfbd5b0a2c3b4464653a9becdc489229ef090e",
|
|
59
|
+
streamableFeesLocker: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].StreamableFeesLocker,
|
|
60
|
+
universalRouter: "0x6ff5693b99212da76ad316178a184ab56d299b43",
|
|
61
|
+
univ2Router02: "0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24",
|
|
62
|
+
permit2: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
|
|
63
|
+
bundler: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].Bundler,
|
|
64
|
+
weth: "0x4200000000000000000000000000000000000006",
|
|
65
|
+
uniswapV4Quoter: "0x0d5e0f971ed27fbff6c2837bf31316121532048d"
|
|
66
|
+
},
|
|
67
|
+
[CHAIN_IDS.BASE_SEPOLIA]: {
|
|
68
|
+
airlock: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].Airlock,
|
|
69
|
+
tokenFactory: "0xc69ba223c617f7d936b3cf2012aa644815dbe9ff",
|
|
70
|
+
doppler404Factory: "0xdd8cea2890f1b3498436f19ec8da8fecc2cb7af7",
|
|
71
|
+
v3Initializer: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].UniswapV3Initializer,
|
|
72
|
+
v3Quoter: "0xC5290058841028F1614F3A6F0F5816cAd0df5E27",
|
|
73
|
+
lockableV3Initializer: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].LockableUniswapV3Initializer,
|
|
74
|
+
v4Initializer: "0x8e891d249f1ecbffa6143c03eb1b12843aef09d3",
|
|
75
|
+
v4MulticurveInitializer: "0x359b5952a254baaa0105381825daedb8986bb55c",
|
|
76
|
+
// From doppler multicurve deployments (Base Sepolia)
|
|
77
|
+
v4ScheduledMulticurveInitializer: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].UniswapV4ScheduledMulticurveInitializer,
|
|
78
|
+
// From Doppler scheduled multicurve deployments (Base Sepolia)
|
|
79
|
+
dopplerLens: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].DopplerLensQuoter,
|
|
80
|
+
dopplerDeployer: "0x60a039e4add40ca95e0475c11e8a4182d06c9aa0",
|
|
81
|
+
poolManager: "0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408",
|
|
82
|
+
v2Migrator: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].UniswapV2Migrator,
|
|
83
|
+
v3Migrator: "0xb2ec6559704467306d04322a5dc082b2af4562dd",
|
|
84
|
+
v4Migrator: "0xb2ec6559704467306d04322a5dc082b2af4562dd",
|
|
85
|
+
v4MigratorHook: "0x508812fcdd4972a59b66eb2cad3772279c052000",
|
|
86
|
+
noOpMigrator: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].NoOpMigrator,
|
|
87
|
+
governanceFactory: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].GovernanceFactory,
|
|
88
|
+
noOpGovernanceFactory: "0x916b8987e4ad325c10d58ed8dc2036a6ff5eb228",
|
|
89
|
+
streamableFeesLocker: "0x4da7d7a8034510c0ffd38a9252237ae8dba3cb61",
|
|
90
|
+
universalRouter: "0x492E6456D9528771018DeB9E87ef7750EF184104",
|
|
91
|
+
univ2Router02: "0x1689E7B1F10000AE47eBfE339a4f69dECd19F602",
|
|
92
|
+
permit2: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
|
|
93
|
+
bundler: "0x69DB7c20cDdA49Bed2bFb21e16Fa218330C50661",
|
|
94
|
+
weth: "0x4200000000000000000000000000000000000006",
|
|
95
|
+
uniswapV4Quoter: "0x4A6513c898fe1B2d0E78d3b0e0A4a151589B1cBa"
|
|
96
|
+
},
|
|
97
|
+
[CHAIN_IDS.INK]: {
|
|
98
|
+
airlock: "0x014E1c0bd34f3B10546E554CB33B3293fECDD056",
|
|
99
|
+
tokenFactory: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.INK].TokenFactory,
|
|
100
|
+
v3Initializer: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.INK].UniswapV3Initializer,
|
|
101
|
+
v3Quoter: "0x96b572D2d880cf2Fa2563651BD23ADE6f5516652",
|
|
102
|
+
v4Initializer: "0xC99b485499f78995C6F1640dbB1413c57f8BA684",
|
|
103
|
+
dopplerLens: "0x3972c00f7ed4885e145823eb7c655375d275a1c5",
|
|
104
|
+
dopplerDeployer: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.INK].DopplerDeployer,
|
|
105
|
+
poolManager: "0x360e68faccca8ca495c1b759fd9eee466db9fb32",
|
|
106
|
+
v2Migrator: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.INK].UniswapV2Migrator,
|
|
107
|
+
v3Migrator: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.INK].UniswapV2Migrator,
|
|
108
|
+
v4Migrator: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.INK].UniswapV2Migrator,
|
|
109
|
+
// Same as v2/v3 migrator
|
|
110
|
+
governanceFactory: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.INK].GovernanceFactory,
|
|
111
|
+
noOpGovernanceFactory: ZERO_ADDRESS,
|
|
112
|
+
// Not yet deployed
|
|
113
|
+
streamableFeesLocker: ZERO_ADDRESS,
|
|
114
|
+
// Not yet deployed
|
|
115
|
+
universalRouter: "0x112908dac86e20e7241b0927479ea3bf935d1fa0",
|
|
116
|
+
univ2Router02: "0xB3FB126ACDd5AdCA2f50Ac644a7a2303745f18b4",
|
|
117
|
+
permit2: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
|
|
118
|
+
bundler: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.INK].Bundler,
|
|
119
|
+
weth: "0x4200000000000000000000000000000000000006",
|
|
120
|
+
uniswapV4Quoter: "0x3972c00f7ed4885e145823eb7c655375d275a1c5"
|
|
121
|
+
},
|
|
122
|
+
[CHAIN_IDS.UNICHAIN]: {
|
|
123
|
+
airlock: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].Airlock,
|
|
124
|
+
tokenFactory: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].TokenFactory,
|
|
125
|
+
v3Initializer: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].UniswapV3Initializer,
|
|
126
|
+
v3Quoter: "0x385A5cf5F83e99f7BB2852b6A19C3538b9FA7658",
|
|
127
|
+
v4Initializer: "0x2F2BAcd46d3F5c9EE052Ab392b73711dB89129DB",
|
|
128
|
+
dopplerLens: "0x333e3c607b141b18ff6de9f258db6e77fe7491e0",
|
|
129
|
+
dopplerDeployer: "0x06FEFD02F0b6d9f57F52cfacFc113665Dfa20F0f",
|
|
130
|
+
poolManager: "0x1f98400000000000000000000000000000000004",
|
|
131
|
+
v2Migrator: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].UniswapV2Migrator,
|
|
132
|
+
v3Migrator: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].UniswapV2Migrator,
|
|
133
|
+
v4Migrator: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].UniswapV2Migrator,
|
|
134
|
+
// Same as v2/v3 migrator
|
|
135
|
+
noOpMigrator: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].NoOpMigrator,
|
|
136
|
+
governanceFactory: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].GovernanceFactory,
|
|
137
|
+
noOpGovernanceFactory: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].NoOpGovernanceFactory,
|
|
138
|
+
streamableFeesLocker: ZERO_ADDRESS,
|
|
139
|
+
// Not yet deployed
|
|
140
|
+
universalRouter: "0xef740bf23acae26f6492b10de645d6b98dc8eaf3",
|
|
141
|
+
univ2Router02: "0x284f11109359a7e1306c3e447ef14d38400063ff",
|
|
142
|
+
permit2: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
|
|
143
|
+
bundler: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].Bundler,
|
|
144
|
+
weth: "0x4200000000000000000000000000000000000006",
|
|
145
|
+
uniswapV4Quoter: "0x333e3c607b141b18ff6de9f258db6e77fe7491e0"
|
|
146
|
+
},
|
|
147
|
+
[CHAIN_IDS.UNICHAIN_SEPOLIA]: {
|
|
148
|
+
airlock: "0x651ab94B4777e2e4cdf96082d90C65bd947b73A4",
|
|
149
|
+
tokenFactory: "0xC5E5a19a2ee32831Fcb8a81546979AF43936EbaA",
|
|
150
|
+
v3Initializer: "0x7Fb9a622186B4660A5988C223ebb9d3690dD5007",
|
|
151
|
+
v3Quoter: "0x6Dd37329A1A225a6Fca658265D460423DCafBF89",
|
|
152
|
+
v4Initializer: "0x992375478626E67F4e639d3298EbCAaE51C3dF0b",
|
|
153
|
+
dopplerLens: "0x56dcd40a3f2d466f48e7f48bdbe5cc9b92ae4472",
|
|
154
|
+
dopplerDeployer: "0x2f2bacd46d3f5c9ee052ab392b73711db89129db",
|
|
155
|
+
poolManager: "0x00B036B58a818B1BC34d502D3fE730Db729e62AC",
|
|
156
|
+
v2Migrator: "0x44C448E38A2C3D206c9132E7f645510dFbBC946b",
|
|
157
|
+
v3Migrator: "0x44C448E38A2C3D206c9132E7f645510dFbBC946b",
|
|
158
|
+
v4Migrator: "0x44C448E38A2C3D206c9132E7f645510dFbBC946b",
|
|
159
|
+
// Same as v2/v3 migrator
|
|
160
|
+
noOpMigrator: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN_SEPOLIA].NoOpMigrator,
|
|
161
|
+
governanceFactory: "0x1E4332EEfAE9e4967C2D186f7b2d439D778e81cC",
|
|
162
|
+
noOpGovernanceFactory: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN_SEPOLIA].NoOpGovernanceFactory,
|
|
163
|
+
streamableFeesLocker: ZERO_ADDRESS,
|
|
164
|
+
// Not yet deployed
|
|
165
|
+
universalRouter: "0xf70536B3bcC1bD1a972dc186A2cf84cC6da6Be5D",
|
|
166
|
+
univ2Router02: "0x284f11109359a7e1306c3e447ef14d38400063ff",
|
|
167
|
+
permit2: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
|
|
168
|
+
bundler: "0x63f8C8F9beFaab2FaCD7Ece0b0242f78B920Ee90",
|
|
169
|
+
weth: "0x4200000000000000000000000000000000000006",
|
|
170
|
+
uniswapV4Quoter: "0x56dcd40a3f2d466f48e7f48bdbe5cc9b92ae4472"
|
|
171
|
+
},
|
|
172
|
+
[CHAIN_IDS.MONAD_TESTNET]: {
|
|
173
|
+
airlock: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].Airlock,
|
|
174
|
+
tokenFactory: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].TokenFactory,
|
|
175
|
+
v3Initializer: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].UniswapV3Initializer,
|
|
176
|
+
v3Quoter: ZERO_ADDRESS,
|
|
177
|
+
v4Initializer: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].UniswapV4Initializer,
|
|
178
|
+
dopplerLens: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].DopplerLensQuoter,
|
|
179
|
+
dopplerDeployer: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].DopplerDeployer,
|
|
180
|
+
poolManager: "0xe93882f395B0b24180855c68Ab19B2d78573ceBc",
|
|
181
|
+
v2Migrator: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].UniswapV2Migrator,
|
|
182
|
+
v3Migrator: ZERO_ADDRESS,
|
|
183
|
+
v4Migrator: "0xBEd386a1Fc62B6598c9b8d2BF634471B6Fe75EB7",
|
|
184
|
+
// Same as v2/v3 migrator
|
|
185
|
+
noOpMigrator: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].NoOpMigrator,
|
|
186
|
+
governanceFactory: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].GovernanceFactory,
|
|
187
|
+
noOpGovernanceFactory: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].NoOpGovernanceFactory,
|
|
188
|
+
streamableFeesLocker: "0x91231cDdD8d6C86Df602070a3081478e074b97b7",
|
|
189
|
+
// Not yet deployed
|
|
190
|
+
universalRouter: ZERO_ADDRESS,
|
|
191
|
+
univ2Router02: ZERO_ADDRESS,
|
|
192
|
+
permit2: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
|
|
193
|
+
bundler: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].Bundler,
|
|
194
|
+
weth: ZERO_ADDRESS,
|
|
195
|
+
// TODO: Get Monad Testnet weth
|
|
196
|
+
uniswapV4Quoter: ZERO_ADDRESS
|
|
197
|
+
},
|
|
198
|
+
[CHAIN_IDS.MONAD_MAINNET]: {
|
|
199
|
+
airlock: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].Airlock,
|
|
200
|
+
tokenFactory: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].TokenFactory,
|
|
201
|
+
v3Initializer: ZERO_ADDRESS,
|
|
202
|
+
v3Quoter: "0x66266174564170519409d8853898f065c719536b",
|
|
203
|
+
v4Initializer: ZERO_ADDRESS,
|
|
204
|
+
dopplerLens: ZERO_ADDRESS,
|
|
205
|
+
dopplerDeployer: ZERO_ADDRESS,
|
|
206
|
+
poolManager: "0x188d586ddcf52439676ca21a244753fa19f9ea8e",
|
|
207
|
+
v2Migrator: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].UniswapV2Migrator,
|
|
208
|
+
v3Migrator: ZERO_ADDRESS,
|
|
209
|
+
v4Migrator: ZERO_ADDRESS,
|
|
210
|
+
// Same as v2/v3 migrator
|
|
211
|
+
noOpMigrator: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].NoOpMigrator,
|
|
212
|
+
governanceFactory: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].GovernanceFactory,
|
|
213
|
+
noOpGovernanceFactory: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].NoOpGovernanceFactory,
|
|
214
|
+
v4ScheduledMulticurveInitializer: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].UniswapV4ScheduledMulticurveInitializer,
|
|
215
|
+
streamableFeesLocker: ZERO_ADDRESS,
|
|
216
|
+
// Not yet deployed
|
|
217
|
+
universalRouter: "0x0d97dc33264bfc1c226207428a79b26757fb9dc3",
|
|
218
|
+
univ2Router02: ZERO_ADDRESS,
|
|
219
|
+
permit2: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
|
|
220
|
+
bundler: chunkCVHPLURA_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].Bundler,
|
|
221
|
+
weth: "0xEE8c0E9f1BFFb4Eb878d8f15f368A02a35481242",
|
|
222
|
+
// TODO: Get Monad Mainnet weth
|
|
223
|
+
uniswapV4Quoter: "0xa222dd357a9076d1091ed6aa2e16c9742dd26891"
|
|
224
|
+
}
|
|
225
|
+
};
|
|
226
|
+
function getAddresses(chainId) {
|
|
227
|
+
const addresses = ADDRESSES[chainId];
|
|
228
|
+
if (!addresses) {
|
|
229
|
+
throw new Error(`Unsupported chain ID: ${chainId}`);
|
|
230
|
+
}
|
|
231
|
+
return addresses;
|
|
232
|
+
}
|
|
233
|
+
var SUPPORTED_CHAIN_IDS = Object.values(CHAIN_IDS);
|
|
234
|
+
function isSupportedChainId(id) {
|
|
235
|
+
return id in ADDRESSES;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
exports.ADDRESSES = ADDRESSES;
|
|
239
|
+
exports.CHAIN_IDS = CHAIN_IDS;
|
|
240
|
+
exports.SUPPORTED_CHAIN_IDS = SUPPORTED_CHAIN_IDS;
|
|
241
|
+
exports.getAddresses = getAddresses;
|
|
242
|
+
exports.isSupportedChainId = isSupportedChainId;
|
|
243
|
+
//# sourceMappingURL=chunk-YYUOLM6U.js.map
|
|
244
|
+
//# sourceMappingURL=chunk-YYUOLM6U.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/addresses.ts"],"names":["GENERATED_DOPPLER_DEPLOYMENTS"],"mappings":"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","file":"chunk-YYUOLM6U.js","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,26 @@
|
|
|
1
|
+
import { encodeAbiParameters, keccak256 } from 'viem';
|
|
2
|
+
|
|
3
|
+
// src/utils/poolKey.ts
|
|
4
|
+
function computePoolId(poolKey) {
|
|
5
|
+
const encoded = encodeAbiParameters(
|
|
6
|
+
[
|
|
7
|
+
{ name: "currency0", type: "address" },
|
|
8
|
+
{ name: "currency1", type: "address" },
|
|
9
|
+
{ name: "fee", type: "uint24" },
|
|
10
|
+
{ name: "tickSpacing", type: "int24" },
|
|
11
|
+
{ name: "hooks", type: "address" }
|
|
12
|
+
],
|
|
13
|
+
[
|
|
14
|
+
poolKey.currency0,
|
|
15
|
+
poolKey.currency1,
|
|
16
|
+
poolKey.fee,
|
|
17
|
+
poolKey.tickSpacing,
|
|
18
|
+
poolKey.hooks
|
|
19
|
+
]
|
|
20
|
+
);
|
|
21
|
+
return keccak256(encoded);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export { computePoolId };
|
|
25
|
+
//# sourceMappingURL=chunk-ZH44DHVR.mjs.map
|
|
26
|
+
//# sourceMappingURL=chunk-ZH44DHVR.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/poolKey.ts"],"names":[],"mappings":";;;AAYO,SAAS,cAAc,OAAA,EAAyB;AAGrD,EAAA,MAAM,OAAA,GAAU,mBAAA;AAAA,IACd;AAAA,MACE,EAAE,IAAA,EAAM,WAAA,EAAa,IAAA,EAAM,SAAA,EAAU;AAAA,MACrC,EAAE,IAAA,EAAM,WAAA,EAAa,IAAA,EAAM,SAAA,EAAU;AAAA,MACrC,EAAE,IAAA,EAAM,KAAA,EAAO,IAAA,EAAM,QAAA,EAAS;AAAA,MAC9B,EAAE,IAAA,EAAM,aAAA,EAAe,IAAA,EAAM,OAAA,EAAQ;AAAA,MACrC,EAAE,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,SAAA;AAAU,KACnC;AAAA,IACA;AAAA,MACE,OAAA,CAAQ,SAAA;AAAA,MACR,OAAA,CAAQ,SAAA;AAAA,MACR,OAAA,CAAQ,GAAA;AAAA,MACR,OAAA,CAAQ,WAAA;AAAA,MACR,OAAA,CAAQ;AAAA;AACV,GACF;AAGA,EAAA,OAAO,UAAU,OAAO,CAAA;AAC1B","file":"chunk-ZH44DHVR.mjs","sourcesContent":["import { encodeAbiParameters, keccak256, type Address, type Hex } from 'viem'\nimport type { V4PoolKey } from '../types'\n\n/**\n * Computes the PoolId (bytes32) from a V4 PoolKey\n *\n * In Uniswap V4, a PoolId is computed as keccak256(abi.encode(poolKey))\n * where poolKey contains: currency0, currency1, fee, tickSpacing, hooks\n *\n * @param poolKey - The V4 pool key containing currency0, currency1, fee, tickSpacing, and hooks\n * @returns The computed PoolId as a bytes32 hex string\n */\nexport function computePoolId(poolKey: V4PoolKey): Hex {\n // Encode the poolKey struct following Solidity's abi.encode rules\n // PoolKey struct has 5 fields, each taking 32 bytes (0xa0 = 160 bytes total)\n const encoded = encodeAbiParameters(\n [\n { name: 'currency0', type: 'address' },\n { name: 'currency1', type: 'address' },\n { name: 'fee', type: 'uint24' },\n { name: 'tickSpacing', type: 'int24' },\n { name: 'hooks', type: 'address' },\n ],\n [\n poolKey.currency0,\n poolKey.currency1,\n poolKey.fee,\n poolKey.tickSpacing,\n poolKey.hooks,\n ]\n )\n\n // Return keccak256 hash of the encoded poolKey\n return keccak256(encoded)\n}\n"]}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkP7KLEPVI_js = require('./chunk-P7KLEPVI.js');
|
|
4
|
+
var chunkPH2KXREH_js = require('./chunk-PH2KXREH.js');
|
|
5
|
+
|
|
6
|
+
// src/builders/shared.ts
|
|
7
|
+
function computeTicks(priceRange, tickSpacing) {
|
|
8
|
+
const startTick = Math.floor(Math.log(priceRange.startPrice) / Math.log(1.0001) / tickSpacing) * tickSpacing;
|
|
9
|
+
const endTick = Math.ceil(Math.log(priceRange.endPrice) / Math.log(1.0001) / tickSpacing) * tickSpacing;
|
|
10
|
+
return { startTick, endTick };
|
|
11
|
+
}
|
|
12
|
+
var MARKET_CAP_PRESET_ORDER = ["low", "medium", "high"];
|
|
13
|
+
var MARKET_CAP_PRESETS = {
|
|
14
|
+
low: {
|
|
15
|
+
tickLower: chunkPH2KXREH_js.DEFAULT_MULTICURVE_LOWER_TICKS[0],
|
|
16
|
+
tickUpper: chunkPH2KXREH_js.DEFAULT_MULTICURVE_UPPER_TICKS[0],
|
|
17
|
+
numPositions: chunkPH2KXREH_js.DEFAULT_MULTICURVE_NUM_POSITIONS[0],
|
|
18
|
+
shares: chunkPH2KXREH_js.DEFAULT_MULTICURVE_MAX_SUPPLY_SHARES[0]
|
|
19
|
+
},
|
|
20
|
+
medium: {
|
|
21
|
+
tickLower: chunkPH2KXREH_js.DEFAULT_MULTICURVE_LOWER_TICKS[1],
|
|
22
|
+
tickUpper: chunkPH2KXREH_js.DEFAULT_MULTICURVE_UPPER_TICKS[1],
|
|
23
|
+
numPositions: chunkPH2KXREH_js.DEFAULT_MULTICURVE_NUM_POSITIONS[1],
|
|
24
|
+
shares: chunkPH2KXREH_js.DEFAULT_MULTICURVE_MAX_SUPPLY_SHARES[1]
|
|
25
|
+
},
|
|
26
|
+
high: {
|
|
27
|
+
tickLower: chunkPH2KXREH_js.DEFAULT_MULTICURVE_LOWER_TICKS[2],
|
|
28
|
+
tickUpper: chunkPH2KXREH_js.DEFAULT_MULTICURVE_UPPER_TICKS[2],
|
|
29
|
+
numPositions: chunkPH2KXREH_js.DEFAULT_MULTICURVE_NUM_POSITIONS[2],
|
|
30
|
+
shares: chunkPH2KXREH_js.DEFAULT_MULTICURVE_MAX_SUPPLY_SHARES[2]
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
function buildCurvesFromPresets(params) {
|
|
34
|
+
const fee = params?.fee ?? chunkPH2KXREH_js.FEE_TIERS.LOW;
|
|
35
|
+
const tickSpacing = params?.tickSpacing ?? chunkPH2KXREH_js.TICK_SPACINGS[fee];
|
|
36
|
+
if (tickSpacing === void 0) {
|
|
37
|
+
throw new Error("tickSpacing must be provided when using a custom fee tier");
|
|
38
|
+
}
|
|
39
|
+
const requestedPresets = params?.presets ?? [...MARKET_CAP_PRESET_ORDER];
|
|
40
|
+
const uniquePresets = [];
|
|
41
|
+
for (const preset of requestedPresets) {
|
|
42
|
+
if (!(preset in MARKET_CAP_PRESETS)) {
|
|
43
|
+
throw new Error(`Unsupported market cap preset: ${preset}`);
|
|
44
|
+
}
|
|
45
|
+
if (!uniquePresets.includes(preset)) {
|
|
46
|
+
uniquePresets.push(preset);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
if (uniquePresets.length === 0) {
|
|
50
|
+
throw new Error("At least one market cap preset must be provided");
|
|
51
|
+
}
|
|
52
|
+
const presetCurves = uniquePresets.map((preset) => {
|
|
53
|
+
const base = MARKET_CAP_PRESETS[preset];
|
|
54
|
+
const override = params?.overrides?.[preset];
|
|
55
|
+
return {
|
|
56
|
+
tickLower: override?.tickLower ?? base.tickLower,
|
|
57
|
+
tickUpper: override?.tickUpper ?? base.tickUpper,
|
|
58
|
+
numPositions: override?.numPositions ?? base.numPositions,
|
|
59
|
+
shares: override?.shares ?? base.shares
|
|
60
|
+
};
|
|
61
|
+
});
|
|
62
|
+
let totalShares = presetCurves.reduce((acc, curve) => {
|
|
63
|
+
if (curve.shares <= 0n) {
|
|
64
|
+
throw new Error("Preset shares must be greater than zero");
|
|
65
|
+
}
|
|
66
|
+
return acc + curve.shares;
|
|
67
|
+
}, 0n);
|
|
68
|
+
if (totalShares > chunkPH2KXREH_js.WAD) {
|
|
69
|
+
throw new Error("Total preset shares cannot exceed 100% (1e18)");
|
|
70
|
+
}
|
|
71
|
+
const curves = [...presetCurves];
|
|
72
|
+
if (totalShares < chunkPH2KXREH_js.WAD) {
|
|
73
|
+
const remainder = chunkPH2KXREH_js.WAD - totalShares;
|
|
74
|
+
const lastCurve = curves[curves.length - 1];
|
|
75
|
+
let fillerTickLower = lastCurve?.tickUpper ?? 0;
|
|
76
|
+
let fillerNumPositions = lastCurve?.numPositions ?? 1;
|
|
77
|
+
if (fillerNumPositions <= 0) {
|
|
78
|
+
fillerNumPositions = 1;
|
|
79
|
+
}
|
|
80
|
+
const minTickAllowed = Math.ceil(chunkP7KLEPVI_js.MIN_TICK / tickSpacing) * tickSpacing;
|
|
81
|
+
const rawMaxTick = Math.floor(chunkP7KLEPVI_js.MAX_TICK / tickSpacing) * tickSpacing;
|
|
82
|
+
const maxTickAllowed = rawMaxTick - tickSpacing;
|
|
83
|
+
fillerTickLower = Math.max(fillerTickLower, minTickAllowed);
|
|
84
|
+
let fillerTickUpper = fillerTickLower + fillerNumPositions * tickSpacing;
|
|
85
|
+
if (fillerTickUpper > maxTickAllowed) {
|
|
86
|
+
fillerTickUpper = maxTickAllowed;
|
|
87
|
+
fillerTickLower = Math.min(fillerTickLower, maxTickAllowed - tickSpacing);
|
|
88
|
+
}
|
|
89
|
+
if (fillerTickUpper <= fillerTickLower) {
|
|
90
|
+
fillerTickLower = Math.max(minTickAllowed, maxTickAllowed - tickSpacing);
|
|
91
|
+
fillerTickUpper = fillerTickLower + tickSpacing;
|
|
92
|
+
}
|
|
93
|
+
curves.push({
|
|
94
|
+
tickLower: fillerTickLower,
|
|
95
|
+
tickUpper: fillerTickUpper,
|
|
96
|
+
numPositions: fillerNumPositions,
|
|
97
|
+
shares: remainder
|
|
98
|
+
});
|
|
99
|
+
totalShares = chunkPH2KXREH_js.WAD;
|
|
100
|
+
}
|
|
101
|
+
if (totalShares !== chunkPH2KXREH_js.WAD) {
|
|
102
|
+
throw new Error("Failed to normalize preset shares to 100%");
|
|
103
|
+
}
|
|
104
|
+
return { fee, tickSpacing, curves };
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
exports.MARKET_CAP_PRESETS = MARKET_CAP_PRESETS;
|
|
108
|
+
exports.MARKET_CAP_PRESET_ORDER = MARKET_CAP_PRESET_ORDER;
|
|
109
|
+
exports.buildCurvesFromPresets = buildCurvesFromPresets;
|
|
110
|
+
exports.computeTicks = computeTicks;
|
|
111
|
+
//# sourceMappingURL=chunk-ZPHOOG72.js.map
|
|
112
|
+
//# sourceMappingURL=chunk-ZPHOOG72.js.map
|