@chipi-stack/chipi-react 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components.d.mts +60 -0
- package/dist/components.d.ts +60 -0
- package/dist/components.js +504 -0
- package/dist/components.js.map +1 -0
- package/dist/components.mjs +494 -0
- package/dist/components.mjs.map +1 -0
- package/dist/hooks.d.mts +165 -0
- package/dist/hooks.d.ts +165 -0
- package/dist/hooks.js +187 -0
- package/dist/hooks.js.map +1 -0
- package/dist/hooks.mjs +175 -0
- package/dist/hooks.mjs.map +1 -0
- package/dist/index.d.mts +27 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.js +624 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +601 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +102 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/context/ChipiProvider.tsx","../src/hooks/useCreateWallet.ts","../src/components/WalletCreator.tsx","../src/components/WalletBalance.tsx","../src/hooks/useTransfer.ts","../src/components/TransactionForm.tsx","../src/hooks/useSkus.ts","../src/components/SkuList.tsx","../src/hooks/usePurchaseSku.ts","../src/components/SkuPurchaseForm.tsx"],"names":["React","jsx","jsxs","useMutation","useState","formatCurrency"],"mappings":";;;;;;;AASA,IAAM,YAAA,GAAe,cAAwC,IAAI,CAAA;AA+B1D,SAAS,eAAA,GAAqC;AACnD,EAAA,MAAM,OAAA,GAAU,WAAW,YAAY,CAAA;AAEvC,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,MAAM,IAAI,MAAM,qDAAqD,CAAA;AAAA,EACvE;AAEA,EAAA,OAAO,OAAA;AACT;;;ACvCO,SAAS,eAAA,GASd;AACA,EAAA,MAAM,EAAE,QAAA,EAAS,GAAI,eAAA,EAAgB;AAErC,EAAA,MAAM,WAA8E,WAAA,CAAY;AAAA,IAC9F,UAAA,EAAY,CAAC,MAAA,KAA8B,QAAA,CAAS,aAAa,MAAM;AAAA,GACxE,CAAA;AAED,EAAA,OAAO;AAAA,IACL,cAAc,QAAA,CAAS,MAAA;AAAA,IACvB,mBAAmB,QAAA,CAAS,WAAA;AAAA,IAC5B,MAAM,QAAA,CAAS,IAAA;AAAA,IACf,WAAW,QAAA,CAAS,SAAA;AAAA,IACpB,SAAS,QAAA,CAAS,OAAA;AAAA,IAClB,OAAO,QAAA,CAAS,KAAA;AAAA,IAChB,WAAW,QAAA,CAAS,SAAA;AAAA,IACpB,OAAO,QAAA,CAAS;AAAA,GAClB;AACF;ACtBO,SAAS,aAAA,CAAc,EAAE,eAAA,EAAiB,SAAA,EAAW,UAAS,EAAuB;AAC1F,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,SAAS,EAAE,CAAA;AAC/C,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAI,SAAS,EAAE,CAAA;AAEjD,EAAA,MAAM,EAAE,cAAc,SAAA,EAAW,OAAA,EAAS,OAAO,IAAA,EAAM,SAAA,KAAc,eAAA,EAAgB;AAErF,EAAA,MAAM,YAAA,GAAe,CAAC,CAAA,KAAuB;AAC3C,IAAA,CAAA,CAAE,cAAA,EAAe;AACjB,IAAA,IAAI,CAAC,UAAA,IAAc,CAAC,WAAA,EAAa;AAEjC,IAAA,YAAA,CAAa;AAAA,MACX,UAAA;AAAA,MACA;AAAA,KACD,CAAA;AAAA,EACH,CAAA;AAEA,EAAAA,MAAAA,CAAM,UAAU,MAAM;AACpB,IAAA,IAAI,SAAA,IAAa,QAAQ,eAAA,EAAiB;AACxC,MAAA,eAAA,CAAgB,IAAI,CAAA;AAAA,IACtB;AAAA,EACF,CAAA,EAAG,CAAC,SAAA,EAAW,IAAA,EAAM,eAAe,CAAC,CAAA;AAErC,EAAA,IAAI,QAAA,EAAU;AACZ,IAAA,uBACEC,GAAAA,CAAA,QAAA,EAAA,EACG,QAAA,EACH,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACE,IAAA,CAAC,SAAI,SAAA,EACH,QAAA,EAAA;AAAA,oBAAAA,GAAAA,CAAC,QAAG,QAAA,EAAA,eAAA,EAAa,CAAA;AAAA,IAEhB,OAAA,IAAW,KAAA,oBACV,IAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,KAAA,EAAO,KAAA,EAAO,YAAA,EAAc,MAAA,EAAO,EAAG,QAAA,EAAA;AAAA,MAAA,SAAA;AAAA,MAC1C,KAAA,CAAM;AAAA,KAAA,EAChB,CAAA;AAAA,IAGD,SAAA,IAAa,IAAA,oBACZ,IAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,KAAA,EAAO,OAAA,EAAS,YAAA,EAAc,MAAA,EAAO,EAAG,QAAA,EAAA;AAAA,MAAA,wCAAA;AAAA,MACb,IAAA,CAAK;AAAA,KAAA,EAC9C,CAAA;AAAA,oBAGF,IAAA,CAAC,MAAA,EAAA,EAAK,QAAA,EAAU,YAAA,EACd,QAAA,EAAA;AAAA,sBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,YAAA,EAAc,QAAO,EACjC,QAAA,EAAA;AAAA,wBAAAA,GAAAA,CAAC,OAAA,EAAA,EAAM,OAAA,EAAQ,YAAA,EAAa,QAAA,EAAA,cAAA,EAAY,CAAA;AAAA,wBACxCA,GAAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,EAAA,EAAG,YAAA;AAAA,YACH,IAAA,EAAK,UAAA;AAAA,YACL,KAAA,EAAO,UAAA;AAAA,YACP,UAAU,CAAC,CAAA,KAAM,aAAA,CAAc,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,YAC7C,QAAA,EAAQ,IAAA;AAAA,YACR,OAAO,EAAE,KAAA,EAAO,QAAQ,OAAA,EAAS,QAAA,EAAU,WAAW,SAAA;AAAU;AAAA;AAClE,OAAA,EACF,CAAA;AAAA,2BAEC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,YAAA,EAAc,QAAO,EACjC,QAAA,EAAA;AAAA,wBAAAA,GAAAA,CAAC,OAAA,EAAA,EAAM,OAAA,EAAQ,aAAA,EAAc,QAAA,EAAA,eAAA,EAAa,CAAA;AAAA,wBAC1CA,GAAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,EAAA,EAAG,aAAA;AAAA,YACH,IAAA,EAAK,MAAA;AAAA,YACL,KAAA,EAAO,WAAA;AAAA,YACP,UAAU,CAAC,CAAA,KAAM,cAAA,CAAe,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,YAC9C,QAAA,EAAQ,IAAA;AAAA,YACR,OAAO,EAAE,KAAA,EAAO,QAAQ,OAAA,EAAS,QAAA,EAAU,WAAW,SAAA;AAAU;AAAA;AAClE,OAAA,EACF,CAAA;AAAA,sBAEAA,GAAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,QAAA;AAAA,UACL,QAAA,EAAU,SAAA,IAAa,CAAC,UAAA,IAAc,CAAC,WAAA;AAAA,UACvC,KAAA,EAAO;AAAA,YACL,OAAA,EAAS,gBAAA;AAAA,YACT,eAAA,EAAiB,YAAY,MAAA,GAAS,SAAA;AAAA,YACtC,KAAA,EAAO,OAAA;AAAA,YACP,MAAA,EAAQ,MAAA;AAAA,YACR,YAAA,EAAc,SAAA;AAAA,YACd,MAAA,EAAQ,YAAY,aAAA,GAAgB;AAAA,WACtC;AAAA,UAEC,sBAAY,aAAA,GAAgB;AAAA;AAAA;AAC/B,KAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;ACvFO,SAAS,aAAA,CAAc;AAAA,EAC5B,OAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,SAAA,GAAY,KAAA;AAAA,EACZ;AACF,CAAA,EAAuB;AACrB,EAAA,uBACEC,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EACH,QAAA,EAAA;AAAA,oBAAAA,KAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,YAAA,EAAc,UAAS,EACnC,QAAA,EAAA;AAAA,sBAAAD,GAAAA,CAAC,YAAO,QAAA,EAAA,SAAA,EAAO,CAAA;AAAA,MAAS,GAAA;AAAA,MAAE,cAAc,OAAO;AAAA,KAAA,EACjD,CAAA;AAAA,oBAEAC,KAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAAD,GAAAA,CAAC,YAAO,QAAA,EAAA,UAAA,EAAQ,CAAA;AAAA,MAAU,GAAA;AAAA,MACzB,SAAA,mBACCA,GAAAA,CAAC,MAAA,EAAA,EAAK,wBAAU,CAAA,GACd,OAAA,KAAY,MAAA,GACd,cAAA,CAAe,SAAS,QAAQ,CAAA,mBAEhCA,GAAAA,CAAC,UAAK,QAAA,EAAA,IAAA,EAAE;AAAA,KAAA,EAEZ;AAAA,GAAA,EACF,CAAA;AAEJ;AC9BO,SAAS,WAAA,GASd;AACA,EAAA,MAAM,EAAE,QAAA,EAAS,GAAI,eAAA,EAAgB;AAErC,EAAA,MAAM,WAA4DE,WAAAA,CAAY;AAAA,IAC5E,UAAA,EAAY,CAAC,MAAA,KAA0B,QAAA,CAAS,SAAS,MAAM;AAAA,GAChE,CAAA;AAED,EAAA,OAAO;AAAA,IACL,UAAU,QAAA,CAAS,MAAA;AAAA,IACnB,eAAe,QAAA,CAAS,WAAA;AAAA,IACxB,MAAM,QAAA,CAAS,IAAA;AAAA,IACf,WAAW,QAAA,CAAS,SAAA;AAAA,IACpB,SAAS,QAAA,CAAS,OAAA;AAAA,IAClB,OAAO,QAAA,CAAS,KAAA;AAAA,IAChB,WAAW,QAAA,CAAS,SAAA;AAAA,IACpB,OAAO,QAAA,CAAS;AAAA,GAClB;AACF;ACpBO,SAAS,eAAA,CAAgB;AAAA,EAC9B,MAAA;AAAA,EACA,UAAA;AAAA,EACA,WAAA;AAAA,EACA,qBAAA;AAAA,EACA;AACF,CAAA,EAAyB;AACvB,EAAA,MAAM,CAAC,eAAA,EAAiB,kBAAkB,CAAA,GAAIC,SAAS,EAAE,CAAA;AACzD,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIA,SAAS,EAAE,CAAA;AAC7C,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIA,SAAS,EAAE,CAAA;AACvC,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIA,SAAS,EAAE,CAAA;AAE3C,EAAA,MAAM,EAAE,UAAU,SAAA,EAAW,OAAA,EAAS,OAAO,IAAA,EAAM,SAAA,KAAc,WAAA,EAAY;AAE7E,EAAA,MAAM,YAAA,GAAe,CAAC,CAAA,KAAuB;AAC3C,IAAA,CAAA,CAAE,cAAA,EAAe;AACjB,IAAA,IAAI,CAAC,eAAA,IAAmB,CAAC,SAAA,IAAa,CAAC,MAAA,EAAQ;AAE/C,IAAA,QAAA,CAAS;AAAA,MACP,UAAA;AAAA,MACA,MAAA;AAAA,MACA,eAAA;AAAA,MACA,SAAA;AAAA,MACA,MAAA,EAAQ,WAAW,MAAM,CAAA;AAAA,MACzB,QAAA;AAAA,MACA;AAAA,KACD,CAAA;AAAA,EACH,CAAA;AAEA,EAAAJ,MAAAA,CAAM,UAAU,MAAM;AACpB,IAAA,IAAI,SAAA,IAAa,QAAQ,qBAAA,EAAuB;AAC9C,MAAA,qBAAA,CAAsB,IAAI,CAAA;AAAA,IAC5B;AAAA,EACF,CAAA,EAAG,CAAC,SAAA,EAAW,IAAA,EAAM,qBAAqB,CAAC,CAAA;AAE3C,EAAA,uBACEE,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EACH,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,QAAG,QAAA,EAAA,iBAAA,EAAe,CAAA;AAAA,IAElB,OAAA,IAAW,KAAA,oBACVC,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,KAAA,EAAO,KAAA,EAAO,YAAA,EAAc,MAAA,EAAO,EAAG,QAAA,EAAA;AAAA,MAAA,SAAA;AAAA,MAC1C,KAAA,CAAM;AAAA,KAAA,EAChB,CAAA;AAAA,IAGD,SAAA,IAAa,IAAA,oBACZA,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,KAAA,EAAO,OAAA,EAAS,YAAA,EAAc,MAAA,EAAO,EAAG,QAAA,EAAA;AAAA,MAAA,gCAAA;AAAA,MACrB;AAAA,KAAA,EACjC,CAAA;AAAA,oBAGFA,IAAAA,CAAC,MAAA,EAAA,EAAK,QAAA,EAAU,YAAA,EACd,QAAA,EAAA;AAAA,sBAAAA,KAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,YAAA,EAAc,QAAO,EACjC,QAAA,EAAA;AAAA,wBAAAD,GAAAA,CAAC,OAAA,EAAA,EAAM,OAAA,EAAQ,iBAAA,EAAkB,QAAA,EAAA,iBAAA,EAAe,CAAA;AAAA,wBAChDA,GAAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,EAAA,EAAG,iBAAA;AAAA,YACH,IAAA,EAAK,MAAA;AAAA,YACL,KAAA,EAAO,eAAA;AAAA,YACP,UAAU,CAAC,CAAA,KAAM,kBAAA,CAAmB,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,YAClD,WAAA,EAAY,OAAA;AAAA,YACZ,QAAA,EAAQ,IAAA;AAAA,YACR,OAAO,EAAE,KAAA,EAAO,QAAQ,OAAA,EAAS,QAAA,EAAU,WAAW,SAAA;AAAU;AAAA;AAClE,OAAA,EACF,CAAA;AAAA,sBAEAC,IAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,YAAA,EAAc,QAAO,EACjC,QAAA,EAAA;AAAA,wBAAAD,GAAAA,CAAC,OAAA,EAAA,EAAM,OAAA,EAAQ,WAAA,EAAY,QAAA,EAAA,YAAA,EAAU,CAAA;AAAA,wBACrCA,GAAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,EAAA,EAAG,WAAA;AAAA,YACH,IAAA,EAAK,MAAA;AAAA,YACL,KAAA,EAAO,SAAA;AAAA,YACP,UAAU,CAAC,CAAA,KAAM,YAAA,CAAa,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,YAC5C,WAAA,EAAY,OAAA;AAAA,YACZ,QAAA,EAAQ,IAAA;AAAA,YACR,OAAO,EAAE,KAAA,EAAO,QAAQ,OAAA,EAAS,QAAA,EAAU,WAAW,SAAA;AAAU;AAAA;AAClE,OAAA,EACF,CAAA;AAAA,sBAEAC,IAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,YAAA,EAAc,QAAO,EACjC,QAAA,EAAA;AAAA,wBAAAD,GAAAA,CAAC,OAAA,EAAA,EAAM,OAAA,EAAQ,QAAA,EAAS,QAAA,EAAA,SAAA,EAAO,CAAA;AAAA,wBAC/BA,GAAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,EAAA,EAAG,QAAA;AAAA,YACH,IAAA,EAAK,QAAA;AAAA,YACL,IAAA,EAAK,KAAA;AAAA,YACL,KAAA,EAAO,MAAA;AAAA,YACP,UAAU,CAAC,CAAA,KAAM,SAAA,CAAU,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,YACzC,QAAA,EAAQ,IAAA;AAAA,YACR,OAAO,EAAE,KAAA,EAAO,QAAQ,OAAA,EAAS,QAAA,EAAU,WAAW,SAAA;AAAU;AAAA;AAClE,OAAA,EACF,CAAA;AAAA,sBAEAC,IAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,YAAA,EAAc,QAAO,EACjC,QAAA,EAAA;AAAA,wBAAAD,GAAAA,CAAC,OAAA,EAAA,EAAM,OAAA,EAAQ,UAAA,EAAW,QAAA,EAAA,WAAA,EAAS,CAAA;AAAA,wBACnCA,GAAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,EAAA,EAAG,UAAA;AAAA,YACH,IAAA,EAAK,QAAA;AAAA,YACL,KAAA,EAAO,QAAA;AAAA,YACP,QAAA,EAAU,CAAC,CAAA,KAAM,WAAA,CAAY,SAAS,CAAA,CAAE,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,YACrD,OAAO,EAAE,KAAA,EAAO,QAAQ,OAAA,EAAS,QAAA,EAAU,WAAW,SAAA;AAAU;AAAA;AAClE,OAAA,EACF,CAAA;AAAA,sBAEAA,GAAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,QAAA;AAAA,UACL,UAAU,SAAA,IAAa,CAAC,eAAA,IAAmB,CAAC,aAAa,CAAC,MAAA;AAAA,UAC1D,KAAA,EAAO;AAAA,YACL,OAAA,EAAS,gBAAA;AAAA,YACT,eAAA,EAAiB,YAAY,MAAA,GAAS,SAAA;AAAA,YACtC,KAAA,EAAO,OAAA;AAAA,YACP,MAAA,EAAQ,MAAA;AAAA,YACR,YAAA,EAAc,SAAA;AAAA,YACd,MAAA,EAAQ,YAAY,aAAA,GAAgB;AAAA,WACtC;AAAA,UAEC,sBAAY,YAAA,GAAe;AAAA;AAAA;AAC9B,KAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;AC3HO,SAAS,OAAA,CAAQ,MAAA,GAAwB,EAAC,EAAiC;AAChF,EAAA,MAAM,EAAE,QAAA,EAAS,GAAI,eAAA,EAAgB;AACrC,EAAA,MAAM,EAAE,OAAA,GAAU,IAAA,EAAM,GAAG,aAAY,GAAI,MAAA;AAE3C,EAAA,OAAO,QAAA,CAAS;AAAA,IACd,QAAA,EAAU,CAAC,MAAA,EAAQ,WAAW,CAAA;AAAA,IAC9B,OAAA,EAAS,MAAM,QAAA,CAAS,IAAA,CAAK,SAAS,WAAW,CAAA;AAAA,IACjD;AAAA,GACD,CAAA;AACH;ACNO,SAAS,OAAA,CAAQ,EAAE,UAAA,EAAY,WAAA,EAAa,WAAU,EAAiB;AAC5E,EAAA,MAAM,EAAE,IAAA,EAAM,IAAA,EAAM,SAAA,EAAW,OAAA,EAAS,OAAM,GAAI,OAAA,CAAQ,EAAE,UAAA,EAAY,CAAA;AAExE,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,uBAAOA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAsB,QAAA,EAAA,iBAAA,EAAe,CAAA;AAAA,EACnD;AAEA,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,uBACEA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EACH,QAAA,kBAAAC,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,KAAA,EAAO,KAAA,EAAM,EAAG,QAAA,EAAA;AAAA,MAAA,sBAAA;AAAA,MACP,KAAA,EAAO;AAAA,KAAA,EAC9B,CAAA,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,IAAI,CAAC,IAAA,IAAQ,IAAA,CAAK,MAAA,KAAW,CAAA,EAAG;AAC9B,IAAA,uBACED,IAAC,KAAA,EAAA,EAAI,SAAA,EACH,0BAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,gCAAkB,CAAA,EACzB,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACEC,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EACH,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,QAAG,QAAA,EAAA,gBAAA,EAAc,CAAA;AAAA,oBAElBA,GAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,SAAS,MAAA,EAAQ,GAAA,EAAK,MAAA,EAAQ,mBAAA,EAAqB,yCAAwC,EACtG,QAAA,EAAA,IAAA,CAAK,GAAA,CAAI,CAAC,wBACTC,IAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QAEC,KAAA,EAAO;AAAA,UACL,MAAA,EAAQ,gBAAA;AAAA,UACR,YAAA,EAAc,QAAA;AAAA,UACd,OAAA,EAAS,MAAA;AAAA,UACT,eAAA,EAAiB,OAAA;AAAA,UACjB,MAAA,EAAQ,cAAc,SAAA,GAAY;AAAA,SACpC;AAAA,QACA,OAAA,EAAS,MAAM,WAAA,GAAc,GAAG,CAAA;AAAA,QAEhC,QAAA,EAAA;AAAA,0BAAAD,IAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,YAAA,EAAc,QAAA,IAC1B,QAAA,kBAAAA,GAAAA,CAAC,QAAG,KAAA,EAAO,EAAE,QAAQ,CAAA,EAAG,QAAA,EAAU,UAAS,EAAI,QAAA,EAAA,GAAA,CAAI,MAAK,CAAA,EAC1D,CAAA;AAAA,UAEC,GAAA,CAAI,WAAA,oBACHA,GAAAA,CAAC,SAAI,KAAA,EAAO,EAAE,YAAA,EAAc,QAAA,EAAU,OAAO,MAAA,EAAQ,QAAA,EAAU,QAAA,EAAS,EACrE,cAAI,WAAA,EACP,CAAA;AAAA,0BAGFA,IAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,YAAA,EAAc,QAAA,IAC1B,QAAA,kBAAAA,GAAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,KAAA,EAAO;AAAA,gBACL,eAAA,EAAiB,SAAA;AAAA,gBACjB,OAAA,EAAS,gBAAA;AAAA,gBACT,YAAA,EAAc,SAAA;AAAA,gBACd,QAAA,EAAU,QAAA;AAAA,gBACV,KAAA,EAAO;AAAA,eACT;AAAA,cAEC,QAAA,EAAA,GAAA,CAAI;AAAA;AAAA,WACP,EACF,CAAA;AAAA,0BAEAC,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,cAAA,EAAgB,eAAA,EAAiB,UAAA,EAAY,QAAA,EAAS,EACnF,QAAA,EAAA;AAAA,4BAAAD,GAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,UAAU,QAAA,EAAU,UAAA,EAAY,MAAA,EAAO,EAClD,UAAAI,cAAAA,CAAe,GAAA,CAAI,KAAA,EAAO,GAAA,CAAI,QAAQ,CAAA,EACzC,CAAA;AAAA,4BAEAJ,GAAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,KAAA,EAAO;AAAA,kBACL,KAAA,EAAO,GAAA,CAAI,QAAA,GAAW,OAAA,GAAU,KAAA;AAAA,kBAChC,QAAA,EAAU,QAAA;AAAA,kBACV,UAAA,EAAY;AAAA,iBACd;AAAA,gBAEC,QAAA,EAAA,GAAA,CAAI,WAAW,WAAA,GAAc;AAAA;AAAA;AAChC,WAAA,EACF;AAAA;AAAA,OAAA;AAAA,MAhDK,GAAA,CAAI;AAAA,KAkDZ,CAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ;AC9EO,SAAS,cAAA,GASd;AACA,EAAA,MAAM,EAAE,QAAA,EAAS,GAAI,eAAA,EAAgB;AAErC,EAAA,MAAM,WAA2EE,WAAAA,CAAY;AAAA,IAC3F,YAAY,CAAC,MAAA,KAA8B,QAAA,CAAS,IAAA,CAAK,YAAY,MAAM;AAAA,GAC5E,CAAA;AAED,EAAA,OAAO;AAAA,IACL,aAAa,QAAA,CAAS,MAAA;AAAA,IACtB,kBAAkB,QAAA,CAAS,WAAA;AAAA,IAC3B,MAAM,QAAA,CAAS,IAAA;AAAA,IACf,WAAW,QAAA,CAAS,SAAA;AAAA,IACpB,SAAS,QAAA,CAAS,OAAA;AAAA,IAClB,OAAO,QAAA,CAAS,KAAA;AAAA,IAChB,WAAW,QAAA,CAAS,SAAA;AAAA,IACpB,OAAO,QAAA,CAAS;AAAA,GAClB;AACF;ACjCO,SAAS,eAAA,CAAgB;AAAA,EAC9B,GAAA;AAAA,EACA,aAAA;AAAA,EACA,kBAAA;AAAA,EACA;AACF,CAAA,EAAyB;AACvB,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIC,SAAgB,kBAAkB,CAAA;AAC5D,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAIA,SAAqB,MAAM,CAAA;AAC/D,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIA,SAAS,EAAE,CAAA;AAC7C,EAAA,MAAM,CAAC,eAAA,EAAiB,kBAAkB,CAAA,GAAIA,SAAS,EAAE,CAAA;AAEzD,EAAA,MAAM,EAAE,aAAa,SAAA,EAAW,OAAA,EAAS,OAAO,IAAA,EAAM,SAAA,KAAc,cAAA,EAAe;AAEnF,EAAA,MAAM,YAAA,GAAe,CAAC,CAAA,KAAuB;AAC3C,IAAA,CAAA,CAAE,cAAA,EAAe;AACjB,IAAA,IAAI,CAAC,SAAA,IAAa,CAAC,eAAA,EAAiB;AAEpC,IAAA,WAAA,CAAY;AAAA,MACV,OAAO,GAAA,CAAI,EAAA;AAAA,MACX,aAAA;AAAA,MACA,KAAA;AAAA,MACA,UAAA;AAAA,MACA,WAAW,GAAA,CAAI,KAAA;AAAA,MACf,SAAA;AAAA,MACA;AAAA,KACD,CAAA;AAAA,EACH,CAAA;AAEA,EAAAJ,MAAAA,CAAM,UAAU,MAAM;AACpB,IAAA,IAAI,SAAA,IAAa,QAAQ,kBAAA,EAAoB;AAC3C,MAAA,kBAAA,CAAmB,IAAA,CAAK,YAAY,eAAe,CAAA;AAAA,IACrD;AAAA,EACF,CAAA,EAAG,CAAC,SAAA,EAAW,IAAA,EAAM,kBAAkB,CAAC,CAAA;AAExC,EAAA,IAAI,CAAC,IAAI,QAAA,EAAU;AACjB,IAAA,uBACEC,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EACH,QAAA,kBAAAA,IAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,KAAA,EAAO,OAAO,SAAA,EAAW,QAAA,EAAU,SAAS,MAAA,EAAO,EAAG,6DAEpE,CAAA,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACEC,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EACH,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,QAAG,QAAA,EAAA,cAAA,EAAY,CAAA;AAAA,oBAEhBC,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,YAAA,EAAc,QAAA,EAAU,OAAA,EAAS,MAAA,EAAQ,eAAA,EAAiB,SAAA,EAAW,YAAA,EAAc,UAAS,EACxG,QAAA,EAAA;AAAA,sBAAAD,GAAAA,CAAC,QAAG,KAAA,EAAO,EAAE,QAAQ,cAAA,EAAe,EAAI,cAAI,IAAA,EAAK,CAAA;AAAA,MAChD,GAAA,CAAI,WAAA,oBACHA,GAAAA,CAAC,GAAA,EAAA,EAAE,KAAA,EAAO,EAAE,MAAA,EAAQ,cAAA,EAAgB,KAAA,EAAO,MAAA,EAAO,EAAI,cAAI,WAAA,EAAY,CAAA;AAAA,sBAExEC,KAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,QAAA,EAAU,QAAA,EAAU,UAAA,EAAY,MAAA,EAAO,EAAG,QAAA,EAAA;AAAA,QAAA,SAAA;AAAA,QAC9CG,cAAAA,CAAe,GAAA,CAAI,KAAA,EAAO,GAAA,CAAI,QAAQ;AAAA,OAAA,EAChD;AAAA,KAAA,EACF,CAAA;AAAA,IAEC,OAAA,IAAW,KAAA,oBACVH,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,KAAA,EAAO,KAAA,EAAO,YAAA,EAAc,MAAA,EAAO,EAAG,QAAA,EAAA;AAAA,MAAA,SAAA;AAAA,MAC1C,KAAA,CAAM;AAAA,KAAA,EAChB,CAAA;AAAA,IAGD,SAAA,IAAa,IAAA,oBACZA,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,KAAA,EAAO,OAAA,EAAS,YAAA,EAAc,MAAA,EAAO,EAAG,QAAA,EAAA;AAAA,MAAA,oCAAA;AAAA,MACjB,KAAK,WAAA,CAAY;AAAA,KAAA,EACtD,CAAA;AAAA,oBAGFA,IAAAA,CAAC,MAAA,EAAA,EAAK,QAAA,EAAU,YAAA,EACd,QAAA,EAAA;AAAA,sBAAAA,KAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,YAAA,EAAc,QAAO,EACjC,QAAA,EAAA;AAAA,wBAAAD,GAAAA,CAAC,OAAA,EAAA,EAAM,OAAA,EAAQ,OAAA,EAAQ,QAAA,EAAA,QAAA,EAAM,CAAA;AAAA,wBAC7BC,IAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,EAAA,EAAG,OAAA;AAAA,YACH,KAAA,EAAO,KAAA;AAAA,YACP,UAAU,CAAC,CAAA,KAAM,QAAA,CAAS,CAAA,CAAE,OAAO,KAAc,CAAA;AAAA,YACjD,OAAO,EAAE,KAAA,EAAO,QAAQ,OAAA,EAAS,QAAA,EAAU,WAAW,SAAA,EAAU;AAAA,YAEhE,QAAA,EAAA;AAAA,8BAAAD,GAAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,kBAAA,EAAmB,QAAA,EAAA,kBAAA,EAAgB,CAAA;AAAA,8BACjDA,GAAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,oBAAmB,QAAA,EAAA,kBAAA,EAAgB;AAAA;AAAA;AAAA;AACnD,OAAA,EACF,CAAA;AAAA,sBAEAC,IAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,YAAA,EAAc,QAAO,EACjC,QAAA,EAAA;AAAA,wBAAAD,GAAAA,CAAC,OAAA,EAAA,EAAM,OAAA,EAAQ,YAAA,EAAa,QAAA,EAAA,QAAA,EAAM,CAAA;AAAA,wBAClCC,IAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,EAAA,EAAG,YAAA;AAAA,YACH,KAAA,EAAO,UAAA;AAAA,YACP,UAAU,CAAC,CAAA,KAAM,aAAA,CAAc,CAAA,CAAE,OAAO,KAAmB,CAAA;AAAA,YAC3D,OAAO,EAAE,KAAA,EAAO,QAAQ,OAAA,EAAS,QAAA,EAAU,WAAW,SAAA,EAAU;AAAA,YAEhE,QAAA,EAAA;AAAA,8BAAAD,GAAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,MAAA,EAAO,QAAA,EAAA,MAAA,EAAI,CAAA;AAAA,8BACzBA,GAAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,QAAO,QAAA,EAAA,MAAA,EAAI,CAAA;AAAA,8BACzBA,GAAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,OAAM,QAAA,EAAA,KAAA,EAAG,CAAA;AAAA,8BACvBA,GAAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,QAAO,QAAA,EAAA,MAAA,EAAI,CAAA;AAAA,8BACzBA,GAAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,OAAM,QAAA,EAAA,KAAA,EAAG;AAAA;AAAA;AAAA;AACzB,OAAA,EACF,CAAA;AAAA,sBAEAC,IAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,YAAA,EAAc,QAAO,EACjC,QAAA,EAAA;AAAA,wBAAAD,GAAAA,CAAC,OAAA,EAAA,EAAM,OAAA,EAAQ,WAAA,EAAY,QAAA,EAAA,YAAA,EAAU,CAAA;AAAA,wBACrCA,GAAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,EAAA,EAAG,WAAA;AAAA,YACH,IAAA,EAAK,MAAA;AAAA,YACL,KAAA,EAAO,SAAA;AAAA,YACP,UAAU,CAAC,CAAA,KAAM,YAAA,CAAa,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,YAC5C,WAAA,EAAY,uBAAA;AAAA,YACZ,QAAA,EAAQ,IAAA;AAAA,YACR,OAAO,EAAE,KAAA,EAAO,QAAQ,OAAA,EAAS,QAAA,EAAU,WAAW,SAAA;AAAU;AAAA;AAClE,OAAA,EACF,CAAA;AAAA,sBAEAC,IAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,YAAA,EAAc,QAAO,EACjC,QAAA,EAAA;AAAA,wBAAAD,GAAAA,CAAC,OAAA,EAAA,EAAM,OAAA,EAAQ,iBAAA,EAAkB,QAAA,EAAA,mBAAA,EAAiB,CAAA;AAAA,wBAClDA,GAAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,EAAA,EAAG,iBAAA;AAAA,YACH,IAAA,EAAK,MAAA;AAAA,YACL,KAAA,EAAO,eAAA;AAAA,YACP,UAAU,CAAC,CAAA,KAAM,kBAAA,CAAmB,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,YAClD,WAAA,EAAY,OAAA;AAAA,YACZ,QAAA,EAAQ,IAAA;AAAA,YACR,OAAO,EAAE,KAAA,EAAO,QAAQ,OAAA,EAAS,QAAA,EAAU,WAAW,SAAA;AAAU;AAAA;AAClE,OAAA,EACF,CAAA;AAAA,sBAEAA,GAAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,QAAA;AAAA,UACL,QAAA,EAAU,SAAA,IAAa,CAAC,SAAA,IAAa,CAAC,eAAA;AAAA,UACtC,KAAA,EAAO;AAAA,YACL,KAAA,EAAO,MAAA;AAAA,YACP,OAAA,EAAS,SAAA;AAAA,YACT,eAAA,EAAiB,YAAY,MAAA,GAAS,SAAA;AAAA,YACtC,KAAA,EAAO,OAAA;AAAA,YACP,MAAA,EAAQ,MAAA;AAAA,YACR,YAAA,EAAc,SAAA;AAAA,YACd,QAAA,EAAU,MAAA;AAAA,YACV,MAAA,EAAQ,YAAY,aAAA,GAAgB;AAAA,WACtC;AAAA,UAEC,QAAA,EAAA,SAAA,GAAY,kBAAkB,CAAA,aAAA,EAAgBI,cAAAA,CAAe,IAAI,KAAA,EAAO,GAAA,CAAI,QAAQ,CAAC,CAAA;AAAA;AAAA;AACxF,KAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ","file":"components.mjs","sourcesContent":["import React, { createContext, useContext, ReactNode } from 'react';\nimport { ChipiSDK } from '@chipi-stack/backend';\nimport type { ChipiSDKConfig } from '@chipi-stack/types';\n\ninterface ChipiContextValue {\n chipiSDK: ChipiSDK;\n config: ChipiSDKConfig;\n}\n\nconst ChipiContext = createContext<ChipiContextValue | null>(null);\n\ninterface ChipiProviderProps {\n children: ReactNode;\n config: ChipiSDKConfig;\n}\n\n/**\n * Provider component that wraps your app and provides Chipi SDK context\n */\nexport function ChipiProvider({ children, config }: ChipiProviderProps) {\n const chipiSDK = React.useMemo(() => new ChipiSDK(config), [config]);\n\n const value = React.useMemo(\n () => ({\n chipiSDK,\n config,\n }),\n [chipiSDK, config]\n );\n\n return (\n <ChipiContext.Provider value={value}>\n {children}\n </ChipiContext.Provider>\n );\n}\n\n/**\n * Hook to access Chipi SDK context\n */\nexport function useChipiContext(): ChipiContextValue {\n const context = useContext(ChipiContext);\n \n if (!context) {\n throw new Error('useChipiContext must be used within a ChipiProvider');\n }\n \n return context;\n}\n","import { useMutation, type UseMutationResult } from '@tanstack/react-query';\nimport { useChipiContext } from '../context';\nimport type { CreateWalletParams, CreateWalletResponse } from '@chipi-stack/types';\n\ntype CreateWalletInput = Omit<CreateWalletParams, 'apiPublicKey' | 'nodeUrl'>;\n\n/**\n * Hook for creating a new wallet\n */\nexport function useCreateWallet(): {\n createWallet: (params: CreateWalletInput) => void;\n createWalletAsync: (params: CreateWalletInput) => Promise<CreateWalletResponse>;\n data: CreateWalletResponse | undefined;\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n isSuccess: boolean;\n reset: () => void;\n} {\n const { chipiSDK } = useChipiContext();\n\n const mutation: UseMutationResult<CreateWalletResponse, Error, CreateWalletInput> = useMutation({\n mutationFn: (params: CreateWalletInput) => chipiSDK.createWallet(params),\n });\n\n return {\n createWallet: mutation.mutate,\n createWalletAsync: mutation.mutateAsync,\n data: mutation.data,\n isLoading: mutation.isPending,\n isError: mutation.isError,\n error: mutation.error,\n isSuccess: mutation.isSuccess,\n reset: mutation.reset,\n };\n}\n","import React, { useState } from 'react';\nimport { useCreateWallet } from '../hooks/useCreateWallet';\nimport type { CreateWalletResponse } from '@chipi-stack/types';\n\ninterface WalletCreatorProps {\n onWalletCreated?: (wallet: CreateWalletResponse) => void;\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Component for creating a new wallet\n */\nexport function WalletCreator({ onWalletCreated, className, children }: WalletCreatorProps) {\n const [encryptKey, setEncryptKey] = useState('');\n const [bearerToken, setBearerToken] = useState('');\n\n const { createWallet, isLoading, isError, error, data, isSuccess } = useCreateWallet();\n\n const handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n if (!encryptKey || !bearerToken) return;\n\n createWallet({\n encryptKey,\n bearerToken,\n });\n };\n\n React.useEffect(() => {\n if (isSuccess && data && onWalletCreated) {\n onWalletCreated(data);\n }\n }, [isSuccess, data, onWalletCreated]);\n\n if (children) {\n return (\n <>\n {children}\n </>\n );\n }\n\n return (\n <div className={className}>\n <h2>Create Wallet</h2>\n \n {isError && error && (\n <div style={{ color: 'red', marginBottom: '1rem' }}>\n Error: {error.message}\n </div>\n )}\n\n {isSuccess && data && (\n <div style={{ color: 'green', marginBottom: '1rem' }}>\n Wallet created successfully! Address: {data.walletPublicKey}\n </div>\n )}\n\n <form onSubmit={handleSubmit}>\n <div style={{ marginBottom: '1rem' }}>\n <label htmlFor=\"encryptKey\">Encrypt Key:</label>\n <input\n id=\"encryptKey\"\n type=\"password\"\n value={encryptKey}\n onChange={(e) => setEncryptKey(e.target.value)}\n required\n style={{ width: '100%', padding: '0.5rem', marginTop: '0.25rem' }}\n />\n </div>\n\n <div style={{ marginBottom: '1rem' }}>\n <label htmlFor=\"bearerToken\">Bearer Token:</label>\n <input\n id=\"bearerToken\"\n type=\"text\"\n value={bearerToken}\n onChange={(e) => setBearerToken(e.target.value)}\n required\n style={{ width: '100%', padding: '0.5rem', marginTop: '0.25rem' }}\n />\n </div>\n\n <button\n type=\"submit\"\n disabled={isLoading || !encryptKey || !bearerToken}\n style={{\n padding: '0.75rem 1.5rem',\n backgroundColor: isLoading ? '#ccc' : '#007bff',\n color: 'white',\n border: 'none',\n borderRadius: '0.25rem',\n cursor: isLoading ? 'not-allowed' : 'pointer',\n }}\n >\n {isLoading ? 'Creating...' : 'Create Wallet'}\n </button>\n </form>\n </div>\n );\n}\n","import React from 'react';\nimport { formatCurrency, formatAddress } from '@chipi-stack/shared';\n\ninterface WalletBalanceProps {\n address: string;\n balance?: number;\n currency?: string;\n isLoading?: boolean;\n className?: string;\n}\n\n/**\n * Component for displaying wallet balance\n */\nexport function WalletBalance({\n address,\n balance,\n currency = 'USD',\n isLoading = false,\n className,\n}: WalletBalanceProps) {\n return (\n <div className={className}>\n <div style={{ marginBottom: '0.5rem' }}>\n <strong>Wallet:</strong> {formatAddress(address)}\n </div>\n \n <div>\n <strong>Balance:</strong>{' '}\n {isLoading ? (\n <span>Loading...</span>\n ) : balance !== undefined ? (\n formatCurrency(balance, currency)\n ) : (\n <span>--</span>\n )}\n </div>\n </div>\n );\n}\n","import { useMutation, type UseMutationResult } from '@tanstack/react-query';\nimport { useChipiContext } from '../context';\nimport type { TransferParams } from '@chipi-stack/types';\n\ntype TransferInput = Omit<TransferParams, 'apiPublicKey'>;\n\n/**\n * Hook for transferring tokens\n */\nexport function useTransfer(): {\n transfer: (params: TransferInput) => void;\n transferAsync: (params: TransferInput) => Promise<string>;\n data: string | undefined;\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n isSuccess: boolean;\n reset: () => void;\n} {\n const { chipiSDK } = useChipiContext();\n\n const mutation: UseMutationResult<string, Error, TransferInput> = useMutation({\n mutationFn: (params: TransferInput) => chipiSDK.transfer(params),\n });\n\n return {\n transfer: mutation.mutate,\n transferAsync: mutation.mutateAsync,\n data: mutation.data,\n isLoading: mutation.isPending,\n isError: mutation.isError,\n error: mutation.error,\n isSuccess: mutation.isSuccess,\n reset: mutation.reset,\n };\n}\n","import React, { useState } from 'react';\nimport { useTransfer } from '../hooks/useTransfer';\nimport type { WalletData } from '@chipi-stack/types';\n\ninterface TransactionFormProps {\n wallet: WalletData;\n encryptKey: string;\n bearerToken: string;\n onTransactionComplete?: (txHash: string) => void;\n className?: string;\n}\n\n/**\n * Component for creating token transfer transactions\n */\nexport function TransactionForm({\n wallet,\n encryptKey,\n bearerToken,\n onTransactionComplete,\n className,\n}: TransactionFormProps) {\n const [contractAddress, setContractAddress] = useState('');\n const [recipient, setRecipient] = useState('');\n const [amount, setAmount] = useState('');\n const [decimals, setDecimals] = useState(18);\n\n const { transfer, isLoading, isError, error, data, isSuccess } = useTransfer();\n\n const handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n if (!contractAddress || !recipient || !amount) return;\n\n transfer({\n encryptKey,\n wallet,\n contractAddress,\n recipient,\n amount: parseFloat(amount),\n decimals,\n bearerToken,\n });\n };\n\n React.useEffect(() => {\n if (isSuccess && data && onTransactionComplete) {\n onTransactionComplete(data);\n }\n }, [isSuccess, data, onTransactionComplete]);\n\n return (\n <div className={className}>\n <h3>Transfer Tokens</h3>\n \n {isError && error && (\n <div style={{ color: 'red', marginBottom: '1rem' }}>\n Error: {error.message}\n </div>\n )}\n\n {isSuccess && data && (\n <div style={{ color: 'green', marginBottom: '1rem' }}>\n Transaction successful! Hash: {data}\n </div>\n )}\n\n <form onSubmit={handleSubmit}>\n <div style={{ marginBottom: '1rem' }}>\n <label htmlFor=\"contractAddress\">Token Contract:</label>\n <input\n id=\"contractAddress\"\n type=\"text\"\n value={contractAddress}\n onChange={(e) => setContractAddress(e.target.value)}\n placeholder=\"0x...\"\n required\n style={{ width: '100%', padding: '0.5rem', marginTop: '0.25rem' }}\n />\n </div>\n\n <div style={{ marginBottom: '1rem' }}>\n <label htmlFor=\"recipient\">Recipient:</label>\n <input\n id=\"recipient\"\n type=\"text\"\n value={recipient}\n onChange={(e) => setRecipient(e.target.value)}\n placeholder=\"0x...\"\n required\n style={{ width: '100%', padding: '0.5rem', marginTop: '0.25rem' }}\n />\n </div>\n\n <div style={{ marginBottom: '1rem' }}>\n <label htmlFor=\"amount\">Amount:</label>\n <input\n id=\"amount\"\n type=\"number\"\n step=\"any\"\n value={amount}\n onChange={(e) => setAmount(e.target.value)}\n required\n style={{ width: '100%', padding: '0.5rem', marginTop: '0.25rem' }}\n />\n </div>\n\n <div style={{ marginBottom: '1rem' }}>\n <label htmlFor=\"decimals\">Decimals:</label>\n <input\n id=\"decimals\"\n type=\"number\"\n value={decimals}\n onChange={(e) => setDecimals(parseInt(e.target.value))}\n style={{ width: '100%', padding: '0.5rem', marginTop: '0.25rem' }}\n />\n </div>\n\n <button\n type=\"submit\"\n disabled={isLoading || !contractAddress || !recipient || !amount}\n style={{\n padding: '0.75rem 1.5rem',\n backgroundColor: isLoading ? '#ccc' : '#007bff',\n color: 'white',\n border: 'none',\n borderRadius: '0.25rem',\n cursor: isLoading ? 'not-allowed' : 'pointer',\n }}\n >\n {isLoading ? 'Sending...' : 'Send Transaction'}\n </button>\n </form>\n </div>\n );\n}","import { useQuery, type UseQueryResult } from '@tanstack/react-query';\nimport { useChipiContext } from '../context';\nimport type { FindSkusParams, Sku } from '@chipi-stack/types';\n\ninterface UseSkusParams extends FindSkusParams {\n enabled?: boolean;\n}\n\n/**\n * Hook for fetching available SKUs\n */\nexport function useSkus(params: UseSkusParams = {}): UseQueryResult<Sku[], Error> {\n const { chipiSDK } = useChipiContext();\n const { enabled = true, ...queryParams } = params;\n\n return useQuery({\n queryKey: ['skus', queryParams],\n queryFn: () => chipiSDK.skus.findSkus(queryParams),\n enabled,\n });\n}\n","import React from 'react';\nimport { useSkus } from '../hooks/useSkus';\nimport { formatCurrency } from '@chipi-stack/shared';\nimport type { Sku, SkuCategory } from '@chipi-stack/types';\n\ninterface SkuListProps {\n categories?: SkuCategory[];\n onSkuSelect?: (sku: Sku) => void;\n className?: string;\n}\n\n/**\n * Component for displaying available SKUs\n */\nexport function SkuList({ categories, onSkuSelect, className }: SkuListProps) {\n const { data: skus, isLoading, isError, error } = useSkus({ categories });\n\n if (isLoading) {\n return <div className={className}>Loading SKUs...</div>;\n }\n\n if (isError) {\n return (\n <div className={className}>\n <div style={{ color: 'red' }}>\n Error loading SKUs: {error?.message}\n </div>\n </div>\n );\n }\n\n if (!skus || skus.length === 0) {\n return (\n <div className={className}>\n <div>No SKUs available.</div>\n </div>\n );\n }\n\n return (\n <div className={className}>\n <h3>Available SKUs</h3>\n \n <div style={{ display: 'grid', gap: '1rem', gridTemplateColumns: 'repeat(auto-fill, minmax(300px, 1fr))' }}>\n {skus.map((sku) => (\n <div\n key={sku.id}\n style={{\n border: '1px solid #ddd',\n borderRadius: '0.5rem',\n padding: '1rem',\n backgroundColor: 'white',\n cursor: onSkuSelect ? 'pointer' : 'default',\n }}\n onClick={() => onSkuSelect?.(sku)}\n >\n <div style={{ marginBottom: '0.5rem' }}>\n <h4 style={{ margin: 0, fontSize: '1.1rem' }}>{sku.name}</h4>\n </div>\n \n {sku.description && (\n <div style={{ marginBottom: '0.5rem', color: '#666', fontSize: '0.9rem' }}>\n {sku.description}\n </div>\n )}\n \n <div style={{ marginBottom: '0.5rem' }}>\n <span\n style={{\n backgroundColor: '#f0f0f0',\n padding: '0.25rem 0.5rem',\n borderRadius: '0.25rem',\n fontSize: '0.8rem',\n color: '#666',\n }}\n >\n {sku.category}\n </span>\n </div>\n \n <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>\n <div style={{ fontSize: '1.2rem', fontWeight: 'bold' }}>\n {formatCurrency(sku.price, sku.currency)}\n </div>\n \n <div\n style={{\n color: sku.isActive ? 'green' : 'red',\n fontSize: '0.9rem',\n fontWeight: 'bold',\n }}\n >\n {sku.isActive ? 'Available' : 'Unavailable'}\n </div>\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n}","import { useMutation, type UseMutationResult } from '@tanstack/react-query';\nimport { useChipiContext } from '../context';\nimport type { Sku, SkuTransaction, Chain, ChainToken } from '@chipi-stack/types';\n\ninterface PurchaseSkuParams {\n skuId: string;\n walletAddress: string;\n chain: Chain;\n chainToken: ChainToken;\n mxnAmount: number;\n reference: string;\n transactionHash: string;\n}\n\ninterface PurchaseSkuResult {\n sku: Sku;\n transaction: SkuTransaction;\n}\n\n/**\n * Hook for purchasing a SKU (convenience hook that combines SKU lookup and transaction creation)\n */\nexport function usePurchaseSku(): {\n purchaseSku: (params: PurchaseSkuParams) => void;\n purchaseSkuAsync: (params: PurchaseSkuParams) => Promise<PurchaseSkuResult>;\n data: PurchaseSkuResult | undefined;\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n isSuccess: boolean;\n reset: () => void;\n} {\n const { chipiSDK } = useChipiContext();\n\n const mutation: UseMutationResult<PurchaseSkuResult, Error, PurchaseSkuParams> = useMutation({\n mutationFn: (params: PurchaseSkuParams) => chipiSDK.skus.purchaseSku(params),\n });\n\n return {\n purchaseSku: mutation.mutate,\n purchaseSkuAsync: mutation.mutateAsync,\n data: mutation.data,\n isLoading: mutation.isPending,\n isError: mutation.isError,\n error: mutation.error,\n isSuccess: mutation.isSuccess,\n reset: mutation.reset,\n };\n}\n","import React, { useState } from 'react';\nimport { usePurchaseSku } from '../hooks/usePurchaseSku';\nimport { formatCurrency } from '@chipi-stack/shared';\nimport type { Sku, Chain, ChainToken } from '@chipi-stack/types';\n\ninterface SkuPurchaseFormProps {\n sku: Sku;\n walletAddress: string;\n onPurchaseComplete?: (transactionHash: string) => void;\n className?: string;\n}\n\n/**\n * Component for purchasing a SKU\n */\nexport function SkuPurchaseForm({\n sku,\n walletAddress,\n onPurchaseComplete,\n className,\n}: SkuPurchaseFormProps) {\n const [chain, setChain] = useState<Chain>('STARKNET_MAINNET');\n const [chainToken, setChainToken] = useState<ChainToken>('USDC');\n const [reference, setReference] = useState('');\n const [transactionHash, setTransactionHash] = useState('');\n\n const { purchaseSku, isLoading, isError, error, data, isSuccess } = usePurchaseSku();\n\n const handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n if (!reference || !transactionHash) return;\n\n purchaseSku({\n skuId: sku.id,\n walletAddress,\n chain,\n chainToken,\n mxnAmount: sku.price,\n reference,\n transactionHash,\n });\n };\n\n React.useEffect(() => {\n if (isSuccess && data && onPurchaseComplete) {\n onPurchaseComplete(data.transaction.transactionHash);\n }\n }, [isSuccess, data, onPurchaseComplete]);\n\n if (!sku.isActive) {\n return (\n <div className={className}>\n <div style={{ color: 'red', textAlign: 'center', padding: '2rem' }}>\n This SKU is currently unavailable for purchase.\n </div>\n </div>\n );\n }\n\n return (\n <div className={className}>\n <h3>Purchase SKU</h3>\n \n <div style={{ marginBottom: '1.5rem', padding: '1rem', backgroundColor: '#f9f9f9', borderRadius: '0.5rem' }}>\n <h4 style={{ margin: '0 0 0.5rem 0' }}>{sku.name}</h4>\n {sku.description && (\n <p style={{ margin: '0 0 0.5rem 0', color: '#666' }}>{sku.description}</p>\n )}\n <div style={{ fontSize: '1.2rem', fontWeight: 'bold' }}>\n Price: {formatCurrency(sku.price, sku.currency)}\n </div>\n </div>\n\n {isError && error && (\n <div style={{ color: 'red', marginBottom: '1rem' }}>\n Error: {error.message}\n </div>\n )}\n\n {isSuccess && data && (\n <div style={{ color: 'green', marginBottom: '1rem' }}>\n Purchase successful! Transaction: {data.transaction.transactionHash}\n </div>\n )}\n\n <form onSubmit={handleSubmit}>\n <div style={{ marginBottom: '1rem' }}>\n <label htmlFor=\"chain\">Chain:</label>\n <select\n id=\"chain\"\n value={chain}\n onChange={(e) => setChain(e.target.value as Chain)}\n style={{ width: '100%', padding: '0.5rem', marginTop: '0.25rem' }}\n >\n <option value=\"STARKNET_MAINNET\">Starknet Mainnet</option>\n <option value=\"STARKNET_SEPOLIA\">Starknet Sepolia</option>\n </select>\n </div>\n\n <div style={{ marginBottom: '1rem' }}>\n <label htmlFor=\"chainToken\">Token:</label>\n <select\n id=\"chainToken\"\n value={chainToken}\n onChange={(e) => setChainToken(e.target.value as ChainToken)}\n style={{ width: '100%', padding: '0.5rem', marginTop: '0.25rem' }}\n >\n <option value=\"USDC\">USDC</option>\n <option value=\"USDT\">USDT</option>\n <option value=\"ETH\">ETH</option>\n <option value=\"STRK\">STRK</option>\n <option value=\"DAI\">DAI</option>\n </select>\n </div>\n\n <div style={{ marginBottom: '1rem' }}>\n <label htmlFor=\"reference\">Reference:</label>\n <input\n id=\"reference\"\n type=\"text\"\n value={reference}\n onChange={(e) => setReference(e.target.value)}\n placeholder=\"Transaction reference\"\n required\n style={{ width: '100%', padding: '0.5rem', marginTop: '0.25rem' }}\n />\n </div>\n\n <div style={{ marginBottom: '1rem' }}>\n <label htmlFor=\"transactionHash\">Transaction Hash:</label>\n <input\n id=\"transactionHash\"\n type=\"text\"\n value={transactionHash}\n onChange={(e) => setTransactionHash(e.target.value)}\n placeholder=\"0x...\"\n required\n style={{ width: '100%', padding: '0.5rem', marginTop: '0.25rem' }}\n />\n </div>\n\n <button\n type=\"submit\"\n disabled={isLoading || !reference || !transactionHash}\n style={{\n width: '100%',\n padding: '0.75rem',\n backgroundColor: isLoading ? '#ccc' : '#28a745',\n color: 'white',\n border: 'none',\n borderRadius: '0.25rem',\n fontSize: '1rem',\n cursor: isLoading ? 'not-allowed' : 'pointer',\n }}\n >\n {isLoading ? 'Processing...' : `Purchase for ${formatCurrency(sku.price, sku.currency)}`}\n </button>\n </form>\n </div>\n );\n}\n"]}
|
package/dist/hooks.d.mts
ADDED
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { CreateWalletParams, CreateWalletResponse, PaginationQuery, PaginatedResponse, WalletData, TransferParams, ApproveParams, ExecuteTransactionParams, FindSkusParams, Sku, SkuTransaction, Chain, ChainToken, StakeVesuUsdcParams, WithdrawVesuUsdcParams, CallAnyContractParams } from '@chipi-stack/types';
|
|
2
|
+
import { UseQueryResult } from '@tanstack/react-query';
|
|
3
|
+
|
|
4
|
+
type CreateWalletInput = Omit<CreateWalletParams, 'apiPublicKey' | 'nodeUrl'>;
|
|
5
|
+
/**
|
|
6
|
+
* Hook for creating a new wallet
|
|
7
|
+
*/
|
|
8
|
+
declare function useCreateWallet(): {
|
|
9
|
+
createWallet: (params: CreateWalletInput) => void;
|
|
10
|
+
createWalletAsync: (params: CreateWalletInput) => Promise<CreateWalletResponse>;
|
|
11
|
+
data: CreateWalletResponse | undefined;
|
|
12
|
+
isLoading: boolean;
|
|
13
|
+
isError: boolean;
|
|
14
|
+
error: Error | null;
|
|
15
|
+
isSuccess: boolean;
|
|
16
|
+
reset: () => void;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
interface UseWalletsParams extends PaginationQuery {
|
|
20
|
+
apiKeyId: string;
|
|
21
|
+
orgId: string;
|
|
22
|
+
enabled?: boolean;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Hook for fetching wallets
|
|
26
|
+
*/
|
|
27
|
+
declare function useWallets(params: UseWalletsParams): UseQueryResult<PaginatedResponse<WalletData>, Error>;
|
|
28
|
+
|
|
29
|
+
type TransferInput = Omit<TransferParams, 'apiPublicKey'>;
|
|
30
|
+
/**
|
|
31
|
+
* Hook for transferring tokens
|
|
32
|
+
*/
|
|
33
|
+
declare function useTransfer(): {
|
|
34
|
+
transfer: (params: TransferInput) => void;
|
|
35
|
+
transferAsync: (params: TransferInput) => Promise<string>;
|
|
36
|
+
data: string | undefined;
|
|
37
|
+
isLoading: boolean;
|
|
38
|
+
isError: boolean;
|
|
39
|
+
error: Error | null;
|
|
40
|
+
isSuccess: boolean;
|
|
41
|
+
reset: () => void;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
type ApproveInput = Omit<ApproveParams, 'apiPublicKey'>;
|
|
45
|
+
/**
|
|
46
|
+
* Hook for approving token spending
|
|
47
|
+
*/
|
|
48
|
+
declare function useApprove(): {
|
|
49
|
+
approve: (params: ApproveInput) => void;
|
|
50
|
+
approveAsync: (params: ApproveInput) => Promise<string>;
|
|
51
|
+
data: string | undefined;
|
|
52
|
+
isLoading: boolean;
|
|
53
|
+
isError: boolean;
|
|
54
|
+
error: Error | null;
|
|
55
|
+
isSuccess: boolean;
|
|
56
|
+
reset: () => void;
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
type ExecuteTransactionInput = Omit<ExecuteTransactionParams, 'apiPublicKey'>;
|
|
60
|
+
/**
|
|
61
|
+
* Hook for executing gasless transactions
|
|
62
|
+
*/
|
|
63
|
+
declare function useExecuteTransaction(): {
|
|
64
|
+
executeTransaction: (params: ExecuteTransactionInput) => void;
|
|
65
|
+
executeTransactionAsync: (params: ExecuteTransactionInput) => Promise<string>;
|
|
66
|
+
data: string | undefined;
|
|
67
|
+
isLoading: boolean;
|
|
68
|
+
isError: boolean;
|
|
69
|
+
error: Error | null;
|
|
70
|
+
isSuccess: boolean;
|
|
71
|
+
reset: () => void;
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
interface UseSkusParams extends FindSkusParams {
|
|
75
|
+
enabled?: boolean;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Hook for fetching available SKUs
|
|
79
|
+
*/
|
|
80
|
+
declare function useSkus(params?: UseSkusParams): UseQueryResult<Sku[], Error>;
|
|
81
|
+
|
|
82
|
+
interface UseSkuTransactionsParams {
|
|
83
|
+
walletAddress: string;
|
|
84
|
+
page?: number;
|
|
85
|
+
limit?: number;
|
|
86
|
+
enabled?: boolean;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Hook for fetching SKU transactions
|
|
90
|
+
*/
|
|
91
|
+
declare function useSkuTransactions(params: UseSkuTransactionsParams): UseQueryResult<SkuTransaction[], Error>;
|
|
92
|
+
|
|
93
|
+
interface PurchaseSkuParams {
|
|
94
|
+
skuId: string;
|
|
95
|
+
walletAddress: string;
|
|
96
|
+
chain: Chain;
|
|
97
|
+
chainToken: ChainToken;
|
|
98
|
+
mxnAmount: number;
|
|
99
|
+
reference: string;
|
|
100
|
+
transactionHash: string;
|
|
101
|
+
}
|
|
102
|
+
interface PurchaseSkuResult {
|
|
103
|
+
sku: Sku;
|
|
104
|
+
transaction: SkuTransaction;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Hook for purchasing a SKU (convenience hook that combines SKU lookup and transaction creation)
|
|
108
|
+
*/
|
|
109
|
+
declare function usePurchaseSku(): {
|
|
110
|
+
purchaseSku: (params: PurchaseSkuParams) => void;
|
|
111
|
+
purchaseSkuAsync: (params: PurchaseSkuParams) => Promise<PurchaseSkuResult>;
|
|
112
|
+
data: PurchaseSkuResult | undefined;
|
|
113
|
+
isLoading: boolean;
|
|
114
|
+
isError: boolean;
|
|
115
|
+
error: Error | null;
|
|
116
|
+
isSuccess: boolean;
|
|
117
|
+
reset: () => void;
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
type StakeVesuUsdcInput = Omit<StakeVesuUsdcParams, 'apiPublicKey'>;
|
|
121
|
+
/**
|
|
122
|
+
* Hook for staking USDC in Vesu protocol
|
|
123
|
+
*/
|
|
124
|
+
declare function useStakeVesuUsdc(): {
|
|
125
|
+
stakeVesuUsdc: (params: StakeVesuUsdcInput) => void;
|
|
126
|
+
stakeVesuUsdcAsync: (params: StakeVesuUsdcInput) => Promise<string>;
|
|
127
|
+
data: string | undefined;
|
|
128
|
+
isLoading: boolean;
|
|
129
|
+
isError: boolean;
|
|
130
|
+
error: Error | null;
|
|
131
|
+
isSuccess: boolean;
|
|
132
|
+
reset: () => void;
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
type WithdrawVesuUsdcInput = Omit<WithdrawVesuUsdcParams, 'apiPublicKey'>;
|
|
136
|
+
/**
|
|
137
|
+
* Hook for withdrawing USDC from Vesu protocol
|
|
138
|
+
*/
|
|
139
|
+
declare function useWithdrawVesuUsdc(): {
|
|
140
|
+
withdrawVesuUsdc: (params: WithdrawVesuUsdcInput) => void;
|
|
141
|
+
withdrawVesuUsdcAsync: (params: WithdrawVesuUsdcInput) => Promise<string>;
|
|
142
|
+
data: string | undefined;
|
|
143
|
+
isLoading: boolean;
|
|
144
|
+
isError: boolean;
|
|
145
|
+
error: Error | null;
|
|
146
|
+
isSuccess: boolean;
|
|
147
|
+
reset: () => void;
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
type CallAnyContractInput = Omit<CallAnyContractParams, 'apiPublicKey'>;
|
|
151
|
+
/**
|
|
152
|
+
* Hook for calling any contract method
|
|
153
|
+
*/
|
|
154
|
+
declare function useCallAnyContract(): {
|
|
155
|
+
callAnyContract: (params: CallAnyContractInput) => void;
|
|
156
|
+
callAnyContractAsync: (params: CallAnyContractInput) => Promise<string>;
|
|
157
|
+
data: string | undefined;
|
|
158
|
+
isLoading: boolean;
|
|
159
|
+
isError: boolean;
|
|
160
|
+
error: Error | null;
|
|
161
|
+
isSuccess: boolean;
|
|
162
|
+
reset: () => void;
|
|
163
|
+
};
|
|
164
|
+
|
|
165
|
+
export { useApprove, useCallAnyContract, useCreateWallet, useExecuteTransaction, usePurchaseSku, useSkuTransactions, useSkus, useStakeVesuUsdc, useTransfer, useWallets, useWithdrawVesuUsdc };
|
package/dist/hooks.d.ts
ADDED
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { CreateWalletParams, CreateWalletResponse, PaginationQuery, PaginatedResponse, WalletData, TransferParams, ApproveParams, ExecuteTransactionParams, FindSkusParams, Sku, SkuTransaction, Chain, ChainToken, StakeVesuUsdcParams, WithdrawVesuUsdcParams, CallAnyContractParams } from '@chipi-stack/types';
|
|
2
|
+
import { UseQueryResult } from '@tanstack/react-query';
|
|
3
|
+
|
|
4
|
+
type CreateWalletInput = Omit<CreateWalletParams, 'apiPublicKey' | 'nodeUrl'>;
|
|
5
|
+
/**
|
|
6
|
+
* Hook for creating a new wallet
|
|
7
|
+
*/
|
|
8
|
+
declare function useCreateWallet(): {
|
|
9
|
+
createWallet: (params: CreateWalletInput) => void;
|
|
10
|
+
createWalletAsync: (params: CreateWalletInput) => Promise<CreateWalletResponse>;
|
|
11
|
+
data: CreateWalletResponse | undefined;
|
|
12
|
+
isLoading: boolean;
|
|
13
|
+
isError: boolean;
|
|
14
|
+
error: Error | null;
|
|
15
|
+
isSuccess: boolean;
|
|
16
|
+
reset: () => void;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
interface UseWalletsParams extends PaginationQuery {
|
|
20
|
+
apiKeyId: string;
|
|
21
|
+
orgId: string;
|
|
22
|
+
enabled?: boolean;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Hook for fetching wallets
|
|
26
|
+
*/
|
|
27
|
+
declare function useWallets(params: UseWalletsParams): UseQueryResult<PaginatedResponse<WalletData>, Error>;
|
|
28
|
+
|
|
29
|
+
type TransferInput = Omit<TransferParams, 'apiPublicKey'>;
|
|
30
|
+
/**
|
|
31
|
+
* Hook for transferring tokens
|
|
32
|
+
*/
|
|
33
|
+
declare function useTransfer(): {
|
|
34
|
+
transfer: (params: TransferInput) => void;
|
|
35
|
+
transferAsync: (params: TransferInput) => Promise<string>;
|
|
36
|
+
data: string | undefined;
|
|
37
|
+
isLoading: boolean;
|
|
38
|
+
isError: boolean;
|
|
39
|
+
error: Error | null;
|
|
40
|
+
isSuccess: boolean;
|
|
41
|
+
reset: () => void;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
type ApproveInput = Omit<ApproveParams, 'apiPublicKey'>;
|
|
45
|
+
/**
|
|
46
|
+
* Hook for approving token spending
|
|
47
|
+
*/
|
|
48
|
+
declare function useApprove(): {
|
|
49
|
+
approve: (params: ApproveInput) => void;
|
|
50
|
+
approveAsync: (params: ApproveInput) => Promise<string>;
|
|
51
|
+
data: string | undefined;
|
|
52
|
+
isLoading: boolean;
|
|
53
|
+
isError: boolean;
|
|
54
|
+
error: Error | null;
|
|
55
|
+
isSuccess: boolean;
|
|
56
|
+
reset: () => void;
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
type ExecuteTransactionInput = Omit<ExecuteTransactionParams, 'apiPublicKey'>;
|
|
60
|
+
/**
|
|
61
|
+
* Hook for executing gasless transactions
|
|
62
|
+
*/
|
|
63
|
+
declare function useExecuteTransaction(): {
|
|
64
|
+
executeTransaction: (params: ExecuteTransactionInput) => void;
|
|
65
|
+
executeTransactionAsync: (params: ExecuteTransactionInput) => Promise<string>;
|
|
66
|
+
data: string | undefined;
|
|
67
|
+
isLoading: boolean;
|
|
68
|
+
isError: boolean;
|
|
69
|
+
error: Error | null;
|
|
70
|
+
isSuccess: boolean;
|
|
71
|
+
reset: () => void;
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
interface UseSkusParams extends FindSkusParams {
|
|
75
|
+
enabled?: boolean;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Hook for fetching available SKUs
|
|
79
|
+
*/
|
|
80
|
+
declare function useSkus(params?: UseSkusParams): UseQueryResult<Sku[], Error>;
|
|
81
|
+
|
|
82
|
+
interface UseSkuTransactionsParams {
|
|
83
|
+
walletAddress: string;
|
|
84
|
+
page?: number;
|
|
85
|
+
limit?: number;
|
|
86
|
+
enabled?: boolean;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Hook for fetching SKU transactions
|
|
90
|
+
*/
|
|
91
|
+
declare function useSkuTransactions(params: UseSkuTransactionsParams): UseQueryResult<SkuTransaction[], Error>;
|
|
92
|
+
|
|
93
|
+
interface PurchaseSkuParams {
|
|
94
|
+
skuId: string;
|
|
95
|
+
walletAddress: string;
|
|
96
|
+
chain: Chain;
|
|
97
|
+
chainToken: ChainToken;
|
|
98
|
+
mxnAmount: number;
|
|
99
|
+
reference: string;
|
|
100
|
+
transactionHash: string;
|
|
101
|
+
}
|
|
102
|
+
interface PurchaseSkuResult {
|
|
103
|
+
sku: Sku;
|
|
104
|
+
transaction: SkuTransaction;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Hook for purchasing a SKU (convenience hook that combines SKU lookup and transaction creation)
|
|
108
|
+
*/
|
|
109
|
+
declare function usePurchaseSku(): {
|
|
110
|
+
purchaseSku: (params: PurchaseSkuParams) => void;
|
|
111
|
+
purchaseSkuAsync: (params: PurchaseSkuParams) => Promise<PurchaseSkuResult>;
|
|
112
|
+
data: PurchaseSkuResult | undefined;
|
|
113
|
+
isLoading: boolean;
|
|
114
|
+
isError: boolean;
|
|
115
|
+
error: Error | null;
|
|
116
|
+
isSuccess: boolean;
|
|
117
|
+
reset: () => void;
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
type StakeVesuUsdcInput = Omit<StakeVesuUsdcParams, 'apiPublicKey'>;
|
|
121
|
+
/**
|
|
122
|
+
* Hook for staking USDC in Vesu protocol
|
|
123
|
+
*/
|
|
124
|
+
declare function useStakeVesuUsdc(): {
|
|
125
|
+
stakeVesuUsdc: (params: StakeVesuUsdcInput) => void;
|
|
126
|
+
stakeVesuUsdcAsync: (params: StakeVesuUsdcInput) => Promise<string>;
|
|
127
|
+
data: string | undefined;
|
|
128
|
+
isLoading: boolean;
|
|
129
|
+
isError: boolean;
|
|
130
|
+
error: Error | null;
|
|
131
|
+
isSuccess: boolean;
|
|
132
|
+
reset: () => void;
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
type WithdrawVesuUsdcInput = Omit<WithdrawVesuUsdcParams, 'apiPublicKey'>;
|
|
136
|
+
/**
|
|
137
|
+
* Hook for withdrawing USDC from Vesu protocol
|
|
138
|
+
*/
|
|
139
|
+
declare function useWithdrawVesuUsdc(): {
|
|
140
|
+
withdrawVesuUsdc: (params: WithdrawVesuUsdcInput) => void;
|
|
141
|
+
withdrawVesuUsdcAsync: (params: WithdrawVesuUsdcInput) => Promise<string>;
|
|
142
|
+
data: string | undefined;
|
|
143
|
+
isLoading: boolean;
|
|
144
|
+
isError: boolean;
|
|
145
|
+
error: Error | null;
|
|
146
|
+
isSuccess: boolean;
|
|
147
|
+
reset: () => void;
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
type CallAnyContractInput = Omit<CallAnyContractParams, 'apiPublicKey'>;
|
|
151
|
+
/**
|
|
152
|
+
* Hook for calling any contract method
|
|
153
|
+
*/
|
|
154
|
+
declare function useCallAnyContract(): {
|
|
155
|
+
callAnyContract: (params: CallAnyContractInput) => void;
|
|
156
|
+
callAnyContractAsync: (params: CallAnyContractInput) => Promise<string>;
|
|
157
|
+
data: string | undefined;
|
|
158
|
+
isLoading: boolean;
|
|
159
|
+
isError: boolean;
|
|
160
|
+
error: Error | null;
|
|
161
|
+
isSuccess: boolean;
|
|
162
|
+
reset: () => void;
|
|
163
|
+
};
|
|
164
|
+
|
|
165
|
+
export { useApprove, useCallAnyContract, useCreateWallet, useExecuteTransaction, usePurchaseSku, useSkuTransactions, useSkus, useStakeVesuUsdc, useTransfer, useWallets, useWithdrawVesuUsdc };
|
package/dist/hooks.js
ADDED
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var reactQuery = require('@tanstack/react-query');
|
|
4
|
+
var react = require('react');
|
|
5
|
+
require('@chipi-stack/backend');
|
|
6
|
+
require('react/jsx-runtime');
|
|
7
|
+
|
|
8
|
+
// src/hooks/useCreateWallet.ts
|
|
9
|
+
var ChipiContext = react.createContext(null);
|
|
10
|
+
function useChipiContext() {
|
|
11
|
+
const context = react.useContext(ChipiContext);
|
|
12
|
+
if (!context) {
|
|
13
|
+
throw new Error("useChipiContext must be used within a ChipiProvider");
|
|
14
|
+
}
|
|
15
|
+
return context;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// src/hooks/useCreateWallet.ts
|
|
19
|
+
function useCreateWallet() {
|
|
20
|
+
const { chipiSDK } = useChipiContext();
|
|
21
|
+
const mutation = reactQuery.useMutation({
|
|
22
|
+
mutationFn: (params) => chipiSDK.createWallet(params)
|
|
23
|
+
});
|
|
24
|
+
return {
|
|
25
|
+
createWallet: mutation.mutate,
|
|
26
|
+
createWalletAsync: mutation.mutateAsync,
|
|
27
|
+
data: mutation.data,
|
|
28
|
+
isLoading: mutation.isPending,
|
|
29
|
+
isError: mutation.isError,
|
|
30
|
+
error: mutation.error,
|
|
31
|
+
isSuccess: mutation.isSuccess,
|
|
32
|
+
reset: mutation.reset
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
function useWallets(params) {
|
|
36
|
+
const { chipiSDK } = useChipiContext();
|
|
37
|
+
const { enabled = true, ...queryParams } = params;
|
|
38
|
+
return reactQuery.useQuery({
|
|
39
|
+
queryKey: ["wallets", queryParams],
|
|
40
|
+
queryFn: () => chipiSDK.wallets.getWallets(queryParams),
|
|
41
|
+
enabled: enabled && !!queryParams.apiKeyId && !!queryParams.orgId
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
function useTransfer() {
|
|
45
|
+
const { chipiSDK } = useChipiContext();
|
|
46
|
+
const mutation = reactQuery.useMutation({
|
|
47
|
+
mutationFn: (params) => chipiSDK.transfer(params)
|
|
48
|
+
});
|
|
49
|
+
return {
|
|
50
|
+
transfer: mutation.mutate,
|
|
51
|
+
transferAsync: mutation.mutateAsync,
|
|
52
|
+
data: mutation.data,
|
|
53
|
+
isLoading: mutation.isPending,
|
|
54
|
+
isError: mutation.isError,
|
|
55
|
+
error: mutation.error,
|
|
56
|
+
isSuccess: mutation.isSuccess,
|
|
57
|
+
reset: mutation.reset
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
function useApprove() {
|
|
61
|
+
const { chipiSDK } = useChipiContext();
|
|
62
|
+
const mutation = reactQuery.useMutation({
|
|
63
|
+
mutationFn: (params) => chipiSDK.approve(params)
|
|
64
|
+
});
|
|
65
|
+
return {
|
|
66
|
+
approve: mutation.mutate,
|
|
67
|
+
approveAsync: mutation.mutateAsync,
|
|
68
|
+
data: mutation.data,
|
|
69
|
+
isLoading: mutation.isPending,
|
|
70
|
+
isError: mutation.isError,
|
|
71
|
+
error: mutation.error,
|
|
72
|
+
isSuccess: mutation.isSuccess,
|
|
73
|
+
reset: mutation.reset
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
function useExecuteTransaction() {
|
|
77
|
+
const { chipiSDK } = useChipiContext();
|
|
78
|
+
const mutation = reactQuery.useMutation({
|
|
79
|
+
mutationFn: (params) => chipiSDK.executeTransaction(params)
|
|
80
|
+
});
|
|
81
|
+
return {
|
|
82
|
+
executeTransaction: mutation.mutate,
|
|
83
|
+
executeTransactionAsync: mutation.mutateAsync,
|
|
84
|
+
data: mutation.data,
|
|
85
|
+
isLoading: mutation.isPending,
|
|
86
|
+
isError: mutation.isError,
|
|
87
|
+
error: mutation.error,
|
|
88
|
+
isSuccess: mutation.isSuccess,
|
|
89
|
+
reset: mutation.reset
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
function useSkus(params = {}) {
|
|
93
|
+
const { chipiSDK } = useChipiContext();
|
|
94
|
+
const { enabled = true, ...queryParams } = params;
|
|
95
|
+
return reactQuery.useQuery({
|
|
96
|
+
queryKey: ["skus", queryParams],
|
|
97
|
+
queryFn: () => chipiSDK.skus.findSkus(queryParams),
|
|
98
|
+
enabled
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
function useSkuTransactions(params) {
|
|
102
|
+
const { chipiSDK } = useChipiContext();
|
|
103
|
+
const { enabled = true, walletAddress, ...queryParams } = params;
|
|
104
|
+
return reactQuery.useQuery({
|
|
105
|
+
queryKey: ["sku-transactions", { walletAddress, ...queryParams }],
|
|
106
|
+
queryFn: () => chipiSDK.skus.getSkuTransactionsByWallet(walletAddress, queryParams),
|
|
107
|
+
enabled: enabled && !!walletAddress
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
function usePurchaseSku() {
|
|
111
|
+
const { chipiSDK } = useChipiContext();
|
|
112
|
+
const mutation = reactQuery.useMutation({
|
|
113
|
+
mutationFn: (params) => chipiSDK.skus.purchaseSku(params)
|
|
114
|
+
});
|
|
115
|
+
return {
|
|
116
|
+
purchaseSku: mutation.mutate,
|
|
117
|
+
purchaseSkuAsync: mutation.mutateAsync,
|
|
118
|
+
data: mutation.data,
|
|
119
|
+
isLoading: mutation.isPending,
|
|
120
|
+
isError: mutation.isError,
|
|
121
|
+
error: mutation.error,
|
|
122
|
+
isSuccess: mutation.isSuccess,
|
|
123
|
+
reset: mutation.reset
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
function useStakeVesuUsdc() {
|
|
127
|
+
const { chipiSDK } = useChipiContext();
|
|
128
|
+
const mutation = reactQuery.useMutation({
|
|
129
|
+
mutationFn: (params) => chipiSDK.stakeVesuUsdc(params)
|
|
130
|
+
});
|
|
131
|
+
return {
|
|
132
|
+
stakeVesuUsdc: mutation.mutate,
|
|
133
|
+
stakeVesuUsdcAsync: mutation.mutateAsync,
|
|
134
|
+
data: mutation.data,
|
|
135
|
+
isLoading: mutation.isPending,
|
|
136
|
+
isError: mutation.isError,
|
|
137
|
+
error: mutation.error,
|
|
138
|
+
isSuccess: mutation.isSuccess,
|
|
139
|
+
reset: mutation.reset
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
function useWithdrawVesuUsdc() {
|
|
143
|
+
const { chipiSDK } = useChipiContext();
|
|
144
|
+
const mutation = reactQuery.useMutation({
|
|
145
|
+
mutationFn: (params) => chipiSDK.withdrawVesuUsdc(params)
|
|
146
|
+
});
|
|
147
|
+
return {
|
|
148
|
+
withdrawVesuUsdc: mutation.mutate,
|
|
149
|
+
withdrawVesuUsdcAsync: mutation.mutateAsync,
|
|
150
|
+
data: mutation.data,
|
|
151
|
+
isLoading: mutation.isPending,
|
|
152
|
+
isError: mutation.isError,
|
|
153
|
+
error: mutation.error,
|
|
154
|
+
isSuccess: mutation.isSuccess,
|
|
155
|
+
reset: mutation.reset
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
function useCallAnyContract() {
|
|
159
|
+
const { chipiSDK } = useChipiContext();
|
|
160
|
+
const mutation = reactQuery.useMutation({
|
|
161
|
+
mutationFn: (params) => chipiSDK.callAnyContract(params)
|
|
162
|
+
});
|
|
163
|
+
return {
|
|
164
|
+
callAnyContract: mutation.mutate,
|
|
165
|
+
callAnyContractAsync: mutation.mutateAsync,
|
|
166
|
+
data: mutation.data,
|
|
167
|
+
isLoading: mutation.isPending,
|
|
168
|
+
isError: mutation.isError,
|
|
169
|
+
error: mutation.error,
|
|
170
|
+
isSuccess: mutation.isSuccess,
|
|
171
|
+
reset: mutation.reset
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
exports.useApprove = useApprove;
|
|
176
|
+
exports.useCallAnyContract = useCallAnyContract;
|
|
177
|
+
exports.useCreateWallet = useCreateWallet;
|
|
178
|
+
exports.useExecuteTransaction = useExecuteTransaction;
|
|
179
|
+
exports.usePurchaseSku = usePurchaseSku;
|
|
180
|
+
exports.useSkuTransactions = useSkuTransactions;
|
|
181
|
+
exports.useSkus = useSkus;
|
|
182
|
+
exports.useStakeVesuUsdc = useStakeVesuUsdc;
|
|
183
|
+
exports.useTransfer = useTransfer;
|
|
184
|
+
exports.useWallets = useWallets;
|
|
185
|
+
exports.useWithdrawVesuUsdc = useWithdrawVesuUsdc;
|
|
186
|
+
//# sourceMappingURL=hooks.js.map
|
|
187
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/context/ChipiProvider.tsx","../src/hooks/useCreateWallet.ts","../src/hooks/useWallets.ts","../src/hooks/useTransfer.ts","../src/hooks/useApprove.ts","../src/hooks/useExecuteTransaction.ts","../src/hooks/useSkus.ts","../src/hooks/useSkuTransactions.ts","../src/hooks/usePurchaseSku.ts","../src/hooks/useStakeVesuUsdc.ts","../src/hooks/useWithdrawVesuUsdc.ts","../src/hooks/useCallAnyContract.ts"],"names":["createContext","useContext","useMutation","useQuery"],"mappings":"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","file":"hooks.js","sourcesContent":["import React, { createContext, useContext, ReactNode } from 'react';\nimport { ChipiSDK } from '@chipi-stack/backend';\nimport type { ChipiSDKConfig } from '@chipi-stack/types';\n\ninterface ChipiContextValue {\n chipiSDK: ChipiSDK;\n config: ChipiSDKConfig;\n}\n\nconst ChipiContext = createContext<ChipiContextValue | null>(null);\n\ninterface ChipiProviderProps {\n children: ReactNode;\n config: ChipiSDKConfig;\n}\n\n/**\n * Provider component that wraps your app and provides Chipi SDK context\n */\nexport function ChipiProvider({ children, config }: ChipiProviderProps) {\n const chipiSDK = React.useMemo(() => new ChipiSDK(config), [config]);\n\n const value = React.useMemo(\n () => ({\n chipiSDK,\n config,\n }),\n [chipiSDK, config]\n );\n\n return (\n <ChipiContext.Provider value={value}>\n {children}\n </ChipiContext.Provider>\n );\n}\n\n/**\n * Hook to access Chipi SDK context\n */\nexport function useChipiContext(): ChipiContextValue {\n const context = useContext(ChipiContext);\n \n if (!context) {\n throw new Error('useChipiContext must be used within a ChipiProvider');\n }\n \n return context;\n}\n","import { useMutation, type UseMutationResult } from '@tanstack/react-query';\nimport { useChipiContext } from '../context';\nimport type { CreateWalletParams, CreateWalletResponse } from '@chipi-stack/types';\n\ntype CreateWalletInput = Omit<CreateWalletParams, 'apiPublicKey' | 'nodeUrl'>;\n\n/**\n * Hook for creating a new wallet\n */\nexport function useCreateWallet(): {\n createWallet: (params: CreateWalletInput) => void;\n createWalletAsync: (params: CreateWalletInput) => Promise<CreateWalletResponse>;\n data: CreateWalletResponse | undefined;\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n isSuccess: boolean;\n reset: () => void;\n} {\n const { chipiSDK } = useChipiContext();\n\n const mutation: UseMutationResult<CreateWalletResponse, Error, CreateWalletInput> = useMutation({\n mutationFn: (params: CreateWalletInput) => chipiSDK.createWallet(params),\n });\n\n return {\n createWallet: mutation.mutate,\n createWalletAsync: mutation.mutateAsync,\n data: mutation.data,\n isLoading: mutation.isPending,\n isError: mutation.isError,\n error: mutation.error,\n isSuccess: mutation.isSuccess,\n reset: mutation.reset,\n };\n}\n","import { useQuery, type UseQueryResult } from '@tanstack/react-query';\nimport { useChipiContext } from '../context';\nimport type { PaginatedResponse, WalletData, PaginationQuery } from '@chipi-stack/types';\n\ninterface UseWalletsParams extends PaginationQuery {\n apiKeyId: string;\n orgId: string;\n enabled?: boolean;\n}\n\n/**\n * Hook for fetching wallets\n */\nexport function useWallets(params: UseWalletsParams): UseQueryResult<PaginatedResponse<WalletData>, Error> {\n const { chipiSDK } = useChipiContext();\n const { enabled = true, ...queryParams } = params;\n\n return useQuery({\n queryKey: ['wallets', queryParams],\n queryFn: () => chipiSDK.wallets.getWallets(queryParams),\n enabled: enabled && !!queryParams.apiKeyId && !!queryParams.orgId,\n });\n}\n","import { useMutation, type UseMutationResult } from '@tanstack/react-query';\nimport { useChipiContext } from '../context';\nimport type { TransferParams } from '@chipi-stack/types';\n\ntype TransferInput = Omit<TransferParams, 'apiPublicKey'>;\n\n/**\n * Hook for transferring tokens\n */\nexport function useTransfer(): {\n transfer: (params: TransferInput) => void;\n transferAsync: (params: TransferInput) => Promise<string>;\n data: string | undefined;\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n isSuccess: boolean;\n reset: () => void;\n} {\n const { chipiSDK } = useChipiContext();\n\n const mutation: UseMutationResult<string, Error, TransferInput> = useMutation({\n mutationFn: (params: TransferInput) => chipiSDK.transfer(params),\n });\n\n return {\n transfer: mutation.mutate,\n transferAsync: mutation.mutateAsync,\n data: mutation.data,\n isLoading: mutation.isPending,\n isError: mutation.isError,\n error: mutation.error,\n isSuccess: mutation.isSuccess,\n reset: mutation.reset,\n };\n}\n","import { useMutation, type UseMutationResult } from '@tanstack/react-query';\nimport { useChipiContext } from '../context';\nimport type { ApproveParams } from '@chipi-stack/types';\n\ntype ApproveInput = Omit<ApproveParams, 'apiPublicKey'>;\n\n/**\n * Hook for approving token spending\n */\nexport function useApprove(): {\n approve: (params: ApproveInput) => void;\n approveAsync: (params: ApproveInput) => Promise<string>;\n data: string | undefined;\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n isSuccess: boolean;\n reset: () => void;\n} {\n const { chipiSDK } = useChipiContext();\n\n const mutation: UseMutationResult<string, Error, ApproveInput> = useMutation({\n mutationFn: (params: ApproveInput) => chipiSDK.approve(params),\n });\n\n return {\n approve: mutation.mutate,\n approveAsync: mutation.mutateAsync,\n data: mutation.data,\n isLoading: mutation.isPending,\n isError: mutation.isError,\n error: mutation.error,\n isSuccess: mutation.isSuccess,\n reset: mutation.reset,\n };\n}\n","import { useMutation, type UseMutationResult } from '@tanstack/react-query';\nimport { useChipiContext } from '../context';\nimport type { ExecuteTransactionParams } from '@chipi-stack/types';\n\ntype ExecuteTransactionInput = Omit<ExecuteTransactionParams, 'apiPublicKey'>;\n\n/**\n * Hook for executing gasless transactions\n */\nexport function useExecuteTransaction(): {\n executeTransaction: (params: ExecuteTransactionInput) => void;\n executeTransactionAsync: (params: ExecuteTransactionInput) => Promise<string>;\n data: string | undefined;\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n isSuccess: boolean;\n reset: () => void;\n} {\n const { chipiSDK } = useChipiContext();\n\n const mutation: UseMutationResult<string, Error, ExecuteTransactionInput> = useMutation({\n mutationFn: (params: ExecuteTransactionInput) => chipiSDK.executeTransaction(params),\n });\n\n return {\n executeTransaction: mutation.mutate,\n executeTransactionAsync: mutation.mutateAsync,\n data: mutation.data,\n isLoading: mutation.isPending,\n isError: mutation.isError,\n error: mutation.error,\n isSuccess: mutation.isSuccess,\n reset: mutation.reset,\n };\n}\n","import { useQuery, type UseQueryResult } from '@tanstack/react-query';\nimport { useChipiContext } from '../context';\nimport type { FindSkusParams, Sku } from '@chipi-stack/types';\n\ninterface UseSkusParams extends FindSkusParams {\n enabled?: boolean;\n}\n\n/**\n * Hook for fetching available SKUs\n */\nexport function useSkus(params: UseSkusParams = {}): UseQueryResult<Sku[], Error> {\n const { chipiSDK } = useChipiContext();\n const { enabled = true, ...queryParams } = params;\n\n return useQuery({\n queryKey: ['skus', queryParams],\n queryFn: () => chipiSDK.skus.findSkus(queryParams),\n enabled,\n });\n}\n","import { useQuery, useMutation, type UseQueryResult, type UseMutationResult } from '@tanstack/react-query';\nimport { useChipiContext } from '../context';\nimport type { SkuTransaction, CreateSkuTransactionParams } from '@chipi-stack/types';\n\ninterface UseSkuTransactionsParams {\n walletAddress: string;\n page?: number;\n limit?: number;\n enabled?: boolean;\n}\n\ntype CreateSkuTransactionInput = Omit<CreateSkuTransactionParams, 'apiKey'>;\n\n/**\n * Hook for fetching SKU transactions\n */\nexport function useSkuTransactions(params: UseSkuTransactionsParams): UseQueryResult<SkuTransaction[], Error> {\n const { chipiSDK } = useChipiContext();\n const { enabled = true, walletAddress, ...queryParams } = params;\n\n return useQuery({\n queryKey: ['sku-transactions', { walletAddress, ...queryParams }],\n queryFn: () => chipiSDK.skus.getSkuTransactionsByWallet(walletAddress, queryParams),\n enabled: enabled && !!walletAddress,\n });\n}\n\n/**\n * Hook for creating SKU transactions\n */\nexport function useCreateSkuTransaction(): {\n createSkuTransaction: (params: CreateSkuTransactionInput) => void;\n createSkuTransactionAsync: (params: CreateSkuTransactionInput) => Promise<SkuTransaction>;\n data: SkuTransaction | undefined;\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n isSuccess: boolean;\n reset: () => void;\n} {\n const { chipiSDK } = useChipiContext();\n\n const mutation: UseMutationResult<SkuTransaction, Error, CreateSkuTransactionInput> = useMutation({\n mutationFn: (params: CreateSkuTransactionInput) => chipiSDK.skus.createSkuTransaction(params),\n });\n\n return {\n createSkuTransaction: mutation.mutate,\n createSkuTransactionAsync: mutation.mutateAsync,\n data: mutation.data,\n isLoading: mutation.isPending,\n isError: mutation.isError,\n error: mutation.error,\n isSuccess: mutation.isSuccess,\n reset: mutation.reset,\n };\n}\n","import { useMutation, type UseMutationResult } from '@tanstack/react-query';\nimport { useChipiContext } from '../context';\nimport type { Sku, SkuTransaction, Chain, ChainToken } from '@chipi-stack/types';\n\ninterface PurchaseSkuParams {\n skuId: string;\n walletAddress: string;\n chain: Chain;\n chainToken: ChainToken;\n mxnAmount: number;\n reference: string;\n transactionHash: string;\n}\n\ninterface PurchaseSkuResult {\n sku: Sku;\n transaction: SkuTransaction;\n}\n\n/**\n * Hook for purchasing a SKU (convenience hook that combines SKU lookup and transaction creation)\n */\nexport function usePurchaseSku(): {\n purchaseSku: (params: PurchaseSkuParams) => void;\n purchaseSkuAsync: (params: PurchaseSkuParams) => Promise<PurchaseSkuResult>;\n data: PurchaseSkuResult | undefined;\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n isSuccess: boolean;\n reset: () => void;\n} {\n const { chipiSDK } = useChipiContext();\n\n const mutation: UseMutationResult<PurchaseSkuResult, Error, PurchaseSkuParams> = useMutation({\n mutationFn: (params: PurchaseSkuParams) => chipiSDK.skus.purchaseSku(params),\n });\n\n return {\n purchaseSku: mutation.mutate,\n purchaseSkuAsync: mutation.mutateAsync,\n data: mutation.data,\n isLoading: mutation.isPending,\n isError: mutation.isError,\n error: mutation.error,\n isSuccess: mutation.isSuccess,\n reset: mutation.reset,\n };\n}\n","import { useMutation, type UseMutationResult } from '@tanstack/react-query';\nimport { useChipiContext } from '../context';\nimport type { StakeVesuUsdcParams } from '@chipi-stack/types';\n\ntype StakeVesuUsdcInput = Omit<StakeVesuUsdcParams, 'apiPublicKey'>;\n\n/**\n * Hook for staking USDC in Vesu protocol\n */\nexport function useStakeVesuUsdc(): {\n stakeVesuUsdc: (params: StakeVesuUsdcInput) => void;\n stakeVesuUsdcAsync: (params: StakeVesuUsdcInput) => Promise<string>;\n data: string | undefined;\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n isSuccess: boolean;\n reset: () => void;\n} {\n const { chipiSDK } = useChipiContext();\n\n const mutation: UseMutationResult<string, Error, StakeVesuUsdcInput> = useMutation({\n mutationFn: (params: StakeVesuUsdcInput) => chipiSDK.stakeVesuUsdc(params),\n });\n\n return {\n stakeVesuUsdc: mutation.mutate,\n stakeVesuUsdcAsync: mutation.mutateAsync,\n data: mutation.data,\n isLoading: mutation.isPending,\n isError: mutation.isError,\n error: mutation.error,\n isSuccess: mutation.isSuccess,\n reset: mutation.reset,\n };\n}\n","import { useMutation, type UseMutationResult } from '@tanstack/react-query';\nimport { useChipiContext } from '../context';\nimport type { WithdrawVesuUsdcParams } from '@chipi-stack/types';\n\ntype WithdrawVesuUsdcInput = Omit<WithdrawVesuUsdcParams, 'apiPublicKey'>;\n\n/**\n * Hook for withdrawing USDC from Vesu protocol\n */\nexport function useWithdrawVesuUsdc(): {\n withdrawVesuUsdc: (params: WithdrawVesuUsdcInput) => void;\n withdrawVesuUsdcAsync: (params: WithdrawVesuUsdcInput) => Promise<string>;\n data: string | undefined;\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n isSuccess: boolean;\n reset: () => void;\n} {\n const { chipiSDK } = useChipiContext();\n\n const mutation: UseMutationResult<string, Error, WithdrawVesuUsdcInput> = useMutation({\n mutationFn: (params: WithdrawVesuUsdcInput) => chipiSDK.withdrawVesuUsdc(params),\n });\n\n return {\n withdrawVesuUsdc: mutation.mutate,\n withdrawVesuUsdcAsync: mutation.mutateAsync,\n data: mutation.data,\n isLoading: mutation.isPending,\n isError: mutation.isError,\n error: mutation.error,\n isSuccess: mutation.isSuccess,\n reset: mutation.reset,\n };\n}\n","import { useMutation, type UseMutationResult } from '@tanstack/react-query';\nimport { useChipiContext } from '../context';\nimport type { CallAnyContractParams } from '@chipi-stack/types';\n\ntype CallAnyContractInput = Omit<CallAnyContractParams, 'apiPublicKey'>;\n\n/**\n * Hook for calling any contract method\n */\nexport function useCallAnyContract(): {\n callAnyContract: (params: CallAnyContractInput) => void;\n callAnyContractAsync: (params: CallAnyContractInput) => Promise<string>;\n data: string | undefined;\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n isSuccess: boolean;\n reset: () => void;\n} {\n const { chipiSDK } = useChipiContext();\n\n const mutation: UseMutationResult<string, Error, CallAnyContractInput> = useMutation({\n mutationFn: (params: CallAnyContractInput) => chipiSDK.callAnyContract(params),\n });\n\n return {\n callAnyContract: mutation.mutate,\n callAnyContractAsync: mutation.mutateAsync,\n data: mutation.data,\n isLoading: mutation.isPending,\n isError: mutation.isError,\n error: mutation.error,\n isSuccess: mutation.isSuccess,\n reset: mutation.reset,\n };\n}\n"]}
|