@whetstone-research/doppler-sdk 0.0.24 → 1.0.0
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/README.md +69 -0
- package/dist/chunk-3LTCKCJC.js +319 -0
- package/dist/chunk-3LTCKCJC.js.map +1 -0
- package/dist/chunk-PZ5AY32C.js +9 -0
- package/dist/{chunk-4XN6DQBW.js.map → chunk-PZ5AY32C.js.map} +1 -1
- package/dist/chunk-RO6R66OM.js +974 -0
- package/dist/chunk-RO6R66OM.js.map +1 -0
- package/dist/evm/index.d.ts +8533 -0
- package/dist/evm/index.js +15055 -0
- package/dist/evm/index.js.map +1 -0
- package/dist/oracle-BSvZ6pxp.d.ts +820 -0
- package/dist/pda-RVIHNLRP.js +4 -0
- package/dist/pda-RVIHNLRP.js.map +1 -0
- package/dist/solana/index.d.ts +2495 -0
- package/dist/solana/index.js +2209 -0
- package/dist/solana/index.js.map +1 -0
- package/dist/solana/react/index.d.ts +1046 -0
- package/dist/solana/react/index.js +1436 -0
- package/dist/solana/react/index.js.map +1 -0
- package/package.json +36 -20
- package/dist/DopplerSDK.d.mts +0 -106
- package/dist/DopplerSDK.d.ts +0 -106
- package/dist/DopplerSDK.js +0 -53
- package/dist/DopplerSDK.js.map +0 -1
- package/dist/DopplerSDK.mjs +0 -44
- package/dist/DopplerSDK.mjs.map +0 -1
- package/dist/abis/bytecodes/derc20.d.mts +0 -3
- package/dist/abis/bytecodes/derc20.d.ts +0 -3
- package/dist/abis/bytecodes/derc20.js +0 -9
- package/dist/abis/bytecodes/derc20.js.map +0 -1
- package/dist/abis/bytecodes/derc20.mjs +0 -3
- package/dist/abis/bytecodes/derc20.mjs.map +0 -1
- package/dist/abis/bytecodes/derc2080.d.mts +0 -3
- package/dist/abis/bytecodes/derc2080.d.ts +0 -3
- package/dist/abis/bytecodes/derc2080.js +0 -9
- package/dist/abis/bytecodes/derc2080.js.map +0 -1
- package/dist/abis/bytecodes/derc2080.mjs +0 -3
- package/dist/abis/bytecodes/derc2080.mjs.map +0 -1
- package/dist/abis/bytecodes/doppler.d.mts +0 -3
- package/dist/abis/bytecodes/doppler.d.ts +0 -3
- package/dist/abis/bytecodes/doppler.js +0 -9
- package/dist/abis/bytecodes/doppler.js.map +0 -1
- package/dist/abis/bytecodes/doppler.mjs +0 -3
- package/dist/abis/bytecodes/doppler.mjs.map +0 -1
- package/dist/abis/bytecodes/dopplerDN404.d.mts +0 -3
- package/dist/abis/bytecodes/dopplerDN404.d.ts +0 -3
- package/dist/abis/bytecodes/dopplerDN404.js +0 -9
- package/dist/abis/bytecodes/dopplerDN404.js.map +0 -1
- package/dist/abis/bytecodes/dopplerDN404.mjs +0 -3
- package/dist/abis/bytecodes/dopplerDN404.mjs.map +0 -1
- package/dist/abis/bytecodes/stateView.d.mts +0 -3
- package/dist/abis/bytecodes/stateView.d.ts +0 -3
- package/dist/abis/bytecodes/stateView.js +0 -9
- package/dist/abis/bytecodes/stateView.js.map +0 -1
- package/dist/abis/bytecodes/stateView.mjs +0 -3
- package/dist/abis/bytecodes/stateView.mjs.map +0 -1
- package/dist/abis/bytecodes.d.mts +0 -5
- package/dist/abis/bytecodes.d.ts +0 -5
- package/dist/abis/bytecodes.js +0 -33
- package/dist/abis/bytecodes.js.map +0 -1
- package/dist/abis/bytecodes.mjs +0 -8
- package/dist/abis/bytecodes.mjs.map +0 -1
- package/dist/abis/index.d.mts +0 -3871
- package/dist/abis/index.d.ts +0 -3871
- package/dist/abis/index.js +0 -130
- package/dist/abis/index.js.map +0 -1
- package/dist/abis/index.mjs +0 -9
- package/dist/abis/index.mjs.map +0 -1
- package/dist/addresses.d.mts +0 -69
- package/dist/addresses.d.ts +0 -69
- package/dist/addresses.js +0 -29
- package/dist/addresses.js.map +0 -1
- package/dist/addresses.mjs +0 -4
- package/dist/addresses.mjs.map +0 -1
- package/dist/builders/DynamicAuctionBuilder.d.mts +0 -138
- package/dist/builders/DynamicAuctionBuilder.d.ts +0 -138
- package/dist/builders/DynamicAuctionBuilder.js +0 -35
- package/dist/builders/DynamicAuctionBuilder.js.map +0 -1
- package/dist/builders/DynamicAuctionBuilder.mjs +0 -26
- package/dist/builders/DynamicAuctionBuilder.mjs.map +0 -1
- package/dist/builders/MulticurveBuilder.d.mts +0 -196
- package/dist/builders/MulticurveBuilder.d.ts +0 -196
- package/dist/builders/MulticurveBuilder.js +0 -35
- package/dist/builders/MulticurveBuilder.js.map +0 -1
- package/dist/builders/MulticurveBuilder.mjs +0 -26
- package/dist/builders/MulticurveBuilder.mjs.map +0 -1
- package/dist/builders/StaticAuctionBuilder.d.mts +0 -131
- package/dist/builders/StaticAuctionBuilder.d.ts +0 -131
- package/dist/builders/StaticAuctionBuilder.js +0 -35
- package/dist/builders/StaticAuctionBuilder.js.map +0 -1
- package/dist/builders/StaticAuctionBuilder.mjs +0 -26
- package/dist/builders/StaticAuctionBuilder.mjs.map +0 -1
- package/dist/builders/index.d.mts +0 -8
- package/dist/builders/index.d.ts +0 -8
- package/dist/builders/index.js +0 -62
- package/dist/builders/index.js.map +0 -1
- package/dist/builders/index.mjs +0 -29
- package/dist/builders/index.mjs.map +0 -1
- package/dist/builders/shared.d.mts +0 -115
- package/dist/builders/shared.d.ts +0 -115
- package/dist/builders/shared.js +0 -46
- package/dist/builders/shared.js.map +0 -1
- package/dist/builders/shared.mjs +0 -25
- package/dist/builders/shared.mjs.map +0 -1
- package/dist/chunk-25GEBO3B.mjs +0 -219
- package/dist/chunk-25GEBO3B.mjs.map +0 -1
- package/dist/chunk-2A3B3NVB.js +0 -737
- package/dist/chunk-2A3B3NVB.js.map +0 -1
- package/dist/chunk-3NMGCQJ4.mjs +0 -6
- package/dist/chunk-3NMGCQJ4.mjs.map +0 -1
- package/dist/chunk-44CYUEPG.js +0 -377
- package/dist/chunk-44CYUEPG.js.map +0 -1
- package/dist/chunk-4VWQNNNW.js +0 -233
- package/dist/chunk-4VWQNNNW.js.map +0 -1
- package/dist/chunk-4XN6DQBW.js +0 -4
- package/dist/chunk-5GQJRNFL.mjs +0 -40
- package/dist/chunk-5GQJRNFL.mjs.map +0 -1
- package/dist/chunk-5JHXBDZD.js +0 -265
- package/dist/chunk-5JHXBDZD.js.map +0 -1
- package/dist/chunk-5TQOT6CW.js +0 -8
- package/dist/chunk-5TQOT6CW.js.map +0 -1
- package/dist/chunk-65CESA3J.js +0 -46
- package/dist/chunk-65CESA3J.js.map +0 -1
- package/dist/chunk-6BQY5EPB.js +0 -144
- package/dist/chunk-6BQY5EPB.js.map +0 -1
- package/dist/chunk-6H6X3VTZ.js +0 -18
- package/dist/chunk-6H6X3VTZ.js.map +0 -1
- package/dist/chunk-7A4DBBXA.js +0 -311
- package/dist/chunk-7A4DBBXA.js.map +0 -1
- package/dist/chunk-7M57PU6V.js +0 -28
- package/dist/chunk-7M57PU6V.js.map +0 -1
- package/dist/chunk-7ZUV6WPX.mjs +0 -3
- package/dist/chunk-7ZUV6WPX.mjs.map +0 -1
- package/dist/chunk-A2CJYRRQ.js +0 -330
- package/dist/chunk-A2CJYRRQ.js.map +0 -1
- package/dist/chunk-ABT6AT7C.mjs +0 -16
- package/dist/chunk-ABT6AT7C.mjs.map +0 -1
- package/dist/chunk-BK3S6SVR.js +0 -2707
- package/dist/chunk-BK3S6SVR.js.map +0 -1
- package/dist/chunk-BQZTELUX.js +0 -45
- package/dist/chunk-BQZTELUX.js.map +0 -1
- package/dist/chunk-CFAAYL5M.mjs +0 -26
- package/dist/chunk-CFAAYL5M.mjs.map +0 -1
- package/dist/chunk-CFXXUZJY.js +0 -275
- package/dist/chunk-CFXXUZJY.js.map +0 -1
- package/dist/chunk-CWTGQAOG.mjs +0 -72
- package/dist/chunk-CWTGQAOG.mjs.map +0 -1
- package/dist/chunk-DCWF3EMP.js +0 -171
- package/dist/chunk-DCWF3EMP.js.map +0 -1
- package/dist/chunk-DOUF6NON.mjs +0 -3
- package/dist/chunk-DOUF6NON.mjs.map +0 -1
- package/dist/chunk-DQJXCZU2.mjs +0 -318
- package/dist/chunk-DQJXCZU2.mjs.map +0 -1
- package/dist/chunk-DSYPZETD.js +0 -4
- package/dist/chunk-DSYPZETD.js.map +0 -1
- package/dist/chunk-F2BYG63D.mjs +0 -145
- package/dist/chunk-F2BYG63D.mjs.map +0 -1
- package/dist/chunk-FNUBKONK.js +0 -291
- package/dist/chunk-FNUBKONK.js.map +0 -1
- package/dist/chunk-FOESYJP3.mjs +0 -3
- package/dist/chunk-FOESYJP3.mjs.map +0 -1
- package/dist/chunk-FXTGIKQG.mjs +0 -3
- package/dist/chunk-FXTGIKQG.mjs.map +0 -1
- package/dist/chunk-GSBQIVME.mjs +0 -278
- package/dist/chunk-GSBQIVME.mjs.map +0 -1
- package/dist/chunk-H3B54PFV.mjs +0 -17
- package/dist/chunk-H3B54PFV.mjs.map +0 -1
- package/dist/chunk-HJFVRV47.js +0 -120
- package/dist/chunk-HJFVRV47.js.map +0 -1
- package/dist/chunk-IIM2CSDQ.js +0 -147
- package/dist/chunk-IIM2CSDQ.js.map +0 -1
- package/dist/chunk-IUTIHSLH.mjs +0 -295
- package/dist/chunk-IUTIHSLH.mjs.map +0 -1
- package/dist/chunk-IUZ3BBQP.mjs +0 -117
- package/dist/chunk-IUZ3BBQP.mjs.map +0 -1
- package/dist/chunk-IWJOPXYN.mjs +0 -96
- package/dist/chunk-IWJOPXYN.mjs.map +0 -1
- package/dist/chunk-IX4V4UGW.mjs +0 -141
- package/dist/chunk-IX4V4UGW.mjs.map +0 -1
- package/dist/chunk-J62YDWIK.js +0 -8
- package/dist/chunk-J62YDWIK.js.map +0 -1
- package/dist/chunk-JIKAD4YL.js +0 -4
- package/dist/chunk-JIKAD4YL.js.map +0 -1
- package/dist/chunk-JLUOFAE4.mjs +0 -2531
- package/dist/chunk-JLUOFAE4.mjs.map +0 -1
- package/dist/chunk-KAZQJ24E.mjs +0 -59
- package/dist/chunk-KAZQJ24E.mjs.map +0 -1
- package/dist/chunk-KHUE77HC.js +0 -81
- package/dist/chunk-KHUE77HC.js.map +0 -1
- package/dist/chunk-KOAC3BBP.mjs +0 -11
- package/dist/chunk-KOAC3BBP.mjs.map +0 -1
- package/dist/chunk-LW3CYA27.mjs +0 -2705
- package/dist/chunk-LW3CYA27.mjs.map +0 -1
- package/dist/chunk-MEA2C5YX.js +0 -143
- package/dist/chunk-MEA2C5YX.js.map +0 -1
- package/dist/chunk-MU56HCUI.js +0 -2556
- package/dist/chunk-MU56HCUI.js.map +0 -1
- package/dist/chunk-OCIY7QEJ.mjs +0 -169
- package/dist/chunk-OCIY7QEJ.mjs.map +0 -1
- package/dist/chunk-OHA5KJ2M.mjs +0 -6
- package/dist/chunk-OHA5KJ2M.mjs.map +0 -1
- package/dist/chunk-P25HBGP5.mjs +0 -3
- package/dist/chunk-P25HBGP5.mjs.map +0 -1
- package/dist/chunk-P563HTVU.js +0 -164
- package/dist/chunk-P563HTVU.js.map +0 -1
- package/dist/chunk-P7CHGWY7.js +0 -4
- package/dist/chunk-P7CHGWY7.js.map +0 -1
- package/dist/chunk-PGYTMRP3.js +0 -277
- package/dist/chunk-PGYTMRP3.js.map +0 -1
- package/dist/chunk-QAPQGDWK.js +0 -8
- package/dist/chunk-QAPQGDWK.js.map +0 -1
- package/dist/chunk-QHBKRUBY.mjs +0 -328
- package/dist/chunk-QHBKRUBY.mjs.map +0 -1
- package/dist/chunk-QOYI7WCH.js +0 -120
- package/dist/chunk-QOYI7WCH.js.map +0 -1
- package/dist/chunk-QRTABC4Z.js +0 -8
- package/dist/chunk-QRTABC4Z.js.map +0 -1
- package/dist/chunk-QSQGLWNY.mjs +0 -3
- package/dist/chunk-QSQGLWNY.mjs.map +0 -1
- package/dist/chunk-QUBD6HUZ.mjs +0 -735
- package/dist/chunk-QUBD6HUZ.mjs.map +0 -1
- package/dist/chunk-RDTIXP6S.mjs +0 -263
- package/dist/chunk-RDTIXP6S.mjs.map +0 -1
- package/dist/chunk-RLOZWHRR.js +0 -320
- package/dist/chunk-RLOZWHRR.js.map +0 -1
- package/dist/chunk-RV64M4Q6.mjs +0 -3
- package/dist/chunk-RV64M4Q6.mjs.map +0 -1
- package/dist/chunk-SWWLOD7Q.mjs +0 -6
- package/dist/chunk-SWWLOD7Q.mjs.map +0 -1
- package/dist/chunk-T3UA4MJL.js +0 -4
- package/dist/chunk-T3UA4MJL.js.map +0 -1
- package/dist/chunk-TEWAXP5C.mjs +0 -162
- package/dist/chunk-TEWAXP5C.mjs.map +0 -1
- package/dist/chunk-THEIRDGE.mjs +0 -273
- package/dist/chunk-THEIRDGE.mjs.map +0 -1
- package/dist/chunk-U3GOWK6J.mjs +0 -6
- package/dist/chunk-U3GOWK6J.mjs.map +0 -1
- package/dist/chunk-UPVKABAV.js +0 -19
- package/dist/chunk-UPVKABAV.js.map +0 -1
- package/dist/chunk-VEIVYUYF.js +0 -4
- package/dist/chunk-VEIVYUYF.js.map +0 -1
- package/dist/chunk-VKSD3KXF.mjs +0 -275
- package/dist/chunk-VKSD3KXF.mjs.map +0 -1
- package/dist/chunk-VYSOAGRU.mjs +0 -6
- package/dist/chunk-VYSOAGRU.mjs.map +0 -1
- package/dist/chunk-WDC53TM7.mjs +0 -305
- package/dist/chunk-WDC53TM7.mjs.map +0 -1
- package/dist/chunk-WKWP42TD.mjs +0 -39
- package/dist/chunk-WKWP42TD.mjs.map +0 -1
- package/dist/chunk-WNUB3UTT.js +0 -241
- package/dist/chunk-WNUB3UTT.js.map +0 -1
- package/dist/chunk-WNWK2QMU.mjs +0 -375
- package/dist/chunk-WNWK2QMU.mjs.map +0 -1
- package/dist/chunk-WQHTNL5L.js +0 -4
- package/dist/chunk-WQHTNL5L.js.map +0 -1
- package/dist/chunk-WZF5XNBC.js +0 -297
- package/dist/chunk-WZF5XNBC.js.map +0 -1
- package/dist/chunk-X3UMAHOJ.js +0 -4
- package/dist/chunk-X3UMAHOJ.js.map +0 -1
- package/dist/chunk-XMFOZYNI.js +0 -8
- package/dist/chunk-XMFOZYNI.js.map +0 -1
- package/dist/chunk-XNMXN5SZ.mjs +0 -3
- package/dist/chunk-XNMXN5SZ.mjs.map +0 -1
- package/dist/chunk-XSJTASPK.js +0 -13
- package/dist/chunk-XSJTASPK.js.map +0 -1
- package/dist/chunk-YBK6EBA5.mjs +0 -239
- package/dist/chunk-YBK6EBA5.mjs.map +0 -1
- package/dist/chunk-YYLD3AJ7.js +0 -61
- package/dist/chunk-YYLD3AJ7.js.map +0 -1
- package/dist/chunk-ZEDJUNC6.mjs +0 -115
- package/dist/chunk-ZEDJUNC6.mjs.map +0 -1
- package/dist/constants.d.mts +0 -91
- package/dist/constants.d.ts +0 -91
- package/dist/constants.js +0 -196
- package/dist/constants.js.map +0 -1
- package/dist/constants.mjs +0 -3
- package/dist/constants.mjs.map +0 -1
- package/dist/deployments.generated.d.mts +0 -275
- package/dist/deployments.generated.d.ts +0 -275
- package/dist/deployments.generated.js +0 -12
- package/dist/deployments.generated.js.map +0 -1
- package/dist/deployments.generated.mjs +0 -3
- package/dist/deployments.generated.mjs.map +0 -1
- package/dist/entities/DopplerFactory.d.mts +0 -272
- package/dist/entities/DopplerFactory.d.ts +0 -272
- package/dist/entities/DopplerFactory.js +0 -34
- package/dist/entities/DopplerFactory.js.map +0 -1
- package/dist/entities/DopplerFactory.mjs +0 -25
- package/dist/entities/DopplerFactory.mjs.map +0 -1
- package/dist/entities/auction/DynamicAuction.d.mts +0 -72
- package/dist/entities/auction/DynamicAuction.d.ts +0 -72
- package/dist/entities/auction/DynamicAuction.js +0 -21
- package/dist/entities/auction/DynamicAuction.js.map +0 -1
- package/dist/entities/auction/DynamicAuction.mjs +0 -12
- package/dist/entities/auction/DynamicAuction.mjs.map +0 -1
- package/dist/entities/auction/MulticurvePool.d.mts +0 -78
- package/dist/entities/auction/MulticurvePool.d.ts +0 -78
- package/dist/entities/auction/MulticurvePool.js +0 -24
- package/dist/entities/auction/MulticurvePool.js.map +0 -1
- package/dist/entities/auction/MulticurvePool.mjs +0 -15
- package/dist/entities/auction/MulticurvePool.mjs.map +0 -1
- package/dist/entities/auction/RehypeDopplerHook.d.mts +0 -57
- package/dist/entities/auction/RehypeDopplerHook.d.ts +0 -57
- package/dist/entities/auction/RehypeDopplerHook.js +0 -34
- package/dist/entities/auction/RehypeDopplerHook.js.map +0 -1
- package/dist/entities/auction/RehypeDopplerHook.mjs +0 -25
- package/dist/entities/auction/RehypeDopplerHook.mjs.map +0 -1
- package/dist/entities/auction/RehypeDopplerHookMigrator.d.mts +0 -48
- package/dist/entities/auction/RehypeDopplerHookMigrator.d.ts +0 -48
- package/dist/entities/auction/RehypeDopplerHookMigrator.js +0 -34
- package/dist/entities/auction/RehypeDopplerHookMigrator.js.map +0 -1
- package/dist/entities/auction/RehypeDopplerHookMigrator.mjs +0 -25
- package/dist/entities/auction/RehypeDopplerHookMigrator.mjs.map +0 -1
- package/dist/entities/auction/StaticAuction.d.mts +0 -44
- package/dist/entities/auction/StaticAuction.d.ts +0 -44
- package/dist/entities/auction/StaticAuction.js +0 -21
- package/dist/entities/auction/StaticAuction.js.map +0 -1
- package/dist/entities/auction/StaticAuction.mjs +0 -12
- package/dist/entities/auction/StaticAuction.mjs.map +0 -1
- package/dist/entities/auction/index.d.mts +0 -9
- package/dist/entities/auction/index.d.ts +0 -9
- package/dist/entities/auction/index.js +0 -55
- package/dist/entities/auction/index.js.map +0 -1
- package/dist/entities/auction/index.mjs +0 -30
- package/dist/entities/auction/index.mjs.map +0 -1
- package/dist/entities/quoter/Quoter.d.mts +0 -150
- package/dist/entities/quoter/Quoter.d.ts +0 -150
- package/dist/entities/quoter/Quoter.js +0 -21
- package/dist/entities/quoter/Quoter.js.map +0 -1
- package/dist/entities/quoter/Quoter.mjs +0 -12
- package/dist/entities/quoter/Quoter.mjs.map +0 -1
- package/dist/entities/quoter/index.d.mts +0 -5
- package/dist/entities/quoter/index.d.ts +0 -5
- package/dist/entities/quoter/index.js +0 -22
- package/dist/entities/quoter/index.js.map +0 -1
- package/dist/entities/quoter/index.mjs +0 -13
- package/dist/entities/quoter/index.mjs.map +0 -1
- package/dist/entities/token/derc20/Derc20.d.mts +0 -102
- package/dist/entities/token/derc20/Derc20.d.ts +0 -102
- package/dist/entities/token/derc20/Derc20.js +0 -19
- package/dist/entities/token/derc20/Derc20.js.map +0 -1
- package/dist/entities/token/derc20/Derc20.mjs +0 -10
- package/dist/entities/token/derc20/Derc20.mjs.map +0 -1
- package/dist/entities/token/derc20/index.d.mts +0 -5
- package/dist/entities/token/derc20/index.d.ts +0 -5
- package/dist/entities/token/derc20/index.js +0 -20
- package/dist/entities/token/derc20/index.js.map +0 -1
- package/dist/entities/token/derc20/index.mjs +0 -11
- package/dist/entities/token/derc20/index.mjs.map +0 -1
- package/dist/entities/token/eth/Eth.d.mts +0 -54
- package/dist/entities/token/eth/Eth.d.ts +0 -54
- package/dist/entities/token/eth/Eth.js +0 -12
- package/dist/entities/token/eth/Eth.js.map +0 -1
- package/dist/entities/token/eth/Eth.mjs +0 -3
- package/dist/entities/token/eth/Eth.mjs.map +0 -1
- package/dist/entities/token/eth/index.d.mts +0 -5
- package/dist/entities/token/eth/index.d.ts +0 -5
- package/dist/entities/token/eth/index.js +0 -13
- package/dist/entities/token/eth/index.js.map +0 -1
- package/dist/entities/token/eth/index.mjs +0 -4
- package/dist/entities/token/eth/index.mjs.map +0 -1
- package/dist/entities/token/index.d.mts +0 -6
- package/dist/entities/token/index.d.ts +0 -6
- package/dist/entities/token/index.js +0 -27
- package/dist/entities/token/index.js.map +0 -1
- package/dist/entities/token/index.mjs +0 -14
- package/dist/entities/token/index.mjs.map +0 -1
- package/dist/index.d.mts +0 -39
- package/dist/index.d.ts +0 -39
- package/dist/index.js +0 -587
- package/dist/index.js.map +0 -1
- package/dist/index.mjs +0 -49
- package/dist/index.mjs.map +0 -1
- package/dist/types.d.mts +0 -662
- package/dist/types.d.ts +0 -662
- package/dist/types.js +0 -34
- package/dist/types.js.map +0 -1
- package/dist/types.mjs +0 -5
- package/dist/types.mjs.map +0 -1
- package/dist/utils/airlock.d.mts +0 -11
- package/dist/utils/airlock.d.ts +0 -11
- package/dist/utils/airlock.js +0 -26
- package/dist/utils/airlock.js.map +0 -1
- package/dist/utils/airlock.mjs +0 -5
- package/dist/utils/airlock.mjs.map +0 -1
- package/dist/utils/balanceDelta.d.mts +0 -10
- package/dist/utils/balanceDelta.d.ts +0 -10
- package/dist/utils/balanceDelta.js +0 -12
- package/dist/utils/balanceDelta.js.map +0 -1
- package/dist/utils/balanceDelta.mjs +0 -3
- package/dist/utils/balanceDelta.mjs.map +0 -1
- package/dist/utils/computeOptimalGamma.d.mts +0 -7
- package/dist/utils/computeOptimalGamma.d.ts +0 -7
- package/dist/utils/computeOptimalGamma.js +0 -12
- package/dist/utils/computeOptimalGamma.js.map +0 -1
- package/dist/utils/computeOptimalGamma.mjs +0 -3
- package/dist/utils/computeOptimalGamma.mjs.map +0 -1
- package/dist/utils/dopplerHookMigrator.d.mts +0 -18
- package/dist/utils/dopplerHookMigrator.d.ts +0 -18
- package/dist/utils/dopplerHookMigrator.js +0 -20
- package/dist/utils/dopplerHookMigrator.js.map +0 -1
- package/dist/utils/dopplerHookMigrator.mjs +0 -7
- package/dist/utils/dopplerHookMigrator.mjs.map +0 -1
- package/dist/utils/index.d.mts +0 -14
- package/dist/utils/index.d.ts +0 -14
- package/dist/utils/index.js +0 -197
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/index.mjs +0 -24
- package/dist/utils/index.mjs.map +0 -1
- package/dist/utils/isToken0Expected.d.mts +0 -13
- package/dist/utils/isToken0Expected.d.ts +0 -13
- package/dist/utils/isToken0Expected.js +0 -12
- package/dist/utils/isToken0Expected.js.map +0 -1
- package/dist/utils/isToken0Expected.mjs +0 -3
- package/dist/utils/isToken0Expected.mjs.map +0 -1
- package/dist/utils/marketCapHelpers.d.mts +0 -259
- package/dist/utils/marketCapHelpers.d.ts +0 -259
- package/dist/utils/marketCapHelpers.js +0 -58
- package/dist/utils/marketCapHelpers.js.map +0 -1
- package/dist/utils/marketCapHelpers.mjs +0 -5
- package/dist/utils/marketCapHelpers.mjs.map +0 -1
- package/dist/utils/poolKey.d.mts +0 -17
- package/dist/utils/poolKey.d.ts +0 -17
- package/dist/utils/poolKey.js +0 -12
- package/dist/utils/poolKey.js.map +0 -1
- package/dist/utils/poolKey.mjs +0 -3
- package/dist/utils/poolKey.mjs.map +0 -1
- package/dist/utils/priceHelpers.d.mts +0 -86
- package/dist/utils/priceHelpers.d.ts +0 -86
- package/dist/utils/priceHelpers.js +0 -41
- package/dist/utils/priceHelpers.js.map +0 -1
- package/dist/utils/priceHelpers.mjs +0 -4
- package/dist/utils/priceHelpers.mjs.map +0 -1
- package/dist/utils/tickMath.d.mts +0 -72
- package/dist/utils/tickMath.d.ts +0 -72
- package/dist/utils/tickMath.js +0 -60
- package/dist/utils/tickMath.js.map +0 -1
- package/dist/utils/tickMath.mjs +0 -3
- package/dist/utils/tickMath.mjs.map +0 -1
- package/dist/utils/tokenAddressMiner.d.mts +0 -37
- package/dist/utils/tokenAddressMiner.d.ts +0 -37
- package/dist/utils/tokenAddressMiner.js +0 -19
- package/dist/utils/tokenAddressMiner.js.map +0 -1
- package/dist/utils/tokenAddressMiner.mjs +0 -10
- package/dist/utils/tokenAddressMiner.mjs.map +0 -1
package/dist/chunk-CFXXUZJY.js
DELETED
|
@@ -1,275 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunk7M57PU6V_js = require('./chunk-7M57PU6V.js');
|
|
4
|
-
var chunk6BQY5EPB_js = require('./chunk-6BQY5EPB.js');
|
|
5
|
-
var chunk7A4DBBXA_js = require('./chunk-7A4DBBXA.js');
|
|
6
|
-
var chunkMU56HCUI_js = require('./chunk-MU56HCUI.js');
|
|
7
|
-
var viem = require('viem');
|
|
8
|
-
|
|
9
|
-
var MulticurvePool = class {
|
|
10
|
-
get rpc() {
|
|
11
|
-
return this.client;
|
|
12
|
-
}
|
|
13
|
-
constructor(client, walletClient, tokenAddress) {
|
|
14
|
-
this.client = client;
|
|
15
|
-
this.walletClient = walletClient;
|
|
16
|
-
this.tokenAddress = tokenAddress;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Get the token address for this pool
|
|
20
|
-
* This is also the lookup key used to retrieve pool state from the initializer
|
|
21
|
-
* (Called "asset" in the contracts, but we use "tokenAddress" for SDK consistency)
|
|
22
|
-
*/
|
|
23
|
-
getTokenAddress() {
|
|
24
|
-
return this.tokenAddress;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Get current pool state from the multicurve initializer
|
|
28
|
-
*
|
|
29
|
-
* Automatically discovers which initializer (standard, scheduled, decay, or
|
|
30
|
-
* doppler-hook) contains the pool.
|
|
31
|
-
*/
|
|
32
|
-
async getState() {
|
|
33
|
-
const { state } = await this.findInitializerForPool();
|
|
34
|
-
return state;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Find which initializer contains this pool and return both the address and state.
|
|
38
|
-
*
|
|
39
|
-
* Tries v4MulticurveInitializer first (more common), then falls back to
|
|
40
|
-
* v4ScheduledMulticurveInitializer, v4DecayMulticurveInitializer, and
|
|
41
|
-
* dopplerHookInitializer if needed.
|
|
42
|
-
*/
|
|
43
|
-
async findInitializerForPool() {
|
|
44
|
-
const chainId = await this.rpc.getChainId();
|
|
45
|
-
const addresses = chunk7A4DBBXA_js.getAddresses(chainId);
|
|
46
|
-
const initializersToTry = [
|
|
47
|
-
{
|
|
48
|
-
address: addresses.v4MulticurveInitializer,
|
|
49
|
-
kind: "standard"
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
address: addresses.v4ScheduledMulticurveInitializer,
|
|
53
|
-
kind: "standard"
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
address: addresses.v4DecayMulticurveInitializer,
|
|
57
|
-
kind: "standard"
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
address: addresses.dopplerHookInitializer,
|
|
61
|
-
kind: "dopplerHook"
|
|
62
|
-
}
|
|
63
|
-
].filter(
|
|
64
|
-
(entry) => entry.address !== void 0 && entry.address !== viem.zeroAddress
|
|
65
|
-
);
|
|
66
|
-
if (initializersToTry.length === 0) {
|
|
67
|
-
throw new Error(
|
|
68
|
-
"No V4 multicurve initializer addresses configured for this chain"
|
|
69
|
-
);
|
|
70
|
-
}
|
|
71
|
-
const triedInitializers = [];
|
|
72
|
-
for (const initializer of initializersToTry) {
|
|
73
|
-
const { address: initializerAddress, kind } = initializer;
|
|
74
|
-
triedInitializers.push(initializerAddress);
|
|
75
|
-
const stateData = await this.rpc.readContract({
|
|
76
|
-
address: initializerAddress,
|
|
77
|
-
abi: kind === "dopplerHook" ? chunkMU56HCUI_js.dopplerHookInitializerAbi : chunkMU56HCUI_js.v4MulticurveInitializerAbi,
|
|
78
|
-
functionName: "getState",
|
|
79
|
-
args: [this.tokenAddress]
|
|
80
|
-
});
|
|
81
|
-
const parsedState = kind === "dopplerHook" ? this.parseDopplerHookInitializerState(stateData) : this.parseStandardInitializerState(stateData);
|
|
82
|
-
const { numeraire, status, poolKey, farTick } = parsedState;
|
|
83
|
-
if (poolKey.hooks !== viem.zeroAddress && poolKey.tickSpacing !== 0) {
|
|
84
|
-
const state = {
|
|
85
|
-
asset: this.tokenAddress,
|
|
86
|
-
numeraire,
|
|
87
|
-
fee: poolKey.fee,
|
|
88
|
-
tickSpacing: poolKey.tickSpacing,
|
|
89
|
-
status,
|
|
90
|
-
poolKey,
|
|
91
|
-
farTick: Number(farTick)
|
|
92
|
-
};
|
|
93
|
-
return { initializerAddress, state };
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
throw new Error(
|
|
97
|
-
`Pool not found for token ${this.tokenAddress}. Tried initializers: ${triedInitializers.join(", ")}`
|
|
98
|
-
);
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Collect fees from the pool and distribute to beneficiaries
|
|
102
|
-
*
|
|
103
|
-
* This function can be called by any beneficiary to trigger fee collection
|
|
104
|
-
* and distribution. Fees are automatically distributed according to the
|
|
105
|
-
* configured beneficiary shares.
|
|
106
|
-
*
|
|
107
|
-
* @returns Object containing the amounts of fees0 and fees1 distributed, and the transaction hash
|
|
108
|
-
*/
|
|
109
|
-
async collectFees() {
|
|
110
|
-
if (!this.walletClient) {
|
|
111
|
-
throw new Error("Wallet client required to collect fees");
|
|
112
|
-
}
|
|
113
|
-
const chainId = await this.rpc.getChainId();
|
|
114
|
-
const addresses = chunk7A4DBBXA_js.getAddresses(chainId);
|
|
115
|
-
const { initializerAddress, state } = await this.findInitializerForPool();
|
|
116
|
-
if (state.status === 2 /* Locked */) {
|
|
117
|
-
const poolId = chunk7M57PU6V_js.computePoolId(state.poolKey);
|
|
118
|
-
const collectFeesAbi = initializerAddress === addresses.dopplerHookInitializer ? chunkMU56HCUI_js.dopplerHookInitializerAbi : chunkMU56HCUI_js.v4MulticurveInitializerAbi;
|
|
119
|
-
return this.collectFeesFromContract(
|
|
120
|
-
initializerAddress,
|
|
121
|
-
collectFeesAbi,
|
|
122
|
-
poolId
|
|
123
|
-
);
|
|
124
|
-
}
|
|
125
|
-
if (state.status === 3 /* Exited */) {
|
|
126
|
-
if (!addresses.v4Migrator) {
|
|
127
|
-
throw new Error(
|
|
128
|
-
"V4 multicurve migrator address not configured for this chain"
|
|
129
|
-
);
|
|
130
|
-
}
|
|
131
|
-
const assetData = await this.rpc.readContract({
|
|
132
|
-
address: addresses.v4Migrator,
|
|
133
|
-
abi: chunkMU56HCUI_js.v4MulticurveMigratorAbi,
|
|
134
|
-
functionName: "getAssetData",
|
|
135
|
-
args: [state.poolKey.currency0, state.poolKey.currency1]
|
|
136
|
-
});
|
|
137
|
-
const migratorPoolKey = this.parsePoolKey(
|
|
138
|
-
assetData.poolKey ?? assetData[1]
|
|
139
|
-
);
|
|
140
|
-
const poolId = chunk7M57PU6V_js.computePoolId(migratorPoolKey);
|
|
141
|
-
const beneficiaries = assetData.beneficiaries ?? assetData[4] ?? [];
|
|
142
|
-
if (!Array.isArray(beneficiaries) || beneficiaries.length === 0) {
|
|
143
|
-
throw new Error(
|
|
144
|
-
"Migrated multicurve pool has no beneficiaries configured"
|
|
145
|
-
);
|
|
146
|
-
}
|
|
147
|
-
const lockerAddress = await this.resolveLockerAddress(
|
|
148
|
-
addresses.v4Migrator,
|
|
149
|
-
addresses.streamableFeesLocker
|
|
150
|
-
);
|
|
151
|
-
const streamData = await this.rpc.readContract({
|
|
152
|
-
address: lockerAddress,
|
|
153
|
-
abi: chunkMU56HCUI_js.streamableFeesLockerAbi,
|
|
154
|
-
functionName: "streams",
|
|
155
|
-
args: [poolId]
|
|
156
|
-
});
|
|
157
|
-
const startDate = Number(
|
|
158
|
-
streamData.startDate ?? streamData[2] ?? 0
|
|
159
|
-
);
|
|
160
|
-
if (startDate === 0) {
|
|
161
|
-
throw new Error("Migrated multicurve stream not initialized");
|
|
162
|
-
}
|
|
163
|
-
return this.collectFeesFromContract(
|
|
164
|
-
lockerAddress,
|
|
165
|
-
chunkMU56HCUI_js.streamableFeesLockerAbi,
|
|
166
|
-
poolId
|
|
167
|
-
);
|
|
168
|
-
}
|
|
169
|
-
throw new Error("Multicurve pool is not locked or migrated");
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* Get the numeraire address for this pool
|
|
173
|
-
*/
|
|
174
|
-
async getNumeraireAddress() {
|
|
175
|
-
const state = await this.getState();
|
|
176
|
-
return state.numeraire;
|
|
177
|
-
}
|
|
178
|
-
/**
|
|
179
|
-
* Get the decay fee schedule for dynamic-fee multicurve pools.
|
|
180
|
-
*
|
|
181
|
-
* Returns `null` when the pool is not using dynamic fees.
|
|
182
|
-
*/
|
|
183
|
-
async getFeeSchedule() {
|
|
184
|
-
const { state } = await this.findInitializerForPool();
|
|
185
|
-
if (state.poolKey.fee !== chunk6BQY5EPB_js.DYNAMIC_FEE_FLAG) {
|
|
186
|
-
return null;
|
|
187
|
-
}
|
|
188
|
-
const poolId = chunk7M57PU6V_js.computePoolId(state.poolKey);
|
|
189
|
-
try {
|
|
190
|
-
const scheduleData = await this.rpc.readContract({
|
|
191
|
-
address: state.poolKey.hooks,
|
|
192
|
-
abi: chunkMU56HCUI_js.decayMulticurveInitializerHookAbi,
|
|
193
|
-
functionName: "getFeeScheduleOf",
|
|
194
|
-
args: [poolId]
|
|
195
|
-
});
|
|
196
|
-
const scheduleStruct = scheduleData;
|
|
197
|
-
return {
|
|
198
|
-
startingTime: Number(
|
|
199
|
-
scheduleStruct.startingTime ?? scheduleStruct[0] ?? 0
|
|
200
|
-
),
|
|
201
|
-
startFee: Number(scheduleStruct.startFee ?? scheduleStruct[1] ?? 0),
|
|
202
|
-
endFee: Number(scheduleStruct.endFee ?? scheduleStruct[2] ?? 0),
|
|
203
|
-
lastFee: Number(scheduleStruct.lastFee ?? scheduleStruct[3] ?? 0),
|
|
204
|
-
durationSeconds: Number(
|
|
205
|
-
scheduleStruct.durationSeconds ?? scheduleStruct[4] ?? 0
|
|
206
|
-
)
|
|
207
|
-
};
|
|
208
|
-
} catch {
|
|
209
|
-
throw new Error(
|
|
210
|
-
`Dynamic multicurve hook at ${state.poolKey.hooks} does not expose getFeeScheduleOf(poolId)`
|
|
211
|
-
);
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
parsePoolKey(rawPoolKey) {
|
|
215
|
-
const poolKeyStruct = rawPoolKey;
|
|
216
|
-
return {
|
|
217
|
-
currency0: poolKeyStruct.currency0 ?? poolKeyStruct[0],
|
|
218
|
-
currency1: poolKeyStruct.currency1 ?? poolKeyStruct[1],
|
|
219
|
-
fee: Number(poolKeyStruct.fee ?? poolKeyStruct[2]),
|
|
220
|
-
tickSpacing: Number(poolKeyStruct.tickSpacing ?? poolKeyStruct[3]),
|
|
221
|
-
hooks: poolKeyStruct.hooks ?? poolKeyStruct[4]
|
|
222
|
-
};
|
|
223
|
-
}
|
|
224
|
-
parseStandardInitializerState(stateData) {
|
|
225
|
-
const state = stateData;
|
|
226
|
-
return {
|
|
227
|
-
numeraire: state.numeraire ?? state[0],
|
|
228
|
-
status: Number(state.status ?? state[1]),
|
|
229
|
-
poolKey: this.parsePoolKey(state.poolKey ?? state[2]),
|
|
230
|
-
farTick: Number(state.farTick ?? state[3])
|
|
231
|
-
};
|
|
232
|
-
}
|
|
233
|
-
parseDopplerHookInitializerState(stateData) {
|
|
234
|
-
const state = stateData;
|
|
235
|
-
return {
|
|
236
|
-
numeraire: state.numeraire ?? state[0],
|
|
237
|
-
status: Number(state.status ?? state[4]),
|
|
238
|
-
poolKey: this.parsePoolKey(state.poolKey ?? state[5]),
|
|
239
|
-
farTick: Number(state.farTick ?? state[6])
|
|
240
|
-
};
|
|
241
|
-
}
|
|
242
|
-
async resolveLockerAddress(migratorAddress, configuredLocker) {
|
|
243
|
-
if (configuredLocker) {
|
|
244
|
-
return configuredLocker;
|
|
245
|
-
}
|
|
246
|
-
const lockerAddress = await this.rpc.readContract({
|
|
247
|
-
address: migratorAddress,
|
|
248
|
-
abi: chunkMU56HCUI_js.v4MulticurveMigratorAbi,
|
|
249
|
-
functionName: "locker",
|
|
250
|
-
args: []
|
|
251
|
-
});
|
|
252
|
-
return lockerAddress;
|
|
253
|
-
}
|
|
254
|
-
async collectFeesFromContract(contractAddress, abi, poolId) {
|
|
255
|
-
const { request, result } = await this.rpc.simulateContract({
|
|
256
|
-
address: contractAddress,
|
|
257
|
-
abi,
|
|
258
|
-
functionName: "collectFees",
|
|
259
|
-
args: [poolId],
|
|
260
|
-
account: this.walletClient.account
|
|
261
|
-
});
|
|
262
|
-
const hash = await this.walletClient.writeContract(request);
|
|
263
|
-
await this.rpc.waitForTransactionReceipt({ hash, confirmations: 1 });
|
|
264
|
-
const [fees0, fees1] = result;
|
|
265
|
-
return {
|
|
266
|
-
fees0,
|
|
267
|
-
fees1,
|
|
268
|
-
transactionHash: hash
|
|
269
|
-
};
|
|
270
|
-
}
|
|
271
|
-
};
|
|
272
|
-
|
|
273
|
-
exports.MulticurvePool = MulticurvePool;
|
|
274
|
-
//# sourceMappingURL=chunk-CFXXUZJY.js.map
|
|
275
|
-
//# sourceMappingURL=chunk-CFXXUZJY.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/entities/auction/MulticurvePool.ts"],"names":["getAddresses","zeroAddress","dopplerHookInitializerAbi","v4MulticurveInitializerAbi","computePoolId","v4MulticurveMigratorAbi","streamableFeesLockerAbi","DYNAMIC_FEE_FLAG","decayMulticurveInitializerHookAbi"],"mappings":";;;;;;;;AAsDO,IAAM,iBAAN,MAAqB;AAAA,EAI1B,IAAY,GAAA,GAAoB;AAC9B,IAAA,OAAO,IAAA,CAAK,MAAA;AAAA,EACd;AAAA,EAEA,WAAA,CACE,MAAA,EACA,YAAA,EACA,YAAA,EACA;AACA,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AACd,IAAA,IAAA,CAAK,YAAA,GAAe,YAAA;AACpB,IAAA,IAAA,CAAK,YAAA,GAAe,YAAA;AAAA,EACtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,eAAA,GAA2B;AACzB,IAAA,OAAO,IAAA,CAAK,YAAA;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,QAAA,GAAyC;AAC7C,IAAA,MAAM,EAAE,KAAA,EAAM,GAAI,MAAM,KAAK,sBAAA,EAAuB;AACpD,IAAA,OAAO,KAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAc,sBAAA,GAA8D;AAC1E,IAAA,MAAM,OAAA,GAAU,MAAM,IAAA,CAAK,GAAA,CAAI,UAAA,EAAW;AAC1C,IAAA,MAAM,SAAA,GAAYA,8BAAa,OAA2B,CAAA;AAE1D,IAAA,MAAM,iBAAA,GAAoB;AAAA,MACxB;AAAA,QACE,SAAS,SAAA,CAAU,uBAAA;AAAA,QACnB,IAAA,EAAM;AAAA,OACR;AAAA,MACA;AAAA,QACE,SAAS,SAAA,CAAU,gCAAA;AAAA,QACnB,IAAA,EAAM;AAAA,OACR;AAAA,MACA;AAAA,QACE,SAAS,SAAA,CAAU,4BAAA;AAAA,QACnB,IAAA,EAAM;AAAA,OACR;AAAA,MACA;AAAA,QACE,SAAS,SAAA,CAAU,sBAAA;AAAA,QACnB,IAAA,EAAM;AAAA;AACR,KACF,CAAE,MAAA;AAAA,MACA,CACE,KAAA,KAEA,KAAA,CAAM,OAAA,KAAY,MAAA,IAAa,MAAM,OAAA,KAAYC;AAAA,KACrD;AAEA,IAAA,IAAI,iBAAA,CAAkB,WAAW,CAAA,EAAG;AAClC,MAAA,MAAM,IAAI,KAAA;AAAA,QACR;AAAA,OACF;AAAA,IACF;AAEA,IAAA,MAAM,oBAA+B,EAAC;AAEtC,IAAA,KAAA,MAAW,eAAe,iBAAA,EAAmB;AAC3C,MAAA,MAAM,EAAE,OAAA,EAAS,kBAAA,EAAoB,IAAA,EAAK,GAAI,WAAA;AAC9C,MAAA,iBAAA,CAAkB,KAAK,kBAAkB,CAAA;AAEzC,MAAA,MAAM,SAAA,GAAY,MAAM,IAAA,CAAK,GAAA,CAAI,YAAA,CAAa;AAAA,QAC5C,OAAA,EAAS,kBAAA;AAAA,QACT,GAAA,EACE,IAAA,KAAS,aAAA,GACLC,0CAAA,GACAC,2CAAA;AAAA,QACN,YAAA,EAAc,UAAA;AAAA,QACd,IAAA,EAAM,CAAC,IAAA,CAAK,YAAY;AAAA,OACzB,CAAA;AAED,MAAA,MAAM,WAAA,GACJ,SAAS,aAAA,GACL,IAAA,CAAK,iCAAiC,SAAS,CAAA,GAC/C,IAAA,CAAK,6BAAA,CAA8B,SAAS,CAAA;AAClD,MAAA,MAAM,EAAE,SAAA,EAAW,MAAA,EAAQ,OAAA,EAAS,SAAQ,GAAI,WAAA;AAIhD,MAAA,IAAI,OAAA,CAAQ,KAAA,KAAUF,gBAAA,IAAe,OAAA,CAAQ,gBAAgB,CAAA,EAAG;AAC9D,QAAA,MAAM,KAAA,GAA6B;AAAA,UACjC,OAAO,IAAA,CAAK,YAAA;AAAA,UACZ,SAAA;AAAA,UACA,KAAK,OAAA,CAAQ,GAAA;AAAA,UACb,aAAa,OAAA,CAAQ,WAAA;AAAA,UACrB,MAAA;AAAA,UACA,OAAA;AAAA,UACA,OAAA,EAAS,OAAO,OAAO;AAAA,SACzB;AACA,QAAA,OAAO,EAAE,oBAAoB,KAAA,EAAM;AAAA,MACrC;AAAA,IACF;AAGA,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,4BAA4B,IAAA,CAAK,YAAY,yBACpB,iBAAA,CAAkB,IAAA,CAAK,IAAI,CAAC,CAAA;AAAA,KACvD;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAM,WAAA,GAIH;AACD,IAAA,IAAI,CAAC,KAAK,YAAA,EAAc;AACtB,MAAA,MAAM,IAAI,MAAM,wCAAwC,CAAA;AAAA,IAC1D;AAEA,IAAA,MAAM,OAAA,GAAU,MAAM,IAAA,CAAK,GAAA,CAAI,UAAA,EAAW;AAC1C,IAAA,MAAM,SAAA,GAAYD,8BAAa,OAA2B,CAAA;AAG1D,IAAA,MAAM,EAAE,kBAAA,EAAoB,KAAA,EAAM,GAAI,MAAM,KAAK,sBAAA,EAAuB;AAExE,IAAA,IAAI,MAAM,MAAA,KAAA,CAAA,eAAsC;AAC9C,MAAA,MAAM,MAAA,GAASI,8BAAA,CAAc,KAAA,CAAM,OAAO,CAAA;AAC1C,MAAA,MAAM,cAAA,GACJ,kBAAA,KAAuB,SAAA,CAAU,sBAAA,GAC7BF,0CAAA,GACAC,2CAAA;AACN,MAAA,OAAO,IAAA,CAAK,uBAAA;AAAA,QACV,kBAAA;AAAA,QACA,cAAA;AAAA,QACA;AAAA,OACF;AAAA,IACF;AAEA,IAAA,IAAI,MAAM,MAAA,KAAA,CAAA,eAAsC;AAC9C,MAAA,IAAI,CAAC,UAAU,UAAA,EAAY;AACzB,QAAA,MAAM,IAAI,KAAA;AAAA,UACR;AAAA,SACF;AAAA,MACF;AAEA,MAAA,MAAM,SAAA,GAAY,MAAM,IAAA,CAAK,GAAA,CAAI,YAAA,CAAa;AAAA,QAC5C,SAAS,SAAA,CAAU,UAAA;AAAA,QACnB,GAAA,EAAKE,wCAAA;AAAA,QACL,YAAA,EAAc,cAAA;AAAA,QACd,MAAM,CAAC,KAAA,CAAM,QAAQ,SAAA,EAAW,KAAA,CAAM,QAAQ,SAAS;AAAA,OACxD,CAAA;AAED,MAAA,MAAM,kBAAkB,IAAA,CAAK,YAAA;AAAA,QAC1B,SAAA,CAAkB,OAAA,IAAY,SAAA,CAAkB,CAAC;AAAA,OACpD;AACA,MAAA,MAAM,MAAA,GAASD,+BAAc,eAAe,CAAA;AAE5C,MAAA,MAAM,gBACH,SAAA,CAAkB,aAAA,IAAkB,SAAA,CAAkB,CAAC,KAAK,EAAC;AAChE,MAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,aAAa,CAAA,IAAK,aAAA,CAAc,WAAW,CAAA,EAAG;AAC/D,QAAA,MAAM,IAAI,KAAA;AAAA,UACR;AAAA,SACF;AAAA,MACF;AAEA,MAAA,MAAM,aAAA,GAAgB,MAAM,IAAA,CAAK,oBAAA;AAAA,QAC/B,SAAA,CAAU,UAAA;AAAA,QACV,SAAA,CAAU;AAAA,OACZ;AAEA,MAAA,MAAM,UAAA,GAAa,MAAM,IAAA,CAAK,GAAA,CAAI,YAAA,CAAa;AAAA,QAC7C,OAAA,EAAS,aAAA;AAAA,QACT,GAAA,EAAKE,wCAAA;AAAA,QACL,YAAA,EAAc,SAAA;AAAA,QACd,IAAA,EAAM,CAAC,MAAM;AAAA,OACd,CAAA;AAED,MAAA,MAAM,SAAA,GAAY,MAAA;AAAA,QACf,UAAA,CAAmB,SAAA,IAAc,UAAA,CAAmB,CAAC,CAAA,IAAK;AAAA,OAC7D;AACA,MAAA,IAAI,cAAc,CAAA,EAAG;AACnB,QAAA,MAAM,IAAI,MAAM,4CAA4C,CAAA;AAAA,MAC9D;AAEA,MAAA,OAAO,IAAA,CAAK,uBAAA;AAAA,QACV,aAAA;AAAA,QACAA,wCAAA;AAAA,QACA;AAAA,OACF;AAAA,IACF;AAEA,IAAA,MAAM,IAAI,MAAM,2CAA2C,CAAA;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,mBAAA,GAAwC;AAC5C,IAAA,MAAM,KAAA,GAAQ,MAAM,IAAA,CAAK,QAAA,EAAS;AAClC,IAAA,OAAO,KAAA,CAAM,SAAA;AAAA,EACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,cAAA,GAA6D;AACjE,IAAA,MAAM,EAAE,KAAA,EAAM,GAAI,MAAM,KAAK,sBAAA,EAAuB;AACpD,IAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,GAAA,KAAQC,iCAAA,EAAkB;AAC1C,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,MAAM,MAAA,GAASH,8BAAA,CAAc,KAAA,CAAM,OAAO,CAAA;AAC1C,IAAA,IAAI;AACF,MAAA,MAAM,YAAA,GAAe,MAAM,IAAA,CAAK,GAAA,CAAI,YAAA,CAAa;AAAA,QAC/C,OAAA,EAAS,MAAM,OAAA,CAAQ,KAAA;AAAA,QACvB,GAAA,EAAKI,kDAAA;AAAA,QACL,YAAA,EAAc,kBAAA;AAAA,QACd,IAAA,EAAM,CAAC,MAAM;AAAA,OACd,CAAA;AAED,MAAA,MAAM,cAAA,GAAiB,YAAA;AACvB,MAAA,OAAO;AAAA,QACL,YAAA,EAAc,MAAA;AAAA,UACZ,cAAA,CAAe,YAAA,IAAgB,cAAA,CAAe,CAAC,CAAA,IAAK;AAAA,SACtD;AAAA,QACA,UAAU,MAAA,CAAO,cAAA,CAAe,YAAY,cAAA,CAAe,CAAC,KAAK,CAAC,CAAA;AAAA,QAClE,QAAQ,MAAA,CAAO,cAAA,CAAe,UAAU,cAAA,CAAe,CAAC,KAAK,CAAC,CAAA;AAAA,QAC9D,SAAS,MAAA,CAAO,cAAA,CAAe,WAAW,cAAA,CAAe,CAAC,KAAK,CAAC,CAAA;AAAA,QAChE,eAAA,EAAiB,MAAA;AAAA,UACf,cAAA,CAAe,eAAA,IAAmB,cAAA,CAAe,CAAC,CAAA,IAAK;AAAA;AACzD,OACF;AAAA,IACF,CAAA,CAAA,MAAQ;AACN,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,CAAA,2BAAA,EAA8B,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,yCAAA;AAAA,OACnD;AAAA,IACF;AAAA,EACF;AAAA,EAEQ,aAAa,UAAA,EAAgC;AACnD,IAAA,MAAM,aAAA,GAAgB,UAAA;AACtB,IAAA,OAAO;AAAA,MACL,SAAA,EAAY,aAAA,CAAc,SAAA,IAAa,aAAA,CAAc,CAAC,CAAA;AAAA,MACtD,SAAA,EAAY,aAAA,CAAc,SAAA,IAAa,aAAA,CAAc,CAAC,CAAA;AAAA,MACtD,KAAK,MAAA,CAAO,aAAA,CAAc,GAAA,IAAO,aAAA,CAAc,CAAC,CAAC,CAAA;AAAA,MACjD,aAAa,MAAA,CAAO,aAAA,CAAc,WAAA,IAAe,aAAA,CAAc,CAAC,CAAC,CAAA;AAAA,MACjE,KAAA,EAAQ,aAAA,CAAc,KAAA,IAAS,aAAA,CAAc,CAAC;AAAA,KAChD;AAAA,EACF;AAAA,EAEQ,8BAA8B,SAAA,EAA4C;AAChF,IAAA,MAAM,KAAA,GAAQ,SAAA;AACd,IAAA,OAAO;AAAA,MACL,SAAA,EAAY,KAAA,CAAM,SAAA,IAAa,KAAA,CAAM,CAAC,CAAA;AAAA,MACtC,QAAQ,MAAA,CAAO,KAAA,CAAM,MAAA,IAAU,KAAA,CAAM,CAAC,CAAC,CAAA;AAAA,MACvC,SAAS,IAAA,CAAK,YAAA,CAAa,MAAM,OAAA,IAAW,KAAA,CAAM,CAAC,CAAC,CAAA;AAAA,MACpD,SAAS,MAAA,CAAO,KAAA,CAAM,OAAA,IAAW,KAAA,CAAM,CAAC,CAAC;AAAA,KAC3C;AAAA,EACF;AAAA,EAEQ,iCACN,SAAA,EACwB;AACxB,IAAA,MAAM,KAAA,GAAQ,SAAA;AACd,IAAA,OAAO;AAAA,MACL,SAAA,EAAY,KAAA,CAAM,SAAA,IAAa,KAAA,CAAM,CAAC,CAAA;AAAA,MACtC,QAAQ,MAAA,CAAO,KAAA,CAAM,MAAA,IAAU,KAAA,CAAM,CAAC,CAAC,CAAA;AAAA,MACvC,SAAS,IAAA,CAAK,YAAA,CAAa,MAAM,OAAA,IAAW,KAAA,CAAM,CAAC,CAAC,CAAA;AAAA,MACpD,SAAS,MAAA,CAAO,KAAA,CAAM,OAAA,IAAW,KAAA,CAAM,CAAC,CAAC;AAAA,KAC3C;AAAA,EACF;AAAA,EAEA,MAAc,oBAAA,CACZ,eAAA,EACA,gBAAA,EACkB;AAClB,IAAA,IAAI,gBAAA,EAAkB;AACpB,MAAA,OAAO,gBAAA;AAAA,IACT;AAEA,IAAA,MAAM,aAAA,GAAgB,MAAM,IAAA,CAAK,GAAA,CAAI,YAAA,CAAa;AAAA,MAChD,OAAA,EAAS,eAAA;AAAA,MACT,GAAA,EAAKH,wCAAA;AAAA,MACL,YAAA,EAAc,QAAA;AAAA,MACd,MAAM;AAAC,KACR,CAAA;AAED,IAAA,OAAO,aAAA;AAAA,EACT;AAAA,EAEA,MAAc,uBAAA,CACZ,eAAA,EACA,GAAA,EAIA,MAAA,EACkE;AAClE,IAAA,MAAM,EAAE,OAAA,EAAS,MAAA,KAAW,MAAM,IAAA,CAAK,IAAI,gBAAA,CAAiB;AAAA,MAC1D,OAAA,EAAS,eAAA;AAAA,MACT,GAAA;AAAA,MACA,YAAA,EAAc,aAAA;AAAA,MACd,IAAA,EAAM,CAAC,MAAM,CAAA;AAAA,MACb,OAAA,EAAS,KAAK,YAAA,CAAc;AAAA,KAC7B,CAAA;AAED,IAAA,MAAM,IAAA,GAAO,MAAM,IAAA,CAAK,YAAA,CAAc,cAAc,OAAO,CAAA;AAE3D,IAAA,MAAM,KAAK,GAAA,CAAI,yBAAA,CAA0B,EAAE,IAAA,EAAM,aAAA,EAAe,GAAG,CAAA;AAEnE,IAAA,MAAM,CAAC,KAAA,EAAO,KAAK,CAAA,GAAI,MAAA;AAEvB,IAAA,OAAO;AAAA,MACL,KAAA;AAAA,MACA,KAAA;AAAA,MACA,eAAA,EAAiB;AAAA,KACnB;AAAA,EACF;AACF","file":"chunk-CFXXUZJY.js","sourcesContent":["import {\n type Address,\n type PublicClient,\n type WalletClient,\n type Hash,\n type Hex,\n zeroAddress,\n} from 'viem';\nimport {\n LockablePoolStatus,\n type MulticurveDecayFeeSchedule,\n type MulticurvePoolState,\n type SupportedPublicClient,\n type V4PoolKey,\n} from '../../types';\nimport {\n decayMulticurveInitializerHookAbi,\n dopplerHookInitializerAbi,\n v4MulticurveInitializerAbi,\n v4MulticurveMigratorAbi,\n streamableFeesLockerAbi,\n} from '../../abis';\nimport { getAddresses } from '../../addresses';\nimport type { SupportedChainId } from '../../addresses';\nimport { DYNAMIC_FEE_FLAG } from '../../constants';\nimport { computePoolId } from '../../utils/poolKey';\n\n/** Result from finding which initializer contains the pool */\ninterface InitializerDiscoveryResult {\n initializerAddress: Address;\n state: MulticurvePoolState;\n}\n\ninterface ParsedInitializerState {\n numeraire: Address;\n status: number;\n poolKey: V4PoolKey;\n farTick: number;\n}\n\n/**\n * MulticurvePool class for interacting with V4 multicurve pools\n *\n * Multicurve pools use the V4 multicurve initializer which supports:\n * - Multiple bonding curves with different price ranges\n * - Fee collection for configured beneficiaries\n * - No-migration lockable liquidity\n *\n * Note: V4 pools don't have their own contract addresses. The token address\n * is used as the lookup key to retrieve pool state from the initializer contract.\n *\n * Terminology: The contracts call the created token \"asset\" (paired against \"numeraire\", e.g., WETH).\n * We use \"tokenAddress\" in the SDK for consistency.\n */\nexport class MulticurvePool {\n private client: SupportedPublicClient;\n private walletClient?: WalletClient;\n private tokenAddress: Address;\n private get rpc(): PublicClient {\n return this.client as PublicClient;\n }\n\n constructor(\n client: SupportedPublicClient,\n walletClient: WalletClient | undefined,\n tokenAddress: Address,\n ) {\n this.client = client;\n this.walletClient = walletClient;\n this.tokenAddress = tokenAddress;\n }\n\n /**\n * Get the token address for this pool\n * This is also the lookup key used to retrieve pool state from the initializer\n * (Called \"asset\" in the contracts, but we use \"tokenAddress\" for SDK consistency)\n */\n getTokenAddress(): Address {\n return this.tokenAddress;\n }\n\n /**\n * Get current pool state from the multicurve initializer\n *\n * Automatically discovers which initializer (standard, scheduled, decay, or\n * doppler-hook) contains the pool.\n */\n async getState(): Promise<MulticurvePoolState> {\n const { state } = await this.findInitializerForPool();\n return state;\n }\n\n /**\n * Find which initializer contains this pool and return both the address and state.\n *\n * Tries v4MulticurveInitializer first (more common), then falls back to\n * v4ScheduledMulticurveInitializer, v4DecayMulticurveInitializer, and\n * dopplerHookInitializer if needed.\n */\n private async findInitializerForPool(): Promise<InitializerDiscoveryResult> {\n const chainId = await this.rpc.getChainId();\n const addresses = getAddresses(chainId as SupportedChainId);\n\n const initializersToTry = [\n {\n address: addresses.v4MulticurveInitializer,\n kind: 'standard' as const,\n },\n {\n address: addresses.v4ScheduledMulticurveInitializer,\n kind: 'standard' as const,\n },\n {\n address: addresses.v4DecayMulticurveInitializer,\n kind: 'standard' as const,\n },\n {\n address: addresses.dopplerHookInitializer,\n kind: 'dopplerHook' as const,\n },\n ].filter(\n (\n entry,\n ): entry is { address: Address; kind: 'standard' | 'dopplerHook' } =>\n entry.address !== undefined && entry.address !== zeroAddress,\n );\n\n if (initializersToTry.length === 0) {\n throw new Error(\n 'No V4 multicurve initializer addresses configured for this chain',\n );\n }\n\n const triedInitializers: Address[] = [];\n\n for (const initializer of initializersToTry) {\n const { address: initializerAddress, kind } = initializer;\n triedInitializers.push(initializerAddress);\n\n const stateData = await this.rpc.readContract({\n address: initializerAddress,\n abi:\n kind === 'dopplerHook'\n ? dopplerHookInitializerAbi\n : v4MulticurveInitializerAbi,\n functionName: 'getState',\n args: [this.tokenAddress],\n });\n\n const parsedState =\n kind === 'dopplerHook'\n ? this.parseDopplerHookInitializerState(stateData)\n : this.parseStandardInitializerState(stateData);\n const { numeraire, status, poolKey, farTick } = parsedState;\n\n // Check if pool exists in this initializer\n // A non-existent pool will have zeroed hooks and tickSpacing\n if (poolKey.hooks !== zeroAddress && poolKey.tickSpacing !== 0) {\n const state: MulticurvePoolState = {\n asset: this.tokenAddress,\n numeraire,\n fee: poolKey.fee,\n tickSpacing: poolKey.tickSpacing,\n status,\n poolKey,\n farTick: Number(farTick),\n };\n return { initializerAddress, state };\n }\n }\n\n // Pool not found in any initializer\n throw new Error(\n `Pool not found for token ${this.tokenAddress}. ` +\n `Tried initializers: ${triedInitializers.join(', ')}`,\n );\n }\n\n /**\n * Collect fees from the pool and distribute to beneficiaries\n *\n * This function can be called by any beneficiary to trigger fee collection\n * and distribution. Fees are automatically distributed according to the\n * configured beneficiary shares.\n *\n * @returns Object containing the amounts of fees0 and fees1 distributed, and the transaction hash\n */\n async collectFees(): Promise<{\n fees0: bigint;\n fees1: bigint;\n transactionHash: Hash;\n }> {\n if (!this.walletClient) {\n throw new Error('Wallet client required to collect fees');\n }\n\n const chainId = await this.rpc.getChainId();\n const addresses = getAddresses(chainId as SupportedChainId);\n\n // Discover which initializer has this pool and get state in one call\n const { initializerAddress, state } = await this.findInitializerForPool();\n\n if (state.status === LockablePoolStatus.Locked) {\n const poolId = computePoolId(state.poolKey);\n const collectFeesAbi =\n initializerAddress === addresses.dopplerHookInitializer\n ? dopplerHookInitializerAbi\n : v4MulticurveInitializerAbi;\n return this.collectFeesFromContract(\n initializerAddress,\n collectFeesAbi,\n poolId,\n );\n }\n\n if (state.status === LockablePoolStatus.Exited) {\n if (!addresses.v4Migrator) {\n throw new Error(\n 'V4 multicurve migrator address not configured for this chain',\n );\n }\n\n const assetData = await this.rpc.readContract({\n address: addresses.v4Migrator,\n abi: v4MulticurveMigratorAbi,\n functionName: 'getAssetData',\n args: [state.poolKey.currency0, state.poolKey.currency1],\n });\n\n const migratorPoolKey = this.parsePoolKey(\n (assetData as any).poolKey ?? (assetData as any)[1],\n );\n const poolId = computePoolId(migratorPoolKey);\n\n const beneficiaries =\n (assetData as any).beneficiaries ?? (assetData as any)[4] ?? [];\n if (!Array.isArray(beneficiaries) || beneficiaries.length === 0) {\n throw new Error(\n 'Migrated multicurve pool has no beneficiaries configured',\n );\n }\n\n const lockerAddress = await this.resolveLockerAddress(\n addresses.v4Migrator,\n addresses.streamableFeesLocker,\n );\n\n const streamData = await this.rpc.readContract({\n address: lockerAddress,\n abi: streamableFeesLockerAbi,\n functionName: 'streams',\n args: [poolId],\n });\n\n const startDate = Number(\n (streamData as any).startDate ?? (streamData as any)[2] ?? 0,\n );\n if (startDate === 0) {\n throw new Error('Migrated multicurve stream not initialized');\n }\n\n return this.collectFeesFromContract(\n lockerAddress,\n streamableFeesLockerAbi,\n poolId,\n );\n }\n\n throw new Error('Multicurve pool is not locked or migrated');\n }\n\n /**\n * Get the numeraire address for this pool\n */\n async getNumeraireAddress(): Promise<Address> {\n const state = await this.getState();\n return state.numeraire;\n }\n\n /**\n * Get the decay fee schedule for dynamic-fee multicurve pools.\n *\n * Returns `null` when the pool is not using dynamic fees.\n */\n async getFeeSchedule(): Promise<MulticurveDecayFeeSchedule | null> {\n const { state } = await this.findInitializerForPool();\n if (state.poolKey.fee !== DYNAMIC_FEE_FLAG) {\n return null;\n }\n\n const poolId = computePoolId(state.poolKey);\n try {\n const scheduleData = await this.rpc.readContract({\n address: state.poolKey.hooks,\n abi: decayMulticurveInitializerHookAbi,\n functionName: 'getFeeScheduleOf',\n args: [poolId],\n });\n\n const scheduleStruct = scheduleData as any;\n return {\n startingTime: Number(\n scheduleStruct.startingTime ?? scheduleStruct[0] ?? 0,\n ),\n startFee: Number(scheduleStruct.startFee ?? scheduleStruct[1] ?? 0),\n endFee: Number(scheduleStruct.endFee ?? scheduleStruct[2] ?? 0),\n lastFee: Number(scheduleStruct.lastFee ?? scheduleStruct[3] ?? 0),\n durationSeconds: Number(\n scheduleStruct.durationSeconds ?? scheduleStruct[4] ?? 0,\n ),\n };\n } catch {\n throw new Error(\n `Dynamic multicurve hook at ${state.poolKey.hooks} does not expose getFeeScheduleOf(poolId)`,\n );\n }\n }\n\n private parsePoolKey(rawPoolKey: unknown): V4PoolKey {\n const poolKeyStruct = rawPoolKey as any;\n return {\n currency0: (poolKeyStruct.currency0 ?? poolKeyStruct[0]) as Address,\n currency1: (poolKeyStruct.currency1 ?? poolKeyStruct[1]) as Address,\n fee: Number(poolKeyStruct.fee ?? poolKeyStruct[2]),\n tickSpacing: Number(poolKeyStruct.tickSpacing ?? poolKeyStruct[3]),\n hooks: (poolKeyStruct.hooks ?? poolKeyStruct[4]) as Address,\n };\n }\n\n private parseStandardInitializerState(stateData: unknown): ParsedInitializerState {\n const state = stateData as any;\n return {\n numeraire: (state.numeraire ?? state[0]) as Address,\n status: Number(state.status ?? state[1]),\n poolKey: this.parsePoolKey(state.poolKey ?? state[2]),\n farTick: Number(state.farTick ?? state[3]),\n };\n }\n\n private parseDopplerHookInitializerState(\n stateData: unknown,\n ): ParsedInitializerState {\n const state = stateData as any;\n return {\n numeraire: (state.numeraire ?? state[0]) as Address,\n status: Number(state.status ?? state[4]),\n poolKey: this.parsePoolKey(state.poolKey ?? state[5]),\n farTick: Number(state.farTick ?? state[6]),\n };\n }\n\n private async resolveLockerAddress(\n migratorAddress: Address,\n configuredLocker?: Address,\n ): Promise<Address> {\n if (configuredLocker) {\n return configuredLocker;\n }\n\n const lockerAddress = await this.rpc.readContract({\n address: migratorAddress,\n abi: v4MulticurveMigratorAbi,\n functionName: 'locker',\n args: [],\n });\n\n return lockerAddress as Address;\n }\n\n private async collectFeesFromContract(\n contractAddress: Address,\n abi:\n | typeof dopplerHookInitializerAbi\n | typeof v4MulticurveInitializerAbi\n | typeof streamableFeesLockerAbi,\n poolId: Hex,\n ): Promise<{ fees0: bigint; fees1: bigint; transactionHash: Hash }> {\n const { request, result } = await this.rpc.simulateContract({\n address: contractAddress,\n abi,\n functionName: 'collectFees',\n args: [poolId],\n account: this.walletClient!.account,\n });\n\n const hash = await this.walletClient!.writeContract(request);\n\n await this.rpc.waitForTransactionReceipt({ hash, confirmations: 1 });\n\n const [fees0, fees1] = result as readonly [bigint, bigint];\n\n return {\n fees0,\n fees1,\n transactionHash: hash,\n };\n }\n}\n"]}
|
package/dist/chunk-CWTGQAOG.mjs
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { getNearestUsableTick, priceToTick, tickToPrice } from './chunk-25GEBO3B.mjs';
|
|
2
|
-
import { parseEther, formatEther } from 'viem';
|
|
3
|
-
|
|
4
|
-
function calculateTickRange(minPrice, maxPrice, tickSpacing, wethDecimals = 18, tokenDecimals = 18) {
|
|
5
|
-
const startTick = getNearestUsableTick(
|
|
6
|
-
priceToTick(1 / maxPrice, tokenDecimals, wethDecimals),
|
|
7
|
-
tickSpacing
|
|
8
|
-
);
|
|
9
|
-
const endTick = getNearestUsableTick(
|
|
10
|
-
priceToTick(1 / minPrice, tokenDecimals, wethDecimals),
|
|
11
|
-
tickSpacing
|
|
12
|
-
);
|
|
13
|
-
return { startTick, endTick };
|
|
14
|
-
}
|
|
15
|
-
function calculateTokensToSell(targetRaiseETH, avgPricePerToken) {
|
|
16
|
-
const tokensToSell = targetRaiseETH / avgPricePerToken;
|
|
17
|
-
return parseEther(tokensToSell.toFixed(18));
|
|
18
|
-
}
|
|
19
|
-
function calculateGamma(startTick, endTick, duration, epochLength) {
|
|
20
|
-
const totalEpochs = duration / epochLength;
|
|
21
|
-
const tickRange = Math.abs(endTick - startTick);
|
|
22
|
-
return Math.floor(tickRange / totalEpochs);
|
|
23
|
-
}
|
|
24
|
-
function estimatePriceAtEpoch(startTick, gamma, currentEpoch, tokenDecimals = 18, wethDecimals = 18, isIncreasing = true) {
|
|
25
|
-
const direction = isIncreasing ? 1 : -1;
|
|
26
|
-
const currentTick = startTick + currentEpoch * gamma * direction;
|
|
27
|
-
const wethPerToken = tickToPrice(
|
|
28
|
-
currentTick,
|
|
29
|
-
tokenDecimals,
|
|
30
|
-
wethDecimals,
|
|
31
|
-
false
|
|
32
|
-
);
|
|
33
|
-
return 1 / wethPerToken;
|
|
34
|
-
}
|
|
35
|
-
function formatTickAsPrice(tick, tokenSymbol, numeraireSymbol, tokenDecimals = 18, numeraireDecimals = 18) {
|
|
36
|
-
const price = tickToPrice(tick, tokenDecimals, numeraireDecimals, false);
|
|
37
|
-
const ethPerToken = 1 / price;
|
|
38
|
-
if (ethPerToken < 1e-4) {
|
|
39
|
-
return `${ethPerToken.toExponential(2)} ${numeraireSymbol} per ${tokenSymbol}`;
|
|
40
|
-
} else if (ethPerToken < 1) {
|
|
41
|
-
return `${ethPerToken.toFixed(6)} ${numeraireSymbol} per ${tokenSymbol}`;
|
|
42
|
-
} else {
|
|
43
|
-
return `${ethPerToken.toFixed(2)} ${numeraireSymbol} per ${tokenSymbol}`;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
function calculateMarketCap(totalSupply, pricePerToken, ethPrice) {
|
|
47
|
-
const totalSupplyNumber = Number(formatEther(totalSupply));
|
|
48
|
-
const marketCapETH = totalSupplyNumber * pricePerToken;
|
|
49
|
-
const result = {
|
|
50
|
-
eth: `${marketCapETH.toFixed(2)} ETH`
|
|
51
|
-
};
|
|
52
|
-
if (ethPrice) {
|
|
53
|
-
const marketCapUSD = marketCapETH * ethPrice;
|
|
54
|
-
result.usd = `$${marketCapUSD.toLocaleString("en-US", { maximumFractionDigits: 0 })}`;
|
|
55
|
-
}
|
|
56
|
-
return result;
|
|
57
|
-
}
|
|
58
|
-
function calculateFDV(totalSupply, pricePerToken, ethPrice) {
|
|
59
|
-
return calculateMarketCap(totalSupply, pricePerToken, ethPrice);
|
|
60
|
-
}
|
|
61
|
-
function estimateSlippage(amountIn, liquidity, currentTick, fee) {
|
|
62
|
-
const feeMultiplier = 1 - fee / 1e6;
|
|
63
|
-
const liquidityNumber = Number(liquidity) / 1e18;
|
|
64
|
-
const amountNumber = Number(amountIn) / 1e18;
|
|
65
|
-
const impactRatio = amountNumber / liquidityNumber;
|
|
66
|
-
const slippage = impactRatio * 100 * feeMultiplier;
|
|
67
|
-
return Math.min(slippage, 100);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
export { calculateFDV, calculateGamma, calculateMarketCap, calculateTickRange, calculateTokensToSell, estimatePriceAtEpoch, estimateSlippage, formatTickAsPrice };
|
|
71
|
-
//# sourceMappingURL=chunk-CWTGQAOG.mjs.map
|
|
72
|
-
//# sourceMappingURL=chunk-CWTGQAOG.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/priceHelpers.ts"],"names":[],"mappings":";;;AAgBO,SAAS,mBACd,QAAA,EACA,QAAA,EACA,aACA,YAAA,GAAe,EAAA,EACf,gBAAgB,EAAA,EACwB;AAGxC,EAAA,MAAM,SAAA,GAAY,oBAAA;AAAA,IAChB,WAAA,CAAY,CAAA,GAAI,QAAA,EAAU,aAAA,EAAe,YAAY,CAAA;AAAA,IACrD;AAAA,GACF;AAEA,EAAA,MAAM,OAAA,GAAU,oBAAA;AAAA,IACd,WAAA,CAAY,CAAA,GAAI,QAAA,EAAU,aAAA,EAAe,YAAY,CAAA;AAAA,IACrD;AAAA,GACF;AAEA,EAAA,OAAO,EAAE,WAAW,OAAA,EAAQ;AAC9B;AAQO,SAAS,qBAAA,CACd,gBACA,gBAAA,EACQ;AACR,EAAA,MAAM,eAAe,cAAA,GAAiB,gBAAA;AACtC,EAAA,OAAO,UAAA,CAAW,YAAA,CAAa,OAAA,CAAQ,EAAE,CAAC,CAAA;AAC5C;AAUO,SAAS,cAAA,CACd,SAAA,EACA,OAAA,EACA,QAAA,EACA,WAAA,EACQ;AACR,EAAA,MAAM,cAAc,QAAA,GAAW,WAAA;AAC/B,EAAA,MAAM,SAAA,GAAY,IAAA,CAAK,GAAA,CAAI,OAAA,GAAU,SAAS,CAAA;AAC9C,EAAA,OAAO,IAAA,CAAK,KAAA,CAAM,SAAA,GAAY,WAAW,CAAA;AAC3C;AAYO,SAAS,oBAAA,CACd,WACA,KAAA,EACA,YAAA,EACA,gBAAgB,EAAA,EAChB,YAAA,GAAe,EAAA,EACf,YAAA,GAAe,IAAA,EACP;AACR,EAAA,MAAM,SAAA,GAAY,eAAe,CAAA,GAAI,EAAA;AACrC,EAAA,MAAM,WAAA,GAAc,SAAA,GAAY,YAAA,GAAe,KAAA,GAAQ,SAAA;AAGvD,EAAA,MAAM,YAAA,GAAe,WAAA;AAAA,IACnB,WAAA;AAAA,IACA,aAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,GACF;AAGA,EAAA,OAAO,CAAA,GAAI,YAAA;AACb;AAWO,SAAS,kBACd,IAAA,EACA,WAAA,EACA,iBACA,aAAA,GAAgB,EAAA,EAChB,oBAAoB,EAAA,EACZ;AACR,EAAA,MAAM,KAAA,GAAQ,WAAA,CAAY,IAAA,EAAM,aAAA,EAAe,mBAAmB,KAAK,CAAA;AACvE,EAAA,MAAM,cAAc,CAAA,GAAI,KAAA;AAExB,EAAA,IAAI,cAAc,IAAA,EAAQ;AACxB,IAAA,OAAO,CAAA,EAAG,YAAY,aAAA,CAAc,CAAC,CAAC,CAAA,CAAA,EAAI,eAAe,QAAQ,WAAW,CAAA,CAAA;AAAA,EAC9E,CAAA,MAAA,IAAW,cAAc,CAAA,EAAG;AAC1B,IAAA,OAAO,CAAA,EAAG,YAAY,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA,EAAI,eAAe,QAAQ,WAAW,CAAA,CAAA;AAAA,EACxE,CAAA,MAAO;AACL,IAAA,OAAO,CAAA,EAAG,YAAY,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA,EAAI,eAAe,QAAQ,WAAW,CAAA,CAAA;AAAA,EACxE;AACF;AASO,SAAS,kBAAA,CACd,WAAA,EACA,aAAA,EACA,QAAA,EAC+B;AAC/B,EAAA,MAAM,iBAAA,GAAoB,MAAA,CAAO,WAAA,CAAY,WAAW,CAAC,CAAA;AACzD,EAAA,MAAM,eAAe,iBAAA,GAAoB,aAAA;AAEzC,EAAA,MAAM,MAAA,GAAwC;AAAA,IAC5C,GAAA,EAAK,CAAA,EAAG,YAAA,CAAa,OAAA,CAAQ,CAAC,CAAC,CAAA,IAAA;AAAA,GACjC;AAEA,EAAA,IAAI,QAAA,EAAU;AACZ,IAAA,MAAM,eAAe,YAAA,GAAe,QAAA;AACpC,IAAA,MAAA,CAAO,GAAA,GAAM,IAAI,YAAA,CAAa,cAAA,CAAe,SAAS,EAAE,qBAAA,EAAuB,CAAA,EAAG,CAAC,CAAA,CAAA;AAAA,EACrF;AAEA,EAAA,OAAO,MAAA;AACT;AASO,SAAS,YAAA,CACd,WAAA,EACA,aAAA,EACA,QAAA,EAC+B;AAE/B,EAAA,OAAO,kBAAA,CAAmB,WAAA,EAAa,aAAA,EAAe,QAAQ,CAAA;AAChE;AAUO,SAAS,gBAAA,CACd,QAAA,EACA,SAAA,EACA,WAAA,EACA,GAAA,EACQ;AAGR,EAAA,MAAM,aAAA,GAAgB,IAAI,GAAA,GAAM,GAAA;AAChC,EAAA,MAAM,eAAA,GAAkB,MAAA,CAAO,SAAS,CAAA,GAAI,IAAA;AAC5C,EAAA,MAAM,YAAA,GAAe,MAAA,CAAO,QAAQ,CAAA,GAAI,IAAA;AAGxC,EAAA,MAAM,cAAc,YAAA,GAAe,eAAA;AACnC,EAAA,MAAM,QAAA,GAAW,cAAc,GAAA,GAAM,aAAA;AAErC,EAAA,OAAO,IAAA,CAAK,GAAA,CAAI,QAAA,EAAU,GAAG,CAAA;AAC/B","file":"chunk-CWTGQAOG.mjs","sourcesContent":["/**\n * Price helper utilities for common token launch scenarios\n */\n\nimport { parseEther, formatEther } from 'viem';\nimport { priceToTick, tickToPrice, getNearestUsableTick } from './tickMath';\n\n/**\n * Calculate the tick range for a desired price range\n * @param minPrice Minimum price (ETH per token)\n * @param maxPrice Maximum price (ETH per token)\n * @param tickSpacing The tick spacing of the pool\n * @param wethDecimals Decimals of WETH (usually 18)\n * @param tokenDecimals Decimals of the token (usually 18)\n * @returns Object with startTick and endTick\n */\nexport function calculateTickRange(\n minPrice: number,\n maxPrice: number,\n tickSpacing: number,\n wethDecimals = 18,\n tokenDecimals = 18,\n): { startTick: number; endTick: number } {\n // For token/WETH pools, we need to invert the price\n // because Uniswap orders tokens by address\n const startTick = getNearestUsableTick(\n priceToTick(1 / maxPrice, tokenDecimals, wethDecimals),\n tickSpacing,\n );\n\n const endTick = getNearestUsableTick(\n priceToTick(1 / minPrice, tokenDecimals, wethDecimals),\n tickSpacing,\n );\n\n return { startTick, endTick };\n}\n\n/**\n * Calculate the number of tokens to sell based on desired raise\n * @param targetRaiseETH Target amount to raise in ETH\n * @param avgPricePerToken Average expected price per token in ETH\n * @returns Number of tokens to sell (as bigint)\n */\nexport function calculateTokensToSell(\n targetRaiseETH: number,\n avgPricePerToken: number,\n): bigint {\n const tokensToSell = targetRaiseETH / avgPricePerToken;\n return parseEther(tokensToSell.toFixed(18));\n}\n\n/**\n * Calculate gamma for dynamic auctions\n * @param startTick Starting tick\n * @param endTick Ending tick\n * @param duration Duration in seconds\n * @param epochLength Epoch length in seconds\n * @returns Gamma value\n */\nexport function calculateGamma(\n startTick: number,\n endTick: number,\n duration: number,\n epochLength: number,\n): number {\n const totalEpochs = duration / epochLength;\n const tickRange = Math.abs(endTick - startTick);\n return Math.floor(tickRange / totalEpochs);\n}\n\n/**\n * Estimate the price at a specific epoch in a dynamic auction\n * @param startTick Starting tick\n * @param gamma Tick movement per epoch\n * @param currentEpoch Current epoch number\n * @param tokenDecimals Token decimals\n * @param wethDecimals WETH decimals\n * @param isIncreasing Whether price increases (true) or decreases (false) over time\n * @returns Estimated price in ETH per token\n */\nexport function estimatePriceAtEpoch(\n startTick: number,\n gamma: number,\n currentEpoch: number,\n tokenDecimals = 18,\n wethDecimals = 18,\n isIncreasing = true,\n): number {\n const direction = isIncreasing ? 1 : -1;\n const currentTick = startTick + currentEpoch * gamma * direction;\n\n // Get price from tick (returns WETH/token)\n const wethPerToken = tickToPrice(\n currentTick,\n tokenDecimals,\n wethDecimals,\n false,\n );\n\n // Invert to get ETH per token\n return 1 / wethPerToken;\n}\n\n/**\n * Format a tick value to a human-readable price string\n * @param tick The tick value\n * @param tokenSymbol Symbol of the token\n * @param numeraireSymbol Symbol of the numeraire (e.g., \"ETH\")\n * @param tokenDecimals Token decimals\n * @param numeraireDecimals Numeraire decimals\n * @returns Formatted price string\n */\nexport function formatTickAsPrice(\n tick: number,\n tokenSymbol: string,\n numeraireSymbol: string,\n tokenDecimals = 18,\n numeraireDecimals = 18,\n): string {\n const price = tickToPrice(tick, tokenDecimals, numeraireDecimals, false);\n const ethPerToken = 1 / price;\n\n if (ethPerToken < 0.0001) {\n return `${ethPerToken.toExponential(2)} ${numeraireSymbol} per ${tokenSymbol}`;\n } else if (ethPerToken < 1) {\n return `${ethPerToken.toFixed(6)} ${numeraireSymbol} per ${tokenSymbol}`;\n } else {\n return `${ethPerToken.toFixed(2)} ${numeraireSymbol} per ${tokenSymbol}`;\n }\n}\n\n/**\n * Calculate the market cap at a given price\n * @param totalSupply Total token supply (as bigint)\n * @param pricePerToken Price per token in ETH\n * @param ethPrice Current ETH price in USD (optional)\n * @returns Market cap object with ETH and USD values\n */\nexport function calculateMarketCap(\n totalSupply: bigint,\n pricePerToken: number,\n ethPrice?: number,\n): { eth: string; usd?: string } {\n const totalSupplyNumber = Number(formatEther(totalSupply));\n const marketCapETH = totalSupplyNumber * pricePerToken;\n\n const result: { eth: string; usd?: string } = {\n eth: `${marketCapETH.toFixed(2)} ETH`,\n };\n\n if (ethPrice) {\n const marketCapUSD = marketCapETH * ethPrice;\n result.usd = `$${marketCapUSD.toLocaleString('en-US', { maximumFractionDigits: 0 })}`;\n }\n\n return result;\n}\n\n/**\n * Calculate fully diluted valuation (FDV)\n * @param totalSupply Total token supply including vested tokens (as bigint)\n * @param pricePerToken Price per token in ETH\n * @param ethPrice Current ETH price in USD (optional)\n * @returns FDV object with ETH and USD values\n */\nexport function calculateFDV(\n totalSupply: bigint,\n pricePerToken: number,\n ethPrice?: number,\n): { eth: string; usd?: string } {\n // FDV is the same calculation as market cap but includes all tokens\n return calculateMarketCap(totalSupply, pricePerToken, ethPrice);\n}\n\n/**\n * Estimate slippage for a trade in a concentrated liquidity pool\n * @param amountIn Amount to trade\n * @param liquidity Current liquidity\n * @param currentTick Current tick\n * @param fee Pool fee (e.g., 3000 for 0.3%)\n * @returns Estimated slippage percentage\n */\nexport function estimateSlippage(\n amountIn: bigint,\n liquidity: bigint,\n currentTick: number,\n fee: number,\n): number {\n // Simplified slippage estimation\n // In practice, you'd need to simulate the swap through tick ranges\n const feeMultiplier = 1 - fee / 1000000;\n const liquidityNumber = Number(liquidity) / 1e18;\n const amountNumber = Number(amountIn) / 1e18;\n\n // Basic approximation: slippage increases with trade size relative to liquidity\n const impactRatio = amountNumber / liquidityNumber;\n const slippage = impactRatio * 100 * feeMultiplier;\n\n return Math.min(slippage, 100); // Cap at 100%\n}\n"]}
|
package/dist/chunk-DCWF3EMP.js
DELETED
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunkXSJTASPK_js = require('./chunk-XSJTASPK.js');
|
|
4
|
-
var chunkMU56HCUI_js = require('./chunk-MU56HCUI.js');
|
|
5
|
-
|
|
6
|
-
// src/entities/auction/RehypeDopplerHookMigrator.ts
|
|
7
|
-
var RehypeDopplerHookMigrator = class {
|
|
8
|
-
get rpc() {
|
|
9
|
-
return this.client;
|
|
10
|
-
}
|
|
11
|
-
constructor(client, walletClient, hookAddress) {
|
|
12
|
-
this.client = client;
|
|
13
|
-
this.walletClient = walletClient;
|
|
14
|
-
this.hookAddress = hookAddress;
|
|
15
|
-
}
|
|
16
|
-
getAddress() {
|
|
17
|
-
return this.hookAddress;
|
|
18
|
-
}
|
|
19
|
-
async collectFees(asset) {
|
|
20
|
-
if (!this.walletClient) {
|
|
21
|
-
throw new Error("Wallet client required to collect rehype fees");
|
|
22
|
-
}
|
|
23
|
-
const { request, result } = await this.rpc.simulateContract({
|
|
24
|
-
address: this.hookAddress,
|
|
25
|
-
abi: chunkMU56HCUI_js.rehypeDopplerHookMigratorAbi,
|
|
26
|
-
functionName: "collectFees",
|
|
27
|
-
args: [asset],
|
|
28
|
-
account: this.walletClient.account
|
|
29
|
-
});
|
|
30
|
-
const hash = await this.walletClient.writeContract(request);
|
|
31
|
-
await this.rpc.waitForTransactionReceipt({ hash, confirmations: 1 });
|
|
32
|
-
const decoded = chunkXSJTASPK_js.decodeBalanceDelta(result);
|
|
33
|
-
return {
|
|
34
|
-
amount0: decoded.amount0,
|
|
35
|
-
amount1: decoded.amount1,
|
|
36
|
-
transactionHash: hash
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
async claimAirlockOwnerFees(asset) {
|
|
40
|
-
if (!this.walletClient) {
|
|
41
|
-
throw new Error("Wallet client required to claim rehype owner fees");
|
|
42
|
-
}
|
|
43
|
-
const { request, result } = await this.rpc.simulateContract({
|
|
44
|
-
address: this.hookAddress,
|
|
45
|
-
abi: chunkMU56HCUI_js.rehypeDopplerHookMigratorAbi,
|
|
46
|
-
functionName: "claimAirlockOwnerFees",
|
|
47
|
-
args: [asset],
|
|
48
|
-
account: this.walletClient.account
|
|
49
|
-
});
|
|
50
|
-
const hash = await this.walletClient.writeContract(request);
|
|
51
|
-
await this.rpc.waitForTransactionReceipt({ hash, confirmations: 1 });
|
|
52
|
-
const [fees0, fees1] = result;
|
|
53
|
-
return { fees0, fees1, transactionHash: hash };
|
|
54
|
-
}
|
|
55
|
-
async setFeeDistribution(poolId, feeDistributionInfo) {
|
|
56
|
-
if (!this.walletClient) {
|
|
57
|
-
throw new Error("Wallet client required to set rehype fee distribution");
|
|
58
|
-
}
|
|
59
|
-
const { request } = await this.rpc.simulateContract({
|
|
60
|
-
address: this.hookAddress,
|
|
61
|
-
abi: chunkMU56HCUI_js.rehypeDopplerHookMigratorAbi,
|
|
62
|
-
functionName: "setFeeDistribution",
|
|
63
|
-
args: [
|
|
64
|
-
poolId,
|
|
65
|
-
feeDistributionInfo.assetFeesToAssetBuybackWad,
|
|
66
|
-
feeDistributionInfo.assetFeesToNumeraireBuybackWad,
|
|
67
|
-
feeDistributionInfo.assetFeesToBeneficiaryWad,
|
|
68
|
-
feeDistributionInfo.assetFeesToLpWad,
|
|
69
|
-
feeDistributionInfo.numeraireFeesToAssetBuybackWad,
|
|
70
|
-
feeDistributionInfo.numeraireFeesToNumeraireBuybackWad,
|
|
71
|
-
feeDistributionInfo.numeraireFeesToBeneficiaryWad,
|
|
72
|
-
feeDistributionInfo.numeraireFeesToLpWad
|
|
73
|
-
],
|
|
74
|
-
account: this.walletClient.account
|
|
75
|
-
});
|
|
76
|
-
const hash = await this.walletClient.writeContract(request);
|
|
77
|
-
await this.rpc.waitForTransactionReceipt({ hash, confirmations: 1 });
|
|
78
|
-
return hash;
|
|
79
|
-
}
|
|
80
|
-
async getFeeDistributionInfo(poolId) {
|
|
81
|
-
const result = await this.rpc.readContract({
|
|
82
|
-
address: this.hookAddress,
|
|
83
|
-
abi: chunkMU56HCUI_js.rehypeDopplerHookMigratorAbi,
|
|
84
|
-
functionName: "getFeeDistributionInfo",
|
|
85
|
-
args: [poolId]
|
|
86
|
-
});
|
|
87
|
-
const info = result;
|
|
88
|
-
return {
|
|
89
|
-
assetFeesToAssetBuybackWad: BigInt(
|
|
90
|
-
info.assetFeesToAssetBuybackWad ?? info[0]
|
|
91
|
-
),
|
|
92
|
-
assetFeesToNumeraireBuybackWad: BigInt(
|
|
93
|
-
info.assetFeesToNumeraireBuybackWad ?? info[1]
|
|
94
|
-
),
|
|
95
|
-
assetFeesToBeneficiaryWad: BigInt(
|
|
96
|
-
info.assetFeesToBeneficiaryWad ?? info[2]
|
|
97
|
-
),
|
|
98
|
-
assetFeesToLpWad: BigInt(info.assetFeesToLpWad ?? info[3]),
|
|
99
|
-
numeraireFeesToAssetBuybackWad: BigInt(
|
|
100
|
-
info.numeraireFeesToAssetBuybackWad ?? info[4]
|
|
101
|
-
),
|
|
102
|
-
numeraireFeesToNumeraireBuybackWad: BigInt(
|
|
103
|
-
info.numeraireFeesToNumeraireBuybackWad ?? info[5]
|
|
104
|
-
),
|
|
105
|
-
numeraireFeesToBeneficiaryWad: BigInt(
|
|
106
|
-
info.numeraireFeesToBeneficiaryWad ?? info[6]
|
|
107
|
-
),
|
|
108
|
-
numeraireFeesToLpWad: BigInt(info.numeraireFeesToLpWad ?? info[7])
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
async getFeeRoutingMode(poolId) {
|
|
112
|
-
const mode = await this.rpc.readContract({
|
|
113
|
-
address: this.hookAddress,
|
|
114
|
-
abi: chunkMU56HCUI_js.rehypeDopplerHookMigratorAbi,
|
|
115
|
-
functionName: "getFeeRoutingMode",
|
|
116
|
-
args: [poolId]
|
|
117
|
-
});
|
|
118
|
-
return Number(mode);
|
|
119
|
-
}
|
|
120
|
-
async getHookFees(poolId) {
|
|
121
|
-
const result = await this.rpc.readContract({
|
|
122
|
-
address: this.hookAddress,
|
|
123
|
-
abi: chunkMU56HCUI_js.rehypeDopplerHookMigratorAbi,
|
|
124
|
-
functionName: "getHookFees",
|
|
125
|
-
args: [poolId]
|
|
126
|
-
});
|
|
127
|
-
const fees = result;
|
|
128
|
-
return {
|
|
129
|
-
fees0: BigInt(fees.fees0 ?? fees[0] ?? 0),
|
|
130
|
-
fees1: BigInt(fees.fees1 ?? fees[1] ?? 0),
|
|
131
|
-
beneficiaryFees0: BigInt(fees.beneficiaryFees0 ?? fees[2] ?? 0),
|
|
132
|
-
beneficiaryFees1: BigInt(fees.beneficiaryFees1 ?? fees[3] ?? 0),
|
|
133
|
-
airlockOwnerFees0: BigInt(fees.airlockOwnerFees0 ?? fees[4] ?? 0),
|
|
134
|
-
airlockOwnerFees1: BigInt(fees.airlockOwnerFees1 ?? fees[5] ?? 0),
|
|
135
|
-
customFee: Number(fees.customFee ?? fees[6] ?? 0)
|
|
136
|
-
};
|
|
137
|
-
}
|
|
138
|
-
async getPoolInfo(poolId) {
|
|
139
|
-
const result = await this.rpc.readContract({
|
|
140
|
-
address: this.hookAddress,
|
|
141
|
-
abi: chunkMU56HCUI_js.rehypeDopplerHookMigratorAbi,
|
|
142
|
-
functionName: "getPoolInfo",
|
|
143
|
-
args: [poolId]
|
|
144
|
-
});
|
|
145
|
-
const info = result;
|
|
146
|
-
return {
|
|
147
|
-
asset: info.asset ?? info[0],
|
|
148
|
-
numeraire: info.numeraire ?? info[1],
|
|
149
|
-
buybackDst: info.buybackDst ?? info[2]
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
async getPosition(poolId) {
|
|
153
|
-
const result = await this.rpc.readContract({
|
|
154
|
-
address: this.hookAddress,
|
|
155
|
-
abi: chunkMU56HCUI_js.rehypeDopplerHookMigratorAbi,
|
|
156
|
-
functionName: "getPosition",
|
|
157
|
-
args: [poolId]
|
|
158
|
-
});
|
|
159
|
-
const position = result;
|
|
160
|
-
return {
|
|
161
|
-
tickLower: Number(position.tickLower ?? position[0] ?? 0),
|
|
162
|
-
tickUpper: Number(position.tickUpper ?? position[1] ?? 0),
|
|
163
|
-
liquidity: BigInt(position.liquidity ?? position[2] ?? 0),
|
|
164
|
-
salt: position.salt ?? position[3]
|
|
165
|
-
};
|
|
166
|
-
}
|
|
167
|
-
};
|
|
168
|
-
|
|
169
|
-
exports.RehypeDopplerHookMigrator = RehypeDopplerHookMigrator;
|
|
170
|
-
//# sourceMappingURL=chunk-DCWF3EMP.js.map
|
|
171
|
-
//# sourceMappingURL=chunk-DCWF3EMP.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/entities/auction/RehypeDopplerHookMigrator.ts"],"names":["rehypeDopplerHookMigratorAbi","decodeBalanceDelta"],"mappings":"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","file":"chunk-DCWF3EMP.js","sourcesContent":["import type { Address, Hash, Hex, PublicClient, WalletClient } from 'viem';\nimport type {\n RehypeFeeDistributionInfo,\n SupportedPublicClient,\n} from '../../types';\nimport { rehypeDopplerHookMigratorAbi } from '../../abis';\nimport { decodeBalanceDelta } from '../../utils';\n\nexport class RehypeDopplerHookMigrator {\n private client: SupportedPublicClient;\n private walletClient?: WalletClient;\n private hookAddress: Address;\n private get rpc(): PublicClient {\n return this.client as PublicClient;\n }\n\n constructor(\n client: SupportedPublicClient,\n walletClient: WalletClient | undefined,\n hookAddress: Address,\n ) {\n this.client = client;\n this.walletClient = walletClient;\n this.hookAddress = hookAddress;\n }\n\n getAddress(): Address {\n return this.hookAddress;\n }\n\n async collectFees(asset: Address): Promise<{\n amount0: bigint;\n amount1: bigint;\n transactionHash: Hash;\n }> {\n if (!this.walletClient) {\n throw new Error('Wallet client required to collect rehype fees');\n }\n\n const { request, result } = await this.rpc.simulateContract({\n address: this.hookAddress,\n abi: rehypeDopplerHookMigratorAbi,\n functionName: 'collectFees',\n args: [asset],\n account: this.walletClient.account,\n });\n\n const hash = await this.walletClient.writeContract(request);\n await this.rpc.waitForTransactionReceipt({ hash, confirmations: 1 });\n\n const decoded = decodeBalanceDelta(result as bigint);\n return {\n amount0: decoded.amount0,\n amount1: decoded.amount1,\n transactionHash: hash,\n };\n }\n\n async claimAirlockOwnerFees(asset: Address): Promise<{\n fees0: bigint;\n fees1: bigint;\n transactionHash: Hash;\n }> {\n if (!this.walletClient) {\n throw new Error('Wallet client required to claim rehype owner fees');\n }\n\n const { request, result } = await this.rpc.simulateContract({\n address: this.hookAddress,\n abi: rehypeDopplerHookMigratorAbi,\n functionName: 'claimAirlockOwnerFees',\n args: [asset],\n account: this.walletClient.account,\n });\n\n const hash = await this.walletClient.writeContract(request);\n await this.rpc.waitForTransactionReceipt({ hash, confirmations: 1 });\n\n const [fees0, fees1] = result as readonly [bigint, bigint];\n return { fees0, fees1, transactionHash: hash };\n }\n\n async setFeeDistribution(\n poolId: Hex,\n feeDistributionInfo: RehypeFeeDistributionInfo,\n ): Promise<Hash> {\n if (!this.walletClient) {\n throw new Error('Wallet client required to set rehype fee distribution');\n }\n\n const { request } = await this.rpc.simulateContract({\n address: this.hookAddress,\n abi: rehypeDopplerHookMigratorAbi,\n functionName: 'setFeeDistribution',\n args: [\n poolId,\n feeDistributionInfo.assetFeesToAssetBuybackWad,\n feeDistributionInfo.assetFeesToNumeraireBuybackWad,\n feeDistributionInfo.assetFeesToBeneficiaryWad,\n feeDistributionInfo.assetFeesToLpWad,\n feeDistributionInfo.numeraireFeesToAssetBuybackWad,\n feeDistributionInfo.numeraireFeesToNumeraireBuybackWad,\n feeDistributionInfo.numeraireFeesToBeneficiaryWad,\n feeDistributionInfo.numeraireFeesToLpWad,\n ],\n account: this.walletClient.account,\n });\n\n const hash = await this.walletClient.writeContract(request);\n await this.rpc.waitForTransactionReceipt({ hash, confirmations: 1 });\n return hash;\n }\n\n async getFeeDistributionInfo(\n poolId: Hex,\n ): Promise<RehypeFeeDistributionInfo> {\n const result = await this.rpc.readContract({\n address: this.hookAddress,\n abi: rehypeDopplerHookMigratorAbi,\n functionName: 'getFeeDistributionInfo',\n args: [poolId],\n });\n\n const info = result as any;\n return {\n assetFeesToAssetBuybackWad: BigInt(\n info.assetFeesToAssetBuybackWad ?? info[0],\n ),\n assetFeesToNumeraireBuybackWad: BigInt(\n info.assetFeesToNumeraireBuybackWad ?? info[1],\n ),\n assetFeesToBeneficiaryWad: BigInt(\n info.assetFeesToBeneficiaryWad ?? info[2],\n ),\n assetFeesToLpWad: BigInt(info.assetFeesToLpWad ?? info[3]),\n numeraireFeesToAssetBuybackWad: BigInt(\n info.numeraireFeesToAssetBuybackWad ?? info[4],\n ),\n numeraireFeesToNumeraireBuybackWad: BigInt(\n info.numeraireFeesToNumeraireBuybackWad ?? info[5],\n ),\n numeraireFeesToBeneficiaryWad: BigInt(\n info.numeraireFeesToBeneficiaryWad ?? info[6],\n ),\n numeraireFeesToLpWad: BigInt(info.numeraireFeesToLpWad ?? info[7]),\n };\n }\n\n async getFeeRoutingMode(poolId: Hex): Promise<number> {\n const mode = await this.rpc.readContract({\n address: this.hookAddress,\n abi: rehypeDopplerHookMigratorAbi,\n functionName: 'getFeeRoutingMode',\n args: [poolId],\n });\n return Number(mode);\n }\n\n async getHookFees(poolId: Hex): Promise<{\n fees0: bigint;\n fees1: bigint;\n beneficiaryFees0: bigint;\n beneficiaryFees1: bigint;\n airlockOwnerFees0: bigint;\n airlockOwnerFees1: bigint;\n customFee: number;\n }> {\n const result = await this.rpc.readContract({\n address: this.hookAddress,\n abi: rehypeDopplerHookMigratorAbi,\n functionName: 'getHookFees',\n args: [poolId],\n });\n\n const fees = result as any;\n return {\n fees0: BigInt(fees.fees0 ?? fees[0] ?? 0),\n fees1: BigInt(fees.fees1 ?? fees[1] ?? 0),\n beneficiaryFees0: BigInt(fees.beneficiaryFees0 ?? fees[2] ?? 0),\n beneficiaryFees1: BigInt(fees.beneficiaryFees1 ?? fees[3] ?? 0),\n airlockOwnerFees0: BigInt(fees.airlockOwnerFees0 ?? fees[4] ?? 0),\n airlockOwnerFees1: BigInt(fees.airlockOwnerFees1 ?? fees[5] ?? 0),\n customFee: Number(fees.customFee ?? fees[6] ?? 0),\n };\n }\n\n async getPoolInfo(poolId: Hex): Promise<{\n asset: Address;\n numeraire: Address;\n buybackDst: Address;\n }> {\n const result = await this.rpc.readContract({\n address: this.hookAddress,\n abi: rehypeDopplerHookMigratorAbi,\n functionName: 'getPoolInfo',\n args: [poolId],\n });\n\n const info = result as any;\n return {\n asset: (info.asset ?? info[0]) as Address,\n numeraire: (info.numeraire ?? info[1]) as Address,\n buybackDst: (info.buybackDst ?? info[2]) as Address,\n };\n }\n\n async getPosition(poolId: Hex): Promise<{\n tickLower: number;\n tickUpper: number;\n liquidity: bigint;\n salt: Hex;\n }> {\n const result = await this.rpc.readContract({\n address: this.hookAddress,\n abi: rehypeDopplerHookMigratorAbi,\n functionName: 'getPosition',\n args: [poolId],\n });\n\n const position = result as any;\n return {\n tickLower: Number(position.tickLower ?? position[0] ?? 0),\n tickUpper: Number(position.tickUpper ?? position[1] ?? 0),\n liquidity: BigInt(position.liquidity ?? position[2] ?? 0),\n salt: (position.salt ?? position[3]) as Hex,\n };\n }\n}\n"]}
|
package/dist/chunk-DOUF6NON.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-DOUF6NON.mjs"}
|