@whetstone-research/doppler-sdk 0.0.1-alpha.9 → 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +726 -25
- package/dist/DopplerSDK.d.mts +45 -7
- package/dist/DopplerSDK.d.ts +45 -7
- package/dist/DopplerSDK.js +35 -12
- package/dist/DopplerSDK.mjs +34 -11
- package/dist/abis/bytecodes.d.mts +3 -2
- package/dist/abis/bytecodes.d.ts +3 -2
- package/dist/abis/bytecodes.js +9 -6
- package/dist/abis/bytecodes.mjs +1 -2
- package/dist/abis/index.d.mts +1507 -129
- package/dist/abis/index.d.ts +1507 -129
- package/dist/abis/index.js +43 -20
- package/dist/abis/index.mjs +2 -3
- package/dist/addresses.d.mts +16 -3
- package/dist/addresses.d.ts +16 -3
- package/dist/addresses.js +13 -5
- package/dist/addresses.mjs +2 -2
- package/dist/builders/DynamicAuctionBuilder.d.mts +119 -0
- package/dist/builders/DynamicAuctionBuilder.d.ts +119 -0
- package/dist/builders/DynamicAuctionBuilder.js +29 -0
- package/dist/builders/DynamicAuctionBuilder.js.map +1 -0
- package/dist/builders/DynamicAuctionBuilder.mjs +20 -0
- package/dist/builders/DynamicAuctionBuilder.mjs.map +1 -0
- package/dist/builders/MulticurveBuilder.d.mts +132 -0
- package/dist/builders/MulticurveBuilder.d.ts +132 -0
- package/dist/builders/MulticurveBuilder.js +29 -0
- package/dist/builders/MulticurveBuilder.js.map +1 -0
- package/dist/builders/MulticurveBuilder.mjs +20 -0
- package/dist/builders/MulticurveBuilder.mjs.map +1 -0
- package/dist/builders/StaticAuctionBuilder.d.mts +124 -0
- package/dist/builders/StaticAuctionBuilder.d.ts +124 -0
- package/dist/builders/StaticAuctionBuilder.js +29 -0
- package/dist/builders/StaticAuctionBuilder.js.map +1 -0
- package/dist/builders/StaticAuctionBuilder.mjs +20 -0
- package/dist/builders/StaticAuctionBuilder.mjs.map +1 -0
- package/dist/builders/index.d.mts +8 -0
- package/dist/builders/index.d.ts +8 -0
- package/dist/builders/index.js +56 -0
- package/dist/builders/index.js.map +1 -0
- package/dist/builders/index.mjs +23 -0
- package/dist/builders/index.mjs.map +1 -0
- package/dist/builders/shared.d.mts +116 -0
- package/dist/builders/shared.d.ts +116 -0
- package/dist/builders/shared.js +39 -0
- package/dist/builders/shared.js.map +1 -0
- package/dist/builders/shared.mjs +18 -0
- package/dist/builders/shared.mjs.map +1 -0
- package/dist/builders.d.mts +8 -131
- package/dist/builders.d.ts +8 -131
- package/dist/builders.js +44 -5
- package/dist/builders.mjs +22 -3
- package/dist/chunk-3PNCB4W5.js +4 -0
- package/dist/{chunk-KRN3ROUE.js.map → chunk-3PNCB4W5.js.map} +1 -1
- package/dist/chunk-3RK7LRAA.js +282 -0
- package/dist/chunk-3RK7LRAA.js.map +1 -0
- package/dist/chunk-4HM3ERBU.js +13 -0
- package/dist/chunk-4HM3ERBU.js.map +1 -0
- package/dist/{chunk-7W72MFJO.mjs → chunk-4TROGENW.mjs} +5 -4
- package/dist/chunk-4TROGENW.mjs.map +1 -0
- package/dist/chunk-5TL5V6UX.mjs +3 -0
- package/dist/{chunk-AZLFJNTG.mjs.map → chunk-5TL5V6UX.mjs.map} +1 -1
- package/dist/chunk-64AWG57M.mjs +192 -0
- package/dist/chunk-64AWG57M.mjs.map +1 -0
- package/dist/chunk-6KWCHTK3.js +166 -0
- package/dist/chunk-6KWCHTK3.js.map +1 -0
- package/dist/chunk-6OOWOPCX.js +1708 -0
- package/dist/chunk-6OOWOPCX.js.map +1 -0
- package/dist/chunk-7BBRPWQJ.js +257 -0
- package/dist/chunk-7BBRPWQJ.js.map +1 -0
- package/dist/{chunk-AQPINKEW.mjs → chunk-AKSEBAR7.mjs} +29 -19
- package/dist/chunk-AKSEBAR7.mjs.map +1 -0
- package/dist/chunk-AS64GWBX.js +204 -0
- package/dist/chunk-AS64GWBX.js.map +1 -0
- package/dist/chunk-AULFBXM5.mjs +331 -0
- package/dist/chunk-AULFBXM5.mjs.map +1 -0
- package/dist/chunk-AW3WR2D3.mjs +238 -0
- package/dist/chunk-AW3WR2D3.mjs.map +1 -0
- package/dist/chunk-BIQQ53O2.js +45 -0
- package/dist/chunk-BIQQ53O2.js.map +1 -0
- package/dist/chunk-C6MPV3CY.js +260 -0
- package/dist/chunk-C6MPV3CY.js.map +1 -0
- package/dist/{chunk-AYPP5JEQ.mjs → chunk-CLEQO6GU.mjs} +5 -5
- package/dist/chunk-CLEQO6GU.mjs.map +1 -0
- package/dist/chunk-CVHPLURA.js +147 -0
- package/dist/chunk-CVHPLURA.js.map +1 -0
- package/dist/chunk-D2RBCFNW.mjs +130 -0
- package/dist/chunk-D2RBCFNW.mjs.map +1 -0
- package/dist/chunk-ECD4FV3A.mjs +11 -0
- package/dist/chunk-ECD4FV3A.mjs.map +1 -0
- package/dist/chunk-EDJBZPMW.mjs +255 -0
- package/dist/chunk-EDJBZPMW.mjs.map +1 -0
- package/dist/chunk-FPAI4QYW.mjs +145 -0
- package/dist/chunk-FPAI4QYW.mjs.map +1 -0
- package/dist/chunk-HM25ZMO3.js +18 -0
- package/dist/chunk-HM25ZMO3.js.map +1 -0
- package/dist/chunk-IHC6UYKK.js +4 -0
- package/dist/{chunk-DRBRT57F.js.map → chunk-IHC6UYKK.js.map} +1 -1
- package/dist/{chunk-AXA7YT2G.mjs → chunk-J5BFFL3X.mjs} +87 -47
- package/dist/chunk-J5BFFL3X.mjs.map +1 -0
- package/dist/chunk-JIKAD4YL.js +4 -0
- package/dist/{chunk-KEXKKQVW.js.map → chunk-JIKAD4YL.js.map} +1 -1
- package/dist/{chunk-EFAPDN4J.js → chunk-JWEXGALU.js} +730 -33
- package/dist/chunk-JWEXGALU.js.map +1 -0
- package/dist/{chunk-4K5GBNQV.mjs → chunk-KDT76YQE.mjs} +52 -13
- package/dist/chunk-KDT76YQE.mjs.map +1 -0
- package/dist/chunk-LMQLMMEX.js +317 -0
- package/dist/chunk-LMQLMMEX.js.map +1 -0
- package/dist/{chunk-TOMVBPNZ.js → chunk-LS4TK6SX.js} +9 -4
- package/dist/chunk-LS4TK6SX.js.map +1 -0
- package/dist/chunk-M4WMHD3X.mjs +40 -0
- package/dist/chunk-M4WMHD3X.mjs.map +1 -0
- package/dist/chunk-MCOK3UFR.mjs +280 -0
- package/dist/chunk-MCOK3UFR.mjs.map +1 -0
- package/dist/chunk-MGQSQCFG.js +176 -0
- package/dist/chunk-MGQSQCFG.js.map +1 -0
- package/dist/chunk-MKE3BUL3.mjs +3 -0
- package/dist/{chunk-CYDWEPFL.mjs.map → chunk-MKE3BUL3.mjs.map} +1 -1
- package/dist/chunk-MNJ5OYPE.mjs +17 -0
- package/dist/chunk-MNJ5OYPE.mjs.map +1 -0
- package/dist/chunk-MNXD45J7.mjs +164 -0
- package/dist/chunk-MNXD45J7.mjs.map +1 -0
- package/dist/chunk-NGDPQC5E.js +333 -0
- package/dist/chunk-NGDPQC5E.js.map +1 -0
- package/dist/chunk-NNNCVFOH.mjs +16 -0
- package/dist/chunk-NNNCVFOH.mjs.map +1 -0
- package/dist/chunk-NZ4BJ2IC.mjs +315 -0
- package/dist/chunk-NZ4BJ2IC.mjs.map +1 -0
- package/dist/chunk-OKNM7ODQ.js +29 -0
- package/dist/chunk-OKNM7ODQ.js.map +1 -0
- package/dist/{chunk-DCFHANLR.mjs → chunk-OTG75GVH.mjs} +725 -34
- package/dist/chunk-OTG75GVH.mjs.map +1 -0
- package/dist/chunk-OZ6DGBRL.mjs +25 -0
- package/dist/chunk-OZ6DGBRL.mjs.map +1 -0
- package/dist/chunk-P25HBGP5.mjs +3 -0
- package/dist/chunk-P25HBGP5.mjs.map +1 -0
- package/dist/{chunk-XG7K4R56.js → chunk-P7KLEPVI.js} +52 -12
- package/dist/chunk-P7KLEPVI.js.map +1 -0
- package/dist/{chunk-OPKQMN46.mjs → chunk-PAPXGPJB.mjs} +9 -4
- package/dist/chunk-PAPXGPJB.mjs.map +1 -0
- package/dist/chunk-PCNXJAU5.js +19 -0
- package/dist/chunk-PCNXJAU5.js.map +1 -0
- package/dist/{chunk-PMIJTXU6.js → chunk-PD6HWEMG.js} +40 -30
- package/dist/chunk-PD6HWEMG.js.map +1 -0
- package/dist/{chunk-ER42VG7H.js → chunk-PH2KXREH.js} +20 -3
- package/dist/chunk-PH2KXREH.js.map +1 -0
- package/dist/chunk-Q5ERW5ZW.mjs +107 -0
- package/dist/chunk-Q5ERW5ZW.mjs.map +1 -0
- package/dist/chunk-Q7YNBSVH.js +28 -0
- package/dist/chunk-Q7YNBSVH.js.map +1 -0
- package/dist/{chunk-T644D54P.mjs → chunk-QKO2FZGN.mjs} +16 -4
- package/dist/chunk-QKO2FZGN.mjs.map +1 -0
- package/dist/{chunk-CIRZKWLL.js → chunk-RVFSRYI5.js} +5 -3
- package/dist/chunk-RVFSRYI5.js.map +1 -0
- package/dist/{chunk-KPBCG4X2.js → chunk-RW37KJ77.js} +11 -11
- package/dist/chunk-RW37KJ77.js.map +1 -0
- package/dist/chunk-SD7BHT2F.mjs +3 -0
- package/dist/chunk-SD7BHT2F.mjs.map +1 -0
- package/dist/chunk-SP5M57BG.mjs +258 -0
- package/dist/chunk-SP5M57BG.mjs.map +1 -0
- package/dist/chunk-TKSHYEYA.mjs +1706 -0
- package/dist/chunk-TKSHYEYA.mjs.map +1 -0
- package/dist/chunk-WTS75RUC.js +4 -0
- package/dist/chunk-WTS75RUC.js.map +1 -0
- package/dist/{chunk-EIRVZJTT.js → chunk-XRPIGMA2.js} +108 -68
- package/dist/chunk-XRPIGMA2.js.map +1 -0
- package/dist/chunk-XTKSM4QE.js +132 -0
- package/dist/chunk-XTKSM4QE.js.map +1 -0
- package/dist/chunk-XUE3CIJ5.mjs +174 -0
- package/dist/chunk-XUE3CIJ5.mjs.map +1 -0
- package/dist/chunk-YYUOLM6U.js +244 -0
- package/dist/chunk-YYUOLM6U.js.map +1 -0
- package/dist/chunk-ZH44DHVR.mjs +26 -0
- package/dist/chunk-ZH44DHVR.mjs.map +1 -0
- package/dist/chunk-ZPHOOG72.js +112 -0
- package/dist/chunk-ZPHOOG72.js.map +1 -0
- package/dist/constants.d.mts +7 -2
- package/dist/constants.d.ts +7 -2
- package/dist/constants.js +57 -38
- package/dist/constants.mjs +1 -2
- package/dist/deployments.generated.d.mts +2 -0
- package/dist/deployments.generated.d.ts +2 -0
- package/dist/deployments.generated.js +12 -0
- package/dist/deployments.generated.js.map +1 -0
- package/dist/deployments.generated.mjs +3 -0
- package/dist/deployments.generated.mjs.map +1 -0
- package/dist/entities/DopplerFactory.d.mts +139 -11
- package/dist/entities/DopplerFactory.d.ts +139 -11
- package/dist/entities/DopplerFactory.js +17 -7
- package/dist/entities/DopplerFactory.mjs +16 -6
- package/dist/entities/auction/DynamicAuction.d.mts +19 -4
- package/dist/entities/auction/DynamicAuction.d.ts +19 -4
- package/dist/entities/auction/DynamicAuction.js +6 -6
- package/dist/entities/auction/DynamicAuction.mjs +5 -5
- package/dist/entities/auction/MulticurvePool.d.mts +55 -0
- package/dist/entities/auction/MulticurvePool.d.ts +55 -0
- package/dist/entities/auction/MulticurvePool.js +18 -0
- package/dist/entities/auction/MulticurvePool.js.map +1 -0
- package/dist/entities/auction/MulticurvePool.mjs +9 -0
- package/dist/entities/auction/MulticurvePool.mjs.map +1 -0
- package/dist/entities/auction/StaticAuction.d.mts +6 -3
- package/dist/entities/auction/StaticAuction.d.ts +6 -3
- package/dist/entities/auction/StaticAuction.js +6 -6
- package/dist/entities/auction/StaticAuction.mjs +5 -5
- package/dist/entities/auction/index.d.mts +3 -0
- package/dist/entities/auction/index.d.ts +3 -0
- package/dist/entities/auction/index.js +16 -9
- package/dist/entities/auction/index.mjs +10 -7
- package/dist/entities/quoter/Quoter.d.mts +44 -2
- package/dist/entities/quoter/Quoter.d.ts +44 -2
- package/dist/entities/quoter/Quoter.js +6 -6
- package/dist/entities/quoter/Quoter.mjs +5 -5
- package/dist/entities/quoter/index.d.mts +3 -0
- package/dist/entities/quoter/index.d.ts +3 -0
- package/dist/entities/quoter/index.js +6 -6
- package/dist/entities/quoter/index.mjs +5 -5
- package/dist/entities/token/derc20/Derc20.d.mts +33 -7
- package/dist/entities/token/derc20/Derc20.d.ts +33 -7
- package/dist/entities/token/derc20/Derc20.js +4 -5
- package/dist/entities/token/derc20/Derc20.mjs +3 -4
- package/dist/entities/token/derc20/index.d.mts +3 -0
- package/dist/entities/token/derc20/index.d.ts +3 -0
- package/dist/entities/token/derc20/index.js +4 -5
- package/dist/entities/token/derc20/index.mjs +3 -4
- package/dist/entities/token/eth/Eth.d.mts +7 -3
- package/dist/entities/token/eth/Eth.d.ts +7 -3
- package/dist/entities/token/eth/Eth.js +2 -3
- package/dist/entities/token/eth/Eth.mjs +1 -2
- package/dist/entities/token/eth/index.d.mts +3 -0
- package/dist/entities/token/eth/index.d.ts +3 -0
- package/dist/entities/token/eth/index.js +2 -3
- package/dist/entities/token/eth/index.mjs +1 -2
- package/dist/entities/token/index.d.mts +3 -0
- package/dist/entities/token/index.d.ts +3 -0
- package/dist/entities/token/index.js +6 -7
- package/dist/entities/token/index.mjs +4 -5
- package/dist/index.d.mts +18 -6
- package/dist/index.d.ts +18 -6
- package/dist/index.js +305 -140
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +32 -19
- package/dist/index.mjs.map +1 -1
- package/dist/types.d.mts +260 -22
- package/dist/types.d.ts +260 -22
- package/dist/types.js +12 -3
- package/dist/types.mjs +3 -2
- package/dist/utils/airlock.d.mts +11 -0
- package/dist/utils/airlock.d.ts +11 -0
- package/dist/utils/airlock.js +26 -0
- package/dist/utils/airlock.js.map +1 -0
- package/dist/utils/airlock.mjs +5 -0
- package/dist/utils/airlock.mjs.map +1 -0
- package/dist/utils/balanceDelta.d.mts +10 -0
- package/dist/utils/balanceDelta.d.ts +10 -0
- package/dist/utils/balanceDelta.js +12 -0
- package/dist/utils/balanceDelta.js.map +1 -0
- package/dist/utils/balanceDelta.mjs +3 -0
- package/dist/utils/balanceDelta.mjs.map +1 -0
- package/dist/utils/computeOptimalGamma.d.mts +7 -0
- package/dist/utils/computeOptimalGamma.d.ts +7 -0
- package/dist/utils/computeOptimalGamma.js +12 -0
- package/dist/utils/computeOptimalGamma.js.map +1 -0
- package/dist/utils/computeOptimalGamma.mjs +3 -0
- package/dist/utils/computeOptimalGamma.mjs.map +1 -0
- package/dist/utils/index.d.mts +11 -0
- package/dist/utils/index.d.ts +11 -0
- package/dist/utils/index.js +114 -24
- package/dist/utils/index.mjs +14 -4
- package/dist/utils/isToken0Expected.d.mts +13 -0
- package/dist/utils/isToken0Expected.d.ts +13 -0
- package/dist/utils/isToken0Expected.js +12 -0
- package/dist/utils/isToken0Expected.js.map +1 -0
- package/dist/utils/isToken0Expected.mjs +3 -0
- package/dist/utils/isToken0Expected.mjs.map +1 -0
- package/dist/utils/marketCapHelpers.d.mts +309 -0
- package/dist/utils/marketCapHelpers.d.ts +309 -0
- package/dist/utils/marketCapHelpers.js +54 -0
- package/dist/utils/marketCapHelpers.js.map +1 -0
- package/dist/utils/marketCapHelpers.mjs +5 -0
- package/dist/utils/marketCapHelpers.mjs.map +1 -0
- package/dist/utils/poolKey.d.mts +17 -0
- package/dist/utils/poolKey.d.ts +17 -0
- package/dist/utils/poolKey.js +12 -0
- package/dist/utils/poolKey.js.map +1 -0
- package/dist/utils/poolKey.mjs +3 -0
- package/dist/utils/poolKey.mjs.map +1 -0
- package/dist/utils/priceHelpers.d.mts +3 -3
- package/dist/utils/priceHelpers.d.ts +3 -3
- package/dist/utils/priceHelpers.js +10 -11
- package/dist/utils/priceHelpers.mjs +2 -3
- package/dist/utils/tickMath.d.mts +8 -1
- package/dist/utils/tickMath.d.ts +8 -1
- package/dist/utils/tickMath.js +17 -14
- package/dist/utils/tickMath.mjs +1 -2
- package/dist/utils/tokenAddressMiner.d.mts +30 -0
- package/dist/utils/tokenAddressMiner.d.ts +30 -0
- package/dist/utils/tokenAddressMiner.js +14 -0
- package/dist/utils/tokenAddressMiner.js.map +1 -0
- package/dist/utils/tokenAddressMiner.mjs +5 -0
- package/dist/utils/tokenAddressMiner.mjs.map +1 -0
- package/package.json +14 -11
- package/dist/__tests__/mocks/addresses.d.mts +0 -46
- package/dist/__tests__/mocks/addresses.d.ts +0 -46
- package/dist/__tests__/mocks/addresses.js +0 -53
- package/dist/__tests__/mocks/addresses.js.map +0 -1
- package/dist/__tests__/mocks/addresses.mjs +0 -44
- package/dist/__tests__/mocks/addresses.mjs.map +0 -1
- package/dist/__tests__/mocks/clients.d.mts +0 -22
- package/dist/__tests__/mocks/clients.d.ts +0 -22
- package/dist/__tests__/mocks/clients.js +0 -17036
- package/dist/__tests__/mocks/clients.js.map +0 -1
- package/dist/__tests__/mocks/clients.mjs +0 -17032
- package/dist/__tests__/mocks/clients.mjs.map +0 -1
- package/dist/chunk-2N5JZSZ4.js +0 -14
- package/dist/chunk-2N5JZSZ4.js.map +0 -1
- package/dist/chunk-4K5GBNQV.mjs.map +0 -1
- package/dist/chunk-7F5IXZLH.js +0 -308
- package/dist/chunk-7F5IXZLH.js.map +0 -1
- package/dist/chunk-7W72MFJO.mjs.map +0 -1
- package/dist/chunk-AQPINKEW.mjs.map +0 -1
- package/dist/chunk-AXA7YT2G.mjs.map +0 -1
- package/dist/chunk-AYPP5JEQ.mjs.map +0 -1
- package/dist/chunk-AZLFJNTG.mjs +0 -3
- package/dist/chunk-CIRZKWLL.js.map +0 -1
- package/dist/chunk-CIVGL27M.mjs +0 -160
- package/dist/chunk-CIVGL27M.mjs.map +0 -1
- package/dist/chunk-CYDWEPFL.mjs +0 -3
- package/dist/chunk-DCFHANLR.mjs.map +0 -1
- package/dist/chunk-DRBRT57F.js +0 -4
- package/dist/chunk-EFAPDN4J.js.map +0 -1
- package/dist/chunk-EIRVZJTT.js.map +0 -1
- package/dist/chunk-ER42VG7H.js.map +0 -1
- package/dist/chunk-FPGJKJIR.js +0 -872
- package/dist/chunk-FPGJKJIR.js.map +0 -1
- package/dist/chunk-HRFHDSNE.js +0 -180
- package/dist/chunk-HRFHDSNE.js.map +0 -1
- package/dist/chunk-IHBIBFZK.mjs +0 -12
- package/dist/chunk-IHBIBFZK.mjs.map +0 -1
- package/dist/chunk-JIDZBQ7R.mjs +0 -870
- package/dist/chunk-JIDZBQ7R.mjs.map +0 -1
- package/dist/chunk-KEXKKQVW.js +0 -42
- package/dist/chunk-KFD6U3LQ.mjs +0 -305
- package/dist/chunk-KFD6U3LQ.mjs.map +0 -1
- package/dist/chunk-KPBCG4X2.js.map +0 -1
- package/dist/chunk-KRN3ROUE.js +0 -4
- package/dist/chunk-KT7U37XS.mjs +0 -207
- package/dist/chunk-KT7U37XS.mjs.map +0 -1
- package/dist/chunk-LOROXNH3.mjs +0 -37
- package/dist/chunk-LOROXNH3.mjs.map +0 -1
- package/dist/chunk-LZO67TYV.mjs +0 -176
- package/dist/chunk-LZO67TYV.mjs.map +0 -1
- package/dist/chunk-MZ2UBC4M.mjs +0 -80
- package/dist/chunk-MZ2UBC4M.mjs.map +0 -1
- package/dist/chunk-OPKQMN46.mjs.map +0 -1
- package/dist/chunk-PMIJTXU6.js.map +0 -1
- package/dist/chunk-T644D54P.mjs.map +0 -1
- package/dist/chunk-TOMVBPNZ.js.map +0 -1
- package/dist/chunk-UHT4QLL7.js +0 -162
- package/dist/chunk-UHT4QLL7.js.map +0 -1
- package/dist/chunk-XG7K4R56.js.map +0 -1
- package/dist/chunk-YNP2HGJZ.js +0 -82
- package/dist/chunk-YNP2HGJZ.js.map +0 -1
- package/dist/chunk-ZAIP54LX.js +0 -209
- package/dist/chunk-ZAIP54LX.js.map +0 -1
- package/dist/magic-string.es-CBLXTCZP.js +0 -1304
- package/dist/magic-string.es-CBLXTCZP.js.map +0 -1
- package/dist/magic-string.es-QHA47FSB.mjs +0 -1298
- package/dist/magic-string.es-QHA47FSB.mjs.map +0 -1
package/dist/chunk-UHT4QLL7.js
DELETED
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunkHRFHDSNE_js = require('./chunk-HRFHDSNE.js');
|
|
4
|
-
var chunkEFAPDN4J_js = require('./chunk-EFAPDN4J.js');
|
|
5
|
-
|
|
6
|
-
// src/entities/quoter/Quoter.ts
|
|
7
|
-
var Quoter = class {
|
|
8
|
-
constructor(publicClient, chainId) {
|
|
9
|
-
this.publicClient = publicClient;
|
|
10
|
-
this.chainId = chainId;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Get a price quote for swapping an exact amount of input tokens on Uniswap V3
|
|
14
|
-
* @param params Parameters for the quote
|
|
15
|
-
* @returns Quote result including output amount and price impact
|
|
16
|
-
*/
|
|
17
|
-
async quoteExactInputV3(params) {
|
|
18
|
-
const addresses = chunkHRFHDSNE_js.getAddresses(this.chainId);
|
|
19
|
-
const { result } = await this.publicClient.simulateContract({
|
|
20
|
-
address: addresses.v3Quoter,
|
|
21
|
-
abi: chunkEFAPDN4J_js.quoterV2Abi,
|
|
22
|
-
functionName: "quoteExactInputSingle",
|
|
23
|
-
args: [{
|
|
24
|
-
tokenIn: params.tokenIn,
|
|
25
|
-
tokenOut: params.tokenOut,
|
|
26
|
-
amountIn: params.amountIn,
|
|
27
|
-
fee: params.fee,
|
|
28
|
-
sqrtPriceLimitX96: params.sqrtPriceLimitX96 ?? BigInt(0)
|
|
29
|
-
}]
|
|
30
|
-
});
|
|
31
|
-
return {
|
|
32
|
-
amountOut: result[0],
|
|
33
|
-
sqrtPriceX96After: result[1],
|
|
34
|
-
initializedTicksCrossed: result[2],
|
|
35
|
-
gasEstimate: result[3]
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Get a price quote for receiving an exact amount of output tokens on Uniswap V3
|
|
40
|
-
* @param params Parameters for the quote
|
|
41
|
-
* @returns Quote result including required input amount
|
|
42
|
-
*/
|
|
43
|
-
async quoteExactOutputV3(params) {
|
|
44
|
-
const addresses = chunkHRFHDSNE_js.getAddresses(this.chainId);
|
|
45
|
-
const { result } = await this.publicClient.simulateContract({
|
|
46
|
-
address: addresses.v3Quoter,
|
|
47
|
-
abi: chunkEFAPDN4J_js.quoterV2Abi,
|
|
48
|
-
functionName: "quoteExactOutputSingle",
|
|
49
|
-
args: [{
|
|
50
|
-
tokenIn: params.tokenIn,
|
|
51
|
-
tokenOut: params.tokenOut,
|
|
52
|
-
fee: params.fee,
|
|
53
|
-
amountOut: params.amountOut,
|
|
54
|
-
sqrtPriceLimitX96: params.sqrtPriceLimitX96 ?? BigInt(0)
|
|
55
|
-
}]
|
|
56
|
-
});
|
|
57
|
-
return {
|
|
58
|
-
amountIn: result[0],
|
|
59
|
-
sqrtPriceX96After: result[1],
|
|
60
|
-
initializedTicksCrossed: result[2],
|
|
61
|
-
gasEstimate: result[3]
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Get a price quote for swapping an exact amount of input tokens on Uniswap V2
|
|
66
|
-
* @param params Parameters for the quote
|
|
67
|
-
* @returns Array of amounts for each step in the path
|
|
68
|
-
*/
|
|
69
|
-
async quoteExactInputV2(params) {
|
|
70
|
-
const addresses = chunkHRFHDSNE_js.getAddresses(this.chainId);
|
|
71
|
-
if (!addresses.univ2Router02) {
|
|
72
|
-
throw new Error("Uniswap V2 Router not available on this chain");
|
|
73
|
-
}
|
|
74
|
-
const result = await this.publicClient.readContract({
|
|
75
|
-
address: addresses.univ2Router02,
|
|
76
|
-
abi: chunkEFAPDN4J_js.uniswapV2Router02Abi,
|
|
77
|
-
functionName: "getAmountsOut",
|
|
78
|
-
args: [params.amountIn, params.path]
|
|
79
|
-
});
|
|
80
|
-
return [...result];
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Get a price quote for receiving an exact amount of output tokens on Uniswap V2
|
|
84
|
-
* @param params Parameters for the quote
|
|
85
|
-
* @returns Array of amounts for each step in the path
|
|
86
|
-
*/
|
|
87
|
-
async quoteExactOutputV2(params) {
|
|
88
|
-
const addresses = chunkHRFHDSNE_js.getAddresses(this.chainId);
|
|
89
|
-
if (!addresses.univ2Router02) {
|
|
90
|
-
throw new Error("Uniswap V2 Router not available on this chain");
|
|
91
|
-
}
|
|
92
|
-
const result = await this.publicClient.readContract({
|
|
93
|
-
address: addresses.univ2Router02,
|
|
94
|
-
abi: chunkEFAPDN4J_js.uniswapV2Router02Abi,
|
|
95
|
-
functionName: "getAmountsIn",
|
|
96
|
-
args: [params.amountOut, params.path]
|
|
97
|
-
});
|
|
98
|
-
return [...result];
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Get a price quote for swapping an exact amount of input tokens on Uniswap V4
|
|
102
|
-
* @param params Parameters for the quote
|
|
103
|
-
* @returns Quote result for V4 pools
|
|
104
|
-
*/
|
|
105
|
-
async quoteExactInputV4(params) {
|
|
106
|
-
const addresses = chunkHRFHDSNE_js.getAddresses(this.chainId);
|
|
107
|
-
const quoterAddress = addresses.dopplerLens;
|
|
108
|
-
if (!quoterAddress) {
|
|
109
|
-
throw new Error("No V4 quoter available on this chain");
|
|
110
|
-
}
|
|
111
|
-
try {
|
|
112
|
-
const { result } = await this.publicClient.simulateContract({
|
|
113
|
-
address: quoterAddress,
|
|
114
|
-
abi: chunkEFAPDN4J_js.v4QuoterAbi,
|
|
115
|
-
functionName: "quoteExactInputSingle",
|
|
116
|
-
args: [{
|
|
117
|
-
poolKey: params.poolKey,
|
|
118
|
-
zeroForOne: params.zeroForOne,
|
|
119
|
-
exactAmount: params.exactAmount,
|
|
120
|
-
hookData: params.hookData ?? "0x"
|
|
121
|
-
}]
|
|
122
|
-
});
|
|
123
|
-
return {
|
|
124
|
-
amountOut: result[0],
|
|
125
|
-
gasEstimate: result[1]
|
|
126
|
-
};
|
|
127
|
-
} catch (simulateError) {
|
|
128
|
-
throw simulateError;
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Get a price quote for receiving an exact amount of output tokens on Uniswap V4
|
|
133
|
-
* @param params Parameters for the quote
|
|
134
|
-
* @returns Quote result for V4 pools
|
|
135
|
-
*/
|
|
136
|
-
async quoteExactOutputV4(params) {
|
|
137
|
-
const addresses = chunkHRFHDSNE_js.getAddresses(this.chainId);
|
|
138
|
-
const quoterAddress = addresses.dopplerLens;
|
|
139
|
-
if (!quoterAddress) {
|
|
140
|
-
throw new Error("No V4 quoter available on this chain");
|
|
141
|
-
}
|
|
142
|
-
const { result } = await this.publicClient.simulateContract({
|
|
143
|
-
address: quoterAddress,
|
|
144
|
-
abi: chunkEFAPDN4J_js.v4QuoterAbi,
|
|
145
|
-
functionName: "quoteExactOutputSingle",
|
|
146
|
-
args: [{
|
|
147
|
-
poolKey: params.poolKey,
|
|
148
|
-
zeroForOne: params.zeroForOne,
|
|
149
|
-
exactAmount: params.exactAmount,
|
|
150
|
-
hookData: params.hookData ?? "0x"
|
|
151
|
-
}]
|
|
152
|
-
});
|
|
153
|
-
return {
|
|
154
|
-
amountIn: result[0],
|
|
155
|
-
gasEstimate: result[1]
|
|
156
|
-
};
|
|
157
|
-
}
|
|
158
|
-
};
|
|
159
|
-
|
|
160
|
-
exports.Quoter = Quoter;
|
|
161
|
-
//# sourceMappingURL=chunk-UHT4QLL7.js.map
|
|
162
|
-
//# sourceMappingURL=chunk-UHT4QLL7.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/entities/quoter/Quoter.ts"],"names":["getAddresses","quoterV2Abi","uniswapV2Router02Abi","v4QuoterAbi"],"mappings":";;;;;;AAWO,IAAM,SAAN,MAAa;AAAA,EAIlB,WAAA,CAAY,cAA4B,OAAiB,EAAA;AACvD,IAAA,IAAA,CAAK,YAAe,GAAA,YAAA;AACpB,IAAA,IAAA,CAAK,OAAU,GAAA,OAAA;AAAA;AACjB;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,kBAAkB,MAWrB,EAAA;AACD,IAAM,MAAA,SAAA,GAAYA,6BAAa,CAAA,IAAA,CAAK,OAAO,CAAA;AAE3C,IAAA,MAAM,EAAE,MAAO,EAAA,GAAI,MAAM,IAAA,CAAK,aAAa,gBAAiB,CAAA;AAAA,MAC1D,SAAS,SAAU,CAAA,QAAA;AAAA,MACnB,GAAK,EAAAC,4BAAA;AAAA,MACL,YAAc,EAAA,uBAAA;AAAA,MACd,MAAM,CAAC;AAAA,QACL,SAAS,MAAO,CAAA,OAAA;AAAA,QAChB,UAAU,MAAO,CAAA,QAAA;AAAA,QACjB,UAAU,MAAO,CAAA,QAAA;AAAA,QACjB,KAAK,MAAO,CAAA,GAAA;AAAA,QACZ,iBAAmB,EAAA,MAAA,CAAO,iBAAqB,IAAA,MAAA,CAAO,CAAC;AAAA,OACxD;AAAA,KACF,CAAA;AAED,IAAO,OAAA;AAAA,MACL,SAAA,EAAW,OAAO,CAAC,CAAA;AAAA,MACnB,iBAAA,EAAmB,OAAO,CAAC,CAAA;AAAA,MAC3B,uBAAA,EAAyB,OAAO,CAAC,CAAA;AAAA,MACjC,WAAA,EAAa,OAAO,CAAC;AAAA,KACvB;AAAA;AACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,mBAAmB,MAWtB,EAAA;AACD,IAAM,MAAA,SAAA,GAAYD,6BAAa,CAAA,IAAA,CAAK,OAAO,CAAA;AAE3C,IAAA,MAAM,EAAE,MAAO,EAAA,GAAI,MAAM,IAAA,CAAK,aAAa,gBAAiB,CAAA;AAAA,MAC1D,SAAS,SAAU,CAAA,QAAA;AAAA,MACnB,GAAK,EAAAC,4BAAA;AAAA,MACL,YAAc,EAAA,wBAAA;AAAA,MACd,MAAM,CAAC;AAAA,QACL,SAAS,MAAO,CAAA,OAAA;AAAA,QAChB,UAAU,MAAO,CAAA,QAAA;AAAA,QACjB,KAAK,MAAO,CAAA,GAAA;AAAA,QACZ,WAAW,MAAO,CAAA,SAAA;AAAA,QAClB,iBAAmB,EAAA,MAAA,CAAO,iBAAqB,IAAA,MAAA,CAAO,CAAC;AAAA,OACxD;AAAA,KACF,CAAA;AAED,IAAO,OAAA;AAAA,MACL,QAAA,EAAU,OAAO,CAAC,CAAA;AAAA,MAClB,iBAAA,EAAmB,OAAO,CAAC,CAAA;AAAA,MAC3B,uBAAA,EAAyB,OAAO,CAAC,CAAA;AAAA,MACjC,WAAA,EAAa,OAAO,CAAC;AAAA,KACvB;AAAA;AACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,kBAAkB,MAGF,EAAA;AACpB,IAAM,MAAA,SAAA,GAAYD,6BAAa,CAAA,IAAA,CAAK,OAAO,CAAA;AAE3C,IAAI,IAAA,CAAC,UAAU,aAAe,EAAA;AAC5B,MAAM,MAAA,IAAI,MAAM,+CAA+C,CAAA;AAAA;AAGjE,IAAA,MAAM,MAAS,GAAA,MAAM,IAAK,CAAA,YAAA,CAAa,YAAa,CAAA;AAAA,MAClD,SAAS,SAAU,CAAA,aAAA;AAAA,MACnB,GAAK,EAAAE,qCAAA;AAAA,MACL,YAAc,EAAA,eAAA;AAAA,MACd,IAAM,EAAA,CAAC,MAAO,CAAA,QAAA,EAAU,OAAO,IAAI;AAAA,KACpC,CAAA;AAED,IAAO,OAAA,CAAC,GAAG,MAAM,CAAA;AAAA;AACnB;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,mBAAmB,MAGH,EAAA;AACpB,IAAM,MAAA,SAAA,GAAYF,6BAAa,CAAA,IAAA,CAAK,OAAO,CAAA;AAE3C,IAAI,IAAA,CAAC,UAAU,aAAe,EAAA;AAC5B,MAAM,MAAA,IAAI,MAAM,+CAA+C,CAAA;AAAA;AAGjE,IAAA,MAAM,MAAS,GAAA,MAAM,IAAK,CAAA,YAAA,CAAa,YAAa,CAAA;AAAA,MAClD,SAAS,SAAU,CAAA,aAAA;AAAA,MACnB,GAAK,EAAAE,qCAAA;AAAA,MACL,YAAc,EAAA,cAAA;AAAA,MACd,IAAM,EAAA,CAAC,MAAO,CAAA,SAAA,EAAW,OAAO,IAAI;AAAA,KACrC,CAAA;AAED,IAAO,OAAA,CAAC,GAAG,MAAM,CAAA;AAAA;AACnB;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,kBAAkB,MAcrB,EAAA;AACD,IAAM,MAAA,SAAA,GAAYF,6BAAa,CAAA,IAAA,CAAK,OAAO,CAAA;AAG3C,IAAA,MAAM,gBAAgB,SAAU,CAAA,WAAA;AAEhC,IAAA,IAAI,CAAC,aAAe,EAAA;AAClB,MAAM,MAAA,IAAI,MAAM,sCAAsC,CAAA;AAAA;AAGxD,IAAI,IAAA;AAEF,MAAA,MAAM,EAAE,MAAO,EAAA,GAAI,MAAM,IAAA,CAAK,aAAa,gBAAiB,CAAA;AAAA,QAC1D,OAAS,EAAA,aAAA;AAAA,QACT,GAAK,EAAAG,4BAAA;AAAA,QACL,YAAc,EAAA,uBAAA;AAAA,QACd,MAAM,CAAC;AAAA,UACL,SAAS,MAAO,CAAA,OAAA;AAAA,UAChB,YAAY,MAAO,CAAA,UAAA;AAAA,UACnB,aAAa,MAAO,CAAA,WAAA;AAAA,UACpB,QAAA,EAAW,OAAO,QAAY,IAAA;AAAA,SAC/B;AAAA,OACF,CAAA;AAED,MAAO,OAAA;AAAA,QACL,SAAA,EAAW,OAAO,CAAC,CAAA;AAAA,QACnB,WAAA,EAAa,OAAO,CAAC;AAAA,OACvB;AAAA,aACO,aAAe,EAAA;AAGtB,MAAM,MAAA,aAAA;AAAA;AACR;AACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,mBAAmB,MActB,EAAA;AACD,IAAM,MAAA,SAAA,GAAYH,6BAAa,CAAA,IAAA,CAAK,OAAO,CAAA;AAG3C,IAAA,MAAM,gBAAgB,SAAU,CAAA,WAAA;AAEhC,IAAA,IAAI,CAAC,aAAe,EAAA;AAClB,MAAM,MAAA,IAAI,MAAM,sCAAsC,CAAA;AAAA;AAGxD,IAAA,MAAM,EAAE,MAAO,EAAA,GAAI,MAAM,IAAA,CAAK,aAAa,gBAAiB,CAAA;AAAA,MAC1D,OAAS,EAAA,aAAA;AAAA,MACT,GAAK,EAAAG,4BAAA;AAAA,MACL,YAAc,EAAA,wBAAA;AAAA,MACd,MAAM,CAAC;AAAA,QACL,SAAS,MAAO,CAAA,OAAA;AAAA,QAChB,YAAY,MAAO,CAAA,UAAA;AAAA,QACnB,aAAa,MAAO,CAAA,WAAA;AAAA,QACpB,QAAA,EAAW,OAAO,QAAY,IAAA;AAAA,OAC/B;AAAA,KACF,CAAA;AAED,IAAO,OAAA;AAAA,MACL,QAAA,EAAU,OAAO,CAAC,CAAA;AAAA,MAClB,WAAA,EAAa,OAAO,CAAC;AAAA,KACvB;AAAA;AAEJ","file":"chunk-UHT4QLL7.js","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"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/tickMath.ts"],"names":[],"mappings":"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","file":"chunk-XG7K4R56.js","sourcesContent":["/**\n * Tick math utilities for Uniswap V3/V4 price calculations\n * \n * These utilities help convert between ticks, sqrtPriceX96 values, and human-readable prices\n */\n\n// Constants\nexport const MIN_TICK = -887272\nexport const MAX_TICK = 887272\nexport const MIN_SQRT_RATIO = 4295128739n\nexport const MAX_SQRT_RATIO = 1461446703485210103287273052203988822378723970342n\nexport const Q96 = 2n ** 96n\n\n/**\n * Get the sqrt ratio at a given tick\n * @param tick The tick value\n * @returns The sqrt price as a Q64.96 fixed point number\n */\nexport function getSqrtRatioAtTick(tick: number): bigint {\n if (tick < MIN_TICK || tick > MAX_TICK) {\n throw new Error('Tick out of bounds')\n }\n\n const absTick = tick < 0 ? -tick : tick\n\n let ratio = (absTick & 0x1) !== 0\n ? 0xfffcb933bd6fad37aa2d162d1a594001n\n : 0x100000000000000000000000000000000n\n\n if ((absTick & 0x2) !== 0) ratio = (ratio * 0xfff97272373d413259a46990580e213an) >> 128n\n if ((absTick & 0x4) !== 0) ratio = (ratio * 0xfff2e50f5f656932ef12357cf3c7fdccn) >> 128n\n if ((absTick & 0x8) !== 0) ratio = (ratio * 0xffe5caca7e10e4e61c3624eaa0941cd0n) >> 128n\n if ((absTick & 0x10) !== 0) ratio = (ratio * 0xffcb9843d60f6159c9db58835c926644n) >> 128n\n if ((absTick & 0x20) !== 0) ratio = (ratio * 0xff973b41fa98c081472e6896dfb254c0n) >> 128n\n if ((absTick & 0x40) !== 0) ratio = (ratio * 0xff2ea16466c96a3843ec78b326b52861n) >> 128n\n if ((absTick & 0x80) !== 0) ratio = (ratio * 0xfe5dee046a99a2a811c461f1969c3053n) >> 128n\n if ((absTick & 0x100) !== 0) ratio = (ratio * 0xfcbe86c7900a88aedcffc83b479aa3a4n) >> 128n\n if ((absTick & 0x200) !== 0) ratio = (ratio * 0xf987a7253ac413176f2b074cf7815e54n) >> 128n\n if ((absTick & 0x400) !== 0) ratio = (ratio * 0xf3392b0822b70005940c7a398e4b70f3n) >> 128n\n if ((absTick & 0x800) !== 0) ratio = (ratio * 0xe7159475a2c29b7443b29c7fa6e889d9n) >> 128n\n if ((absTick & 0x1000) !== 0) ratio = (ratio * 0xd097f3bdfd2022b8845ad8f792aa5825n) >> 128n\n if ((absTick & 0x2000) !== 0) ratio = (ratio * 0xa9f746462d870fdf8a65dc1f90e061e5n) >> 128n\n if ((absTick & 0x4000) !== 0) ratio = (ratio * 0x70d869a156d2a1b890bb3df62baf32f7n) >> 128n\n if ((absTick & 0x8000) !== 0) ratio = (ratio * 0x31be135f97d08fd981231505542fcfa6n) >> 128n\n if ((absTick & 0x10000) !== 0) ratio = (ratio * 0x9aa508b5b7a84e1c677de54f3e99bc9n) >> 128n\n if ((absTick & 0x20000) !== 0) ratio = (ratio * 0x5d6af8dedb81196699c329225ee604n) >> 128n\n if ((absTick & 0x40000) !== 0) ratio = (ratio * 0x2216e584f5fa1ea926041bedfe98n) >> 128n\n if ((absTick & 0x80000) !== 0) ratio = (ratio * 0x48a170391f7dc42444e8fa2n) >> 128n\n\n if (tick > 0) ratio = (2n ** 256n - 1n) / ratio\n\n // Shift to get Q64.96\n return ratio >> 32n\n}\n\n/**\n * Get the tick at a given sqrt ratio\n * @param sqrtRatioX96 The sqrt price as a Q64.96 fixed point number\n * @returns The tick value\n */\nexport function getTickAtSqrtRatio(sqrtRatioX96: bigint): number {\n if (sqrtRatioX96 < MIN_SQRT_RATIO || sqrtRatioX96 >= MAX_SQRT_RATIO) {\n throw new Error('sqrt ratio out of bounds')\n }\n\n const ratio = sqrtRatioX96 << 32n\n\n let r = ratio\n let msb = 0n\n\n let f = r > 0xffffffffffffffffffffffffffffffffn ? 1n : 0n\n msb = msb | (f << 7n)\n r = r >> (f * 128n)\n\n f = r > 0xffffffffffffffffn ? 1n : 0n\n msb = msb | (f << 6n)\n r = r >> (f * 64n)\n\n f = r > 0xffffffffn ? 1n : 0n\n msb = msb | (f << 5n)\n r = r >> (f * 32n)\n\n f = r > 0xffffn ? 1n : 0n\n msb = msb | (f << 4n)\n r = r >> (f * 16n)\n\n f = r > 0xffn ? 1n : 0n\n msb = msb | (f << 3n)\n r = r >> (f * 8n)\n\n f = r > 0xfn ? 1n : 0n\n msb = msb | (f << 2n)\n r = r >> (f * 4n)\n\n f = r > 0x3n ? 1n : 0n\n msb = msb | (f << 1n)\n r = r >> (f * 2n)\n\n f = r > 0x1n ? 1n : 0n\n msb = msb | f\n\n let log2 = (msb - 128n) << 64n\n \n r = ratio >> msb\n r = (r * r) >> 127n\n f = r >> 128n\n log2 = log2 | (f << 63n)\n r = r >> f\n\n r = (r * r) >> 127n\n f = r >> 128n\n log2 = log2 | (f << 62n)\n r = r >> f\n\n r = (r * r) >> 127n\n f = r >> 128n\n log2 = log2 | (f << 61n)\n r = r >> f\n\n r = (r * r) >> 127n\n f = r >> 128n\n log2 = log2 | (f << 60n)\n r = r >> f\n\n r = (r * r) >> 127n\n f = r >> 128n\n log2 = log2 | (f << 59n)\n r = r >> f\n\n r = (r * r) >> 127n\n f = r >> 128n\n log2 = log2 | (f << 58n)\n r = r >> f\n\n r = (r * r) >> 127n\n f = r >> 128n\n log2 = log2 | (f << 57n)\n r = r >> f\n\n r = (r * r) >> 127n\n f = r >> 128n\n log2 = log2 | (f << 56n)\n r = r >> f\n\n r = (r * r) >> 127n\n f = r >> 128n\n log2 = log2 | (f << 55n)\n r = r >> f\n\n r = (r * r) >> 127n\n f = r >> 128n\n log2 = log2 | (f << 54n)\n r = r >> f\n\n r = (r * r) >> 127n\n f = r >> 128n\n log2 = log2 | (f << 53n)\n r = r >> f\n\n r = (r * r) >> 127n\n f = r >> 128n\n log2 = log2 | (f << 52n)\n r = r >> f\n\n r = (r * r) >> 127n\n f = r >> 128n\n log2 = log2 | (f << 51n)\n r = r >> f\n\n r = (r * r) >> 127n\n f = r >> 128n\n log2 = log2 | (f << 50n)\n\n const log_sqrt10001 = log2 * 255738958999603826347141n\n\n const tickLow = Number((log_sqrt10001 - 3402992956809132418596140100660247210n) >> 128n)\n const tickHigh = Number((log_sqrt10001 + 291339464771989622907027621153398088495n) >> 128n)\n\n return tickLow === tickHigh ? tickLow : getSqrtRatioAtTick(tickHigh) <= sqrtRatioX96 ? tickHigh : tickLow\n}\n\n/**\n * Convert sqrtPriceX96 to a human-readable price\n * @param sqrtPriceX96 The sqrt price as a Q64.96 fixed point number\n * @param decimals0 Decimals of token0\n * @param decimals1 Decimals of token1\n * @param token0IsBase Whether to return price in terms of token0 (true) or token1 (false)\n * @returns The price as a number\n */\nexport function sqrtPriceX96ToPrice(\n sqrtPriceX96: bigint,\n decimals0: number,\n decimals1: number,\n token0IsBase = true\n): number {\n const price = Number(sqrtPriceX96) / Number(Q96)\n const priceSquared = price * price\n \n // Adjust for decimals\n const decimalAdjustment = 10 ** (decimals1 - decimals0)\n const adjustedPrice = priceSquared * decimalAdjustment\n \n return token0IsBase ? adjustedPrice : 1 / adjustedPrice\n}\n\n/**\n * Convert a human-readable price to sqrtPriceX96\n * @param price The price (token1/token0)\n * @param decimals0 Decimals of token0\n * @param decimals1 Decimals of token1\n * @returns The sqrt price as a Q64.96 fixed point number\n */\nexport function priceToSqrtPriceX96(\n price: number,\n decimals0: number,\n decimals1: number\n): bigint {\n // Adjust for decimals\n const decimalAdjustment = 10 ** (decimals1 - decimals0)\n const adjustedPrice = price / decimalAdjustment\n \n // Calculate sqrt and convert to X96\n const sqrtPrice = Math.sqrt(adjustedPrice)\n return BigInt(Math.floor(sqrtPrice * Number(Q96)))\n}\n\n/**\n * Convert a tick to a human-readable price\n * @param tick The tick value\n * @param decimals0 Decimals of token0\n * @param decimals1 Decimals of token1\n * @param token0IsBase Whether to return price in terms of token0 (true) or token1 (false)\n * @returns The price as a number\n */\nexport function tickToPrice(\n tick: number,\n decimals0: number,\n decimals1: number,\n token0IsBase = true\n): number {\n const sqrtPriceX96 = getSqrtRatioAtTick(tick)\n return sqrtPriceX96ToPrice(sqrtPriceX96, decimals0, decimals1, token0IsBase)\n}\n\n/**\n * Convert a human-readable price to a tick\n * @param price The price (token1/token0)\n * @param decimals0 Decimals of token0\n * @param decimals1 Decimals of token1\n * @returns The tick value\n */\nexport function priceToTick(\n price: number,\n decimals0: number,\n decimals1: number\n): number {\n const sqrtPriceX96 = priceToSqrtPriceX96(price, decimals0, decimals1)\n return getTickAtSqrtRatio(sqrtPriceX96)\n}\n\n/**\n * Get the nearest usable tick for a given tick spacing\n * @param tick The desired tick\n * @param tickSpacing The tick spacing of the pool\n * @returns The nearest valid tick\n */\nexport function getNearestUsableTick(\n tick: number,\n tickSpacing: number\n): number {\n const rounded = Math.round(tick / tickSpacing) * tickSpacing\n if (rounded < MIN_TICK) return MIN_TICK\n if (rounded > MAX_TICK) return MAX_TICK\n return rounded\n}"]}
|
package/dist/chunk-YNP2HGJZ.js
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunkUHT4QLL7_js = require('./chunk-UHT4QLL7.js');
|
|
4
|
-
var chunkFPGJKJIR_js = require('./chunk-FPGJKJIR.js');
|
|
5
|
-
var chunkEIRVZJTT_js = require('./chunk-EIRVZJTT.js');
|
|
6
|
-
var chunkPMIJTXU6_js = require('./chunk-PMIJTXU6.js');
|
|
7
|
-
|
|
8
|
-
// src/DopplerSDK.ts
|
|
9
|
-
var DopplerSDK = class {
|
|
10
|
-
constructor(config) {
|
|
11
|
-
this.publicClient = config.publicClient;
|
|
12
|
-
this.walletClient = config.walletClient;
|
|
13
|
-
this.chainId = config.chainId;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Get the factory instance for creating auctions
|
|
17
|
-
*/
|
|
18
|
-
get factory() {
|
|
19
|
-
if (!this._factory) {
|
|
20
|
-
this._factory = new chunkFPGJKJIR_js.DopplerFactory(this.publicClient, this.walletClient, this.chainId);
|
|
21
|
-
}
|
|
22
|
-
return this._factory;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Get the quoter instance for price queries
|
|
26
|
-
*/
|
|
27
|
-
get quoter() {
|
|
28
|
-
if (!this._quoter) {
|
|
29
|
-
this._quoter = new chunkUHT4QLL7_js.Quoter(this.publicClient, this.chainId);
|
|
30
|
-
}
|
|
31
|
-
return this._quoter;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Get a StaticAuction instance for interacting with a static auction pool
|
|
35
|
-
* @param poolAddress The address of the Uniswap V3 pool
|
|
36
|
-
*/
|
|
37
|
-
async getStaticAuction(poolAddress) {
|
|
38
|
-
return new chunkPMIJTXU6_js.StaticAuction(this.publicClient, poolAddress);
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Get a DynamicAuction instance for interacting with a dynamic auction hook
|
|
42
|
-
* @param hookAddress The address of the Uniswap V4 hook
|
|
43
|
-
*/
|
|
44
|
-
async getDynamicAuction(hookAddress) {
|
|
45
|
-
return new chunkEIRVZJTT_js.DynamicAuction(this.publicClient, hookAddress);
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Get information about a static auction pool
|
|
49
|
-
* @param poolAddress The address of the pool
|
|
50
|
-
*/
|
|
51
|
-
async getPoolInfo(poolAddress) {
|
|
52
|
-
const auction = new chunkPMIJTXU6_js.StaticAuction(this.publicClient, poolAddress);
|
|
53
|
-
return auction.getPoolInfo();
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Get information about a dynamic auction hook
|
|
57
|
-
* @param hookAddress The address of the hook
|
|
58
|
-
*/
|
|
59
|
-
async getHookInfo(hookAddress) {
|
|
60
|
-
const auction = new chunkEIRVZJTT_js.DynamicAuction(this.publicClient, hookAddress);
|
|
61
|
-
return auction.getHookInfo();
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Get the current chain ID
|
|
65
|
-
*/
|
|
66
|
-
getChainId() {
|
|
67
|
-
return this.chainId;
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Get the underlying clients
|
|
71
|
-
*/
|
|
72
|
-
getClients() {
|
|
73
|
-
return {
|
|
74
|
-
publicClient: this.publicClient,
|
|
75
|
-
walletClient: this.walletClient
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
exports.DopplerSDK = DopplerSDK;
|
|
81
|
-
//# sourceMappingURL=chunk-YNP2HGJZ.js.map
|
|
82
|
-
//# sourceMappingURL=chunk-YNP2HGJZ.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/DopplerSDK.ts"],"names":["DopplerFactory","Quoter","StaticAuction","DynamicAuction"],"mappings":";;;;;;;;AAMO,IAAM,aAAN,MAAiB;AAAA,EAOtB,YAAY,MAA0B,EAAA;AACpC,IAAA,IAAA,CAAK,eAAe,MAAO,CAAA,YAAA;AAC3B,IAAA,IAAA,CAAK,eAAe,MAAO,CAAA,YAAA;AAC3B,IAAA,IAAA,CAAK,UAAU,MAAO,CAAA,OAAA;AAAA;AACxB;AAAA;AAAA;AAAA,EAKA,IAAI,OAA0B,GAAA;AAC5B,IAAI,IAAA,CAAC,KAAK,QAAU,EAAA;AAClB,MAAK,IAAA,CAAA,QAAA,GAAW,IAAIA,+BAAe,CAAA,IAAA,CAAK,cAAc,IAAK,CAAA,YAAA,EAAc,KAAK,OAAO,CAAA;AAAA;AAEvF,IAAA,OAAO,IAAK,CAAA,QAAA;AAAA;AACd;AAAA;AAAA;AAAA,EAKA,IAAI,MAAiB,GAAA;AACnB,IAAI,IAAA,CAAC,KAAK,OAAS,EAAA;AACjB,MAAA,IAAA,CAAK,UAAU,IAAIC,uBAAA,CAAO,IAAK,CAAA,YAAA,EAAc,KAAK,OAAO,CAAA;AAAA;AAE3D,IAAA,OAAO,IAAK,CAAA,OAAA;AAAA;AACd;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,iBAAiB,WAA8C,EAAA;AACnE,IAAA,OAAO,IAAIC,8BAAA,CAAc,IAAK,CAAA,YAAA,EAAc,WAAW,CAAA;AAAA;AACzD;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,kBAAkB,WAA+C,EAAA;AACrE,IAAA,OAAO,IAAIC,+BAAA,CAAe,IAAK,CAAA,YAAA,EAAc,WAAW,CAAA;AAAA;AAC1D;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,YAAY,WAAyC,EAAA;AACzD,IAAA,MAAM,OAAU,GAAA,IAAID,8BAAc,CAAA,IAAA,CAAK,cAAc,WAAW,CAAA;AAChE,IAAA,OAAO,QAAQ,WAAY,EAAA;AAAA;AAC7B;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,YAAY,WAAyC,EAAA;AACzD,IAAA,MAAM,OAAU,GAAA,IAAIC,+BAAe,CAAA,IAAA,CAAK,cAAc,WAAW,CAAA;AACjE,IAAA,OAAO,QAAQ,WAAY,EAAA;AAAA;AAC7B;AAAA;AAAA;AAAA,EAKA,UAAqB,GAAA;AACnB,IAAA,OAAO,IAAK,CAAA,OAAA;AAAA;AACd;AAAA;AAAA;AAAA,EAKA,UAA0E,GAAA;AACxE,IAAO,OAAA;AAAA,MACL,cAAc,IAAK,CAAA,YAAA;AAAA,MACnB,cAAc,IAAK,CAAA;AAAA,KACrB;AAAA;AAEJ","file":"chunk-YNP2HGJZ.js","sourcesContent":["import type { Address, PublicClient, WalletClient } from 'viem'\nimport type { DopplerSDKConfig, HookInfo, PoolInfo } from './types'\nimport { DopplerFactory } from './entities/DopplerFactory'\nimport { StaticAuction, DynamicAuction } from './entities/auction'\nimport { Quoter } from './entities/quoter'\n\nexport class DopplerSDK {\n private publicClient: PublicClient\n private walletClient?: WalletClient\n private chainId: number\n private _factory?: DopplerFactory\n private _quoter?: Quoter\n\n constructor(config: DopplerSDKConfig) {\n this.publicClient = config.publicClient\n this.walletClient = config.walletClient\n this.chainId = config.chainId\n }\n\n /**\n * Get the factory instance for creating auctions\n */\n get factory(): DopplerFactory {\n if (!this._factory) {\n this._factory = new DopplerFactory(this.publicClient, this.walletClient, this.chainId)\n }\n return this._factory\n }\n\n /**\n * Get the quoter instance for price queries\n */\n get quoter(): Quoter {\n if (!this._quoter) {\n this._quoter = new Quoter(this.publicClient, this.chainId)\n }\n return this._quoter\n }\n\n /**\n * Get a StaticAuction instance for interacting with a static auction pool\n * @param poolAddress The address of the Uniswap V3 pool\n */\n async getStaticAuction(poolAddress: Address): Promise<StaticAuction> {\n return new StaticAuction(this.publicClient, poolAddress)\n }\n\n /**\n * Get a DynamicAuction instance for interacting with a dynamic auction hook\n * @param hookAddress The address of the Uniswap V4 hook\n */\n async getDynamicAuction(hookAddress: Address): Promise<DynamicAuction> {\n return new DynamicAuction(this.publicClient, hookAddress)\n }\n\n /**\n * Get information about a static auction pool\n * @param poolAddress The address of the pool\n */\n async getPoolInfo(poolAddress: Address): Promise<PoolInfo> {\n const auction = new StaticAuction(this.publicClient, poolAddress)\n return auction.getPoolInfo()\n }\n\n /**\n * Get information about a dynamic auction hook\n * @param hookAddress The address of the hook\n */\n async getHookInfo(hookAddress: Address): Promise<HookInfo> {\n const auction = new DynamicAuction(this.publicClient, hookAddress)\n return auction.getHookInfo()\n }\n\n /**\n * Get the current chain ID\n */\n getChainId(): number {\n return this.chainId\n }\n\n /**\n * Get the underlying clients\n */\n getClients(): { publicClient: PublicClient; walletClient?: WalletClient } {\n return {\n publicClient: this.publicClient,\n walletClient: this.walletClient\n }\n }\n}"]}
|
package/dist/chunk-ZAIP54LX.js
DELETED
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunkEFAPDN4J_js = require('./chunk-EFAPDN4J.js');
|
|
4
|
-
|
|
5
|
-
// src/entities/token/derc20/Derc20.ts
|
|
6
|
-
var Derc20 = class {
|
|
7
|
-
constructor(publicClient, walletClient, address) {
|
|
8
|
-
this.publicClient = publicClient;
|
|
9
|
-
this.walletClient = walletClient;
|
|
10
|
-
this.address = address;
|
|
11
|
-
}
|
|
12
|
-
/** Get the human-readable name of the token */
|
|
13
|
-
async getName() {
|
|
14
|
-
return await this.publicClient.readContract({
|
|
15
|
-
address: this.address,
|
|
16
|
-
abi: chunkEFAPDN4J_js.derc20Abi,
|
|
17
|
-
functionName: "name"
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
/** Get the symbol/ticker of the token */
|
|
21
|
-
async getSymbol() {
|
|
22
|
-
return await this.publicClient.readContract({
|
|
23
|
-
address: this.address,
|
|
24
|
-
abi: chunkEFAPDN4J_js.derc20Abi,
|
|
25
|
-
functionName: "symbol"
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
/** Get the number of decimals used for token divisions */
|
|
29
|
-
async getDecimals() {
|
|
30
|
-
return await this.publicClient.readContract({
|
|
31
|
-
address: this.address,
|
|
32
|
-
abi: chunkEFAPDN4J_js.derc20Abi,
|
|
33
|
-
functionName: "decimals"
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
/** Get the token URI for the token */
|
|
37
|
-
async getTokenURI() {
|
|
38
|
-
return await this.publicClient.readContract({
|
|
39
|
-
address: this.address,
|
|
40
|
-
abi: chunkEFAPDN4J_js.derc20Abi,
|
|
41
|
-
functionName: "tokenURI"
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Get the allowance granted by an owner to a spender
|
|
46
|
-
* @param owner - The address that granted the allowance
|
|
47
|
-
* @param spender - The address that can spend the tokens
|
|
48
|
-
*/
|
|
49
|
-
async getAllowance(owner, spender) {
|
|
50
|
-
return await this.publicClient.readContract({
|
|
51
|
-
address: this.address,
|
|
52
|
-
abi: chunkEFAPDN4J_js.derc20Abi,
|
|
53
|
-
functionName: "allowance",
|
|
54
|
-
args: [owner, spender]
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Get the token balance of a specific account
|
|
59
|
-
* @param account - Address to check balance for
|
|
60
|
-
*/
|
|
61
|
-
async getBalanceOf(account) {
|
|
62
|
-
return await this.publicClient.readContract({
|
|
63
|
-
address: this.address,
|
|
64
|
-
abi: chunkEFAPDN4J_js.derc20Abi,
|
|
65
|
-
functionName: "balanceOf",
|
|
66
|
-
args: [account]
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
/** Get the total supply of tokens in circulation */
|
|
70
|
-
async getTotalSupply() {
|
|
71
|
-
return await this.publicClient.readContract({
|
|
72
|
-
address: this.address,
|
|
73
|
-
abi: chunkEFAPDN4J_js.derc20Abi,
|
|
74
|
-
functionName: "totalSupply"
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
/** Get the duration (in seconds) of the vesting period */
|
|
78
|
-
async getVestingDuration() {
|
|
79
|
-
return await this.publicClient.readContract({
|
|
80
|
-
address: this.address,
|
|
81
|
-
abi: chunkEFAPDN4J_js.derc20Abi,
|
|
82
|
-
functionName: "vestingDuration"
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
/** Get the timestamp when vesting begins */
|
|
86
|
-
async getVestingStart() {
|
|
87
|
-
return await this.publicClient.readContract({
|
|
88
|
-
address: this.address,
|
|
89
|
-
abi: chunkEFAPDN4J_js.derc20Abi,
|
|
90
|
-
functionName: "vestingStart"
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
/** Get the total amount of tokens allocated for vesting */
|
|
94
|
-
async getVestedTotalAmount() {
|
|
95
|
-
return await this.publicClient.readContract({
|
|
96
|
-
address: this.address,
|
|
97
|
-
abi: chunkEFAPDN4J_js.derc20Abi,
|
|
98
|
-
functionName: "vestedTotalAmount"
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
/** Get the amount of vested tokens available for a specific address */
|
|
102
|
-
async getAvailableVestedAmount(account) {
|
|
103
|
-
return await this.publicClient.readContract({
|
|
104
|
-
address: this.address,
|
|
105
|
-
abi: chunkEFAPDN4J_js.derc20Abi,
|
|
106
|
-
functionName: "computeAvailableVestedAmount",
|
|
107
|
-
args: [account]
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
/** Get the current annual mint rate in tokens per year */
|
|
111
|
-
async getYearlyMintRate() {
|
|
112
|
-
return await this.publicClient.readContract({
|
|
113
|
-
address: this.address,
|
|
114
|
-
abi: chunkEFAPDN4J_js.derc20Abi,
|
|
115
|
-
functionName: "yearlyMintRate"
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
/** Get the pool address for the token */
|
|
119
|
-
async getPool() {
|
|
120
|
-
return await this.publicClient.readContract({
|
|
121
|
-
address: this.address,
|
|
122
|
-
abi: chunkEFAPDN4J_js.derc20Abi,
|
|
123
|
-
functionName: "pool"
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
/** Check if the liquidity pool is unlocked */
|
|
127
|
-
async getIsPoolUnlocked() {
|
|
128
|
-
return await this.publicClient.readContract({
|
|
129
|
-
address: this.address,
|
|
130
|
-
abi: chunkEFAPDN4J_js.derc20Abi,
|
|
131
|
-
functionName: "isPoolUnlocked"
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
/** Get the timestamp when token minting begins */
|
|
135
|
-
async getCurrentYearStart() {
|
|
136
|
-
return await this.publicClient.readContract({
|
|
137
|
-
address: this.address,
|
|
138
|
-
abi: chunkEFAPDN4J_js.derc20Abi,
|
|
139
|
-
functionName: "currentYearStart"
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
/** Get the timestamp of the last mint */
|
|
143
|
-
async getLastMintTimestamp() {
|
|
144
|
-
return await this.publicClient.readContract({
|
|
145
|
-
address: this.address,
|
|
146
|
-
abi: chunkEFAPDN4J_js.derc20Abi,
|
|
147
|
-
functionName: "lastMintTimestamp"
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* Get detailed vesting information for a specific account
|
|
152
|
-
* @param account - Address to retrieve vesting data for
|
|
153
|
-
* @returns Object containing totalAmount and releasedAmount
|
|
154
|
-
*/
|
|
155
|
-
async getVestingData(account) {
|
|
156
|
-
const result = await this.publicClient.readContract({
|
|
157
|
-
address: this.address,
|
|
158
|
-
abi: chunkEFAPDN4J_js.derc20Abi,
|
|
159
|
-
functionName: "getVestingDataOf",
|
|
160
|
-
args: [account]
|
|
161
|
-
});
|
|
162
|
-
return {
|
|
163
|
-
totalAmount: result[0],
|
|
164
|
-
releasedAmount: result[1]
|
|
165
|
-
};
|
|
166
|
-
}
|
|
167
|
-
// Write methods (require wallet client)
|
|
168
|
-
/**
|
|
169
|
-
* Approve a spender to transfer tokens on behalf of the owner
|
|
170
|
-
* @param spender - Address that will be able to spend the tokens
|
|
171
|
-
* @param value - Amount of tokens to approve
|
|
172
|
-
* @returns Transaction hash
|
|
173
|
-
*/
|
|
174
|
-
async approve(spender, value) {
|
|
175
|
-
if (!this.walletClient) {
|
|
176
|
-
throw new Error("Wallet client required for write operations");
|
|
177
|
-
}
|
|
178
|
-
const { request } = await this.publicClient.simulateContract({
|
|
179
|
-
address: this.address,
|
|
180
|
-
abi: chunkEFAPDN4J_js.derc20Abi,
|
|
181
|
-
functionName: "approve",
|
|
182
|
-
args: [spender, value],
|
|
183
|
-
account: this.walletClient.account
|
|
184
|
-
});
|
|
185
|
-
return await this.walletClient.writeContract(request);
|
|
186
|
-
}
|
|
187
|
-
/**
|
|
188
|
-
* Release vested tokens to the caller
|
|
189
|
-
* @param amount - Amount of vested tokens to release
|
|
190
|
-
* @returns Transaction hash
|
|
191
|
-
*/
|
|
192
|
-
async release(amount) {
|
|
193
|
-
if (!this.walletClient) {
|
|
194
|
-
throw new Error("Wallet client required for write operations");
|
|
195
|
-
}
|
|
196
|
-
const { request } = await this.publicClient.simulateContract({
|
|
197
|
-
address: this.address,
|
|
198
|
-
abi: chunkEFAPDN4J_js.derc20Abi,
|
|
199
|
-
functionName: "release",
|
|
200
|
-
args: [amount],
|
|
201
|
-
account: this.walletClient.account
|
|
202
|
-
});
|
|
203
|
-
return await this.walletClient.writeContract(request);
|
|
204
|
-
}
|
|
205
|
-
};
|
|
206
|
-
|
|
207
|
-
exports.Derc20 = Derc20;
|
|
208
|
-
//# sourceMappingURL=chunk-ZAIP54LX.js.map
|
|
209
|
-
//# sourceMappingURL=chunk-ZAIP54LX.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/entities/token/derc20/Derc20.ts"],"names":["derc20Abi"],"mappings":"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","file":"chunk-ZAIP54LX.js","sourcesContent":["import { type Address, type PublicClient, type WalletClient } from 'viem'\nimport { derc20Abi } from '../../../abis'\n\n/**\n * A class providing read and write access to a DERC20 token contract.\n * Enables querying standard ERC20 token properties along with custom vesting\n * and minting-related state information.\n */\nexport class Derc20 {\n private publicClient: PublicClient\n private walletClient?: WalletClient\n private address: Address\n \n constructor(publicClient: PublicClient, walletClient: WalletClient | undefined, address: Address) {\n this.publicClient = publicClient\n this.walletClient = walletClient\n this.address = address\n }\n \n /** Get the human-readable name of the token */\n async getName(): Promise<string> {\n return await this.publicClient.readContract({\n address: this.address,\n abi: derc20Abi,\n functionName: 'name',\n })\n }\n \n /** Get the symbol/ticker of the token */\n async getSymbol(): Promise<string> {\n return await this.publicClient.readContract({\n address: this.address,\n abi: derc20Abi,\n functionName: 'symbol',\n })\n }\n \n /** Get the number of decimals used for token divisions */\n async getDecimals(): Promise<number> {\n return await this.publicClient.readContract({\n address: this.address,\n abi: derc20Abi,\n functionName: 'decimals',\n })\n }\n \n /** Get the token URI for the token */\n async getTokenURI(): Promise<string> {\n return await this.publicClient.readContract({\n address: this.address,\n abi: derc20Abi,\n functionName: 'tokenURI',\n })\n }\n \n /**\n * Get the allowance granted by an owner to a spender\n * @param owner - The address that granted the allowance\n * @param spender - The address that can spend the tokens\n */\n async getAllowance(owner: Address, spender: Address): Promise<bigint> {\n return await this.publicClient.readContract({\n address: this.address,\n abi: derc20Abi,\n functionName: 'allowance',\n args: [owner, spender],\n })\n }\n \n /**\n * Get the token balance of a specific account\n * @param account - Address to check balance for\n */\n async getBalanceOf(account: Address): Promise<bigint> {\n return await this.publicClient.readContract({\n address: this.address,\n abi: derc20Abi,\n functionName: 'balanceOf',\n args: [account],\n })\n }\n \n /** Get the total supply of tokens in circulation */\n async getTotalSupply(): Promise<bigint> {\n return await this.publicClient.readContract({\n address: this.address,\n abi: derc20Abi,\n functionName: 'totalSupply',\n })\n }\n \n /** Get the duration (in seconds) of the vesting period */\n async getVestingDuration(): Promise<bigint> {\n return await this.publicClient.readContract({\n address: this.address,\n abi: derc20Abi,\n functionName: 'vestingDuration',\n })\n }\n \n /** Get the timestamp when vesting begins */\n async getVestingStart(): Promise<bigint> {\n return await this.publicClient.readContract({\n address: this.address,\n abi: derc20Abi,\n functionName: 'vestingStart',\n })\n }\n \n /** Get the total amount of tokens allocated for vesting */\n async getVestedTotalAmount(): Promise<bigint> {\n return await this.publicClient.readContract({\n address: this.address,\n abi: derc20Abi,\n functionName: 'vestedTotalAmount',\n })\n }\n \n /** Get the amount of vested tokens available for a specific address */\n async getAvailableVestedAmount(account: Address): Promise<bigint> {\n return await this.publicClient.readContract({\n address: this.address,\n abi: derc20Abi,\n functionName: 'computeAvailableVestedAmount',\n args: [account],\n })\n }\n \n /** Get the current annual mint rate in tokens per year */\n async getYearlyMintRate(): Promise<bigint> {\n return await this.publicClient.readContract({\n address: this.address,\n abi: derc20Abi,\n functionName: 'yearlyMintRate',\n })\n }\n \n /** Get the pool address for the token */\n async getPool(): Promise<Address> {\n return await this.publicClient.readContract({\n address: this.address,\n abi: derc20Abi,\n functionName: 'pool',\n })\n }\n \n /** Check if the liquidity pool is unlocked */\n async getIsPoolUnlocked(): Promise<boolean> {\n return await this.publicClient.readContract({\n address: this.address,\n abi: derc20Abi,\n functionName: 'isPoolUnlocked',\n })\n }\n \n /** Get the timestamp when token minting begins */\n async getCurrentYearStart(): Promise<bigint> {\n return await this.publicClient.readContract({\n address: this.address,\n abi: derc20Abi,\n functionName: 'currentYearStart',\n })\n }\n \n /** Get the timestamp of the last mint */\n async getLastMintTimestamp(): Promise<bigint> {\n return await this.publicClient.readContract({\n address: this.address,\n abi: derc20Abi,\n functionName: 'lastMintTimestamp',\n })\n }\n \n /**\n * Get detailed vesting information for a specific account\n * @param account - Address to retrieve vesting data for\n * @returns Object containing totalAmount and releasedAmount\n */\n async getVestingData(account: Address): Promise<{\n totalAmount: bigint\n releasedAmount: bigint\n }> {\n const result = await this.publicClient.readContract({\n address: this.address,\n abi: derc20Abi,\n functionName: 'getVestingDataOf',\n args: [account],\n })\n \n return {\n totalAmount: result[0],\n releasedAmount: result[1],\n }\n }\n \n // Write methods (require wallet client)\n \n /**\n * Approve a spender to transfer tokens on behalf of the owner\n * @param spender - Address that will be able to spend the tokens\n * @param value - Amount of tokens to approve\n * @returns Transaction hash\n */\n async approve(spender: Address, value: bigint): Promise<`0x${string}`> {\n if (!this.walletClient) {\n throw new Error('Wallet client required for write operations')\n }\n \n const { request } = await this.publicClient.simulateContract({\n address: this.address,\n abi: derc20Abi,\n functionName: 'approve',\n args: [spender, value],\n account: this.walletClient.account,\n })\n \n return await this.walletClient.writeContract(request)\n }\n \n /**\n * Release vested tokens to the caller\n * @param amount - Amount of vested tokens to release\n * @returns Transaction hash\n */\n async release(amount: bigint): Promise<`0x${string}`> {\n if (!this.walletClient) {\n throw new Error('Wallet client required for write operations')\n }\n \n const { request } = await this.publicClient.simulateContract({\n address: this.address,\n abi: derc20Abi,\n functionName: 'release',\n args: [amount],\n account: this.walletClient.account,\n })\n \n return await this.walletClient.writeContract(request)\n }\n}"]}
|