@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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/abis/index.ts"],"names":[],"mappings":"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","file":"chunk-EFAPDN4J.js","sourcesContent":["// Core contract ABIs needed for static and dynamic auctions\n\nexport const airlockAbi = [\n {\n type: 'constructor',\n inputs: [{ name: 'owner_', type: 'address', internalType: 'address' }],\n stateMutability: 'nonpayable',\n },\n { type: 'receive', stateMutability: 'payable' },\n {\n type: 'function',\n name: 'collectIntegratorFees',\n inputs: [\n { name: 'to', type: 'address', internalType: 'address' },\n { name: 'token', type: 'address', internalType: 'address' },\n { name: 'amount', type: 'uint256', internalType: 'uint256' },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'collectProtocolFees',\n inputs: [\n { name: 'to', type: 'address', internalType: 'address' },\n { name: 'token', type: 'address', internalType: 'address' },\n { name: 'amount', type: 'uint256', internalType: 'uint256' },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'create',\n inputs: [\n {\n name: 'createData',\n type: 'tuple',\n internalType: 'struct CreateParams',\n components: [\n { name: 'initialSupply', type: 'uint256', internalType: 'uint256' },\n { name: 'numTokensToSell', type: 'uint256', internalType: 'uint256' },\n { name: 'numeraire', type: 'address', internalType: 'address' },\n {\n name: 'tokenFactory',\n type: 'address',\n internalType: 'contract ITokenFactory',\n },\n { name: 'tokenFactoryData', type: 'bytes', internalType: 'bytes' },\n {\n name: 'governanceFactory',\n type: 'address',\n internalType: 'contract IGovernanceFactory',\n },\n {\n name: 'governanceFactoryData',\n type: 'bytes',\n internalType: 'bytes',\n },\n {\n name: 'poolInitializer',\n type: 'address',\n internalType: 'contract IPoolInitializer',\n },\n { name: 'poolInitializerData', type: 'bytes', internalType: 'bytes' },\n {\n name: 'liquidityMigrator',\n type: 'address',\n internalType: 'contract ILiquidityMigrator',\n },\n {\n name: 'liquidityMigratorData',\n type: 'bytes',\n internalType: 'bytes',\n },\n { name: 'integrator', type: 'address', internalType: 'address' },\n { name: 'salt', type: 'bytes32', internalType: 'bytes32' },\n ],\n },\n ],\n outputs: [\n { name: 'asset', type: 'address', internalType: 'address' },\n { name: 'pool', type: 'address', internalType: 'address' },\n { name: 'governance', type: 'address', internalType: 'address' },\n { name: 'timelock', type: 'address', internalType: 'address' },\n { name: 'migrationPool', type: 'address', internalType: 'address' },\n ],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'getAssetData',\n inputs: [{ name: 'asset', type: 'address', internalType: 'address' }],\n outputs: [\n { name: 'numeraire', type: 'address', internalType: 'address' },\n { name: 'timelock', type: 'address', internalType: 'address' },\n { name: 'governance', type: 'address', internalType: 'address' },\n {\n name: 'liquidityMigrator',\n type: 'address',\n internalType: 'contract ILiquidityMigrator',\n },\n {\n name: 'poolInitializer',\n type: 'address',\n internalType: 'contract IPoolInitializer',\n },\n { name: 'pool', type: 'address', internalType: 'address' },\n { name: 'migrationPool', type: 'address', internalType: 'address' },\n { name: 'numTokensToSell', type: 'uint256', internalType: 'uint256' },\n { name: 'totalSupply', type: 'uint256', internalType: 'uint256' },\n { name: 'integrator', type: 'address', internalType: 'address' },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getModuleState',\n inputs: [{ name: 'module', type: 'address', internalType: 'address' }],\n outputs: [\n { name: 'state', type: 'uint8', internalType: 'enum ModuleState' },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'integratorFees',\n inputs: [\n { name: 'integrator', type: 'address', internalType: 'address' },\n { name: 'token', type: 'address', internalType: 'address' },\n ],\n outputs: [{ name: 'amount', type: 'uint256', internalType: 'uint256' }],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'migrate',\n inputs: [{ name: 'asset', type: 'address', internalType: 'address' }],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'owner',\n inputs: [],\n outputs: [{ name: '', type: 'address', internalType: 'address' }],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'protocolFees',\n inputs: [{ name: 'token', type: 'address', internalType: 'address' }],\n outputs: [{ name: 'amount', type: 'uint256', internalType: 'uint256' }],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'renounceOwnership',\n inputs: [],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'setModuleState',\n inputs: [\n { name: 'modules', type: 'address[]', internalType: 'address[]' },\n { name: 'states', type: 'uint8[]', internalType: 'enum ModuleState[]' },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'transferOwnership',\n inputs: [{ name: 'newOwner', type: 'address', internalType: 'address' }],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'event',\n name: 'Collect',\n inputs: [\n { name: 'to', type: 'address', indexed: true, internalType: 'address' },\n {\n name: 'token',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n indexed: false,\n internalType: 'uint256',\n },\n ],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'Create',\n inputs: [\n {\n name: 'asset',\n type: 'address',\n indexed: false,\n internalType: 'address',\n },\n {\n name: 'numeraire',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'initializer',\n type: 'address',\n indexed: false,\n internalType: 'address',\n },\n {\n name: 'poolOrHook',\n type: 'address',\n indexed: false,\n internalType: 'address',\n },\n ],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'Migrate',\n inputs: [\n {\n name: 'asset',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n { name: 'pool', type: 'address', indexed: true, internalType: 'address' },\n ],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'OwnershipTransferred',\n inputs: [\n {\n name: 'previousOwner',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'newOwner',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n ],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'SetModuleState',\n inputs: [\n {\n name: 'module',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'state',\n type: 'uint8',\n indexed: true,\n internalType: 'enum ModuleState',\n },\n ],\n anonymous: false,\n },\n { type: 'error', name: 'ArrayLengthsMismatch', inputs: [] },\n {\n type: 'error',\n name: 'OwnableInvalidOwner',\n inputs: [{ name: 'owner', type: 'address', internalType: 'address' }],\n },\n {\n type: 'error',\n name: 'OwnableUnauthorizedAccount',\n inputs: [{ name: 'account', type: 'address', internalType: 'address' }],\n },\n {\n type: 'error',\n name: 'WrongModuleState',\n inputs: [\n { name: 'module', type: 'address', internalType: 'address' },\n { name: 'expected', type: 'uint8', internalType: 'enum ModuleState' },\n { name: 'actual', type: 'uint8', internalType: 'enum ModuleState' },\n ],\n },\n] as const\n\nexport const uniswapV3InitializerAbi = [\n {\n type: \"function\",\n name: \"encodePoolInitializerData\",\n inputs: [\n { name: \"params\", type: \"tuple\", \n components: [\n { name: \"numTokensToSell\", type: \"uint256\" },\n { name: \"startTick\", type: \"int24\" },\n { name: \"endTick\", type: \"int24\" },\n { name: \"fee\", type: \"uint24\" }\n ]\n }\n ],\n outputs: [{ name: \"\", type: \"bytes\" }],\n stateMutability: \"pure\",\n },\n] as const\n\nexport const v2MigratorAbi = [\n {\n type: \"function\",\n name: \"encodeLiquidityMigratorData\",\n inputs: [],\n outputs: [{ name: \"\", type: \"bytes\" }],\n stateMutability: \"pure\",\n },\n] as const\n\nexport const v3MigratorAbi = [\n {\n type: \"function\",\n name: \"encodeLiquidityMigratorData\",\n inputs: [\n { name: \"fee\", type: \"uint24\" },\n { name: \"tickSpacing\", type: \"int24\" }\n ],\n outputs: [{ name: \"\", type: \"bytes\" }],\n stateMutability: \"pure\",\n },\n] as const\n\nexport const v4MigratorAbi = [\n {\n type: \"function\",\n name: \"encodeLiquidityMigratorData\",\n inputs: [\n { name: \"fee\", type: \"uint24\" },\n { name: \"tickSpacing\", type: \"int24\" },\n { name: \"lockDuration\", type: \"uint256\" },\n { name: \"beneficiaries\", type: \"address[]\" },\n { name: \"percentages\", type: \"uint256[]\" }\n ],\n outputs: [{ name: \"\", type: \"bytes\" }],\n stateMutability: \"pure\",\n },\n] as const\n\nexport const uniswapV3PoolAbi = [\n {\n type: \"function\",\n name: \"slot0\",\n inputs: [],\n outputs: [\n { name: \"sqrtPriceX96\", type: \"uint160\" },\n { name: \"tick\", type: \"int24\" },\n { name: \"observationIndex\", type: \"uint16\" },\n { name: \"observationCardinality\", type: \"uint16\" },\n { name: \"observationCardinalityNext\", type: \"uint16\" },\n { name: \"feeProtocol\", type: \"uint8\" },\n { name: \"unlocked\", type: \"bool\" }\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"liquidity\",\n inputs: [],\n outputs: [{ name: \"\", type: \"uint128\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"token0\",\n inputs: [],\n outputs: [{ name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"token1\",\n inputs: [],\n outputs: [{ name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"fee\",\n inputs: [],\n outputs: [{ name: \"\", type: \"uint24\" }],\n stateMutability: \"view\",\n },\n] as const\n\nexport const derc20Abi = [\n {\n type: \"function\",\n name: \"allowance\",\n inputs: [\n { name: \"owner\", type: \"address\", internalType: \"address\" },\n { name: \"spender\", type: \"address\", internalType: \"address\" },\n ],\n outputs: [{ name: \"\", type: \"uint256\", internalType: \"uint256\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"approve\",\n inputs: [\n { name: \"spender\", type: \"address\", internalType: \"address\" },\n { name: \"value\", type: \"uint256\", internalType: \"uint256\" },\n ],\n outputs: [{ name: \"\", type: \"bool\", internalType: \"bool\" }],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"balanceOf\",\n inputs: [{ name: \"account\", type: \"address\", internalType: \"address\" }],\n outputs: [{ name: \"\", type: \"uint256\", internalType: \"uint256\" }],\n stateMutability: \"view\",\n },\n {\n type: 'function',\n name: 'computeAvailableVestedAmount',\n inputs: [{ name: 'account', type: 'address', internalType: 'address' }],\n outputs: [{ name: '', type: 'uint256', internalType: 'uint256' }],\n stateMutability: 'view',\n },\n {\n type: \"function\",\n name: \"currentYearStart\",\n inputs: [],\n outputs: [{ name: \"\", type: \"uint256\", internalType: \"uint256\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"decimals\",\n inputs: [],\n outputs: [{ name: \"\", type: \"uint8\", internalType: \"uint8\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"getVestingDataOf\",\n inputs: [{ name: \"account\", type: \"address\", internalType: \"address\" }],\n outputs: [\n { name: \"totalAmount\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"releasedAmount\", type: \"uint256\", internalType: \"uint256\" },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"isPoolUnlocked\",\n inputs: [],\n outputs: [{ name: \"\", type: \"bool\", internalType: \"bool\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"lastMintTimestamp\",\n inputs: [],\n outputs: [{ name: \"\", type: \"uint256\", internalType: \"uint256\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"name\",\n inputs: [],\n outputs: [{ name: \"\", type: \"string\", internalType: \"string\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"pool\",\n inputs: [],\n outputs: [{ name: \"\", type: \"address\", internalType: \"address\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"release\",\n inputs: [{ name: \"amount\", type: \"uint256\", internalType: \"uint256\" }],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"symbol\",\n inputs: [],\n outputs: [{ name: \"\", type: \"string\", internalType: \"string\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"tokenURI\",\n inputs: [],\n outputs: [{ name: \"\", type: \"string\", internalType: \"string\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"totalSupply\",\n inputs: [],\n outputs: [{ name: \"\", type: \"uint256\", internalType: \"uint256\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"transfer\",\n inputs: [\n { name: \"to\", type: \"address\", internalType: \"address\" },\n { name: \"value\", type: \"uint256\", internalType: \"uint256\" },\n ],\n outputs: [{ name: \"\", type: \"bool\", internalType: \"bool\" }],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"transferFrom\",\n inputs: [\n { name: \"from\", type: \"address\", internalType: \"address\" },\n { name: \"to\", type: \"address\", internalType: \"address\" },\n { name: \"value\", type: \"uint256\", internalType: \"uint256\" },\n ],\n outputs: [{ name: \"\", type: \"bool\", internalType: \"bool\" }],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"vestedTotalAmount\",\n inputs: [],\n outputs: [{ name: \"\", type: \"uint256\", internalType: \"uint256\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"vestingDuration\",\n inputs: [],\n outputs: [{ name: \"\", type: \"uint256\", internalType: \"uint256\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"vestingStart\",\n inputs: [],\n outputs: [{ name: \"\", type: \"uint256\", internalType: \"uint256\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"yearlyMintRate\",\n inputs: [],\n outputs: [{ name: \"\", type: \"uint256\", internalType: \"uint256\" }],\n stateMutability: \"view\",\n },\n] as const\n\nexport const uniswapV4InitializerAbi = [\n {\n type: \"function\",\n name: \"encodePoolInitializerData\",\n inputs: [\n { name: \"params\", type: \"tuple\", \n components: [\n { name: \"minimumProceeds\", type: \"uint256\" },\n { name: \"maximumProceeds\", type: \"uint256\" },\n { name: \"startingTime\", type: \"uint256\" },\n { name: \"endingTime\", type: \"uint256\" },\n { name: \"startingTick\", type: \"int24\" },\n { name: \"endingTick\", type: \"int24\" },\n { name: \"epochLength\", type: \"uint256\" },\n { name: \"gamma\", type: \"int24\" },\n { name: \"isToken0\", type: \"bool\" },\n { name: \"numPDSlugs\", type: \"uint256\" },\n { name: \"fee\", type: \"uint24\" },\n { name: \"tickSpacing\", type: \"int24\" }\n ]\n }\n ],\n outputs: [{ name: \"\", type: \"bytes\" }],\n stateMutability: \"pure\",\n },\n] as const\n\nexport const dopplerHookAbi = [\n {\n type: \"function\",\n name: \"state\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"tuple\",\n components: [\n { name: \"lastEpoch\", type: \"uint40\" },\n { name: \"tickAccumulator\", type: \"int256\" },\n { name: \"totalTokensSold\", type: \"uint256\" },\n { name: \"totalProceeds\", type: \"uint256\" },\n { name: \"totalTokensSoldLastEpoch\", type: \"uint256\" },\n { name: \"feesAccrued\", type: \"tuple\", components: [\n { name: \"amount0\", type: \"int128\" },\n { name: \"amount1\", type: \"int128\" }\n ]}\n ]\n }\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"earlyExit\",\n inputs: [],\n outputs: [{ name: \"\", type: \"bool\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"insufficientProceeds\",\n inputs: [],\n outputs: [{ name: \"\", type: \"bool\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"poolKey\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"tuple\",\n components: [\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 ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"startingTime\",\n inputs: [],\n outputs: [{ name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"endingTime\",\n inputs: [],\n outputs: [{ name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"epochLength\",\n inputs: [],\n outputs: [{ name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"minimumProceeds\",\n inputs: [],\n outputs: [{ name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"maximumProceeds\",\n inputs: [],\n outputs: [{ name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"numTokensToSell\",\n inputs: [],\n outputs: [{ name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"startingTick\",\n inputs: [],\n outputs: [{ name: \"\", type: \"int24\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"endingTick\",\n inputs: [],\n outputs: [{ name: \"\", type: \"int24\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"gamma\",\n inputs: [],\n outputs: [{ name: \"\", type: \"int24\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"isToken0\",\n inputs: [],\n outputs: [{ name: \"\", type: \"bool\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"numPDSlugs\",\n inputs: [],\n outputs: [{ name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n },\n] as const\n\nexport const quoterV2Abi = [\n {\n inputs: [\n { internalType: \"address\", name: \"_factory\", type: \"address\" },\n { internalType: \"address\", name: \"_WETH9\", type: \"address\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n inputs: [],\n name: \"WETH9\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"factory\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"bytes\", name: \"path\", type: \"bytes\" },\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n ],\n name: \"quoteExactInput\",\n outputs: [\n { internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" },\n {\n internalType: \"uint160[]\",\n name: \"sqrtPriceX96AfterList\",\n type: \"uint160[]\",\n },\n {\n internalType: \"uint32[]\",\n name: \"initializedTicksCrossedList\",\n type: \"uint32[]\",\n },\n { internalType: \"uint256\", name: \"gasEstimate\", type: \"uint256\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n { internalType: \"address\", name: \"tokenIn\", type: \"address\" },\n { internalType: \"address\", name: \"tokenOut\", type: \"address\" },\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n { internalType: \"uint24\", name: \"fee\", type: \"uint24\" },\n {\n internalType: \"uint160\",\n name: \"sqrtPriceLimitX96\",\n type: \"uint160\",\n },\n ],\n internalType: \"struct IQuoterV2.QuoteExactInputSingleParams\",\n name: \"params\",\n type: \"tuple\",\n },\n ],\n name: \"quoteExactInputSingle\",\n outputs: [\n { internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" },\n { internalType: \"uint160\", name: \"sqrtPriceX96After\", type: \"uint160\" },\n {\n internalType: \"uint32\",\n name: \"initializedTicksCrossed\",\n type: \"uint32\",\n },\n { internalType: \"uint256\", name: \"gasEstimate\", type: \"uint256\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"bytes\", name: \"path\", type: \"bytes\" },\n { internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" },\n ],\n name: \"quoteExactOutput\",\n outputs: [\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n {\n internalType: \"uint160[]\",\n name: \"sqrtPriceX96AfterList\",\n type: \"uint160[]\",\n },\n {\n internalType: \"uint32[]\",\n name: \"initializedTicksCrossedList\",\n type: \"uint32[]\",\n },\n { internalType: \"uint256\", name: \"gasEstimate\", type: \"uint256\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n { internalType: \"address\", name: \"tokenIn\", type: \"address\" },\n { internalType: \"address\", name: \"tokenOut\", type: \"address\" },\n { internalType: \"uint24\", name: \"fee\", type: \"uint24\" },\n { internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" },\n {\n internalType: \"uint160\",\n name: \"sqrtPriceLimitX96\",\n type: \"uint160\",\n },\n ],\n internalType: \"struct IQuoterV2.QuoteExactOutputSingleParams\",\n name: \"params\",\n type: \"tuple\",\n },\n ],\n name: \"quoteExactOutputSingle\",\n outputs: [\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n { internalType: \"uint160\", name: \"sqrtPriceX96After\", type: \"uint160\" },\n {\n internalType: \"uint32\",\n name: \"initializedTicksCrossed\",\n type: \"uint32\",\n },\n { internalType: \"uint256\", name: \"gasEstimate\", type: \"uint256\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"int256\", name: \"amount0Delta\", type: \"int256\" },\n { internalType: \"int256\", name: \"amount1Delta\", type: \"int256\" },\n { internalType: \"bytes\", name: \"_data\", type: \"bytes\" },\n ],\n name: \"uniswapV3SwapCallback\",\n outputs: [],\n stateMutability: \"view\",\n type: \"function\",\n },\n] as const\n\nexport const uniswapV2Router02Abi = [\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n ],\n name: \"getAmountsOut\",\n outputs: [\n { internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n ],\n name: \"getAmountsIn\",\n outputs: [\n { internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n] as const\n\nexport const v4QuoterAbi = [\n {\n type: 'constructor',\n inputs: [\n {\n name: '_poolManager',\n type: 'address',\n internalType: 'contract IPoolManager',\n },\n ],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'quoteExactInputSingle',\n inputs: [\n {\n name: 'params',\n type: 'tuple',\n internalType: 'struct IV4Quoter.QuoteExactSingleParams',\n components: [\n {\n name: 'poolKey',\n type: 'tuple',\n internalType: 'struct PoolKey',\n components: [\n { name: 'currency0', type: 'address', internalType: 'Currency' },\n { name: 'currency1', type: 'address', internalType: 'Currency' },\n { name: 'fee', type: 'uint24', internalType: 'uint24' },\n { name: 'tickSpacing', type: 'int24', internalType: 'int24' },\n {\n name: 'hooks',\n type: 'address',\n internalType: 'contract IHooks',\n },\n ],\n },\n { name: 'zeroForOne', type: 'bool', internalType: 'bool' },\n { name: 'exactAmount', type: 'uint128', internalType: 'uint128' },\n { name: 'hookData', type: 'bytes', internalType: 'bytes' },\n ],\n },\n ],\n outputs: [\n { name: 'amountOut', type: 'uint256', internalType: 'uint256' },\n { name: 'gasEstimate', type: 'uint256', internalType: 'uint256' },\n ],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'quoteExactOutputSingle',\n inputs: [\n {\n name: 'params',\n type: 'tuple',\n internalType: 'struct IV4Quoter.QuoteExactSingleParams',\n components: [\n {\n name: 'poolKey',\n type: 'tuple',\n internalType: 'struct PoolKey',\n components: [\n { name: 'currency0', type: 'address', internalType: 'Currency' },\n { name: 'currency1', type: 'address', internalType: 'Currency' },\n { name: 'fee', type: 'uint24', internalType: 'uint24' },\n { name: 'tickSpacing', type: 'int24', internalType: 'int24' },\n {\n name: 'hooks',\n type: 'address',\n internalType: 'contract IHooks',\n },\n ],\n },\n { name: 'zeroForOne', type: 'bool', internalType: 'bool' },\n { name: 'exactAmount', type: 'uint128', internalType: 'uint128' },\n { name: 'hookData', type: 'bytes', internalType: 'bytes' },\n ],\n },\n ],\n outputs: [\n { name: 'amountIn', type: 'uint256', internalType: 'uint256' },\n { name: 'gasEstimate', type: 'uint256', internalType: 'uint256' },\n ],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'poolManager',\n inputs: [],\n outputs: [\n { name: '', type: 'address', internalType: 'contract IPoolManager' },\n ],\n stateMutability: 'view',\n },\n] as const\n\nexport const lockableUniswapV3InitializerAbi = [\n {\n type: 'constructor',\n inputs: [\n { name: 'airlock_', type: 'address', internalType: 'address' },\n { name: 'factory_', type: 'address', internalType: 'contract IUniswapV3Factory' },\n ],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'airlock',\n inputs: [],\n outputs: [{ name: '', type: 'address', internalType: 'contract Airlock' }],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'collectFees',\n inputs: [{ name: 'pool', type: 'address', internalType: 'address' }],\n outputs: [\n { name: 'fees0ToDistribute', type: 'uint256', internalType: 'uint256' },\n { name: 'fees1ToDistribute', type: 'uint256', internalType: 'uint256' },\n ],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'exitLiquidity',\n inputs: [{ name: 'pool', type: 'address', internalType: 'address' }],\n outputs: [\n { name: 'sqrtPriceX96', type: 'uint160', internalType: 'uint160' },\n { name: 'token0', type: 'address', internalType: 'address' },\n { name: 'fees0', type: 'uint128', internalType: 'uint128' },\n { name: 'balance0', type: 'uint128', internalType: 'uint128' },\n { name: 'token1', type: 'address', internalType: 'address' },\n { name: 'fees1', type: 'uint128', internalType: 'uint128' },\n { name: 'balance1', type: 'uint128', internalType: 'uint128' },\n ],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'factory',\n inputs: [],\n outputs: [{ name: '', type: 'address', internalType: 'contract IUniswapV3Factory' }],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getState',\n inputs: [{ name: 'pool', type: 'address', internalType: 'address' }],\n outputs: [\n { name: 'asset', type: 'address', internalType: 'address' },\n { name: 'numeraire', type: 'address', internalType: 'address' },\n { name: 'tickLower', type: 'int24', internalType: 'int24' },\n { name: 'tickUpper', type: 'int24', internalType: 'int24' },\n { name: 'maxShareToBeSold', type: 'uint256', internalType: 'uint256' },\n { name: 'totalTokensOnBondingCurve', type: 'uint256', internalType: 'uint256' },\n { name: 'status', type: 'uint8', internalType: 'enum PoolStatus' },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'initialize',\n inputs: [\n { name: 'asset', type: 'address', internalType: 'address' },\n { name: 'numeraire', type: 'address', internalType: 'address' },\n { name: 'totalTokensOnBondingCurve', type: 'uint256', internalType: 'uint256' },\n { name: '', type: 'bytes32', internalType: 'bytes32' },\n { name: 'data', type: 'bytes', internalType: 'bytes' },\n ],\n outputs: [{ name: 'pool', type: 'address', internalType: 'address' }],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'uniswapV3MintCallback',\n inputs: [\n { name: 'amount0Owed', type: 'uint256', internalType: 'uint256' },\n { name: 'amount1Owed', type: 'uint256', internalType: 'uint256' },\n { name: 'data', type: 'bytes', internalType: 'bytes' },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'encodePoolInitializerData',\n inputs: [\n {\n name: 'params',\n type: 'tuple',\n components: [\n { name: 'fee', type: 'uint24' },\n { name: 'tickLower', type: 'int24' },\n { name: 'tickUpper', type: 'int24' },\n { name: 'numPositions', type: 'uint16' },\n { name: 'maxShareToBeSold', type: 'uint256' },\n {\n name: 'beneficiaries',\n type: 'tuple[]',\n components: [\n { name: 'beneficiary', type: 'address' },\n { name: 'shares', type: 'uint96' },\n ],\n },\n ],\n },\n ],\n outputs: [{ name: '', type: 'bytes' }],\n stateMutability: 'pure',\n },\n {\n type: 'event',\n name: 'Collect',\n inputs: [\n { name: 'pool', type: 'address', indexed: true, internalType: 'address' },\n { name: 'beneficiary', type: 'address', indexed: true, internalType: 'address' },\n { name: 'fees0', type: 'uint256', indexed: false, internalType: 'uint256' },\n { name: 'fees1', type: 'uint256', indexed: false, internalType: 'uint256' },\n ],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'Create',\n inputs: [\n { name: 'poolOrHook', type: 'address', indexed: true, internalType: 'address' },\n { name: 'asset', type: 'address', indexed: true, internalType: 'address' },\n { name: 'numeraire', type: 'address', indexed: true, internalType: 'address' },\n ],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'Lock',\n inputs: [\n { name: 'pool', type: 'address', indexed: true, internalType: 'address' },\n {\n name: 'beneficiaries',\n type: 'tuple[]',\n indexed: false,\n internalType: 'struct BeneficiaryData[]',\n components: [\n { name: 'beneficiary', type: 'address', internalType: 'address' },\n { name: 'shares', type: 'uint96', internalType: 'uint96' },\n ],\n },\n ],\n anonymous: false,\n },\n {\n type: 'error',\n name: 'CannotMigrateInsufficientTick',\n inputs: [\n { name: 'targetTick', type: 'int24', internalType: 'int24' },\n { name: 'currentTick', type: 'int24', internalType: 'int24' },\n ],\n },\n { type: 'error', name: 'CannotMintZeroLiquidity', inputs: [] },\n {\n type: 'error',\n name: 'InvalidFee',\n inputs: [{ name: 'fee', type: 'uint24', internalType: 'uint24' }],\n },\n {\n type: 'error',\n name: 'InvalidTickRange',\n inputs: [\n { name: 'tick', type: 'int24', internalType: 'int24' },\n { name: 'tickSpacing', type: 'int24', internalType: 'int24' },\n ],\n },\n {\n type: 'error',\n name: 'InvalidTickRangeMisordered',\n inputs: [\n { name: 'tickLower', type: 'int24', internalType: 'int24' },\n { name: 'tickUpper', type: 'int24', internalType: 'int24' },\n ],\n },\n {\n type: 'error',\n name: 'MaxShareToBeSoldExceeded',\n inputs: [\n { name: 'value', type: 'uint256', internalType: 'uint256' },\n { name: 'limit', type: 'uint256', internalType: 'uint256' },\n ],\n },\n { type: 'error', name: 'OnlyPool', inputs: [] },\n { type: 'error', name: 'PoolAlreadyExited', inputs: [] },\n { type: 'error', name: 'PoolAlreadyInitialized', inputs: [] },\n { type: 'error', name: 'PoolLocked', inputs: [] },\n { type: 'error', name: 'SenderNotAirlock', inputs: [] },\n { type: 'error', name: 'UnorderedBeneficiaries', inputs: [] },\n { type: 'error', name: 'InvalidShares', inputs: [] },\n { type: 'error', name: 'InvalidTotalShares', inputs: [] },\n { type: 'error', name: 'InvalidProtocolOwnerShares', inputs: [] },\n { type: 'error', name: 'InvalidProtocolOwnerBeneficiary', inputs: [] },\n] as const\n\nexport const dopplerLensAbi = [\n {\n type: 'function',\n name: 'quoteDopplerLensData',\n inputs: [\n {\n name: 'params',\n type: 'tuple',\n internalType: 'struct IV4Quoter.QuoteExactSingleParams',\n components: [\n {\n name: 'poolKey',\n type: 'tuple',\n internalType: 'struct PoolKey',\n components: [\n { name: 'currency0', type: 'address', internalType: 'Currency' },\n { name: 'currency1', type: 'address', internalType: 'Currency' },\n { name: 'fee', type: 'uint24', internalType: 'uint24' },\n { name: 'tickSpacing', type: 'int24', internalType: 'int24' },\n {\n name: 'hooks',\n type: 'address',\n internalType: 'contract IHooks',\n },\n ],\n },\n { name: 'zeroForOne', type: 'bool', internalType: 'bool' },\n { name: 'exactAmount', type: 'uint128', internalType: 'uint128' },\n { name: 'hookData', type: 'bytes', internalType: 'bytes' },\n ],\n },\n ],\n outputs: [\n {\n name: 'returnData',\n type: 'tuple',\n internalType: 'struct DopplerLensReturnData',\n components: [\n { name: 'sqrtPriceX96', type: 'uint160', internalType: 'uint160' },\n { name: 'amount0', type: 'uint256', internalType: 'uint256' },\n { name: 'amount1', type: 'uint256', internalType: 'uint256' },\n { name: 'tick', type: 'int24', internalType: 'int24' },\n ],\n },\n ],\n stateMutability: 'nonpayable',\n },\n] as const\n\n// Export bytecodes for CREATE2 address calculation\nexport { DERC20Bytecode, DopplerBytecode, DopplerDN404Bytecode } from './bytecodes'\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/constants.ts"],"names":["parseEther"],"mappings":";;;;;AAGO,IAAM,MAAM,GAAO,IAAA;AACnB,IAAM,YAAe,GAAA;AACrB,IAAM,YAAe,GAAA;AAGrB,IAAM,SAAY,GAAA;AAAA,EACvB,MAAQ,EAAA,GAAA;AAAA;AAAA,EACR,GAAK,EAAA,GAAA;AAAA;AAAA,EACL,MAAQ,EAAA,GAAA;AAAA;AAAA,EACR,IAAM,EAAA;AAAA;AACR;AAGO,IAAM,aAAgB,GAAA;AAAA,EAC3B,GAAK,EAAA,CAAA;AAAA,EACL,GAAK,EAAA,EAAA;AAAA,EACL,GAAM,EAAA,EAAA;AAAA,EACN,GAAO,EAAA;AACT;AAGO,IAAM,eAAkB,GAAA;AACxB,IAAM,mBAAmB,GAAM,GAAA;AAG/B,IAAM,oBAAuB,GAAA;AAC7B,IAAM,wBAA2B,GAAA;AACjC,IAAM,qBAAwB,GAAA;AAC9B,IAAM,gBAAmB,GAAA;AACzB,IAAM,WAAc,GAAA;AAGpB,IAAM,qBAAwB,GAAA;AAC9B,IAAM,mBAAsB,GAAA;AAC5B,IAAM,wBAA2B,GAAA;AACjC,IAAM,cAAiB,GAAA;AACvB,IAAM,+BAAkC,GAAA;AACxC,IAAM,gCAAmC,GAAA;AACzC,IAAM,qCAAwC,GAAA;AACxC,IAAA,2BAAA,GAA8B,OAAO,gBAAgB;AACrD,IAAA,yBAAA,GAA4BA,gBAAW,YAAY;AACnD,IAAA,6BAAA,GAAgCA,gBAAW,WAAW;AACtD,IAAA,2BAAA,GAA8BA,gBAAW,MAAM;AAC/C,IAAA,mBAAA,GAAsBA,gBAAW,SAAS;AAC1C,IAAA,+BAAA,GAAkCA,gBAAW,MAAM;AAGzD,IAAM,+BAAkC,GAAA;AACxC,IAAM,gCAAmC,GAAA;AACzC,IAAM,qCAAwC,GAAA;AACxC,IAAA,2BAAA,GAA8BA,gBAAW,MAAM;AAGrD,IAAM,cAAiB,GAAA;AACvB,IAAM,cAAiB,GAAA;AAGvB,IAAM,YAAe,GAAA;AAGf,IAAA,SAAA,GAAY,OAAO,KAAM;AAC/B,IAAM,aAAgB,GAAA,MAAA;AAAA,EAC1B,CAAK,IAAA,EAAA;AAAA,EACL,CAAK,IAAA,EAAA;AAAA,EACL,CAAK,IAAA,EAAA;AAAA,EACL,CAAK,IAAA,CAAA;AAAA,EACL,CAAK,IAAA,CAAA;AAAA,EACL,CAAK,IAAA;AAAA;AACR;AAGO,IAAM,gBAAmB,GAAA;AACzB,IAAM,eAAkB,GAAA","file":"chunk-ER42VG7H.js","sourcesContent":["import { Address, parseEther } from 'viem'\n\n// Common constants\nexport const WAD = 10n ** 18n\nexport const DEAD_ADDRESS = '0x000000000000000000000000000000000000dEaD' as Address\nexport const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000' as Address\n\n// Fee tiers\nexport const FEE_TIERS = {\n LOWEST: 100, // 0.01%\n LOW: 500, // 0.05%\n MEDIUM: 3000, // 0.30%\n HIGH: 10000 // 1.00%\n} as const\n\n// Tick spacings for different fee tiers\nexport const TICK_SPACINGS = {\n 100: 1,\n 500: 10,\n 3000: 60,\n 10000: 200\n} as const\n\n// Time constants\nexport const SECONDS_PER_DAY = 86400\nexport const SECONDS_PER_YEAR = 365 * SECONDS_PER_DAY\n\n// Default values\nexport const DEFAULT_EPOCH_LENGTH = 43200 // 12 hours in seconds (matching V4 SDK)\nexport const DEFAULT_AUCTION_DURATION = 7 // 7 days\nexport const DEFAULT_LOCK_DURATION = SECONDS_PER_YEAR // 1 year\nexport const DEFAULT_PD_SLUGS = 5 // Default price discovery slugs\nexport const DAY_SECONDS = SECONDS_PER_DAY // Alias for consistency\n\n// V3 Default parameters\nexport const DEFAULT_V3_START_TICK = 175000\nexport const DEFAULT_V3_END_TICK = 225000\nexport const DEFAULT_V3_NUM_POSITIONS = 15\nexport const DEFAULT_V3_FEE = 10000 // 1% fee tier\nexport const DEFAULT_V3_INITIAL_VOTING_DELAY = 172800 // 2 days\nexport const DEFAULT_V3_INITIAL_VOTING_PERIOD = 1209600 // 14 days\nexport const DEFAULT_V3_INITIAL_PROPOSAL_THRESHOLD = 0n\nexport const DEFAULT_V3_VESTING_DURATION = BigInt(SECONDS_PER_YEAR)\nexport const DEFAULT_V3_INITIAL_SUPPLY = parseEther('1000000000') // 1 billion tokens\nexport const DEFAULT_V3_NUM_TOKENS_TO_SELL = parseEther('900000000') // 900 million tokens\nexport const DEFAULT_V3_YEARLY_MINT_RATE = parseEther('0.02') // 2% yearly mint rate\nexport const DEFAULT_V3_PRE_MINT = parseEther('9000000') // 9 million tokens (0.9%)\nexport const DEFAULT_V3_MAX_SHARE_TO_BE_SOLD = parseEther('0.35') // 35%\n\n// V4 Default parameters\nexport const DEFAULT_V4_INITIAL_VOTING_DELAY = 7200 // 2 hours\nexport const DEFAULT_V4_INITIAL_VOTING_PERIOD = 50400 // 14 hours\nexport const DEFAULT_V4_INITIAL_PROPOSAL_THRESHOLD = 0n\nexport const DEFAULT_V4_YEARLY_MINT_RATE = parseEther('0.02') // 2% yearly mint rate\n\n// Price bounds\nexport const MIN_SQRT_RATIO = 4295128739n\nexport const MAX_SQRT_RATIO = 1461446703485210103287273052203988822378723970342n\n\n// Basis points\nexport const BASIS_POINTS = 10000\n\n// V4 Hook Flags for Doppler\nexport const FLAG_MASK = BigInt(0x3fff)\nexport const DOPPLER_FLAGS = BigInt(\n (1 << 13) | // BEFORE_INITIALIZE_FLAG\n (1 << 12) | // AFTER_INITIALIZE_FLAG \n (1 << 11) | // BEFORE_ADD_LIQUIDITY_FLAG\n (1 << 7) | // BEFORE_SWAP_FLAG\n (1 << 6) | // AFTER_SWAP_FLAG\n (1 << 5) // BEFORE_DONATE_FLAG\n)\n\n// V4 Dynamic Fee Flag\nexport const DYNAMIC_FEE_FLAG = 0x800000 // 8388608 in decimal\nexport const FEE_AMOUNT_MASK = 0xFFFFFF // Mask to extract actual fee from dynamic fee"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/entities/auction/StaticAuction.ts"],"names":[],"mappings":"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","file":"chunk-FVTIDXYK.mjs","sourcesContent":["import { type Address, type PublicClient, getAddress } from 'viem'\nimport type { PoolInfo } from '../../types'\nimport { uniswapV3PoolAbi, airlockAbi } from '../../abis'\nimport { getAddresses } from '../../addresses'\n\n/**\n * StaticAuction class for interacting with static auctions (Uniswap V3 based)\n * \n * Static auctions use a fixed price range on Uniswap V3 for initial liquidity bootstrapping.\n * This is ideal for simple, predictable price discovery events.\n */\nexport class StaticAuction {\n private client: PublicClient\n private poolAddress: Address\n \n constructor(client: PublicClient, poolAddress: Address) {\n this.client = client\n this.poolAddress = poolAddress\n }\n \n /**\n * Get the pool address\n */\n getAddress(): Address {\n return this.poolAddress\n }\n \n /**\n * Get current pool information\n */\n async getPoolInfo(): Promise<PoolInfo> {\n // Fetch all pool data in parallel\n const [slot0, liquidity, token0, token1, fee] = await Promise.all([\n this.client.readContract({\n address: this.poolAddress,\n abi: uniswapV3PoolAbi,\n functionName: 'slot0',\n }),\n this.client.readContract({\n address: this.poolAddress,\n abi: uniswapV3PoolAbi,\n functionName: 'liquidity',\n }),\n this.client.readContract({\n address: this.poolAddress,\n abi: uniswapV3PoolAbi,\n functionName: 'token0',\n }),\n this.client.readContract({\n address: this.poolAddress,\n abi: uniswapV3PoolAbi,\n functionName: 'token1',\n }),\n this.client.readContract({\n address: this.poolAddress,\n abi: uniswapV3PoolAbi,\n functionName: 'fee',\n }),\n ])\n \n // Determine which token is the auction token and which is numeraire\n // This requires checking with the Airlock contract\n const chainId = await this.client.getChainId()\n const addresses = getAddresses(chainId)\n \n const assetData = await this.client.readContract({\n address: addresses.airlock,\n abi: airlockAbi,\n functionName: 'getAssetData',\n args: [token0],\n })\n \n // The getAssetData returns: [numeraire, timelock, governance, liquidityMigrator, poolInitializer, pool, migrationPool, numTokensToSell, totalSupply, integrator]\n // If token0 has asset data in Airlock (pool is not zero), it's the auction token\n const isToken0AuctionToken = assetData[5] !== getAddress('0x0000000000000000000000000000000000000000')\n \n return {\n address: this.poolAddress,\n tokenAddress: isToken0AuctionToken ? token0 : token1,\n numeraireAddress: isToken0AuctionToken ? token1 : token0,\n fee,\n liquidity,\n sqrtPriceX96: slot0[0], // First element is sqrtPriceX96\n }\n }\n \n /**\n * Get the token address for this auction\n */\n async getTokenAddress(): Promise<Address> {\n const poolInfo = await this.getPoolInfo()\n return poolInfo.tokenAddress\n }\n \n /**\n * Check if the auction has graduated (ready for migration)\n */\n async hasGraduated(): Promise<boolean> {\n const tokenAddress = await this.getTokenAddress()\n const chainId = await this.client.getChainId()\n const addresses = getAddresses(chainId)\n \n const assetData = await this.client.readContract({\n address: addresses.airlock,\n abi: airlockAbi,\n functionName: 'getAssetData',\n args: [tokenAddress],\n })\n \n // The getAssetData returns: [numeraire, timelock, governance, liquidityMigrator, poolInitializer, pool, migrationPool, numTokensToSell, totalSupply, integrator]\n // Check if the asset is graduated (liquidityMigrator is set to address(0))\n return assetData[3] === getAddress('0x0000000000000000000000000000000000000000')\n }\n \n /**\n * Get the current price in the pool\n * Returns the price of token in terms of numeraire (token/numeraire)\n */\n async getCurrentPrice(): Promise<bigint> {\n const poolInfo = await this.getPoolInfo()\n \n // Get token ordering\n const [token0, token1] = await Promise.all([\n this.client.readContract({\n address: this.poolAddress,\n abi: uniswapV3PoolAbi,\n functionName: 'token0',\n }),\n this.client.readContract({\n address: this.poolAddress,\n abi: uniswapV3PoolAbi,\n functionName: 'token1',\n }),\n ])\n \n // Calculate price from sqrtPriceX96\n // sqrtPriceX96 = sqrt(price) * 2^96\n // price = (sqrtPriceX96 / 2^96)^2\n const sqrtPriceX96 = poolInfo.sqrtPriceX96\n const Q96 = BigInt(2) ** BigInt(96)\n \n // price0 = amount of token1 per token0\n const sqrtPriceX96Squared = sqrtPriceX96 * sqrtPriceX96\n const Q96Squared = Q96 * Q96\n const price0 = sqrtPriceX96Squared / Q96Squared\n \n // Return price based on which token is the auction token\n if (poolInfo.tokenAddress === token0) {\n // Auction token is token0, return price in terms of token1 (numeraire)\n return price0\n } else {\n // Auction token is token1, return reciprocal price\n // price1 = 1 / price0 (with precision handling)\n return Q96Squared / price0\n }\n }\n \n /**\n * Get total liquidity in the pool\n */\n async getTotalLiquidity(): Promise<bigint> {\n return await this.client.readContract({\n address: this.poolAddress,\n abi: uniswapV3PoolAbi,\n functionName: 'liquidity',\n })\n }\n}"]}
|
package/dist/chunk-IHBIBFZK.mjs
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
// src/types.ts
|
|
2
|
-
var LockablePoolStatus = /* @__PURE__ */ ((LockablePoolStatus2) => {
|
|
3
|
-
LockablePoolStatus2[LockablePoolStatus2["Uninitialized"] = 0] = "Uninitialized";
|
|
4
|
-
LockablePoolStatus2[LockablePoolStatus2["Initialized"] = 1] = "Initialized";
|
|
5
|
-
LockablePoolStatus2[LockablePoolStatus2["Locked"] = 2] = "Locked";
|
|
6
|
-
LockablePoolStatus2[LockablePoolStatus2["Exited"] = 3] = "Exited";
|
|
7
|
-
return LockablePoolStatus2;
|
|
8
|
-
})(LockablePoolStatus || {});
|
|
9
|
-
|
|
10
|
-
export { LockablePoolStatus };
|
|
11
|
-
//# sourceMappingURL=chunk-IHBIBFZK.mjs.map
|
|
12
|
-
//# sourceMappingURL=chunk-IHBIBFZK.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types.ts"],"names":["LockablePoolStatus"],"mappings":";AAqFY,IAAA,kBAAA,qBAAAA,mBAAL,KAAA;AACL,EAAAA,mBAAAA,CAAAA,mBAAAA,CAAA,mBAAgB,CAAhB,CAAA,GAAA,eAAA;AACA,EAAAA,mBAAAA,CAAAA,mBAAAA,CAAA,iBAAc,CAAd,CAAA,GAAA,aAAA;AACA,EAAAA,mBAAAA,CAAAA,mBAAAA,CAAA,YAAS,CAAT,CAAA,GAAA,QAAA;AACA,EAAAA,mBAAAA,CAAAA,mBAAAA,CAAA,YAAS,CAAT,CAAA,GAAA,QAAA;AAJU,EAAAA,OAAAA,mBAAAA;AAAA,CAAA,EAAA,kBAAA,IAAA,EAAA","file":"chunk-IHBIBFZK.mjs","sourcesContent":["import type { Address, PublicClient, WalletClient } from 'viem'\n\n// Core configuration types\n// Token configuration (discriminated union)\nexport interface StandardTokenConfig {\n type?: 'standard' // default behavior (backwards compatible)\n name: string\n symbol: string\n tokenURI: string\n yearlyMintRate?: bigint // Optional yearly mint rate (in WAD, default: 2% = 0.02e18)\n}\n\nexport interface Doppler404TokenConfig {\n type: 'doppler404'\n name: string\n symbol: string\n baseURI: string\n // Optional unit for DN404 factory (uint256). Defaults to 1000 when omitted.\n unit?: bigint\n}\n\nexport type TokenConfig = StandardTokenConfig | Doppler404TokenConfig\n\nexport interface SaleConfig {\n initialSupply: bigint\n numTokensToSell: bigint\n numeraire: Address // e.g., WETH address\n}\n\n// Static Auction Pool configuration\nexport interface StaticPoolConfig {\n startTick: number\n endTick: number\n fee: number // e.g., 3000 for 0.3%\n // Optional parameters for lockable initializer\n numPositions?: number // Number of liquidity positions (default: based on tick range)\n maxShareToBeSold?: bigint // Maximum share of tokens to sell (in WAD, default: 1e18 = 100%)\n lockableBeneficiaries?: LockableBeneficiaryData[] // Optional beneficiaries for fee streaming\n}\n\n// Dynamic Auction configuration\nexport interface DynamicAuctionConfig {\n duration: number // in days\n epochLength: number // in seconds\n startTick: number\n endTick: number\n gamma?: number // Optional, can be auto-calculated\n minProceeds: bigint\n maxProceeds: bigint\n numPdSlugs?: number // Price discovery slugs (optional)\n}\n\n// Vesting configuration\nexport interface VestingConfig {\n duration: number // in seconds\n cliffDuration: number // in seconds\n}\n\n// Governance configuration\nexport interface GovernanceConfig {\n initialVotingDelay?: number // in seconds (default: depends on version)\n initialVotingPeriod?: number // in seconds (default: depends on version)\n initialProposalThreshold?: bigint // in tokens (default: 0)\n}\n\n// Explicit selector to use no-op governance. Must be set explicitly.\nexport interface NoOpGovernance {\n noOp: true\n}\n\nexport type GovernanceOption = GovernanceConfig | NoOpGovernance\n\n// Beneficiary data for streamable fees\nexport interface BeneficiaryData {\n address: Address\n percentage: number // basis points (e.g., 5000 = 50%)\n}\n\n// Lockable initializer beneficiary data (uses shares instead of percentage)\nexport interface LockableBeneficiaryData {\n beneficiary: Address\n shares: bigint // shares in WAD (1e18 = 100%)\n}\n\n// Pool status for lockable initializer\nexport enum LockablePoolStatus {\n Uninitialized = 0,\n Initialized = 1,\n Locked = 2,\n Exited = 3\n}\n\n// Lockable pool state\nexport interface LockablePoolState {\n asset: Address\n numeraire: Address\n tickLower: number\n tickUpper: number\n maxShareToBeSold: bigint\n totalTokensOnBondingCurve: bigint\n status: LockablePoolStatus\n}\n\n// Migration configuration (discriminated union)\nexport type MigrationConfig =\n | { type: 'uniswapV2' } // Basic migration to a new Uniswap v2 pool\n | {\n type: 'uniswapV3'\n fee: number\n tickSpacing: number\n }\n | {\n type: 'uniswapV4'\n fee: number\n tickSpacing: number\n // Configuration for fee streaming via StreamableFeesLocker\n streamableFees: {\n lockDuration: number // in seconds\n beneficiaries: BeneficiaryData[]\n }\n }\n\n// Create Static Auction parameters\nexport interface CreateStaticAuctionParams {\n // Token configuration\n token: TokenConfig\n\n // Sale configuration\n sale: SaleConfig\n\n // Static Auction (Uniswap v3) Pool configuration\n pool: StaticPoolConfig\n\n // Vesting configuration (optional)\n vesting?: VestingConfig\n\n // Governance configuration (required). Use `{ noOp: true }` for no‑op,\n // `{ useDefaults: true }` via builders for standard defaults, or pass\n // a full GovernanceConfig to customize.\n governance: GovernanceOption\n\n // Explicit Migration Configuration\n migration: MigrationConfig\n\n // Integrator details\n integrator?: Address\n userAddress: Address\n}\n\n// Create Dynamic Auction parameters\nexport interface CreateDynamicAuctionParams {\n // Token configuration\n token: TokenConfig\n\n // Sale configuration\n sale: SaleConfig\n\n // Dynamic Auction (Uniswap v4 Hook) configuration\n auction: DynamicAuctionConfig\n \n // Pool configuration\n pool: {\n fee: number // e.g., 3000 for 0.3%\n tickSpacing: number\n }\n\n // Vesting configuration (optional)\n vesting?: VestingConfig\n\n // Governance configuration (required). Use `{ noOp: true }` for no‑op,\n // `{ useDefaults: true }` via builders for standard defaults, or pass\n // a full GovernanceConfig to customize.\n governance: GovernanceOption\n\n // Explicit Migration Configuration\n migration: MigrationConfig\n\n // Integrator details\n integrator?: Address\n userAddress: Address\n \n // Time configuration (internal use)\n startTimeOffset?: number\n blockTimestamp?: number // Optional: use this block timestamp instead of fetching latest\n}\n\n// Price range configuration for automatic tick calculation\nexport interface PriceRange {\n startPrice: number\n endPrice: number\n}\n\n// Tick range configuration\nexport interface TickRange {\n startTick: number\n endTick: number\n}\n\n// Build configuration for static auctions (V3-style)\nexport interface StaticAuctionBuildConfig {\n // Token details\n name: string\n symbol: string\n totalSupply?: bigint // default: 1 billion\n numTokensToSell?: bigint // default: 900 million\n tokenURI: string\n\n // Time parameters\n startTimeOffset?: number // Optional - seconds to add to current block timestamp (default: 30)\n\n // Price parameters - must provide either priceRange or tickRange\n numeraire: Address // Required for V3\n tickRange?: TickRange\n priceRange?: PriceRange\n fee?: number // default: 10000 (1%)\n \n // Pool parameters (V3 specific)\n numPositions?: number // default: 15\n maxShareToBeSold?: bigint // default: 35% in WAD\n\n // Vesting parameters\n yearlyMintRate?: bigint // default: 2%\n vestingDuration?: bigint // default: 1 year\n recipients?: Address[] // defaults to [userAddress]\n amounts?: bigint[] // defaults based on pre-mint calculation\n\n // Migration configuration\n migration: MigrationConfig\n\n // Other parameters\n integrator?: Address\n useGovernance?: boolean // default: true\n}\n\n// Build configuration for dynamic auctions (V4-style)\nexport interface DynamicAuctionBuildConfig {\n // Token details\n name: string\n symbol: string\n totalSupply: bigint\n numTokensToSell: bigint\n tokenURI: string\n\n // Time parameters\n startTimeOffset?: number // Optional - seconds to add to block timestamp (default: 30)\n blockTimestamp?: number // Optional - specific block timestamp to use (default: fetch latest)\n duration?: number // in days (default: 7)\n epochLength?: number // in seconds (default: 3600)\n\n // Price parameters - must provide either priceRange or tickRange\n numeraire?: Address // defaults to zero address\n tickRange?: TickRange\n priceRange?: PriceRange\n tickSpacing: number\n gamma?: number // auto-calculated if not provided\n fee: number // In basis points\n\n // Sale parameters\n minProceeds: bigint\n maxProceeds: bigint\n numPdSlugs?: number // default: 5\n\n // Vesting parameters\n yearlyMintRate?: bigint // default: 2%\n vestingDuration: bigint\n recipients: Address[]\n amounts: bigint[]\n\n // Migration configuration\n migration: MigrationConfig\n\n // Other parameters\n integrator?: Address\n useGovernance?: boolean // default: true\n}\n\n// SDK initialization configuration\nexport interface DopplerSDKConfig {\n publicClient: PublicClient\n walletClient?: WalletClient\n chainId: number\n}\n\n// Pool information types\nexport interface PoolInfo {\n address: Address\n tokenAddress: Address\n numeraireAddress: Address\n fee: number\n liquidity: bigint\n sqrtPriceX96: bigint\n}\n\nexport interface HookInfo {\n hookAddress: Address\n tokenAddress: Address\n numeraireAddress: Address\n poolId: string\n currentEpoch: number\n totalProceeds: bigint\n totalTokensSold: bigint\n earlyExit: boolean\n insufficientProceeds: boolean\n startingTime: bigint\n endingTime: bigint\n epochLength: bigint\n minimumProceeds: bigint\n maximumProceeds: bigint\n}\n\n\n// Quote result type\nexport interface QuoteResult {\n amountOut: bigint\n priceImpact: number\n fee: bigint\n route: string[]\n}\n\n// Lockable Uniswap V3 Initializer encode params\nexport interface LockableV3InitializerParams {\n fee: number\n tickLower: number\n tickUpper: number\n numPositions: number\n maxShareToBeSold: bigint\n beneficiaries: LockableBeneficiaryData[]\n}\n"]}
|
package/dist/chunk-IXSKPEHB.mjs
DELETED
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
import { getAddresses } from './chunk-RIMM47JL.mjs';
|
|
2
|
-
import { quoterV2Abi, uniswapV2Router02Abi, v4QuoterAbi } from './chunk-DCFHANLR.mjs';
|
|
3
|
-
|
|
4
|
-
// src/entities/quoter/Quoter.ts
|
|
5
|
-
var Quoter = class {
|
|
6
|
-
constructor(publicClient, chainId) {
|
|
7
|
-
this.publicClient = publicClient;
|
|
8
|
-
this.chainId = chainId;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Get a price quote for swapping an exact amount of input tokens on Uniswap V3
|
|
12
|
-
* @param params Parameters for the quote
|
|
13
|
-
* @returns Quote result including output amount and price impact
|
|
14
|
-
*/
|
|
15
|
-
async quoteExactInputV3(params) {
|
|
16
|
-
const addresses = getAddresses(this.chainId);
|
|
17
|
-
const { result } = await this.publicClient.simulateContract({
|
|
18
|
-
address: addresses.v3Quoter,
|
|
19
|
-
abi: quoterV2Abi,
|
|
20
|
-
functionName: "quoteExactInputSingle",
|
|
21
|
-
args: [{
|
|
22
|
-
tokenIn: params.tokenIn,
|
|
23
|
-
tokenOut: params.tokenOut,
|
|
24
|
-
amountIn: params.amountIn,
|
|
25
|
-
fee: params.fee,
|
|
26
|
-
sqrtPriceLimitX96: params.sqrtPriceLimitX96 ?? BigInt(0)
|
|
27
|
-
}]
|
|
28
|
-
});
|
|
29
|
-
return {
|
|
30
|
-
amountOut: result[0],
|
|
31
|
-
sqrtPriceX96After: result[1],
|
|
32
|
-
initializedTicksCrossed: result[2],
|
|
33
|
-
gasEstimate: result[3]
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Get a price quote for receiving an exact amount of output tokens on Uniswap V3
|
|
38
|
-
* @param params Parameters for the quote
|
|
39
|
-
* @returns Quote result including required input amount
|
|
40
|
-
*/
|
|
41
|
-
async quoteExactOutputV3(params) {
|
|
42
|
-
const addresses = getAddresses(this.chainId);
|
|
43
|
-
const { result } = await this.publicClient.simulateContract({
|
|
44
|
-
address: addresses.v3Quoter,
|
|
45
|
-
abi: quoterV2Abi,
|
|
46
|
-
functionName: "quoteExactOutputSingle",
|
|
47
|
-
args: [{
|
|
48
|
-
tokenIn: params.tokenIn,
|
|
49
|
-
tokenOut: params.tokenOut,
|
|
50
|
-
fee: params.fee,
|
|
51
|
-
amountOut: params.amountOut,
|
|
52
|
-
sqrtPriceLimitX96: params.sqrtPriceLimitX96 ?? BigInt(0)
|
|
53
|
-
}]
|
|
54
|
-
});
|
|
55
|
-
return {
|
|
56
|
-
amountIn: result[0],
|
|
57
|
-
sqrtPriceX96After: result[1],
|
|
58
|
-
initializedTicksCrossed: result[2],
|
|
59
|
-
gasEstimate: result[3]
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Get a price quote for swapping an exact amount of input tokens on Uniswap V2
|
|
64
|
-
* @param params Parameters for the quote
|
|
65
|
-
* @returns Array of amounts for each step in the path
|
|
66
|
-
*/
|
|
67
|
-
async quoteExactInputV2(params) {
|
|
68
|
-
const addresses = getAddresses(this.chainId);
|
|
69
|
-
if (!addresses.univ2Router02) {
|
|
70
|
-
throw new Error("Uniswap V2 Router not available on this chain");
|
|
71
|
-
}
|
|
72
|
-
const result = await this.publicClient.readContract({
|
|
73
|
-
address: addresses.univ2Router02,
|
|
74
|
-
abi: uniswapV2Router02Abi,
|
|
75
|
-
functionName: "getAmountsOut",
|
|
76
|
-
args: [params.amountIn, params.path]
|
|
77
|
-
});
|
|
78
|
-
return [...result];
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Get a price quote for receiving an exact amount of output tokens on Uniswap V2
|
|
82
|
-
* @param params Parameters for the quote
|
|
83
|
-
* @returns Array of amounts for each step in the path
|
|
84
|
-
*/
|
|
85
|
-
async quoteExactOutputV2(params) {
|
|
86
|
-
const addresses = getAddresses(this.chainId);
|
|
87
|
-
if (!addresses.univ2Router02) {
|
|
88
|
-
throw new Error("Uniswap V2 Router not available on this chain");
|
|
89
|
-
}
|
|
90
|
-
const result = await this.publicClient.readContract({
|
|
91
|
-
address: addresses.univ2Router02,
|
|
92
|
-
abi: uniswapV2Router02Abi,
|
|
93
|
-
functionName: "getAmountsIn",
|
|
94
|
-
args: [params.amountOut, params.path]
|
|
95
|
-
});
|
|
96
|
-
return [...result];
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Get a price quote for swapping an exact amount of input tokens on Uniswap V4
|
|
100
|
-
* @param params Parameters for the quote
|
|
101
|
-
* @returns Quote result for V4 pools
|
|
102
|
-
*/
|
|
103
|
-
async quoteExactInputV4(params) {
|
|
104
|
-
const addresses = getAddresses(this.chainId);
|
|
105
|
-
const quoterAddress = addresses.dopplerLens;
|
|
106
|
-
if (!quoterAddress) {
|
|
107
|
-
throw new Error("No V4 quoter available on this chain");
|
|
108
|
-
}
|
|
109
|
-
try {
|
|
110
|
-
const { result } = await this.publicClient.simulateContract({
|
|
111
|
-
address: quoterAddress,
|
|
112
|
-
abi: v4QuoterAbi,
|
|
113
|
-
functionName: "quoteExactInputSingle",
|
|
114
|
-
args: [{
|
|
115
|
-
poolKey: params.poolKey,
|
|
116
|
-
zeroForOne: params.zeroForOne,
|
|
117
|
-
exactAmount: params.exactAmount,
|
|
118
|
-
hookData: params.hookData ?? "0x"
|
|
119
|
-
}]
|
|
120
|
-
});
|
|
121
|
-
return {
|
|
122
|
-
amountOut: result[0],
|
|
123
|
-
gasEstimate: result[1]
|
|
124
|
-
};
|
|
125
|
-
} catch (simulateError) {
|
|
126
|
-
throw simulateError;
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Get a price quote for receiving an exact amount of output tokens on Uniswap V4
|
|
131
|
-
* @param params Parameters for the quote
|
|
132
|
-
* @returns Quote result for V4 pools
|
|
133
|
-
*/
|
|
134
|
-
async quoteExactOutputV4(params) {
|
|
135
|
-
const addresses = getAddresses(this.chainId);
|
|
136
|
-
const quoterAddress = addresses.dopplerLens;
|
|
137
|
-
if (!quoterAddress) {
|
|
138
|
-
throw new Error("No V4 quoter available on this chain");
|
|
139
|
-
}
|
|
140
|
-
const { result } = await this.publicClient.simulateContract({
|
|
141
|
-
address: quoterAddress,
|
|
142
|
-
abi: v4QuoterAbi,
|
|
143
|
-
functionName: "quoteExactOutputSingle",
|
|
144
|
-
args: [{
|
|
145
|
-
poolKey: params.poolKey,
|
|
146
|
-
zeroForOne: params.zeroForOne,
|
|
147
|
-
exactAmount: params.exactAmount,
|
|
148
|
-
hookData: params.hookData ?? "0x"
|
|
149
|
-
}]
|
|
150
|
-
});
|
|
151
|
-
return {
|
|
152
|
-
amountIn: result[0],
|
|
153
|
-
gasEstimate: result[1]
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
};
|
|
157
|
-
|
|
158
|
-
export { Quoter };
|
|
159
|
-
//# sourceMappingURL=chunk-IXSKPEHB.mjs.map
|
|
160
|
-
//# sourceMappingURL=chunk-IXSKPEHB.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/entities/quoter/Quoter.ts"],"names":[],"mappings":"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","file":"chunk-IXSKPEHB.mjs","sourcesContent":["import { type Address, type PublicClient } from 'viem'\nimport { quoterV2Abi, uniswapV2Router02Abi, v4QuoterAbi } from '../../abis'\nimport { getAddresses } from '../../addresses'\n\n/**\n * Unified Quoter for getting price quotes across Uniswap V2, V3, and V4\n * \n * This class provides a unified interface for price discovery across all\n * supported Uniswap versions, abstracting away the differences between\n * V2 router, V3 quoter, and V4 quoter contracts.\n */\nexport class Quoter {\n private publicClient: PublicClient\n private chainId: number\n \n constructor(publicClient: PublicClient, chainId: number) {\n this.publicClient = publicClient\n this.chainId = chainId\n }\n \n /**\n * Get a price quote for swapping an exact amount of input tokens on Uniswap V3\n * @param params Parameters for the quote\n * @returns Quote result including output amount and price impact\n */\n async quoteExactInputV3(params: {\n tokenIn: Address\n tokenOut: Address\n amountIn: bigint\n fee: number\n sqrtPriceLimitX96?: bigint\n }): Promise<{\n amountOut: bigint\n sqrtPriceX96After: bigint\n initializedTicksCrossed: number\n gasEstimate: bigint\n }> {\n const addresses = getAddresses(this.chainId)\n \n const { result } = await this.publicClient.simulateContract({\n address: addresses.v3Quoter,\n abi: quoterV2Abi,\n functionName: 'quoteExactInputSingle',\n args: [{\n tokenIn: params.tokenIn,\n tokenOut: params.tokenOut,\n amountIn: params.amountIn,\n fee: params.fee,\n sqrtPriceLimitX96: params.sqrtPriceLimitX96 ?? BigInt(0),\n }],\n })\n \n return {\n amountOut: result[0],\n sqrtPriceX96After: result[1],\n initializedTicksCrossed: result[2],\n gasEstimate: result[3],\n }\n }\n \n /**\n * Get a price quote for receiving an exact amount of output tokens on Uniswap V3\n * @param params Parameters for the quote\n * @returns Quote result including required input amount\n */\n async quoteExactOutputV3(params: {\n tokenIn: Address\n tokenOut: Address\n amountOut: bigint\n fee: number\n sqrtPriceLimitX96?: bigint\n }): Promise<{\n amountIn: bigint\n sqrtPriceX96After: bigint\n initializedTicksCrossed: number\n gasEstimate: bigint\n }> {\n const addresses = getAddresses(this.chainId)\n \n const { result } = await this.publicClient.simulateContract({\n address: addresses.v3Quoter,\n abi: quoterV2Abi,\n functionName: 'quoteExactOutputSingle',\n args: [{\n tokenIn: params.tokenIn,\n tokenOut: params.tokenOut,\n fee: params.fee,\n amountOut: params.amountOut,\n sqrtPriceLimitX96: params.sqrtPriceLimitX96 ?? BigInt(0),\n }],\n })\n \n return {\n amountIn: result[0],\n sqrtPriceX96After: result[1],\n initializedTicksCrossed: result[2],\n gasEstimate: result[3],\n }\n }\n \n /**\n * Get a price quote for swapping an exact amount of input tokens on Uniswap V2\n * @param params Parameters for the quote\n * @returns Array of amounts for each step in the path\n */\n async quoteExactInputV2(params: {\n amountIn: bigint\n path: Address[]\n }): Promise<bigint[]> {\n const addresses = getAddresses(this.chainId)\n \n if (!addresses.univ2Router02) {\n throw new Error('Uniswap V2 Router not available on this chain')\n }\n \n const result = await this.publicClient.readContract({\n address: addresses.univ2Router02,\n abi: uniswapV2Router02Abi,\n functionName: 'getAmountsOut',\n args: [params.amountIn, params.path],\n })\n \n return [...result] // Convert readonly array to mutable array\n }\n \n /**\n * Get a price quote for receiving an exact amount of output tokens on Uniswap V2\n * @param params Parameters for the quote\n * @returns Array of amounts for each step in the path\n */\n async quoteExactOutputV2(params: {\n amountOut: bigint\n path: Address[]\n }): Promise<bigint[]> {\n const addresses = getAddresses(this.chainId)\n \n if (!addresses.univ2Router02) {\n throw new Error('Uniswap V2 Router not available on this chain')\n }\n \n const result = await this.publicClient.readContract({\n address: addresses.univ2Router02,\n abi: uniswapV2Router02Abi,\n functionName: 'getAmountsIn',\n args: [params.amountOut, params.path],\n })\n \n return [...result] // Convert readonly array to mutable array\n }\n \n /**\n * Get a price quote for swapping an exact amount of input tokens on Uniswap V4\n * @param params Parameters for the quote\n * @returns Quote result for V4 pools\n */\n async quoteExactInputV4(params: {\n poolKey: {\n currency0: Address\n currency1: Address\n fee: number\n tickSpacing: number\n hooks: Address\n }\n zeroForOne: boolean\n exactAmount: bigint\n hookData?: string\n }): Promise<{\n amountOut: bigint\n gasEstimate: bigint\n }> {\n const addresses = getAddresses(this.chainId)\n \n // Use v4Quoter if available, otherwise use dopplerLens (they're the same contract)\n const quoterAddress = addresses.dopplerLens\n \n if (!quoterAddress) {\n throw new Error('No V4 quoter available on this chain')\n }\n \n try {\n // First try simulateContract for better gas estimation\n const { result } = await this.publicClient.simulateContract({\n address: quoterAddress,\n abi: v4QuoterAbi,\n functionName: 'quoteExactInputSingle',\n args: [{\n poolKey: params.poolKey,\n zeroForOne: params.zeroForOne,\n exactAmount: params.exactAmount,\n hookData: (params.hookData ?? '0x') as `0x${string}`,\n }],\n })\n \n return {\n amountOut: result[0],\n gasEstimate: result[1],\n }\n } catch (simulateError) {\n // If simulation fails, throw the error\n // Most V4 quoters need simulation, not direct reads\n throw simulateError\n }\n }\n\n /**\n * Get a price quote for receiving an exact amount of output tokens on Uniswap V4\n * @param params Parameters for the quote\n * @returns Quote result for V4 pools\n */\n async quoteExactOutputV4(params: {\n poolKey: {\n currency0: Address\n currency1: Address\n fee: number\n tickSpacing: number\n hooks: Address\n }\n zeroForOne: boolean\n exactAmount: bigint\n hookData?: string\n }): Promise<{\n amountIn: bigint\n gasEstimate: bigint\n }> {\n const addresses = getAddresses(this.chainId)\n \n // Use v4Quoter if available, otherwise use dopplerLens (they're the same contract)\n const quoterAddress = addresses.dopplerLens\n \n if (!quoterAddress) {\n throw new Error('No V4 quoter available on this chain')\n }\n \n const { result } = await this.publicClient.simulateContract({\n address: quoterAddress,\n abi: v4QuoterAbi,\n functionName: 'quoteExactOutputSingle',\n args: [{\n poolKey: params.poolKey,\n zeroForOne: params.zeroForOne,\n exactAmount: params.exactAmount,\n hookData: (params.hookData ?? '0x') as `0x${string}`,\n }],\n })\n \n return {\n amountIn: result[0],\n gasEstimate: result[1],\n }\n }\n}\n"]}
|
package/dist/chunk-KEXKKQVW.js
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var __create = Object.create;
|
|
4
|
-
var __defProp = Object.defineProperty;
|
|
5
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
8
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
10
|
-
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
11
|
-
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
12
|
-
}) : x)(function(x) {
|
|
13
|
-
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
14
|
-
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
15
|
-
});
|
|
16
|
-
var __commonJS = (cb, mod) => function __require2() {
|
|
17
|
-
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
18
|
-
};
|
|
19
|
-
var __copyProps = (to, from, except, desc) => {
|
|
20
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
21
|
-
for (let key of __getOwnPropNames(from))
|
|
22
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
23
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
24
|
-
}
|
|
25
|
-
return to;
|
|
26
|
-
};
|
|
27
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
28
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
29
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
30
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
31
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
32
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
33
|
-
mod
|
|
34
|
-
));
|
|
35
|
-
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
36
|
-
|
|
37
|
-
exports.__commonJS = __commonJS;
|
|
38
|
-
exports.__publicField = __publicField;
|
|
39
|
-
exports.__require = __require;
|
|
40
|
-
exports.__toESM = __toESM;
|
|
41
|
-
//# sourceMappingURL=chunk-KEXKKQVW.js.map
|
|
42
|
-
//# sourceMappingURL=chunk-KEXKKQVW.js.map
|