{"version":3,"sources":["jsdelivr-header.js","/npm/@phantom/client@1.0.5/dist/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,aACA,IAAI,SAAW,OAAO,OAClB,UAAY,OAAO,eACnB,iBAAmB,OAAO,yBAC1B,kBAAoB,OAAO,oBAC3B,aAAe,OAAO,eACtB,aAAe,OAAO,UAAU,eAChC,SAAW,CAAC,EAAQ,KACtB,IAAK,IAAI,KAAQ,EACf,UAAU,EAAQ,EAAM,CAAE,IAAK,EAAI,GAAO,YAAY,GAAO,EAE7D,YAAc,CAAC,EAAI,EAAM,EAAQ,KACnC,GAAI,GAAwB,iBAAT,GAAqC,mBAAT,EAC7C,IAAK,IAAI,KAAO,kBAAkB,GAC3B,aAAa,KAAK,EAAI,IAAQ,IAAQ,GACzC,UAAU,EAAI,EAAK,CAAE,IAAK,IAAM,EAAK,GAAM,aAAc,EAAO,iBAAiB,EAAM,KAAS,EAAK,aAE3G,OAAO,CAAE,EAEP,QAAU,CAAC,EAAK,EAAY,KAAY,EAAgB,MAAP,EAAc,SAAS,aAAa,IAAQ,CAAC,EAAG,aAKnG,GAAe,GAAQ,EAAI,WAA8E,EAAjE,UAAU,EAAQ,UAAW,CAAE,MAAO,EAAK,YAAY,IAC/F,IAEE,aAAgB,GAAQ,YAAY,UAAU,CAAC,EAAG,aAAc,CAAE,OAAO,IAAS,GAGlF,YAAc,CAAC,EACnB,SAAS,YAAa,CACpB,YAAa,IAAM,+BAA+B,gCAClD,eAAgB,IAAM,eACtB,UAAW,IAAM,kBAAkB,UACnC,cAAe,IAAM,cACrB,mBAAoB,IAAM,mBAC1B,wBAAyB,IAAM,wBAC/B,mBAAoB,IAAM,mBAC1B,uBAAwB,IAAM,uBAC9B,gBAAiB,IAAM,cAAc,gBACrC,kBAAmB,IAAM,kBACzB,4BAA6B,IAAM,4BACnC,gBAAiB,IAAM,gBACvB,iBAAkB,IAAM,iBACxB,sBAAuB,IAAM,sBAC7B,qBAAsB,IAAM,qBAC5B,uBAAwB,IAAM,uBAC9B,sBAAuB,IAAM,sBAC7B,wBAAyB,IAAM,wBAC/B,8BAA+B,IAAM,gCAEvC,OAAO,QAAU,aAAa,aAG9B,IAAI,+BAAiC,QAAQ,mCACzC,cAAgB,QAAQ,QAAQ,UAChC,cAAgB,QAAQ,UAGxB,iBAAmB,QAAQ,sBAC3B,uBAAyB,CAE3B,CAAC,iBAAiB,UAAU,gBAAiB,CAC3C,MAAO,SACP,QAAS,UACT,YAAa,uBAEf,CAAC,iBAAiB,UAAU,eAAgB,CAC1C,MAAO,SACP,QAAS,SACT,YAAa,iBAEf,CAAC,iBAAiB,UAAU,gBAAiB,CAC3C,MAAO,SACP,QAAS,UACT,YAAa,kBAGf,CAAC,iBAAiB,UAAU,kBAAmB,CAC7C,MAAO,WACP,QAAS,UACT,YAAa,oBAEf,CAAC,iBAAiB,UAAU,kBAAmB,CAC7C,MAAO,WACP,QAAS,UACT,YAAa,mBAEf,CAAC,iBAAiB,UAAU,iBAAkB,CAC5C,MAAO,UACP,QAAS,UACT,YAAa,mBAEf,CAAC,iBAAiB,UAAU,cAAe,CACzC,MAAO,UACP,QAAS,OACT,YAAa,wBAEf,CAAC,iBAAiB,UAAU,cAAe,CACzC,MAAO,OACP,QAAS,UACT,YAAa,gBAEf,CAAC,iBAAiB,UAAU,cAAe,CACzC,MAAO,OACP,QAAS,UACT,YAAa,wBAEf,CAAC,iBAAiB,UAAU,cAAe,CACzC,MAAO,WACP,QAAS,UACT,YAAa,gBAEf,CAAC,iBAAiB,UAAU,kBAAmB,CAC7C,MAAO,WACP,QAAS,UACT,YAAa,4BAEf,CAAC,iBAAiB,UAAU,eAAgB,CAC1C,MAAO,QACP,QAAS,UACT,YAAa,iBAEf,CAAC,iBAAiB,UAAU,eAAgB,CAC1C,MAAO,QACP,QAAS,UACT,YAAa,iBAGf,CAAC,iBAAiB,UAAU,iBAAkB,CAC5C,MAAO,UACP,QAAS,UACT,YAAa,mBAEf,CAAC,iBAAiB,UAAU,iBAAkB,CAC5C,MAAO,UACP,QAAS,UACT,YAAa,mBAGf,CAAC,iBAAiB,UAAU,aAAc,CACxC,MAAO,MACP,QAAS,UACT,YAAa,eAEf,CAAC,iBAAiB,UAAU,aAAc,CACxC,MAAO,MACP,QAAS,UACT,YAAa,gBAGjB,SAAS,uBAAuB,GAC9B,MAAM,EAAU,uBAAuB,GACvC,GAAK,EAGL,MAAO,CACL,MAAO,EAAQ,MACf,QAAS,EAAQ,QAErB,CACA,SAAS,8BAA8B,GACrC,OAAO,KAAa,sBACtB,CACA,SAAS,sBAAsB,GAC7B,OAAO,uBAAuB,IAAY,WAC5C,CACA,SAAS,yBACP,OAAO,OAAO,KAAK,uBACrB,CACA,SAAS,qBAAqB,GAC5B,OAAO,OAAO,QAAQ,wBAAwB,QAAO,EAAE,EAAG,KAAa,EAAQ,MAAM,gBAAkB,EAAM,gBAAe,KAAI,EAAE,KAAe,GACnJ,CAGA,IAAI,8BAAgC,QAAQ,mCACxC,eAAiB,CAEnB,OAAQ,CAAC,EAAe,IAAM,cAAc,QAE5C,SAAU,CAAC,EAAe,IAAM,kBAAkB,IAElD,QAAS,CAAC,EAAe,IAAM,YAAY,OAE3C,IAAK,CAAC,EAAe,IAAM,cAAc,YAE3C,SAAS,4BAA4B,EAAW,EAAe,GAE7D,OADgB,EAAU,MAAM,KAAK,GAAG,eAEtC,IAAK,SACH,OAAO,eAAe,OAAO,GAC/B,IAAK,MACH,OAAO,eAAe,IAAI,GAC5B,IAAK,UACL,IAAK,MACH,OAAO,eAAe,QAAQ,GAIhC,QACE,OAAO,eAAe,SAAS,GAErC,CACA,SAAS,iBAAiB,EAAW,EAAe,GAElD,OADgB,EAAU,MAAM,KAAK,GAAG,eAEtC,IAAK,SACH,MAAO,CACL,eAAgB,eAAe,OAAO,GACtC,MAAO,8BAA8B,wBAAwB,QAC7D,UAAW,8BAA8B,UAAU,QACnD,cAAe,8BAA8B,gCAAgC,QAEjF,IAAK,MACH,MAAO,CACL,eAAgB,eAAe,IAAI,GACnC,MAAO,8BAA8B,wBAAwB,QAC7D,UAAW,8BAA8B,UAAU,QACnD,cAAe,8BAA8B,gCAAgC,KAEjF,IAAK,UACL,IAAK,MACH,MAAO,CACL,eAAgB,eAAe,QAAQ,GACvC,MAAO,8BAA8B,wBAAwB,UAC7D,UAAW,8BAA8B,UAAU,UACnD,cAAe,8BAA8B,gCAAgC,eAGjF,IAAK,SACH,MAAO,CACL,eAAgB,eAAe,SAAS,GACxC,MAAO,8BAA8B,wBAAwB,UAC7D,UAAW,8BAA8B,UAAU,UACnD,cAAe,8BAA8B,gCAAgC,UAGjF,QACE,OAAO,KAEb,CAGA,IAAI,aAAe,QAAQ,SACvB,mBAAqB,cAAc,MACrC,WAAA,CAAY,EAAM,GAChB,MAAM,EAAK,QACX,KAAK,KAAO,EACZ,KAAK,KAAO,EAAK,KACjB,KAAK,MAAQ,EAAK,MAClB,KAAK,OAAS,EAAK,OACnB,KAAK,UAAY,EAAK,SACxB,GAEF,SAAS,kBAAkB,GACzB,IAAI,EAAI,aAAa,cAAc,GACjC,OAAO,EAAM,UAAU,IAG3B,CACA,SAAS,gBAAgB,EAAO,EAAkB,qBAChD,GAAI,aAAiB,mBACnB,OAAO,EAAM,QAAU,EAAM,OAAS,EAAM,SAAW,EAEzD,MAAM,EAAO,kBAAkB,GAC/B,OAAI,EACK,EAAK,SAAW,EAAK,QAAU,EAAK,OAAS,EAElD,aAAiB,MACZ,EAAM,QAER,CACT,CACA,SAAS,sBAAsB,GAC7B,SAAI,EAAI,aAAa,cAAc,KACC,MAA3B,EAAM,UAAU,QAA6C,MAA3B,EAAM,UAAU,OAG7D,CACA,SAAS,wBAAwB,GAC/B,IAAK,IAAS,EAAK,KACjB,OAAO,KAET,OAAQ,EAAK,MACX,IAAK,0BACH,OAAO,IAAI,mBAAmB,GAChC,IAAK,sBACH,OAAO,IAAI,wBAAwB,GACrC,QACE,OAAO,KAEb,CACA,IAAI,mBAAqB,cAAc,mBACrC,WAAA,CAAY,GACV,MAAM,EAAM,sBACZ,KAAK,mBAAqB,EAAK,mBAC/B,KAAK,sBAAwB,EAAK,sBAClC,KAAK,gBAAkB,EAAK,gBAC5B,KAAK,WAAa,EAAK,UACzB,GAEE,wBAA0B,cAAc,mBAC1C,WAAA,CAAY,GACV,MAAM,EAAM,2BACZ,KAAK,cAAgB,EAAK,aAC5B,GAIE,aAAe,QAAQ,kBACvB,cAAgB,MAClB,WAAA,CAAY,EAAQ,GAClB,KAAK,OAAS,IACT,EACH,WAAY,EAAO,YAAc,eAEnC,KAAK,cAAgB,cAAc,QAAQ,SAC3C,MAAM,EAAgB,CAAC,EACnB,EAAO,SACT,OAAO,OAAO,EAAe,EAAO,SAElC,OAAO,KAAK,GAAe,OAAS,GACtC,KAAK,cAAc,aAAa,QAAQ,KAAK,IAC3C,OAAO,OAAO,EAAQ,QAAS,GACxB,KAGP,IACF,KAAK,cAAc,aAAa,QAAQ,KAAI,MAAO,SACpC,KAAK,aAAa,EAAS,KAE1C,KAAK,QAAU,GAEjB,MAAM,EAAgB,IAAI,+BAA+B,cAAc,CACrE,SAAU,EAAO,aAEnB,KAAK,OAAS,IAAI,+BAA+B,UAAU,EAAe,EAAO,WAAY,KAAK,cACpG,CACA,iBAAA,CAAkB,GAChB,IAAK,EACH,MAAM,IAAI,MAAM,8BAElB,KAAK,OAAO,eAAiB,CAC/B,CAKA,yBAAA,GACE,GAAK,KAAK,SAGN,eAAgB,KAAK,SAA8C,mBAA5B,KAAK,QAAQ,WAA2B,CACjF,MAAM,EAAU,KAAK,QAAQ,aAC7B,OAAO,GAAS,SAClB,CAEF,CACA,kBAAM,CAAa,GACjB,IACE,IAAK,KAAK,OAAO,eACf,MAAM,IAAI,MAAM,iDAElB,MAAM,QAAkB,EAAI,aAAa,sBACnC,EAAgB,CACpB,eAAgB,KAAK,OAAO,eAC5B,WAAY,GAAc,UAAU,IACpC,SAAU,CACR,eAAe,SACf,eAAe,WACf,eAAe,UACf,eAAe,QAGb,EAAU,CACd,OAAQ,+BAA+B,uBAAuB,aAC9D,OAAQ,EACR,YAAa,GAGT,SADiB,KAAK,OAAO,WAAW,IAChB,KAAK,OAC7B,EAAkB,CACtB,OAAQ,+BAA+B,sBAAsB,YAC7D,OAAQ,CACN,SAAU,CACR,eAAe,SACf,eAAe,WACf,eAAe,UACf,eAAe,OAEjB,eAAgB,KAAK,OAAO,eAC5B,SAAU,EAAa,UAEzB,YAAa,GAGT,SADyB,KAAK,OAAO,WAAW,IACd,KAAK,OAC7C,MAAO,CACL,SAAU,EAAa,SACvB,UAAW,EAAe,KAAK,IAAY,CACzC,YAAa,EAAQ,cACrB,QAAS,EAAQ,YAGvB,CAAE,MAAO,GAEP,MADA,QAAQ,MAAM,2BAA4B,EAAM,UAAU,MAAQ,EAAM,SAClE,IAAI,MAAM,4BAA4B,EAAM,UAAU,MAAM,SAAW,EAAM,UACrF,CACF,CACA,aAAM,CAAQ,EAAa,EAAgB,EAAkB,EAAS,EAAwB,GAC5F,IACE,MAAM,EAAU,CACd,cACA,iBACA,mBACA,iBAAkB,CAAE,WACpB,0BAQF,aANuB,KAAK,cAAc,KAAK,GAAG,KAAK,OAAO,qBAAsB,EAAS,CAC3F,QAAS,CACP,eAAgB,mBAChB,eAAgB,MAGJ,IAClB,CAAE,MAAO,GACP,MAAM,EAAY,kBAAkB,GAC9B,EAAqB,wBAAwB,GACnD,GAAI,EACF,MAAM,EAER,MAAM,EAAU,GAAW,QAAU,gBAAgB,EAAO,gCAC5D,MAAM,IAAI,MAAM,EAClB,CACF,CACA,8BAAM,CAAyB,GAC7B,MAAM,mBAAE,EAAkB,UAAE,EAAS,iBAAE,EAAgB,QAAE,EAAO,uBAAE,GAA2B,EACvF,GAAmB,EAAI,aAAa,iBAAiB,GACrD,GAAsB,EAAI,aAAa,eAAe,GAC5D,GAAI,EACF,MAAO,CAAE,KAAM,cAAe,MAAO,GAEvC,GAAI,GAAkD,gBAA3B,KAAK,OAAO,WAA8B,CACnE,IAAK,EACH,MAAM,IAAI,MAAM,4EAElB,IASE,aAR8B,KAAK,QACjC,EACA,KAAK,OAAO,eACZ,EACA,EACA,EACA,EAAO,aAEc,WACzB,CAAE,MAAO,GACP,GAAI,aAAa,mBACf,MAAM,EAER,MAAM,EAAe,aAAa,MAAQ,EAAE,QAAU,OAAO,GAC7D,MAAM,IAAI,MAAM,EAClB,CACF,CACA,OAAO,CACT,CACA,gBAAA,CAAiB,EAAW,GAE1B,OADc,EAAI,aAAa,iBAAiB,GAEvC,EAA0B,sBAAwB,sBAEpD,EAA0B,yBAA2B,iBAC9D,CAIA,+BAAM,CAA0B,EAAQ,GACtC,MAAM,EAAW,EAAO,SAClB,EAAqB,EAAO,YAC5B,EAAiB,EAAO,UACxB,EAAkB,EAAO,iBAAmB,EAC5C,EAAa,KAAK,iBAAiB,EAAgB,GACzD,IACE,IAAK,KAAK,OAAO,eACf,MAAM,IAAI,MAAM,oDAElB,MAAM,EAAmB,uBAAuB,GAChD,IAAK,EACH,MAAM,IAAI,MAAM,yDAAyD,KAE3E,MAAM,EAAgB,iBAAiB,EAAgB,GACvD,IAAK,EACH,MAAM,IAAI,MAAM,2BAA2B,KAE7C,MAAM,EAAiB,CACrB,eAAgB,EAAc,eAC9B,MAAO,EAAc,MACrB,cAAe,EAAc,eAEzB,EAAyB,KAAK,4BAC9B,QAA8B,KAAK,yBAAyB,CAChE,qBACA,UAAW,EACX,mBACA,yBACA,QAAS,EAAO,QAChB,eAEI,EAAc,CAClB,eAAgB,KAAK,OAAO,eAC5B,WACA,YAAa,EACb,kBAEE,IACF,EAAY,iBAAmB,GAE7B,GAA2B,EAAO,UACpC,EAAY,iBAAmB,CAC7B,QAAS,EAAO,UAGpB,MAAM,EAAU,CACd,OAAQ,+BAA+B,0BAA0B,gBACjE,OAAQ,EACR,kBAAmB,EAAI,aAAa,uBAEhC,QAAiB,KAAK,OAAO,WAAW,EAAS,CACrD,QAAS,CACP,eAAgB,KAGd,EAAS,EAAS,KAAK,OACvB,EAAsB,EAAS,KAA4B,sBAC3D,EAAO,GAA2B,EAAsB,EAAoB,OAAS,KAC3F,MAAO,CACL,kBAAmB,EAAO,YAE1B,OAEJ,CAAE,MAAO,GAEP,GAAI,aAAiB,mBACnB,MAAM,EAER,MAAM,IAAI,MAAM,gBAAgB,EAAO,aAJpB,EAA0B,gBAAkB,sBAKjE,CACF,CAIA,qBAAM,CAAgB,GAEpB,MAAO,CACL,sBAFmB,KAAK,0BAA0B,GAAQ,IAEnC,kBAE3B,CAIA,4BAAM,CAAuB,GAC3B,MAAM,QAAe,KAAK,0BAA0B,GAAQ,GAC5D,MAAO,CACL,eAAgB,EAAO,kBACvB,KAAM,EAAO,KAEjB,CACA,wBAAM,CAAmB,EAAU,EAAiB,GAClD,IACE,MAAM,EAAe,GAAmB,EAClC,EAAQ,GAAmB,CAC/B,eAAe,OAAO,GACtB,eAAe,SAAS,GACxB,eAAe,QAAQ,GACvB,eAAe,IAAI,IAEf,EAAkB,CACtB,OAAQ,+BAA+B,sBAAsB,YAC7D,OAAQ,CACN,SAAU,EACV,eAAgB,KAAK,OAAO,eAC5B,YAEF,kBAAmB,EAAI,aAAa,uBAGhC,SADyB,KAAK,OAAO,WAAW,IACd,KAAK,OAK7C,OAJkB,EAAe,KAAK,IAAY,CAChD,YAAa,EAAQ,cACrB,QAAS,EAAQ,WAGrB,CAAE,MAAO,GAEP,MADA,QAAQ,MAAM,kCAAmC,EAAM,UAAU,MAAQ,EAAM,SACzE,IAAI,MAAM,mCAAmC,EAAM,UAAU,MAAM,SAAW,EAAM,UAC5F,CACF,CAIA,yBAAM,CAAoB,GACxB,MAAM,EAAW,EAAO,SAClB,EAAe,EAAO,QACtB,EAAiB,EAAO,UACxB,EAAkB,EAAO,iBAAmB,EAClD,IACE,IAAK,KAAK,OAAO,eACf,MAAM,IAAI,MAAM,gDAElB,MAAM,EAAgB,iBAAiB,EAAgB,GACvD,IAAK,EACH,MAAM,IAAI,MAAM,2BAA2B,KAE7C,MAAM,EAAiB,CACrB,eAAgB,EAAc,eAC9B,MAAO,EAAc,MACrB,cAAe,EAAc,eAGzB,EAAU,CACd,OAAQ,sBACR,OAAQ,CACN,QAJwB,EAKxB,eAAgB,KAAK,OAAO,eAC5B,WACA,kBAEF,kBAAmB,EAAI,aAAa,uBAEhC,QAAiB,KAAK,OAAO,WAAW,GAE9C,OADe,EAAS,KAAK,OACf,SAChB,CAAE,MAAO,GAEP,MADA,QAAQ,MAAM,mCAAoC,EAAM,UAAU,MAAQ,EAAM,SAC1E,IAAI,MAAM,oCAAoC,EAAM,UAAU,MAAM,SAAW,EAAM,UAC7F,CACF,CAIA,qBAAM,CAAgB,GACpB,MAAM,EAAW,EAAO,SAClB,EAAe,EAAO,QACtB,EAAiB,EAAO,UACxB,EAAkB,EAAO,iBAAmB,EAClD,IACE,IAAK,KAAK,OAAO,eACf,MAAM,IAAI,MAAM,gDAElB,MAAM,EAAgB,iBAAiB,EAAgB,GACvD,IAAK,EACH,MAAM,IAAI,MAAM,2BAA2B,KAE7C,MAAM,EAAiB,CACrB,eAAgB,EAAc,eAC9B,MAAO,EAAc,MACrB,cAAe,EAAc,eAEzB,EAAc,CAClB,eAAgB,KAAK,OAAO,eAC5B,WACA,QAAS,EACT,UAAW,EAAc,UACzB,kBAEI,EAAU,CACd,OAAQ,+BAA+B,0BAA0B,gBACjE,OAAQ,EACR,kBAAmB,EAAI,aAAa,uBAEhC,QAAiB,KAAK,OAAO,WAAW,GAE9C,OADe,EAAS,KAAK,OACf,SAChB,CAAE,MAAO,GAEP,MADA,QAAQ,MAAM,8BAA+B,EAAM,UAAU,MAAQ,EAAM,SACrE,IAAI,MAAM,+BAA+B,EAAM,UAAU,MAAM,SAAW,EAAM,UACxF,CACF,CAIA,2BAAM,CAAsB,GAC1B,MAAM,EAAW,EAAO,SAClB,EAAY,EAAO,UACnB,EAAiB,EAAO,UACxB,EAAkB,EAAO,iBAAmB,EAClD,IACE,IAAK,KAAK,OAAO,eACf,MAAM,IAAI,MAAM,iDAElB,MAAM,EAAgB,iBAAiB,EAAgB,GACvD,IAAK,EACH,MAAM,IAAI,MAAM,2BAA2B,KAE7C,MAAM,EAAiB,CACrB,eAAgB,EAAc,eAC9B,MAAO,EAAc,MACrB,cAAe,EAAc,eAEzB,EAAU,CACd,OAAQ,wBACR,OAAQ,CACN,YACA,eAAgB,KAAK,OAAO,eAC5B,WACA,kBAEF,kBAAmB,EAAI,aAAa,uBAEhC,QAAiB,KAAK,OAAO,WAAW,GAE9C,OADe,EAAS,KAAK,OACf,SAChB,CAAE,MAAO,GAEP,MADA,QAAQ,MAAM,6BAA8B,EAAM,UAAU,MAAQ,EAAM,SACpE,IAAI,MAAM,8BAA8B,EAAM,UAAU,MAAM,SAAW,EAAM,UACvF,CACF,CACA,gBAAM,CAAW,EAAO,GACtB,IACE,MAAM,EAAU,CACd,OAAQ,yBACR,OAAQ,CACN,eAAgB,KAAK,OAAO,eAC5B,MAAO,GAAS,GAChB,OAAQ,GAAU,GAEpB,kBAAmB,EAAI,aAAa,uBAGhC,SADiB,KAAK,OAAO,WAAW,IACtB,KAAK,OAC7B,MAAO,CACL,QAAS,EAAO,QAAQ,KAAK,IAAW,CACtC,SAAU,EAAO,SACjB,WAAY,EAAO,eAErB,WAAY,EAAO,WACnB,MAAO,EAAO,MACd,OAAQ,EAAO,OAEnB,CAAE,MAAO,GAEP,MADA,QAAQ,MAAM,yBAA0B,EAAM,UAAU,MAAQ,EAAM,SAChE,IAAI,MAAM,0BAA0B,EAAM,UAAU,MAAM,SAAW,EAAM,UACnF,CACF,CAIA,qBAAM,CAAgB,GACpB,IACE,MAAM,EAAU,CACd,OAAQ,kBACR,OAAQ,CACN,kBAEF,kBAAmB,EAAI,aAAa,uBAEhC,QAAiB,KAAK,OAAO,WAAW,GAE9C,OADe,EAAS,KAAK,MAE/B,CAAE,MAAO,GAEP,MADA,QAAQ,MAAM,8BAA+B,EAAM,UAAU,MAAQ,EAAM,SACrE,IAAI,MAAM,+BAA+B,EAAM,UAAU,MAAM,SAAW,EAAM,UACxF,CACF,CAMA,kBAAA,CAAmB,EAAM,GAEvB,GAAI,EAAK,OADe,GAEtB,MAAM,IAAI,MAAM,GAAG,uDAA0E,EAAK,SAEtG,CACA,wBAAM,CAAmB,EAAM,EAAO,GACpC,IACE,IAAK,EACH,MAAM,IAAI,MAAM,iCAGlB,GADA,KAAK,mBAAmB,EAAM,iBACzB,GAA0B,IAAjB,EAAM,OAClB,MAAM,IAAI,MAAM,iCAElB,IAAK,MAAM,KAAQ,EAAO,CACpB,EAAK,UACP,KAAK,mBAAmB,EAAK,SAAU,YAEzC,IAAK,MAAM,KAAQ,EAAK,eAClB,EAAK,mBACP,KAAK,mBAAmB,EAAK,kBAAmB,gBAGtD,CACA,MAAM,EAAS,CACb,iBAAkB,EAClB,MAAO,EAAM,KAAK,IAAe,CAC/B,SAAU,EAAW,UAAY,SAAQ,EAAI,aAAa,gBAC1D,eAAgB,EAAW,eAC3B,OAA4B,UAApB,EAAW,KAAmB,CACpC,KAAM,+BAA+B,wBAAwB,MAC3D,CAAE,KAAM,MAAO,OAAQ,wBAE7B,QAEI,EAAU,CACd,OAAQ,+BAA+B,6BAA6B,mBACpE,SACA,kBAAmB,EAAI,aAAa,uBAEhC,QAAiB,KAAK,OAAO,WAAW,GAE9C,OADe,EAAS,KAAK,MAE/B,CAAE,MAAO,GAEP,MADA,QAAQ,MAAM,iCAAkC,EAAM,UAAU,MAAQ,EAAM,SACxE,IAAI,MAAM,kCAAkC,EAAM,UAAU,MAAM,SAAW,EAAM,UAC3F,CACF,CAIA,yBAAM,CAAoB,GACxB,IACM,EAAO,UACT,KAAK,mBAAmB,EAAO,SAAU,YAEvC,EAAO,mBACT,KAAK,mBAAmB,EAAO,kBAAmB,iBAEhD,EAAO,eAAe,mBACxB,KAAK,mBAAmB,EAAO,cAAc,kBAAmB,iBAElE,MAAM,EAAgB,CACpB,eAAgB,EAAO,eACvB,SAAU,EAAO,SACjB,kBAAmB,EAAO,kBAC1B,cAAe,EAAO,cACtB,iBAAkB,EAAO,kBAErB,EAAU,CACd,OAAQ,+BAA+B,8BAA8B,oBACrE,OAAQ,EACR,kBAAmB,EAAI,aAAa,uBAEhC,QAAiB,KAAK,OAAO,WAAW,GAE9C,OADe,EAAS,KAAK,MAE/B,CAAE,MAAO,GAEP,MADA,QAAQ,MAAM,kCAAmC,EAAM,UAAU,MAAQ,EAAM,SACzE,IAAI,MAAM,mCAAmC,EAAM,UAAU,MAAM,SAAW,EAAM,UAC5F,CACF,CAIA,yBAAM,CAAoB,GACxB,IACE,MAAM,EAAgB,CACpB,eAAgB,EAAO,eACvB,SAAU,EAAO,SACjB,gBAAiB,EAAO,iBAEpB,EAAU,CACd,OAAQ,+BAA+B,8BAA8B,oBACrE,OAAQ,EACR,kBAAmB,EAAI,aAAa,uBAEhC,QAAiB,KAAK,OAAO,WAAW,GAE9C,OADe,EAAS,KAAK,MAE/B,CAAE,MAAO,GAEP,MADA,QAAQ,MAAM,kCAAmC,EAAM,UAAU,MAAQ,EAAM,SACzE,IAAI,MAAM,mCAAmC,EAAM,UAAU,MAAM,SAAW,EAAM,UAC5F,CACF,CACA,6BAAM,CAAwB,GAC5B,IACE,MAAM,EAAU,CACd,OAAQ,+BAA+B,kCAAkC,wBACzE,SACA,kBAAmB,EAAI,aAAa,uBAEhC,QAAiB,KAAK,OAAO,WAAW,GAE9C,OADe,EAAS,KAAK,MAE/B,CAAE,MAAO,GAEP,MADA,QAAQ,MAAM,uCAAwC,EAAM,UAAU,MAAQ,EAAM,SAC9E,IAAI,MAAM,wCAAwC,EAAM,UAAU,MAAM,SAAW,EAAM,UACjG,CACF,CAIA,2BAAM,CAAsB,GAC1B,IACE,MAAM,EAAU,CACd,OAAQ,+BAA+B,gCAAgC,sBACvE,SACA,kBAAmB,EAAI,aAAa,6BAEhC,KAAK,OAAO,WAAW,EAC/B,CAAE,MAAO,GAEP,MADA,QAAQ,MAAM,sCAAuC,EAAM,UAAU,MAAQ,EAAM,SAC7E,IAAI,MAAM,uCAAuC,EAAM,UAAU,MAAM,SAAW,EAAM,UAChG,CACF,CAIA,sBAAM,CAAiB,GACrB,IACE,MAAM,EAAU,CACd,OAAQ,mBACR,OAAQ,CACN,eAAgB,EAAO,eACvB,IAAK,EAAO,IACZ,gBAAiB,EAAO,iBAE1B,kBAAmB,EAAI,aAAa,uBAEhC,QAAiB,KAAK,OAAO,WAAW,GAE9C,OADe,EAAS,KAAK,MAE/B,CAAE,MAAO,GAEP,MADA,QAAQ,MAAM,iCAAkC,EAAM,UAAU,MAAQ,EAAM,SACxE,IAAI,MAAM,kCAAkC,EAAM,UAAU,MAAM,SAAW,EAAM,UAC3F,CACF,CAIA,kBAAM,CAAa,EAAQ,GACzB,MAAM,EAAqC,iBAAhB,EAAO,KAAoB,EAAO,UAAuB,IAAhB,EAAO,KAAkB,GAAK,KAAK,UAAU,EAAO,MAClH,EAAW,cAAc,OAAO,KAAK,EAAa,QAClD,QAAc,EAAQ,MAAM,CAChC,KAAM,IAIR,OAFA,EAAO,QAAU,EAAO,SAAW,CAAC,EACpC,EAAO,QAAQ,mBAAqB,EAC7B,CACT,GAIE,cAAgB,QAAQ,mBACxB,kBAAoB,QAAQ,sBAC5B,+BAAiC,QAAQ","file":"/npm/@phantom/client@1.0.5/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@phantom/client@1.0.5/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n  for (var name in all)\n    __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from))\n      if (!__hasOwnProp.call(to, key) && key !== except)\n        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n  // If the importer is in node compatibility mode or this is not an ESM\n  // file that has been converted to a CommonJS file using a Babel-\n  // compatible transform (i.e. \"__esModule\" has not been set), then set\n  // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n  isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n  mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n  AddressType: () => import_openapi_wallet_service3.DerivationInfoAddressFormatEnum,\n  DerivationPath: () => DerivationPath,\n  NetworkId: () => import_constants4.NetworkId,\n  PhantomClient: () => PhantomClient,\n  SpendingLimitError: () => SpendingLimitError,\n  TransactionBlockedError: () => TransactionBlockedError,\n  WalletServiceError: () => WalletServiceError,\n  deriveSubmissionConfig: () => deriveSubmissionConfig,\n  generateKeyPair: () => import_crypto.generateKeyPair,\n  getAxiosErrorData: () => getAxiosErrorData,\n  getDerivationPathForNetwork: () => getDerivationPathForNetwork,\n  getErrorMessage: () => getErrorMessage,\n  getNetworkConfig: () => getNetworkConfig,\n  getNetworkDescription: () => getNetworkDescription,\n  getNetworkIdsByChain: () => getNetworkIdsByChain,\n  getSupportedNetworkIds: () => getSupportedNetworkIds,\n  isAuthenticationError: () => isAuthenticationError,\n  parseWalletServiceError: () => parseWalletServiceError,\n  supportsTransactionSubmission: () => supportsTransactionSubmission\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/PhantomClient.ts\nvar import_openapi_wallet_service2 = require(\"@phantom/openapi-wallet-service\");\nvar import_axios2 = __toESM(require(\"axios\"));\nvar import_buffer = require(\"buffer\");\n\n// src/caip2-mappings.ts\nvar import_constants = require(\"@phantom/constants\");\nvar CAIP2_NETWORK_MAPPINGS = {\n  // Solana networks\n  [import_constants.NetworkId.SOLANA_MAINNET]: {\n    chain: \"solana\",\n    network: \"mainnet\",\n    description: \"Solana Mainnet-Beta\"\n  },\n  [import_constants.NetworkId.SOLANA_DEVNET]: {\n    chain: \"solana\",\n    network: \"devnet\",\n    description: \"Solana Devnet\"\n  },\n  [import_constants.NetworkId.SOLANA_TESTNET]: {\n    chain: \"solana\",\n    network: \"testnet\",\n    description: \"Solana Testnet\"\n  },\n  // Ethereum/EVM networks\n  [import_constants.NetworkId.ETHEREUM_MAINNET]: {\n    chain: \"ethereum\",\n    network: \"mainnet\",\n    description: \"Ethereum Mainnet\"\n  },\n  [import_constants.NetworkId.ETHEREUM_SEPOLIA]: {\n    chain: \"ethereum\",\n    network: \"sepolia\",\n    description: \"Sepolia Testnet\"\n  },\n  [import_constants.NetworkId.POLYGON_MAINNET]: {\n    chain: \"polygon\",\n    network: \"mainnet\",\n    description: \"Polygon Mainnet\"\n  },\n  [import_constants.NetworkId.POLYGON_AMOY]: {\n    chain: \"polygon\",\n    network: \"amoy\",\n    description: \"Polygon Amoy Testnet\"\n  },\n  [import_constants.NetworkId.BASE_MAINNET]: {\n    chain: \"base\",\n    network: \"mainnet\",\n    description: \"Base Mainnet\"\n  },\n  [import_constants.NetworkId.BASE_SEPOLIA]: {\n    chain: \"base\",\n    network: \"sepolia\",\n    description: \"Base Sepolia Testnet\"\n  },\n  [import_constants.NetworkId.ARBITRUM_ONE]: {\n    chain: \"arbitrum\",\n    network: \"mainnet\",\n    description: \"Arbitrum One\"\n  },\n  [import_constants.NetworkId.ARBITRUM_SEPOLIA]: {\n    chain: \"arbitrum\",\n    network: \"sepolia\",\n    description: \"Arbitrum Sepolia Testnet\"\n  },\n  [import_constants.NetworkId.MONAD_MAINNET]: {\n    chain: \"monad\",\n    network: \"mainnet\",\n    description: \"Monad Mainnet\"\n  },\n  [import_constants.NetworkId.MONAD_TESTNET]: {\n    chain: \"monad\",\n    network: \"testnet\",\n    description: \"Monad Testnet\"\n  },\n  // Bitcoin networks (for future support)\n  [import_constants.NetworkId.BITCOIN_MAINNET]: {\n    chain: \"bitcoin\",\n    network: \"mainnet\",\n    description: \"Bitcoin Mainnet\"\n  },\n  [import_constants.NetworkId.BITCOIN_TESTNET]: {\n    chain: \"bitcoin\",\n    network: \"testnet\",\n    description: \"Bitcoin Testnet\"\n  },\n  // Sui networks (for future support)\n  [import_constants.NetworkId.SUI_MAINNET]: {\n    chain: \"sui\",\n    network: \"mainnet\",\n    description: \"Sui Mainnet\"\n  },\n  [import_constants.NetworkId.SUI_TESTNET]: {\n    chain: \"sui\",\n    network: \"testnet\",\n    description: \"Sui Testnet\"\n  }\n};\nfunction deriveSubmissionConfig(networkId) {\n  const mapping = CAIP2_NETWORK_MAPPINGS[networkId];\n  if (!mapping) {\n    return void 0;\n  }\n  return {\n    chain: mapping.chain,\n    network: mapping.network\n  };\n}\nfunction supportsTransactionSubmission(networkId) {\n  return networkId in CAIP2_NETWORK_MAPPINGS;\n}\nfunction getNetworkDescription(networkId) {\n  return CAIP2_NETWORK_MAPPINGS[networkId]?.description;\n}\nfunction getSupportedNetworkIds() {\n  return Object.keys(CAIP2_NETWORK_MAPPINGS);\n}\nfunction getNetworkIdsByChain(chain) {\n  return Object.entries(CAIP2_NETWORK_MAPPINGS).filter(([_, mapping]) => mapping.chain.toLowerCase() === chain.toLowerCase()).map(([networkId]) => networkId);\n}\n\n// src/constants.ts\nvar import_openapi_wallet_service = require(\"@phantom/openapi-wallet-service\");\nvar DerivationPath = {\n  // Solana - BIP44 standard for Solana (coin type 501)\n  Solana: (accountIndex = 0) => `m/44'/501'/${accountIndex}'/0'`,\n  // Ethereum - BIP44 standard for Ethereum and all EVM-compatible chains (coin type 60)\n  Ethereum: (accountIndex = 0) => `m/44'/60'/0'/0/${accountIndex}`,\n  // Bitcoin - BIP84 standard for Bitcoin (coin type 0)\n  Bitcoin: (accountIndex = 0) => `m/84'/0'/${accountIndex}'/0`,\n  // Sui - BIP44 standard for Sui (coin type 784)\n  Sui: (accountIndex = 0) => `m/44'/784'/${accountIndex}'/0'/0'`\n};\nfunction getDerivationPathForNetwork(networkId, accountIndex = 0) {\n  const network = networkId.split(\":\")[0].toLowerCase();\n  switch (network) {\n    case \"solana\":\n      return DerivationPath.Solana(accountIndex);\n    case \"sui\":\n      return DerivationPath.Sui(accountIndex);\n    case \"bitcoin\":\n    case \"btc\":\n      return DerivationPath.Bitcoin(accountIndex);\n    case \"eip155\":\n    case \"ethereum\":\n    case \"eth\":\n    default:\n      return DerivationPath.Ethereum(accountIndex);\n  }\n}\nfunction getNetworkConfig(networkId, accountIndex = 0) {\n  const network = networkId.split(\":\")[0].toLowerCase();\n  switch (network) {\n    case \"solana\":\n      return {\n        derivationPath: DerivationPath.Solana(accountIndex),\n        curve: import_openapi_wallet_service.DerivationInfoCurveEnum.ed25519,\n        algorithm: import_openapi_wallet_service.Algorithm.ed25519,\n        addressFormat: import_openapi_wallet_service.DerivationInfoAddressFormatEnum.solana\n      };\n    case \"sui\":\n      return {\n        derivationPath: DerivationPath.Sui(accountIndex),\n        curve: import_openapi_wallet_service.DerivationInfoCurveEnum.ed25519,\n        algorithm: import_openapi_wallet_service.Algorithm.ed25519,\n        addressFormat: import_openapi_wallet_service.DerivationInfoAddressFormatEnum.sui\n      };\n    case \"bitcoin\":\n    case \"btc\":\n      return {\n        derivationPath: DerivationPath.Bitcoin(accountIndex),\n        curve: import_openapi_wallet_service.DerivationInfoCurveEnum.secp256k1,\n        algorithm: import_openapi_wallet_service.Algorithm.secp256k1,\n        addressFormat: import_openapi_wallet_service.DerivationInfoAddressFormatEnum.bitcoinSegwit\n        // Bitcoin uses a different format, but for SDK consistency we use Ethereum format\n      };\n    case \"eip155\":\n      return {\n        derivationPath: DerivationPath.Ethereum(accountIndex),\n        curve: import_openapi_wallet_service.DerivationInfoCurveEnum.secp256k1,\n        algorithm: import_openapi_wallet_service.Algorithm.secp256k1,\n        addressFormat: import_openapi_wallet_service.DerivationInfoAddressFormatEnum.ethereum\n        // EVM chains use Ethereum address format\n      };\n    default:\n      return null;\n  }\n}\n\n// src/errors.ts\nvar import_axios = require(\"axios\");\nvar WalletServiceError = class extends Error {\n  constructor(data, errorName) {\n    super(data.detail);\n    this.name = errorName;\n    this.type = data.type;\n    this.title = data.title;\n    this.detail = data.detail;\n    this.requestId = data.requestId;\n  }\n};\nfunction getAxiosErrorData(error) {\n  if ((0, import_axios.isAxiosError)(error)) {\n    return error.response?.data;\n  }\n  return void 0;\n}\nfunction getErrorMessage(error, fallbackMessage = \"An error occurred\") {\n  if (error instanceof WalletServiceError) {\n    return error.detail || error.title || error.message || fallbackMessage;\n  }\n  const data = getAxiosErrorData(error);\n  if (data) {\n    return data.message || data.detail || data.title || fallbackMessage;\n  }\n  if (error instanceof Error) {\n    return error.message;\n  }\n  return fallbackMessage;\n}\nfunction isAuthenticationError(error) {\n  if ((0, import_axios.isAxiosError)(error)) {\n    return error.response?.status === 401 || error.response?.status === 403;\n  }\n  return false;\n}\nfunction parseWalletServiceError(data) {\n  if (!data || !data.type) {\n    return null;\n  }\n  switch (data.type) {\n    case \"spending-limit-exceeded\":\n      return new SpendingLimitError(data);\n    case \"transaction-blocked\":\n      return new TransactionBlockedError(data);\n    default:\n      return null;\n  }\n}\nvar SpendingLimitError = class extends WalletServiceError {\n  constructor(data) {\n    super(data, \"SpendingLimitError\");\n    this.previousSpendCents = data.previousSpendCents;\n    this.transactionSpendCents = data.transactionSpendCents;\n    this.totalSpendCents = data.totalSpendCents;\n    this.limitCents = data.limitCents;\n  }\n};\nvar TransactionBlockedError = class extends WalletServiceError {\n  constructor(data) {\n    super(data, \"TransactionBlockedError\");\n    this.scannerResult = data.scannerResult;\n  }\n};\n\n// src/PhantomClient.ts\nvar import_utils = require(\"@phantom/utils\");\nvar PhantomClient = class {\n  constructor(config, stamper) {\n    this.config = {\n      ...config,\n      walletType: config.walletType || \"user-wallet\"\n    };\n    this.axiosInstance = import_axios2.default.create();\n    const customHeaders = {};\n    if (config.headers) {\n      Object.assign(customHeaders, config.headers);\n    }\n    if (Object.keys(customHeaders).length > 0) {\n      this.axiosInstance.interceptors.request.use((config2) => {\n        Object.assign(config2.headers, customHeaders);\n        return config2;\n      });\n    }\n    if (stamper) {\n      this.axiosInstance.interceptors.request.use(async (config2) => {\n        return await this.stampRequest(config2, stamper);\n      });\n      this.stamper = stamper;\n    }\n    const configuration = new import_openapi_wallet_service2.Configuration({\n      basePath: config.apiBaseUrl\n    });\n    this.kmsApi = new import_openapi_wallet_service2.KMSRPCApi(configuration, config.apiBaseUrl, this.axiosInstance);\n  }\n  setOrganizationId(organizationId) {\n    if (!organizationId) {\n      throw new Error(\"organizationId is required\");\n    }\n    this.config.organizationId = organizationId;\n  }\n  /**\n   * Gets the authenticator public key from the stamper if available.\n   * Returns undefined if the stamper doesn't support key info retrieval.\n   */\n  getAuthenticatorPublicKey() {\n    if (!this.stamper) {\n      return void 0;\n    }\n    if (\"getKeyInfo\" in this.stamper && typeof this.stamper.getKeyInfo === \"function\") {\n      const keyInfo = this.stamper.getKeyInfo();\n      return keyInfo?.publicKey;\n    }\n    return void 0;\n  }\n  async createWallet(walletName) {\n    try {\n      if (!this.config.organizationId) {\n        throw new Error(\"organizationId is required to create a wallet\");\n      }\n      const timestamp = await (0, import_utils.getSecureTimestamp)();\n      const walletRequest = {\n        organizationId: this.config.organizationId,\n        walletName: walletName || `Wallet ${timestamp}`,\n        accounts: [\n          DerivationPath.Solana(),\n          DerivationPath.Ethereum(),\n          DerivationPath.Bitcoin(),\n          DerivationPath.Sui()\n        ]\n      };\n      const request = {\n        method: import_openapi_wallet_service2.CreateWalletMethodEnum.createWallet,\n        params: walletRequest,\n        timestampMs: timestamp\n      };\n      const response = await this.kmsApi.postKmsRpc(request);\n      const walletResult = response.data.result;\n      const requestAccounts = {\n        method: import_openapi_wallet_service2.GetAccountsMethodEnum.getAccounts,\n        params: {\n          accounts: [\n            DerivationPath.Solana(),\n            DerivationPath.Ethereum(),\n            DerivationPath.Bitcoin(),\n            DerivationPath.Sui()\n          ],\n          organizationId: this.config.organizationId,\n          walletId: walletResult.walletId\n        },\n        timestampMs: timestamp\n      };\n      const accountsResponse = await this.kmsApi.postKmsRpc(requestAccounts);\n      const accountsResult = accountsResponse.data.result;\n      return {\n        walletId: walletResult.walletId,\n        addresses: accountsResult.map((account) => ({\n          addressType: account.addressFormat,\n          address: account.address\n        }))\n      };\n    } catch (error) {\n      console.error(\"Failed to create wallet:\", error.response?.data || error.message);\n      throw new Error(`Failed to create wallet: ${error.response?.data?.message || error.message}`);\n    }\n  }\n  async prepare(transaction, organizationId, submissionConfig, account, authenticatorPublicKey, methodName) {\n    try {\n      const request = {\n        transaction,\n        organizationId,\n        submissionConfig,\n        simulationConfig: { account },\n        authenticatorPublicKey\n      };\n      const response = await this.axiosInstance.post(`${this.config.apiBaseUrl}/prepare`, request, {\n        headers: {\n          \"Content-Type\": \"application/json\",\n          \"X-Rpc-Method\": methodName\n        }\n      });\n      return response.data;\n    } catch (error) {\n      const errorData = getAxiosErrorData(error);\n      const walletServiceError = parseWalletServiceError(errorData);\n      if (walletServiceError) {\n        throw walletServiceError;\n      }\n      const message = errorData?.detail || getErrorMessage(error, \"Failed to submit transaction\");\n      throw new Error(message);\n    }\n  }\n  async getTransactionForSigning(params) {\n    const { encodedTransaction, networkId, submissionConfig, account, authenticatorPublicKey } = params;\n    const isEvmTransaction = (0, import_utils.isEthereumChain)(networkId);\n    const isSolanaTransaction = (0, import_utils.isSolanaChain)(networkId);\n    if (isEvmTransaction) {\n      return { kind: \"RLP_ENCODED\", bytes: encodedTransaction };\n    }\n    if (isSolanaTransaction && this.config.walletType === \"user-wallet\") {\n      if (!account) {\n        throw new Error(\"Account is required to simulate Solana transactions with spending limits\");\n      }\n      try {\n        const prepareResponse = await this.prepare(\n          encodedTransaction,\n          this.config.organizationId,\n          submissionConfig,\n          account,\n          authenticatorPublicKey,\n          params.methodName\n        );\n        return prepareResponse.transaction;\n      } catch (e) {\n        if (e instanceof WalletServiceError) {\n          throw e;\n        }\n        const errorMessage = e instanceof Error ? e.message : String(e);\n        throw new Error(errorMessage);\n      }\n    }\n    return encodedTransaction;\n  }\n  getRpcMethodName(networkId, includeSubmissionConfig) {\n    const isEvm = (0, import_utils.isEthereumChain)(networkId);\n    if (isEvm) {\n      return includeSubmissionConfig ? \"eth_sendTransaction\" : \"eth_signTransaction\";\n    }\n    return includeSubmissionConfig ? \"signAndSendTransaction\" : \"signTransaction\";\n  }\n  /**\n   * Private method for shared signing logic\n   */\n  async performTransactionSigning(params, includeSubmissionConfig) {\n    const walletId = params.walletId;\n    const encodedTransaction = params.transaction;\n    const networkIdParam = params.networkId;\n    const derivationIndex = params.derivationIndex ?? 0;\n    const methodName = this.getRpcMethodName(networkIdParam, includeSubmissionConfig);\n    try {\n      if (!this.config.organizationId) {\n        throw new Error(\"organizationId is required to sign a transaction\");\n      }\n      const submissionConfig = deriveSubmissionConfig(networkIdParam);\n      if (!submissionConfig) {\n        throw new Error(`SubmissionConfig could not be derived for network ID: ${networkIdParam}`);\n      }\n      const networkConfig = getNetworkConfig(networkIdParam, derivationIndex);\n      if (!networkConfig) {\n        throw new Error(`Unsupported network ID: ${networkIdParam}`);\n      }\n      const derivationInfo = {\n        derivationPath: networkConfig.derivationPath,\n        curve: networkConfig.curve,\n        addressFormat: networkConfig.addressFormat\n      };\n      const authenticatorPublicKey = this.getAuthenticatorPublicKey();\n      const transactionForSigning = await this.getTransactionForSigning({\n        encodedTransaction,\n        networkId: networkIdParam,\n        submissionConfig,\n        authenticatorPublicKey,\n        account: params.account,\n        methodName\n      });\n      const signRequest = {\n        organizationId: this.config.organizationId,\n        walletId,\n        transaction: transactionForSigning,\n        derivationInfo\n      };\n      if (includeSubmissionConfig) {\n        signRequest.submissionConfig = submissionConfig;\n      }\n      if (includeSubmissionConfig && params.account) {\n        signRequest.simulationConfig = {\n          account: params.account\n        };\n      }\n      const request = {\n        method: import_openapi_wallet_service2.SignTransactionMethodEnum.signTransaction,\n        params: signRequest,\n        timestampMs: await (0, import_utils.getSecureTimestamp)()\n      };\n      const response = await this.kmsApi.postKmsRpc(request, {\n        headers: {\n          \"X-Rpc-Method\": methodName\n        }\n      });\n      const result = response.data.result;\n      const rpcSubmissionResult = response.data[\"rpc_submission_result\"];\n      const hash = includeSubmissionConfig && rpcSubmissionResult ? rpcSubmissionResult.result : null;\n      return {\n        signedTransaction: result.transaction,\n        // Base64 encoded signed transaction\n        hash\n      };\n    } catch (error) {\n      const actionType = includeSubmissionConfig ? \"sign and send\" : \"sign\";\n      if (error instanceof WalletServiceError) {\n        throw error;\n      }\n      throw new Error(getErrorMessage(error, `Failed to ${actionType} transaction`));\n    }\n  }\n  /**\n   * Sign a transaction\n   */\n  async signTransaction(params) {\n    const result = await this.performTransactionSigning(params, false);\n    return {\n      rawTransaction: result.signedTransaction\n    };\n  }\n  /**\n   * Sign and send a transaction\n   */\n  async signAndSendTransaction(params) {\n    const result = await this.performTransactionSigning(params, true);\n    return {\n      rawTransaction: result.signedTransaction,\n      hash: result.hash\n    };\n  }\n  async getWalletAddresses(walletId, derivationPaths, derivationIndex) {\n    try {\n      const accountIndex = derivationIndex ?? 0;\n      const paths = derivationPaths || [\n        DerivationPath.Solana(accountIndex),\n        DerivationPath.Ethereum(accountIndex),\n        DerivationPath.Bitcoin(accountIndex),\n        DerivationPath.Sui(accountIndex)\n      ];\n      const requestAccounts = {\n        method: import_openapi_wallet_service2.GetAccountsMethodEnum.getAccounts,\n        params: {\n          accounts: paths,\n          organizationId: this.config.organizationId,\n          walletId\n        },\n        timestampMs: await (0, import_utils.getSecureTimestamp)()\n      };\n      const accountsResponse = await this.kmsApi.postKmsRpc(requestAccounts);\n      const accountsResult = accountsResponse.data.result;\n      const addresses = accountsResult.map((account) => ({\n        addressType: account.addressFormat,\n        address: account.address\n      }));\n      return addresses;\n    } catch (error) {\n      console.error(\"Failed to get wallet addresses:\", error.response?.data || error.message);\n      throw new Error(`Failed to get wallet addresses: ${error.response?.data?.message || error.message}`);\n    }\n  }\n  /**\n   * Sign an Ethereum message using EIP-191 personal sign\n   */\n  async ethereumSignMessage(params) {\n    const walletId = params.walletId;\n    const messageParam = params.message;\n    const networkIdParam = params.networkId;\n    const derivationIndex = params.derivationIndex ?? 0;\n    try {\n      if (!this.config.organizationId) {\n        throw new Error(\"organizationId is required to sign a message\");\n      }\n      const networkConfig = getNetworkConfig(networkIdParam, derivationIndex);\n      if (!networkConfig) {\n        throw new Error(`Unsupported network ID: ${networkIdParam}`);\n      }\n      const derivationInfo = {\n        derivationPath: networkConfig.derivationPath,\n        curve: networkConfig.curve,\n        addressFormat: networkConfig.addressFormat\n      };\n      const base64StringMessage = messageParam;\n      const request = {\n        method: \"ethereumSignMessage\",\n        params: {\n          message: base64StringMessage,\n          organizationId: this.config.organizationId,\n          walletId,\n          derivationInfo\n        },\n        timestampMs: await (0, import_utils.getSecureTimestamp)()\n      };\n      const response = await this.kmsApi.postKmsRpc(request);\n      const result = response.data.result;\n      return result.signature;\n    } catch (error) {\n      console.error(\"Failed to sign Ethereum message:\", error.response?.data || error.message);\n      throw new Error(`Failed to sign Ethereum message: ${error.response?.data?.message || error.message}`);\n    }\n  }\n  /**\n   * Sign a UTF-8 message for Solana\n   */\n  async signUtf8Message(params) {\n    const walletId = params.walletId;\n    const messageParam = params.message;\n    const networkIdParam = params.networkId;\n    const derivationIndex = params.derivationIndex ?? 0;\n    try {\n      if (!this.config.organizationId) {\n        throw new Error(\"organizationId is required to sign a message\");\n      }\n      const networkConfig = getNetworkConfig(networkIdParam, derivationIndex);\n      if (!networkConfig) {\n        throw new Error(`Unsupported network ID: ${networkIdParam}`);\n      }\n      const derivationInfo = {\n        derivationPath: networkConfig.derivationPath,\n        curve: networkConfig.curve,\n        addressFormat: networkConfig.addressFormat\n      };\n      const signRequest = {\n        organizationId: this.config.organizationId,\n        walletId,\n        message: messageParam,\n        algorithm: networkConfig.algorithm,\n        derivationInfo\n      };\n      const request = {\n        method: import_openapi_wallet_service2.SignUTF8MessageMethodEnum.signUtf8Message,\n        params: signRequest,\n        timestampMs: await (0, import_utils.getSecureTimestamp)()\n      };\n      const response = await this.kmsApi.postKmsRpc(request);\n      const result = response.data.result;\n      return result.signature;\n    } catch (error) {\n      console.error(\"Failed to sign raw payload:\", error.response?.data || error.message);\n      throw new Error(`Failed to sign raw payload: ${error.response?.data?.message || error.message}`);\n    }\n  }\n  /**\n   * Sign EIP-712 typed data for Ethereum\n   */\n  async ethereumSignTypedData(params) {\n    const walletId = params.walletId;\n    const typedData = params.typedData;\n    const networkIdParam = params.networkId;\n    const derivationIndex = params.derivationIndex ?? 0;\n    try {\n      if (!this.config.organizationId) {\n        throw new Error(\"organizationId is required to sign typed data\");\n      }\n      const networkConfig = getNetworkConfig(networkIdParam, derivationIndex);\n      if (!networkConfig) {\n        throw new Error(`Unsupported network ID: ${networkIdParam}`);\n      }\n      const derivationInfo = {\n        derivationPath: networkConfig.derivationPath,\n        curve: networkConfig.curve,\n        addressFormat: networkConfig.addressFormat\n      };\n      const request = {\n        method: \"ethereumSignTypedData\",\n        params: {\n          typedData,\n          organizationId: this.config.organizationId,\n          walletId,\n          derivationInfo\n        },\n        timestampMs: await (0, import_utils.getSecureTimestamp)()\n      };\n      const response = await this.kmsApi.postKmsRpc(request);\n      const result = response.data.result;\n      return result.signature;\n    } catch (error) {\n      console.error(\"Failed to sign typed data:\", error.response?.data || error.message);\n      throw new Error(`Failed to sign typed data: ${error.response?.data?.message || error.message}`);\n    }\n  }\n  async getWallets(limit, offset) {\n    try {\n      const request = {\n        method: \"getOrganizationWallets\",\n        params: {\n          organizationId: this.config.organizationId,\n          limit: limit || 20,\n          offset: offset || 0\n        },\n        timestampMs: await (0, import_utils.getSecureTimestamp)()\n      };\n      const response = await this.kmsApi.postKmsRpc(request);\n      const result = response.data.result;\n      return {\n        wallets: result.wallets.map((wallet) => ({\n          walletId: wallet.walletId,\n          walletName: wallet.walletName\n        })),\n        totalCount: result.totalCount,\n        limit: result.limit,\n        offset: result.offset\n      };\n    } catch (error) {\n      console.error(\"Failed to get wallets:\", error.response?.data || error.message);\n      throw new Error(`Failed to get wallets: ${error.response?.data?.message || error.message}`);\n    }\n  }\n  /**\n   * Get organization details by organization ID\n   */\n  async getOrganization(organizationId) {\n    try {\n      const request = {\n        method: \"getOrganization\",\n        params: {\n          organizationId\n        },\n        timestampMs: await (0, import_utils.getSecureTimestamp)()\n      };\n      const response = await this.kmsApi.postKmsRpc(request);\n      const result = response.data.result;\n      return result;\n    } catch (error) {\n      console.error(\"Failed to get organization:\", error.response?.data || error.message);\n      throw new Error(`Failed to get organization: ${error.response?.data?.message || error.message}`);\n    }\n  }\n  /**\n   * Create a new organization with the specified name and users\n   * @param name Organization name\n   * @param users Array of users with their authenticators\n   */\n  validateNameLength(name, type) {\n    const MAX_NAME_LENGTH = 64;\n    if (name.length > MAX_NAME_LENGTH) {\n      throw new Error(`${type} name cannot exceed ${MAX_NAME_LENGTH} characters. Current length: ${name.length}`);\n    }\n  }\n  async createOrganization(name, users, tags) {\n    try {\n      if (!name) {\n        throw new Error(\"Organization name is required\");\n      }\n      this.validateNameLength(name, \"Organization\");\n      if (!users || users.length === 0) {\n        throw new Error(\"At least one user is required\");\n      }\n      for (const user of users) {\n        if (user.username) {\n          this.validateNameLength(user.username, \"Username\");\n        }\n        for (const auth of user.authenticators) {\n          if (auth.authenticatorName) {\n            this.validateNameLength(auth.authenticatorName, \"Authenticator\");\n          }\n        }\n      }\n      const params = {\n        organizationName: name,\n        users: users.map((userConfig) => ({\n          username: userConfig.username || `user-${(0, import_utils.randomUUID)()}`,\n          authenticators: userConfig.authenticators,\n          policy: userConfig.role === \"ADMIN\" ? {\n            type: import_openapi_wallet_service2.UserPolicyOneOfTypeEnum.root\n          } : { type: \"CEL\", preset: \"LEGACY_USER_ROLE\" }\n        })),\n        tags\n      };\n      const request = {\n        method: import_openapi_wallet_service2.CreateOrganizationMethodEnum.createOrganization,\n        params,\n        timestampMs: await (0, import_utils.getSecureTimestamp)()\n      };\n      const response = await this.kmsApi.postKmsRpc(request);\n      const result = response.data.result;\n      return result;\n    } catch (error) {\n      console.error(\"Failed to create organization:\", error.response?.data || error.message);\n      throw new Error(`Failed to create organization: ${error.response?.data?.message || error.message}`);\n    }\n  }\n  /**\n   * Create an authenticator for a user in an organization\n   */\n  async createAuthenticator(params) {\n    try {\n      if (params.username) {\n        this.validateNameLength(params.username, \"Username\");\n      }\n      if (params.authenticatorName) {\n        this.validateNameLength(params.authenticatorName, \"Authenticator\");\n      }\n      if (params.authenticator?.authenticatorName) {\n        this.validateNameLength(params.authenticator.authenticatorName, \"Authenticator\");\n      }\n      const requestParams = {\n        organizationId: params.organizationId,\n        username: params.username,\n        authenticatorName: params.authenticatorName,\n        authenticator: params.authenticator,\n        replaceExpirable: params.replaceExpirable\n      };\n      const request = {\n        method: import_openapi_wallet_service2.CreateAuthenticatorMethodEnum.createAuthenticator,\n        params: requestParams,\n        timestampMs: await (0, import_utils.getSecureTimestamp)()\n      };\n      const response = await this.kmsApi.postKmsRpc(request);\n      const result = response.data.result;\n      return result;\n    } catch (error) {\n      console.error(\"Failed to create authenticator:\", error.response?.data || error.message);\n      throw new Error(`Failed to create authenticator: ${error.response?.data?.message || error.message}`);\n    }\n  }\n  /**\n   * Delete an authenticator for a user in an organization\n   */\n  async deleteAuthenticator(params) {\n    try {\n      const requestParams = {\n        organizationId: params.organizationId,\n        username: params.username,\n        authenticatorId: params.authenticatorId\n      };\n      const request = {\n        method: import_openapi_wallet_service2.DeleteAuthenticatorMethodEnum.deleteAuthenticator,\n        params: requestParams,\n        timestampMs: await (0, import_utils.getSecureTimestamp)()\n      };\n      const response = await this.kmsApi.postKmsRpc(request);\n      const result = response.data.result;\n      return result;\n    } catch (error) {\n      console.error(\"Failed to delete authenticator:\", error.response?.data || error.message);\n      throw new Error(`Failed to delete authenticator: ${error.response?.data?.message || error.message}`);\n    }\n  }\n  async grantOrganizationAccess(params) {\n    try {\n      const request = {\n        method: import_openapi_wallet_service2.GrantOrganizationAccessMethodEnum.grantOrganizationAccess,\n        params,\n        timestampMs: await (0, import_utils.getSecureTimestamp)()\n      };\n      const response = await this.kmsApi.postKmsRpc(request);\n      const result = response.data.result;\n      return result;\n    } catch (error) {\n      console.error(\"Failed to grant organization access:\", error.response?.data || error.message);\n      throw new Error(`Failed to grant organization access: ${error.response?.data?.message || error.message}`);\n    }\n  }\n  /**\n   * Add a new user to an organization\n   */\n  async addUserToOrganization(params) {\n    try {\n      const request = {\n        method: import_openapi_wallet_service2.AddUserToOrganizationMethodEnum.addUserToOrganization,\n        params,\n        timestampMs: await (0, import_utils.getSecureTimestamp)()\n      };\n      await this.kmsApi.postKmsRpc(request);\n    } catch (error) {\n      console.error(\"Failed to add user to organization:\", error.response?.data || error.message);\n      throw new Error(`Failed to add user to organization: ${error.response?.data?.message || error.message}`);\n    }\n  }\n  /**\n   * Get a wallet by tag from the specified organization\n   */\n  async getWalletWithTag(params) {\n    try {\n      const request = {\n        method: \"getWalletWithTag\",\n        params: {\n          organizationId: params.organizationId,\n          tag: params.tag,\n          derivationPaths: params.derivationPaths\n        },\n        timestampMs: await (0, import_utils.getSecureTimestamp)()\n      };\n      const response = await this.kmsApi.postKmsRpc(request);\n      const result = response.data.result;\n      return result;\n    } catch (error) {\n      console.error(\"Failed to get wallet with tag:\", error.response?.data || error.message);\n      throw new Error(`Failed to get wallet with tag: ${error.response?.data?.message || error.message}`);\n    }\n  }\n  /**\n   * Stamp an axios request with the provided stamper\n   */\n  async stampRequest(config, stamper) {\n    const requestBody = typeof config.data === \"string\" ? config.data : config.data === void 0 ? \"\" : JSON.stringify(config.data);\n    const dataUtf8 = import_buffer.Buffer.from(requestBody, \"utf8\");\n    const stamp = await stamper.stamp({\n      data: dataUtf8\n    });\n    config.headers = config.headers || {};\n    config.headers[\"X-Phantom-Stamp\"] = stamp;\n    return config;\n  }\n};\n\n// src/index.ts\nvar import_crypto = require(\"@phantom/crypto\");\nvar import_constants4 = require(\"@phantom/constants\");\nvar import_openapi_wallet_service3 = require(\"@phantom/openapi-wallet-service\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n  AddressType,\n  DerivationPath,\n  NetworkId,\n  PhantomClient,\n  SpendingLimitError,\n  TransactionBlockedError,\n  WalletServiceError,\n  deriveSubmissionConfig,\n  generateKeyPair,\n  getAxiosErrorData,\n  getDerivationPathForNetwork,\n  getErrorMessage,\n  getNetworkConfig,\n  getNetworkDescription,\n  getNetworkIdsByChain,\n  getSupportedNetworkIds,\n  isAuthenticationError,\n  parseWalletServiceError,\n  supportsTransactionSubmission\n});\n"]}