@whetstone-research/doppler-sdk 0.0.17 → 0.0.19
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 +66 -1
- package/dist/DopplerSDK.js +19 -19
- package/dist/DopplerSDK.mjs +18 -18
- package/dist/abis/index.d.mts +32 -1
- package/dist/abis/index.d.ts +32 -1
- package/dist/abis/index.js +26 -22
- package/dist/abis/index.mjs +1 -1
- package/dist/addresses.d.mts +1 -0
- package/dist/addresses.d.ts +1 -0
- package/dist/addresses.js +7 -7
- package/dist/addresses.mjs +2 -2
- package/dist/builders/DynamicAuctionBuilder.js +10 -10
- package/dist/builders/DynamicAuctionBuilder.mjs +9 -9
- package/dist/builders/MulticurveBuilder.d.mts +16 -0
- package/dist/builders/MulticurveBuilder.d.ts +16 -0
- package/dist/builders/MulticurveBuilder.js +10 -10
- package/dist/builders/MulticurveBuilder.mjs +9 -9
- package/dist/builders/StaticAuctionBuilder.js +10 -10
- package/dist/builders/StaticAuctionBuilder.mjs +9 -9
- package/dist/builders/index.js +18 -18
- package/dist/builders/index.mjs +11 -11
- package/dist/builders/shared.js +11 -11
- package/dist/builders/shared.mjs +7 -7
- package/dist/{chunk-LOVD3NCN.js → chunk-3MVW6UIW.js} +18 -2
- package/dist/chunk-3MVW6UIW.js.map +1 -0
- package/dist/{chunk-DVAQB7TB.mjs → chunk-3NFSMMBF.mjs} +3 -3
- package/dist/{chunk-DVAQB7TB.mjs.map → chunk-3NFSMMBF.mjs.map} +1 -1
- package/dist/{chunk-PBWOCVDZ.mjs → chunk-4TAAZ6W3.mjs} +248 -51
- package/dist/chunk-4TAAZ6W3.mjs.map +1 -0
- package/dist/{chunk-4DUE547M.js → chunk-6BQY5EPB.js} +4 -2
- package/dist/chunk-6BQY5EPB.js.map +1 -0
- package/dist/{chunk-HVM7KZJM.mjs → chunk-6HFZ6XMV.mjs} +4 -4
- package/dist/{chunk-HVM7KZJM.mjs.map → chunk-6HFZ6XMV.mjs.map} +1 -1
- package/dist/{chunk-EG6O2TUX.js → chunk-7Z2UGWE7.js} +26 -26
- package/dist/{chunk-EG6O2TUX.js.map → chunk-7Z2UGWE7.js.map} +1 -1
- package/dist/{chunk-O2DZH23A.mjs → chunk-CYY5IATT.mjs} +9 -5
- package/dist/chunk-CYY5IATT.mjs.map +1 -0
- package/dist/{chunk-BZKX3J3R.mjs → chunk-E2NF4AQB.mjs} +18 -3
- package/dist/chunk-E2NF4AQB.mjs.map +1 -0
- package/dist/{chunk-B4B7BXLI.js → chunk-E6ACC5S6.js} +24 -24
- package/dist/{chunk-B4B7BXLI.js.map → chunk-E6ACC5S6.js.map} +1 -1
- package/dist/{chunk-K5CV3MIH.mjs → chunk-FQ3PVXZU.mjs} +5 -5
- package/dist/{chunk-K5CV3MIH.mjs.map → chunk-FQ3PVXZU.mjs.map} +1 -1
- package/dist/{chunk-WQKBQRBS.mjs → chunk-GCT3IZ3E.mjs} +12 -12
- package/dist/{chunk-WQKBQRBS.mjs.map → chunk-GCT3IZ3E.mjs.map} +1 -1
- package/dist/{chunk-LDZCTC5Q.mjs → chunk-H5SUGQ2C.mjs} +45 -7
- package/dist/chunk-H5SUGQ2C.mjs.map +1 -0
- package/dist/{chunk-PE47QUJV.mjs → chunk-HH7HQ4HC.mjs} +3 -3
- package/dist/{chunk-PE47QUJV.mjs.map → chunk-HH7HQ4HC.mjs.map} +1 -1
- package/dist/{chunk-LXUF7RNX.mjs → chunk-IWJOPXYN.mjs} +4 -3
- package/dist/chunk-IWJOPXYN.mjs.map +1 -0
- package/dist/{chunk-MBOKYN2Y.js → chunk-K3TEDYUG.js} +20 -20
- package/dist/{chunk-MBOKYN2Y.js.map → chunk-K3TEDYUG.js.map} +1 -1
- package/dist/{chunk-NVVEUALG.mjs → chunk-MH74WYVZ.mjs} +5 -5
- package/dist/{chunk-NVVEUALG.mjs.map → chunk-MH74WYVZ.mjs.map} +1 -1
- package/dist/{chunk-ZVH7VBH5.mjs → chunk-N74ICDSX.mjs} +118 -20
- package/dist/chunk-N74ICDSX.mjs.map +1 -0
- package/dist/{chunk-C7GN6GPG.js → chunk-OROTK4OT.js} +51 -27
- package/dist/chunk-OROTK4OT.js.map +1 -0
- package/dist/{chunk-Z7ZGPSQF.js → chunk-P4BT5GDO.js} +76 -72
- package/dist/chunk-P4BT5GDO.js.map +1 -0
- package/dist/{chunk-YBDWQTUH.mjs → chunk-QFQXHDC7.mjs} +76 -9
- package/dist/chunk-QFQXHDC7.mjs.map +1 -0
- package/dist/{chunk-RKJ2466C.mjs → chunk-QOGBOT2M.mjs} +3 -3
- package/dist/{chunk-RKJ2466C.mjs.map → chunk-QOGBOT2M.mjs.map} +1 -1
- package/dist/{chunk-3ALNQHGL.js → chunk-RLUMYHPI.js} +76 -9
- package/dist/chunk-RLUMYHPI.js.map +1 -0
- package/dist/{chunk-5FJCRKQ6.js → chunk-RXUJ4DUB.js} +28 -28
- package/dist/{chunk-5FJCRKQ6.js.map → chunk-RXUJ4DUB.js.map} +1 -1
- package/dist/{chunk-MGLI4N4B.js → chunk-SAX7P3MH.js} +22 -22
- package/dist/{chunk-MGLI4N4B.js.map → chunk-SAX7P3MH.js.map} +1 -1
- package/dist/{chunk-3ORKVXQL.js → chunk-TJCMFITE.js} +27 -27
- package/dist/{chunk-3ORKVXQL.js.map → chunk-TJCMFITE.js.map} +1 -1
- package/dist/{chunk-TL7U67CX.js → chunk-UIPSHVT4.js} +11 -11
- package/dist/{chunk-TL7U67CX.js.map → chunk-UIPSHVT4.js.map} +1 -1
- package/dist/{chunk-5ZPBKSNS.mjs → chunk-UY4TVYEU.mjs} +3 -3
- package/dist/{chunk-5ZPBKSNS.mjs.map → chunk-UY4TVYEU.mjs.map} +1 -1
- package/dist/{chunk-PQUS2LCD.js → chunk-UZTVXZP3.js} +16 -16
- package/dist/{chunk-PQUS2LCD.js.map → chunk-UZTVXZP3.js.map} +1 -1
- package/dist/{chunk-HMZEYBFO.mjs → chunk-V32Q2S3U.mjs} +4 -4
- package/dist/{chunk-HMZEYBFO.mjs.map → chunk-V32Q2S3U.mjs.map} +1 -1
- package/dist/{chunk-7F4O7NPS.js → chunk-V5GPJ6S2.js} +26 -26
- package/dist/{chunk-7F4O7NPS.js.map → chunk-V5GPJ6S2.js.map} +1 -1
- package/dist/{chunk-DOWDXOTK.mjs → chunk-VGCXJRUV.mjs} +51 -27
- package/dist/chunk-VGCXJRUV.mjs.map +1 -0
- package/dist/{chunk-J32XSN44.js → chunk-WYRM5BAI.js} +344 -147
- package/dist/chunk-WYRM5BAI.js.map +1 -0
- package/dist/{chunk-OUUFER2X.mjs → chunk-X7FRTHUL.mjs} +4 -4
- package/dist/{chunk-OUUFER2X.mjs.map → chunk-X7FRTHUL.mjs.map} +1 -1
- package/dist/{chunk-E54BP2GN.js → chunk-Y6VZD4C6.js} +53 -15
- package/dist/chunk-Y6VZD4C6.js.map +1 -0
- package/dist/{chunk-5MP6AMPB.js → chunk-YFJUIO2A.js} +132 -34
- package/dist/chunk-YFJUIO2A.js.map +1 -0
- package/dist/{chunk-WHQHXYPB.js → chunk-YKRDFXU3.js} +5 -5
- package/dist/{chunk-WHQHXYPB.js.map → chunk-YKRDFXU3.js.map} +1 -1
- package/dist/constants.d.mts +7 -1
- package/dist/constants.d.ts +7 -1
- package/dist/constants.js +51 -47
- package/dist/constants.mjs +1 -1
- package/dist/deployments.generated.d.mts +72 -5
- package/dist/deployments.generated.d.ts +72 -5
- package/dist/deployments.generated.js +2 -2
- package/dist/deployments.generated.mjs +1 -1
- package/dist/entities/DopplerFactory.d.mts +2 -0
- package/dist/entities/DopplerFactory.d.ts +2 -0
- package/dist/entities/DopplerFactory.js +8 -8
- package/dist/entities/DopplerFactory.mjs +7 -7
- package/dist/entities/auction/DynamicAuction.js +5 -5
- package/dist/entities/auction/DynamicAuction.mjs +4 -4
- package/dist/entities/auction/MulticurvePool.d.mts +9 -3
- package/dist/entities/auction/MulticurvePool.d.ts +9 -3
- package/dist/entities/auction/MulticurvePool.js +7 -6
- package/dist/entities/auction/MulticurvePool.mjs +6 -5
- package/dist/entities/auction/StaticAuction.js +5 -5
- package/dist/entities/auction/StaticAuction.mjs +4 -4
- package/dist/entities/auction/index.js +11 -10
- package/dist/entities/auction/index.mjs +8 -7
- package/dist/entities/quoter/Quoter.js +5 -5
- package/dist/entities/quoter/Quoter.mjs +4 -4
- package/dist/entities/quoter/index.js +5 -5
- package/dist/entities/quoter/index.mjs +4 -4
- package/dist/entities/token/derc20/Derc20.js +3 -3
- package/dist/entities/token/derc20/Derc20.mjs +2 -2
- package/dist/entities/token/derc20/index.js +3 -3
- package/dist/entities/token/derc20/index.mjs +2 -2
- package/dist/entities/token/index.js +3 -3
- package/dist/entities/token/index.mjs +2 -2
- package/dist/index.d.mts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +110 -102
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +18 -18
- package/dist/index.mjs.map +1 -1
- package/dist/types.d.mts +32 -1
- package/dist/types.d.ts +32 -1
- package/dist/types.js +8 -8
- package/dist/types.mjs +3 -3
- package/dist/utils/airlock.js +7 -7
- package/dist/utils/airlock.mjs +3 -3
- package/dist/utils/index.js +10 -10
- package/dist/utils/index.mjs +5 -5
- package/dist/utils/tokenAddressMiner.d.mts +7 -0
- package/dist/utils/tokenAddressMiner.d.ts +7 -0
- package/dist/utils/tokenAddressMiner.js +3 -3
- package/dist/utils/tokenAddressMiner.mjs +2 -2
- package/package.json +1 -1
- package/dist/chunk-3ALNQHGL.js.map +0 -1
- package/dist/chunk-4DUE547M.js.map +0 -1
- package/dist/chunk-5MP6AMPB.js.map +0 -1
- package/dist/chunk-BZKX3J3R.mjs.map +0 -1
- package/dist/chunk-C7GN6GPG.js.map +0 -1
- package/dist/chunk-DOWDXOTK.mjs.map +0 -1
- package/dist/chunk-E54BP2GN.js.map +0 -1
- package/dist/chunk-J32XSN44.js.map +0 -1
- package/dist/chunk-LDZCTC5Q.mjs.map +0 -1
- package/dist/chunk-LOVD3NCN.js.map +0 -1
- package/dist/chunk-LXUF7RNX.mjs.map +0 -1
- package/dist/chunk-O2DZH23A.mjs.map +0 -1
- package/dist/chunk-PBWOCVDZ.mjs.map +0 -1
- package/dist/chunk-YBDWQTUH.mjs.map +0 -1
- package/dist/chunk-Z7ZGPSQF.js.map +0 -1
- package/dist/chunk-ZVH7VBH5.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/deployments.generated.ts"],"names":[],"mappings":";;;AAWO,IAAM,6BAAA,GAAgC;AAAA,EAC3C,GAAA,EAAK;AAAA,IACH,SAAA,EAAW,4CAAA;AAAA,IACX,oBAAA,EAAsB,4CAAA;AAAA,IACtB,2BAAA,EAA6B,4CAAA;AAAA,IAC7B,YAAA,EAAc,4CAAA;AAAA,IACd,mBAAA,EAAqB,4CAAA;AAAA,IACrB,iBAAA,EAAmB,4CAAA;AAAA,IACnB,wBAAA,EAA0B,4CAAA;AAAA,IAC1B,iBAAA,EAAmB,4CAAA;AAAA,IACnB,wBAAA,EAA0B,4CAAA;AAAA,IAC1B,uBAAA,EAAyB,4CAAA;AAAA,IACzB,cAAA,EAAgB,4CAAA;AAAA,IAChB,QAAA,EAAU,4CAAA;AAAA,IACV,mBAAA,EAAqB,4CAAA;AAAA,IACrB,sBAAA,EAAwB,4CAAA;AAAA,IACxB,iBAAA,EAAmB,4CAAA;AAAA,IACnB,mBAAA,EAAqB,4CAAA;AAAA,IACrB,sBAAA,EAAwB,4CAAA;AAAA,IACxB,mBAAA,EAAqB,4CAAA;AAAA,IACrB,uBAAA,EAAyB,4CAAA;AAAA,IACzB,yCAAA,EAA2C,4CAAA;AAAA,IAC3C,6CAAA,EAA+C;AAAA,GACjD;AAAA,EACA,KAAA,EAAO;AAAA,IACL,SAAA,EAAW,4CAAA;AAAA,IACX,SAAA,EAAW,4CAAA;AAAA,IACX,iBAAA,EAAmB,4CAAA;AAAA,IACnB,mBAAA,EAAqB,4CAAA;AAAA,IACrB,mBAAA,EAAqB,4CAAA;AAAA,IACrB,8BAAA,EAAgC,4CAAA;AAAA,IAChC,uBAAA,EAAyB,4CAAA;AAAA,IACzB,cAAA,EAAgB,4CAAA;AAAA,IAChB,sBAAA,EAAwB,4CAAA;AAAA,IACxB,cAAA,EAAgB,4CAAA;AAAA,IAChB,gBAAA,EAAkB,4CAAA;AAAA,IAClB,mBAAA,EAAqB,4CAAA;AAAA,IACrB,sBAAA,EAAwB,4CAAA;AAAA,IACxB,sBAAA,EAAwB,4CAAA;AAAA,IACxB,mBAAA,EAAqB,4CAAA;AAAA,IACrB,uBAAA,EAAyB;AAAA,GAC3B;AAAA,EACA,KAAA,EAAO;AAAA,IACL,SAAA,EAAW,4CAAA;AAAA,IACX,SAAA,EAAW,4CAAA;AAAA,IACX,oBAAA,EAAsB,4CAAA;AAAA,IACtB,2BAAA,EAA6B,4CAAA;AAAA,IAC7B,iBAAA,EAAmB,4CAAA;AAAA,IACnB,wBAAA,EAA0B,4CAAA;AAAA,IAC1B,mBAAA,EAAqB,4CAAA;AAAA,IACrB,4BAAA,EAA8B,4CAAA;AAAA,IAC9B,8BAAA,EAAgC,4CAAA;AAAA,IAChC,uBAAA,EAAyB,4CAAA;AAAA,IACzB,cAAA,EAAgB,4CAAA;AAAA,IAChB,QAAA,EAAU,4CAAA;AAAA,IACV,mBAAA,EAAqB,4CAAA;AAAA,IACrB,sBAAA,EAAwB,4CAAA;AAAA,IACxB,iBAAA,EAAmB,4CAAA;AAAA,IACnB,cAAA,EAAgB,4CAAA;AAAA,IAChB,gBAAA,EAAkB,4CAAA;AAAA,IAClB,iBAAA,EAAmB,4CAAA;AAAA,IACnB,mBAAA,EAAqB,4CAAA;AAAA,IACrB,sBAAA,EAAwB,4CAAA;AAAA,IACxB,mBAAA,EAAqB,4CAAA;AAAA,IACrB,uBAAA,EAAyB,4CAAA;AAAA,IACzB,yCAAA,EAA2C,4CAAA;AAAA,IAC3C,6CAAA,EAA+C;AAAA,GACjD;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,SAAA,EAAW,4CAAA;AAAA,IACX,wBAAA,EAA0B,4CAAA;AAAA,IAC1B,SAAA,EAAW,4CAAA;AAAA,IACX,iBAAA,EAAmB,4CAAA;AAAA,IACnB,mBAAA,EAAqB,4CAAA;AAAA,IACrB,mBAAA,EAAqB,4CAAA;AAAA,IACrB,8BAAA,EAAgC,4CAAA;AAAA,IAChC,uBAAA,EAAyB,4CAAA;AAAA,IACzB,cAAA,EAAgB,4CAAA;AAAA,IAChB,sBAAA,EAAwB,4CAAA;AAAA,IACxB,cAAA,EAAgB,4CAAA;AAAA,IAChB,gBAAA,EAAkB,4CAAA;AAAA,IAClB,mBAAA,EAAqB,4CAAA;AAAA,IACrB,sBAAA,EAAwB,4CAAA;AAAA,IACxB,sBAAA,EAAwB,4CAAA;AAAA,IACxB,mBAAA,EAAqB,4CAAA;AAAA,IACrB,uBAAA,EAAyB,4CAAA;AAAA,IACzB,gCAAA,EAAkC,4CAAA;AAAA,IAClC,oCAAA,EAAsC,4CAAA;AAAA,IACtC,yCAAA,EAA2C,4CAAA;AAAA,IAC3C,6CAAA,EAA+C;AAAA,GACjD;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,SAAA,EAAW,4CAAA;AAAA,IACX,uBAAA,EAAyB,4CAAA;AAAA,IACzB,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,SAAA,EAAW,4CAAA;AAAA,IACX,mBAAA,EAAqB,4CAAA;AAAA,IACrB,cAAA,EAAgB,4CAAA;AAAA,IAChB,mBAAA,EAAqB,4CAAA;AAAA,IACrB,sBAAA,EAAwB,4CAAA;AAAA,IACxB,MAAA,EAAQ;AAAA,GACV;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,SAAA,EAAW,4CAAA;AAAA,IACX,uBAAA,EAAyB,4CAAA;AAAA,IACzB,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,SAAA,EAAW,4CAAA;AAAA,IACX,SAAA,EAAW,4CAAA;AAAA,IACX,oBAAA,EAAsB,4CAAA;AAAA,IACtB,2BAAA,EAA6B,4CAAA;AAAA,IAC7B,4BAAA,EAA8B,4CAAA;AAAA,IAC9B,gCAAA,EAAkC,4CAAA;AAAA,IAClC,iBAAA,EAAmB,4CAAA;AAAA,IACnB,wBAAA,EAA0B,4CAAA;AAAA,IAC1B,mBAAA,EAAqB,4CAAA;AAAA,IACrB,mBAAA,EAAqB,4CAAA;AAAA,IACrB,4BAAA,EAA8B,4CAAA;AAAA,IAC9B,8BAAA,EAAgC,4CAAA;AAAA,IAChC,uBAAA,EAAyB,4CAAA;AAAA,IACzB,cAAA,EAAgB,4CAAA;AAAA,IAChB,QAAA,EAAU,4CAAA;AAAA,IACV,mBAAA,EAAqB,4CAAA;AAAA,IACrB,sBAAA,EAAwB,4CAAA;AAAA,IACxB,cAAA,EAAgB,4CAAA;AAAA,IAChB,gBAAA,EAAkB,4CAAA;AAAA,IAClB,mBAAA,EAAqB,4CAAA;AAAA,IACrB,sBAAA,EAAwB,4CAAA;AAAA,IACxB,sBAAA,EAAwB,4CAAA;AAAA,IACxB,mBAAA,EAAqB,4CAAA;AAAA,IACrB,uBAAA,EAAyB,4CAAA;AAAA,IACzB,gCAAA,EAAkC,4CAAA;AAAA,IAClC,oCAAA,EAAsC,4CAAA;AAAA,IACtC,yCAAA,EAA2C,4CAAA;AAAA,IAC3C,6CAAA,EAA+C;AAAA,GACjD;AAAA,EACA,OAAA,EAAS;AAAA,IACP,SAAA,EAAW,4CAAA;AAAA,IACX,wBAAA,EAA0B,4CAAA;AAAA,IAC1B,SAAA,EAAW,4CAAA;AAAA,IACX,iBAAA,EAAmB,4CAAA;AAAA,IACnB,mBAAA,EAAqB,4CAAA;AAAA,IACrB,mBAAA,EAAqB,4CAAA;AAAA,IACrB,8BAAA,EAAgC,4CAAA;AAAA,IAChC,uBAAA,EAAyB,4CAAA;AAAA,IACzB,cAAA,EAAgB,4CAAA;AAAA,IAChB,sBAAA,EAAwB,4CAAA;AAAA,IACxB,iBAAA,EAAmB,4CAAA;AAAA,IACnB,cAAA,EAAgB,4CAAA;AAAA,IAChB,gBAAA,EAAkB,4CAAA;AAAA,IAClB,iBAAA,EAAmB,4CAAA;AAAA,IACnB,mBAAA,EAAqB,4CAAA;AAAA,IACrB,sBAAA,EAAwB,4CAAA;AAAA,IACxB,sBAAA,EAAwB,4CAAA;AAAA,IACxB,mBAAA,EAAqB,4CAAA;AAAA,IACrB,uBAAA,EAAyB,4CAAA;AAAA,IACzB,gCAAA,EAAkC,4CAAA;AAAA,IAClC,oCAAA,EAAsC,4CAAA;AAAA,IACtC,MAAA,EAAQ;AAAA,GACV;AAAA,EACA,OAAA,EAAS;AAAA,IACP,SAAA,EAAW,4CAAA;AAAA,IACX,SAAA,EAAW,4CAAA;AAAA,IACX,iBAAA,EAAmB,4CAAA;AAAA,IACnB,mBAAA,EAAqB,4CAAA;AAAA,IACrB,mBAAA,EAAqB,4CAAA;AAAA,IACrB,cAAA,EAAgB,4CAAA;AAAA,IAChB,mBAAA,EAAqB,4CAAA;AAAA,IACrB,sBAAA,EAAwB,4CAAA;AAAA,IACxB,sBAAA,EAAwB;AAAA,GAC1B;AAAA,EACA,OAAA,EAAS;AAAA,IACP,SAAA,EAAW,4CAAA;AAAA,IACX,wBAAA,EAA0B,4CAAA;AAAA,IAC1B,eAAA,EAAiB,4CAAA;AAAA,IACjB,SAAA,EAAW,4CAAA;AAAA,IACX,oBAAA,EAAsB,4CAAA;AAAA,IACtB,2BAAA,EAA6B,4CAAA;AAAA,IAC7B,YAAA,EAAc,4CAAA;AAAA,IACd,mBAAA,EAAqB,4CAAA;AAAA,IACrB,iBAAA,EAAmB,4CAAA;AAAA,IACnB,wBAAA,EAA0B,4CAAA;AAAA,IAC1B,4BAAA,EAA8B,4CAAA;AAAA,IAC9B,gCAAA,EAAkC,4CAAA;AAAA,IAClC,iBAAA,EAAmB,4CAAA;AAAA,IACnB,wBAAA,EAA0B,4CAAA;AAAA,IAC1B,mBAAA,EAAqB,4CAAA;AAAA,IACrB,mBAAA,EAAqB,4CAAA;AAAA,IACrB,8BAAA,EAAgC,4CAAA;AAAA,IAChC,mBAAA,EAAqB,4CAAA;AAAA,IACrB,uBAAA,EAAyB,4CAAA;AAAA,IACzB,cAAA,EAAgB,4CAAA;AAAA,IAChB,QAAA,EAAU,4CAAA;AAAA,IACV,mBAAA,EAAqB,4CAAA;AAAA,IACrB,sBAAA,EAAwB,4CAAA;AAAA,IACxB,uBAAA,EAAyB,4CAAA;AAAA,IACzB,cAAA,EAAgB,4CAAA;AAAA,IAChB,gBAAA,EAAkB,4CAAA;AAAA,IAClB,kBAAA,EAAoB,4CAAA;AAAA,IACpB,iBAAA,EAAmB,4CAAA;AAAA,IACnB,mBAAA,EAAqB,4CAAA;AAAA,IACrB,wBAAA,EAA0B,4CAAA;AAAA,IAC1B,sBAAA,EAAwB,4CAAA;AAAA,IACxB,sBAAA,EAAwB,4CAAA;AAAA,IACxB,mBAAA,EAAqB,4CAAA;AAAA,IACrB,uBAAA,EAAyB,4CAAA;AAAA,IACzB,wBAAA,EAA0B,4CAAA;AAAA,IAC1B,4BAAA,EAA8B,4CAAA;AAAA,IAC9B,gCAAA,EAAkC,4CAAA;AAAA,IAClC,oCAAA,EAAsC,4CAAA;AAAA,IACtC,yCAAA,EAA2C,4CAAA;AAAA,IAC3C,6CAAA,EAA+C,4CAAA;AAAA,IAC/C,MAAA,EAAQ;AAAA,GACV;AAAA,EACA,UAAA,EAAY;AAAA,IACV,SAAA,EAAW,4CAAA;AAAA,IACX,wBAAA,EAA0B,4CAAA;AAAA,IAC1B,oBAAA,EAAsB,4CAAA;AAAA,IACtB,2BAAA,EAA6B,4CAAA;AAAA,IAC7B,YAAA,EAAc,4CAAA;AAAA,IACd,mBAAA,EAAqB,4CAAA;AAAA,IACrB,iBAAA,EAAmB,4CAAA;AAAA,IACnB,wBAAA,EAA0B,4CAAA;AAAA,IAC1B,iBAAA,EAAmB,4CAAA;AAAA,IACnB,wBAAA,EAA0B,4CAAA;AAAA,IAC1B,uBAAA,EAAyB,4CAAA;AAAA,IACzB,cAAA,EAAgB,4CAAA;AAAA,IAChB,QAAA,EAAU,4CAAA;AAAA,IACV,mBAAA,EAAqB,4CAAA;AAAA,IACrB,sBAAA,EAAwB,4CAAA;AAAA,IACxB,iBAAA,EAAmB,4CAAA;AAAA,IACnB,mBAAA,EAAqB,4CAAA;AAAA,IACrB,sBAAA,EAAwB,4CAAA;AAAA,IACxB,mBAAA,EAAqB,4CAAA;AAAA,IACrB,uBAAA,EAAyB,4CAAA;AAAA,IACzB,yCAAA,EAA2C,4CAAA;AAAA,IAC3C,6CAAA,EAA+C;AAAA;AAEnD","file":"chunk-RLUMYHPI.js","sourcesContent":["// AUTO-GENERATED FILE. DO NOT EDIT.\n// Generated by scripts/generate-addresses.mjs\n// Source: ../doppler/Deployments.json\n// WARNING: This file is an internal build artifact and is NOT part of the public API.\n// WARNING: Do NOT import from this file directly. It should not appear in IDE IntelliSense/suggestions.\n// WARNING: If you need Doppler addresses, import from @addresses.ts instead (e.g. use ADDRESSES / getAddresses).\n\n/** @internal */\nexport type GeneratedDopplerDeployments = Record<string, Record<string, string>>\n\n/** @internal */\nexport const GENERATED_DOPPLER_DEPLOYMENTS = {\n \"1\": {\n \"Airlock\": \"0xDe3599a2eC440B296373a983C85C365DA55d9dFA\",\n \"CloneDERC20VotesV2\": \"0x4BBfed1c27CDE12eF6638251D81ab4e3be7556b7\",\n \"CloneDERC20VotesV2Factory\": \"0x16F5ACB64F4FA17296E942C51d3395aDC318f9e1\",\n \"CloneERC20\": \"0x215b2cE3Dd8D110394e94A868580D61a77aDEc4A\",\n \"CloneERC20Factory\": \"0xe7Df2A4520C26a2D4Dedb3a7585BFBcd30eABA6e\",\n \"CloneERC20Votes\": \"0xA8d0E8036D3fAE21C7Af075ad41942Bc1f807CDF\",\n \"CloneERC20VotesFactory\": \"0x5A92bFfbc01ea0396A9c7D4154d36d4EAF2e483E\",\n \"DopplerDeployer\": \"0xb35469ee64A87Afd19B31615094fE3962d73e421\",\n \"DopplerHookInitializer\": \"0xAA096F558f3d4c9226De77E7Cc05f18E180B2544\",\n \"NoOpGovernanceFactory\": \"0xddAE8B3eD08184682f7Bc32B74d943cEEfEab638\",\n \"NoOpMigrator\": \"0x233A71A7bB928b1357A1Ebf454298320989Ca5B5\",\n \"Quoter\": \"0xeC0fAe60Ac92044B4946DFaec87AC4CE53015906\",\n \"RehypeDopplerHook\": \"0x97cAD5684FB7Cc2bEd9a9b5eBfba67138F4f2503\",\n \"StreamableFeesLocker\": \"0xe24FC2F7191e850e2D4514aBb4d39305b1871eC6\",\n \"UniswapV2Locker\": \"0xA366D94eDA7abEc16bfa5619A855a6208bE3aEE9\",\n \"UniswapV2Migrator\": \"0x765875bff87614cE0581ee73B9fa663B71F3DfF2\",\n \"UniswapV4Initializer\": \"0x53b4c21a6Cb61D64F636ABBfa6E8E90E6558e8ad\",\n \"UniswapV4Migrator\": \"0x0820A4D0173C17Ece283f7bDaAF0f8876eB205f5\",\n \"UniswapV4MigratorHook\": \"0x4053D4fa966cbdCC20Ec62070aC8814De8bEE500\",\n \"UniswapV4ScheduledMulticurveInitializer\": \"0xF84378C9F39e0FF267f3101c88773359c5393876\",\n \"UniswapV4ScheduledMulticurveInitializerHook\": \"0xc6a562cb5CbFA29BCB1bDCCF903b8B8f2E4A2DC0\"\n },\n \"130\": {\n \"Airlock\": \"0x77EbfBAE15AD200758E9E2E61597c0B07d731254\",\n \"Bundler\": \"0x91231cDdD8d6C86Df602070a3081478e074b97b7\",\n \"DopplerDeployer\": \"0x0d2f38d807bfAd5C18e430516e10ab560D300caF\",\n \"DopplerLensQuoter\": \"0x82Ac010C67f70BACf7655cd8948a4AD92A173CAC\",\n \"GovernanceFactory\": \"0x99C94B9Df930E1E21a4E4a2c105dBff21bF5c5aE\",\n \"LockableUniswapV3Initializer\": \"0xA3C847eAb58eAa9cbc215C785c9cfBc19CDABD5f\",\n \"NoOpGovernanceFactory\": \"0x3AD727ee0FBBb8Ee0920933FdB96F23fD56f1299\",\n \"NoOpMigrator\": \"0x917da361072ce968acD810BbfC9B64079426ebf0\",\n \"StreamableFeesLocker\": \"0x6ddfED58D238Ca3195E49d8ac3d4cEa6386E5C33\",\n \"TokenFactory\": \"0x43d0D97EC9241A8F05A264f94B82A1d2E600f2B3\",\n \"TokenFactory80\": \"0xf0B5141dD9096254B2ca624dff26024f46087229\",\n \"UniswapV2Migrator\": \"0xf6023127f6E937091D5B605680056A6D27524bad\",\n \"UniswapV3Initializer\": \"0x9F4e56be80f08ba1A2445645EFa6d231E27b43ec\",\n \"UniswapV4Initializer\": \"0x4B0EC16Eb40318Ca5A4346f20F04A2285C19675B\",\n \"UniswapV4Migrator\": \"0x49F3fBB2dFF7f3d03B622e3b2a6d3F2E6fdB2a5A\",\n \"UniswapV4MigratorHook\": \"0x53C050d3B09C80024138165520Bd7c078D9e2000\"\n },\n \"143\": {\n \"Airlock\": \"0x660eAaEdEBc968f8f3694354FA8EC0b4c5Ba8D12\",\n \"Bundler\": \"0xC99b485499f78995C6F1640dbB1413c57f8BA684\",\n \"CloneDERC20VotesV2\": \"0x4BBfed1c27CDE12eF6638251D81ab4e3be7556b7\",\n \"CloneDERC20VotesV2Factory\": \"0x16F5ACB64F4FA17296E942C51d3395aDC318f9e1\",\n \"DopplerDeployer\": \"0xb35469ee64A87Afd19B31615094fE3962d73e421\",\n \"DopplerHookInitializer\": \"0xAA096F558f3d4c9226De77E7Cc05f18E180B2544\",\n \"GovernanceFactory\": \"0xFAafdE6a5b658684cC5eb0C5c2c755B00A246F45\",\n \"LaunchpadGovernanceFactory\": \"0x5FBe931dc4B923A7abe4c47aD68d5bF9Eda5B76D\",\n \"LockableUniswapV3Initializer\": \"0x8b4C7DB9121FC885689C0A50D5a1429F15AEc2a0\",\n \"NoOpGovernanceFactory\": \"0xb4deE32EB70A5E55f3D2d861F49Fb3D79f7a14d9\",\n \"NoOpMigrator\": \"0x5F3bA43D44375286296Cb85F1EA2EBfa25dde731\",\n \"Quoter\": \"0xeC0fAe60Ac92044B4946DFaec87AC4CE53015906\",\n \"RehypeDopplerHook\": \"0x97cAD5684FB7Cc2bEd9a9b5eBfba67138F4f2503\",\n \"StreamableFeesLocker\": \"0x63f8C8F9beFaab2FaCD7Ece0b0242f78B920Ee90\",\n \"TimelockFactory\": \"0x44610355465c1F5914C8B8ea0E7c887CC67459b2\",\n \"TokenFactory\": \"0xaA47D2977d622DBdFD33eeF6a8276727c52EB4e5\",\n \"TokenFactory80\": \"0xf0B5141dD9096254B2ca624dff26024f46087229\",\n \"UniswapV2Locker\": \"0x08Ab3f5D1177511C438a15b3bd5d8b172b6f715F\",\n \"UniswapV2Migrator\": \"0x136191B46478cAB023cbC01a36160C4Aad81677a\",\n \"UniswapV4Initializer\": \"0x53b4c21a6Cb61D64F636ABBfa6E8E90E6558e8ad\",\n \"UniswapV4Migrator\": \"0x44bf742e57cd8cF23ABbc8dab2c44e2a3228356E\",\n \"UniswapV4MigratorHook\": \"0x3E4c689BBf33b37106eBC13Db8aa5BF13a25e500\",\n \"UniswapV4ScheduledMulticurveInitializer\": \"0xCe3099B2F07029b086E5e92a1573C5f5A3071783\",\n \"UniswapV4ScheduledMulticurveInitializerHook\": \"0x580ca49389d83b019d07E17e99454f2F218e2dc0\"\n },\n \"1301\": {\n \"Airlock\": \"0x0d2f38d807bfAd5C18e430516e10ab560D300caF\",\n \"AirlockMultisigTestnet\": \"0x0abCf819FD57C9f0141628410fFC273405E44426\",\n \"Bundler\": \"0xED344444633B965cd148F8fFCE3765938A179094\",\n \"DopplerDeployer\": \"0x77B5F559EE9cf3bfcf2fFf5731a84332D8eECAC9\",\n \"DopplerLensQuoter\": \"0x917da361072ce968acD810BbfC9B64079426ebf0\",\n \"GovernanceFactory\": \"0x4225C632b62622Bd7B0A3eC9745C0a866Ff94F6F\",\n \"LockableUniswapV3Initializer\": \"0x9dFb775dB7b005d9Dc77DA84D8b2e42C281D0344\",\n \"NoOpGovernanceFactory\": \"0x7E5D336A6E9e453c9f02E5102CC039E015Fd8fb8\",\n \"NoOpMigrator\": \"0x193F48A45B6025dDeD10bc4BaeEF65c833696387\",\n \"StreamableFeesLocker\": \"0x1728E8B3282502f275949109331E070b819B38eA\",\n \"TokenFactory\": \"0x82Ac010C67f70BACf7655cd8948a4AD92A173CAC\",\n \"TokenFactory80\": \"0xf0B5141dD9096254B2ca624dff26024f46087229\",\n \"UniswapV2Migrator\": \"0x620e3fec244e913d73f2163623b62d02DB69638B\",\n \"UniswapV3Initializer\": \"0xE0dC4012AC9C868F09c6e4b20d66ED46D6F258d0\",\n \"UniswapV4Initializer\": \"0x70d20cd48791E527036491dc464C8Dc58351Dd93\",\n \"UniswapV4Migrator\": \"0xb6D69eAA98E657bEEFF7ca4452768e6f707aa6b1\",\n \"UniswapV4MigratorHook\": \"0xFB0671Ec46190b09255776d2D77744fa101Ba500\",\n \"UniswapV4MulticurveInitializer\": \"0xac7939F1B4079d55A7fA4DFA314Ac0173A77bA40\",\n \"UniswapV4MulticurveInitializerHook\": \"0x11b55A121a38FDab8FAF16f9f1A4f124E3f42d40\",\n \"UniswapV4ScheduledMulticurveInitializer\": \"0xF84378C9F39e0FF267f3101c88773359c5393876\",\n \"UniswapV4ScheduledMulticurveInitializerHook\": \"0xc6a562cb5CbFA29BCB1bDCCF903b8B8f2E4A2DC0\"\n },\n \"4326\": {\n \"Airlock\": \"0xDe3599a2eC440B296373a983C85C365DA55d9dFA\",\n \"NoOpGovernanceFactory\": \"0xddAE8B3eD08184682f7Bc32B74d943cEEfEab638\",\n \"NoOpMigrator\": \"0x233A71A7bB928b1357A1Ebf454298320989Ca5B5\"\n },\n \"4801\": {\n \"Airlock\": \"0x5F3bA43D44375286296Cb85F1EA2EBfa25dde731\",\n \"GovernanceFactory\": \"0x136191B46478cAB023cbC01a36160C4Aad81677a\",\n \"TokenFactory\": \"0x5FBe931dc4B923A7abe4c47aD68d5bF9Eda5B76D\",\n \"UniswapV2Migrator\": \"0x8b4C7DB9121FC885689C0A50D5a1429F15AEc2a0\",\n \"UniswapV3Initializer\": \"0x9916Ec1c1E0462F6F8f7514e414F06bf001Ac82A\",\n \"WETH\": \"0x660eAaEdEBc968f8f3694354FA8EC0b4c5Ba8D12\"\n },\n \"6343\": {\n \"Airlock\": \"0xDe3599a2eC440B296373a983C85C365DA55d9dFA\",\n \"NoOpGovernanceFactory\": \"0xddAE8B3eD08184682f7Bc32B74d943cEEfEab638\",\n \"NoOpMigrator\": \"0x233A71A7bB928b1357A1Ebf454298320989Ca5B5\"\n },\n \"8453\": {\n \"Airlock\": \"0x660eAaEdEBc968f8f3694354FA8EC0b4c5Ba8D12\",\n \"Bundler\": \"0x136191B46478cAB023cbC01a36160C4Aad81677a\",\n \"CloneDERC20VotesV2\": \"0x4BBfed1c27CDE12eF6638251D81ab4e3be7556b7\",\n \"CloneDERC20VotesV2Factory\": \"0x16F5ACB64F4FA17296E942C51d3395aDC318f9e1\",\n \"DecayMulticurveInitializer\": \"0xD59cE43E53D69F190E15d9822Fb4540dCcc91178\",\n \"DecayMulticurveInitializerHook\": \"0xbB7784A4d481184283Ed89619A3e3ed143e1Adc0\",\n \"DopplerDeployer\": \"0xb35469ee64A87Afd19B31615094fE3962d73e421\",\n \"DopplerHookInitializer\": \"0xAA096F558f3d4c9226De77E7Cc05f18E180B2544\",\n \"DopplerLensQuoter\": \"0x43d0D97EC9241A8F05A264f94B82A1d2E600f2B3\",\n \"GovernanceFactory\": \"0xa82c66b6ddEb92089015C3565E05B5c9750b2d4B\",\n \"LaunchpadGovernanceFactory\": \"0x40Bcb4dDA3BcF7dba30C5d10c31EE2791ed9ddCa\",\n \"LockableUniswapV3Initializer\": \"0xE0dC4012AC9C868F09c6e4b20d66ED46D6F258d0\",\n \"NoOpGovernanceFactory\": \"0x3AD727ee0FBBb8Ee0920933FdB96F23fD56f1299\",\n \"NoOpMigrator\": \"0x6ddfED58D238Ca3195E49d8ac3d4cEa6386E5C33\",\n \"Quoter\": \"0xeC0fAe60Ac92044B4946DFaec87AC4CE53015906\",\n \"RehypeDopplerHook\": \"0x97cAD5684FB7Cc2bEd9a9b5eBfba67138F4f2503\",\n \"StreamableFeesLocker\": \"0x0A00775D71a42cd33D62780003035e7F5b47bD3A\",\n \"TokenFactory\": \"0x4225C632b62622Bd7B0A3eC9745C0a866Ff94F6F\",\n \"TokenFactory80\": \"0xf0B5141dD9096254B2ca624dff26024f46087229\",\n \"UniswapV2Migrator\": \"0x5F3bA43D44375286296Cb85F1EA2EBfa25dde731\",\n \"UniswapV3Initializer\": \"0xaA47D2977d622DBdFD33eeF6a8276727c52EB4e5\",\n \"UniswapV4Initializer\": \"0x53b4c21a6Cb61D64F636ABBfa6E8E90E6558e8ad\",\n \"UniswapV4Migrator\": \"0xd3B4cF7FD24381e90A4F012fC6c5976b87B9B3cE\",\n \"UniswapV4MigratorHook\": \"0xD6FECFF347c6203A41874e8D77dE669B54e7A500\",\n \"UniswapV4MulticurveInitializer\": \"0x65dE470Da664A5be139A5D812bE5FDa0d76CC951\",\n \"UniswapV4MulticurveInitializerHook\": \"0x892D3C2B4ABEAAF67d52A7B29783E2161B7CaD40\",\n \"UniswapV4ScheduledMulticurveInitializer\": \"0xA36715dA46Ddf4A769f3290f49AF58bF8132ED8E\",\n \"UniswapV4ScheduledMulticurveInitializerHook\": \"0x3e342a06f9592459D75721d6956B570F02eF2Dc0\"\n },\n \"10143\": {\n \"Airlock\": \"0xDe3599a2eC440B296373a983C85C365DA55d9dFA\",\n \"AirlockMultisigTestnet\": \"0x0abCf819FD57C9f0141628410fFC273405E44426\",\n \"Bundler\": \"0xf6023127f6E937091D5B605680056A6D27524bad\",\n \"DopplerDeployer\": \"0xb35469ee64A87Afd19B31615094fE3962d73e421\",\n \"DopplerLensQuoter\": \"0x2F2BAcd46d3F5c9EE052Ab392b73711dB89129DB\",\n \"GovernanceFactory\": \"0x014E1c0bd34f3B10546E554CB33B3293fECDD056\",\n \"LockableUniswapV3Initializer\": \"0x99C94B9Df930E1E21a4E4a2c105dBff21bF5c5aE\",\n \"NoOpGovernanceFactory\": \"0x094D926A969B3024ca46D2186BF13FD5CDBA9CE2\",\n \"NoOpMigrator\": \"0x5CadB034267751a364dDD4d321C99E07A307f915\",\n \"StreamableFeesLocker\": \"0x0d2f38d807bfAd5C18e430516e10ab560D300caF\",\n \"TimelockFactory\": \"0xB544F6fFF61F601F638C3930F6Aec4bbD7DA42b9\",\n \"TokenFactory\": \"0x8AF018e28c273826e6b2d5a99e81c8fB63729b07\",\n \"TokenFactory80\": \"0xf0B5141dD9096254B2ca624dff26024f46087229\",\n \"UniswapV2Locker\": \"0xfF3e891F2C1389eF638F9b0576003590aeEe1844\",\n \"UniswapV2Migrator\": \"0x43d0D97EC9241A8F05A264f94B82A1d2E600f2B3\",\n \"UniswapV3Initializer\": \"0x9F4e56be80f08ba1A2445645EFa6d231E27b43ec\",\n \"UniswapV4Initializer\": \"0x53b4c21a6Cb61D64F636ABBfa6E8E90E6558e8ad\",\n \"UniswapV4Migrator\": \"0x4B0EC16Eb40318Ca5A4346f20F04A2285C19675B\",\n \"UniswapV4MigratorHook\": \"0x76E1f507592d9856B48482c599732d129eD6a500\",\n \"UniswapV4MulticurveInitializer\": \"0xA3C847eAb58eAa9cbc215C785c9cfBc19CDABD5f\",\n \"UniswapV4MulticurveInitializerHook\": \"0xFaF16d11737E6552156DD328cD26C530e1da2D40\",\n \"WETH\": \"0x660eAaEdEBc968f8f3694354FA8EC0b4c5Ba8D12\"\n },\n \"57073\": {\n \"Airlock\": \"0x660eAaEdEBc968f8f3694354FA8EC0b4c5Ba8D12\",\n \"Bundler\": \"0x136191B46478cAB023cbC01a36160C4Aad81677a\",\n \"DopplerDeployer\": \"0xa82c66b6ddEb92089015C3565E05B5c9750b2d4B\",\n \"DopplerLensQuoter\": \"0x8AF018e28c273826e6b2d5a99e81c8fB63729b07\",\n \"GovernanceFactory\": \"0xb4deE32EB70A5E55f3D2d861F49Fb3D79f7a14d9\",\n \"TokenFactory\": \"0xFAafdE6a5b658684cC5eb0C5c2c755B00A246F45\",\n \"UniswapV2Migrator\": \"0x5F3bA43D44375286296Cb85F1EA2EBfa25dde731\",\n \"UniswapV3Initializer\": \"0xaA47D2977d622DBdFD33eeF6a8276727c52EB4e5\",\n \"UniswapV4Initializer\": \"0x014E1c0bd34f3B10546E554CB33B3293fECDD056\"\n },\n \"84532\": {\n \"Airlock\": \"0x3411306Ce66c9469BFF1535BA955503c4Bde1C6e\",\n \"AirlockMultisigTestnet\": \"0x0abCf819FD57C9f0141628410fFC273405E44426\",\n \"BasicMultisig\": \"0x6f645FA08B7eadAD620CEC85634204b1d7A46DC2\",\n \"Bundler\": \"0xab7BACB0d5C2C10152f92D34e07F530EB3CB0Fb1\",\n \"CloneDERC20VotesV2\": \"0x4BBfed1c27CDE12eF6638251D81ab4e3be7556b7\",\n \"CloneDERC20VotesV2Factory\": \"0x16F5ACB64F4FA17296E942C51d3395aDC318f9e1\",\n \"CloneERC20\": \"0xE7F1Cc50CCa68975eD6E56Ee4b0Aaf171D02732A\",\n \"CloneERC20Factory\": \"0xbf4Ca4D527c9760A884df31292f72E9AcA503045\",\n \"CloneERC20Votes\": \"0x52831E40151a79FE2e74549b0974d44A10Ac30aD\",\n \"CloneERC20VotesFactory\": \"0x9a497a9fB78e49984B9d260abA1F4AD6321D4D92\",\n \"DecayMulticurveInitializer\": \"0xd59ce43e53d69f190e15d9822fb4540dccc91178\",\n \"DecayMulticurveInitializerHook\": \"0xbb7784a4d481184283ed89619a3e3ed143e1adc0\",\n \"DopplerDeployer\": \"0xb35469ee64A87Afd19B31615094fE3962d73e421\",\n \"DopplerHookInitializer\": \"0xAA096F558f3d4c9226De77E7Cc05f18E180B2544\",\n \"DopplerLensQuoter\": \"0x4a8d81Db741248a36D9eb3bc6eF648Bf798B47a7\",\n \"GovernanceFactory\": \"0x9dBFaaDC8c0cB2c34bA698DD9426555336992e20\",\n \"LockableUniswapV3Initializer\": \"0x16AdA5Be50C3c2D94Af5fEae6b539C40A78Ad53c\",\n \"MulticurveLibrary\": \"0x32238a39ba5aF060EFbfAda59979B639E0945fE0\",\n \"NoOpGovernanceFactory\": \"0x7bD798fafC99A3b17E261F8308A8C11B56935ea1\",\n \"NoOpMigrator\": \"0xF11066abbd329ac4bBA39455340539322C222eb0\",\n \"Quoter\": \"0xeC0fAe60Ac92044B4946DFaec87AC4CE53015906\",\n \"RehypeDopplerHook\": \"0x97cAD5684FB7Cc2bEd9a9b5eBfba67138F4f2503\",\n \"StreamableFeesLocker\": \"0x3345E557c5C0b474bE1eb4693264008B8562Aa9c\",\n \"TeamGovernanceFactory\": \"0x8aF3001ED75F86f4Dd910577ECa9C5dB7CEa765c\",\n \"TokenFactory\": \"0x9D8fd79B2a59c5d91ccBd79c3AEb4de56451Bb02\",\n \"TokenFactory80\": \"0xf0B5141dD9096254B2ca624dff26024f46087229\",\n \"TopUpDistributor\": \"0xD8F05757B7d638a48Fd14e15EB6782bab50Ad57F\",\n \"UniswapV2Locker\": \"0x78500ab9297aD87b1f6A0329e6af226F73886a5D\",\n \"UniswapV2Migrator\": \"0x04a898f3722c38F9Def707bD17DC78920EFA977C\",\n \"UniswapV2MigratorSplit\": \"0x935D94FcbBbA9BE1184953BF0B93E4D844cd0335\",\n \"UniswapV3Initializer\": \"0x4C3062B9ccFdbCB10353F57C1B59a29d4c5CFa47\",\n \"UniswapV4Initializer\": \"0x53b4c21a6Cb61D64F636ABBfa6E8E90E6558e8ad\",\n \"UniswapV4Migrator\": \"0xEEe0eCCb54398ce371CAACBCEf076d3Ed597DDb3\",\n \"UniswapV4MigratorHook\": \"0x127cAAAd598Ffa97577940b0a5c3b6150019E500\",\n \"UniswapV4MigratorSplit\": \"0xC647fED0746cc14fBF645aEDa15CC40B18505490\",\n \"UniswapV4MigratorSplitHook\": \"0x20e03085adBcfCB840De898F37617ABD08da2500\",\n \"UniswapV4MulticurveInitializer\": \"0x1718405E58c61425cDc0083262bC9f72198F5232\",\n \"UniswapV4MulticurveInitializerHook\": \"0x6a1061FC558dDe1E6fD0eFd641b370d435b56d40\",\n \"UniswapV4ScheduledMulticurveInitializer\": \"0xF84378C9F39e0FF267f3101c88773359c5393876\",\n \"UniswapV4ScheduledMulticurveInitializerHook\": \"0xc6a562cb5CbFA29BCB1bDCCF903b8B8f2E4A2DC0\",\n \"WETH\": \"0x660eAaEdEBc968f8f3694354FA8EC0b4c5Ba8D12\"\n },\n \"11155111\": {\n \"Airlock\": \"0xDe3599a2eC440B296373a983C85C365DA55d9dFA\",\n \"AirlockMultisigTestnet\": \"0x0abCf819FD57C9f0141628410fFC273405E44426\",\n \"CloneDERC20VotesV2\": \"0x4BBfed1c27CDE12eF6638251D81ab4e3be7556b7\",\n \"CloneDERC20VotesV2Factory\": \"0x16F5ACB64F4FA17296E942C51d3395aDC318f9e1\",\n \"CloneERC20\": \"0x215b2cE3Dd8D110394e94A868580D61a77aDEc4A\",\n \"CloneERC20Factory\": \"0xe7Df2A4520C26a2D4Dedb3a7585BFBcd30eABA6e\",\n \"CloneERC20Votes\": \"0xA8d0E8036D3fAE21C7Af075ad41942Bc1f807CDF\",\n \"CloneERC20VotesFactory\": \"0x5A92bFfbc01ea0396A9c7D4154d36d4EAF2e483E\",\n \"DopplerDeployer\": \"0xb35469ee64A87Afd19B31615094fE3962d73e421\",\n \"DopplerHookInitializer\": \"0xAA096F558f3d4c9226De77E7Cc05f18E180B2544\",\n \"NoOpGovernanceFactory\": \"0xddAE8B3eD08184682f7Bc32B74d943cEEfEab638\",\n \"NoOpMigrator\": \"0x233A71A7bB928b1357A1Ebf454298320989Ca5B5\",\n \"Quoter\": \"0xeC0fAe60Ac92044B4946DFaec87AC4CE53015906\",\n \"RehypeDopplerHook\": \"0x97cAD5684FB7Cc2bEd9a9b5eBfba67138F4f2503\",\n \"StreamableFeesLocker\": \"0xe24FC2F7191e850e2D4514aBb4d39305b1871eC6\",\n \"UniswapV2Locker\": \"0xA366D94eDA7abEc16bfa5619A855a6208bE3aEE9\",\n \"UniswapV2Migrator\": \"0x765875bff87614cE0581ee73B9fa663B71F3DfF2\",\n \"UniswapV4Initializer\": \"0x53b4c21a6Cb61D64F636ABBfa6E8E90E6558e8ad\",\n \"UniswapV4Migrator\": \"0x0820A4D0173C17Ece283f7bDaAF0f8876eB205f5\",\n \"UniswapV4MigratorHook\": \"0x4053D4fa966cbdCC20Ec62070aC8814De8bEE500\",\n \"UniswapV4ScheduledMulticurveInitializer\": \"0xF84378C9F39e0FF267f3101c88773359c5393876\",\n \"UniswapV4ScheduledMulticurveInitializerHook\": \"0xc6a562cb5CbFA29BCB1bDCCF903b8B8f2E4A2DC0\"\n }\n} as const\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk3MVW6UIW_js = require('./chunk-3MVW6UIW.js');
|
|
4
4
|
|
|
5
5
|
// src/entities/token/derc20/Derc20.ts
|
|
6
6
|
var Derc20 = class _Derc20 {
|
|
@@ -24,7 +24,7 @@ var Derc20 = class _Derc20 {
|
|
|
24
24
|
async getName() {
|
|
25
25
|
return await this.rpc.readContract({
|
|
26
26
|
address: this.address,
|
|
27
|
-
abi:
|
|
27
|
+
abi: chunk3MVW6UIW_js.derc20Abi,
|
|
28
28
|
functionName: "name"
|
|
29
29
|
});
|
|
30
30
|
}
|
|
@@ -32,7 +32,7 @@ var Derc20 = class _Derc20 {
|
|
|
32
32
|
async getSymbol() {
|
|
33
33
|
return await this.rpc.readContract({
|
|
34
34
|
address: this.address,
|
|
35
|
-
abi:
|
|
35
|
+
abi: chunk3MVW6UIW_js.derc20Abi,
|
|
36
36
|
functionName: "symbol"
|
|
37
37
|
});
|
|
38
38
|
}
|
|
@@ -40,7 +40,7 @@ var Derc20 = class _Derc20 {
|
|
|
40
40
|
async getDecimals() {
|
|
41
41
|
return await this.rpc.readContract({
|
|
42
42
|
address: this.address,
|
|
43
|
-
abi:
|
|
43
|
+
abi: chunk3MVW6UIW_js.derc20Abi,
|
|
44
44
|
functionName: "decimals"
|
|
45
45
|
});
|
|
46
46
|
}
|
|
@@ -48,7 +48,7 @@ var Derc20 = class _Derc20 {
|
|
|
48
48
|
async getTokenURI() {
|
|
49
49
|
return await this.rpc.readContract({
|
|
50
50
|
address: this.address,
|
|
51
|
-
abi:
|
|
51
|
+
abi: chunk3MVW6UIW_js.derc20Abi,
|
|
52
52
|
functionName: "tokenURI"
|
|
53
53
|
});
|
|
54
54
|
}
|
|
@@ -59,7 +59,7 @@ var Derc20 = class _Derc20 {
|
|
|
59
59
|
async getDelegates(account) {
|
|
60
60
|
return await this.rpc.readContract({
|
|
61
61
|
address: this.address,
|
|
62
|
-
abi:
|
|
62
|
+
abi: chunk3MVW6UIW_js.derc20Abi,
|
|
63
63
|
functionName: "delegates",
|
|
64
64
|
args: [account]
|
|
65
65
|
});
|
|
@@ -68,7 +68,7 @@ var Derc20 = class _Derc20 {
|
|
|
68
68
|
async getVotes(account) {
|
|
69
69
|
return await this.rpc.readContract({
|
|
70
70
|
address: this.address,
|
|
71
|
-
abi:
|
|
71
|
+
abi: chunk3MVW6UIW_js.derc20Abi,
|
|
72
72
|
functionName: "getVotes",
|
|
73
73
|
args: [account]
|
|
74
74
|
});
|
|
@@ -77,7 +77,7 @@ var Derc20 = class _Derc20 {
|
|
|
77
77
|
async getPastVotes(account, timepoint) {
|
|
78
78
|
return await this.rpc.readContract({
|
|
79
79
|
address: this.address,
|
|
80
|
-
abi:
|
|
80
|
+
abi: chunk3MVW6UIW_js.derc20Abi,
|
|
81
81
|
functionName: "getPastVotes",
|
|
82
82
|
args: [account, timepoint]
|
|
83
83
|
});
|
|
@@ -90,7 +90,7 @@ var Derc20 = class _Derc20 {
|
|
|
90
90
|
async getAllowance(owner, spender) {
|
|
91
91
|
return await this.rpc.readContract({
|
|
92
92
|
address: this.address,
|
|
93
|
-
abi:
|
|
93
|
+
abi: chunk3MVW6UIW_js.derc20Abi,
|
|
94
94
|
functionName: "allowance",
|
|
95
95
|
args: [owner, spender]
|
|
96
96
|
});
|
|
@@ -102,7 +102,7 @@ var Derc20 = class _Derc20 {
|
|
|
102
102
|
async getBalanceOf(account) {
|
|
103
103
|
return await this.rpc.readContract({
|
|
104
104
|
address: this.address,
|
|
105
|
-
abi:
|
|
105
|
+
abi: chunk3MVW6UIW_js.derc20Abi,
|
|
106
106
|
functionName: "balanceOf",
|
|
107
107
|
args: [account]
|
|
108
108
|
});
|
|
@@ -111,7 +111,7 @@ var Derc20 = class _Derc20 {
|
|
|
111
111
|
async getTotalSupply() {
|
|
112
112
|
return await this.rpc.readContract({
|
|
113
113
|
address: this.address,
|
|
114
|
-
abi:
|
|
114
|
+
abi: chunk3MVW6UIW_js.derc20Abi,
|
|
115
115
|
functionName: "totalSupply"
|
|
116
116
|
});
|
|
117
117
|
}
|
|
@@ -119,7 +119,7 @@ var Derc20 = class _Derc20 {
|
|
|
119
119
|
async getVestingDuration() {
|
|
120
120
|
return await this.rpc.readContract({
|
|
121
121
|
address: this.address,
|
|
122
|
-
abi:
|
|
122
|
+
abi: chunk3MVW6UIW_js.derc20Abi,
|
|
123
123
|
functionName: "vestingDuration"
|
|
124
124
|
});
|
|
125
125
|
}
|
|
@@ -127,7 +127,7 @@ var Derc20 = class _Derc20 {
|
|
|
127
127
|
async getVestingStart() {
|
|
128
128
|
return await this.rpc.readContract({
|
|
129
129
|
address: this.address,
|
|
130
|
-
abi:
|
|
130
|
+
abi: chunk3MVW6UIW_js.derc20Abi,
|
|
131
131
|
functionName: "vestingStart"
|
|
132
132
|
});
|
|
133
133
|
}
|
|
@@ -135,7 +135,7 @@ var Derc20 = class _Derc20 {
|
|
|
135
135
|
async getVestedTotalAmount() {
|
|
136
136
|
return await this.rpc.readContract({
|
|
137
137
|
address: this.address,
|
|
138
|
-
abi:
|
|
138
|
+
abi: chunk3MVW6UIW_js.derc20Abi,
|
|
139
139
|
functionName: "vestedTotalAmount"
|
|
140
140
|
});
|
|
141
141
|
}
|
|
@@ -143,7 +143,7 @@ var Derc20 = class _Derc20 {
|
|
|
143
143
|
async getAvailableVestedAmount(account) {
|
|
144
144
|
return await this.rpc.readContract({
|
|
145
145
|
address: this.address,
|
|
146
|
-
abi:
|
|
146
|
+
abi: chunk3MVW6UIW_js.derc20Abi,
|
|
147
147
|
functionName: "computeAvailableVestedAmount",
|
|
148
148
|
args: [account]
|
|
149
149
|
});
|
|
@@ -152,7 +152,7 @@ var Derc20 = class _Derc20 {
|
|
|
152
152
|
async getYearlyMintRate() {
|
|
153
153
|
return await this.rpc.readContract({
|
|
154
154
|
address: this.address,
|
|
155
|
-
abi:
|
|
155
|
+
abi: chunk3MVW6UIW_js.derc20Abi,
|
|
156
156
|
functionName: "yearlyMintRate"
|
|
157
157
|
});
|
|
158
158
|
}
|
|
@@ -160,7 +160,7 @@ var Derc20 = class _Derc20 {
|
|
|
160
160
|
async getPool() {
|
|
161
161
|
return await this.rpc.readContract({
|
|
162
162
|
address: this.address,
|
|
163
|
-
abi:
|
|
163
|
+
abi: chunk3MVW6UIW_js.derc20Abi,
|
|
164
164
|
functionName: "pool"
|
|
165
165
|
});
|
|
166
166
|
}
|
|
@@ -168,7 +168,7 @@ var Derc20 = class _Derc20 {
|
|
|
168
168
|
async getIsPoolUnlocked() {
|
|
169
169
|
return await this.rpc.readContract({
|
|
170
170
|
address: this.address,
|
|
171
|
-
abi:
|
|
171
|
+
abi: chunk3MVW6UIW_js.derc20Abi,
|
|
172
172
|
functionName: "isPoolUnlocked"
|
|
173
173
|
});
|
|
174
174
|
}
|
|
@@ -176,7 +176,7 @@ var Derc20 = class _Derc20 {
|
|
|
176
176
|
async getCurrentYearStart() {
|
|
177
177
|
return await this.rpc.readContract({
|
|
178
178
|
address: this.address,
|
|
179
|
-
abi:
|
|
179
|
+
abi: chunk3MVW6UIW_js.derc20Abi,
|
|
180
180
|
functionName: "currentYearStart"
|
|
181
181
|
});
|
|
182
182
|
}
|
|
@@ -184,7 +184,7 @@ var Derc20 = class _Derc20 {
|
|
|
184
184
|
async getLastMintTimestamp() {
|
|
185
185
|
return await this.rpc.readContract({
|
|
186
186
|
address: this.address,
|
|
187
|
-
abi:
|
|
187
|
+
abi: chunk3MVW6UIW_js.derc20Abi,
|
|
188
188
|
functionName: "lastMintTimestamp"
|
|
189
189
|
});
|
|
190
190
|
}
|
|
@@ -196,7 +196,7 @@ var Derc20 = class _Derc20 {
|
|
|
196
196
|
async getVestingData(account) {
|
|
197
197
|
const result = await this.rpc.readContract({
|
|
198
198
|
address: this.address,
|
|
199
|
-
abi:
|
|
199
|
+
abi: chunk3MVW6UIW_js.derc20Abi,
|
|
200
200
|
functionName: "getVestingDataOf",
|
|
201
201
|
args: [account]
|
|
202
202
|
});
|
|
@@ -218,7 +218,7 @@ var Derc20 = class _Derc20 {
|
|
|
218
218
|
}
|
|
219
219
|
const { request } = await this.rpc.simulateContract({
|
|
220
220
|
address: this.address,
|
|
221
|
-
abi:
|
|
221
|
+
abi: chunk3MVW6UIW_js.derc20Abi,
|
|
222
222
|
functionName: "approve",
|
|
223
223
|
args: [spender, value],
|
|
224
224
|
account: this.walletClient.account
|
|
@@ -236,7 +236,7 @@ var Derc20 = class _Derc20 {
|
|
|
236
236
|
}
|
|
237
237
|
const { request } = await this.rpc.simulateContract({
|
|
238
238
|
address: this.address,
|
|
239
|
-
abi:
|
|
239
|
+
abi: chunk3MVW6UIW_js.derc20Abi,
|
|
240
240
|
functionName: "delegate",
|
|
241
241
|
args: [delegatee],
|
|
242
242
|
account: this.walletClient.account
|
|
@@ -265,7 +265,7 @@ var Derc20 = class _Derc20 {
|
|
|
265
265
|
const [nonce, name] = await Promise.all([
|
|
266
266
|
this.rpc.readContract({
|
|
267
267
|
address: this.address,
|
|
268
|
-
abi:
|
|
268
|
+
abi: chunk3MVW6UIW_js.derc20Abi,
|
|
269
269
|
functionName: "nonces",
|
|
270
270
|
args: [accountAddress]
|
|
271
271
|
}),
|
|
@@ -296,7 +296,7 @@ var Derc20 = class _Derc20 {
|
|
|
296
296
|
const { v, r, s } = _Derc20.splitSignature(signature);
|
|
297
297
|
const { request } = await this.rpc.simulateContract({
|
|
298
298
|
address: this.address,
|
|
299
|
-
abi:
|
|
299
|
+
abi: chunk3MVW6UIW_js.derc20Abi,
|
|
300
300
|
functionName: "delegateBySig",
|
|
301
301
|
args: [delegatee, nonce, expiry, v, r, s],
|
|
302
302
|
account: this.walletClient.account
|
|
@@ -314,7 +314,7 @@ var Derc20 = class _Derc20 {
|
|
|
314
314
|
}
|
|
315
315
|
const { request } = await this.rpc.simulateContract({
|
|
316
316
|
address: this.address,
|
|
317
|
-
abi:
|
|
317
|
+
abi: chunk3MVW6UIW_js.derc20Abi,
|
|
318
318
|
functionName: "release",
|
|
319
319
|
args: [],
|
|
320
320
|
account: this.walletClient.account
|
|
@@ -326,5 +326,5 @@ var Derc20 = class _Derc20 {
|
|
|
326
326
|
};
|
|
327
327
|
|
|
328
328
|
exports.Derc20 = Derc20;
|
|
329
|
-
//# sourceMappingURL=chunk-
|
|
330
|
-
//# sourceMappingURL=chunk-
|
|
329
|
+
//# sourceMappingURL=chunk-RXUJ4DUB.js.map
|
|
330
|
+
//# sourceMappingURL=chunk-RXUJ4DUB.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/entities/token/derc20/Derc20.ts"],"names":["derc20Abi"],"mappings":";;;;;AASO,IAAM,MAAA,GAAN,MAAM,OAAA,CAAO;AAAA,EAIlB,IAAY,GAAA,GAAoB;AAC9B,IAAA,OAAO,IAAA,CAAK,YAAA;AAAA,EACd;AAAA,EAEA,OAAe,eAAe,SAAA,EAI5B;AACA,IAAA,MAAM,GAAA,GAAM,UAAU,WAAA,EAAY;AAClC,IAAA,MAAM,IAAI,CAAA,EAAA,EAAK,GAAA,CAAI,KAAA,CAAM,CAAA,EAAG,EAAE,CAAC,CAAA,CAAA;AAC/B,IAAA,MAAM,IAAI,CAAA,EAAA,EAAK,GAAA,CAAI,KAAA,CAAM,EAAA,EAAI,GAAG,CAAC,CAAA,CAAA;AACjC,IAAA,IAAI,IAAI,QAAA,CAAS,GAAA,CAAI,MAAM,GAAA,EAAK,GAAG,GAAG,EAAE,CAAA;AACxC,IAAA,IAAI,CAAA,GAAI,IAAI,CAAA,IAAK,EAAA;AACjB,IAAA,OAAO,EAAE,CAAA,EAAG,CAAA,EAAG,CAAA,EAAE;AAAA,EACnB;AAAA,EAEA,WAAA,CACE,YAAA,EACA,YAAA,EACA,OAAA,EACA;AACA,IAAA,IAAA,CAAK,YAAA,GAAe,YAAA;AACpB,IAAA,IAAA,CAAK,YAAA,GAAe,YAAA;AACpB,IAAA,IAAA,CAAK,OAAA,GAAU,OAAA;AAAA,EACjB;AAAA;AAAA,EAGA,MAAM,OAAA,GAA2B;AAC/B,IAAA,OAAO,MAAM,IAAA,CAAK,GAAA,CAAI,YAAA,CAAa;AAAA,MACjC,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,GAAA,EAAKA,0BAAA;AAAA,MACL,YAAA,EAAc;AAAA,KACf,CAAA;AAAA,EACH;AAAA;AAAA,EAGA,MAAM,SAAA,GAA6B;AACjC,IAAA,OAAO,MAAM,IAAA,CAAK,GAAA,CAAI,YAAA,CAAa;AAAA,MACjC,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,GAAA,EAAKA,0BAAA;AAAA,MACL,YAAA,EAAc;AAAA,KACf,CAAA;AAAA,EACH;AAAA;AAAA,EAGA,MAAM,WAAA,GAA+B;AACnC,IAAA,OAAO,MAAM,IAAA,CAAK,GAAA,CAAI,YAAA,CAAa;AAAA,MACjC,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,GAAA,EAAKA,0BAAA;AAAA,MACL,YAAA,EAAc;AAAA,KACf,CAAA;AAAA,EACH;AAAA;AAAA,EAGA,MAAM,WAAA,GAA+B;AACnC,IAAA,OAAO,MAAM,IAAA,CAAK,GAAA,CAAI,YAAA,CAAa;AAAA,MACjC,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,GAAA,EAAKA,0BAAA;AAAA,MACL,YAAA,EAAc;AAAA,KACf,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,aAAa,OAAA,EAAoC;AACrD,IAAA,OAAO,MAAM,IAAA,CAAK,GAAA,CAAI,YAAA,CAAa;AAAA,MACjC,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,GAAA,EAAKA,0BAAA;AAAA,MACL,YAAA,EAAc,WAAA;AAAA,MACd,IAAA,EAAM,CAAC,OAAO;AAAA,KACf,CAAA;AAAA,EACH;AAAA;AAAA,EAGA,MAAM,SAAS,OAAA,EAAmC;AAChD,IAAA,OAAO,MAAM,IAAA,CAAK,GAAA,CAAI,YAAA,CAAa;AAAA,MACjC,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,GAAA,EAAKA,0BAAA;AAAA,MACL,YAAA,EAAc,UAAA;AAAA,MACd,IAAA,EAAM,CAAC,OAAO;AAAA,KACf,CAAA;AAAA,EACH;AAAA;AAAA,EAGA,MAAM,YAAA,CAAa,OAAA,EAAkB,SAAA,EAAoC;AACvE,IAAA,OAAO,MAAM,IAAA,CAAK,GAAA,CAAI,YAAA,CAAa;AAAA,MACjC,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,GAAA,EAAKA,0BAAA;AAAA,MACL,YAAA,EAAc,cAAA;AAAA,MACd,IAAA,EAAM,CAAC,OAAA,EAAS,SAAS;AAAA,KAC1B,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,YAAA,CAAa,KAAA,EAAgB,OAAA,EAAmC;AACpE,IAAA,OAAO,MAAM,IAAA,CAAK,GAAA,CAAI,YAAA,CAAa;AAAA,MACjC,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,GAAA,EAAKA,0BAAA;AAAA,MACL,YAAA,EAAc,WAAA;AAAA,MACd,IAAA,EAAM,CAAC,KAAA,EAAO,OAAO;AAAA,KACtB,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,aAAa,OAAA,EAAmC;AACpD,IAAA,OAAO,MAAM,IAAA,CAAK,GAAA,CAAI,YAAA,CAAa;AAAA,MACjC,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,GAAA,EAAKA,0BAAA;AAAA,MACL,YAAA,EAAc,WAAA;AAAA,MACd,IAAA,EAAM,CAAC,OAAO;AAAA,KACf,CAAA;AAAA,EACH;AAAA;AAAA,EAGA,MAAM,cAAA,GAAkC;AACtC,IAAA,OAAO,MAAM,IAAA,CAAK,GAAA,CAAI,YAAA,CAAa;AAAA,MACjC,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,GAAA,EAAKA,0BAAA;AAAA,MACL,YAAA,EAAc;AAAA,KACf,CAAA;AAAA,EACH;AAAA;AAAA,EAGA,MAAM,kBAAA,GAAsC;AAC1C,IAAA,OAAO,MAAM,IAAA,CAAK,GAAA,CAAI,YAAA,CAAa;AAAA,MACjC,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,GAAA,EAAKA,0BAAA;AAAA,MACL,YAAA,EAAc;AAAA,KACf,CAAA;AAAA,EACH;AAAA;AAAA,EAGA,MAAM,eAAA,GAAmC;AACvC,IAAA,OAAO,MAAM,IAAA,CAAK,GAAA,CAAI,YAAA,CAAa;AAAA,MACjC,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,GAAA,EAAKA,0BAAA;AAAA,MACL,YAAA,EAAc;AAAA,KACf,CAAA;AAAA,EACH;AAAA;AAAA,EAGA,MAAM,oBAAA,GAAwC;AAC5C,IAAA,OAAO,MAAM,IAAA,CAAK,GAAA,CAAI,YAAA,CAAa;AAAA,MACjC,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,GAAA,EAAKA,0BAAA;AAAA,MACL,YAAA,EAAc;AAAA,KACf,CAAA;AAAA,EACH;AAAA;AAAA,EAGA,MAAM,yBAAyB,OAAA,EAAmC;AAChE,IAAA,OAAO,MAAM,IAAA,CAAK,GAAA,CAAI,YAAA,CAAa;AAAA,MACjC,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,GAAA,EAAKA,0BAAA;AAAA,MACL,YAAA,EAAc,8BAAA;AAAA,MACd,IAAA,EAAM,CAAC,OAAO;AAAA,KACf,CAAA;AAAA,EACH;AAAA;AAAA,EAGA,MAAM,iBAAA,GAAqC;AACzC,IAAA,OAAO,MAAM,IAAA,CAAK,GAAA,CAAI,YAAA,CAAa;AAAA,MACjC,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,GAAA,EAAKA,0BAAA;AAAA,MACL,YAAA,EAAc;AAAA,KACf,CAAA;AAAA,EACH;AAAA;AAAA,EAGA,MAAM,OAAA,GAA4B;AAChC,IAAA,OAAO,MAAM,IAAA,CAAK,GAAA,CAAI,YAAA,CAAa;AAAA,MACjC,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,GAAA,EAAKA,0BAAA;AAAA,MACL,YAAA,EAAc;AAAA,KACf,CAAA;AAAA,EACH;AAAA;AAAA,EAGA,MAAM,iBAAA,GAAsC;AAC1C,IAAA,OAAO,MAAM,IAAA,CAAK,GAAA,CAAI,YAAA,CAAa;AAAA,MACjC,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,GAAA,EAAKA,0BAAA;AAAA,MACL,YAAA,EAAc;AAAA,KACf,CAAA;AAAA,EACH;AAAA;AAAA,EAGA,MAAM,mBAAA,GAAuC;AAC3C,IAAA,OAAO,MAAM,IAAA,CAAK,GAAA,CAAI,YAAA,CAAa;AAAA,MACjC,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,GAAA,EAAKA,0BAAA;AAAA,MACL,YAAA,EAAc;AAAA,KACf,CAAA;AAAA,EACH;AAAA;AAAA,EAGA,MAAM,oBAAA,GAAwC;AAC5C,IAAA,OAAO,MAAM,IAAA,CAAK,GAAA,CAAI,YAAA,CAAa;AAAA,MACjC,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,GAAA,EAAKA,0BAAA;AAAA,MACL,YAAA,EAAc;AAAA,KACf,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,eAAe,OAAA,EAGlB;AACD,IAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,GAAA,CAAI,YAAA,CAAa;AAAA,MACzC,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,GAAA,EAAKA,0BAAA;AAAA,MACL,YAAA,EAAc,kBAAA;AAAA,MACd,IAAA,EAAM,CAAC,OAAO;AAAA,KACf,CAAA;AAED,IAAA,OAAO;AAAA,MACL,WAAA,EAAa,OAAO,CAAC,CAAA;AAAA,MACrB,cAAA,EAAgB,OAAO,CAAC;AAAA,KAC1B;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,OAAA,CACJ,OAAA,EACA,KAAA,EACA,OAAA,EACwB;AACxB,IAAA,IAAI,CAAC,KAAK,YAAA,EAAc;AACtB,MAAA,MAAM,IAAI,MAAM,6CAA6C,CAAA;AAAA,IAC/D;AAEA,IAAA,MAAM,EAAE,OAAA,EAAQ,GAAI,MAAM,IAAA,CAAK,IAAI,gBAAA,CAAiB;AAAA,MAClD,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,GAAA,EAAKA,0BAAA;AAAA,MACL,YAAA,EAAc,SAAA;AAAA,MACd,IAAA,EAAM,CAAC,OAAA,EAAS,KAAK,CAAA;AAAA,MACrB,OAAA,EAAS,KAAK,YAAA,CAAa;AAAA,KAC5B,CAAA;AAED,IAAA,OAAO,MAAM,KAAK,YAAA,CAAa,aAAA;AAAA,MAC7B,OAAA,EAAS,MAAM,EAAE,GAAG,SAAS,GAAA,EAAK,OAAA,CAAQ,KAAI,GAAI;AAAA,KACpD;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,QAAA,CACJ,SAAA,EACA,OAAA,EACwB;AACxB,IAAA,IAAI,CAAC,KAAK,YAAA,EAAc;AACtB,MAAA,MAAM,IAAI,MAAM,6CAA6C,CAAA;AAAA,IAC/D;AAEA,IAAA,MAAM,EAAE,OAAA,EAAQ,GAAI,MAAM,IAAA,CAAK,IAAI,gBAAA,CAAiB;AAAA,MAClD,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,GAAA,EAAKA,0BAAA;AAAA,MACL,YAAA,EAAc,UAAA;AAAA,MACd,IAAA,EAAM,CAAC,SAAS,CAAA;AAAA,MAChB,OAAA,EAAS,KAAK,YAAA,CAAa;AAAA,KAC5B,CAAA;AAED,IAAA,OAAO,MAAM,KAAK,YAAA,CAAa,aAAA;AAAA,MAC7B,OAAA,EAAS,MAAM,EAAE,GAAG,SAAS,GAAA,EAAK,OAAA,CAAQ,KAAI,GAAI;AAAA,KACpD;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,aAAA,CACJ,SAAA,EACA,MAAA,EACA,OAAA,EACwB;AACxB,IAAA,IAAI,CAAC,KAAK,YAAA,EAAc;AACtB,MAAA,MAAM,IAAI,MAAM,6CAA6C,CAAA;AAAA,IAC/D;AAEA,IAAA,MAAM,IAAA,GAAO,KAAK,YAAA,CAAa,OAAA;AAC/B,IAAA,IAAI,cAAA;AACJ,IAAA,IAAI,OAAO,SAAS,QAAA,EAAU;AAC5B,MAAA,cAAA,GAAiB,IAAA;AAAA,IACnB,WAAW,IAAA,IAAQ,OAAO,IAAA,KAAS,QAAA,IAAY,aAAa,IAAA,EAAM;AAChE,MAAA,cAAA,GAAkB,IAAA,CAA8B,OAAA;AAAA,IAClD,CAAA,MAAO;AACL,MAAA,MAAM,IAAI,MAAM,wBAAwB,CAAA;AAAA,IAC1C;AACA,IAAA,MAAM,CAAC,KAAA,EAAO,IAAI,CAAA,GAAI,MAAM,QAAQ,GAAA,CAAI;AAAA,MACtC,IAAA,CAAK,IAAI,YAAA,CAAa;AAAA,QACpB,SAAS,IAAA,CAAK,OAAA;AAAA,QACd,GAAA,EAAKA,0BAAA;AAAA,QACL,YAAA,EAAc,QAAA;AAAA,QACd,IAAA,EAAM,CAAC,cAAc;AAAA,OACtB,CAAA;AAAA,MACD,KAAK,OAAA;AAAQ,KACd,CAAA;AACD,IAAA,MAAM,OAAA,GACH,KAAK,GAAA,CAAI,KAAA,EAAO,MAChB,MAAM,IAAA,CAAK,IAAI,UAAA,EAAW;AAE7B,IAAA,MAAM,MAAA,GAAS;AAAA,MACb,IAAA;AAAA,MACA,OAAA,EAAS,GAAA;AAAA,MACT,OAAA;AAAA,MACA,mBAAmB,IAAA,CAAK;AAAA,KAC1B;AAEA,IAAA,MAAM,KAAA,GAAQ;AAAA,MACZ,UAAA,EAAY;AAAA,QACV,EAAE,IAAA,EAAM,WAAA,EAAa,IAAA,EAAM,SAAA,EAAU;AAAA,QACrC,EAAE,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,SAAA,EAAU;AAAA,QACjC,EAAE,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,SAAA;AAAU;AACpC,KACF;AAEA,IAAA,MAAM,OAAA,GAAU,EAAE,SAAA,EAAW,KAAA,EAAO,MAAA,EAAO;AAE3C,IAAA,MAAM,SAAA,GAAY,MAAM,IAAA,CAAK,YAAA,CAAa,aAAA,CAAc;AAAA,MACtD,MAAA;AAAA,MACA,KAAA;AAAA,MACA,WAAA,EAAa,YAAA;AAAA,MACb,OAAA;AAAA,MACA,OAAA,EAAS;AAAA,KACV,CAAA;AAED,IAAA,MAAM,EAAE,CAAA,EAAG,CAAA,EAAG,GAAE,GAAI,OAAA,CAAO,eAAe,SAAS,CAAA;AAEnD,IAAA,MAAM,EAAE,OAAA,EAAQ,GAAI,MAAM,IAAA,CAAK,IAAI,gBAAA,CAAiB;AAAA,MAClD,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,GAAA,EAAKA,0BAAA;AAAA,MACL,YAAA,EAAc,eAAA;AAAA,MACd,MAAM,CAAC,SAAA,EAAW,OAAO,MAAA,EAAQ,CAAA,EAAG,GAAG,CAAC,CAAA;AAAA,MACxC,OAAA,EAAS,KAAK,YAAA,CAAa;AAAA,KAC5B,CAAA;AAED,IAAA,OAAO,MAAM,KAAK,YAAA,CAAa,aAAA;AAAA,MAC7B,OAAA,EAAS,MAAM,EAAE,GAAG,SAAS,GAAA,EAAK,OAAA,CAAQ,KAAI,GAAI;AAAA,KACpD;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,QAAQ,OAAA,EAAoD;AAChE,IAAA,IAAI,CAAC,KAAK,YAAA,EAAc;AACtB,MAAA,MAAM,IAAI,MAAM,6CAA6C,CAAA;AAAA,IAC/D;AAEA,IAAA,MAAM,EAAE,OAAA,EAAQ,GAAI,MAAM,IAAA,CAAK,IAAI,gBAAA,CAAiB;AAAA,MAClD,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,GAAA,EAAKA,0BAAA;AAAA,MACL,YAAA,EAAc,SAAA;AAAA,MACd,MAAM,EAAC;AAAA,MACP,OAAA,EAAS,KAAK,YAAA,CAAa;AAAA,KAC5B,CAAA;AAED,IAAA,OAAO,MAAM,KAAK,YAAA,CAAa,aAAA;AAAA,MAC7B,OAAA,EAAS,MAAM,EAAE,GAAG,SAAS,GAAA,EAAK,OAAA,CAAQ,KAAI,GAAI;AAAA,KACpD;AAAA,EACF;AACF","file":"chunk-5FJCRKQ6.js","sourcesContent":["import { type Address, type WalletClient, type PublicClient } from 'viem';\nimport { derc20Abi } from '../../../abis';\nimport { SupportedPublicClient } from '@/types';\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: SupportedPublicClient;\n private walletClient?: WalletClient;\n private address: Address;\n private get rpc(): PublicClient {\n return this.publicClient as PublicClient;\n }\n\n private static splitSignature(signature: `0x${string}`): {\n v: number;\n r: `0x${string}`;\n s: `0x${string}`;\n } {\n const sig = signature.toLowerCase() as `0x${string}`;\n const r = `0x${sig.slice(2, 66)}` as `0x${string}`;\n const s = `0x${sig.slice(66, 130)}` as `0x${string}`;\n let v = parseInt(sig.slice(130, 132), 16);\n if (v < 27) v += 27;\n return { v, r, s };\n }\n\n constructor(\n publicClient: SupportedPublicClient,\n walletClient: WalletClient | undefined,\n address: Address,\n ) {\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.rpc.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.rpc.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.rpc.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.rpc.readContract({\n address: this.address,\n abi: derc20Abi,\n functionName: 'tokenURI',\n });\n }\n\n // -------------------------\n // Governance (Votes) reads\n // -------------------------\n\n /** Get the current delegate for an account */\n async getDelegates(account: Address): Promise<Address> {\n return await this.rpc.readContract({\n address: this.address,\n abi: derc20Abi,\n functionName: 'delegates',\n args: [account],\n });\n }\n\n /** Get current voting power for an account */\n async getVotes(account: Address): Promise<bigint> {\n return await this.rpc.readContract({\n address: this.address,\n abi: derc20Abi,\n functionName: 'getVotes',\n args: [account],\n });\n }\n\n /** Get historical voting power at a given timepoint (block) */\n async getPastVotes(account: Address, timepoint: bigint): Promise<bigint> {\n return await this.rpc.readContract({\n address: this.address,\n abi: derc20Abi,\n functionName: 'getPastVotes',\n args: [account, timepoint],\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.rpc.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.rpc.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.rpc.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.rpc.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.rpc.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.rpc.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.rpc.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.rpc.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.rpc.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.rpc.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.rpc.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.rpc.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.rpc.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(\n spender: Address,\n value: bigint,\n options?: { gas?: bigint },\n ): Promise<`0x${string}`> {\n if (!this.walletClient) {\n throw new Error('Wallet client required for write operations');\n }\n\n const { request } = await this.rpc.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(\n options?.gas ? { ...request, gas: options.gas } : request,\n );\n }\n\n /**\n * Delegate governance votes to an address\n */\n async delegate(\n delegatee: Address,\n options?: { gas?: bigint },\n ): Promise<`0x${string}`> {\n if (!this.walletClient) {\n throw new Error('Wallet client required for write operations');\n }\n\n const { request } = await this.rpc.simulateContract({\n address: this.address,\n abi: derc20Abi,\n functionName: 'delegate',\n args: [delegatee],\n account: this.walletClient.account,\n });\n\n return await this.walletClient.writeContract(\n options?.gas ? { ...request, gas: options.gas } : request,\n );\n }\n\n /**\n * Delegate governance votes using an EIP-712 signature (gasless path)\n * Note: Caller signs typed data; a relayer or the caller submits the tx.\n */\n async delegateBySig(\n delegatee: Address,\n expiry: bigint,\n options?: { gas?: bigint },\n ): Promise<`0x${string}`> {\n if (!this.walletClient) {\n throw new Error('Wallet client required for write operations');\n }\n\n const acct = this.walletClient.account as unknown;\n let accountAddress: Address;\n if (typeof acct === 'string') {\n accountAddress = acct as Address;\n } else if (acct && typeof acct === 'object' && 'address' in acct) {\n accountAddress = (acct as { address: Address }).address;\n } else {\n throw new Error('Invalid wallet account');\n }\n const [nonce, name] = await Promise.all([\n this.rpc.readContract({\n address: this.address,\n abi: derc20Abi,\n functionName: 'nonces',\n args: [accountAddress],\n }),\n this.getName(),\n ]);\n const chainId =\n (this.rpc.chain?.id as number | undefined) ??\n (await this.rpc.getChainId());\n\n const domain = {\n name,\n version: '1',\n chainId,\n verifyingContract: this.address,\n } as const;\n\n const types = {\n Delegation: [\n { name: 'delegatee', type: 'address' },\n { name: 'nonce', type: 'uint256' },\n { name: 'expiry', type: 'uint256' },\n ],\n } as const;\n\n const message = { delegatee, nonce, expiry } as const;\n\n const signature = await this.walletClient.signTypedData({\n domain,\n types,\n primaryType: 'Delegation',\n message,\n account: accountAddress,\n });\n\n const { v, r, s } = Derc20.splitSignature(signature);\n\n const { request } = await this.rpc.simulateContract({\n address: this.address,\n abi: derc20Abi,\n functionName: 'delegateBySig',\n args: [delegatee, nonce, expiry, v, r, s],\n account: this.walletClient.account,\n });\n\n return await this.walletClient.writeContract(\n options?.gas ? { ...request, gas: options.gas } : request,\n );\n }\n\n /**\n * Release all currently available vested tokens to the caller\n */\n async release(options?: { gas?: 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.rpc.simulateContract({\n address: this.address,\n abi: derc20Abi,\n functionName: 'release',\n args: [],\n account: this.walletClient.account,\n });\n\n return await this.walletClient.writeContract(\n options?.gas ? { ...request, gas: options.gas } : request,\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/entities/token/derc20/Derc20.ts"],"names":["derc20Abi"],"mappings":"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","file":"chunk-RXUJ4DUB.js","sourcesContent":["import { type Address, type WalletClient, type PublicClient } from 'viem';\nimport { derc20Abi } from '../../../abis';\nimport { SupportedPublicClient } from '@/types';\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: SupportedPublicClient;\n private walletClient?: WalletClient;\n private address: Address;\n private get rpc(): PublicClient {\n return this.publicClient as PublicClient;\n }\n\n private static splitSignature(signature: `0x${string}`): {\n v: number;\n r: `0x${string}`;\n s: `0x${string}`;\n } {\n const sig = signature.toLowerCase() as `0x${string}`;\n const r = `0x${sig.slice(2, 66)}` as `0x${string}`;\n const s = `0x${sig.slice(66, 130)}` as `0x${string}`;\n let v = parseInt(sig.slice(130, 132), 16);\n if (v < 27) v += 27;\n return { v, r, s };\n }\n\n constructor(\n publicClient: SupportedPublicClient,\n walletClient: WalletClient | undefined,\n address: Address,\n ) {\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.rpc.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.rpc.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.rpc.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.rpc.readContract({\n address: this.address,\n abi: derc20Abi,\n functionName: 'tokenURI',\n });\n }\n\n // -------------------------\n // Governance (Votes) reads\n // -------------------------\n\n /** Get the current delegate for an account */\n async getDelegates(account: Address): Promise<Address> {\n return await this.rpc.readContract({\n address: this.address,\n abi: derc20Abi,\n functionName: 'delegates',\n args: [account],\n });\n }\n\n /** Get current voting power for an account */\n async getVotes(account: Address): Promise<bigint> {\n return await this.rpc.readContract({\n address: this.address,\n abi: derc20Abi,\n functionName: 'getVotes',\n args: [account],\n });\n }\n\n /** Get historical voting power at a given timepoint (block) */\n async getPastVotes(account: Address, timepoint: bigint): Promise<bigint> {\n return await this.rpc.readContract({\n address: this.address,\n abi: derc20Abi,\n functionName: 'getPastVotes',\n args: [account, timepoint],\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.rpc.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.rpc.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.rpc.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.rpc.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.rpc.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.rpc.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.rpc.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.rpc.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.rpc.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.rpc.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.rpc.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.rpc.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.rpc.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(\n spender: Address,\n value: bigint,\n options?: { gas?: bigint },\n ): Promise<`0x${string}`> {\n if (!this.walletClient) {\n throw new Error('Wallet client required for write operations');\n }\n\n const { request } = await this.rpc.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(\n options?.gas ? { ...request, gas: options.gas } : request,\n );\n }\n\n /**\n * Delegate governance votes to an address\n */\n async delegate(\n delegatee: Address,\n options?: { gas?: bigint },\n ): Promise<`0x${string}`> {\n if (!this.walletClient) {\n throw new Error('Wallet client required for write operations');\n }\n\n const { request } = await this.rpc.simulateContract({\n address: this.address,\n abi: derc20Abi,\n functionName: 'delegate',\n args: [delegatee],\n account: this.walletClient.account,\n });\n\n return await this.walletClient.writeContract(\n options?.gas ? { ...request, gas: options.gas } : request,\n );\n }\n\n /**\n * Delegate governance votes using an EIP-712 signature (gasless path)\n * Note: Caller signs typed data; a relayer or the caller submits the tx.\n */\n async delegateBySig(\n delegatee: Address,\n expiry: bigint,\n options?: { gas?: bigint },\n ): Promise<`0x${string}`> {\n if (!this.walletClient) {\n throw new Error('Wallet client required for write operations');\n }\n\n const acct = this.walletClient.account as unknown;\n let accountAddress: Address;\n if (typeof acct === 'string') {\n accountAddress = acct as Address;\n } else if (acct && typeof acct === 'object' && 'address' in acct) {\n accountAddress = (acct as { address: Address }).address;\n } else {\n throw new Error('Invalid wallet account');\n }\n const [nonce, name] = await Promise.all([\n this.rpc.readContract({\n address: this.address,\n abi: derc20Abi,\n functionName: 'nonces',\n args: [accountAddress],\n }),\n this.getName(),\n ]);\n const chainId =\n (this.rpc.chain?.id as number | undefined) ??\n (await this.rpc.getChainId());\n\n const domain = {\n name,\n version: '1',\n chainId,\n verifyingContract: this.address,\n } as const;\n\n const types = {\n Delegation: [\n { name: 'delegatee', type: 'address' },\n { name: 'nonce', type: 'uint256' },\n { name: 'expiry', type: 'uint256' },\n ],\n } as const;\n\n const message = { delegatee, nonce, expiry } as const;\n\n const signature = await this.walletClient.signTypedData({\n domain,\n types,\n primaryType: 'Delegation',\n message,\n account: accountAddress,\n });\n\n const { v, r, s } = Derc20.splitSignature(signature);\n\n const { request } = await this.rpc.simulateContract({\n address: this.address,\n abi: derc20Abi,\n functionName: 'delegateBySig',\n args: [delegatee, nonce, expiry, v, r, s],\n account: this.walletClient.account,\n });\n\n return await this.walletClient.writeContract(\n options?.gas ? { ...request, gas: options.gas } : request,\n );\n }\n\n /**\n * Release all currently available vested tokens to the caller\n */\n async release(options?: { gas?: 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.rpc.simulateContract({\n address: this.address,\n abi: derc20Abi,\n functionName: 'release',\n args: [],\n account: this.walletClient.account,\n });\n\n return await this.walletClient.writeContract(\n options?.gas ? { ...request, gas: options.gas } : request,\n );\n }\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunk4VWQNNNW_js = require('./chunk-4VWQNNNW.js');
|
|
4
|
-
var
|
|
4
|
+
var chunk6BQY5EPB_js = require('./chunk-6BQY5EPB.js');
|
|
5
5
|
|
|
6
6
|
// src/builders/shared.ts
|
|
7
7
|
function computeTicks(priceRange, tickSpacing) {
|
|
@@ -18,27 +18,27 @@ var MARKET_CAP_PRESET_ORDER = [
|
|
|
18
18
|
];
|
|
19
19
|
var MARKET_CAP_PRESETS = {
|
|
20
20
|
low: {
|
|
21
|
-
tickLower:
|
|
22
|
-
tickUpper:
|
|
23
|
-
numPositions:
|
|
24
|
-
shares:
|
|
21
|
+
tickLower: chunk6BQY5EPB_js.DEFAULT_MULTICURVE_LOWER_TICKS[0],
|
|
22
|
+
tickUpper: chunk6BQY5EPB_js.DEFAULT_MULTICURVE_UPPER_TICKS[0],
|
|
23
|
+
numPositions: chunk6BQY5EPB_js.DEFAULT_MULTICURVE_NUM_POSITIONS[0],
|
|
24
|
+
shares: chunk6BQY5EPB_js.DEFAULT_MULTICURVE_MAX_SUPPLY_SHARES[0]
|
|
25
25
|
},
|
|
26
26
|
medium: {
|
|
27
|
-
tickLower:
|
|
28
|
-
tickUpper:
|
|
29
|
-
numPositions:
|
|
30
|
-
shares:
|
|
27
|
+
tickLower: chunk6BQY5EPB_js.DEFAULT_MULTICURVE_LOWER_TICKS[1],
|
|
28
|
+
tickUpper: chunk6BQY5EPB_js.DEFAULT_MULTICURVE_UPPER_TICKS[1],
|
|
29
|
+
numPositions: chunk6BQY5EPB_js.DEFAULT_MULTICURVE_NUM_POSITIONS[1],
|
|
30
|
+
shares: chunk6BQY5EPB_js.DEFAULT_MULTICURVE_MAX_SUPPLY_SHARES[1]
|
|
31
31
|
},
|
|
32
32
|
high: {
|
|
33
|
-
tickLower:
|
|
34
|
-
tickUpper:
|
|
35
|
-
numPositions:
|
|
36
|
-
shares:
|
|
33
|
+
tickLower: chunk6BQY5EPB_js.DEFAULT_MULTICURVE_LOWER_TICKS[2],
|
|
34
|
+
tickUpper: chunk6BQY5EPB_js.DEFAULT_MULTICURVE_UPPER_TICKS[2],
|
|
35
|
+
numPositions: chunk6BQY5EPB_js.DEFAULT_MULTICURVE_NUM_POSITIONS[2],
|
|
36
|
+
shares: chunk6BQY5EPB_js.DEFAULT_MULTICURVE_MAX_SUPPLY_SHARES[2]
|
|
37
37
|
}
|
|
38
38
|
};
|
|
39
39
|
function buildCurvesFromPresets(params) {
|
|
40
|
-
const fee = params?.fee ??
|
|
41
|
-
const tickSpacing = params?.tickSpacing ??
|
|
40
|
+
const fee = params?.fee ?? chunk6BQY5EPB_js.FEE_TIERS.LOW;
|
|
41
|
+
const tickSpacing = params?.tickSpacing ?? chunk6BQY5EPB_js.TICK_SPACINGS[fee];
|
|
42
42
|
if (tickSpacing === void 0) {
|
|
43
43
|
throw new Error(
|
|
44
44
|
"tickSpacing must be provided when using a custom fee tier"
|
|
@@ -73,12 +73,12 @@ function buildCurvesFromPresets(params) {
|
|
|
73
73
|
}
|
|
74
74
|
return acc + curve.shares;
|
|
75
75
|
}, 0n);
|
|
76
|
-
if (totalShares >
|
|
76
|
+
if (totalShares > chunk6BQY5EPB_js.WAD) {
|
|
77
77
|
throw new Error("Total preset shares cannot exceed 100% (1e18)");
|
|
78
78
|
}
|
|
79
79
|
const curves = [...presetCurves];
|
|
80
|
-
if (totalShares <
|
|
81
|
-
const remainder =
|
|
80
|
+
if (totalShares < chunk6BQY5EPB_js.WAD) {
|
|
81
|
+
const remainder = chunk6BQY5EPB_js.WAD - totalShares;
|
|
82
82
|
const lastCurve = curves[curves.length - 1];
|
|
83
83
|
let fillerTickLower = lastCurve?.tickUpper ?? 0;
|
|
84
84
|
let fillerNumPositions = lastCurve?.numPositions ?? 1;
|
|
@@ -104,9 +104,9 @@ function buildCurvesFromPresets(params) {
|
|
|
104
104
|
numPositions: fillerNumPositions,
|
|
105
105
|
shares: remainder
|
|
106
106
|
});
|
|
107
|
-
totalShares =
|
|
107
|
+
totalShares = chunk6BQY5EPB_js.WAD;
|
|
108
108
|
}
|
|
109
|
-
if (totalShares !==
|
|
109
|
+
if (totalShares !== chunk6BQY5EPB_js.WAD) {
|
|
110
110
|
throw new Error("Failed to normalize preset shares to 100%");
|
|
111
111
|
}
|
|
112
112
|
return { fee, tickSpacing, curves };
|
|
@@ -116,5 +116,5 @@ exports.MARKET_CAP_PRESETS = MARKET_CAP_PRESETS;
|
|
|
116
116
|
exports.MARKET_CAP_PRESET_ORDER = MARKET_CAP_PRESET_ORDER;
|
|
117
117
|
exports.buildCurvesFromPresets = buildCurvesFromPresets;
|
|
118
118
|
exports.computeTicks = computeTicks;
|
|
119
|
-
//# sourceMappingURL=chunk-
|
|
120
|
-
//# sourceMappingURL=chunk-
|
|
119
|
+
//# sourceMappingURL=chunk-SAX7P3MH.js.map
|
|
120
|
+
//# sourceMappingURL=chunk-SAX7P3MH.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/builders/shared.ts"],"names":["DEFAULT_MULTICURVE_LOWER_TICKS","DEFAULT_MULTICURVE_UPPER_TICKS","DEFAULT_MULTICURVE_NUM_POSITIONS","DEFAULT_MULTICURVE_MAX_SUPPLY_SHARES","FEE_TIERS","TICK_SPACINGS","WAD","MIN_TICK","MAX_TICK"],"mappings":"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","file":"chunk-MGLI4N4B.js","sourcesContent":["import type { Address } from 'viem';\nimport {\n DEFAULT_MULTICURVE_LOWER_TICKS,\n DEFAULT_MULTICURVE_MAX_SUPPLY_SHARES,\n DEFAULT_MULTICURVE_NUM_POSITIONS,\n DEFAULT_MULTICURVE_UPPER_TICKS,\n FEE_TIERS,\n TICK_SPACINGS,\n WAD,\n} from '../constants';\nimport { MAX_TICK, MIN_TICK } from '../utils';\nimport type {\n PriceRange,\n TickRange,\n MulticurveMarketCapPreset,\n GovernanceOption,\n MigrationConfig,\n} from '../types';\nimport type { SupportedChainId } from '../addresses';\n\n// ============================================================================\n// Common Builder Interface\n// ============================================================================\n\n/**\n * Common interface shared by all auction builders.\n *\n * Defines the methods that all builders (Static, Dynamic, Multicurve) implement.\n * Useful for documentation and ensuring API consistency across builders.\n *\n * @template C - The chain ID type\n */\nexport interface BaseAuctionBuilder<C extends SupportedChainId> {\n /** The chain ID this builder is configured for */\n readonly chainId: C;\n\n /**\n * Configure the token to be created.\n * Supports standard ERC20 or Doppler404 token types.\n */\n tokenConfig(\n params:\n | {\n type?: 'standard';\n name: string;\n symbol: string;\n tokenURI: string;\n yearlyMintRate?: bigint;\n }\n | {\n type: 'doppler404';\n name: string;\n symbol: string;\n baseURI: string;\n unit?: bigint;\n },\n ): this;\n\n /**\n * Configure the token sale parameters.\n * @param params.initialSupply - Total token supply to mint\n * @param params.numTokensToSell - Number of tokens allocated for the bonding curve\n * @param params.numeraire - The quote token address (e.g., WETH)\n */\n saleConfig(params: {\n initialSupply: bigint;\n numTokensToSell: bigint;\n numeraire: Address;\n }): this;\n\n /**\n * Configure token vesting for team/investor allocations.\n * Pass undefined or omit to disable vesting.\n */\n withVesting(params?: {\n duration?: bigint;\n cliffDuration?: number;\n recipients?: Address[];\n amounts?: bigint[];\n }): this;\n\n /**\n * Configure governance for the token.\n * @param params - Use { type: 'default' }, { type: 'noOp' }, { type: 'launchpad', multisig: '0x...' }, or { type: 'custom', ... }\n */\n withGovernance(params: GovernanceOption<C>): this;\n\n /**\n * Configure post-auction liquidity migration.\n * @param migration - Migration target (uniswapV2, uniswapV4, or noOp)\n */\n withMigration(migration: MigrationConfig): this;\n\n /**\n * Set the user address (token creator/owner).\n * Required for build().\n */\n withUserAddress(address: Address): this;\n\n /**\n * Set the integrator address for fee attribution.\n * Defaults to zero address if not provided.\n */\n withIntegrator(address?: Address): this;\n\n /**\n * Override the default gas limit for the create transaction.\n */\n withGasLimit(gas?: bigint): this;\n\n // Module address overrides\n withTokenFactory(address: Address): this;\n withAirlock(address: Address): this;\n withGovernanceFactory(address: Address): this;\n withV2Migrator(address: Address): this;\n withV4Migrator(address: Address): this;\n withNoOpMigrator(address: Address): this;\n}\n\nexport function computeTicks(\n priceRange: PriceRange,\n tickSpacing: number,\n): TickRange {\n const startTick =\n Math.floor(\n Math.log(priceRange.startPrice) / Math.log(1.0001) / tickSpacing,\n ) * tickSpacing;\n const endTick =\n Math.ceil(Math.log(priceRange.endPrice) / Math.log(1.0001) / tickSpacing) *\n tickSpacing;\n return { startTick, endTick };\n}\n\nexport const MARKET_CAP_PRESET_ORDER = [\n 'low',\n 'medium',\n 'high',\n] as const satisfies readonly MulticurveMarketCapPreset[];\n\nexport type MarketCapPresetConfig = {\n tickLower: number;\n tickUpper: number;\n numPositions: number;\n shares: bigint;\n};\n\nexport const MARKET_CAP_PRESETS: Record<\n MulticurveMarketCapPreset,\n MarketCapPresetConfig\n> = {\n low: {\n tickLower: DEFAULT_MULTICURVE_LOWER_TICKS[0],\n tickUpper: DEFAULT_MULTICURVE_UPPER_TICKS[0],\n numPositions: DEFAULT_MULTICURVE_NUM_POSITIONS[0],\n shares: DEFAULT_MULTICURVE_MAX_SUPPLY_SHARES[0],\n },\n medium: {\n tickLower: DEFAULT_MULTICURVE_LOWER_TICKS[1],\n tickUpper: DEFAULT_MULTICURVE_UPPER_TICKS[1],\n numPositions: DEFAULT_MULTICURVE_NUM_POSITIONS[1],\n shares: DEFAULT_MULTICURVE_MAX_SUPPLY_SHARES[1],\n },\n high: {\n tickLower: DEFAULT_MULTICURVE_LOWER_TICKS[2],\n tickUpper: DEFAULT_MULTICURVE_UPPER_TICKS[2],\n numPositions: DEFAULT_MULTICURVE_NUM_POSITIONS[2],\n shares: DEFAULT_MULTICURVE_MAX_SUPPLY_SHARES[2],\n },\n};\n\nexport type MarketCapPresetOverrides = Partial<\n Record<\n MulticurveMarketCapPreset,\n {\n tickLower?: number;\n tickUpper?: number;\n numPositions?: number;\n shares?: bigint;\n }\n >\n>;\n\n/**\n * Helper to build curves from market cap presets with optional filler curve\n */\nexport function buildCurvesFromPresets(params: {\n fee?: number;\n tickSpacing?: number;\n presets?: MulticurveMarketCapPreset[];\n overrides?: MarketCapPresetOverrides;\n}): { fee: number; tickSpacing: number; curves: MarketCapPresetConfig[] } {\n const fee = params?.fee ?? FEE_TIERS.LOW;\n const tickSpacing =\n params?.tickSpacing ?? (TICK_SPACINGS as Record<number, number>)[fee];\n\n if (tickSpacing === undefined) {\n throw new Error(\n 'tickSpacing must be provided when using a custom fee tier',\n );\n }\n\n const requestedPresets = params?.presets ?? [...MARKET_CAP_PRESET_ORDER];\n const uniquePresets: MulticurveMarketCapPreset[] = [];\n for (const preset of requestedPresets) {\n if (!(preset in MARKET_CAP_PRESETS)) {\n throw new Error(`Unsupported market cap preset: ${preset}`);\n }\n if (!uniquePresets.includes(preset)) {\n uniquePresets.push(preset);\n }\n }\n\n if (uniquePresets.length === 0) {\n throw new Error('At least one market cap preset must be provided');\n }\n\n const presetCurves = uniquePresets.map((preset) => {\n const base = MARKET_CAP_PRESETS[preset];\n const override = params?.overrides?.[preset];\n return {\n tickLower: override?.tickLower ?? base.tickLower,\n tickUpper: override?.tickUpper ?? base.tickUpper,\n numPositions: override?.numPositions ?? base.numPositions,\n shares: override?.shares ?? base.shares,\n };\n });\n\n let totalShares = presetCurves.reduce((acc, curve) => {\n if (curve.shares <= 0n) {\n throw new Error('Preset shares must be greater than zero');\n }\n return acc + curve.shares;\n }, 0n);\n\n if (totalShares > WAD) {\n throw new Error('Total preset shares cannot exceed 100% (1e18)');\n }\n\n const curves = [...presetCurves];\n\n // Add filler curve if shares don't sum to 100%\n if (totalShares < WAD) {\n const remainder = WAD - totalShares;\n const lastCurve = curves[curves.length - 1];\n let fillerTickLower = lastCurve?.tickUpper ?? 0;\n let fillerNumPositions = lastCurve?.numPositions ?? 1;\n\n if (fillerNumPositions <= 0) {\n fillerNumPositions = 1;\n }\n\n const minTickAllowed = Math.ceil(MIN_TICK / tickSpacing) * tickSpacing;\n const rawMaxTick = Math.floor(MAX_TICK / tickSpacing) * tickSpacing;\n const maxTickAllowed = rawMaxTick - tickSpacing;\n\n fillerTickLower = Math.max(fillerTickLower, minTickAllowed);\n let fillerTickUpper = fillerTickLower + fillerNumPositions * tickSpacing;\n\n if (fillerTickUpper > maxTickAllowed) {\n fillerTickUpper = maxTickAllowed;\n fillerTickLower = Math.min(fillerTickLower, maxTickAllowed - tickSpacing);\n }\n\n if (fillerTickUpper <= fillerTickLower) {\n fillerTickLower = Math.max(minTickAllowed, maxTickAllowed - tickSpacing);\n fillerTickUpper = fillerTickLower + tickSpacing;\n }\n\n curves.push({\n tickLower: fillerTickLower,\n tickUpper: fillerTickUpper,\n numPositions: fillerNumPositions,\n shares: remainder,\n });\n\n totalShares = WAD;\n }\n\n if (totalShares !== WAD) {\n throw new Error('Failed to normalize preset shares to 100%');\n }\n\n return { fee, tickSpacing, curves };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/builders/shared.ts"],"names":["DEFAULT_MULTICURVE_LOWER_TICKS","DEFAULT_MULTICURVE_UPPER_TICKS","DEFAULT_MULTICURVE_NUM_POSITIONS","DEFAULT_MULTICURVE_MAX_SUPPLY_SHARES","FEE_TIERS","TICK_SPACINGS","WAD","MIN_TICK","MAX_TICK"],"mappings":"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","file":"chunk-SAX7P3MH.js","sourcesContent":["import type { Address } from 'viem';\nimport {\n DEFAULT_MULTICURVE_LOWER_TICKS,\n DEFAULT_MULTICURVE_MAX_SUPPLY_SHARES,\n DEFAULT_MULTICURVE_NUM_POSITIONS,\n DEFAULT_MULTICURVE_UPPER_TICKS,\n FEE_TIERS,\n TICK_SPACINGS,\n WAD,\n} from '../constants';\nimport { MAX_TICK, MIN_TICK } from '../utils';\nimport type {\n PriceRange,\n TickRange,\n MulticurveMarketCapPreset,\n GovernanceOption,\n MigrationConfig,\n} from '../types';\nimport type { SupportedChainId } from '../addresses';\n\n// ============================================================================\n// Common Builder Interface\n// ============================================================================\n\n/**\n * Common interface shared by all auction builders.\n *\n * Defines the methods that all builders (Static, Dynamic, Multicurve) implement.\n * Useful for documentation and ensuring API consistency across builders.\n *\n * @template C - The chain ID type\n */\nexport interface BaseAuctionBuilder<C extends SupportedChainId> {\n /** The chain ID this builder is configured for */\n readonly chainId: C;\n\n /**\n * Configure the token to be created.\n * Supports standard ERC20 or Doppler404 token types.\n */\n tokenConfig(\n params:\n | {\n type?: 'standard';\n name: string;\n symbol: string;\n tokenURI: string;\n yearlyMintRate?: bigint;\n }\n | {\n type: 'doppler404';\n name: string;\n symbol: string;\n baseURI: string;\n unit?: bigint;\n },\n ): this;\n\n /**\n * Configure the token sale parameters.\n * @param params.initialSupply - Total token supply to mint\n * @param params.numTokensToSell - Number of tokens allocated for the bonding curve\n * @param params.numeraire - The quote token address (e.g., WETH)\n */\n saleConfig(params: {\n initialSupply: bigint;\n numTokensToSell: bigint;\n numeraire: Address;\n }): this;\n\n /**\n * Configure token vesting for team/investor allocations.\n * Pass undefined or omit to disable vesting.\n */\n withVesting(params?: {\n duration?: bigint;\n cliffDuration?: number;\n recipients?: Address[];\n amounts?: bigint[];\n }): this;\n\n /**\n * Configure governance for the token.\n * @param params - Use { type: 'default' }, { type: 'noOp' }, { type: 'launchpad', multisig: '0x...' }, or { type: 'custom', ... }\n */\n withGovernance(params: GovernanceOption<C>): this;\n\n /**\n * Configure post-auction liquidity migration.\n * @param migration - Migration target (uniswapV2, uniswapV4, or noOp)\n */\n withMigration(migration: MigrationConfig): this;\n\n /**\n * Set the user address (token creator/owner).\n * Required for build().\n */\n withUserAddress(address: Address): this;\n\n /**\n * Set the integrator address for fee attribution.\n * Defaults to zero address if not provided.\n */\n withIntegrator(address?: Address): this;\n\n /**\n * Override the default gas limit for the create transaction.\n */\n withGasLimit(gas?: bigint): this;\n\n // Module address overrides\n withTokenFactory(address: Address): this;\n withAirlock(address: Address): this;\n withGovernanceFactory(address: Address): this;\n withV2Migrator(address: Address): this;\n withV4Migrator(address: Address): this;\n withNoOpMigrator(address: Address): this;\n}\n\nexport function computeTicks(\n priceRange: PriceRange,\n tickSpacing: number,\n): TickRange {\n const startTick =\n Math.floor(\n Math.log(priceRange.startPrice) / Math.log(1.0001) / tickSpacing,\n ) * tickSpacing;\n const endTick =\n Math.ceil(Math.log(priceRange.endPrice) / Math.log(1.0001) / tickSpacing) *\n tickSpacing;\n return { startTick, endTick };\n}\n\nexport const MARKET_CAP_PRESET_ORDER = [\n 'low',\n 'medium',\n 'high',\n] as const satisfies readonly MulticurveMarketCapPreset[];\n\nexport type MarketCapPresetConfig = {\n tickLower: number;\n tickUpper: number;\n numPositions: number;\n shares: bigint;\n};\n\nexport const MARKET_CAP_PRESETS: Record<\n MulticurveMarketCapPreset,\n MarketCapPresetConfig\n> = {\n low: {\n tickLower: DEFAULT_MULTICURVE_LOWER_TICKS[0],\n tickUpper: DEFAULT_MULTICURVE_UPPER_TICKS[0],\n numPositions: DEFAULT_MULTICURVE_NUM_POSITIONS[0],\n shares: DEFAULT_MULTICURVE_MAX_SUPPLY_SHARES[0],\n },\n medium: {\n tickLower: DEFAULT_MULTICURVE_LOWER_TICKS[1],\n tickUpper: DEFAULT_MULTICURVE_UPPER_TICKS[1],\n numPositions: DEFAULT_MULTICURVE_NUM_POSITIONS[1],\n shares: DEFAULT_MULTICURVE_MAX_SUPPLY_SHARES[1],\n },\n high: {\n tickLower: DEFAULT_MULTICURVE_LOWER_TICKS[2],\n tickUpper: DEFAULT_MULTICURVE_UPPER_TICKS[2],\n numPositions: DEFAULT_MULTICURVE_NUM_POSITIONS[2],\n shares: DEFAULT_MULTICURVE_MAX_SUPPLY_SHARES[2],\n },\n};\n\nexport type MarketCapPresetOverrides = Partial<\n Record<\n MulticurveMarketCapPreset,\n {\n tickLower?: number;\n tickUpper?: number;\n numPositions?: number;\n shares?: bigint;\n }\n >\n>;\n\n/**\n * Helper to build curves from market cap presets with optional filler curve\n */\nexport function buildCurvesFromPresets(params: {\n fee?: number;\n tickSpacing?: number;\n presets?: MulticurveMarketCapPreset[];\n overrides?: MarketCapPresetOverrides;\n}): { fee: number; tickSpacing: number; curves: MarketCapPresetConfig[] } {\n const fee = params?.fee ?? FEE_TIERS.LOW;\n const tickSpacing =\n params?.tickSpacing ?? (TICK_SPACINGS as Record<number, number>)[fee];\n\n if (tickSpacing === undefined) {\n throw new Error(\n 'tickSpacing must be provided when using a custom fee tier',\n );\n }\n\n const requestedPresets = params?.presets ?? [...MARKET_CAP_PRESET_ORDER];\n const uniquePresets: MulticurveMarketCapPreset[] = [];\n for (const preset of requestedPresets) {\n if (!(preset in MARKET_CAP_PRESETS)) {\n throw new Error(`Unsupported market cap preset: ${preset}`);\n }\n if (!uniquePresets.includes(preset)) {\n uniquePresets.push(preset);\n }\n }\n\n if (uniquePresets.length === 0) {\n throw new Error('At least one market cap preset must be provided');\n }\n\n const presetCurves = uniquePresets.map((preset) => {\n const base = MARKET_CAP_PRESETS[preset];\n const override = params?.overrides?.[preset];\n return {\n tickLower: override?.tickLower ?? base.tickLower,\n tickUpper: override?.tickUpper ?? base.tickUpper,\n numPositions: override?.numPositions ?? base.numPositions,\n shares: override?.shares ?? base.shares,\n };\n });\n\n let totalShares = presetCurves.reduce((acc, curve) => {\n if (curve.shares <= 0n) {\n throw new Error('Preset shares must be greater than zero');\n }\n return acc + curve.shares;\n }, 0n);\n\n if (totalShares > WAD) {\n throw new Error('Total preset shares cannot exceed 100% (1e18)');\n }\n\n const curves = [...presetCurves];\n\n // Add filler curve if shares don't sum to 100%\n if (totalShares < WAD) {\n const remainder = WAD - totalShares;\n const lastCurve = curves[curves.length - 1];\n let fillerTickLower = lastCurve?.tickUpper ?? 0;\n let fillerNumPositions = lastCurve?.numPositions ?? 1;\n\n if (fillerNumPositions <= 0) {\n fillerNumPositions = 1;\n }\n\n const minTickAllowed = Math.ceil(MIN_TICK / tickSpacing) * tickSpacing;\n const rawMaxTick = Math.floor(MAX_TICK / tickSpacing) * tickSpacing;\n const maxTickAllowed = rawMaxTick - tickSpacing;\n\n fillerTickLower = Math.max(fillerTickLower, minTickAllowed);\n let fillerTickUpper = fillerTickLower + fillerNumPositions * tickSpacing;\n\n if (fillerTickUpper > maxTickAllowed) {\n fillerTickUpper = maxTickAllowed;\n fillerTickLower = Math.min(fillerTickLower, maxTickAllowed - tickSpacing);\n }\n\n if (fillerTickUpper <= fillerTickLower) {\n fillerTickLower = Math.max(minTickAllowed, maxTickAllowed - tickSpacing);\n fillerTickUpper = fillerTickLower + tickSpacing;\n }\n\n curves.push({\n tickLower: fillerTickLower,\n tickUpper: fillerTickUpper,\n numPositions: fillerNumPositions,\n shares: remainder,\n });\n\n totalShares = WAD;\n }\n\n if (totalShares !== WAD) {\n throw new Error('Failed to normalize preset shares to 100%');\n }\n\n return { fee, tickSpacing, curves };\n}\n"]}
|