@aastar/sdk 0.20.2 → 0.20.3

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.
Files changed (49) hide show
  1. package/README.md +115 -35
  2. package/dist/UserClient-JMNNZT4P.js +6 -0
  3. package/dist/{UserClient-YUHCJJJL.js.map → UserClient-JMNNZT4P.js.map} +1 -1
  4. package/dist/account.js +3 -3
  5. package/dist/admin.js +3 -3
  6. package/dist/channel.js +3 -3
  7. package/dist/{chunk-4DVUM4MC.js → chunk-5TDDS3T5.js} +3 -3
  8. package/dist/{chunk-4DVUM4MC.js.map → chunk-5TDDS3T5.js.map} +1 -1
  9. package/dist/{chunk-O3Y7II3B.js → chunk-KL6SCEIU.js} +4 -4
  10. package/dist/{chunk-O3Y7II3B.js.map → chunk-KL6SCEIU.js.map} +1 -1
  11. package/dist/{chunk-DI3E6PMI.js → chunk-LNICTATJ.js} +6 -6
  12. package/dist/{chunk-DI3E6PMI.js.map → chunk-LNICTATJ.js.map} +1 -1
  13. package/dist/{chunk-PCLPYRTX.js → chunk-M5ORP2PM.js} +8 -8
  14. package/dist/{chunk-PCLPYRTX.js.map → chunk-M5ORP2PM.js.map} +1 -1
  15. package/dist/{chunk-MPOMWT2J.js → chunk-NAPMVAVJ.js} +3 -3
  16. package/dist/{chunk-MPOMWT2J.js.map → chunk-NAPMVAVJ.js.map} +1 -1
  17. package/dist/{chunk-NZGXB2C5.js → chunk-O454V5ML.js} +3 -3
  18. package/dist/{chunk-NZGXB2C5.js.map → chunk-O454V5ML.js.map} +1 -1
  19. package/dist/{chunk-XFI3AK32.js → chunk-QNYP7RPI.js} +3 -3
  20. package/dist/{chunk-XFI3AK32.js.map → chunk-QNYP7RPI.js.map} +1 -1
  21. package/dist/{chunk-YHM77LIP.js → chunk-R2RATIK2.js} +9 -9
  22. package/dist/{chunk-YHM77LIP.js.map → chunk-R2RATIK2.js.map} +1 -1
  23. package/dist/{chunk-ZSSNU3UF.js → chunk-TBDMSJVL.js} +12 -12
  24. package/dist/{chunk-ZSSNU3UF.js.map → chunk-TBDMSJVL.js.map} +1 -1
  25. package/dist/{chunk-OSPRJZ5T.js → chunk-Y3KP7R2Y.js} +3 -3
  26. package/dist/{chunk-OSPRJZ5T.js.map → chunk-Y3KP7R2Y.js.map} +1 -1
  27. package/dist/{chunk-HVAB4TTT.js → chunk-YSDWB6DO.js} +3 -3
  28. package/dist/{chunk-HVAB4TTT.js.map → chunk-YSDWB6DO.js.map} +1 -1
  29. package/dist/{chunk-DSZ372PH.js → chunk-ZJLIKMCA.js} +20 -3
  30. package/dist/chunk-ZJLIKMCA.js.map +1 -0
  31. package/dist/{contract-addresses-JE3X6DFY.js → contract-addresses-VLAHHXOO.js} +3 -3
  32. package/dist/{contract-addresses-JE3X6DFY.js.map → contract-addresses-VLAHHXOO.js.map} +1 -1
  33. package/dist/core.js +2 -2
  34. package/dist/dapp.js +3 -3
  35. package/dist/{dist-GHTBO7CD.js → dist-WMYQOYRO.js} +5 -5
  36. package/dist/{dist-GHTBO7CD.js.map → dist-WMYQOYRO.js.map} +1 -1
  37. package/dist/enduser.js +4 -4
  38. package/dist/identity.js +3 -3
  39. package/dist/index.js +45 -23
  40. package/dist/index.js.map +1 -1
  41. package/dist/{index.node-55LOPHNQ.js → index.node-GNYPFVZQ.js} +4 -4
  42. package/dist/{index.node-55LOPHNQ.js.map → index.node-GNYPFVZQ.js.map} +1 -1
  43. package/dist/operator.js +3 -3
  44. package/dist/paymaster.js +3 -3
  45. package/dist/tokens.js +3 -3
  46. package/dist/x402.js +3 -3
  47. package/package.json +34 -9
  48. package/dist/UserClient-YUHCJJJL.js +0 -6
  49. package/dist/chunk-DSZ372PH.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../enduser/dist/UserClient.js"],"names":["encodeFunctionData"],"mappings":";;;;AAIO,IAAM,UAAA,GAAN,cAAyB,UAAA,CAAW;AAAA,EACvC,cAAA;AAAA,EACA,UAAA;AAAA,EACA,iBAAA;AAAA,EACA,oBAAA;AAAA,EACA,eAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,YAAY,MAAA,EAAQ;AAChB,IAAA,KAAA,CAAM,MAAM,CAAA;AACZ,IAAA,IAAA,CAAK,gBAAgB,MAAA,CAAO,aAAA;AAC5B,IAAA,IAAA,CAAK,iBAAiB,MAAA,CAAO,cAAA;AAC7B,IAAA,IAAA,CAAK,aAAa,MAAA,CAAO,UAAA;AACzB,IAAA,IAAA,CAAK,oBAAoB,MAAA,CAAO,iBAAA;AAChC,IAAA,IAAA,CAAK,uBAAuB,MAAA,CAAO,oBAAA;AACnC,IAAA,IAAA,CAAK,kBAAkB,MAAA,CAAO,eAAA;AAC9B,IAAA,IAAA,CAAK,gBAAgB,MAAA,CAAO,aAAA;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,aAAa,aAAA,CAAc,MAAA,EAAQ,MAAA,EAAQ;AACvC,IAAA,MAAM,EAAE,qBAAA,EAAuB,uBAAA,EAAwB,GAAI,MAAM,OAAO,0BAAc,CAAA;AAEtF,IAAA,IAAI,GAAA,GAAM,MAAA,CAAO,SAAA,KAAc,uBAAA,EAAyB,GAAA,IAAO,uBAAA,CAAA;AAG/D,IAAA,MAAM,WAAA,GAAc,OAAO,cAAA,IAAkB,4CAAA;AAC7C,IAAA,MAAM,IAAA,GAAO,OAAO,IAAA,IAAQ,EAAA;AAE5B,IAAA,MAAM,UAAA,GAAa,OAAO,YAAA,IAAgB,MAAA;AAE1C,IAAA,MAAM,WAAA,GAAc,qBAAA,CAAsB,WAAA,EAAa,GAAG,EAAE,UAAU,CAAA;AACtE,IAAA,MAAM,YAAA,GAAe,qBAAA,CAAsB,WAAA,EAAa,GAAG,EAAE,MAAM,CAAA;AAEnE,IAAA,MAAM,cAAA,GAAiB,MAAM,WAAA,CAAY,UAAA,CAAW;AAAA,MAChD,OAAO,MAAA,CAAO,KAAA;AAAA,MACd;AAAA,KACH,CAAA;AAED,IAAA,IAAI;AACA,MAAA,MAAM,IAAA,GAAO,MAAM,YAAA,CAAa,aAAA,CAAc;AAAA,QAC1C,OAAO,MAAA,CAAO,KAAA;AAAA,QACd,IAAA;AAAA,QACA,SAAS,MAAA,CAAO;AAAA,OACnB,CAAA;AACD,MAAA,OAAO,EAAE,gBAAgB,IAAA,EAAK;AAAA,IAClC,SACO,KAAA,EAAO;AACV,MAAA,MAAM,YAAA,GAAe;AAAA,QACjB,KAAA,EAAO,YAAA;AAAA,QACP,KAAA,EAAO,OAAA;AAAA,QACP,KAAA,EAAO,OAAA;AAAA,QACP,OAAO,KAAA,EAAO,YAAA;AAAA,QACd,OAAO,KAAA,EAAO,OAAA;AAAA,QACd,OAAO,KAAA,EAAO,OAAA;AAAA,QACd,KAAA,EAAO,OAAO,KAAA,EAAO,YAAA;AAAA,QACrB,KAAA,EAAO,OAAO,KAAA,EAAO;AAAA,OACzB,CAAE,OAAO,OAAO,CAAA;AAChB,MAAA,MAAM,OAAA,GAAU,YAAA,CAAa,IAAA,CAAK,GAAG,CAAA;AACrC,MAAA,IAAI,QAAQ,QAAA,CAAS,gCAAgC,KAAK,OAAA,CAAQ,QAAA,CAAS,uBAAuB,CAAA,EAAG;AACjG,QAAA,MAAM,OAAO,kBAAA,CAAmB;AAAA,UAC5B,GAAA;AAAA,UACA,YAAA,EAAc,eAAA;AAAA,UACd,IAAA,EAAM,CAAC,MAAA,CAAO,KAAA,EAAO,IAAI;AAAA,SAC5B,CAAA;AACD,QAAA,MAAM,IAAA,GAAO,MAAM,MAAA,CAAO,eAAA,CAAgB;AAAA,UACtC,EAAA,EAAI,WAAA;AAAA,UACJ,IAAA;AAAA,UACA,GAAA,EAAK,QAAA;AAAA,UACL,SAAS,MAAA,CAAO;AAAA,SACnB,CAAA;AACD,QAAA,OAAO,EAAE,gBAAgB,IAAA,EAAK;AAAA,MAClC;AACA,MAAA,MAAM,KAAA;AAAA,IACV;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,QAAA,CAAS,GAAA,GAAM,EAAA,EAAI;AACrB,IAAA,IAAI;AACA,MAAA,IAAI,CAAC,KAAK,iBAAA,EAAmB;AACzB,QAAA,MAAM,IAAI,MAAM,6CAA6C,CAAA;AAAA,MACjE;AACA,MAAA,MAAM,UAAA,GAAa,iBAAA,CAAkB,IAAA,CAAK,iBAAiB,CAAA;AAC3D,MAAA,OAAO,MAAM,UAAA,CAAW,IAAA,CAAK,oBAAA,EAAsB,EAAE,QAAA,CAAS;AAAA,QAC1D,QAAQ,IAAA,CAAK,cAAA;AAAA,QACb;AAAA,OACH,CAAA;AAAA,IACL,SACO,KAAA,EAAO;AACV,MAAA,MAAM,KAAA;AAAA,IACV;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAIA,MAAM,QAAA,GAAW;AACb,IAAA,IAAI;AACA,MAAA,MAAM,OAAA,GAAU,cAAA,CAAe,IAAA,CAAK,cAAc,CAAA;AAClD,MAAA,OAAO,MAAM,OAAA,CAAQ,IAAA,CAAK,oBAAA,EAAsB,EAAE,KAAA,EAAM;AAAA,IAC5D,SACO,KAAA,EAAO;AACV,MAAA,MAAM,KAAA;AAAA,IACV;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAIA,MAAM,OAAA,CAAQ,MAAA,EAAQ,KAAA,EAAO,MAAM,OAAA,EAAS;AACxC,IAAA,IAAI;AACA,MAAA,MAAM,OAAA,GAAU,cAAA,CAAe,IAAA,CAAK,cAAc,CAAA;AAElD,MAAA,OAAO,MAAM,OAAA,CAAQ,IAAA,CAAK,MAAM,EAAE,OAAA,CAAQ;AAAA,QACtC,IAAA,EAAM,MAAA;AAAA,QACN,KAAA;AAAA,QACA,IAAA,EAAM,IAAA;AAAA,QACN,SAAS,OAAA,EAAS;AAAA,OACrB,CAAA;AAAA,IACL,SACO,KAAA,EAAO;AACV,MAAA,MAAM,KAAA;AAAA,IACV;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAIA,MAAM,YAAA,CAAa,OAAA,EAAS,MAAA,EAAQ,OAAO,OAAA,EAAS;AAChD,IAAA,IAAI;AACA,MAAA,MAAM,OAAA,GAAU,cAAA,CAAe,IAAA,CAAK,cAAc,CAAA;AAClD,MAAA,OAAO,MAAM,OAAA,CAAQ,IAAA,CAAK,MAAM,EAAE,YAAA,CAAa;AAAA,QAC3C,IAAA,EAAM,OAAA;AAAA,QACN,KAAA,EAAO,MAAA;AAAA,QACP,IAAA,EAAM,KAAA;AAAA,QACN,SAAS,OAAA,EAAS;AAAA,OACrB,CAAA;AAAA,IACL,SACO,KAAA,EAAO;AACV,MAAA,MAAM,KAAA;AAAA,IACV;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,aAAA,GAAgB;AAClB,IAAA,IAAI;AACA,MAAA,IAAI,CAAC,IAAA,CAAK,UAAA;AACN,QAAA,MAAM,IAAI,MAAM,sCAAsC,CAAA;AAC1D,MAAA,MAAM,GAAA,GAAM,UAAA,CAAW,IAAA,CAAK,UAAU,CAAA;AACtC,MAAA,OAAO,MAAM,GAAA,CAAI,IAAA,CAAK,oBAAA,EAAsB,EAAE,SAAA,CAAU;AAAA,QACpD,OAAO,IAAA,CAAK;AAAA,OACf,CAAA;AAAA,IACL,SACO,KAAA,EAAO;AACV,MAAA,MAAM,KAAA;AAAA,IACV;AAAA,EACJ;AAAA,EACA,MAAM,OAAA,CAAQ,MAAA,EAAQ,OAAA,EAAS;AAC3B,IAAA,IAAI;AACA,MAAA,IAAI,CAAC,IAAA,CAAK,UAAA;AACN,QAAA,MAAM,IAAI,MAAM,sCAAsC,CAAA;AAC1D,MAAA,MAAM,EAAE,kBAAA,EAAAA,mBAAAA,EAAmB,GAAI,MAAM,OAAO,MAAM,CAAA;AAClD,MAAA,MAAM,OAAOA,mBAAAA,CAAmB;AAAA,QAC5B,GAAA,EAAK,CAAC,EAAE,IAAA,EAAM,eAAe,IAAA,EAAM,UAAA,EAAY,MAAA,EAAQ,CAAC,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,SAAA,IAAa,EAAE,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,WAAU,EAAG,EAAE,IAAA,EAAM,UAAA,EAAY,MAAM,OAAA,EAAS,CAAA,EAAG,OAAA,EAAS,CAAC,EAAE,IAAA,EAAM,SAAA,EAAW,GAAG,CAAA;AAAA,QACtM,YAAA,EAAc,aAAA;AAAA,QACd,IAAA,EAAM,CAAC,IAAA,CAAK,cAAA,EAAgB,QAAQ,IAAI;AAAA,OAC3C,CAAA;AACD,MAAA,OAAO,MAAM,IAAA,CAAK,OAAA,CAAQ,KAAK,UAAA,EAAY,EAAA,EAAI,MAAM,OAAO,CAAA;AAAA,IAChE,SACO,KAAA,EAAO;AACV,MAAA,MAAM,KAAA;AAAA,IACV;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAIA,MAAM,aAAA,CAAc,KAAA,EAAO,EAAA,EAAI,QAAQ,OAAA,EAAS;AAC5C,IAAA,IAAI;AACA,MAAA,MAAM,EAAE,kBAAA,EAAAA,mBAAAA,EAAmB,GAAI,MAAM,OAAO,MAAM,CAAA;AAClD,MAAA,MAAM,OAAOA,mBAAAA,CAAmB;AAAA,QAC5B,GAAA,EAAK,CAAC,EAAE,IAAA,EAAM,UAAA,EAAY,IAAA,EAAM,UAAA,EAAY,MAAA,EAAQ,CAAC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU,EAAG,EAAE,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,SAAA,EAAW,CAAA,EAAG,OAAA,EAAS,CAAC,EAAE,IAAA,EAAM,MAAA,EAAQ,GAAG,CAAA;AAAA,QACzJ,YAAA,EAAc,UAAA;AAAA,QACd,IAAA,EAAM,CAAC,EAAA,EAAI,MAAM;AAAA,OACpB,CAAA;AACD,MAAA,OAAO,MAAM,IAAA,CAAK,OAAA,CAAQ,KAAA,EAAO,EAAA,EAAI,MAAM,OAAO,CAAA;AAAA,IACtD,SACO,KAAA,EAAO;AACV,MAAA,MAAM,KAAA;AAAA,IACV;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAIA,MAAM,gBAAgB,KAAA,EAAO;AACzB,IAAA,IAAI;AACA,MAAA,MAAM,MAAA,GAAS,YAAA,EAAa,CAAE,IAAA,CAAK,sBAAsB,CAAA;AACzD,MAAA,OAAO,MAAM,OAAO,SAAA,CAAU;AAAA,QAC1B,KAAA;AAAA,QACA,SAAS,IAAA,CAAK;AAAA,OACjB,CAAA;AAAA,IACL,SACO,KAAA,EAAO;AACV,MAAA,MAAM,KAAA;AAAA,IACV;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAIA,MAAM,YAAA,CAAa,MAAA,EAAQ,MAAA,EAAQ,OAAA,EAAS;AACxC,IAAA,IAAI;AACA,MAAA,IAAI,CAAC,IAAA,CAAK,oBAAA;AACN,QAAA,MAAM,IAAI,MAAM,gDAAgD,CAAA;AACpE,MAAA,MAAM,EAAE,kBAAA,EAAAA,mBAAAA,EAAmB,GAAI,MAAM,OAAO,MAAM,CAAA;AAClD,MAAA,MAAM,OAAOA,mBAAAA,CAAmB;AAAA,QAC5B,KAAK,CAAC,EAAE,MAAM,WAAA,EAAa,IAAA,EAAM,YAAY,MAAA,EAAQ,CAAC,EAAE,IAAA,EAAM,MAAA,EAAQ,MAAM,SAAA,EAAU,EAAG,EAAE,IAAA,EAAM,QAAA,EAAU,MAAM,SAAA,EAAU,EAAG,EAAE,IAAA,EAAM,aAAA,EAAe,MAAM,SAAA,EAAU,EAAG,EAAE,IAAA,EAAM,WAAA,EAAa,MAAM,SAAA,EAAU,EAAG,EAAE,IAAA,EAAM,OAAA,EAAS,MAAM,SAAA,EAAW,GAAG,OAAA,EAAS,IAAI,CAAA;AAAA,QAClQ,YAAA,EAAc,WAAA;AAAA,QACd,IAAA,EAAM,CAAC,IAAA,CAAK,cAAA,EAAgB,QAAQ,MAAA,EAAQ,EAAA,EAAI,KAAK,cAAc;AAAA,OACtE,CAAA;AACD,MAAA,OAAO,MAAM,IAAA,CAAK,OAAA,CAAQ,KAAK,oBAAA,EAAsB,EAAA,EAAI,MAAM,OAAO,CAAA;AAAA,IAC1E,SACO,KAAA,EAAO;AACV,MAAA,MAAM,KAAA;AAAA,IACV;AAAA,EACJ;AAAA,EACA,MAAM,eAAA,CAAgB,MAAA,EAAQ,OAAA,EAAS;AACnC,IAAA,IAAI;AACA,MAAA,IAAI,CAAC,IAAA,CAAK,oBAAA;AACN,QAAA,MAAM,IAAI,MAAM,gDAAgD,CAAA;AACpE,MAAA,MAAM,EAAE,kBAAA,EAAAA,mBAAAA,EAAmB,GAAI,MAAM,OAAO,MAAM,CAAA;AAClD,MAAA,MAAM,OAAOA,mBAAAA,CAAmB;AAAA,QAC5B,GAAA,EAAK,CAAC,EAAE,IAAA,EAAM,mBAAA,EAAqB,IAAA,EAAM,UAAA,EAAY,MAAA,EAAQ,CAAC,EAAE,IAAA,EAAM,MAAA,EAAQ,MAAM,SAAA,EAAU,EAAG,EAAE,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,SAAA,EAAW,GAAG,OAAA,EAAS,CAAC,EAAE,IAAA,EAAM,WAAA,EAAa,IAAA,EAAM,SAAA,EAAW,GAAG,CAAA;AAAA,QAC1L,YAAA,EAAc,mBAAA;AAAA,QACd,IAAA,EAAM,CAAC,IAAA,CAAK,cAAA,EAAgB,MAAM;AAAA,OACrC,CAAA;AACD,MAAA,OAAO,MAAM,IAAA,CAAK,OAAA,CAAQ,KAAK,oBAAA,EAAsB,EAAA,EAAI,MAAM,OAAO,CAAA;AAAA,IAC1E,SACO,KAAA,EAAO;AACV,MAAA,MAAM,KAAA;AAAA,IACV;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAIA,MAAM,iBAAiB,MAAA,EAAQ;AAC3B,IAAA,IAAI;AACA,MAAA,IAAI,CAAC,IAAA,CAAK,oBAAA;AACN,QAAA,MAAM,IAAI,MAAM,gDAAgD,CAAA;AACpE,MAAA,MAAM,OAAA,GAAU,cAAA,CAAe,IAAA,CAAK,oBAAoB,CAAA;AACxD,MAAA,OAAO,MAAM,OAAA,CAAQ,IAAA,CAAK,oBAAA,EAAsB,EAAE,cAAA,CAAe;AAAA,QAC7D,MAAM,IAAA,CAAK,cAAA;AAAA,QACX;AAAA,OACH,CAAA;AAAA,IACL,SACO,KAAA,EAAO;AACV,MAAA,MAAM,KAAA;AAAA,IACV;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAIA,MAAM,QAAA,CAAS,MAAA,EAAQ,OAAA,EAAS;AAC5B,IAAA,IAAI;AACA,MAAA,IAAI,CAAC,IAAA,CAAK,eAAA;AACN,QAAA,MAAM,IAAI,MAAM,2CAA2C,CAAA;AAC/D,MAAA,MAAM,EAAE,kBAAA,EAAAA,mBAAAA,EAAmB,GAAI,MAAM,OAAO,MAAM,CAAA;AAClD,MAAA,MAAM,OAAOA,mBAAAA,CAAmB;AAAA,QAC5B,KAAK,CAAC,EAAE,MAAM,UAAA,EAAY,IAAA,EAAM,YAAY,MAAA,EAAQ,CAAC,EAAE,IAAA,EAAM,QAAA,EAAU,MAAM,SAAA,EAAW,GAAG,OAAA,EAAS,IAAI,CAAA;AAAA,QACxG,YAAA,EAAc,UAAA;AAAA,QACd,IAAA,EAAM,CAAC,MAAM;AAAA,OAChB,CAAA;AACD,MAAA,OAAO,MAAM,IAAA,CAAK,OAAA,CAAQ,KAAK,eAAA,EAAiB,EAAA,EAAI,MAAM,OAAO,CAAA;AAAA,IACrE,SACO,KAAA,EAAO;AACV,MAAA,MAAM,KAAA;AAAA,IACV;AAAA,EACJ;AAAA,EACA,MAAM,cAAA,CAAe,SAAA,EAAW,OAAA,EAAS;AACrC,IAAA,IAAI;AACA,MAAA,IAAI,CAAC,IAAA,CAAK,UAAA;AACN,QAAA,MAAM,IAAI,MAAM,sCAAsC,CAAA;AAC1D,MAAA,MAAM,EAAE,kBAAA,EAAAA,mBAAAA,EAAmB,GAAI,MAAM,OAAO,MAAM,CAAA;AAClD,MAAA,MAAM,OAAOA,mBAAAA,CAAmB;AAAA,QAC5B,KAAK,CAAC,EAAE,MAAM,gBAAA,EAAkB,IAAA,EAAM,YAAY,MAAA,EAAQ,CAAC,EAAE,IAAA,EAAM,MAAA,EAAQ,MAAM,SAAA,EAAW,GAAG,OAAA,EAAS,IAAI,CAAA;AAAA,QAC5G,YAAA,EAAc,gBAAA;AAAA,QACd,IAAA,EAAM,CAAC,SAAS;AAAA,OACnB,CAAA;AACD,MAAA,OAAO,MAAM,IAAA,CAAK,OAAA,CAAQ,KAAK,UAAA,EAAY,EAAA,EAAI,MAAM,OAAO,CAAA;AAAA,IAChE,SACO,KAAA,EAAO;AACV,MAAA,MAAM,KAAA;AAAA,IACV;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,iBAAA,CAAkB,gBAAA,EAAkB,WAAA,EAAa,OAAA,EAAS;AAC5D,IAAA,IAAI;AACA,MAAA,IAAI,CAAC,IAAA,CAAK,eAAA;AACN,QAAA,MAAM,IAAI,MAAM,2CAA2C,CAAA;AAC/D,MAAA,IAAI,CAAC,IAAA,CAAK,oBAAA;AACN,QAAA,MAAM,IAAI,MAAM,gDAAgD,CAAA;AACpE,MAAA,IAAI,CAAC,IAAA,CAAK,aAAA;AACN,QAAA,MAAM,IAAI,MAAM,yCAAyC,CAAA;AAC7D,MAAA,MAAM,EAAE,qBAAqB,SAAA,EAAW,OAAA,EAAS,YAAW,GAAI,MAAM,OAAO,MAAM,CAAA;AACnF,MAAA,MAAM,YAAA,GAAe,SAAA,CAAU,OAAA,CAAQ,SAAS,CAAC,CAAA;AAEjD,MAAA,MAAM,QAAA,GAAW,eAAA,CAAgB,IAAA,CAAK,eAAe,CAAA;AACrD,MAAA,MAAM,YAAA,GAAe,KAAK,oBAAA,EAAqB;AAC/C,MAAA,MAAM,MAAA,GAAS,YAAA,EAAa,CAAE,YAAY,CAAA;AAE1C,MAAA,MAAM,SAAA,GAAY,MAAM,MAAA,CAAO,SAAA,CAAU;AAAA,QACrC,OAAO,IAAA,CAAK,aAAA;AAAA,QACZ,OAAO,IAAA,CAAK,cAAA;AAAA,QACZ,SAAS,IAAA,CAAK;AAAA,OACjB,CAAA;AACD,MAAA,OAAA,CAAQ,GAAA,CAAI,yCAAkC,IAAA,CAAK,cAAc,eAAe,SAAS,CAAA,SAAA,EAAY,WAAW,CAAA,CAAE,CAAA;AAClH,MAAA,MAAM,MAAM,EAAC;AACb,MAAA,IAAI,YAAY,WAAA,EAAa;AACzB,QAAA,MAAM,cAAc,kBAAA,CAAmB;AAAA,UACnC,GAAA,EAAK,CAAC,EAAE,IAAA,EAAM,SAAA,EAAW,IAAA,EAAM,UAAA,EAAY,MAAA,EAAQ,CAAC,EAAE,IAAA,EAAM,SAAA,EAAU,EAAG,EAAE,IAAA,EAAM,SAAA,EAAW,CAAA,EAAG,OAAA,EAAS,CAAC,EAAE,IAAA,EAAM,MAAA,EAAQ,CAAA,EAAG,eAAA,EAAiB,YAAA,EAAc,CAAA;AAAA,UAC3J,YAAA,EAAc,SAAA;AAAA,UACd,MAAM,CAAC,IAAA,CAAK,oBAAA,EAAsB,UAAA,CAAW,MAAM,CAAC;AAAA,SACvD,CAAA;AACD,QAAA,GAAA,CAAI,IAAA,CAAK,EAAE,MAAA,EAAQ,IAAA,CAAK,eAAe,KAAA,EAAO,EAAA,EAAI,IAAA,EAAM,WAAA,EAAa,CAAA;AAAA,MACzE;AAGA,MAAA,MAAM,WAAW,mBAAA,CAAoB;AAAA,QACjC,EAAE,IAAA,EAAM,SAAA,EAAW,IAAA,EAAM,SAAA,EAAU;AAAA,QACnC,EAAE,IAAA,EAAM,SAAA,EAAW,IAAA,EAAM,WAAA,EAAY;AAAA,QACrC,EAAE,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,WAAA,EAAY;AAAA,QACpC,EAAE,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,SAAA,EAAU;AAAA,QAClC,EAAE,IAAA,EAAM,SAAA,EAAW,IAAA,EAAM,aAAA;AAAc,OAC3C,EAAG;AAAA,QACC,IAAA,CAAK,cAAA;AAAA,QACL,gBAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA,OACH,CAAA;AACD,MAAA,MAAM,eAAe,kBAAA,CAAmB;AAAA,QACpC,GAAA,EAAK,CAAC,EAAE,IAAA,EAAM,kBAAA,EAAoB,IAAA,EAAM,UAAA,EAAY,MAAA,EAAQ,CAAC,EAAE,IAAA,EAAM,SAAA,EAAU,EAAG,EAAE,IAAA,EAAM,OAAA,EAAS,CAAA,EAAG,OAAA,EAAS,CAAC,EAAE,IAAA,EAAM,SAAA,EAAW,CAAA,EAAG,eAAA,EAAiB,YAAA,EAAc,CAAA;AAAA,QACrK,YAAA,EAAc,kBAAA;AAAA,QACd,IAAA,EAAM,CAAC,YAAA,EAAc,QAAQ;AAAA,OAChC,CAAA;AACD,MAAA,GAAA,CAAI,IAAA,CAAK,EAAE,MAAA,EAAQ,IAAA,CAAK,iBAAiB,KAAA,EAAO,EAAA,EAAI,IAAA,EAAM,YAAA,EAAc,CAAA;AACxE,MAAA,OAAA,CAAQ,GAAA,CAAI,yCAAkC,gBAAgB,CAAA,KAAA,EAAQ,KAAK,cAAc,CAAA,QAAA,EAAW,WAAW,CAAA,CAAE,CAAA;AACjH,MAAA,OAAA,CAAQ,GAAA,CAAI,CAAA,8BAAA,EAA0B,GAAA,CAAI,MAAM,CAAA,UAAA,EAAa,GAAA,CAAI,GAAA,CAAI,CAAA,CAAA,KAAK,CAAA,CAAE,MAAM,CAAC,CAAA,CAAE,CAAA;AAErF,MAAA,MAAM,SAAS,EAAC;AAChB,MAAA,KAAA,MAAW,MAAM,GAAA,EAAK;AAClB,QAAA,MAAM,CAAA,GAAI,MAAM,IAAA,CAAK,OAAA,CAAQ,EAAA,CAAG,QAAQ,EAAA,CAAG,KAAA,EAAO,EAAA,CAAG,IAAA,EAAM,OAAO,CAAA;AAClE,QAAA,MAAA,CAAO,KAAK,CAAC,CAAA;AAEb,QAAA,MAAM,KAAK,oBAAA,EAAqB,CAAE,0BAA0B,EAAE,IAAA,EAAM,GAAG,CAAA;AAAA,MAC3E;AACA,MAAA,OAAO,MAAA,CAAO,MAAA,CAAO,MAAA,GAAS,CAAC,CAAA;AAAA,IACnC,SACO,KAAA,EAAO;AACV,MAAA,MAAM,KAAA;AAAA,IACV;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,cAAA,CAAe,MAAA,EAAQ,OAAA,EAAS;AAClC,IAAA,IAAI;AACA,MAAA,MAAM,MAAA,GAAS,IAAA,CAAK,aAAA,GAAgB,IAAA,CAAK,aAAA,CAAc,MAAA,CAAO,cAAc,CAAA,GAAI,IAAA,CAAK,MAAA,CAAO,MAAA,CAAO,cAAc,CAAA;AACjH,MAAA,MAAM,EAAA,GAAK,KAAK,iBAAA,EAAkB;AAElC,MAAA,MAAM,WAAW,kBAAA,CAAmB;AAAA,QAChC,GAAA,EAAK,CAAC,EAAE,IAAA,EAAM,SAAA,EAAW,IAAA,EAAM,UAAA,EAAY,MAAA,EAAQ,CAAC,EAAE,IAAA,EAAM,MAAA,EAAQ,MAAM,SAAA,EAAU,EAAG,EAAE,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,SAAA,EAAU,EAAG,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,OAAA,EAAS,CAAA,EAAG,OAAA,EAAS,IAAI,CAAA;AAAA,QAC1K,YAAA,EAAc,SAAA;AAAA,QACd,MAAM,CAAC,MAAA,CAAO,QAAQ,MAAA,CAAO,KAAA,EAAO,OAAO,IAAI;AAAA,OAClD,CAAA;AAID,MAAA,MAAM,EAAE,eAAA,EAAiB,kBAAA,EAAmB,GAAI,MAAM,OAAO,oBAAmB,CAAA;AAChF,MAAA,IAAI,oBAAA;AACJ,MAAA,IAAI,6BAAA;AACJ,MAAA,IAAI,uBAAA;AACJ,MAAA,IAAI,YAAA,GAAe,IAAA;AACnB,MAAA,IAAI,MAAA,CAAO,kBAAkB,OAAA,EAAS;AAElC,QAAA,MAAM,EAAE,YAAA,EAAa,GAAI,MAAM,OAAO,oBAAmB,CAAA;AACzD,QAAA,MAAM,GAAA,GAAM,MAAM,kBAAA,CAAmB,wBAAA;AAAA,UAAyB,IAAA,CAAK,MAAA;AAAA,UAAQ,IAAA,CAAK,MAAA;AAAA,UAAQ,IAAA,CAAK,cAAA;AAAA,UAAgB,EAAA;AAAA,UAAI,MAAA,CAAO,SAAA;AAAA,UAAW,MAAA,CAAO,MAAA;AAAA;AAAA,UAC1I,KAAK,aAAA,EAAe,SAAA,EAAW,OAAO,IAAA,CAAK,MAAA,CAAO,UAAU,GAAA,IAAO,EAAA;AAAA,UAAI,QAAA;AAAA,UAAU;AAAA,YAC7E,UAAU,MAAA,CAAO,QAAA;AAAA,YACjB,OAAA,EAAS,KAAA,CAAA;AAAA,YACT,WAAA,EAAa,KAAA;AAAA;AACjB,SAAC;AAED,QAAA,MAAM,eAAA,GAAkB,IAAI,6BAAA,IAAiC,OAAA;AAE7D,QAAA,6BAAA,GAAgC,YAAA,CAAa,eAAA,EAAiB,MAAA,EAAQ,IAAI,CAAA;AAE1E,QAAA,MAAM,UAAA,GAAa,MAAA;AACnB,QAAA,oBAAA,GAAuB,IAAI,oBAAA,GAAuB,UAAA;AAGlD,QAAA,MAAM,WAAA,GAAc,IAAI,uBAAA,GAA0B,OAAA;AAClD,QAAA,uBAAA,GAA0B,WAAA,GAAc,UAAU,WAAA,GAAc,OAAA;AAChE,QAAA,YAAA,GAAe,KAAA;AAAA,MACnB;AACA,MAAA,MAAM,MAAA,GAAS,MAAM,kBAAA,CAAmB,0BAAA;AAAA,QAA2B,IAAA,CAAK,MAAA;AAAA,QAAQ,IAAA,CAAK,MAAA;AAAA;AAAA,QACrF,IAAA,CAAK,cAAA;AAAA,QAAgB,EAAA;AAAA,QAAI,MAAA,CAAO,SAAA;AAAA,QAAW,MAAA,CAAO,MAAA;AAAA;AAAA,QAClD,KAAK,aAAA,EAAe,SAAA,EAAW,OAAO,IAAA,CAAK,MAAA,CAAO,UAAU,GAAA,IAAO,EAAA;AAAA,QAAI,QAAA;AAAA,QAAU;AAAA,UAC7E,UAAU,MAAA,CAAO,QAAA;AAAA,UACjB,YAAA;AAAA,UACA,oBAAA;AAAA,UACA,6BAAA;AAAA,UACA;AAAA;AACJ,OAAC;AACD,MAAA,OAAO,MAAA;AAAA,IACX,SACO,KAAA,EAAO;AACV,MAAA,OAAA,CAAQ,KAAA,CAAM,iCAAA,EAA8B,KAAA,CAAM,OAAO,CAAA;AACzD,MAAA,MAAM,KAAA;AAAA,IACV;AAAA,EACJ;AACJ","file":"chunk-DI3E6PMI.js","sourcesContent":["import { encodeFunctionData } from 'viem';\nimport { BaseClient } from '@aastar/core';\nimport { accountActions, sbtActions, tokenActions, entryPointActions, stakingActions, registryActions } from '@aastar/core';\nimport { bundlerActions } from 'viem/account-abstraction';\nexport class UserClient extends BaseClient {\n accountAddress;\n sbtAddress;\n entryPointAddress;\n gTokenStakingAddress;\n registryAddress;\n gTokenAddress;\n bundlerClient;\n constructor(config) {\n super(config);\n this.bundlerClient = config.bundlerClient;\n this.accountAddress = config.accountAddress;\n this.sbtAddress = config.sbtAddress;\n this.entryPointAddress = config.entryPointAddress;\n this.gTokenStakingAddress = config.gTokenStakingAddress;\n this.registryAddress = config.registryAddress;\n this.gTokenAddress = config.gTokenAddress;\n }\n /**\n * Deploy a new Smart Account (Supports multiple factory types)\n * Static helper to facilitate onboarding before instantiating the UserClient.\n *\n * @param client - WalletClient to sign the deployment transaction\n * @param params - Deployment parameters\n * @returns Object containing the deployed account address and transaction hash\n */\n static async deployAccount(client, params) {\n const { accountFactoryActions, SimpleAccountFactoryABI } = await import('@aastar/core');\n // 1. Determine Factory ABI (Ensure it's the raw ABI array)\n let abi = params.customAbi || (SimpleAccountFactoryABI?.abi || SimpleAccountFactoryABI);\n // In the future, we can add more built-in ABIs here based on accountType\n // if (params.accountType === 'kernel') abi = KernelFactoryABI;\n const factoryAddr = params.factoryAddress || '0x9406Cc6185a346906296840746125a0E44976454'; // Default v0.7 Factory\n const salt = params.salt || 0n;\n // Use publicClient for reading if provided, otherwise fallback to client (which might be a Full Client)\n const readClient = params.publicClient || client;\n // Use the generic actions with the selected ABI\n const factoryRead = accountFactoryActions(factoryAddr, abi)(readClient);\n const factoryWrite = accountFactoryActions(factoryAddr, abi)(client);\n // 1. Predict Address\n const accountAddress = await factoryRead.getAddress({\n owner: params.owner,\n salt\n });\n // 2. Deploy\n try {\n const hash = await factoryWrite.createAccount({\n owner: params.owner,\n salt,\n account: client.account\n });\n return { accountAddress, hash };\n }\n catch (error) {\n const messageParts = [\n error?.shortMessage,\n error?.message,\n error?.details,\n error?.cause?.shortMessage,\n error?.cause?.message,\n error?.cause?.details,\n error?.cause?.cause?.shortMessage,\n error?.cause?.cause?.message\n ].filter(Boolean);\n const message = messageParts.join(' ');\n if (message.includes('gas required exceeds allowance') || message.includes('intrinsic gas too low')) {\n const data = encodeFunctionData({\n abi,\n functionName: 'createAccount',\n args: [params.owner, salt]\n });\n const hash = await client.sendTransaction({\n to: factoryAddr,\n data,\n gas: 2000000n,\n account: client.account\n });\n return { accountAddress, hash };\n }\n throw error;\n }\n }\n // ========================================\n // 1. 账户基本操作 (基于 L1 simpleAccountActions)\n // ========================================\n /**\n * Get the nonce of the account from EntryPoint (more reliable for 4337)\n */\n async getNonce(key = 0n) {\n try {\n if (!this.entryPointAddress) {\n throw new Error('EntryPoint address required for this client');\n }\n const entryPoint = entryPointActions(this.entryPointAddress);\n return await entryPoint(this.getStartPublicClient()).getNonce({\n sender: this.accountAddress,\n key\n });\n }\n catch (error) {\n throw error;\n }\n }\n /**\n * Get the owner of the AA account\n */\n async getOwner() {\n try {\n const account = accountActions(this.accountAddress);\n return await account(this.getStartPublicClient()).owner();\n }\n catch (error) {\n throw error;\n }\n }\n /**\n * Execute a transaction from the AA account\n */\n async execute(target, value, data, options) {\n try {\n const account = accountActions(this.accountAddress);\n // Use standard AA execute\n return await account(this.client).execute({\n dest: target,\n value,\n func: data,\n account: options?.account\n });\n }\n catch (error) {\n throw error;\n }\n }\n /**\n * Execute a batch of transactions\n */\n async executeBatch(targets, values, datas, options) {\n try {\n const account = accountActions(this.accountAddress);\n return await account(this.client).executeBatch({\n dest: targets,\n value: values,\n func: datas,\n account: options?.account\n });\n }\n catch (error) {\n throw error;\n }\n }\n // ========================================\n // identity 与 SBT (基于 L1 sbtActions)\n // ========================================\n /**\n * Get user's SBT balance\n */\n async getSBTBalance() {\n try {\n if (!this.sbtAddress)\n throw new Error('SBT address required for this client');\n const sbt = sbtActions(this.sbtAddress);\n return await sbt(this.getStartPublicClient()).balanceOf({\n owner: this.accountAddress\n });\n }\n catch (error) {\n throw error;\n }\n }\n async mintSBT(roleId, options) {\n try {\n if (!this.sbtAddress)\n throw new Error('SBT address required for this client');\n const { encodeFunctionData } = await import('viem');\n const data = encodeFunctionData({\n abi: [{ name: 'mintForRole', type: 'function', inputs: [{ name: 'user', type: 'address' }, { name: 'roleId', type: 'bytes32' }, { name: 'roleData', type: 'bytes' }], outputs: [{ type: 'uint256' }] }],\n functionName: 'mintForRole',\n args: [this.accountAddress, roleId, '0x']\n });\n return await this.execute(this.sbtAddress, 0n, data, options);\n }\n catch (error) {\n throw error;\n }\n }\n // ========================================\n // 3. 资产管理 (基于 L1 tokenActions)\n // ========================================\n async transferToken(token, to, amount, options) {\n try {\n const { encodeFunctionData } = await import('viem');\n const data = encodeFunctionData({\n abi: [{ name: 'transfer', type: 'function', inputs: [{ name: 'to', type: 'address' }, { name: 'amount', type: 'uint256' }], outputs: [{ type: 'bool' }] }],\n functionName: 'transfer',\n args: [to, amount]\n });\n return await this.execute(token, 0n, data, options);\n }\n catch (error) {\n throw error;\n }\n }\n /**\n * Get Token Balance\n */\n async getTokenBalance(token) {\n try {\n const tokens = tokenActions()(this.getStartPublicClient());\n return await tokens.balanceOf({\n token,\n account: this.accountAddress\n });\n }\n catch (error) {\n throw error;\n }\n }\n // ========================================\n // 4. 委托与质押 (Delegation & Staking)\n // ========================================\n async stakeForRole(roleId, amount, options) {\n try {\n if (!this.gTokenStakingAddress)\n throw new Error('GTokenStaking address required for this client');\n const { encodeFunctionData } = await import('viem');\n const data = encodeFunctionData({\n abi: [{ name: 'lockStake', type: 'function', inputs: [{ name: 'user', type: 'address' }, { name: 'roleId', type: 'bytes32' }, { name: 'stakeAmount', type: 'uint256' }, { name: 'entryBurn', type: 'uint256' }, { name: 'payer', type: 'address' }], outputs: [] }],\n functionName: 'lockStake',\n args: [this.accountAddress, roleId, amount, 0n, this.accountAddress]\n });\n return await this.execute(this.gTokenStakingAddress, 0n, data, options);\n }\n catch (error) {\n throw error;\n }\n }\n async unstakeFromRole(roleId, options) {\n try {\n if (!this.gTokenStakingAddress)\n throw new Error('GTokenStaking address required for this client');\n const { encodeFunctionData } = await import('viem');\n const data = encodeFunctionData({\n abi: [{ name: 'unlockAndTransfer', type: 'function', inputs: [{ name: 'user', type: 'address' }, { name: 'roleId', type: 'bytes32' }], outputs: [{ name: 'netAmount', type: 'uint256' }] }],\n functionName: 'unlockAndTransfer',\n args: [this.accountAddress, roleId]\n });\n return await this.execute(this.gTokenStakingAddress, 0n, data, options);\n }\n catch (error) {\n throw error;\n }\n }\n /**\n * Get staked balance for a specific role\n */\n async getStakedBalance(roleId) {\n try {\n if (!this.gTokenStakingAddress)\n throw new Error('GTokenStaking address required for this client');\n const staking = stakingActions(this.gTokenStakingAddress);\n return await staking(this.getStartPublicClient()).getLockedStake({\n user: this.accountAddress,\n roleId\n });\n }\n catch (error) {\n throw error;\n }\n }\n // ========================================\n // 5. 生命周期管理 (Lifecycle)\n // ========================================\n async exitRole(roleId, options) {\n try {\n if (!this.registryAddress)\n throw new Error('Registry address required for this client');\n const { encodeFunctionData } = await import('viem');\n const data = encodeFunctionData({\n abi: [{ name: 'exitRole', type: 'function', inputs: [{ name: 'roleId', type: 'bytes32' }], outputs: [] }],\n functionName: 'exitRole',\n args: [roleId]\n });\n return await this.execute(this.registryAddress, 0n, data, options);\n }\n catch (error) {\n throw error;\n }\n }\n async leaveCommunity(community, options) {\n try {\n if (!this.sbtAddress)\n throw new Error('SBT address required for this client');\n const { encodeFunctionData } = await import('viem');\n const data = encodeFunctionData({\n abi: [{ name: 'leaveCommunity', type: 'function', inputs: [{ name: 'comm', type: 'address' }], outputs: [] }],\n functionName: 'leaveCommunity',\n args: [community]\n });\n return await this.execute(this.sbtAddress, 0n, data, options);\n }\n catch (error) {\n throw error;\n }\n }\n /**\n * Register as EndUser (One-click: Approve + Register)\n * Handles GToken approval to Staking contract and Role registration.\n */\n async registerAsEndUser(communityAddress, stakeAmount, options) {\n try {\n if (!this.registryAddress)\n throw new Error('Registry address required for this client');\n if (!this.gTokenStakingAddress)\n throw new Error('GTokenStaking address required for this client');\n if (!this.gTokenAddress)\n throw new Error('GToken address required for this client');\n const { encodeAbiParameters, keccak256, toBytes, parseEther } = await import('viem');\n const ROLE_ENDUSER = keccak256(toBytes(\"ENDUSER\"));\n // Correct mapping for Registry Actions\n const registry = registryActions(this.registryAddress);\n const publicClient = this.getStartPublicClient();\n const tokens = tokenActions()(publicClient);\n // 1. Check Allowance\n const allowance = await tokens.allowance({\n token: this.gTokenAddress,\n owner: this.accountAddress,\n spender: this.gTokenStakingAddress\n });\n console.log(` 🔍 Debug Allowance: Account=${this.accountAddress}, Allowance=${allowance}, Needed=${stakeAmount}`);\n const txs = [];\n if (allowance < stakeAmount) {\n const approveData = encodeFunctionData({\n abi: [{ name: 'approve', type: 'function', inputs: [{ type: 'address' }, { type: 'uint256' }], outputs: [{ type: 'bool' }], stateMutability: 'nonpayable' }],\n functionName: 'approve',\n args: [this.gTokenStakingAddress, parseEther('1000')]\n });\n txs.push({ target: this.gTokenAddress, value: 0n, data: approveData });\n }\n // 2. Construct Register Call\n // struct EndUserRoleData { address account; address community; string avatarURI; string ensName; uint256 stakeAmount; }\n const roleData = encodeAbiParameters([\n { type: 'address', name: 'account' },\n { type: 'address', name: 'community' },\n { type: 'string', name: 'avatarURI' },\n { type: 'string', name: 'ensName' },\n { type: 'uint256', name: 'stakeAmount' }\n ], [\n this.accountAddress,\n communityAddress,\n '',\n '',\n stakeAmount\n ]);\n const registerData = encodeFunctionData({\n abi: [{ name: 'registerRoleSelf', type: 'function', inputs: [{ type: 'bytes32' }, { type: 'bytes' }], outputs: [{ type: 'uint256' }], stateMutability: 'nonpayable' }],\n functionName: 'registerRoleSelf',\n args: [ROLE_ENDUSER, roleData]\n });\n txs.push({ target: this.registryAddress, value: 0n, data: registerData });\n console.log(` 🔍 Debug Onboard: Community=${communityAddress}, AA=${this.accountAddress}, Stake=${stakeAmount}`);\n console.log(` 🔍 Debug Batch: Txs=${txs.length}, Targets=${txs.map(t => t.target)}`);\n // 3. Execute separately for stability (Batch execution has issues on current AA deployment)\n const hashes = [];\n for (const tx of txs) {\n const h = await this.execute(tx.target, tx.value, tx.data, options);\n hashes.push(h);\n // Wait for each tx to ensure sequential state updates (approve -> register)\n await this.getStartPublicClient().waitForTransactionReceipt({ hash: h });\n }\n return hashes[hashes.length - 1];\n }\n catch (error) {\n throw error;\n }\n }\n // ========================================\n // 6. Gasless Execution (Advanced)\n // ========================================\n /**\n * Execute a transaction with Gasless Sponsorship\n */\n async executeGasless(params, options) {\n try {\n const client = this.bundlerClient ? this.bundlerClient.extend(bundlerActions) : this.client.extend(bundlerActions);\n const ep = this.requireEntryPoint();\n // 1. Prepare Call Data\n const callData = encodeFunctionData({\n abi: [{ name: 'execute', type: 'function', inputs: [{ name: 'dest', type: 'address' }, { name: 'value', type: 'uint256' }, { name: 'func', type: 'bytes' }], outputs: [] }],\n functionName: 'execute',\n args: [params.target, params.value, params.data]\n });\n // 3. Delegate to PaymasterClient for v0.7 Gasless Submission\n // This ensures we follow the exact same logic as successful demo scripts\n // We dynamic import to avoid circular dependencies if any\n const { PaymasterClient: SDKPaymasterClient } = await import('@aastar/paymaster');\n let verificationGasLimit;\n let paymasterVerificationGasLimit;\n let paymasterPostOpGasLimit;\n let autoEstimate = true;\n if (params.paymasterType === 'Super') {\n // Apply Smart Buffer Strategy via PaymasterUtils (Same as SuperPaymasterClient)\n const { tuneGasLimit } = await import('@aastar/paymaster');\n const est = await SDKPaymasterClient.estimateUserOperationGas(this.client, this.client, this.accountAddress, ep, params.paymaster, params.target, // placeholder\n this.bundlerClient?.transport?.url || this.client.transport.url || '', callData, {\n operator: params.operator,\n factory: undefined,\n factoryData: undefined\n });\n // Matches SuperPaymasterClient Logic exactly:\n const bundlerEstimate = est.paymasterVerificationGasLimit || 100000n;\n // Nominal 60k, Efficiency 0.45\n paymasterVerificationGasLimit = tuneGasLimit(bundlerEstimate, 60000n, 0.45);\n // Safety Pad for VGL (Moderate, not 1M)\n const SAFETY_PAD = 80000n;\n verificationGasLimit = est.verificationGasLimit + SAFETY_PAD;\n // SuperPaymaster postOp calls burnFromWithOpHash (~40k gas) + storage writes.\n // Add 100k buffer; floor at 200k to prevent OOG. Pure BigInt to avoid Number precision loss.\n const _postOpBase = est.paymasterPostOpGasLimit + 100000n;\n paymasterPostOpGasLimit = _postOpBase > 200000n ? _postOpBase : 200000n;\n autoEstimate = false; // logic handled\n }\n const txHash = await SDKPaymasterClient.submitGaslessUserOperation(this.client, this.client, // WalletClient acts as signer\n this.accountAddress, ep, params.paymaster, params.target, // placeholder for token if V4\n this.bundlerClient?.transport?.url || this.client.transport.url || '', callData, {\n operator: params.operator,\n autoEstimate,\n verificationGasLimit,\n paymasterVerificationGasLimit,\n paymasterPostOpGasLimit\n });\n return txHash;\n }\n catch (error) {\n console.error(\" ❌ executeGasless Error:\", error.message);\n throw error;\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../../enduser/dist/UserClient.js"],"names":["encodeFunctionData"],"mappings":"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","file":"chunk-LNICTATJ.js","sourcesContent":["import { encodeFunctionData } from 'viem';\nimport { BaseClient } from '@aastar/core';\nimport { accountActions, sbtActions, tokenActions, entryPointActions, stakingActions, registryActions } from '@aastar/core';\nimport { bundlerActions } from 'viem/account-abstraction';\nexport class UserClient extends BaseClient {\n accountAddress;\n sbtAddress;\n entryPointAddress;\n gTokenStakingAddress;\n registryAddress;\n gTokenAddress;\n bundlerClient;\n constructor(config) {\n super(config);\n this.bundlerClient = config.bundlerClient;\n this.accountAddress = config.accountAddress;\n this.sbtAddress = config.sbtAddress;\n this.entryPointAddress = config.entryPointAddress;\n this.gTokenStakingAddress = config.gTokenStakingAddress;\n this.registryAddress = config.registryAddress;\n this.gTokenAddress = config.gTokenAddress;\n }\n /**\n * Deploy a new Smart Account (Supports multiple factory types)\n * Static helper to facilitate onboarding before instantiating the UserClient.\n *\n * @param client - WalletClient to sign the deployment transaction\n * @param params - Deployment parameters\n * @returns Object containing the deployed account address and transaction hash\n */\n static async deployAccount(client, params) {\n const { accountFactoryActions, SimpleAccountFactoryABI } = await import('@aastar/core');\n // 1. Determine Factory ABI (Ensure it's the raw ABI array)\n let abi = params.customAbi || (SimpleAccountFactoryABI?.abi || SimpleAccountFactoryABI);\n // In the future, we can add more built-in ABIs here based on accountType\n // if (params.accountType === 'kernel') abi = KernelFactoryABI;\n const factoryAddr = params.factoryAddress || '0x9406Cc6185a346906296840746125a0E44976454'; // Default v0.7 Factory\n const salt = params.salt || 0n;\n // Use publicClient for reading if provided, otherwise fallback to client (which might be a Full Client)\n const readClient = params.publicClient || client;\n // Use the generic actions with the selected ABI\n const factoryRead = accountFactoryActions(factoryAddr, abi)(readClient);\n const factoryWrite = accountFactoryActions(factoryAddr, abi)(client);\n // 1. Predict Address\n const accountAddress = await factoryRead.getAddress({\n owner: params.owner,\n salt\n });\n // 2. Deploy\n try {\n const hash = await factoryWrite.createAccount({\n owner: params.owner,\n salt,\n account: client.account\n });\n return { accountAddress, hash };\n }\n catch (error) {\n const messageParts = [\n error?.shortMessage,\n error?.message,\n error?.details,\n error?.cause?.shortMessage,\n error?.cause?.message,\n error?.cause?.details,\n error?.cause?.cause?.shortMessage,\n error?.cause?.cause?.message\n ].filter(Boolean);\n const message = messageParts.join(' ');\n if (message.includes('gas required exceeds allowance') || message.includes('intrinsic gas too low')) {\n const data = encodeFunctionData({\n abi,\n functionName: 'createAccount',\n args: [params.owner, salt]\n });\n const hash = await client.sendTransaction({\n to: factoryAddr,\n data,\n gas: 2000000n,\n account: client.account\n });\n return { accountAddress, hash };\n }\n throw error;\n }\n }\n // ========================================\n // 1. 账户基本操作 (基于 L1 simpleAccountActions)\n // ========================================\n /**\n * Get the nonce of the account from EntryPoint (more reliable for 4337)\n */\n async getNonce(key = 0n) {\n try {\n if (!this.entryPointAddress) {\n throw new Error('EntryPoint address required for this client');\n }\n const entryPoint = entryPointActions(this.entryPointAddress);\n return await entryPoint(this.getStartPublicClient()).getNonce({\n sender: this.accountAddress,\n key\n });\n }\n catch (error) {\n throw error;\n }\n }\n /**\n * Get the owner of the AA account\n */\n async getOwner() {\n try {\n const account = accountActions(this.accountAddress);\n return await account(this.getStartPublicClient()).owner();\n }\n catch (error) {\n throw error;\n }\n }\n /**\n * Execute a transaction from the AA account\n */\n async execute(target, value, data, options) {\n try {\n const account = accountActions(this.accountAddress);\n // Use standard AA execute\n return await account(this.client).execute({\n dest: target,\n value,\n func: data,\n account: options?.account\n });\n }\n catch (error) {\n throw error;\n }\n }\n /**\n * Execute a batch of transactions\n */\n async executeBatch(targets, values, datas, options) {\n try {\n const account = accountActions(this.accountAddress);\n return await account(this.client).executeBatch({\n dest: targets,\n value: values,\n func: datas,\n account: options?.account\n });\n }\n catch (error) {\n throw error;\n }\n }\n // ========================================\n // identity 与 SBT (基于 L1 sbtActions)\n // ========================================\n /**\n * Get user's SBT balance\n */\n async getSBTBalance() {\n try {\n if (!this.sbtAddress)\n throw new Error('SBT address required for this client');\n const sbt = sbtActions(this.sbtAddress);\n return await sbt(this.getStartPublicClient()).balanceOf({\n owner: this.accountAddress\n });\n }\n catch (error) {\n throw error;\n }\n }\n async mintSBT(roleId, options) {\n try {\n if (!this.sbtAddress)\n throw new Error('SBT address required for this client');\n const { encodeFunctionData } = await import('viem');\n const data = encodeFunctionData({\n abi: [{ name: 'mintForRole', type: 'function', inputs: [{ name: 'user', type: 'address' }, { name: 'roleId', type: 'bytes32' }, { name: 'roleData', type: 'bytes' }], outputs: [{ type: 'uint256' }] }],\n functionName: 'mintForRole',\n args: [this.accountAddress, roleId, '0x']\n });\n return await this.execute(this.sbtAddress, 0n, data, options);\n }\n catch (error) {\n throw error;\n }\n }\n // ========================================\n // 3. 资产管理 (基于 L1 tokenActions)\n // ========================================\n async transferToken(token, to, amount, options) {\n try {\n const { encodeFunctionData } = await import('viem');\n const data = encodeFunctionData({\n abi: [{ name: 'transfer', type: 'function', inputs: [{ name: 'to', type: 'address' }, { name: 'amount', type: 'uint256' }], outputs: [{ type: 'bool' }] }],\n functionName: 'transfer',\n args: [to, amount]\n });\n return await this.execute(token, 0n, data, options);\n }\n catch (error) {\n throw error;\n }\n }\n /**\n * Get Token Balance\n */\n async getTokenBalance(token) {\n try {\n const tokens = tokenActions()(this.getStartPublicClient());\n return await tokens.balanceOf({\n token,\n account: this.accountAddress\n });\n }\n catch (error) {\n throw error;\n }\n }\n // ========================================\n // 4. 委托与质押 (Delegation & Staking)\n // ========================================\n async stakeForRole(roleId, amount, options) {\n try {\n if (!this.gTokenStakingAddress)\n throw new Error('GTokenStaking address required for this client');\n const { encodeFunctionData } = await import('viem');\n const data = encodeFunctionData({\n abi: [{ name: 'lockStake', type: 'function', inputs: [{ name: 'user', type: 'address' }, { name: 'roleId', type: 'bytes32' }, { name: 'stakeAmount', type: 'uint256' }, { name: 'entryBurn', type: 'uint256' }, { name: 'payer', type: 'address' }], outputs: [] }],\n functionName: 'lockStake',\n args: [this.accountAddress, roleId, amount, 0n, this.accountAddress]\n });\n return await this.execute(this.gTokenStakingAddress, 0n, data, options);\n }\n catch (error) {\n throw error;\n }\n }\n async unstakeFromRole(roleId, options) {\n try {\n if (!this.gTokenStakingAddress)\n throw new Error('GTokenStaking address required for this client');\n const { encodeFunctionData } = await import('viem');\n const data = encodeFunctionData({\n abi: [{ name: 'unlockAndTransfer', type: 'function', inputs: [{ name: 'user', type: 'address' }, { name: 'roleId', type: 'bytes32' }], outputs: [{ name: 'netAmount', type: 'uint256' }] }],\n functionName: 'unlockAndTransfer',\n args: [this.accountAddress, roleId]\n });\n return await this.execute(this.gTokenStakingAddress, 0n, data, options);\n }\n catch (error) {\n throw error;\n }\n }\n /**\n * Get staked balance for a specific role\n */\n async getStakedBalance(roleId) {\n try {\n if (!this.gTokenStakingAddress)\n throw new Error('GTokenStaking address required for this client');\n const staking = stakingActions(this.gTokenStakingAddress);\n return await staking(this.getStartPublicClient()).getLockedStake({\n user: this.accountAddress,\n roleId\n });\n }\n catch (error) {\n throw error;\n }\n }\n // ========================================\n // 5. 生命周期管理 (Lifecycle)\n // ========================================\n async exitRole(roleId, options) {\n try {\n if (!this.registryAddress)\n throw new Error('Registry address required for this client');\n const { encodeFunctionData } = await import('viem');\n const data = encodeFunctionData({\n abi: [{ name: 'exitRole', type: 'function', inputs: [{ name: 'roleId', type: 'bytes32' }], outputs: [] }],\n functionName: 'exitRole',\n args: [roleId]\n });\n return await this.execute(this.registryAddress, 0n, data, options);\n }\n catch (error) {\n throw error;\n }\n }\n async leaveCommunity(community, options) {\n try {\n if (!this.sbtAddress)\n throw new Error('SBT address required for this client');\n const { encodeFunctionData } = await import('viem');\n const data = encodeFunctionData({\n abi: [{ name: 'leaveCommunity', type: 'function', inputs: [{ name: 'comm', type: 'address' }], outputs: [] }],\n functionName: 'leaveCommunity',\n args: [community]\n });\n return await this.execute(this.sbtAddress, 0n, data, options);\n }\n catch (error) {\n throw error;\n }\n }\n /**\n * Register as EndUser (One-click: Approve + Register)\n * Handles GToken approval to Staking contract and Role registration.\n */\n async registerAsEndUser(communityAddress, stakeAmount, options) {\n try {\n if (!this.registryAddress)\n throw new Error('Registry address required for this client');\n if (!this.gTokenStakingAddress)\n throw new Error('GTokenStaking address required for this client');\n if (!this.gTokenAddress)\n throw new Error('GToken address required for this client');\n const { encodeAbiParameters, keccak256, toBytes, parseEther } = await import('viem');\n const ROLE_ENDUSER = keccak256(toBytes(\"ENDUSER\"));\n // Correct mapping for Registry Actions\n const registry = registryActions(this.registryAddress);\n const publicClient = this.getStartPublicClient();\n const tokens = tokenActions()(publicClient);\n // 1. Check Allowance\n const allowance = await tokens.allowance({\n token: this.gTokenAddress,\n owner: this.accountAddress,\n spender: this.gTokenStakingAddress\n });\n console.log(` 🔍 Debug Allowance: Account=${this.accountAddress}, Allowance=${allowance}, Needed=${stakeAmount}`);\n const txs = [];\n if (allowance < stakeAmount) {\n const approveData = encodeFunctionData({\n abi: [{ name: 'approve', type: 'function', inputs: [{ type: 'address' }, { type: 'uint256' }], outputs: [{ type: 'bool' }], stateMutability: 'nonpayable' }],\n functionName: 'approve',\n args: [this.gTokenStakingAddress, parseEther('1000')]\n });\n txs.push({ target: this.gTokenAddress, value: 0n, data: approveData });\n }\n // 2. Construct Register Call\n // struct EndUserRoleData { address account; address community; string avatarURI; string ensName; uint256 stakeAmount; }\n const roleData = encodeAbiParameters([\n { type: 'address', name: 'account' },\n { type: 'address', name: 'community' },\n { type: 'string', name: 'avatarURI' },\n { type: 'string', name: 'ensName' },\n { type: 'uint256', name: 'stakeAmount' }\n ], [\n this.accountAddress,\n communityAddress,\n '',\n '',\n stakeAmount\n ]);\n const registerData = encodeFunctionData({\n abi: [{ name: 'registerRoleSelf', type: 'function', inputs: [{ type: 'bytes32' }, { type: 'bytes' }], outputs: [{ type: 'uint256' }], stateMutability: 'nonpayable' }],\n functionName: 'registerRoleSelf',\n args: [ROLE_ENDUSER, roleData]\n });\n txs.push({ target: this.registryAddress, value: 0n, data: registerData });\n console.log(` 🔍 Debug Onboard: Community=${communityAddress}, AA=${this.accountAddress}, Stake=${stakeAmount}`);\n console.log(` 🔍 Debug Batch: Txs=${txs.length}, Targets=${txs.map(t => t.target)}`);\n // 3. Execute separately for stability (Batch execution has issues on current AA deployment)\n const hashes = [];\n for (const tx of txs) {\n const h = await this.execute(tx.target, tx.value, tx.data, options);\n hashes.push(h);\n // Wait for each tx to ensure sequential state updates (approve -> register)\n await this.getStartPublicClient().waitForTransactionReceipt({ hash: h });\n }\n return hashes[hashes.length - 1];\n }\n catch (error) {\n throw error;\n }\n }\n // ========================================\n // 6. Gasless Execution (Advanced)\n // ========================================\n /**\n * Execute a transaction with Gasless Sponsorship\n */\n async executeGasless(params, options) {\n try {\n const client = this.bundlerClient ? this.bundlerClient.extend(bundlerActions) : this.client.extend(bundlerActions);\n const ep = this.requireEntryPoint();\n // 1. Prepare Call Data\n const callData = encodeFunctionData({\n abi: [{ name: 'execute', type: 'function', inputs: [{ name: 'dest', type: 'address' }, { name: 'value', type: 'uint256' }, { name: 'func', type: 'bytes' }], outputs: [] }],\n functionName: 'execute',\n args: [params.target, params.value, params.data]\n });\n // 3. Delegate to PaymasterClient for v0.7 Gasless Submission\n // This ensures we follow the exact same logic as successful demo scripts\n // We dynamic import to avoid circular dependencies if any\n const { PaymasterClient: SDKPaymasterClient } = await import('@aastar/paymaster');\n let verificationGasLimit;\n let paymasterVerificationGasLimit;\n let paymasterPostOpGasLimit;\n let autoEstimate = true;\n if (params.paymasterType === 'Super') {\n // Apply Smart Buffer Strategy via PaymasterUtils (Same as SuperPaymasterClient)\n const { tuneGasLimit } = await import('@aastar/paymaster');\n const est = await SDKPaymasterClient.estimateUserOperationGas(this.client, this.client, this.accountAddress, ep, params.paymaster, params.target, // placeholder\n this.bundlerClient?.transport?.url || this.client.transport.url || '', callData, {\n operator: params.operator,\n factory: undefined,\n factoryData: undefined\n });\n // Matches SuperPaymasterClient Logic exactly:\n const bundlerEstimate = est.paymasterVerificationGasLimit || 100000n;\n // Nominal 60k, Efficiency 0.45\n paymasterVerificationGasLimit = tuneGasLimit(bundlerEstimate, 60000n, 0.45);\n // Safety Pad for VGL (Moderate, not 1M)\n const SAFETY_PAD = 80000n;\n verificationGasLimit = est.verificationGasLimit + SAFETY_PAD;\n // SuperPaymaster postOp calls burnFromWithOpHash (~40k gas) + storage writes.\n // Add 100k buffer; floor at 200k to prevent OOG. Pure BigInt to avoid Number precision loss.\n const _postOpBase = est.paymasterPostOpGasLimit + 100000n;\n paymasterPostOpGasLimit = _postOpBase > 200000n ? _postOpBase : 200000n;\n autoEstimate = false; // logic handled\n }\n const txHash = await SDKPaymasterClient.submitGaslessUserOperation(this.client, this.client, // WalletClient acts as signer\n this.accountAddress, ep, params.paymaster, params.target, // placeholder for token if V4\n this.bundlerClient?.transport?.url || this.client.transport.url || '', callData, {\n operator: params.operator,\n autoEstimate,\n verificationGasLimit,\n paymasterVerificationGasLimit,\n paymasterPostOpGasLimit\n });\n return txHash;\n }\n catch (error) {\n console.error(\" ❌ executeGasless Error:\", error.message);\n throw error;\n }\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { SuperPaymasterABI } from './chunk-ZSSNU3UF.js';
1
+ import { SuperPaymasterABI } from './chunk-TBDMSJVL.js';
2
2
  import { parseAbi, formatEther } from 'viem';
3
3
 
4
4
  var STAKING_ABI = parseAbi([
@@ -116,7 +116,7 @@ var FinanceClient = class _FinanceClient {
116
116
  * Get GToken balance
117
117
  */
118
118
  async getGTokenBalance(address) {
119
- const { CORE_ADDRESSES } = await import('./index.node-55LOPHNQ.js');
119
+ const { CORE_ADDRESSES } = await import('./index.node-GNYPFVZQ.js');
120
120
  return this.publicClient.readContract({
121
121
  address: CORE_ADDRESSES.gToken,
122
122
  abi: ERC20_ABI,
@@ -128,7 +128,7 @@ var FinanceClient = class _FinanceClient {
128
128
  * Get aPNTs balance
129
129
  */
130
130
  async getAPNTsBalance(address) {
131
- const { CORE_ADDRESSES } = await import('./index.node-55LOPHNQ.js');
131
+ const { CORE_ADDRESSES } = await import('./index.node-GNYPFVZQ.js');
132
132
  return this.publicClient.readContract({
133
133
  address: CORE_ADDRESSES.aPNTs,
134
134
  abi: ERC20_ABI,
@@ -146,7 +146,7 @@ var FinanceClient = class _FinanceClient {
146
146
  const account = this.walletClient.account;
147
147
  if (!account)
148
148
  throw new Error("Account required");
149
- const { CORE_ADDRESSES } = await import('./index.node-55LOPHNQ.js');
149
+ const { CORE_ADDRESSES } = await import('./index.node-GNYPFVZQ.js');
150
150
  const gTokenAddress = CORE_ADDRESSES.gToken;
151
151
  const stakingAddress = CORE_ADDRESSES.gTokenStaking;
152
152
  const allowance = await this.publicClient.readContract({
@@ -175,7 +175,7 @@ var FinanceClient = class _FinanceClient {
175
175
  * Get circulating supply (total - locked)
176
176
  */
177
177
  async getCirculatingSupply() {
178
- const { CORE_ADDRESSES } = await import('./index.node-55LOPHNQ.js');
178
+ const { CORE_ADDRESSES } = await import('./index.node-GNYPFVZQ.js');
179
179
  const gTokenAddress = CORE_ADDRESSES.gToken;
180
180
  const total = await this.publicClient.readContract({
181
181
  address: gTokenAddress,
@@ -193,7 +193,7 @@ var FinanceClient = class _FinanceClient {
193
193
  * Get comprehensive tokenomics data
194
194
  */
195
195
  async getTokenomicsOverview() {
196
- const { CORE_ADDRESSES } = await import('./index.node-55LOPHNQ.js');
196
+ const { CORE_ADDRESSES } = await import('./index.node-GNYPFVZQ.js');
197
197
  const [totalSupply, totalStaked, blackholeBalance] = await Promise.all([
198
198
  this.publicClient.readContract({
199
199
  address: CORE_ADDRESSES.gToken,
@@ -225,5 +225,5 @@ var FinanceClient = class _FinanceClient {
225
225
  };
226
226
 
227
227
  export { FinanceClient };
228
- //# sourceMappingURL=chunk-PCLPYRTX.js.map
229
- //# sourceMappingURL=chunk-PCLPYRTX.js.map
228
+ //# sourceMappingURL=chunk-M5ORP2PM.js.map
229
+ //# sourceMappingURL=chunk-M5ORP2PM.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../tokens/dist/index.js"],"names":[],"mappings":"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","file":"chunk-PCLPYRTX.js","sourcesContent":["import { parseAbi, formatEther } from 'viem';\nimport { SuperPaymasterABI as SUPERPAYMASTER_ABI } from '@aastar/core';\nconst STAKING_ABI = parseAbi([\n 'function stake(uint256)',\n 'function withdraw(uint256)'\n]);\nconst ERC20_ABI = parseAbi([\n 'function balanceOf(address) view returns (uint256)',\n 'function totalSupply() view returns (uint256)',\n 'function approve(address,uint256) returns (bool)',\n 'function transfer(address,uint256) returns (bool)'\n]);\nexport class FinanceClient {\n publicClient;\n walletClient;\n /**\n * Initialize FinanceClient\n * @param publicClient The public client for queries\n * @param walletClient The wallet client for transactions\n */\n constructor(publicClient, walletClient) {\n this.publicClient = publicClient;\n this.walletClient = walletClient;\n }\n // ========== Existing static methods (preserved for backward compatibility) ==========\n /** @deprecated Use instance methods instead */\n static async depositToPaymaster(wallet, paymaster, amount) {\n return wallet.writeContract({\n address: paymaster,\n abi: SUPERPAYMASTER_ABI,\n functionName: 'deposit',\n args: [amount],\n chain: wallet.chain\n });\n }\n /** @deprecated Use instance methods instead */\n static async depositViaTransferAndCall(wallet, token, paymaster, amount) {\n const ERC1363_ABI = [{\n name: 'transferAndCall',\n type: 'function',\n stateMutability: 'nonpayable',\n inputs: [{ type: 'address', name: 'to' }, { type: 'uint256', name: 'value' }],\n outputs: [{ type: 'bool' }]\n }];\n return wallet.writeContract({\n address: token,\n abi: ERC1363_ABI,\n functionName: 'transferAndCall',\n args: [paymaster, amount],\n chain: wallet.chain\n });\n }\n /** @deprecated Use instance methods instead */\n static async stakeGToken(wallet, stakingAddr, amount) {\n return wallet.writeContract({\n address: stakingAddr,\n abi: STAKING_ABI,\n functionName: 'stake',\n args: [amount],\n chain: wallet.chain\n });\n }\n /** @deprecated Use instance methods instead */\n static async withdrawProtocolRevenue(wallet, paymaster, to, amount) {\n return wallet.writeContract({\n address: paymaster,\n abi: SUPERPAYMASTER_ABI,\n functionName: 'withdrawProtocolRevenue',\n args: [to, amount],\n chain: wallet.chain\n });\n }\n /** @deprecated Use instance methods instead */\n static async depositToEntryPoint(wallet, entryPoint, paymaster, amount) {\n return wallet.writeContract({\n address: entryPoint,\n abi: parseAbi(['function depositTo(address) payable']),\n functionName: 'depositTo',\n args: [paymaster],\n value: amount,\n chain: wallet.chain\n });\n }\n /** @deprecated Use instance methods instead */\n static async getEntryPointBalance(client, entryPoint, account) {\n return client.readContract({\n address: entryPoint,\n abi: parseAbi(['function balanceOf(address) view returns (uint256)']),\n functionName: 'balanceOf',\n args: [account]\n });\n }\n /** @deprecated Use instance methods instead */\n static async operatorDeposit(wallet, paymaster, amount) {\n return wallet.writeContract({\n address: paymaster,\n abi: SUPERPAYMASTER_ABI,\n functionName: 'deposit',\n args: [amount],\n chain: wallet.chain\n });\n }\n /** @deprecated Use instance methods instead */\n static async operatorNotifyDeposit(wallet, paymaster, amount) {\n return wallet.writeContract({\n address: paymaster,\n abi: SUPERPAYMASTER_ABI,\n functionName: 'notifyDeposit',\n args: [amount],\n chain: wallet.chain\n });\n }\n // ========== New instance methods (business primitives) ==========\n /**\n * Get GToken balance\n */\n async getGTokenBalance(address) {\n const { CORE_ADDRESSES } = await import('@aastar/core');\n return this.publicClient.readContract({\n address: CORE_ADDRESSES.gToken,\n abi: ERC20_ABI,\n functionName: 'balanceOf',\n args: [address]\n });\n }\n /**\n * Get aPNTs balance\n */\n async getAPNTsBalance(address) {\n const { CORE_ADDRESSES } = await import('@aastar/core');\n return this.publicClient.readContract({\n address: CORE_ADDRESSES.aPNTs,\n abi: ERC20_ABI,\n functionName: 'balanceOf',\n args: [address]\n });\n }\n /**\n * One-step stake: Approve (if needed) + Stake\n *\n * @param amount Amount of GToken to stake\n * @returns Transaction hash of the stake action\n */\n async approveAndStake(amount) {\n const account = this.walletClient.account;\n if (!account)\n throw new Error(\"Account required\");\n const { CORE_ADDRESSES } = await import('@aastar/core');\n const gTokenAddress = CORE_ADDRESSES.gToken;\n const stakingAddress = CORE_ADDRESSES.gTokenStaking;\n // 1. Check Allowance\n const allowance = await this.publicClient.readContract({\n address: gTokenAddress,\n abi: parseAbi(['function allowance(address owner, address spender) view returns (uint256)']),\n functionName: 'allowance',\n args: [account.address, stakingAddress]\n }); // as bigint\n if (allowance < amount) {\n console.log(`[FinanceClient] Approving ${formatEther(amount)} GToken...`);\n const approveTx = await this.walletClient.writeContract({\n address: gTokenAddress,\n abi: parseAbi(['function approve(address spender, uint256 amount) returns (bool)']),\n functionName: 'approve',\n args: [stakingAddress, amount],\n chain: this.walletClient.chain,\n account\n });\n await this.publicClient.waitForTransactionReceipt({ hash: approveTx });\n console.log(`[FinanceClient] Approved.`);\n }\n // 2. Stake\n console.log(`[FinanceClient] Staking...`);\n return FinanceClient.stakeGToken(this.walletClient, stakingAddress, amount);\n }\n /**\n * Get circulating supply (total - locked)\n */\n async getCirculatingSupply() {\n const { CORE_ADDRESSES } = await import('@aastar/core');\n const gTokenAddress = CORE_ADDRESSES.gToken;\n const total = await this.publicClient.readContract({\n address: gTokenAddress,\n abi: ERC20_ABI,\n functionName: 'totalSupply'\n });\n // In a real scenario, we might query GTokenStaking's totalStaked\n const locked = 0n;\n return {\n total,\n locked,\n circulating: total - locked\n };\n }\n /**\n * Get comprehensive tokenomics data\n */\n async getTokenomicsOverview() {\n const { CORE_ADDRESSES } = await import('@aastar/core');\n const [totalSupply, totalStaked, blackholeBalance] = await Promise.all([\n this.publicClient.readContract({\n address: CORE_ADDRESSES.gToken,\n abi: parseAbi(['function totalSupply() view returns (uint256)']),\n functionName: 'totalSupply'\n }),\n this.publicClient.readContract({\n address: CORE_ADDRESSES.gTokenStaking,\n abi: parseAbi(['function totalStaked() view returns (uint256)']),\n functionName: 'totalStaked'\n }),\n this.publicClient.readContract({\n address: CORE_ADDRESSES.gToken,\n abi: parseAbi(['function balanceOf(address) view returns (uint256)']),\n functionName: 'balanceOf',\n args: ['0x000000000000000000000000000000000000dEaD']\n })\n ]);\n const circulating = totalSupply - totalStaked - blackholeBalance;\n const ratio = Number(formatEther(totalStaked)) / Number(formatEther(totalSupply)) * 100;\n return {\n totalSupply,\n totalStaked,\n totalBurned: blackholeBalance,\n circulatingSupply: circulating,\n stakingRatio: ratio\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["../../tokens/dist/index.js"],"names":[],"mappings":"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","file":"chunk-M5ORP2PM.js","sourcesContent":["import { parseAbi, formatEther } from 'viem';\nimport { SuperPaymasterABI as SUPERPAYMASTER_ABI } from '@aastar/core';\nconst STAKING_ABI = parseAbi([\n 'function stake(uint256)',\n 'function withdraw(uint256)'\n]);\nconst ERC20_ABI = parseAbi([\n 'function balanceOf(address) view returns (uint256)',\n 'function totalSupply() view returns (uint256)',\n 'function approve(address,uint256) returns (bool)',\n 'function transfer(address,uint256) returns (bool)'\n]);\nexport class FinanceClient {\n publicClient;\n walletClient;\n /**\n * Initialize FinanceClient\n * @param publicClient The public client for queries\n * @param walletClient The wallet client for transactions\n */\n constructor(publicClient, walletClient) {\n this.publicClient = publicClient;\n this.walletClient = walletClient;\n }\n // ========== Existing static methods (preserved for backward compatibility) ==========\n /** @deprecated Use instance methods instead */\n static async depositToPaymaster(wallet, paymaster, amount) {\n return wallet.writeContract({\n address: paymaster,\n abi: SUPERPAYMASTER_ABI,\n functionName: 'deposit',\n args: [amount],\n chain: wallet.chain\n });\n }\n /** @deprecated Use instance methods instead */\n static async depositViaTransferAndCall(wallet, token, paymaster, amount) {\n const ERC1363_ABI = [{\n name: 'transferAndCall',\n type: 'function',\n stateMutability: 'nonpayable',\n inputs: [{ type: 'address', name: 'to' }, { type: 'uint256', name: 'value' }],\n outputs: [{ type: 'bool' }]\n }];\n return wallet.writeContract({\n address: token,\n abi: ERC1363_ABI,\n functionName: 'transferAndCall',\n args: [paymaster, amount],\n chain: wallet.chain\n });\n }\n /** @deprecated Use instance methods instead */\n static async stakeGToken(wallet, stakingAddr, amount) {\n return wallet.writeContract({\n address: stakingAddr,\n abi: STAKING_ABI,\n functionName: 'stake',\n args: [amount],\n chain: wallet.chain\n });\n }\n /** @deprecated Use instance methods instead */\n static async withdrawProtocolRevenue(wallet, paymaster, to, amount) {\n return wallet.writeContract({\n address: paymaster,\n abi: SUPERPAYMASTER_ABI,\n functionName: 'withdrawProtocolRevenue',\n args: [to, amount],\n chain: wallet.chain\n });\n }\n /** @deprecated Use instance methods instead */\n static async depositToEntryPoint(wallet, entryPoint, paymaster, amount) {\n return wallet.writeContract({\n address: entryPoint,\n abi: parseAbi(['function depositTo(address) payable']),\n functionName: 'depositTo',\n args: [paymaster],\n value: amount,\n chain: wallet.chain\n });\n }\n /** @deprecated Use instance methods instead */\n static async getEntryPointBalance(client, entryPoint, account) {\n return client.readContract({\n address: entryPoint,\n abi: parseAbi(['function balanceOf(address) view returns (uint256)']),\n functionName: 'balanceOf',\n args: [account]\n });\n }\n /** @deprecated Use instance methods instead */\n static async operatorDeposit(wallet, paymaster, amount) {\n return wallet.writeContract({\n address: paymaster,\n abi: SUPERPAYMASTER_ABI,\n functionName: 'deposit',\n args: [amount],\n chain: wallet.chain\n });\n }\n /** @deprecated Use instance methods instead */\n static async operatorNotifyDeposit(wallet, paymaster, amount) {\n return wallet.writeContract({\n address: paymaster,\n abi: SUPERPAYMASTER_ABI,\n functionName: 'notifyDeposit',\n args: [amount],\n chain: wallet.chain\n });\n }\n // ========== New instance methods (business primitives) ==========\n /**\n * Get GToken balance\n */\n async getGTokenBalance(address) {\n const { CORE_ADDRESSES } = await import('@aastar/core');\n return this.publicClient.readContract({\n address: CORE_ADDRESSES.gToken,\n abi: ERC20_ABI,\n functionName: 'balanceOf',\n args: [address]\n });\n }\n /**\n * Get aPNTs balance\n */\n async getAPNTsBalance(address) {\n const { CORE_ADDRESSES } = await import('@aastar/core');\n return this.publicClient.readContract({\n address: CORE_ADDRESSES.aPNTs,\n abi: ERC20_ABI,\n functionName: 'balanceOf',\n args: [address]\n });\n }\n /**\n * One-step stake: Approve (if needed) + Stake\n *\n * @param amount Amount of GToken to stake\n * @returns Transaction hash of the stake action\n */\n async approveAndStake(amount) {\n const account = this.walletClient.account;\n if (!account)\n throw new Error(\"Account required\");\n const { CORE_ADDRESSES } = await import('@aastar/core');\n const gTokenAddress = CORE_ADDRESSES.gToken;\n const stakingAddress = CORE_ADDRESSES.gTokenStaking;\n // 1. Check Allowance\n const allowance = await this.publicClient.readContract({\n address: gTokenAddress,\n abi: parseAbi(['function allowance(address owner, address spender) view returns (uint256)']),\n functionName: 'allowance',\n args: [account.address, stakingAddress]\n }); // as bigint\n if (allowance < amount) {\n console.log(`[FinanceClient] Approving ${formatEther(amount)} GToken...`);\n const approveTx = await this.walletClient.writeContract({\n address: gTokenAddress,\n abi: parseAbi(['function approve(address spender, uint256 amount) returns (bool)']),\n functionName: 'approve',\n args: [stakingAddress, amount],\n chain: this.walletClient.chain,\n account\n });\n await this.publicClient.waitForTransactionReceipt({ hash: approveTx });\n console.log(`[FinanceClient] Approved.`);\n }\n // 2. Stake\n console.log(`[FinanceClient] Staking...`);\n return FinanceClient.stakeGToken(this.walletClient, stakingAddress, amount);\n }\n /**\n * Get circulating supply (total - locked)\n */\n async getCirculatingSupply() {\n const { CORE_ADDRESSES } = await import('@aastar/core');\n const gTokenAddress = CORE_ADDRESSES.gToken;\n const total = await this.publicClient.readContract({\n address: gTokenAddress,\n abi: ERC20_ABI,\n functionName: 'totalSupply'\n });\n // In a real scenario, we might query GTokenStaking's totalStaked\n const locked = 0n;\n return {\n total,\n locked,\n circulating: total - locked\n };\n }\n /**\n * Get comprehensive tokenomics data\n */\n async getTokenomicsOverview() {\n const { CORE_ADDRESSES } = await import('@aastar/core');\n const [totalSupply, totalStaked, blackholeBalance] = await Promise.all([\n this.publicClient.readContract({\n address: CORE_ADDRESSES.gToken,\n abi: parseAbi(['function totalSupply() view returns (uint256)']),\n functionName: 'totalSupply'\n }),\n this.publicClient.readContract({\n address: CORE_ADDRESSES.gTokenStaking,\n abi: parseAbi(['function totalStaked() view returns (uint256)']),\n functionName: 'totalStaked'\n }),\n this.publicClient.readContract({\n address: CORE_ADDRESSES.gToken,\n abi: parseAbi(['function balanceOf(address) view returns (uint256)']),\n functionName: 'balanceOf',\n args: ['0x000000000000000000000000000000000000dEaD']\n })\n ]);\n const circulating = totalSupply - totalStaked - blackholeBalance;\n const ratio = Number(formatEther(totalStaked)) / Number(formatEther(totalSupply)) * 100;\n return {\n totalSupply,\n totalStaked,\n totalBurned: blackholeBalance,\n circulatingSupply: circulating,\n stakingRatio: ratio\n };\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { SuperPaymasterABI } from './chunk-ZSSNU3UF.js';
1
+ import { SuperPaymasterABI } from './chunk-TBDMSJVL.js';
2
2
  import { concat, pad, toHex, keccak256, encodeAbiParameters, toBytes, parseAbiParameters, parseAbi, encodeFunctionData } from 'viem';
3
3
 
4
4
  var DEFAULT_VERIFICATION_GAS = 160000n;
@@ -1136,5 +1136,5 @@ var PaymasterManager = class _PaymasterManager {
1136
1136
  };
1137
1137
 
1138
1138
  export { PaymasterClient, PaymasterManager, PaymasterOperator, SuperPaymasterAdminClient, SuperPaymasterClient, buildPaymasterData, buildSuperPaymasterData, checkEligibility, formatUserOpV07, getPaymasterV4Middleware, getSuperPaymasterMiddleware, getUserOpHashV07, tuneGasLimit };
1139
- //# sourceMappingURL=chunk-MPOMWT2J.js.map
1140
- //# sourceMappingURL=chunk-MPOMWT2J.js.map
1139
+ //# sourceMappingURL=chunk-NAPMVAVJ.js.map
1140
+ //# sourceMappingURL=chunk-NAPMVAVJ.js.map