@dappworks/kit 0.4.211 → 0.4.213
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/{PromiseState-nh1sHDAs.d.ts → PromiseState-00f10e83.d.ts} +1 -1
- package/dist/{StorageState-qapaHguM.d.ts → StorageState-cfd942cb.d.ts} +1 -1
- package/dist/aiem.d.mts +1 -1
- package/dist/aiem.mjs +2 -2
- package/dist/{chunk-BUAUKNNF.mjs → chunk-4OJFHANU.mjs} +4 -4
- package/dist/{chunk-BE2I23U2.mjs → chunk-HDTICRGY.mjs} +2 -2
- package/dist/{chunk-4UFM3HVW.mjs → chunk-HGZ65C4B.mjs} +5 -5
- package/dist/{chunk-4UFM3HVW.mjs.map → chunk-HGZ65C4B.mjs.map} +1 -1
- package/dist/{chunk-XSGTWROT.mjs → chunk-IDKGZ5T4.mjs} +7 -7
- package/dist/{chunk-XSGTWROT.mjs.map → chunk-IDKGZ5T4.mjs.map} +1 -1
- package/dist/{chunk-2EXDWOHY.mjs → chunk-IXLGFRW6.mjs} +1 -1
- package/dist/{chunk-L6XS2K2K.mjs → chunk-LJZWWO2Z.mjs} +3 -3
- package/dist/{chunk-3TBJNCTQ.mjs → chunk-P77SGQIM.mjs} +2 -2
- package/dist/{chunk-274FDVNP.mjs → chunk-QAHRKWRK.mjs} +2 -2
- package/dist/{chunk-DRTTNPZI.mjs → chunk-VEGBB5PR.mjs} +2 -2
- package/dist/dev.d.mts +1 -1
- package/dist/dev.mjs +2 -2
- package/dist/experimental.d.mts +2 -2
- package/dist/experimental.mjs +3 -3
- package/dist/form.d.mts +3 -3
- package/dist/form.mjs +3 -3
- package/dist/{index-CUKoRIdy.d.ts → index-38be834f.d.ts} +1 -1
- package/dist/index.d.mts +5 -5
- package/dist/index.mjs +4 -4
- package/dist/inspector.d.mts +1 -1
- package/dist/inspector.mjs +1 -1
- package/dist/jsontable.d.mts +2 -2
- package/dist/jsontable.mjs +4 -4
- package/dist/metrics.d.mts +1 -1
- package/dist/metrics.mjs +4 -4
- package/dist/plugins.d.mts +3 -3
- package/dist/plugins.mjs +5 -5
- package/dist/{root-C3lZnoCI.d.ts → root-766ae985.d.ts} +1 -1
- package/dist/ui.mjs +3 -3
- package/dist/utils.d.mts +3 -8
- package/dist/utils.mjs +1 -1
- package/dist/wallet.d.mts +3 -3
- package/dist/wallet.mjs +15 -20
- package/dist/wallet.mjs.map +1 -1
- package/package.json +1 -1
- /package/dist/{PaginationState-Bmrrw0ky.d.ts → PaginationState-c19e621a.d.ts} +0 -0
- /package/dist/{chunk-BUAUKNNF.mjs.map → chunk-4OJFHANU.mjs.map} +0 -0
- /package/dist/{chunk-BE2I23U2.mjs.map → chunk-HDTICRGY.mjs.map} +0 -0
- /package/dist/{chunk-2EXDWOHY.mjs.map → chunk-IXLGFRW6.mjs.map} +0 -0
- /package/dist/{chunk-L6XS2K2K.mjs.map → chunk-LJZWWO2Z.mjs.map} +0 -0
- /package/dist/{chunk-3TBJNCTQ.mjs.map → chunk-P77SGQIM.mjs.map} +0 -0
- /package/dist/{chunk-274FDVNP.mjs.map → chunk-QAHRKWRK.mjs.map} +0 -0
- /package/dist/{chunk-DRTTNPZI.mjs.map → chunk-VEGBB5PR.mjs.map} +0 -0
package/dist/wallet.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/utils.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/endpoint.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/config.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/safe-info.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/safe-apps.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/transactions.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/chains.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/common.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/dist/types/master-copies.js","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/decoded-data.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/safe-messages.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/notifications.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/dist/types/relay.js","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/index.ts","../module/Wallet/provider.tsx","../module/Wallet/index.tsx","../module/Wallet/walletPluginStore.tsx","../../../node_modules/@safe-global/safe-apps-sdk/src/version.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/communication/utils.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/communication/messageFormatter.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/communication/methods.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/communication/index.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/types/sdk.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/types/gateway.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/txs/index.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/eth/constants.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/eth/index.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/safe/index.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/safe/signatures.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/types/permissions.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/wallet/index.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/decorators/requirePermissions.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/sdk.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/index.ts","../module/Wallet/SuccessTxDialog/index.tsx","../module/Wallet/walletConfigStore.ts","../module/Wallet/type.ts","../module/Wallet/RpcList/index.tsx"],"names":["ImplementationVersionState","SafeAppAccessPolicyTypes","SafeAppFeatures","SafeAppSocialPlatforms","Operation","TransactionStatus","TransferDirection","TransactionTokenType","SettingsInfoType","TransactionInfoType","ConflictType","TransactionListItemType","DetailedExecutionInfoType","DurationType","StartTimeValue","LabelValue","RPC_AUTHENTICATION","GAS_PRICE_TYPE","FEATURES","TokenType","ConfirmationViewTypes","SafeMessageListItemType","SafeMessageStatus","DeviceType","React","useEffect","useReconnect","useConnectModal","Methods","RestrictedMethods","Icon","_a","observer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,QAAM,kBAAkB,CAAC,SAAwC;AAC/D,YAAM,WAAW,OAAO,SAAS,YAAY,SAAS;AACtD,aAAO,YAAY,UAAU,QAAQ,aAAa;IACpD;AAEA,aAAS,aAAa,KAAa,KAAa,OAAa;AAC3D,aAAO,IAAI,QAAQ,IAAI,OAAO,MAAM,GAAG,OAAO,GAAG,GAAG,KAAK;IAC3D;AAEA,aAAgB,aAAa,UAAkB,QAAe;AAC5D,aAAO,SACH,OAAO,KAAK,MAAM,EAAE,OAAO,CAAC,QAAgB,QAAO;AACjD,eAAO,aAAa,QAAQ,KAAK,OAAO,OAAO,GAAG,CAAC,CAAC;MACtD,GAAG,QAAQ,IACX;IACN;AANA,YAAA,eAAA;AAQA,aAAgB,eAAe,OAAc;AAC3C,UAAI,CAAC,OAAO;AACV,eAAO;;AAGT,YAAM,eAAe,IAAI,gBAAe;AACxC,aAAO,KAAK,KAAK,EAAE,QAAQ,CAAC,QAAO;AACjC,YAAI,MAAM,GAAG,KAAK,MAAM;AACtB,uBAAa,OAAO,KAAK,OAAO,MAAM,GAAG,CAAC,CAAC;;MAE/C,CAAC;AACD,YAAM,eAAe,aAAa,SAAQ;AAC1C,aAAO,eAAe,IAAI,YAAY,KAAK;IAC7C;AAbA,YAAA,iBAAA;AAeA,aAAe,cAAiB,MAAc;;AAC5C,YAAI;AAEJ,YAAI;AACF,iBAAO,MAAM,KAAK,KAAI;iBACtB,IAAM;AACN,iBAAO,CAAA;;AAGT,YAAI,CAAC,KAAK,IAAI;AACZ,gBAAM,SAAS,gBAAgB,IAAI,IAC/B,eAAe,KAAK,IAAI,KAAK,KAAK,OAAO,KACzC,sBAAsB,KAAK,UAAU;AACzC,gBAAM,IAAI,MAAM,MAAM;;AAGxB,eAAO;MACT,CAAC;;AAED,aAAsB,UACpB,KACA,QACA,MACA,SACA,aAAgC;;AAEhC,cAAM,iBAAc,OAAA,OAAA,EAClB,gBAAgB,mBAAkB,GAC/B,OAAO;AAGZ,cAAM,UAAuB;UAC3B,QAAQ,WAAM,QAAN,WAAM,SAAN,SAAU;UAClB,SAAS;;AAGX,YAAI,aAAa;AACf,kBAAQ,aAAa,IAAI;;AAG3B,YAAI,QAAQ,MAAM;AAChB,kBAAQ,OAAO,OAAO,SAAS,WAAW,OAAO,KAAK,UAAU,IAAI;;AAGtE,cAAM,OAAO,MAAM,MAAM,KAAK,OAAO;AAErC,eAAO,cAAiB,IAAI;MAC9B,CAAC;;AA5BD,YAAA,YAAA;AA8BA,aAAsB,QACpB,KACA,SACA,aAAgC;;AAEhC,cAAM,UAAuB;UAC3B,QAAQ;;AAGV,YAAI,SAAS;AACX,kBAAQ,SAAS,IAAC,OAAA,OAAA,OAAA,OAAA,CAAA,GACb,OAAO,GAAA,EACV,gBAAgB,mBAAkB,CAAA;;AAItC,YAAI,aAAa;AACf,kBAAQ,aAAa,IAAI;;AAG3B,cAAM,OAAO,MAAM,MAAM,KAAK,OAAO;AAErC,eAAO,cAAiB,IAAI;MAC9B,CAAC;;AAvBD,YAAA,UAAA;;;;;;;;;;ACxFA,QAAA,UAAA;AAGA,aAAS,QACP,SACA,MACA,YACA,OAAiC;AAEjC,YAAM,YAAW,GAAA,QAAA,cAAa,MAAM,UAAU;AAC9C,YAAM,UAAS,GAAA,QAAA,gBAAe,KAAK;AACnC,aAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM;IACvC;AAEA,aAAgB,aACd,SACA,MACA,QAA+E;AAE/E,YAAM,MAAM,QAAQ,SAAS,MAAgB,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,MAAM,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,KAAK;AACxE,cAAO,GAAA,QAAA,WAAU,KAAK,QAAQ,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,MAAM,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,SAAS,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,WAAW;IAClF;AAPA,YAAA,eAAA;AASA,aAAgB,YACd,SACA,MACA,QAA6E;AAE7E,YAAM,MAAM,QAAQ,SAAS,MAAgB,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,MAAM,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,KAAK;AACxE,cAAO,GAAA,QAAA,WAAU,KAAK,OAAO,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,MAAM,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,SAAS,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,WAAW;IACjF;AAPA,YAAA,cAAA;AASA,aAAgB,eACd,SACA,MACA,QAAmF;AAEnF,YAAM,MAAM,QAAQ,SAAS,MAAgB,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,MAAM,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,KAAK;AACxE,cAAO,GAAA,QAAA,WAAU,KAAK,UAAU,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,MAAM,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,SAAS,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,WAAW;IACpF;AAPA,YAAA,iBAAA;AASA,aAAgB,YACd,SACA,MACA,QACA,QAAe;AAEf,UAAI,QAAQ;AACV,gBAAO,GAAA,QAAA,SAAQ,QAAQ,QAAW,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,WAAW;;AAEvD,YAAM,MAAM,QAAQ,SAAS,MAAgB,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,MAAM,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,KAAK;AACxE,cAAO,GAAA,QAAA,SAAQ,KAAK,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,SAAS,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,WAAW;IAC1D;AAXA,YAAA,cAAA;;;;;;;;;;ACzCa,YAAA,mBAAmB;;;;;;;;;;ACEhC,QAAY;AAAZ,KAAA,SAAYA,6BAA0B;AACpC,MAAAA,4BAAA,YAAA,IAAA;AACA,MAAAA,4BAAA,UAAA,IAAA;AACA,MAAAA,4BAAA,SAAA,IAAA;IACF,GAJY,6BAAA,QAAA,+BAAA,QAAA,6BAA0B,CAAA,EAAA;;;;;;;;;;ACFtC,QAAY;AAAZ,KAAA,SAAYC,2BAAwB;AAClC,MAAAA,0BAAA,gBAAA,IAAA;AACA,MAAAA,0BAAA,iBAAA,IAAA;IACF,GAHY,2BAAA,QAAA,6BAAA,QAAA,2BAAwB,CAAA,EAAA;AAqBpC,QAAY;AAAZ,KAAA,SAAYC,kBAAe;AACzB,MAAAA,iBAAA,sBAAA,IAAA;IACF,GAFY,kBAAA,QAAA,oBAAA,QAAA,kBAAe,CAAA,EAAA;AAI3B,QAAY;AAAZ,KAAA,SAAYC,yBAAsB;AAChC,MAAAA,wBAAA,SAAA,IAAA;AACA,MAAAA,wBAAA,QAAA,IAAA;AACA,MAAAA,wBAAA,SAAA,IAAA;IACF,GAJY,yBAAA,QAAA,2BAAA,QAAA,yBAAsB,CAAA,EAAA;;;;;;;;;;ACpBlC,QAAYC;AAAZ,KAAA,SAAYA,YAAS;AACnB,MAAAA,WAAAA,WAAA,MAAA,IAAA,CAAA,IAAA;AACA,MAAAA,WAAAA,WAAA,UAAA,IAAA,CAAA,IAAA;IACF,GAHYA,aAAA,QAAA,cAAA,QAAA,YAAS,CAAA,EAAA;AA2BrB,QAAYC;AAAZ,KAAA,SAAYA,oBAAiB;AAC3B,MAAAA,mBAAA,wBAAA,IAAA;AACA,MAAAA,mBAAA,oBAAA,IAAA;AACA,MAAAA,mBAAA,WAAA,IAAA;AACA,MAAAA,mBAAA,QAAA,IAAA;AACA,MAAAA,mBAAA,SAAA,IAAA;IACF,GANYA,qBAAA,QAAA,sBAAA,QAAA,oBAAiB,CAAA,EAAA;AAQ7B,QAAYC;AAAZ,KAAA,SAAYA,oBAAiB;AAC3B,MAAAA,mBAAA,UAAA,IAAA;AACA,MAAAA,mBAAA,UAAA,IAAA;AACA,MAAAA,mBAAA,SAAA,IAAA;IACF,GAJYA,qBAAA,QAAA,sBAAA,QAAA,oBAAiB,CAAA,EAAA;AAM7B,QAAY;AAAZ,KAAA,SAAYC,uBAAoB;AAC9B,MAAAA,sBAAA,OAAA,IAAA;AACA,MAAAA,sBAAA,QAAA,IAAA;AACA,MAAAA,sBAAA,aAAA,IAAA;IACF,GAJY,uBAAA,QAAA,yBAAA,QAAA,uBAAoB,CAAA,EAAA;AAMhC,QAAY;AAAZ,KAAA,SAAYC,mBAAgB;AAC1B,MAAAA,kBAAA,sBAAA,IAAA;AACA,MAAAA,kBAAA,WAAA,IAAA;AACA,MAAAA,kBAAA,cAAA,IAAA;AACA,MAAAA,kBAAA,YAAA,IAAA;AACA,MAAAA,kBAAA,kBAAA,IAAA;AACA,MAAAA,kBAAA,uBAAA,IAAA;AACA,MAAAA,kBAAA,eAAA,IAAA;AACA,MAAAA,kBAAA,gBAAA,IAAA;AACA,MAAAA,kBAAA,WAAA,IAAA;AACA,MAAAA,kBAAA,cAAA,IAAA;IACF,GAXY,mBAAA,QAAA,qBAAA,QAAA,mBAAgB,CAAA,EAAA;AAa5B,QAAY;AAAZ,KAAA,SAAYC,sBAAmB;AAC7B,MAAAA,qBAAA,UAAA,IAAA;AACA,MAAAA,qBAAA,iBAAA,IAAA;AACA,MAAAA,qBAAA,QAAA,IAAA;AACA,MAAAA,qBAAA,UAAA,IAAA;AACA,MAAAA,qBAAA,YAAA,IAAA;AACA,MAAAA,qBAAA,YAAA,IAAA;AACA,MAAAA,qBAAA,eAAA,IAAA;IACF,GARY,sBAAA,QAAA,wBAAA,QAAA,sBAAmB,CAAA,EAAA;AAU/B,QAAY;AAAZ,KAAA,SAAYC,eAAY;AACtB,MAAAA,cAAA,MAAA,IAAA;AACA,MAAAA,cAAA,UAAA,IAAA;AACA,MAAAA,cAAA,KAAA,IAAA;IACF,GAJY,eAAA,QAAA,iBAAA,QAAA,eAAY,CAAA,EAAA;AAMxB,QAAY;AAAZ,KAAA,SAAYC,0BAAuB;AACjC,MAAAA,yBAAA,aAAA,IAAA;AACA,MAAAA,yBAAA,OAAA,IAAA;AACA,MAAAA,yBAAA,iBAAA,IAAA;AACA,MAAAA,yBAAA,YAAA,IAAA;IACF,GALY,0BAAA,QAAA,4BAAA,QAAA,0BAAuB,CAAA,EAAA;AAOnC,QAAY;AAAZ,KAAA,SAAYC,4BAAyB;AACnC,MAAAA,2BAAA,UAAA,IAAA;AACA,MAAAA,2BAAA,QAAA,IAAA;IACF,GAHY,4BAAA,QAAA,8BAAA,QAAA,4BAAyB,CAAA,EAAA;AAyMrC,QAAY;AAAZ,KAAA,SAAYC,eAAY;AACtB,MAAAA,cAAA,MAAA,IAAA;AACA,MAAAA,cAAA,gBAAA,IAAA;IACF,GAHY,eAAA,QAAA,iBAAA,QAAA,eAAY,CAAA,EAAA;AAKxB,QAAY;AAAZ,KAAA,SAAYC,iBAAc;AACxB,MAAAA,gBAAA,gBAAA,IAAA;AACA,MAAAA,gBAAA,UAAA,IAAA;IACF,GAHY,iBAAA,QAAA,mBAAA,QAAA,iBAAc,CAAA,EAAA;AAwG1B,QAAY;AAAZ,KAAA,SAAYC,aAAU;AACpB,MAAAA,YAAA,QAAA,IAAA;AACA,MAAAA,YAAA,MAAA,IAAA;IACF,GAHY,aAAA,QAAA,eAAA,QAAA,aAAU,CAAA,EAAA;;;;;;;;;;AC5YtB,QAAY;AAAZ,KAAA,SAAYC,qBAAkB;AAC5B,MAAAA,oBAAA,cAAA,IAAA;AACA,MAAAA,oBAAA,mBAAA,IAAA;AACA,MAAAA,oBAAA,SAAA,IAAA;IACF,GAJY,qBAAA,QAAA,uBAAA,QAAA,qBAAkB,CAAA,EAAA;AA6B9B,QAAY;AAAZ,KAAA,SAAYC,iBAAc;AACxB,MAAAA,gBAAA,QAAA,IAAA;AACA,MAAAA,gBAAA,OAAA,IAAA;AACA,MAAAA,gBAAA,YAAA,IAAA;AACA,MAAAA,gBAAA,SAAA,IAAA;IACF,GALY,iBAAA,QAAA,mBAAA,QAAA,iBAAc,CAAA,EAAA;AA+B1B,QAAY;AAAZ,KAAA,SAAYC,WAAQ;AAClB,MAAAA,UAAA,QAAA,IAAA;AACA,MAAAA,UAAA,WAAA,IAAA;AACA,MAAAA,UAAA,sBAAA,IAAA;AACA,MAAAA,UAAA,eAAA,IAAA;AACA,MAAAA,UAAA,gBAAA,IAAA;AACA,MAAAA,UAAA,SAAA,IAAA;AACA,MAAAA,UAAA,sBAAA,IAAA;AACA,MAAAA,UAAA,eAAA,IAAA;AACA,MAAAA,UAAA,SAAA,IAAA;IACF,GAVY,WAAA,QAAA,aAAA,QAAA,WAAQ,CAAA,EAAA;;;;;;;;;;AClDpB,QAAYC;AAAZ,KAAA,SAAYA,YAAS;AACnB,MAAAA,WAAA,OAAA,IAAA;AACA,MAAAA,WAAA,QAAA,IAAA;AACA,MAAAA,WAAA,cAAA,IAAA;IACF,GAJYA,aAAA,QAAA,cAAA,QAAA,YAAS,CAAA,EAAA;;;;;ACZrB;AAAA;AAAA;AACA,WAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA;AAAA;;;;;;;;ACC5D,QAAY;AAAZ,KAAA,SAAYC,wBAAqB;AAC/B,MAAAA,uBAAA,gBAAA,IAAA;AACA,MAAAA,uBAAA,qBAAA,IAAA;IACF,GAHY,wBAAA,QAAA,0BAAA,QAAA,wBAAqB,CAAA,EAAA;;;;;;;;;;ACAjC,QAAY;AAAZ,KAAA,SAAYC,0BAAuB;AACjC,MAAAA,yBAAA,YAAA,IAAA;AACA,MAAAA,yBAAA,SAAA,IAAA;IACF,GAHY,0BAAA,QAAA,4BAAA,QAAA,0BAAuB,CAAA,EAAA;AAUnC,QAAY;AAAZ,KAAA,SAAYC,oBAAiB;AAC3B,MAAAA,mBAAA,oBAAA,IAAA;AACA,MAAAA,mBAAA,WAAA,IAAA;IACF,GAHY,oBAAA,QAAA,sBAAA,QAAA,oBAAiB,CAAA,EAAA;;;;;;;;;;ACZ7B,QAAY;AAAZ,KAAA,SAAYC,aAAU;AACpB,MAAAA,YAAA,SAAA,IAAA;AACA,MAAAA,YAAA,KAAA,IAAA;AACA,MAAAA,YAAA,KAAA,IAAA;IACF,GAJY,aAAA,QAAA,eAAA,QAAA,aAAU,CAAA,EAAA;;;;;ACAtB;AAAA;AAAA;AACA,WAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACD5D,QAAA,aAAA;AA0BA,QAAA,WAAA;AAOA,iBAAA,qBAAA,OAAA;AACA,iBAAA,qBAAA,OAAA;AACA,iBAAA,wBAAA,OAAA;AACA,iBAAA,kBAAA,OAAA;AACA,iBAAA,kBAAA,OAAA;AACA,iBAAA,yBAAA,OAAA;AACA,iBAAA,wBAAA,OAAA;AACA,iBAAA,yBAAA,OAAA;AACA,iBAAA,yBAAA,OAAA;AACA,iBAAA,iBAAA,OAAA;AAGA,QAAI,UAAkB,SAAA;AAKf,QAAM,aAAa,CAAC,QAAqB;AAC9C,gBAAU;IACZ;AAFa,YAAA,aAAU;AASvB,aAAgB,iBACd,SACA,MAA2D;AAE3D,cAAO,GAAA,WAAA,cAAa,SAAS,8BAA8B,EAAE,MAAM,EAAE,QAAO,GAAI,KAAI,CAAE;IACxF;AALA,YAAA,mBAAA;AAUA,aAAgB,cAAc,SAAiB,SAAe;AAC5D,cAAO,GAAA,WAAA,aAAY,SAAS,wCAAwC,EAAE,MAAM,EAAE,SAAS,QAAO,EAAE,CAAE;IACpG;AAFA,YAAA,gBAAA;AAOA,aAAgB,YAAY,SAAiB,SAAe;AAC1D,cAAO,GAAA,WAAA,aAAY,SAAS,wCAAwC,EAAE,MAAM,EAAE,SAAS,QAAO,EAAE,CAAE;IACpG;AAFA,YAAA,cAAA;AAOA,aAAgB,qBACd,SACA,SACA,OACA,SAAgB;AAEhB,cAAO,GAAA,WAAA,aACL,SACA,4DACA;QACE,MAAM,EAAE,SAAS,QAAO;QACxB;SAEF,OAAO;IAEX;AAfA,YAAA,uBAAA;AAoBA,aAAgB,sBACd,SACA,SACA,OACA,SAAgB;AAEhB,cAAO,GAAA,WAAA,aACL,SACA,6DACA;QACE,MAAM,EAAE,SAAS,QAAO;QACxB;SAEF,OAAO;IAEX;AAfA,YAAA,wBAAA;AAoBA,aAAgB,wBACd,SACA,SACA,OACA,SAAgB;AAEhB,cAAO,GAAA,WAAA,aACL,SACA,+DACA;QACE,MAAM,EAAE,SAAS,QAAO;QACxB;SAEF,OAAO;IAEX;AAfA,YAAA,0BAAA;AAoBA,aAAgB,YACd,SACA,SACA,WAAW,OACX,QAAkE,CAAA,GAAE;AAEpE,cAAO,GAAA,WAAA,aAAY,SAAS,4DAA4D;QACtF,MAAM,EAAE,SAAS,SAAS,SAAQ;QAClC;OACD;IACH;AAVA,YAAA,cAAA;AAeA,aAAgB,oBAAiB;AAC/B,cAAO,GAAA,WAAA,aAAY,SAAS,mCAAmC;IACjE;AAFA,YAAA,oBAAA;AAOA,aAAgB,cAAc,SAAiB,SAAe;AAC5D,cAAO,GAAA,WAAA,aAAY,SAAS,+CAA+C,EAAE,MAAM,EAAE,SAAS,QAAO,EAAE,CAAE;IAC3G;AAFA,YAAA,gBAAA;AAOA,aAAgB,iBAAiB,SAAe;AAC9C,cAAO,GAAA,WAAA,aAAY,SAAS,8BAA8B,EAAE,MAAM,EAAE,QAAO,EAAE,CAAE;IACjF;AAFA,YAAA,mBAAA;AAOA,aAAgB,gBACd,SACA,SACA,QAAsE,CAAA,GAAE;AAExE,cAAO,GAAA,WAAA,aAAY,SAAS,qDAAqD;QAC/E,MAAM,EAAE,SAAS,QAAO;QACxB;OACD;IACH;AATA,YAAA,kBAAA;AAcA,aAAgB,oBACd,SACA,SACA,QAAgF,CAAA,GAChF,SAAgB;AAEhB,cAAO,GAAA,WAAA,aACL,SACA,qDACA,EAAE,MAAM,EAAE,SAAS,QAAO,GAAI,MAAK,GACnC,OAAO;IAEX;AAZA,YAAA,sBAAA;AAiBA,aAAgB,sBACd,SACA,SACA,QAAmE,CAAA,GACnE,SAAgB;AAEhB,cAAO,GAAA,WAAA,aACL,SACA,kEACA,EAAE,MAAM,EAAE,SAAS,cAAc,QAAO,GAAI,MAAK,GACjD,OAAO;IAEX;AAZA,YAAA,wBAAA;AAiBA,aAAgB,oBACd,SACA,SACA,QAAkE,CAAA,GAClE,SAAgB;AAEhB,cAAO,GAAA,WAAA,aACL,SACA,iEACA,EAAE,MAAM,EAAE,SAAS,cAAc,QAAO,GAAI,MAAK,GACjD,OAAO;IAEX;AAZA,YAAA,sBAAA;AAiBA,aAAgB,sBAAsB,SAAiB,eAAqB;AAC1E,cAAO,GAAA,WAAA,aAAY,SAAS,qDAAqD;QAC/E,MAAM,EAAE,SAAS,cAAa;OAC/B;IACH;AAJA,YAAA,wBAAA;AASA,aAAgB,kBACd,SACA,YACA,WAA8E;AAE9E,cAAO,GAAA,WAAA,gBAAe,SAAS,kDAAkD;QAC/E,MAAM,EAAE,SAAS,WAAU;QAC3B,MAAM,EAAE,UAAS;OAClB;IACH;AATA,YAAA,oBAAA;AAcA,aAAgB,sBACd,SACA,SACA,MAAkE;AAElE,cAAO,GAAA,WAAA,cAAa,SAAS,+EAA+E;QAC1G,MAAM,EAAE,SAAS,cAAc,QAAO;QACtC;OACD;IACH;AATA,YAAA,wBAAA;AAWA,aAAgB,UAAU,SAAiB,SAAe;AACxD,cAAO,GAAA,WAAA,aAAY,SAAS,oDAAoD;QAC9E,MAAM,EAAE,SAAS,cAAc,QAAO;OACvC;IACH;AAJA,YAAA,YAAA;AASA,aAAgB,mBACd,SACA,SACA,MAA6D;AAE7D,cAAO,GAAA,WAAA,cAAa,SAAS,4DAA4D;QACvF,MAAM,EAAE,SAAS,cAAc,QAAO;QACtC;OACD;IACH;AATA,YAAA,qBAAA;AAcA,aAAgB,oBACd,SACA,aACA,aACA,IAA2D;AAE3D,cAAO,GAAA,WAAA,cAAa,SAAS,4EAA4E;QACvG,MAAM,EAAE,SAAkB,cAAc,YAAW;QACnD,MAAM,EAAE,MAAM,aAAa,GAAE;OAC9B;IACH;AAVA,YAAA,sBAAA;AAeA,aAAgB,gBAAgB,OAAwD;AACtF,cAAO,GAAA,WAAA,aAAY,SAAS,cAAc;QACxC;OACD;IACH;AAJA,YAAA,kBAAA;AASA,aAAgB,eAAe,SAAe;AAC5C,cAAO,GAAA,WAAA,aAAY,SAAS,wBAAwB;QAClD,MAAM,EAAE,QAAgB;OACzB;IACH;AAJA,YAAA,iBAAA;AASA,aAAgB,YACd,SACA,QAA6D,CAAA,GAAE;AAE/D,cAAO,GAAA,WAAA,aAAY,SAAS,kCAAkC;QAC5D,MAAM,EAAE,QAAgB;QACxB;OACD;IACH;AARA,YAAA,cAAA;AAaA,aAAgB,gBAAgB,SAAe;AAC7C,cAAO,GAAA,WAAA,aAAY,SAAS,4CAA4C;QACtE,MAAM,EAAE,QAAgB;OACzB;IACH;AAJA,YAAA,kBAAA;AASA,aAAgB,eACd,SACA,aACA,IAA2D;AAE3D,cAAO,GAAA,WAAA,cAAa,SAAS,qCAAqC;QAChE,MAAM,EAAE,QAAgB;QACxB,MAAM,EAAE,MAAM,aAAa,GAAE;OAC9B;IACH;AATA,YAAA,iBAAA;AAcA,aAAgB,gBAAgB,SAAiB,SAAiB,SAAgB;AAChF,cAAO,GAAA,WAAA,aACL,SACA,sDACA,EAAE,MAAM,EAAE,SAAS,cAAc,QAAO,GAAI,OAAO,CAAA,EAAE,GACrD,OAAO;IAEX;AAPA,YAAA,kBAAA;AAYA,aAAgB,eAAe,SAAiB,aAAmB;AACjE,cAAO,GAAA,WAAA,aAAY,SAAS,gDAAgD;QAC1E,MAAM,EAAE,SAAS,cAAc,YAAW;OAC3C;IACH;AAJA,YAAA,iBAAA;AASA,aAAgB,mBACd,SACA,SACA,MAA8D;AAE9D,cAAO,GAAA,WAAA,cAAa,SAAS,sDAAsD;QACjF,MAAM,EAAE,SAAS,cAAc,QAAO;QACtC;OACD;IACH;AATA,YAAA,qBAAA;AAcA,aAAgB,mBACd,SACA,aACA,MAA8D;AAE9D,cAAO,GAAA,WAAA,cAAa,SAAS,2DAA2D;QACtF,MAAM,EAAE,SAAS,cAAc,YAAW;QAC1C;OACD;IACH;AATA,YAAA,qBAAA;AAcA,aAAgB,aAAa,SAAiB,QAA0B,CAAA,GAAE;AACxE,cAAO,GAAA,WAAA,aAAY,SAAS,kCAAkC;QAC5D,MAAM,EAAE,QAAO;QACf;OACD;IACH;AALA,YAAA,eAAA;AAUA,aAAgB,eAAe,MAAyD;AACtF,cAAO,GAAA,WAAA,cAAa,SAAS,8BAA8B;QACzD;OACD;IACH;AAJA,YAAA,iBAAA;AASA,aAAgB,eAAe,SAAiB,SAAiB,MAAY;AAC3E,cAAO,GAAA,WAAA,gBAAe,SAAS,0EAA0E;QACvG,MAAM,EAAE,SAAS,cAAc,SAAS,KAAI;OAC7C;IACH;AAJA,YAAA,iBAAA;AASA,aAAgB,iBAAiB,SAAiB,MAAY;AAC5D,cAAO,GAAA,WAAA,gBAAe,SAAS,qDAAqD;QAClF,MAAM,EAAE,SAAS,KAAI;OACtB;IACH;AAJA,YAAA,mBAAA;AAkBA,aAAgB,cACd,SACA,aACA,MACA,SAA8D;AAE9D,cAAO,GAAA,WAAA,cAAa,SAAS,oDAAoD;QAC/E,MAAM,EAAE,SAAS,cAAc,YAAW;QAC1C;QACA;OACD;IACH;AAXA,YAAA,gBAAA;AA0BA,aAAgB,YACd,SACA,aACA,eACA,MACA,SAA4D;AAE5D,cAAO,GAAA,WAAA,aAAY,SAAS,6DAA6D;QACvF,MAAM,EAAE,SAAS,cAAc,aAAa,QAAQ,cAAa;QACjE;QACA;OACD;IACH;AAZA,YAAA,cAAA;AAiBA,aAAgB,4BACd,SACA,aACA,eAAqB;AAErB,cAAO,GAAA,WAAA,cAAa,SAAS,2EAA2E;QACtG,MAAM,EAAE,SAAS,cAAc,aAAa,QAAQ,cAAa;QACjE,MAAM;OACP;IACH;AATA,YAAA,8BAAA;AAmBA,aAAgB,YACd,SACA,aACA,eACA,MAAsD;AAEtD,cAAO,GAAA,WAAA,aAAY,SAAS,oEAAoE;QAC9F,MAAM,EAAE,SAAS,cAAc,aAAa,QAAQ,cAAa;QACjE;OACD;IACH;AAVA,YAAA,cAAA;AAwBA,aAAgB,mBACd,SACA,aACA,eACA,SAAyD;AAEzD,cAAO,GAAA,WAAA,aAAY,SAAS,6DAA6D;QACvF,MAAM,EAAE,SAAS,cAAc,aAAa,QAAQ,cAAa;QACjE;OACD;IACH;AAVA,YAAA,qBAAA;AAuBA,aAAgB,sBACd,SACA,aACA,eACA,SAA4D;AAE5D,cAAO,GAAA,WAAA,gBAAe,SAAS,6DAA6D;QAC1F,MAAM,EAAE,SAAS,cAAc,aAAa,QAAQ,cAAa;QACjE;OACD;IACH;AAVA,YAAA,wBAAA;AAkBA,aAAgB,uBACd,SACA,aACA,MAAkE;AAElE,cAAO,GAAA,WAAA,cAAa,SAAS,sDAAsD;QACjF,MAAM,EAAE,SAAS,cAAc,YAAW;QAC1C;OACD;IACH;AATA,YAAA,yBAAA;AAeA,aAAgB,kBAAkB,OAA8D;AAC9F,cAAO,GAAA,WAAA,gBAAe,SAAS,qBAAqB,EAAE,MAAK,CAAE;IAC/D;AAFA,YAAA,oBAAA;AAQA,aAAgB,eAAe,OAA2D;AACxF,cAAO,GAAA,WAAA,gBAAe,SAAS,yBAAyB,EAAE,MAAK,CAAE;IACnE;AAFA,YAAA,iBAAA;AAOA,aAAgB,iBACd,OACA,OAA0F;AAE1F,cAAO,GAAA,WAAA,aAAY,SAAS,aAAa;QACvC,OAAK,OAAA,OAAA,OAAA,OAAA,CAAA,GACA,KAAK,GAAA,EACR,OAAO,MAAM,KAAK,GAAG,EAAC,CAAA;OAEzB;IACH;AAVA,YAAA,mBAAA;AAYA,aAAgB,YAAY,SAAiB,iBAAuB;AAClE,cAAO,GAAA,WAAA,aAAY,SAAS,oDAAoD;QAC9E,MAAM;UACJ;UACA;;OAEH;IACH;AAPA,YAAA,cAAA;AASA,aAAgB,eAAY;AAC1B,cAAO,GAAA,WAAA,aAAY,SAAS,kBAAkB,EAAE,aAAa,UAAS,CAAE;IAC1E;AAFA,YAAA,eAAA;AAIA,aAAgB,WAAW,MAAqD;AAC9E,cAAO,GAAA,WAAA,cAAa,SAAS,mBAAmB;QAC9C;QACA,aAAa;OACd;IACH;AALA,YAAA,aAAA;AAOA,aAAgB,cAAc,MAAwD;AACpF,cAAO,GAAA,WAAA,cAAa,SAAS,gBAAgB;QAC3C;QACA,aAAa;OACd;IACH;AALA,YAAA,gBAAA;AAOA,aAAgB,WAAW,SAAe;AACxC,cAAO,GAAA,WAAA,aAAY,SAAS,0BAA0B;QACpD,MAAM,EAAE,QAAO;QACf,aAAa;OACd;IACH;AALA,YAAA,aAAA;AAOA,aAAgB,cAAc,SAAe;AAC3C,cAAO,GAAA,WAAA,gBAAe,SAAS,0BAA0B;QACvD,MAAM,EAAE,QAAO;QACf,aAAa;OACd;IACH;AALA,YAAA,gBAAA;AAOA,aAAgB,sBAAmB;AACjC,cAAO,GAAA,WAAA,aAAY,SAAS,yBAAyB;IACvD;AAFA,YAAA,sBAAA;AAIA,aAAgB,uBAAuB,SAAe;AACpD,cAAO,GAAA,WAAA,aAAY,SAAS,wCAAwC;QAClE,MAAM,EAAE,QAAO;QACf,aAAa;OACd;IACH;AALA,YAAA,yBAAA;AAOA,aAAgB,uBACd,SACA,MAAmE;AAEnE,cAAO,GAAA,WAAA,aAAY,SAAS,wCAAwC;QAClE,MAAM,EAAE,QAAO;QACf;QACA,aAAa;OACd;IACH;AATA,YAAA,yBAAA;;;;;AC9qBA,SAAS,oBAAoB,WAAW,kBAAkB;AAC1D,SAAS,aAAa,2BAA2B;AACjD,OAAOC,UAAS,aAAAC,YAAW,gBAAgB;AAC3C,SAAS,gBAAAC,eAAc,qBAAqB;;;ACH5C,SAAgB,iBAAiB;AAOjC,OAAO,kBAAkB;AAEzB,SAAiB,YAAY,YAAY,eAA6B,gBAAgB,uBAAwB;AAC9G,SAAgB,mBAAAC,wBAA4C;;;ACV5D,OAAO,WAAW;AAClB,SAAS,YAAY;AASrB,IAAM,iBAAiB;AAAA,EACrB,EAAE,MAAM,mCAAmC,SAAS,GAAG,QAAQ,GAAG,QAAQ,MAAM;AAAA,EAChF,EAAE,MAAM,uCAAuC,SAAS,GAAG,QAAQ,EAAG;AAAA,EACtE,EAAE,MAAM,sCAAsC,SAAS,GAAG,QAAQ,EAAG;AAAA,EACrE,EAAE,MAAM,0CAA0C,SAAS,GAAG,QAAQ,EAAG;AAAA,EACzE,EAAE,MAAM,wBAAwB,SAAS,GAAG,QAAQ,EAAG;AAAA,EACvD,EAAE,MAAM,0CAA0C,SAAS,GAAG,QAAQ,EAAG;AAAA,EACzE,EAAE,MAAM,8BAA8B,SAAS,GAAG,QAAQ,EAAG;AAC/D;AACO,IAAM,iBAAN,MAAsC;AAAA,EAAtC;AACL,eAAM;AACN,0BAAiB;AACjB,kBAAS,IAAI,aAAa,EAAE,SAAS,uCAAuC,KAAK,aAAa,OAAO,sCAAsC,CAAC;AAC5I,2BAAkB,IAAI,aAAa,EAAE,KAAK,mBAAmB,SAAS,KAAK,CAAC;AAC5E,qBAAY;AACZ,mBAAU,IAAI,aAAa,EAAE,KAAK,oBAAoB,SAAS,gBAAgB,OAAO,CAAC,EAAE,CAAC;AAC1F,yBAAgB;AAAA;AAAA,EAChB,IAAI,aAAa;AA3BnB;AA4BI,YAAQ,KAAI,UAAK,QAAQ,UAAb,mBAAoB,KAAK,OAAK,EAAE,QAAQ,KAAK,OAAO;AAChE,aAAO,UAAK,QAAQ,UAAb,mBAAoB,KAAK,OAAK,EAAE,QAAQ,KAAK,OAAO,WAAU;AAAA,EACvE;AAAA,EACA,eAAe;AACb,UAAM,OAAO,EAAE,MAAM,KAAK,WAAW,SAAS,GAAG,QAAQ,GAAG,QAAQ,KAAK;AACzE,QAAI,eAAe,KAAK,OAAK,EAAE,SAAS,KAAK,IAAI,GAAG;AAClD,aAAO,UAAU,IAAI,WAAW,EAAE,MAAM,oBAAoB;AAAA,IAC9D;AACA,QAAI,KAAK,QAAQ,OAAO;AACtB,WAAK,QAAQ,KAAK,CAAC,GAAG,KAAK,QAAQ,OAAO,IAAI,CAAC;AAC/C,WAAK,QAAQ;AACb;AAAA,IACF;AACA,SAAK,QAAQ,KAAK,CAAC,GAAG,gBAAgB,IAAI,CAAC;AAC3C,SAAK,QAAQ;AAAA,EACf;AAAA,EACA,MAAM,cAAc,KAAK;AA5C3B;AA6CI,QAAI;AACF,UAAI,OAAO,UAAU;AAAa;AAClC,cAAM,sCAAQ,aAAR,mBAAkB,QAAQ;AAAA,QAC9B,QAAQ;AAAA,QACR,QAAQ,CAAC;AAAA,UACP,SAAS,KAAM,MAAM,SAAS,EAAE,CAAC;AAAA,UACjC,WAAW;AAAA,UACX,gBAAgB;AAAA,YACd,MAAM;AAAA,YACN,QAAQ;AAAA,YACR,UAAU;AAAA,UACZ;AAAA,UACA,SAAS,CAAC,GAAG;AAAA,UACb,mBAAmB,CAAC,sBAAsB;AAAA,QAC5C,CAAC;AAAA,MACH;AACA,gBAAU,IAAI,WAAW,EAAE,QAAQ,eAAe;AAClD,cAAQ,IAAI,eAAe;AAAA,IAC7B,SAAS,OAAO;AACd,cAAQ,MAAM,yBAAyB,KAAK;AAAA,IAC9C;AAAA,EACF;AAAA,EACA,UAAU;AACR,SAAK,gBAAgB;AACrB,SAAK,YAAY;AACjB,eAAW,MAAM;AACf,WAAK,QAAQ;AAAA,IACf,GAAG,GAAG;AAAA,EACR;AAAA,EACA,aAAa,SAAiB;AAC5B,QAAI,UAAU,GAAG;AACf,aAAO;AAAA,IACT;AACA,QAAI,UAAU,GAAG;AACf,aAAO;AAAA,IACT;AACA,QAAI,UAAU,GAAG;AACf,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AAAA,EACA,MAAM,gBAAgB,KAAyE;AAC7F,UAAM,QAAQ,YAAY,IAAI;AAC9B,QAAI;AACF,YAAM,WAAW,MAAM,MAAM,KAAK;AAAA,QAChC,QAAQ;AAAA,QACR,SAAS;AAAA,UACP,gBAAgB;AAAA,QAClB;AAAA,QACA,MAAM,KAAK,UAAU;AAAA,UACnB,SAAS;AAAA,UACT,QAAQ;AAAA,UACR,QAAQ,CAAC,UAAU,KAAK;AAAA,UACxB,IAAI;AAAA,QACN,CAAC;AAAA,MACH,CAAC;AAED,UAAI,CAAC,SAAS,IAAI;AAChB,cAAM,IAAI,MAAM,sBAAsB,SAAS,MAAM,EAAE;AAAA,MACzD;AACA,YAAM,MAAM,MAAM,SAAS,KAAK;AAChC,cAAQ,IAAI,GAAG;AACf,YAAM,MAAM,YAAY,IAAI;AAC5B,aAAO,EAAE,KAAK,UAAU,OAAO,OAAO,OAAO,cAAe,MAAM,SAAS,KAAO,SAAS,EAAE,UAAU,KAAK,CAAC,CAAC,GAAG,QAAQ,SAAS,IAAI,OAAO,QAAQ,EAAE,EAAE;AAAA,IAC3J,SAAS,OAAO;AACd,cAAQ,MAAM,4BAA4B,KAAK;AAC/C,aAAO,EAAE,KAAK,UAAU,IAAI,QAAQ,GAAG;AAAA,IACzC;AAAA,EACF;AAAA,EACA,UAAU;AAlHZ;AAmHI,eAAK,YAAL,mBAAc,MAAM,QAAQ,OAAK;AAC/B,WAAK,gBAAgB,EAAE,IAAI,EAAE,KAAK,SAAO;AACvC,UAAE,UAAU,IAAI;AAChB,UAAE,SAAS,IAAI;AAAA,MACjB,CAAC;AAAA,IACH;AACA,SAAK,QAAQ,KAAK,KAAK,QAAQ,KAAK;AAAA,EACtC;AAAA,EACA,UAAU,MAAc;AACtB,SAAK,QAAQ,KAAK,KAAK,QAAQ,MAAM,OAAO,OAAK,EAAE,SAAS,IAAI,CAAC;AAAA,EACnE;AAAA,EACA,UAAU,OAAe;AACvB,QAAI,QAAQ,GAAG;AACb,aAAO,oCAAC,QAAK,MAAK,iBAAgB,OAAM,MAAK,QAAO,MAAK,OAAO,EAAE,OAAO,UAAU,GAAG;AAAA,IACxF;AACA,QAAI,QAAQ,GAAG;AACb,aAAO,oCAAC,QAAK,MAAK,6BAA4B,OAAM,MAAK,QAAO,MAAK,OAAO,EAAE,OAAO,UAAU,GAAG;AAAA,IACpG;AACA,QAAI,QAAQ,GAAG;AACb,aAAO,oCAAC,QAAK,MAAK,aAAY,OAAM,MAAK,QAAO,MAAK,OAAO,EAAE,OAAO,UAAU,GAAG;AAAA,IACpF;AACA,WAAO,oCAAC,QAAK,MAAK,iBAAgB,OAAM,MAAK,QAAO,MAAK,OAAO,EAAE,OAAO,UAAU,GAAG;AAAA,EACxF;AAAA,EACA,IAAI,SAAS;AACX,WAAO,UAAU,IAAI,WAAW;AAAA,EAClC;AAAA;AAAA,EAEA,MAAM,gBAAgB;AACpB,YAAQ,IAAI,eAAe;AAC3B,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,MAAM,QAAQ,KAAK;AAClD,YAAM,OAAO,KAAK,QAAQ,MAAM,CAAC;AACjC,YAAM,MAAM,MAAM,KAAK,gBAAgB,KAAK,IAAI;AAChD,UAAI,IAAI,YAAY,MAAM,IAAI,SAAS,GAAG;AACxC,aAAK,OAAO,KAAK,KAAK,IAAI;AAC1B;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,qBAAN,MAA0C;AAAA,EAA1C;AACL,eAAM;AACN,oBAAW;AACX,0BAAiB;AAIjB,SAAQ,UAAU,IAAI,aAAoD,EAAE,OAAO,CAAC,GAAG,KAAK,UAAU,CAAC;AAAA;AAAA,EAHvG,IAAI,QAAqC;AACvC,WAAO,OAAO,MAAM,MAAM;AAAA,EAC5B;AAAA,EAEA,IAAI,cAA8C;AAChD,QAAI,KAAK,UAAU;AACjB,aAAO,KAAK,QAAQ;AAAA,IACtB;AACA,WAAO,CAAC;AAAA,EACV;AAAA,EACA,cAAc,MAAoC;AAChD,QAAI,QAA+C,KAAK,QAAQ,KAAK;AACrE,QAAI,CAAC,OAAO;AACV,cAAQ,CAAC,IAAI;AAAA,IACf,OAAO;AACL,cAAQ,CAAC,GAAG,OAAO,IAAI;AAAA,IACzB;AACA,SAAK,QAAQ,SAAS,KAAK;AAAA,EAC7B;AAAA,EACA,wBAAwB,IAAmB,QAAwC;AACjF,QAAI,QAA+C,KAAK,QAAQ,KAAK;AACrE,QAAI,CAAC,OAAO;AACV;AAAA,IACF;AACA,YAAQ,MAAM,IAAI,CAAC,MAAM;AACvB,UAAI,EAAE,MAAM,IAAI;AACd,UAAE,SAAS;AACX,eAAO;AAAA,MACT;AACA,UAAI,CAAC,IAAI;AACP,UAAE,SAAS;AAAA,MACb;AACA,aAAO;AAAA,IACT,CAAC;AACD,SAAK,QAAQ,SAAS,KAAK;AAAA,EAC7B;AAAA,EACA,eAAe;AACb,SAAK,QAAQ,SAAS,IAAI;AAAA,EAC5B;AACF;;;ACtMO,IAAM,gBAAgB,MAAM;;;ACCnC,IAAM,UAAU,CAAC,QAAwB,IAAI,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG;AAEzE,IAAM,aAAa,CAAC,QAAuB;AACzC,QAAM,MAAM,IAAI,YAAY,OAAO,MAAM,CAAC;AAC1C,SAAO,OAAO,gBAAgB,GAAG;AACjC,SAAO,MAAM,KAAK,KAAK,OAAO,EAAE,KAAK,EAAE;AACzC;AAEA,IAAM,oBAAoB,MAAa;AACrC,MAAI,OAAO,WAAW,aAAa;AACjC,WAAO,WAAW,EAAE;;AAGtB,UAAO,oBAAI,KAAI,GAAG,QAAO,EAAG,SAAS,EAAE;AACzC;;;ACVA,IAAM,mBAAN,MAAsB;;AACb,iBAAA,cAAc,CAA2C,QAAW,WAAmC;AAC5G,QAAM,KAAK,kBAAiB;AAE5B,SAAO;IACL;IACA;IACA;IACA,KAAK;MACH,YAAY,cAAa;;;AAG/B;AAEO,iBAAA,eAAe,CAAC,IAAe,MAAiC,aAAsC;EAC3G;EACA,SAAS;EACT;EACA;;AAGK,iBAAA,oBAAoB,CAAC,IAAe,OAAe,aAAoC;EAC5F;EACA,SAAS;EACT;EACA;;;;AC9BJ,IAAY;CAAZ,SAAYC,UAAO;AACjB,EAAAA,SAAA,kBAAA,IAAA;AACA,EAAAA,SAAA,SAAA,IAAA;AACA,EAAAA,SAAA,cAAA,IAAA;AACA,EAAAA,SAAA,aAAA,IAAA;AACA,EAAAA,SAAA,mBAAA,IAAA;AACA,EAAAA,SAAA,iBAAA,IAAA;AACA,EAAAA,SAAA,aAAA,IAAA;AACA,EAAAA,SAAA,kBAAA,IAAA;AACA,EAAAA,SAAA,oBAAA,IAAA;AACA,EAAAA,SAAA,sBAAA,IAAA;AACA,EAAAA,SAAA,oBAAA,IAAA;AACA,EAAAA,SAAA,uBAAA,IAAA;AACA,EAAAA,SAAA,2BAAA,IAAA;AACF,GAdY,YAAA,UAAO,CAAA,EAAA;AAgBnB,IAAY;CAAZ,SAAYC,oBAAiB;AAC3B,EAAAA,mBAAA,oBAAA,IAAA;AACF,GAFY,sBAAA,oBAAiB,CAAA,EAAA;;;ACT7B,IAAM,0BAAN,MAA6B;EAM3B,YAAY,iBAAkC,MAAM,YAAY,OAAK;AALpD,SAAA,iBAAkC;AAC3C,SAAA,YAAY,oBAAI,IAAG;AACnB,SAAA,YAAY;AACZ,SAAA,WAAW,OAAO,WAAW;AAW7B,SAAA,iBAAiB,CAAC,EAAE,QAAQ,MAAM,OAAM,MAAsC;AACpF,YAAM,mBAAmB,CAAC;AAC1B,YAAM,mBAAmB,CAAC,KAAK,YAAY,WAAW,OAAO;AAC7D,YAAM,qBAAqB,OAAO,KAAK,YAAY,eAAe,SAAS,KAAK,QAAQ,MAAM,GAAG,EAAE,CAAC,CAAC;AACrG,YAAM,oBAAoB,OAAO,uBAAuB,YAAY,sBAAsB;AAC1F,UAAI,cAAc;AAClB,UAAI,MAAM,QAAQ,KAAK,cAAc,GAAG;AACtC,sBAAc,KAAK,eAAe,KAAK,CAAC,WAAW,OAAO,KAAK,MAAM,CAAC,MAAM;;AAG9E,aAAO,CAAC,oBAAoB,oBAAoB,qBAAqB;IACvE;AAEQ,SAAA,qBAAqB,CAAC,QAAoC;AAChE,cAAQ,KAAK,wDAAwD,IAAI,MAAM,MAAM,IAAI,IAAI;IAC/F;AAEQ,SAAA,kBAAkB,CAAC,QAAoC;AAC7D,UAAI,KAAK,eAAe,GAAG,GAAG;AAC5B,aAAK,aAAa,KAAK,mBAAmB,GAAG;AAC7C,aAAK,sBAAsB,IAAI,IAAI;;IAEvC;AAEQ,SAAA,wBAAwB,CAAC,YAAgD;AAC/E,YAAM,EAAE,GAAE,IAAK;AAEf,YAAM,KAAK,KAAK,UAAU,IAAI,EAAE;AAChC,UAAI,IAAI;AACN,WAAG,OAAO;AAEV,aAAK,UAAU,OAAO,EAAE;;IAE5B;AAEO,SAAA,OAAO,CAA0B,QAAW,WAA0C;AAC3F,YAAM,UAAU,iBAAiB,YAAY,QAAQ,MAAM;AAE3D,UAAI,KAAK,UAAU;AACjB,cAAM,IAAI,MAAM,sBAAsB;;AAGxC,aAAO,OAAO,YAAY,SAAS,GAAG;AACtC,aAAO,IAAI,QAAQ,CAAC,SAAS,WAAU;AACrC,aAAK,UAAU,IAAI,QAAQ,IAAI,CAAC,aAAyB;AACvD,cAAI,CAAC,SAAS,SAAS;AACrB,mBAAO,IAAI,MAAM,SAAS,KAAK,CAAC;AAChC;;AAGF,kBAAQ,QAAQ;QAClB,CAAC;MACH,CAAC;IACH;AA7DE,SAAK,iBAAiB;AACtB,SAAK,YAAY;AAEjB,QAAI,CAAC,KAAK,UAAU;AAClB,aAAO,iBAAiB,WAAW,KAAK,eAAe;;EAE3D;;AA0DF,IAAA,wBAAe;;;ACuBR,IAAM,0BAA0B,CAAC,QAAyC;AAC/E,SAAO,OAAO,QAAQ,YAAY,OAAO,QAAQ,YAAY,OAAO,WAAW,OAAO,aAAa;AACrG;;;ACrGA,yCAkCO;;;ACtBP,IAAM,MAAN,MAAS;EAGP,YAAY,cAA0B;AACpC,SAAK,eAAe;EACtB;EAEA,MAAM,gBAAgB,YAAkB;AACtC,QAAI,CAAC,YAAY;AACf,YAAM,IAAI,MAAM,oBAAoB;;AAGtC,UAAM,WAAW,MAAM,KAAK,aAAa,KAIvC,QAAQ,mBAAmB,EAAE,WAAU,CAAE;AAE3C,WAAO,SAAS;EAClB;EAEA,MAAM,YAAY,SAAe;AAC/B,UAAM,iBAAiB;MACrB;;AAGF,UAAM,WAAW,MAAM,KAAK,aAAa,KACvC,QAAQ,aACR,cAAc;AAGhB,WAAO,SAAS;EAClB;EAEA,MAAM,iBAAiB,WAA0B;AAC/C,QAAI,CAAC,wBAAwB,SAAS,GAAG;AACvC,YAAM,IAAI,MAAM,oBAAoB;;AAGtC,UAAM,WAAW,MAAM,KAAK,aAAa,KAIvC,QAAQ,kBAAkB,EAAE,UAAS,CAAE;AAEzC,WAAO,SAAS;EAClB;EAEA,MAAM,KAAK,EAAE,KAAK,OAAM,GAA0B;AAChD,QAAI,CAAC,OAAO,CAAC,IAAI,QAAQ;AACvB,YAAM,IAAI,MAAM,6BAA6B;;AAG/C,UAAM,iBAAiB;MACrB;MACA;;AAGF,UAAM,WAAW,MAAM,KAAK,aAAa,KAIvC,QAAQ,kBAAkB,cAAc;AAE1C,WAAO,SAAS;EAClB;;;;AC/EK,IAAM,YAAY;EACvB,UAAU;EACV,cAAc;EACd,aAAa;EACb,gBAAgB;EAChB,aAAa;EACb,oBAAoB;EACpB,sBAAsB;EACtB,kBAAkB;EAClB,0BAA0B;EAC1B,2BAA2B;EAC3B,yBAAyB;EACzB,iBAAiB;EACjB,kBAAkB;;;;ACOpB,IAAM,kBAA6C;EACjD,mBAAmB,CAAC,MAAM,aAAa;EACvC,yBAAyB,CAAC,MAAM,UAAmB;EACnD,kBAAkB,CAAC,QACjB,OAAO,UAAU,GAAG,IAAI,KAAK,IAAI,SAAS,EAAE,CAAC,KAAM;;AAQvD,IAAM,MAAN,MAAS;EAiBP,YAAY,cAA0B;AACpC,SAAK,eAAe;AACpB,SAAK,OAAO,KAAK,aAAmD;MAClE,MAAM,UAAU;MAChB,YAAY,CAAC,MAAM,gBAAgB,iBAAiB;KACrD;AACD,SAAK,aAAa,KAAK,aAAwC;MAC7D,MAAM,UAAU;MAChB,YAAY,CAAC,MAAM,gBAAgB,iBAAiB;KACrD;AACD,SAAK,UAAU,KAAK,aAAwC;MAC1D,MAAM,UAAU;MAChB,YAAY,CAAC,MAAM,gBAAgB,iBAAiB;KACrD;AACD,SAAK,eAAe,KAAK,aAAgD;MACvE,MAAM,UAAU;MAChB,YAAY,CAAC,MAAM,gBAAgB,kBAAkB,gBAAgB,iBAAiB;KACvF;AACD,SAAK,cAAc,KAAK,aAAuC;MAC7D,MAAM,UAAU;KACjB;AACD,SAAK,iBAAiB,KAAK,aAAkF;MAC3G,MAAM,UAAU;MAChB,YAAY,CAAC,MAAM,gBAAgB,uBAAuB;KAC3D;AACD,SAAK,mBAAmB,KAAK,aAG3B;MACA,MAAM,UAAU;MAChB,YAAY,CAAC,gBAAgB,kBAAkB,gBAAgB,uBAAuB;KACvF;AACD,SAAK,uBAAuB,KAAK,aAA8C;MAC7E,MAAM,UAAU;KACjB;AACD,SAAK,wBAAwB,KAAK,aAAqD;MACrF,MAAM,UAAU;KACjB;AACD,SAAK,sBAAsB,KAAK,aAAwC;MACtE,MAAM,UAAU;MAChB,YAAY,CAAC,MAAM,gBAAgB,iBAAiB;KACrD;AACD,SAAK,cAAc,KAAK,aAA8B;MACpD,MAAM,UAAU;KACjB;AACD,SAAK,iBAAiB,CAAC,gBACrB,KAAK,aAA0C;MAC7C,MAAM,UAAU;KACjB,EAAE,CAAC,WAAW,CAAC;AAClB,SAAK,kBAAkB,KAAK,aAA2C;MACrE,MAAM,UAAU;KACjB;EACH;EAEQ,aAAuC,MAAsB;AACnE,UAAM,EAAE,MAAM,WAAU,IAAK;AAE7B,WAAO,OAAO,WAA0B;AACtC,UAAI,cAAc,MAAM,QAAQ,MAAM,GAAG;AACvC,mBAAW,QAAQ,CAAC,WAAqD,MAAK;AAC5E,cAAI,WAAW;AACb,mBAAO,CAAC,IAAI,UAAU,OAAO,CAAC,CAAC;;QAEnC,CAAC;;AAGH,YAAM,UAAyB;QAC7B;QACA,QAAQ,UAAU,CAAA;;AAGpB,YAAM,WAAW,MAAM,KAAK,aAAa,KAAwC,QAAQ,SAAS,OAAO;AAEzG,aAAO,SAAS;IAClB;EACF;;;;AC5HF,SAAS,oBAA6B,aAAa,qBAAqB;;;ACAxE,IAAM,cAAc;AACpB,IAAM,oBAAoB;;;ACgBnB,IAAM,+BAA+B;AAEtC,IAAO,mBAAP,MAAO,0BAAyB,MAAK;EAIzC,YAAY,SAAiB,MAAc,MAAc;AACvD,UAAM,OAAO;AAEb,SAAK,OAAO;AACZ,SAAK,OAAO;AAIZ,WAAO,eAAe,MAAM,kBAAiB,SAAS;EACxD;;;;AC5BF,IAAM,SAAN,MAAY;EAGV,YAAY,cAA0B;AACpC,SAAK,eAAe;EACtB;EAEA,MAAM,iBAAc;AAClB,UAAM,WAAW,MAAM,KAAK,aAAa,KACvC,QAAQ,uBACR,MAAS;AAGX,WAAO,SAAS;EAClB;EAEA,MAAM,mBAAmB,aAAgC;AACvD,QAAI,CAAC,KAAK,yBAAyB,WAAW,GAAG;AAC/C,YAAM,IAAI,iBAAiB,kCAAkC,4BAA4B;;AAG3F,QAAI;AACF,YAAM,WAAW,MAAM,KAAK,aAAa,KAIvC,QAAQ,2BAA2B,WAAW;AAEhD,aAAO,SAAS;aACV;AACN,YAAM,IAAI,iBAAiB,wBAAwB,4BAA4B;;EAEnF;EAEA,yBAAyB,aAAgC;AACvD,WAAO,YAAY,MAAM,CAAC,OAAyB;AACjD,UAAI,OAAO,OAAO,UAAU;AAC1B,eAAO,OAAO,KAAK,EAAE,EAAE,MAAM,CAAC,WAAU;AACtC,cAAI,OAAO,OAAO,iBAAiB,EAAE,SAAS,MAA2B,GAAG;AAC1E,mBAAO;;AAGT,iBAAO;QACT,CAAC;;AAGH,aAAO;IACT,CAAC;EACH;;;;AC9CF,IAAM,gBAAgB,CAAC,UAAmB,gBACxC,YAAY,KAAK,CAAC,eAAe,WAAW,qBAAqB,QAAQ;AAE3E,IAAM,oBAAoB,MAAM,CAAC,GAAY,aAAqB,eAAkC;AAClG,QAAM,iBAAiB,WAAW;AAElC,aAAW,QAAQ,iBAAK;AAEtB,UAAM,SAAS,IAAI,OAAQ,KAAc,YAAY;AAErD,QAAI,qBAAqB,MAAM,OAAO,eAAc;AAEpD,QAAI,CAAC,cAAc,aAAwB,kBAAkB,GAAG;AAC9D,2BAAqB,MAAM,OAAO,mBAAmB,CAAC,EAAE,CAAC,WAAsB,GAAG,CAAA,EAAE,CAAE,CAAC;;AAGzF,QAAI,CAAC,cAAc,aAAwB,kBAAkB,GAAG;AAC9D,YAAM,IAAI,iBAAiB,wBAAwB,4BAA4B;;AAGjF,WAAO,eAAe,MAAM,IAAI;EAClC;AAEA,SAAO;AACT;AAEA,IAAA,6BAAe;;;;;;;;;;;;;AJbf,IAAM,OAAN,MAAU;EAGR,YAAY,cAA0B;AACpC,SAAK,eAAe;EACtB;EAEA,MAAM,eAAY;AAChB,UAAM,WAAW,MAAM,KAAK,aAAa,KACvC,QAAQ,cACR,MAAS;AAGX,WAAO,SAAS;EAClB;EAEA,MAAM,UAAO;AACX,UAAM,WAAW,MAAM,KAAK,aAAa,KACvC,QAAQ,aACR,MAAS;AAGX,WAAO,SAAS;EAClB;;EAGA,MAAM,yBAAyB,EAAE,WAAW,MAAK,IAAuB,CAAA,GAAE;AACxE,UAAM,WAAW,MAAM,KAAK,aAAa,KACvC,QAAQ,iBACR;MACE;KACD;AAGH,WAAO,SAAS;EAClB;EAEQ,MAAM,mBAAmB,aAAqB,YAAY,MAAI;AACpE,UAAM,WAAW,MAAM,KAAK,QAAO;AAEnC,UAAM,8BAA8B,mBAAmB;MACrD,KAAK;QACH;UACE,UAAU;UACV,QAAQ;YACN;cACE,MAAM;cACN,MAAM;;YAER;cACE,MAAM;cACN,MAAM;;;UAGV,MAAM;UACN,SAAS;YACP;cACE,MAAM;cACN,MAAM;;;UAGV,SAAS;UACT,iBAAiB;UACjB,MAAM;;;MAGV,cAAc;MACd,MAAM,CAAC,aAAwB,SAAoB;KACpD;AAED,UAAM,UAAU;MACd,MAAM,UAAU;MAChB,QAAQ;QACN;UACE,IAAI,SAAS;UACb,MAAM;;QAER;;;AAGJ,QAAI;AACF,YAAM,WAAW,MAAM,KAAK,aAAa,KACvC,QAAQ,SACR,OAAO;AAGT,aAAO,SAAS,KAAK,MAAM,GAAG,EAAE,EAAE,YAAW,MAAO;aAC7C,KAAK;AACZ,aAAO;;EAEX;EAEQ,MAAM,wBAAwB,aAAqB,YAAY,MAAI;AACzE,UAAM,WAAW,MAAM,KAAK,QAAO;AAEnC,UAAM,8BAA8B,mBAAmB;MACrD,KAAK;QACH;UACE,UAAU;UACV,QAAQ;YACN;cACE,MAAM;cACN,MAAM;;YAER;cACE,MAAM;cACN,MAAM;;;UAGV,MAAM;UACN,SAAS;YACP;cACE,MAAM;cACN,MAAM;;;UAGV,SAAS;UACT,iBAAiB;UACjB,MAAM;;;MAGV,cAAc;MACd,MAAM,CAAC,aAAwB,SAAoB;KACpD;AAED,UAAM,UAAU;MACd,MAAM,UAAU;MAChB,QAAQ;QACN;UACE,IAAI,SAAS;UACb,MAAM;;QAER;;;AAIJ,QAAI;AACF,YAAM,WAAW,MAAM,KAAK,aAAa,KACvC,QAAQ,SACR,OAAO;AAGT,aAAO,SAAS,KAAK,MAAM,GAAG,EAAE,EAAE,YAAW,MAAO;aAC7C,KAAK;AACZ,aAAO;;EAEX;EAEA,qBAAqB,SAAe;AAClC,WAAO,YAAY,OAAO;EAC5B;EAEA,0BAA0B,cAA6B;AACrD,UAAM,UACJ,OAAO,aAAa,OAAO,YAAY,WACnC,aAAa,OAAO,QAAQ,SAAQ,IACpC,OAAO,aAAa,OAAO,OAAO;AAExC,QAAI,cAAc,aAAa;AAC/B,QAAI,CAAC,aAAa;AAChB,YAAM,SAAS,OAAO,OAAO,aAAa,KAAK;AAE/C,YAAM,eAAe,OAAO,KAAK,aAAa,KAAK,EAAE,OAAO,CAAC,aAC3D,OAAO,MAAM,CAAC,cAAc,UAAU,MAAM,CAAC,EAAE,KAAI,MAAO,KAAK,QAAQ,KAAK,EAAE,EAAE,QAAQ,KAAK,EAAE,MAAM,QAAQ,CAAC,CAAC;AAEjH,UAAI,aAAa,WAAW,KAAK,aAAa,SAAS;AAAG,cAAM,IAAI,MAAM,4BAA4B;AACtG,oBAAc,aAAa,CAAC;;AAG9B,WAAO,cAAc;MACnB,SAAS,aAAa;MACtB,QAAQ,iCACH,aAAa,SADV;QAEN;QACA,mBAAmB,aAAa,OAAO;QACvC,MAAM,aAAa,OAAO;;MAE5B,OAAO,aAAa;MACpB;KACD;EACH;EAEA,MAAM,qBAAqB,aAAmB;AAC5C,UAAM,WAAW,MAAM,KAAK,aAAa,KACvC,QAAQ,sBACR,WAAW;AAGb,WAAO,SAAS;EAClB;EAEA,MAAM,gBAAgB,SAAmC,YAAY,MAAI;AACvE,QAAI;AACJ,QAAI,OAAO,YAAY,UAAU;AAC/B,cAAQ,YAA6B;AACnC,cAAM,cAAc,KAAK,qBAAqB,OAAO;AACrD,cAAM,oBAAoB,MAAM,KAAK,oBAAoB,aAAa,SAAS;AAC/E,eAAO;MACT;;AAGF,QAAI,wBAAwB,OAAO,GAAG;AACpC,cAAQ,YAA6B;AACnC,cAAM,cAAc,KAAK,0BAA0B,OAAO;AAC1D,cAAM,oBAAoB,MAAM,KAAK,oBAAoB,aAAa,SAAS;AAC/E,eAAO;MACT;;AAEF,QAAI,OAAO;AACT,YAAM,UAAU,MAAM,MAAK;AAE3B,aAAO;;AAGT,UAAM,IAAI,MAAM,sBAAsB;EACxC;EAEA,MAAM,oBAAoB,aAAqB,YAAY,MAAI;AAC7D,UAAM,SAAS,CAAC,KAAK,mBAAmB,KAAK,IAAI,GAAG,KAAK,wBAAwB,KAAK,IAAI,CAAC;AAE3F,eAAW,SAAS,QAAQ;AAC1B,YAAM,UAAU,MAAM,MAAM,aAAa,SAAS;AAClD,UAAI,SAAS;AACX,eAAO;;;AAIX,WAAO;EACT;EAEA,MAAM,qBAAkB;AACtB,UAAM,WAAW,MAAM,KAAK,aAAa,KACvC,QAAQ,oBACR,MAAS;AAGX,WAAO,SAAS;EAClB;EAGA,MAAM,qBAAkB;AACtB,UAAM,WAAW,MAAM,KAAK,aAAa,KACvC,QAAQ,oBACR,MAAS;AAGX,WAAO,SAAS;EAClB;;AAPM,WAAA;EADL,2BAAiB;;;;AKtPpB,IAAM,cAAN,MAAiB;EAOf,YAAY,OAAa,CAAA,GAAE;AACzB,UAAM,EAAE,iBAAiB,MAAM,QAAQ,MAAK,IAAK;AAEjD,SAAK,eAAe,IAAI,sBAAsB,gBAAgB,KAAK;AACnE,SAAK,MAAM,IAAI,IAAI,KAAK,YAAY;AACpC,SAAK,MAAM,IAAI,IAAI,KAAK,YAAY;AACpC,SAAK,OAAO,IAAI,KAAK,KAAK,YAAY;AACtC,SAAK,SAAS,IAAI,OAAO,KAAK,YAAY;EAC5C;;AAGF,IAAA,cAAe;;;AC5Bf,IAAA,cAAe;;;ACFf,SAAS,QAAAC,aAAY;AACrB,SAAS,gBAAgB;AACzB,OAAON,YAAW;AAQlB,IAAM,kBAAkB,SAAS,CAAC,UAAkB;AAClD,SAAO,gBAAAA,OAAA,cAAC,SAAI,WAAU,0BACpB,gBAAAA,OAAA,cAAC,SAAI,WAAU,6CACb,gBAAAA,OAAA,cAACM,OAAA,EAAK,MAAK,6BAA4B,OAAM,MAAK,QAAO,MAAK,WAAU,kBAAiB,CAAE,GAC7F,gBAAAN,OAAA,cAAC,SAAI,WAAU,0CAAwC,MAAM,GAAI,GACjE,gBAAAA,OAAA;AAAA,IAAC;AAAA;AAAA,MAAI,WAAU;AAAA,MACb,SAAS,OAAK,OAAO,KAAK,2BAA2B,MAAM,IAAI,IAAI,QAAQ;AAAA;AAAA,IAAG;AAAA,IAAkB,gBAAAA,OAAA,cAACM,OAAA,EAAK,MAAK,4CAA2C,OAAM,MAAK,QAAO,MAAK;AAAA,EAAE,CACnL;AACF,CAAC;AACM,IAAM,sBAAsB,CAAC,EAAE,KAAK,KAAK,MAAM;AACpD,YAAU,IAAI,WAAW,EAAE,QAAQ;AAAA,IACjC,OAAO;AAAA,IACP,SAAS,gBAAAN,OAAA,cAAC,mBAAgB,KAAU,MAAY;AAAA,IAChD,QAAQ;AAAA,EACV,CAAC;AACH;;;ACzBA,SAAyC,wBAA6C;AACtF,SAAS,qBAAqB,gBAAgB,aAAa,WAAW,qBAAqB;AAIpF,IAAM,oBAAN,MAAyC;AAAA,EAe9C,YAAY,MAAkC;AAd9C,eAAM;AACN,0BAAiB;AAEjB,mBAAU;AACV,qBAAY;AAGZ,0BAAiB;AACjB,wBAAe;AACf,4BAAmB;AACnB,qBAAY;AAEZ;AAAA,0BAAiB;AAGf,WAAO,OAAO,MAAM,IAAI;AAAA,EAC1B;AAAA,EAEA,IAAI,QAAoC;AACtC,WAAO,OAAO,MAAM,MAAM;AAC1B,SAAK,gBAAgB;AAAA,EACvB;AAAA,EAEA,IAAI,mBAAmB;AACrB,QAAI,CAAC,KAAK;AACR,aAAO;AAET,QAAI,CAAC,KAAK,aAAa,KAAK,oBAAoB,GAAG;AACjD,aAAO;AAAA,IACT;AACA,QAAI,CAAC,KAAK,aAAa,KAAK,oBAAoB,GAAG;AACjD,aAAO;AAAA,IACT;AACA,QAAI,KAAK,WAAW;AAClB,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,IAAI,mBAAmB;AA5CzB;AA6CI,WAAO,WAAW,IAAI,qBAAoB,UAAK,oBAAL,mBAAsB,IAAI,OAAK,EAAE,IAAI,KAAK,IAAI,IAAI,MAAM;AAChG,aAAO,iBAAiB;AAAA,QACtB,SAAS,KAAK;AAAA,QACd,WAAW,KAAK;AAAA;AAAA,QAEhB,QAAQ,KAAK;AAAA,QACb,SAAS;AAAA,UAAC;AAAA,YACR,WAAW;AAAA,YACX,SAAS,CAAC,aAAa,cAAc;AAAA,UACvC;AAAA,UACA;AAAA,YACE,WAAW;AAAA,YACX,SAAS,CAAC,gBAAgB,qBAAqB,aAAa,WAAW,aAAa;AAAA,UACtF;AAAA,QAAC;AAAA,MACH,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF;;;ApBzCO,IAAM,cAAN,MAAM,aAA6B;AAAA,EAiDxC,YAAY,MAA6B;AAhDzC,eAAM;AACN,0BAAiB;AACjB,mBAAyB;AACzB,+BAAsB;AACtB,uBAAc;AACd,qBAAY;AAEZ,iBAAQ,IAAI,aAAa;AAEzB,wBAAe;AACf,uBAA2B;AA0B3B,mBAAU,YAAY,KAAK;AAAA,MACzB,MAAM,YAAY;AA3DtB;AA4DM,YAAI,CAAC,KAAK,gBAAgB,CAAC,KAAK;AAAS,iBAAO,OAAO,OAAO,cAAc,GAAG;AAC/E,cAAM,UAAU,MAAM,KAAK,aAAa,WAAW;AAAA,UACjD,SAAS,KAAK;AAAA,QAChB,CAAC;AACD,YAAI,SAAS;AACX,iBAAO,OAAO,OAAO,eAAc,wCAAS,eAAT,YAAuB,GAAG;AAAA,QAC/D;AAAA,MACF;AAAA,IACF,CAAC;AAGC,WAAO,OAAO,MAAM,IAAI;AAAA,EAC1B;AAAA,EAvCA,IAAI,eAAwB;AAC1B,QAAI,KAAK,SAAS,KAAK,MAAM,MAAM,MAAM;AACvC,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AAAA,EACA,eAAe,MAAmB;AAChC,SAAK,cAAc;AACnB,iBAAa,QAAQ,eAAe,IAAI;AAAA,EAC1C;AAAA,EACA,IAAI,gBAAgB;AAClB,WAAO,KAAK,UAAU,OAAO,QAAQ,eAAe,KAAK,aAAa,KAAK,OAAO,IAAI;AAAA,EACxF;AAAA,EACA,IAAI,+BAA+B;AACjC,WAAO,KAAK,UAAU,OAAO,OAAO,SAAS,OAAO,QAAQ,eAAe,KAAK,aAAa,KAAK,OAAO,GAAG,IAAI,KAAK,IAAI;AAAA,EAC3H;AAAA,EACA,IAAI,wBAAwB;AAC1B,WAAO,KAAK,UAAU,OAAO,OAAO,SAAS,OAAO,QAAQ,eAAe,KAAK,aAAa,KAAK,OAAO,GAAG,IAAI,KAAK,IAAI;AAAA,EAC3H;AAAA,EACA,IAAI,kBAAkB;AACpB,WAAO,UAAU,IAAI,iBAAiB,EAAE;AAAA,EAC1C;AAAA,EAoBA,IAAI,QAAc;AAChB,UAAM,EAAE,MAAM,cAAc,UAAU,IAAI,gBAAgB;AAC1D,UAAM,EAAE,OAAO,SAAS,YAAY,IAAI,WAAW;AAEnD,UAAM,EAAE,YAAY,IAAI,eAAe;AACvC,UAAM,EAAE,iBAAiB,IAAIG,iBAAgB;AAC7C,UAAM,EAAE,QAAQ,IAAI,WAAW;AAC/B,UAAM,EAAE,WAAW,IAAI,cAAc;AACrC,UAAM,oBAAoB,UAAU,IAAI,iBAAiB;AACzD,SAAK,IAAI;AAAA;AAAA,MAEP;AAAA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAED,cAAU,MAAM;AACd,gBAAU,IAAI,kBAAkB,EAAE,IAAI,EAAE,UAAU,KAAK,CAAC;AACxD,WAAK,IAAI;AAAA,QACP,WAAW;AAAA,QACX,SAAS;AAAA;AAAA,QAET;AAAA,MACF,CAAC;AACD,wBAAkB,IAAI;AAAA,QACpB,WAAW;AAAA,MACb,CAAC;AACD,UAAI,KAAK,SAAS;AAChB,aAAK;AACL,0BAAkB,IAAI;AAAA,UACpB,kBAAkB,KAAK;AAAA,QACzB,CAAC;AACD,aAAK,MAAM,KAAK,qBAAqB;AAAA,MACvC;AAAA,IACF,GAAG,CAAC,SAAS,aAAa,KAAK,CAAC;AAIhC,cAAU,MAAM;AACd,iBAAW,MAAM;AACf,aAAK,QAAQ,KAAK;AAAA,MACpB,GAAG,IAAI;AAAA,IACT,GAAG,CAAC,KAAK,YAAY,CAAC;AAAA,EACxB;AAAA;AAAA,EAGA,IAAI,eAA6D;AAC/D,QAAI,KAAK,SAAS,KAAK,gBAAgB,KAAK,OAAK,EAAE,OAAO,KAAK,MAAM,EAAE,GAAG;AACxE,UAAI,KAAK,MAAM,MAAM,MAAM;AACzB,eAAO,KAAK,UAAU,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,UAAU,IAAI,cAAc,EAAE,OAAO,KAAK,EAAE,EAAE,GAAG,WAAW,KAAK,CAAC;AAAA,MACjI;AACA,aAAO,KAAK,UAAU,KAAK,MAAM,GAAG,SAAS,CAAC;AAAA,IAChD,OAAO;AACL,aAAO,KAAK,UAAU,MAAM;AAAA,IAC9B;AAAA,EACF;AAAA,EAEA,IAAI,MAA4B;AAC9B,WAAO,OAAO,MAAM,IAAI;AAAA,EAC1B;AAAA,EAEA,SAAS;AACP,UAAM,EAAE,QAAQ,IAAI;AACpB,WAAO,EAAE,QAAQ;AAAA,EACnB;AAAA,EAEA,MAAM,QAAQ,SAAwC;AACpD,WAAO,IAAI,QAAqB,OAAO,KAAK,QAAQ;AAhJxD;AAiJM,UAAI;AACF,YAAI,KAAK,SAAS;AAChB,cAAI,CAAC,SAAS;AACZ,gBAAI,IAAI;AAAA,UACV;AACA,cAAI,QAAO,UAAK,UAAL,mBAAY,EAAE,KAAK,OAAO,OAAO,GAAG;AAC7C,oBAAQ,IAAI,iBAAiB;AAC7B,gBAAI,IAAI;AAAA,UACV;AACA,qBAAK,gBAAL,8BAAmB,EAAE,SAAS,4BAAW,KAAK;AAC9C,gBAAM,WAAW,YAAY,MAAM;AA3J7C,gBAAAI;AA4JY,gBAAI,KAAK,aAAa;AACpB,oBAAIA,MAAA,KAAK,UAAL,gBAAAA,IAAY,OAAM,SAAS;AAC7B,oBAAI;AAIF,sBAAI,IAAI;AAAA,gBACV,SAAS,OAAO;AAAA,gBAChB;AACA,8BAAc,QAAQ;AAAA,cACxB;AAAA,YACF;AAAA,UACF,GAAG,GAAI;AAAA,QACT,OAAO;AACL,eAAK,iBAAiB;AAEtB,gBAAM,WAAW,YAAY,MAAM;AACjC,gBAAI,KAAK,SAAS;AAChB,4BAAc,QAAQ;AACtB,kBAAI,IAAI;AAAA,YACV;AAAA,UACF,GAAG,GAAI;AAAA,QACT;AAAA,MACF,SAAS,OAAO;AACd,YAAI,KAAK;AAAA,MACX;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAGA,MAAM,0BAA0B,EAAE,KAAK,GAAG;AAExC,QAAI,KAAK,aAAa;AAEpB,YAAM,MAAM,IAAI,YAAY;AAC5B,aAAO,MAAM;AACX,cAAM,SAAS,MAAM,IAAI,IAAI,gBAAgB,IAAI;AACjD,YAAI,OAAO,aAAa,qDAAkB,0BAA0B,OAAO,aAAa,qDAAkB,sBAAsB,OAAO,aAAa,qDAAkB,WAAW;AAC/K,gBAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,GAAI,CAAC;AAAA,QAC1D,OAAO;AACL,iBAAO,KAAK,aAAa,0BAA0B,EAAE,MAAM,OAAO,OAAyB,CAAC;AAAA,QAC9F;AAAA,MACF;AAAA,IACF,OAAO;AACL,aAAO,KAAK,aAAa,0BAA0B,EAAE,KAAK,CAAC;AAAA,IAC7D;AAAA,EACF;AAAA,EAEA,aAAa,UAAU,MAAyC;AAC9D,WAAO,UAAU,IAAI,YAAW,EAAE,OAAO,GAAG,IAAI;AAAA,EAClD;AAAA,EACA,aAAa,aAAa,MAA4C;AACpE,WAAO,UAAU,IAAI,YAAW,EAAE,UAAU,GAAG,IAAI;AAAA,EACrD;AAAA,EACA,MAAM,OAAO;AAAA,IACX;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,oBAAoB;AAAA,EACtB,GASG;AApOL;AAqOI,UAAM,QAAQ,UAAU,IAAI,WAAW;AACvC,QAAI;AACJ,UAAM,eAAe,UAAU,IAAI,kBAAkB;AACrD,QAAI;AACF,UAAI;AAAa,cAAM,QAAQ,WAAW;AAC1C,UAAI,CAAC;AAAS,cAAM,IAAI,MAAM,oCAAoC;AAClE,YAAM,UAAU,IAAI,YAAW,EAAE,QAAQ,OAAO,OAAO,CAAC;AACxD,aAAO,MAAM,GAAG;AAChB,UAAI,aAAa;AACf,qBAAa,cAAc,iCAAK,cAAL,EAAkB,IAAI,MAAM,WAAW,KAAK,IAAI,GAAG,QAAQ,WAAW,SAAS,OAAO,OAAO,EAAE,EAAC;AAAA,MAC7H;AACA,YAAM,UAAU,MAAM,KAAK,0BAA0B,EAAE,KAAK,CAAC;AAC7D,UAAI,QAAQ,UAAU,WAAW;AAC/B,cAAM,QAAQ;AACd,cAAM,QAAQ,gCAAgC;AAC9C,YAAI,aAAa;AACf,cAAI,mBAAmB;AACrB,gCAAoB,EAAE,KAAK,YAAY,KAAK,KAAW,CAAC;AAAA,UAC1D;AACA,uBAAa,wBAAwB,MAAM,SAAS;AAAA,QACtD;AAAA,MACF,OAAO;AACL,cAAM,QAAQ;AACd,cAAM,MAAM,wBAAwB;AACpC,qBAAa,wBAAwB,MAAM,MAAM;AAAA,MACnD;AACA,UAAI;AAAa,cAAM,QAAQ,WAAW;AAC1C,WAAK;AACL,aAAO;AAAA,IACT,SAAS,OAAO;AACd,cAAQ,IAAI,KAAK;AACjB,YAAM,QAAQ;AACd,UAAI,WAAW;AACb,cAAM,MAAM,4BAA4B,KAAK,+BAAO,OAAO;AAC3D,gBAAQ,IAAI,UAAU,+BAAO,OAAO;AACpC,cAAI,oCAAO,YAAP,mBAAgB,SAAS,iCAAgC,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,eAAe,KAAK,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,aAAa,GAAG;AACzK,gBAAM,MAAM,2BAA2B;AACvC,6CAAU;AACV;AAAA,QACF;AACA,cAAI,oCAAO,YAAP,mBAAgB,SAAS,6DAA0D,oCAAO,YAAP,mBAAgB,SAAS,wBAAuB;AACrI,cAAI,aAAa;AACf,yBAAa,wBAAwB,MAAM,SAAS;AAAA,UACtD;AACA,gBAAM,QAAQ,gCAAgC;AAC9C;AAAA,QACF;AAEA,YAAI,KAAK;AACP,gBAAM,MAAM,GAAwB;AACpC,6CAAU;AAAA,QACZ,OAAO;AACL,cAAI,+BAAO,QAAQ,SAAS,SAAS;AACnC,kBAAM,aAAa,+BAAO,QAAQ,MAAM;AACxC,oBAAQ,IAAI,iBAAiB,UAAU;AACvC,gBAAI,WAAW,SAAS,GAAG;AACzB,oBAAM,MAAM,WAAW,CAAC,CAAC;AACzB,iDAAU,WAAW,CAAC;AAAA,YACxB;AAAA,UACF,OAAO;AACL,kBAAM,MAAM,QAAO,+BAAO,YAAW,KAAK,CAAC;AAC3C,+CAAU,QAAO,+BAAO,YAAW,KAAK;AAAA,UAC1C;AAAA,QACF;AAAA,MACF,OAAO;AACL,cAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAAA,EACA,MAAM,UAAU;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,oBAAoB;AAAA,EACtB,GAc4C;AApU9C;AAqUI,cAAU,OAAO,OAAO;AACxB,UAAM,QAAQ,UAAU,IAAI,WAAW;AACvC,QAAI;AACF,UAAI,CAAC,WAAW,CAAC;AAAS,cAAM,IAAI,MAAM,+BAA+B;AACzE,YAAM,UAAU,IAAI,YAAW,EAAE,QAAQ,OAAO;AAChD,UAAI;AAAa,cAAM,QAAQ,WAAW;AAC1C,YAAM,eAAe,UAAU,IAAI,kBAAkB;AAErD,YAAM,OAAO,MAAM,KAAK,aAAa,gBAAgB;AAAA,QACnD,SAAS,KAAK;AAAA,QACd,IAAI;AAAA,QACJ;AAAA,QACA,OAAO,QAAQ,OAAO,KAAK,IAAI;AAAA,MACjC,CAAC;AAED,UAAI,UAAU,MAAM,KAAK,0BAA0B,EAAE,KAAK,CAAC;AAC3D,cAAQ,IAAI,OAAO;AACnB,UAAI,aAAa;AACf,qBAAa,cAAc,iCAAK,cAAL,EAAkB,IAAI,QAAQ,iBAAiB,WAAW,KAAK,IAAI,GAAG,QAAQ,WAAW,SAAS,OAAO,OAAO,EAAE,EAAC;AAAA,MAChJ;AACA,iBAAW,SAAS,EAAE,KAAK,QAAQ,CAAC,IAAI;AACxC,UAAI,QAAQ,UAAU,WAAW;AAC/B,YAAI,aAAa;AACf,cAAI,mBAAmB;AACrB,gCAAoB,EAAE,KAAK,YAAY,KAAK,KAAW,CAAC;AAAA,UAC1D;AACA,uBAAa,wBAAwB,QAAQ,iBAAiB,SAAS;AAAA,QACzE;AACA,qBAAa,UAAU,EAAE,KAAK,QAAQ,CAAC;AACvC,cAAM,QAAQ;AACd,cAAM,QAAQ,gCAAgC;AAAA,MAChD,OAAO;AACL,YAAI,aAAa;AACf,uBAAa,wBAAwB,QAAQ,iBAAiB,MAAM;AAAA,QACtE;AACA,mBAAW,QAAQ,EAAE,KAAK,QAAQ,CAAC;AACnC,cAAM,QAAQ;AACd,cAAM,MAAM,wBAAwB;AAAA,MACtC;AACA,aAAO;AAAA,IACT,SAAS,OAAO;AACd,YAAM,QAAQ;AACd,cAAQ,IAAI,MAAM,OAAO;AACzB,YAAM,MAAM,4BAA4B,KAAK,+BAAO,OAAO;AAE3D,YAAI,oCAAO,YAAP,mBAAgB,SAAS,mCAAgC,oCAAO,YAAP,mBAAgB,SAAS,cAAa,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,eAAe,KAAK,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,aAAa,GAAG;AAC/M,qBAAa,MAAM,MAAM,2BAA2B;AACpD;AAAA,MACF;AACA,WAAI,oCAAO,YAAP,mBAAgB,SAAS,yBAAyB;AACpD,qBAAa,MAAM,MAAM,sGAAsG;AAC/H;AAAA,MACF;AACA,UAAI,+BAAO,QAAQ,SAAS,SAAS;AACnC,cAAM,aAAa,+BAAO,QAAQ,MAAM;AACxC,gBAAQ,IAAI,iBAAiB,UAAU;AACvC,YAAI,WAAW,SAAS,GAAG;AACzB,gBAAM,MAAM,WAAW,CAAC,CAAC;AACzB,6CAAU,WAAW,CAAC;AACtB;AAAA,QACF;AAAA,MACF;AAEA,UAAI,KAAK;AACP,qBAAa,MAAM,MAAM,GAAwB;AAAA,MACnD,OAAO;AACL,qBAAa,MAAM,MAAM,OAAO,MAAM,OAAO,CAAC;AAAA,MAChD;AACA,UAAI,CAAC,WAAW;AACd,cAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACF;;;ADvYA,SAAS,gBAAgB;;;AsBPzB,SAAS,SAAS,QAAQ,gBAAgB,qBAAiC;AAwBpE,IAAM,QAAQ;AAAA,EACnB,SAAS;AAAA,GACN;AAEE,IAAM,eAAe;AAAA,EAC1B,SAAS;AAAA,GACN;;;AtBlBL,IAAM,cAAc,IAAI,YAAY;AAC7B,IAAM,iBAAkB,CAAC;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,iBAAiB;AAAA,EACjB;AACF,MAOM;AAEJ,QAAM,eAAe,UAAU,IAAI,mBAAmB,EAAE,MAAM,EAAE,iBAAiB,4CAAmB,CAAC,KAAK,EAAE,EAAE,CAAC;AAE/G,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAS,aAAa,gBAAgB;AAElE,EAAAN,WAAU,MAAM;AACd,UAAM,WAAW;AAAA,MACf,MAAM,aAAa;AAAA,MACnB,MAAM;AACJ,kBAAU,aAAa,gBAAgB;AAAA,MACzC;AAAA,IACF;AACA,WAAO,MAAM;AACX,eAAS;AAAA,IACX;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,EAAAA,WAAU,MAAM;AACd,QAAI,SAAS;AACX,mBAAa,UAAU;AAAA,IACzB;AACA,QAAI,kBAAkB,QAAW;AAC/B,mBAAa,iBAAiB;AAAA,IAChC;AAAA,EACF,GAAG,CAAC,SAAS,cAAc,CAAC;AAC5B;AAAA;AAAA,IAEE,gBAAAD,OAAA,cAAC,iBAAc,QAAgB,kBAAkB,iBAAiB,QAAQ,QACxE,gBAAAA,OAAA,cAAC,uBAAoB,QAAQ,eAC3B,gBAAAA,OAAA,cAAC,sBAAmB,QAAO,MAAK,OAAO,SAAS,SAAS,UAAU,IAAI,WAAW,KAE/E,UACD,gBAAAA,OAAA,cAAC,iBAAc,gBAAgC,QAAgB,CACjE,CACF,CACF;AAAA;AAEJ;AAEO,IAAM,gBAAgB,CAAC,EAAE,iBAAiB,MAAM,OAAO,MAAM;AAClE,QAAM,MAAME,cAAa;AACzB,QAAM,SAAS,UAAU,IAAI,WAAW;AACxC,SAAO,IAAI;AAEX,MAAI,UAAU,gBAAgB;AAC5B,IAAAD,WAAU,MAAM;AACd,UAAI,CAAC,OAAO,SAAS;AACnB,YAAI,eAAe;AAAA,MACrB;AAAA,IACF,GAAG,CAAC,MAAM,CAAC;AAAA,EACb;AAEA,SAAO,gBAAAD,OAAA,cAAAA,OAAA,cAAE;AACX;;;AuBjFA,SAAS,QAAAM,aAAY;AACrB,SAAS,QAAQ,UAAgB,OAA6B,SAAS,gBAAgB,gBAAmC,OAAO,WAAW,WAAW,aAAa,aAAa,UAAU,eAAe;AAC1M,SAAS,YAAAE,iBAAoC;AAC7C,OAAOR,YAAW;AAClB,SAAS,aAAAC,kBAAiB;AAO1B,IAAM,UAAUO,UAAS,MAAM;AAX/B;AAYE,QAAM,SAAS,UAAU,IAAI,WAAW;AACxC,QAAM,WAAW,UAAU,IAAI,cAAc;AAC7C,EAAAP,WAAU,MAAM;AACd,aAAS,QAAQ;AAAA,EACnB,GAAG,CAAC,CAAC;AAEL,SACE,gBAAAD,OAAA,cAAC,SAAI,WAAU,eACb,gBAAAA,OAAA,cAAC,SAAI,WAAU,2BACb,gBAAAA,OAAA,cAAC,SAAI,WAAU,4CACb,gBAAAA,OAAA,cAAC,YAAS,MAAK,MAAK,YAAY,SAAS,gBAAgB,OAAO,eAAe,OAAK,SAAS,gBAAgB,KAAK,CAAC,KAAG,iBAAe,GACrI,gBAAAA,OAAA,cAAC,WAAQ,SAAS,gBAAAA,OAAA,cAAC,SAAI,WAAU,eAAY,yGAAuG,KAClJ,gBAAAA,OAAA,cAACM,OAAA,EAAK,MAAK,eAAc,OAAM,MAAK,QAAO,MAAK,WAAU,iBAAgB,CAC5E,CACF,GAEA,gBAAAN,OAAA,cAAC,UAAO,cAAc,gBAAAA,OAAA,cAACM,OAAA,EAAK,MAAK,oBAAmB,OAAM,MAAK,QAAO,MAAK,GAAI,WAAU,WAAU,SAAS,OAAK;AAC/G,aAAS,QAAQ;AAAA,EACnB,KAAG,MAAI,GACP,gBAAAN,OAAA,cAAC,WAAQ,WAAU,UAAS,QAAQ,IAAI,WAAS,MAAC,QAAQ,SAAS,eAAe,cAAc,CAAC,SAAS,SAAS,gBAAiB,QAClI,gBAAAA,OAAA,cAAC,sBACC,gBAAAA,OAAA,cAAC,UAAO,OAAM,WAAU,cAAc,gBAAAA,OAAA,cAACM,OAAA,EAAK,MAAK,mBAAkB,OAAM,MAAK,QAAO,MAAK,GAAI,WAAU,UAAO,gBAAc,CAC/H,GACA,gBAAAN,OAAA,cAAC,sBACC,gBAAAA,OAAA,cAAC,SAAI,WAAU,eACb,gBAAAA,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,WAAU;AAAA,MACV,aAAY;AAAA,MACZ,OAAO,SAAS;AAAA,MAChB,eAAe,CAAC,UAAU;AACxB,iBAAS,YAAY;AAAA,MACvB;AAAA;AAAA,EACF,GACA,gBAAAA,OAAA,cAAC,UAAO,OAAM,WAAU,YAAY,CAAC,SAAS,WAAW,SAAS,OAAK,SAAS,aAAa,KAAG,MAAI,CACtG,CACF,CACF,CAEF,GAEA,gBAAAA,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,eAAc;AAAA,MACd,qBAAqB,CAAC,SAAS,OAAO,KAAK;AAAA,MAC3C,cAAW;AAAA;AAAA,IAEX,gBAAAA,OAAA,cAAC,mBACC,gBAAAA,OAAA,cAAC,mBAAY,oBAAkB,GAC/B,gBAAAA,OAAA,cAAC,eAAY,OAAM,YAAS,OAAK,GACjC,gBAAAA,OAAA,cAAC,eAAY,OAAM,YAAS,QAAM,GAClC,gBAAAA,OAAA,cAAC,eAAY,OAAM,YAAS,SAAO,GACnC,gBAAAA,OAAA,cAAC,eAAY,OAAM,YAAS,QAAM,CACpC;AAAA,IACA,gBAAAA,OAAA,cAAC,kBAEG,oBAAS,YAAT,mBAAkB,UAAlB,mBAAyB,IAAI,CAAC,MAAM,UAAU;AAC5C,aAAO,gBAAAA,OAAA,cAAC,YAAS,WAAU,kBAAiB,KAAK,KAAK,MAAM,SAAS,OAAK;AACxE,iBAAS,OAAO,KAAK,KAAK,IAAI;AAC9B,kBAAU,IAAI,WAAW,EAAE,QAAQ,iBAAiB;AAAA,MACtD,KACE,gBAAAA,OAAA,cAAC,iBAAY,KAAK,IAAK,GACvB,gBAAAA,OAAA,cAAC,iBAAY,SAAS,UAAU,KAAK,OAAO,CAAE,GAC9C,gBAAAA,OAAA,cAAC,iBAAW,KAAK,MAAO,GACxB,gBAAAA,OAAA,cAAC,aAAU,WAAW,SAAS,aAAa,KAAK,OAAO,KAAI,KAAK,SAAQ,GAAC,GAC1E,gBAAAA,OAAA,cAAC,iBACC,gBAAAA,OAAA,cAAC,SAAI,WAAU,sCACb,gBAAAA,OAAA,cAAC,WAAQ,SAAQ,qBACf,gBAAAA,OAAA,cAAC,UAAK,WAAU,wDAAuD,SAAS,OAAK;AACnF,UAAE,gBAAgB;AAClB,iBAAS,cAAc,KAAK,IAAI;AAAA,MAClC,KACE,gBAAAA,OAAA,cAACM,OAAA,EAAK,MAAK,uBAAsB,OAAM,MAAK,QAAO,MAAK,CAC1D,CACF,GAEE,KAAK,UAAU,gBAAAN,OAAA,cAAC,WAAQ,SAAQ,YAC9B,gBAAAA,OAAA,cAAC,UAAK,WAAU,wDAAuD,SAAS,OAAK;AACnF,UAAE,gBAAgB;AAClB,iBAAS,UAAU,KAAK,IAAI;AAAA,MAC9B,KACE,gBAAAA,OAAA,cAACM,OAAA,EAAK,MAAK,uCAAsC,OAAM,MAAK,QAAO,MAAK,CAC1E,CACF,CAEJ,CACF,CACF;AAAA,IACF,EAEJ;AAAA,EACF,CACF;AAEJ,CAAC","sourcesContent":[null,null,null,null,null,null,null,null,"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=master-copies.js.map",null,null,null,"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=relay.js.map",null,"import { RainbowKitProvider, darkTheme, lightTheme } from '@rainbow-me/rainbowkit';\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport React, { useEffect, useState } from 'react';\nimport { useReconnect, WagmiProvider } from 'wagmi';\nimport { RootStore } from \"../../store\";\nimport { WalletStore } from '.';\nimport { WalletConfigStore } from './walletConfigStore'\nimport { reaction } from 'mobx';\nimport { type Chain } from \"viem/chains\";\nimport { iotex } from './type';\nimport { useRouter } from 'next/router';\n\nconst queryClient = new QueryClient();\nexport const WalletProvider = (({\n children,\n theme,\n appName,\n supportedChains,\n compatibleMode = true,\n router\n}: {\n children: React.ReactNode,\n theme?: 'dark' | 'light',\n appName?: string,\n supportedChains?: Chain[],\n compatibleMode?: boolean,\n router?: any\n}) => {\n //@ts-ignore\n const walletConfig = RootStore.Get(WalletConfigStore, { args: { supportedChains: supportedChains ?? [iotex] } });\n\n const [config, setConfig] = useState(walletConfig.rainbowKitConfig)\n\n useEffect(() => {\n const disposer = reaction(\n () => walletConfig.updateTicker,\n () => {\n setConfig(walletConfig.rainbowKitConfig)\n }\n )\n return () => {\n disposer();\n };\n }, []);\n\n useEffect(() => {\n if (appName) {\n walletConfig.appName = appName\n }\n if (compatibleMode != undefined) {\n walletConfig.compatibleMode = compatibleMode\n }\n }, [appName, compatibleMode])\n return (\n //@ts-ignore\n <WagmiProvider config={config} reconnectOnMount={compatibleMode ? false : true}>\n <QueryClientProvider client={queryClient} >\n <RainbowKitProvider locale=\"en\" theme={theme == 'dark' ? darkTheme() : lightTheme()}>\n {/* @ts-ignore */}\n {children}\n <WalletConnect compatibleMode={compatibleMode} router={router} />\n </RainbowKitProvider>\n </QueryClientProvider>\n </WagmiProvider>\n );\n});\n\nexport const WalletConnect = ({ compatibleMode = true, router }) => {\n const res = useReconnect()\n const wallet = RootStore.Get(WalletStore);\n wallet.use();\n\n if (router && compatibleMode) {\n useEffect(() => {\n if (!wallet.account) {\n res.reconnectAsync()\n }\n }, [router])\n }\n\n return <></>;\n};\n","import React, { useEffect } from \"react\";\nimport { Store } from \"../../store/standard/base\";\nimport { Account, PublicClient, type HttpTransport, WalletClient, TransactionReceipt } from \"viem\";\nimport { PromiseHook } from '../../store/standard/PromiseHook';\nimport { BigNumberState } from '../../store/standard/BigNumberState';\nimport BigNumber from 'bignumber.js';\nimport { AddressMode, WalletTransactionHistoryType } from \"./type\";\nimport EventEmitter from \"events\";\nimport { SwitchChainMutate } from \"wagmi/query\";\nimport { Config, useAccount, useConnect, useDisconnect, useReconnect, useSwitchChain, useWalletClient, } from \"wagmi\";\nimport { Chain, useConnectModal, WalletDetailsParams } from '@rainbow-me/rainbowkit';\nimport { RootStore } from \"../../store\";\nimport { ToastPlugin } from \"../Toast/Toast\";\nimport { http, createPublicClient } from 'viem';\nimport { WalletHistoryStore, WalletRpcStore } from './walletPluginStore';\nimport SafeAppsSDK, { TransactionStatus } from '@safe-global/safe-apps-sdk';\nimport { ShowSuccessTxDialog } from './SuccessTxDialog'\nimport { WalletConfigStore } from \"./walletConfigStore\";\nimport { AIem } from \"../../aiem\";\nimport { helper } from \"../../lib/helper\";\n\nexport class WalletStore implements Store {\n sid = 'wallet';\n autoObservable = true;\n account: `0x${string}` = null;\n isSuccessDialogOpen = false;\n isInSafeApp = false;\n isConnect = false;\n walletClient: WalletClient;\n event = new EventEmitter();\n switchChain: SwitchChainMutate<Config, unknown> | undefined;\n updateTicker = 0;\n addressMode: AddressMode = '0x';\n get isIoTeXChain(): boolean {\n if (this.chain && this.chain.id == 4689) {\n return true\n }\n return false\n }\n setAddressMode(mode: AddressMode) {\n this.addressMode = mode;\n localStorage.setItem('addressMode', mode);\n }\n get accountFormat() {\n return this.account ? helper.address.convertAddress(this.addressMode, this.account) : '-';\n }\n get connectAccountEllipsisFormat() {\n return this.account ? helper.string.truncate(helper.address.convertAddress(this.addressMode, this.account), 11, '...') : '-';\n }\n get accountEllipsisFormat() {\n return this.account ? helper.string.truncate(helper.address.convertAddress(this.addressMode, this.account), 16, '...') : '-';\n }\n get supportedChains() {\n return RootStore.Get(WalletConfigStore).supportedChains\n }\n chain: Chain | undefined;\n openConnectModal: any;\n disconnect: any;\n balance = PromiseHook.wrap({\n func: async () => {\n if (!this.publicClient || !this.account) return helper.number.warpBigNumber('0');\n const balance = await this.publicClient.getBalance({\n address: this.account,\n });\n if (balance) {\n return helper.number.warpBigNumber(balance?.toString() ?? '0');\n }\n },\n });\n\n constructor(args?: Partial<WalletStore>) {\n Object.assign(this, args);\n }\n\n use(router?: any) {\n const { data: walletClient, isSuccess } = useWalletClient();\n const { chain, address, isConnected } = useAccount();\n\n const { switchChain } = useSwitchChain();\n const { openConnectModal } = useConnectModal();\n const { connect } = useConnect();\n const { disconnect } = useDisconnect();\n const walletConfigStore = RootStore.Get(WalletConfigStore);\n this.set({\n //@ts-ignore\n connect,\n // @ts-ignore \n walletClient,\n openConnectModal,\n switchChain,\n disconnect\n })\n\n useEffect(() => {\n RootStore.Get(WalletHistoryStore).set({ isRender: true })\n this.set({\n isConnect: isConnected,\n account: address,\n // @ts-ignore \n chain,\n })\n walletConfigStore.set({\n isConnect: isConnected,\n })\n if (this.account) {\n this.updateTicker++;\n walletConfigStore.set({\n walletUpdateTick: this.updateTicker,\n })\n this.event.emit('walletAccount:ready');\n }\n }, [address, isConnected, chain])\n\n\n\n useEffect(() => {\n setTimeout(() => {\n this.balance.call()\n }, 1500)\n }, [this.updateTicker])\n }\n\n //always return or return default chain\n get publicClient(): PublicClient<HttpTransport, Chain, any, any> {\n if (this.chain && this.supportedChains.some(i => i.id === this.chain.id)) {\n if (this.chain.id == 4689) {\n return AIem.PubClient('4689', { rpcUrls: { default: { http: [RootStore.Get(WalletRpcStore).curRpc.value] } }, multicall: true })\n }\n return AIem.PubClient(this.chain.id.toString())\n } else {\n return AIem.PubClient('4689')\n }\n }\n\n set(args: Partial<WalletStore>) {\n Object.assign(this, args);\n }\n\n toJSON() {\n const { account } = this;\n return { account };\n }\n\n async prepare(chainId?: number): Promise<WalletStore> {\n return new Promise<WalletStore>(async (res, rej) => {\n try {\n if (this.account) {\n if (!chainId) {\n res(this);\n }\n if (Number(this.chain?.id) == Number(chainId)) {\n console.log('has and return ')\n res(this);\n }\n this.switchChain?.({ chainId: chainId ?? 4689 });\n const interval = setInterval(() => {\n if (this.switchChain) {\n if (this.chain?.id == chainId) {\n try {\n // //@ts-ignore\n // const provider = new ethers.providers.Web3Provider(window?.ethereum);\n // this.signer = provider.getSigner();\n res(this);\n } catch (error) {\n }\n clearInterval(interval);\n }\n }\n }, 1000);\n } else {\n this.openConnectModal();\n // this.connect?.({ chainId, connector: this.rainbowkitParams.connectors()[0] }) connect success but ui not change so\n const interval = setInterval(() => {\n if (this.account) {\n clearInterval(interval);\n res(this);\n }\n }, 1000);\n }\n } catch (error) {\n rej(error);\n }\n });\n }\n\n\n async waitForTransactionReceipt({ hash }) {\n // https://github.com/wevm/wagmi/discussions/3463#discussioncomment-8139187\n if (this.isInSafeApp) {\n // console.log('isInSafeApp', this.isInSafeApp);\n const sdk = new SafeAppsSDK();\n while (true) {\n const queued = await sdk.txs.getBySafeTxHash(hash);\n if (queued.txStatus === TransactionStatus.AWAITING_CONFIRMATIONS || queued.txStatus === TransactionStatus.AWAITING_EXECUTION || queued.txStatus === TransactionStatus.CANCELLED) {\n await new Promise((resolve) => setTimeout(resolve, 2000));\n } else {\n return this.publicClient.waitForTransactionReceipt({ hash: queued.txHash! as `0x${string}` });\n }\n }\n } else {\n return this.publicClient.waitForTransactionReceipt({ hash });\n }\n }\n\n static async SendTx(...args: Parameters<WalletStore['sendTx']>) {\n return RootStore.Get(WalletStore).sendTx(...args);\n }\n static async SendRawTx(...args: Parameters<WalletStore['sendRawTx']>) {\n return RootStore.Get(WalletStore).sendRawTx(...args);\n }\n async sendTx({\n chainId,\n tx,\n autoAlert = true,\n loadingText,\n successText,\n onError,\n historyItem,\n showSuccessDialog = false,\n }: {\n chainId: number | string;\n tx: any;\n autoAlert?: boolean;\n loadingText?: string;\n successText?: string;\n showSuccessDialog?: boolean;\n historyItem?: Pick<WalletTransactionHistoryType, 'msg' | 'type'>;\n onError?: (error: any) => void;\n }) {\n const toast = RootStore.Get(ToastPlugin);\n let hash;\n const historyStore = RootStore.Get(WalletHistoryStore)\n try {\n if (loadingText) toast.loading(loadingText);\n if (!chainId) throw new Error('chainId, address, data is required');\n await RootStore.Get(WalletStore).prepare(Number(chainId));\n hash = await tx();\n if (historyItem) {\n historyStore.recordHistory({ ...historyItem, tx: hash, timestamp: Date.now(), status: 'loading', chainId: Number(chainId) });\n }\n const receipt = await this.waitForTransactionReceipt({ hash });\n if (receipt.status == 'success') {\n toast.dismiss();\n toast.success('The transaction was successful');\n if (historyItem) {\n if (showSuccessDialog) {\n ShowSuccessTxDialog({ msg: historyItem.msg, hash: hash });\n }\n historyStore.updateHistoryStatusByTx(hash, 'success');\n }\n } else {\n toast.dismiss();\n toast.error('The transaction failed');\n historyStore.updateHistoryStatusByTx(hash, 'fail');\n }\n if (successText) toast.success(successText);\n this.updateTicker++;\n return receipt;\n } catch (error) {\n console.log(error);\n toast.dismiss();\n if (autoAlert) {\n const msg = /reason=\"[A-Za-z0-9_ :\"]*/g.exec(error?.message);\n console.log('sendTx', error?.message);\n if (error?.message?.includes('user rejected transaction') || String(error).toLowerCase().includes('user rejected') || String(error).toLowerCase().includes('user denied')) {\n toast.error('user rejected transaction');\n onError?.(error);\n return;\n }\n if (error?.message?.includes('The Transaction may not be processed on a block yet') || error?.message?.includes('could not be found')) {\n if (historyItem) {\n historyStore.updateHistoryStatusByTx(hash, 'success');\n }\n toast.success('The transaction was successful');\n return;\n }\n\n if (msg) {\n toast.error(msg as unknown as string);\n onError?.(msg);\n } else {\n if (error?.message.includes('viem')) {\n const messageArr = error?.message.split('\\n');\n console.log('messageArr---', messageArr);\n if (messageArr.length > 0) {\n toast.error(messageArr[0]);\n onError?.(messageArr[0]);\n }\n } else {\n toast.error(String(error?.message || error));\n onError?.(String(error?.message || error));\n }\n }\n } else {\n throw error;\n }\n }\n }\n async sendRawTx({\n chainId,\n address,\n data,\n value = '0',\n autoAlert = true,\n onSended,\n onSuccess,\n onError,\n historyItem,\n loadingText,\n showSuccessDialog = false,\n }: {\n loadingText?: string;\n chainId: number | string;\n address: string;\n data: string | null;\n value?: string;\n autoRefresh?: boolean;\n autoAlert?: boolean;\n historyItem?: Pick<WalletTransactionHistoryType, 'msg' | 'type'>;\n showTransactionSubmitDialog?: boolean;\n showSuccessDialog?: boolean;\n onSended?: ({ res }: { res: TransactionReceipt }) => void;\n onSuccess?: ({ res }: { res: TransactionReceipt }) => void;\n onError?: ({ res }: { res: TransactionReceipt }) => void;\n }): Promise<TransactionReceipt | undefined> {\n chainId = Number(chainId);\n const toast = RootStore.Get(ToastPlugin);\n try {\n if (!chainId || !address) throw new Error('chainId, address, is required');\n await RootStore.Get(WalletStore).prepare(chainId);\n if (loadingText) toast.loading(loadingText);\n const historyStore = RootStore.Get(WalletHistoryStore)\n // @ts-ignore\n const hash = await this.walletClient.sendTransaction({\n account: this.account,\n to: address as `0x${string}`,\n data: data as `0x${string}`,\n value: value ? BigInt(value) : undefined,\n });\n // console.log(hash)\n let receipt = await this.waitForTransactionReceipt({ hash });\n console.log(receipt);\n if (historyItem) {\n historyStore.recordHistory({ ...historyItem, tx: receipt.transactionHash, timestamp: Date.now(), status: 'loading', chainId: Number(chainId) });\n }\n onSended ? onSended({ res: receipt }) : null;\n if (receipt.status == 'success') {\n if (historyItem) {\n if (showSuccessDialog) {\n ShowSuccessTxDialog({ msg: historyItem.msg, hash: hash });\n }\n historyStore.updateHistoryStatusByTx(receipt.transactionHash, 'success');\n }\n onSuccess && onSuccess({ res: receipt });\n toast.dismiss();\n toast.success('The transaction was successful');\n } else {\n if (historyItem) {\n historyStore.updateHistoryStatusByTx(receipt.transactionHash, 'fail');\n }\n onError && onError({ res: receipt });\n toast.dismiss();\n toast.error('The transaction failed');\n }\n return receipt;\n } catch (error) {\n toast.dismiss();\n console.log(error.message);\n const msg = /reason=\"[A-Za-z0-9_ :\"]*/g.exec(error?.message);\n // Details: Transaction was rejected\n if (error?.message?.includes('user rejected transaction') || error?.message?.includes('cancel') || String(error).toLowerCase().includes('user rejected') || String(error).toLowerCase().includes('user denied')) {\n autoAlert && toast.error('user rejected transaction');\n return;\n }\n if (error?.message?.includes('Price slippage check')) {\n autoAlert && toast.error('The latest pool price has changed, please try to increase the slippage tolerance or reload the page.');\n return;\n }\n if (error?.message.includes('viem')) {\n const messageArr = error?.message.split('\\n');\n console.log('messageArr---', messageArr);\n if (messageArr.length > 0) {\n toast.error(messageArr[0]);\n onError?.(messageArr[0]);\n return;\n }\n }\n\n if (msg) {\n autoAlert && toast.error(msg as unknown as string);\n } else {\n autoAlert && toast.error(String(error.message));\n }\n if (!autoAlert) {\n throw error;\n }\n }\n }\n}","import React from 'react';\nimport { Icon } from \"@iconify/react\";\nimport { RootStore } from \"../../store\";\nimport { Store } from \"../../store/standard/base\";\nimport { StorageState } from '../../store/standard/StorageState';\nimport { ToastPlugin } from \"../Toast/Toast\";\nimport { WalletTransactionHistoryType } from \"./type\";\nimport { WalletStore } from \".\";\nimport { helper } from \"../../lib/helper\";\n\nconst defaultRPCList = [\n { name: 'https://babel-api.fastblocks.io', latency: 0, height: 0, custom: false },\n { name: 'https://babel-api.mainnet.iotex.one', latency: 0, height: 0, },\n { name: 'https://babel-api.mainnet.iotex.io', latency: 0, height: 0, },\n { name: 'https://iotex-network.rpc.thirdweb.com', latency: 0, height: 0, },\n { name: 'https://iotexrpc.com', latency: 0, height: 0, },\n { name: 'https://iotex.api.onfinality.io/public', latency: 0, height: 0, },\n { name: 'https://rpc.ankr.com/iotex', latency: 0, height: 0, },\n]\nexport class WalletRpcStore implements Store {\n sid = 'WalletPluginStore';\n autoObservable = true\n curRpc = new StorageState({ default: 'https://babel-api.mainnet.iotex.one', key: 'curRPC-v2', value: 'https://babel-api.mainnet.iotex.one' });\n isAutoSelectRpc = new StorageState({ key: 'isAutoSelectRpc', default: true });\n customRpc = '';\n rpcList = new StorageState({ key: 'customRpcList-v2', default: defaultRPCList, value: [] })\n showCustomRpc = false;\n get currentRpc() {\n console.log(this.rpcList.value?.find(i => i.name == this.curRpc))\n return this.rpcList.value?.find(i => i.name == this.curRpc.value) || null\n }\n addCustomRpc() {\n const item = { name: this.customRpc, latency: 0, height: 0, custom: true }\n if (defaultRPCList.find(i => i.name === item.name)) {\n return RootStore.Get(ToastPlugin).error('Rpc already exists')\n }\n if (this.rpcList.value) {\n this.rpcList.save([...this.rpcList.value, item])\n this.refresh()\n return\n }\n this.rpcList.save([...defaultRPCList, item])\n this.refresh()\n }\n async addToMetamask(url) {\n try {\n if (typeof window == 'undefined') return;\n await window?.ethereum?.request({\n method: 'wallet_addEthereumChain',\n params: [{\n chainId: `0x${(4689).toString(16)}`,\n chainName: 'IoTeX Mainnet',\n nativeCurrency: {\n name: 'IoTeX',\n symbol: 'IOTX',\n decimals: 18,\n },\n rpcUrls: [url],\n blockExplorerUrls: ['https://iotexscan.io'],\n }]\n });\n RootStore.Get(ToastPlugin).success('Network added');\n console.log('Network added');\n } catch (error) {\n console.error('Failed to add network', error);\n }\n }\n refresh() {\n this.showCustomRpc = false\n this.customRpc = ''\n setTimeout(() => {\n this.testRpc()\n }, 500)\n }\n latencyColor(latency: number) {\n if (latency < 0) {\n return 'text-red-500'\n }\n if (latency < 1) {\n return 'text-green-500'\n }\n if (latency < 2) {\n return 'text-yellow-500'\n }\n return 'text-red-500'\n }\n async testRpcFunction(url: string): Promise<{ url: string, lentency: number, height: number }> {\n const start = performance.now();\n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n method: 'eth_getBlockByNumber',\n params: [\"latest\", false],\n id: 1,\n }),\n });\n\n if (!response.ok) {\n throw new Error(`Error from server: ${response.status}`);\n }\n const res = await response.json();\n console.log(res)\n const end = performance.now();\n return { url, lentency: Number(helper.number.numberFormat(((end - start) / 1000), '0.000', { fallback: '-1' })), height: parseInt(res.result.number, 16) };\n } catch (error) {\n console.error('RPC Latency Test Failed:', error);\n return { url, lentency: -1, height: -1 };\n }\n }\n testRpc() {\n this.rpcList?.value.forEach(i => {\n this.testRpcFunction(i.name).then(res => {\n i.latency = res.lentency\n i.height = res.height\n })\n })\n this.rpcList.save(this.rpcList.value)\n }\n removeRpc(name: string) {\n this.rpcList.save(this.rpcList.value.filter(i => i.name !== name))\n }\n scoreIcon(score: number) {\n if (score < 0) {\n return <Icon icon=\"codicon:error\" width=\"18\" height=\"18\" style={{ color: \"#FF0000\" }} />\n }\n if (score < 1) {\n return <Icon icon=\"icon-park-solid:check-one\" width=\"18\" height=\"18\" style={{ color: \"#289726\" }} />\n }\n if (score < 2) {\n return <Icon icon=\"bxs:error\" width=\"18\" height=\"18\" style={{ color: \"#FFA500\" }} />\n }\n return <Icon icon=\"codicon:error\" width=\"18\" height=\"18\" style={{ color: \"#FF0000\" }} />\n }\n get wallet() {\n return RootStore.Get(WalletStore)\n }\n // debounceAutoSelectRpc = pDebounce(this.autoSelectRpc, 3000)\n async autoSelectRpc() {\n console.log('autoSelectRpc')\n for (let i = 0; i < this.rpcList.value.length; i++) {\n const item = this.rpcList.value[i]\n const res = await this.testRpcFunction(item.name)\n if (res.lentency != -1 || res.height > 0) {\n this.curRpc.save(item.name)\n break;\n }\n }\n }\n}\n\nexport class WalletHistoryStore implements Store {\n sid = 'WalletHistoryStore';\n isRender = false\n autoObservable = true\n set(params: Partial<WalletHistoryStore>) {\n Object.assign(this, params);\n }\n private history = new StorageState<WalletTransactionHistoryType[] | null>({ value: [], key: 'history' });\n get historyList(): WalletTransactionHistoryType[] {\n if (this.isRender) {\n return this.history.value\n }\n return []\n }\n recordHistory(item: WalletTransactionHistoryType) {\n let value: WalletTransactionHistoryType[] | null = this.history.load();\n if (!value) {\n value = [item];\n } else {\n value = [...value, item];\n }\n this.history.setValue(value);\n }\n updateHistoryStatusByTx(tx: string | null, status: 'loading' | 'success' | 'fail') {\n let value: WalletTransactionHistoryType[] | null = this.history.load();\n if (!value) {\n return;\n }\n value = value.map((i) => {\n if (i.tx == tx) {\n i.status = status;\n return i;\n }\n if (!tx) {\n i.status = status;\n }\n return i;\n });\n this.history.setValue(value);\n }\n clearHistory() {\n this.history.setValue(null);\n }\n}\n","export const getSDKVersion = () => '9.1.0';\n","// i.e. 0-255 -> '00'-'ff'\nconst dec2hex = (dec: number): string => dec.toString(16).padStart(2, '0');\n\nconst generateId = (len: number): string => {\n const arr = new Uint8Array((len || 40) / 2);\n window.crypto.getRandomValues(arr);\n return Array.from(arr, dec2hex).join('');\n};\n\nconst generateRequestId = (): string => {\n if (typeof window !== 'undefined') {\n return generateId(10);\n }\n\n return new Date().getTime().toString(36);\n};\n\nexport { generateRequestId };\n","import { ErrorResponse, SDKRequestData, RequestId, SuccessResponse, MethodToResponse } from '../types/index.js';\nimport { getSDKVersion } from '../version.js';\nimport { Methods } from './methods.js';\nimport { generateRequestId } from './utils.js';\n\nclass MessageFormatter {\n static makeRequest = <M extends Methods = Methods, P = unknown>(method: M, params: P): SDKRequestData<M, P> => {\n const id = generateRequestId();\n\n return {\n id,\n method,\n params,\n env: {\n sdkVersion: getSDKVersion(),\n },\n };\n };\n\n static makeResponse = (id: RequestId, data: MethodToResponse[Methods], version: string): SuccessResponse => ({\n id,\n success: true,\n version,\n data,\n });\n\n static makeErrorResponse = (id: RequestId, error: string, version: string): ErrorResponse => ({\n id,\n success: false,\n error,\n version,\n });\n}\n\nexport { MessageFormatter };\n","export enum Methods {\n sendTransactions = 'sendTransactions',\n rpcCall = 'rpcCall',\n getChainInfo = 'getChainInfo',\n getSafeInfo = 'getSafeInfo',\n getTxBySafeTxHash = 'getTxBySafeTxHash',\n getSafeBalances = 'getSafeBalances',\n signMessage = 'signMessage',\n signTypedMessage = 'signTypedMessage',\n getEnvironmentInfo = 'getEnvironmentInfo',\n getOffChainSignature = 'getOffChainSignature',\n requestAddressBook = 'requestAddressBook',\n wallet_getPermissions = 'wallet_getPermissions',\n wallet_requestPermissions = 'wallet_requestPermissions',\n}\n\nexport enum RestrictedMethods {\n requestAddressBook = 'requestAddressBook',\n}\n","import { MessageFormatter } from './messageFormatter.js';\nimport { Methods } from './methods.js';\nimport { InterfaceMessageEvent, Communicator, Response, SuccessResponse } from '../types/index.js';\n\n// eslint-disable-next-line\ntype Callback = (response: any) => void;\n\nclass PostMessageCommunicator implements Communicator {\n private readonly allowedOrigins: RegExp[] | null = null;\n private callbacks = new Map<string, Callback>();\n private debugMode = false;\n private isServer = typeof window === 'undefined';\n\n constructor(allowedOrigins: RegExp[] | null = null, debugMode = false) {\n this.allowedOrigins = allowedOrigins;\n this.debugMode = debugMode;\n\n if (!this.isServer) {\n window.addEventListener('message', this.onParentMessage);\n }\n }\n\n private isValidMessage = ({ origin, data, source }: InterfaceMessageEvent): boolean => {\n const emptyOrMalformed = !data;\n const sentFromParentEl = !this.isServer && source === window.parent;\n const majorVersionNumber = typeof data.version !== 'undefined' && parseInt(data.version.split('.')[0]);\n const allowedSDKVersion = typeof majorVersionNumber === 'number' && majorVersionNumber >= 1;\n let validOrigin = true;\n if (Array.isArray(this.allowedOrigins)) {\n validOrigin = this.allowedOrigins.find((regExp) => regExp.test(origin)) !== undefined;\n }\n\n return !emptyOrMalformed && sentFromParentEl && allowedSDKVersion && validOrigin;\n };\n\n private logIncomingMessage = (msg: InterfaceMessageEvent): void => {\n console.info(`Safe Apps SDK v1: A message was received from origin ${msg.origin}. `, msg.data);\n };\n\n private onParentMessage = (msg: InterfaceMessageEvent): void => {\n if (this.isValidMessage(msg)) {\n this.debugMode && this.logIncomingMessage(msg);\n this.handleIncomingMessage(msg.data);\n }\n };\n\n private handleIncomingMessage = (payload: InterfaceMessageEvent['data']): void => {\n const { id } = payload;\n\n const cb = this.callbacks.get(id);\n if (cb) {\n cb(payload);\n\n this.callbacks.delete(id);\n }\n };\n\n public send = <M extends Methods, P, R>(method: M, params: P): Promise<SuccessResponse<R>> => {\n const request = MessageFormatter.makeRequest(method, params);\n\n if (this.isServer) {\n throw new Error(\"Window doesn't exist\");\n }\n\n window.parent.postMessage(request, '*');\n return new Promise((resolve, reject) => {\n this.callbacks.set(request.id, (response: Response<R>) => {\n if (!response.success) {\n reject(new Error(response.error));\n return;\n }\n\n resolve(response);\n });\n });\n };\n}\n\nexport default PostMessageCommunicator;\nexport * from './methods.js';\n","import { ChainInfo as _ChainInfo } from '@safe-global/safe-gateway-typescript-sdk';\n\nexport type ChainInfo = Pick<\n _ChainInfo,\n 'chainName' | 'chainId' | 'shortName' | 'nativeCurrency' | 'blockExplorerUriTemplate'\n>;\n\nexport { NativeCurrency } from '@safe-global/safe-gateway-typescript-sdk';\n\nexport type BaseTransaction = {\n to: string;\n value: string;\n data: string;\n};\n\nexport type GetTxBySafeTxHashParams = {\n safeTxHash: string;\n};\n\nexport interface SendTransactionRequestParams {\n safeTxGas?: number;\n}\n\nexport interface SendTransactionsParams {\n txs: BaseTransaction[];\n params?: SendTransactionRequestParams;\n}\n\nexport type GetBalanceParams = { currency?: string };\n\nexport type SignMessageParams = {\n message: string;\n};\n\nexport interface TypedDataDomain {\n name?: string;\n version?: string;\n chainId?: string | number | bigint | { toNumber: () => number };\n verifyingContract?: string;\n salt?: string;\n}\n\nexport interface TypedDataTypes {\n name: string;\n type: string;\n}\n\nexport type TypedMessageTypes = { [key: string]: TypedDataTypes[] };\n\nexport type EIP712TypedData = {\n domain: TypedDataDomain;\n types: TypedMessageTypes;\n message: Record<string, any>;\n primaryType?: string;\n};\n\nexport type SignTypedMessageParams = {\n typedData: EIP712TypedData;\n};\n\nexport type SendTransactionsResponse = {\n safeTxHash: string;\n};\n\nexport type OffChainSignMessageResponse = {\n messageHash: string;\n};\n\nexport type SignMessageResponse = SendTransactionsResponse | OffChainSignMessageResponse;\n\nexport type SafeInfo = {\n safeAddress: string;\n chainId: number;\n threshold: number;\n owners: string[];\n isReadOnly: boolean;\n};\n\nexport type SafeInfoExtended = SafeInfo & {\n nonce: number;\n implementation: string;\n modules: string[] | null;\n fallbackHandler: string | null;\n guard: string | null;\n version: string | null;\n};\n\nexport type EnvironmentInfo = {\n origin: string;\n};\n\nexport type PostMessageOptions = {\n transfer?: any[];\n};\n\nexport type AddressBookItem = {\n address: string;\n chainId: string;\n name: string;\n};\n\nexport const isObjectEIP712TypedData = (obj?: unknown): obj is EIP712TypedData => {\n return typeof obj === 'object' && obj != null && 'domain' in obj && 'types' in obj && 'message' in obj;\n};\n","import { SafeBalanceResponse, TransactionDetails, TokenInfo } from '@safe-global/safe-gateway-typescript-sdk';\n\nexport {\n AddOwner,\n ChangeImplementation,\n ChangeThreshold,\n Creation,\n Custom,\n DataDecoded,\n DetailedExecutionInfo,\n DisableModule,\n EnableModule,\n Erc20Transfer,\n Erc721Transfer,\n InternalTransaction,\n ModuleExecutionDetails,\n MultiSend,\n MultisigConfirmation,\n MultisigExecutionDetails,\n NativeCoinTransfer,\n Operation,\n Parameter,\n RemoveOwner,\n SafeAppInfo,\n SetFallbackHandler,\n SettingsChange,\n SettingsInfo,\n SwapOwner,\n TokenInfo,\n TokenType,\n TransactionData,\n TransactionInfo,\n TransactionStatus,\n Transfer,\n TransferDirection,\n TransferInfo,\n} from '@safe-global/safe-gateway-typescript-sdk';\n\nexport type GatewayTransactionDetails = TransactionDetails;\n\nexport type TokenBalance = {\n tokenInfo: TokenInfo;\n balance: string;\n fiatBalance: string;\n fiatConversion: string;\n};\n\nexport type SafeBalances = SafeBalanceResponse;\n","import { Methods } from '../communication/methods.js';\nimport {\n GatewayTransactionDetails,\n SignMessageParams,\n SendTransactionsParams,\n GetTxBySafeTxHashParams,\n Communicator,\n SendTransactionsResponse,\n SignTypedMessageParams,\n EIP712TypedData,\n isObjectEIP712TypedData,\n SignMessageResponse,\n} from '../types/index.js';\n\nclass TXs {\n private readonly communicator: Communicator;\n\n constructor(communicator: Communicator) {\n this.communicator = communicator;\n }\n\n async getBySafeTxHash(safeTxHash: string): Promise<GatewayTransactionDetails> {\n if (!safeTxHash) {\n throw new Error('Invalid safeTxHash');\n }\n\n const response = await this.communicator.send<\n Methods.getTxBySafeTxHash,\n GetTxBySafeTxHashParams,\n GatewayTransactionDetails\n >(Methods.getTxBySafeTxHash, { safeTxHash });\n\n return response.data;\n }\n\n async signMessage(message: string): Promise<SignMessageResponse> {\n const messagePayload = {\n message,\n };\n\n const response = await this.communicator.send<Methods.signMessage, SignMessageParams, SignMessageResponse>(\n Methods.signMessage,\n messagePayload,\n );\n\n return response.data;\n }\n\n async signTypedMessage(typedData: EIP712TypedData): Promise<SignMessageResponse> {\n if (!isObjectEIP712TypedData(typedData)) {\n throw new Error('Invalid typed data');\n }\n\n const response = await this.communicator.send<\n Methods.signTypedMessage,\n SignTypedMessageParams,\n SignMessageResponse\n >(Methods.signTypedMessage, { typedData });\n\n return response.data;\n }\n\n async send({ txs, params }: SendTransactionsParams): Promise<SendTransactionsResponse> {\n if (!txs || !txs.length) {\n throw new Error('No transactions were passed');\n }\n\n const messagePayload = {\n txs,\n params,\n };\n\n const response = await this.communicator.send<\n Methods.sendTransactions,\n SendTransactionsParams,\n SendTransactionsResponse\n >(Methods.sendTransactions, messagePayload);\n\n return response.data;\n }\n}\n\nexport { TXs };\n","export const RPC_CALLS = {\n eth_call: 'eth_call',\n eth_gasPrice: 'eth_gasPrice',\n eth_getLogs: 'eth_getLogs',\n eth_getBalance: 'eth_getBalance',\n eth_getCode: 'eth_getCode',\n eth_getBlockByHash: 'eth_getBlockByHash',\n eth_getBlockByNumber: 'eth_getBlockByNumber',\n eth_getStorageAt: 'eth_getStorageAt',\n eth_getTransactionByHash: 'eth_getTransactionByHash',\n eth_getTransactionReceipt: 'eth_getTransactionReceipt',\n eth_getTransactionCount: 'eth_getTransactionCount',\n eth_estimateGas: 'eth_estimateGas',\n safe_setSettings: 'safe_setSettings',\n} as const;\n","import { RPC_CALLS } from '../eth/constants.js';\nimport {\n BlockNumberArg,\n RpcCallNames,\n Communicator,\n Log,\n BlockTransactionString,\n BlockTransactionObject,\n Web3TransactionObject,\n RPCPayload,\n TransactionConfig,\n Web3TransactionReceiptObject,\n PastLogsOptions,\n SafeSettings,\n} from '../types/index.js';\nimport { Methods } from '../communication/methods.js';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Formatter = (arg: any) => any;\n\nconst inputFormatters: Record<string, Formatter> = {\n defaultBlockParam: (arg = 'latest') => arg,\n returnFullTxObjectParam: (arg = false): boolean => arg,\n blockNumberToHex: (arg: BlockNumberArg): string =>\n Number.isInteger(arg) ? `0x${arg.toString(16)}` : (arg as string),\n};\n\ntype BuildRequestArgs = {\n call: RpcCallNames;\n formatters?: (Formatter | null)[];\n};\n\nclass Eth {\n public call;\n public getBalance;\n public getCode;\n public getStorageAt;\n public getPastLogs;\n public getBlockByHash;\n public getBlockByNumber;\n public getTransactionByHash;\n public getTransactionReceipt;\n public getTransactionCount;\n public getGasPrice;\n public getEstimateGas;\n public setSafeSettings;\n\n private readonly communicator: Communicator;\n\n constructor(communicator: Communicator) {\n this.communicator = communicator;\n this.call = this.buildRequest<[TransactionConfig, string?], string>({\n call: RPC_CALLS.eth_call,\n formatters: [null, inputFormatters.defaultBlockParam],\n });\n this.getBalance = this.buildRequest<[string, string?], string>({\n call: RPC_CALLS.eth_getBalance,\n formatters: [null, inputFormatters.defaultBlockParam],\n });\n this.getCode = this.buildRequest<[string, string?], string>({\n call: RPC_CALLS.eth_getCode,\n formatters: [null, inputFormatters.defaultBlockParam],\n });\n this.getStorageAt = this.buildRequest<[string, number, string?], string>({\n call: RPC_CALLS.eth_getStorageAt,\n formatters: [null, inputFormatters.blockNumberToHex, inputFormatters.defaultBlockParam],\n });\n this.getPastLogs = this.buildRequest<[PastLogsOptions], Log[]>({\n call: RPC_CALLS.eth_getLogs,\n });\n this.getBlockByHash = this.buildRequest<[string, boolean?], BlockTransactionString | BlockTransactionObject>({\n call: RPC_CALLS.eth_getBlockByHash,\n formatters: [null, inputFormatters.returnFullTxObjectParam],\n });\n this.getBlockByNumber = this.buildRequest<\n [BlockNumberArg, boolean?],\n BlockTransactionString | BlockTransactionObject\n >({\n call: RPC_CALLS.eth_getBlockByNumber,\n formatters: [inputFormatters.blockNumberToHex, inputFormatters.returnFullTxObjectParam],\n });\n this.getTransactionByHash = this.buildRequest<[string], Web3TransactionObject>({\n call: RPC_CALLS.eth_getTransactionByHash,\n });\n this.getTransactionReceipt = this.buildRequest<[string], Web3TransactionReceiptObject>({\n call: RPC_CALLS.eth_getTransactionReceipt,\n });\n this.getTransactionCount = this.buildRequest<[string, string?], string>({\n call: RPC_CALLS.eth_getTransactionCount,\n formatters: [null, inputFormatters.defaultBlockParam],\n });\n this.getGasPrice = this.buildRequest<never[], string>({\n call: RPC_CALLS.eth_gasPrice,\n });\n this.getEstimateGas = (transaction: TransactionConfig): Promise<number> =>\n this.buildRequest<[TransactionConfig], number>({\n call: RPC_CALLS.eth_estimateGas,\n })([transaction]);\n this.setSafeSettings = this.buildRequest<[SafeSettings], SafeSettings>({\n call: RPC_CALLS.safe_setSettings,\n });\n }\n\n private buildRequest<P = never[], R = unknown>(args: BuildRequestArgs) {\n const { call, formatters } = args;\n\n return async (params?: P): Promise<R> => {\n if (formatters && Array.isArray(params)) {\n formatters.forEach((formatter: ((...args: unknown[]) => unknown) | null, i) => {\n if (formatter) {\n params[i] = formatter(params[i]);\n }\n });\n }\n\n const payload: RPCPayload<P> = {\n call,\n params: params || [],\n };\n\n const response = await this.communicator.send<Methods.rpcCall, RPCPayload<P>, R>(Methods.rpcCall, payload);\n\n return response.data;\n };\n }\n}\n\nexport { Eth };\n","import { encodeFunctionData, Address, hashMessage, hashTypedData } from 'viem';\nimport { MAGIC_VALUE_BYTES, MAGIC_VALUE } from './signatures.js';\nimport { Methods } from '../communication/methods.js';\nimport { RPC_CALLS } from '../eth/constants.js';\nimport {\n Communicator,\n ChainInfo,\n SafeBalances,\n GetBalanceParams,\n RPCPayload,\n TransactionConfig,\n EnvironmentInfo,\n AddressBookItem,\n isObjectEIP712TypedData,\n EIP712TypedData,\n SafeInfoExtended,\n} from '../types/index.js';\nimport requirePermission from '../decorators/requirePermissions.js';\n\nclass Safe {\n private readonly communicator: Communicator;\n\n constructor(communicator: Communicator) {\n this.communicator = communicator;\n }\n\n async getChainInfo(): Promise<ChainInfo> {\n const response = await this.communicator.send<Methods.getChainInfo, undefined, ChainInfo>(\n Methods.getChainInfo,\n undefined,\n );\n\n return response.data;\n }\n\n async getInfo(): Promise<SafeInfoExtended> {\n const response = await this.communicator.send<Methods.getSafeInfo, undefined, SafeInfoExtended>(\n Methods.getSafeInfo,\n undefined,\n );\n\n return response.data;\n }\n\n // There is a possibility that this method will change because we may add pagination to the endpoint\n async experimental_getBalances({ currency = 'usd' }: GetBalanceParams = {}): Promise<SafeBalances> {\n const response = await this.communicator.send<Methods.getSafeBalances, { currency: string }, SafeBalances>(\n Methods.getSafeBalances,\n {\n currency,\n },\n );\n\n return response.data;\n }\n\n private async check1271Signature(messageHash: string, signature = '0x'): Promise<boolean> {\n const safeInfo = await this.getInfo();\n\n const encodedIsValidSignatureCall = encodeFunctionData({\n abi: [\n {\n constant: false,\n inputs: [\n {\n name: '_dataHash',\n type: 'bytes32',\n },\n {\n name: '_signature',\n type: 'bytes',\n },\n ],\n name: 'isValidSignature',\n outputs: [\n {\n name: '',\n type: 'bytes4',\n },\n ],\n payable: false,\n stateMutability: 'nonpayable',\n type: 'function',\n },\n ] as const,\n functionName: 'isValidSignature',\n args: [messageHash as Address, signature as Address],\n });\n\n const payload = {\n call: RPC_CALLS.eth_call,\n params: [\n {\n to: safeInfo.safeAddress,\n data: encodedIsValidSignatureCall,\n },\n 'latest',\n ],\n };\n try {\n const response = await this.communicator.send<Methods.rpcCall, RPCPayload<[TransactionConfig, string]>, string>(\n Methods.rpcCall,\n payload,\n );\n\n return response.data.slice(0, 10).toLowerCase() === MAGIC_VALUE;\n } catch (err) {\n return false;\n }\n }\n\n private async check1271SignatureBytes(messageHash: string, signature = '0x'): Promise<boolean> {\n const safeInfo = await this.getInfo();\n\n const encodedIsValidSignatureCall = encodeFunctionData({\n abi: [\n {\n constant: false,\n inputs: [\n {\n name: '_data',\n type: 'bytes',\n },\n {\n name: '_signature',\n type: 'bytes',\n },\n ],\n name: 'isValidSignature',\n outputs: [\n {\n name: '',\n type: 'bytes4',\n },\n ],\n payable: false,\n stateMutability: 'nonpayable',\n type: 'function',\n },\n ] as const,\n functionName: 'isValidSignature',\n args: [messageHash as Address, signature as Address],\n });\n\n const payload = {\n call: RPC_CALLS.eth_call,\n params: [\n {\n to: safeInfo.safeAddress,\n data: encodedIsValidSignatureCall,\n },\n 'latest',\n ],\n };\n\n try {\n const response = await this.communicator.send<Methods.rpcCall, RPCPayload<[TransactionConfig, string]>, string>(\n Methods.rpcCall,\n payload,\n );\n\n return response.data.slice(0, 10).toLowerCase() === MAGIC_VALUE_BYTES;\n } catch (err) {\n return false;\n }\n }\n\n calculateMessageHash(message: string): string {\n return hashMessage(message);\n }\n\n calculateTypedMessageHash(typedMessage: EIP712TypedData): string {\n const chainId =\n typeof typedMessage.domain.chainId === 'object'\n ? typedMessage.domain.chainId.toNumber()\n : Number(typedMessage.domain.chainId);\n\n let primaryType = typedMessage.primaryType;\n if (!primaryType) {\n const fields = Object.values(typedMessage.types);\n // We try to infer primaryType (simplified ether's version)\n const primaryTypes = Object.keys(typedMessage.types).filter((typeName) =>\n fields.every((dataTypes) => dataTypes.every(({ type }) => type.replace('[', '').replace(']', '') !== typeName)),\n );\n if (primaryTypes.length === 0 || primaryTypes.length > 1) throw new Error('Please specify primaryType');\n primaryType = primaryTypes[0];\n }\n\n return hashTypedData({\n message: typedMessage.message,\n domain: {\n ...typedMessage.domain,\n chainId,\n verifyingContract: typedMessage.domain.verifyingContract as Address,\n salt: typedMessage.domain.salt as Address,\n },\n types: typedMessage.types,\n primaryType,\n });\n }\n\n async getOffChainSignature(messageHash: string): Promise<string> {\n const response = await this.communicator.send<Methods.getOffChainSignature, string, string>(\n Methods.getOffChainSignature,\n messageHash,\n );\n\n return response.data;\n }\n\n async isMessageSigned(message: string | EIP712TypedData, signature = '0x'): Promise<boolean> {\n let check: (() => Promise<boolean>) | undefined;\n if (typeof message === 'string') {\n check = async (): Promise<boolean> => {\n const messageHash = this.calculateMessageHash(message);\n const messageHashSigned = await this.isMessageHashSigned(messageHash, signature);\n return messageHashSigned;\n };\n }\n\n if (isObjectEIP712TypedData(message)) {\n check = async (): Promise<boolean> => {\n const messageHash = this.calculateTypedMessageHash(message);\n const messageHashSigned = await this.isMessageHashSigned(messageHash, signature);\n return messageHashSigned;\n };\n }\n if (check) {\n const isValid = await check();\n\n return isValid;\n }\n\n throw new Error('Invalid message type');\n }\n\n async isMessageHashSigned(messageHash: string, signature = '0x'): Promise<boolean> {\n const checks = [this.check1271Signature.bind(this), this.check1271SignatureBytes.bind(this)];\n\n for (const check of checks) {\n const isValid = await check(messageHash, signature);\n if (isValid) {\n return true;\n }\n }\n\n return false;\n }\n\n async getEnvironmentInfo(): Promise<EnvironmentInfo> {\n const response = await this.communicator.send<Methods.getEnvironmentInfo, undefined, EnvironmentInfo>(\n Methods.getEnvironmentInfo,\n undefined,\n );\n\n return response.data;\n }\n\n @requirePermission()\n async requestAddressBook(): Promise<AddressBookItem[]> {\n const response = await this.communicator.send<Methods.requestAddressBook, undefined, AddressBookItem[]>(\n Methods.requestAddressBook,\n undefined,\n );\n\n return response.data;\n }\n}\n\nexport { Safe };\n","const MAGIC_VALUE = '0x1626ba7e';\nconst MAGIC_VALUE_BYTES = '0x20c13b0b';\n\nexport { MAGIC_VALUE, MAGIC_VALUE_BYTES };\n","export type Permission = {\n parentCapability: string;\n invoker: string;\n date?: number;\n caveats?: PermissionCaveat[];\n};\n\nexport type PermissionRequest = {\n [method: string]: Record<string, unknown>;\n};\n\nexport type PermissionCaveat = {\n type: string;\n value?: unknown;\n name?: string;\n};\n\nexport const PERMISSIONS_REQUEST_REJECTED = 4001;\n\nexport class PermissionsError extends Error {\n public code: number;\n public data?: unknown;\n\n constructor(message: string, code: number, data?: unknown) {\n super(message);\n\n this.code = code;\n this.data = data;\n\n // Should adjust prototype manually because how TS handles the type extension compilation\n // https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, PermissionsError.prototype);\n }\n}\n","import { Methods, RestrictedMethods } from '../communication/methods.js';\nimport { Communicator } from '../types/index.js';\nimport { PermissionRequest, Permission, PermissionsError, PERMISSIONS_REQUEST_REJECTED } from '../types/permissions.js';\n\nclass Wallet {\n private readonly communicator: Communicator;\n\n constructor(communicator: Communicator) {\n this.communicator = communicator;\n }\n\n async getPermissions(): Promise<Permission[]> {\n const response = await this.communicator.send<Methods.wallet_getPermissions, undefined, Permission[]>(\n Methods.wallet_getPermissions,\n undefined,\n );\n\n return response.data;\n }\n\n async requestPermissions(permissions: PermissionRequest[]): Promise<Permission[]> {\n if (!this.isPermissionRequestValid(permissions)) {\n throw new PermissionsError('Permissions request is invalid', PERMISSIONS_REQUEST_REJECTED);\n }\n\n try {\n const response = await this.communicator.send<\n Methods.wallet_requestPermissions,\n PermissionRequest[],\n Permission[]\n >(Methods.wallet_requestPermissions, permissions);\n\n return response.data;\n } catch {\n throw new PermissionsError('Permissions rejected', PERMISSIONS_REQUEST_REJECTED);\n }\n }\n\n isPermissionRequestValid(permissions: PermissionRequest[]): boolean {\n return permissions.every((pr: PermissionRequest) => {\n if (typeof pr === 'object') {\n return Object.keys(pr).every((method) => {\n if (Object.values(RestrictedMethods).includes(method as RestrictedMethods)) {\n return true;\n }\n\n return false;\n });\n }\n\n return false;\n });\n }\n}\n\nexport { Wallet };\n","import { Methods } from '../communication/index.js';\nimport { Safe } from '../safe/index.js';\nimport { Wallet } from '../wallet/index.js';\n\nimport { Permission, PermissionsError, PERMISSIONS_REQUEST_REJECTED } from '../types/permissions.js';\n\nconst hasPermission = (required: Methods, permissions: Permission[]): boolean =>\n permissions.some((permission) => permission.parentCapability === required);\n\nconst requirePermission = () => (_: unknown, propertyKey: string, descriptor: PropertyDescriptor) => {\n const originalMethod = descriptor.value;\n\n descriptor.value = async function () {\n // @ts-expect-error accessing private property from decorator. 'this' context is the class instance\n const wallet = new Wallet((this as Safe).communicator);\n\n let currentPermissions = await wallet.getPermissions();\n\n if (!hasPermission(propertyKey as Methods, currentPermissions)) {\n currentPermissions = await wallet.requestPermissions([{ [propertyKey as Methods]: {} }]);\n }\n\n if (!hasPermission(propertyKey as Methods, currentPermissions)) {\n throw new PermissionsError('Permissions rejected', PERMISSIONS_REQUEST_REJECTED);\n }\n\n return originalMethod.apply(this);\n };\n\n return descriptor;\n};\n\nexport default requirePermission;\n","import { Communicator } from './types/index.js';\nimport InterfaceCommunicator from './communication/index.js';\nimport { TXs } from './txs/index.js';\nimport { Eth } from './eth/index.js';\nimport { Safe } from './safe/index.js';\nimport { Wallet } from './wallet/index.js';\n\nexport type Opts = {\n allowedDomains?: RegExp[];\n debug?: boolean;\n};\n\nclass SafeAppsSDK {\n private readonly communicator: Communicator;\n public readonly eth: Eth;\n public readonly txs: TXs;\n public readonly safe: Safe;\n public readonly wallet: Wallet;\n\n constructor(opts: Opts = {}) {\n const { allowedDomains = null, debug = false } = opts;\n\n this.communicator = new InterfaceCommunicator(allowedDomains, debug);\n this.eth = new Eth(this.communicator);\n this.txs = new TXs(this.communicator);\n this.safe = new Safe(this.communicator);\n this.wallet = new Wallet(this.communicator);\n }\n}\n\nexport default SafeAppsSDK;\n","import SDK from './sdk.js';\n\nexport default SDK;\nexport * from './sdk.js';\nexport * from './types/index.js';\nexport * from './communication/methods.js';\nexport * from './communication/messageFormatter.js';\nexport { getSDKVersion } from './version.js';\nexport * from './eth/constants.js';\n","import { Icon } from \"@iconify/react\";\nimport { observer } from \"mobx-react-lite\";\nimport React from \"react\";\nimport { RootStore } from \"../../../store\";\nimport { DialogStore } from \"../../../module/Dialog\";\ninterface IProps {\n msg: string,\n hash: string,\n}\n\nconst SuccessTxDialog = observer((props: IProps) => {\n return <div className='flex-col gap-4 py-10'>\n <div className='w-full flex items-center justify-center'>\n <Icon icon=\"icon-park-solid:check-one\" width=\"48\" height=\"48\" className='text-green-500' /></div>\n <div className='text-2xl font-[900] text-center mt-4'>{props.msg}</div>\n <div className='flex items-center justify-center text-green-500 text-sm mt-6 gap-2 cursor-pointer hover:text-green-600 transition'\n onClick={e => window.open(`https://iotexscan.io/tx/${props.hash}`, '_blank')}>View on IoTeXScan <Icon icon=\"material-symbols:chip-extraction-rounded\" width=\"18\" height=\"18\" /></div>\n </div>\n})\nexport const ShowSuccessTxDialog = ({ msg, hash }) => {\n RootStore.Get(DialogStore).setData({\n title: '',\n content: <SuccessTxDialog msg={msg} hash={hash} />,\n isOpen: true,\n })\n}","import { Chain, Wallet, useConnectModal, getDefaultConfig, WalletDetailsParams } from '@rainbow-me/rainbowkit';\nimport { walletConnectWallet, metaMaskWallet, iopayWallet, okxWallet, binanceWallet } from '@rainbow-me/rainbowkit/wallets';\nimport { iotex } from 'viem/chains';\nimport { ObjectPool, Store } from '../..';\n\nexport class WalletConfigStore implements Store {\n sid = 'WalletConfigStore';\n autoObservable = true\n\n appName = 'Dappkit';\n projectId = 'b69e844f38265667350efd78e3e1a5fb'\n // @ts-ignore\n supportedChains: Chain[];\n defaultChainId = 4689;\n updateTicker = 1\n walletUpdateTick = 0;\n isConnect = false;\n // This mode to resolve and walletClient and nextui in some extreme cases cause page infinite redraw bugs\n compatibleMode = true;\n\n constructor(args: Partial<WalletConfigStore>) {\n Object.assign(this, args);\n }\n\n set(params: Partial<WalletConfigStore>) {\n Object.assign(this, params);\n this.updateTicker += 1\n }\n\n get reconnectOnMount() {\n if (!this.compatibleMode)\n return true\n\n if (!this.isConnect && this.walletUpdateTick == 0) {\n return true\n }\n if (!this.isConnect && this.walletUpdateTick != 0) {\n return false\n }\n if (this.isConnect) {\n return true\n }\n }\n\n get rainbowKitConfig() {\n return ObjectPool.get(`rainbowKitConfig-${this.supportedChains?.map(i => i.id).join('-')}`, () => {\n return getDefaultConfig({\n appName: this.appName,\n projectId: this.projectId,\n //@ts-ignore\n chains: this.supportedChains,\n wallets: [{\n groupName: 'Recommended',\n wallets: [iopayWallet, metaMaskWallet],\n },\n {\n groupName: 'Others',\n wallets: [metaMaskWallet, walletConnectWallet, iopayWallet, okxWallet, binanceWallet],\n }]\n });\n });\n }\n}","import { iotex as _iotex, iotexTestnet as _iotexTestnet, type Chain } from \"viem/chains\";\n\nexport type NetworkObject = {\n name: string;\n chainId: number;\n rpcUrl: string;\n logoUrl: string;\n explorerUrl: string;\n explorerName: string;\n nativeCoin: string;\n type: 'mainnet' | 'testnet';\n};\n\nexport type WalletTransactionHistoryType = {\n chainId: number;\n tx?: string;\n msg: string;\n timestamp: number;\n type: string;\n status: 'loading' | 'success' | 'fail';\n};\n\nexport type AddressMode = 'io' | '0x';\n\nexport const iotex = {\n iconUrl: 'https://cdn-dapp-works.s3.us-east-1.amazonaws.com/1dd84d927ae959c508392be62e6eb549.png',\n ..._iotex,\n} as Chain;\nexport const iotexTestnet = {\n iconUrl: 'https://cdn-dapp-works.s3.us-east-1.amazonaws.com/1dd84d927ae959c508392be62e6eb549.png',\n ..._iotexTestnet,\n} as Chain;;","import { Icon } from '@iconify/react';\nimport { Button, Checkbox, Chip, Input, Listbox, ListboxItem, Popover, PopoverContent, PopoverTrigger, Radio, RadioGroup, Table, TableBody, TableCell, TableColumn, TableHeader, TableRow, Tooltip } from '@nextui-org/react';\nimport { observer, useLocalObservable } from 'mobx-react-lite';\nimport React from 'react';\nimport { useEffect } from 'react';\nimport { RootStore } from \"../../../store\";\nimport { WalletStore } from \"..\";\nimport { WalletRpcStore } from '../walletPluginStore';\nimport { ToastPlugin } from '../../Toast/Toast';\n\n\nconst RpcList = observer(() => {\n const wallet = RootStore.Get(WalletStore)\n const rpcStore = RootStore.Get(WalletRpcStore)\n useEffect(() => {\n rpcStore.testRpc()\n }, [])\n\n return (\n <div className='mb-3 mt-4'>\n <div className='w-full flex mb-2 mt-2'>\n <div className='flex items-center justify-center gap-2'>\n <Checkbox size='sm' isSelected={rpcStore.isAutoSelectRpc.value} onValueChange={e => rpcStore.isAutoSelectRpc.save(e)}>Auto select rpc</Checkbox>\n <Tooltip content={<div className='w-[300px]'>Once selected, if the current RPC cannot send a request, an available RPC will be automatically chosen.</div>}>\n <Icon icon=\"ph:question\" width=\"18\" height=\"18\" className='text-gray-500' />\n </Tooltip>\n </div>\n\n <Button startContent={<Icon icon=\"tabler:test-pipe\" width=\"18\" height=\"18\" />} className='ml-auto' onClick={e => {\n rpcStore.testRpc()\n }}>Test</Button>\n <Popover placement=\"bottom\" offset={20} showArrow isOpen={rpcStore.showCustomRpc} onOpenChange={(open) => rpcStore.showCustomRpc = (open)}>\n <PopoverTrigger>\n <Button color=\"primary\" startContent={<Icon icon=\"basil:add-solid\" width=\"18\" height=\"18\" />} className='ml-4'>Add custom rpc</Button>\n </PopoverTrigger>\n <PopoverContent>\n <div className=\"px-1 py-2\">\n <Input\n type=\"url\"\n className='mb-4'\n placeholder=\"https://rpc.com\"\n value={rpcStore.customRpc}\n onValueChange={(value) => {\n rpcStore.customRpc = value;\n }}\n />\n <Button color='primary' isDisabled={!rpcStore.customRpc} onClick={e => rpcStore.addCustomRpc()}>Save</Button>\n </div>\n </PopoverContent>\n </Popover>\n\n </div>\n\n <Table\n color=\"success\"\n selectionMode=\"single\"\n defaultSelectedKeys={[rpcStore.curRpc.value]}\n aria-label=\"Example static collection table\"\n >\n <TableHeader>\n <TableColumn>RPC Server Address</TableColumn>\n <TableColumn align='center'>Score</TableColumn>\n <TableColumn align='center'>Height</TableColumn>\n <TableColumn align='center'>Latency</TableColumn>\n <TableColumn align='center'>Action</TableColumn>\n </TableHeader>\n <TableBody >\n {\n rpcStore.rpcList?.value?.map((item, index) => {\n return <TableRow className='cursor-pointer' key={item.name} onClick={e => {\n rpcStore.curRpc.save(item.name)\n RootStore.Get(ToastPlugin).success('Set rpc success')\n }} >\n <TableCell >{item.name}</TableCell>\n <TableCell >{rpcStore.scoreIcon(item.latency)}</TableCell>\n <TableCell>{item.height}</TableCell>\n <TableCell className={rpcStore.latencyColor(item.latency)}>{item.latency}s</TableCell>\n <TableCell>\n <div className=\"relative flex items-center gap-2\">\n <Tooltip content=\"Add to metamask\">\n <span className=\"text-lg text-danger cursor-pointer active:opacity-50\" onClick={e => {\n e.stopPropagation()\n rpcStore.addToMetamask(item.name)\n }}>\n <Icon icon=\"logos:metamask-icon\" width=\"18\" height=\"18\" />\n </span>\n </Tooltip>\n {\n item.custom && <Tooltip content=\"Remove\">\n <span className=\"text-lg text-danger cursor-pointer active:opacity-50\" onClick={e => {\n e.stopPropagation()\n rpcStore.removeRpc(item.name)\n }}>\n <Icon icon=\"solar:trash-bin-minimalistic-broken\" width=\"20\" height=\"20\" />\n </span>\n </Tooltip>\n }\n </div>\n </TableCell>\n </TableRow>\n })\n }\n </TableBody>\n </Table>\n </div>\n );\n});\n\nexport { RpcList };\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/utils.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/endpoint.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/config.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/safe-info.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/safe-apps.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/transactions.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/chains.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/common.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/dist/types/master-copies.js","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/decoded-data.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/safe-messages.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/notifications.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/dist/types/relay.js","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/index.ts","../module/Wallet/provider.tsx","../module/Wallet/index.tsx","../module/Wallet/walletPluginStore.tsx","../../../node_modules/@safe-global/safe-apps-sdk/src/version.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/communication/utils.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/communication/messageFormatter.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/communication/methods.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/communication/index.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/types/sdk.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/types/gateway.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/txs/index.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/eth/constants.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/eth/index.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/safe/index.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/safe/signatures.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/types/permissions.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/wallet/index.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/decorators/requirePermissions.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/sdk.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/index.ts","../module/Wallet/SuccessTxDialog/index.tsx","../module/Wallet/walletConfigStore.ts","../module/Wallet/type.ts","../module/Wallet/RpcList/index.tsx"],"names":["ImplementationVersionState","SafeAppAccessPolicyTypes","SafeAppFeatures","SafeAppSocialPlatforms","Operation","TransactionStatus","TransferDirection","TransactionTokenType","SettingsInfoType","TransactionInfoType","ConflictType","TransactionListItemType","DetailedExecutionInfoType","DurationType","StartTimeValue","LabelValue","RPC_AUTHENTICATION","GAS_PRICE_TYPE","FEATURES","TokenType","ConfirmationViewTypes","SafeMessageListItemType","SafeMessageStatus","DeviceType","React","useEffect","useReconnect","useConnectModal","Methods","RestrictedMethods","Icon","_a","observer"],"mappings":"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","sourcesContent":[null,null,null,null,null,null,null,null,"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=master-copies.js.map",null,null,null,"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=relay.js.map",null,"import { RainbowKitProvider, darkTheme, lightTheme } from '@rainbow-me/rainbowkit';\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport React, { useEffect, useState } from 'react';\nimport { useReconnect, WagmiProvider } from 'wagmi';\nimport { RootStore } from \"../../store\";\nimport { WalletStore } from '.';\nimport { WalletConfigStore } from './walletConfigStore'\nimport { reaction } from 'mobx';\nimport { type Chain } from \"viem/chains\";\nimport { iotex } from './type';\nimport { useRouter } from 'next/router';\n\nconst queryClient = new QueryClient();\nexport const WalletProvider = (({\n children,\n theme,\n appName,\n supportedChains,\n compatibleMode = true,\n router\n}: {\n children: React.ReactNode,\n theme?: 'dark' | 'light',\n appName?: string,\n supportedChains?: Chain[],\n compatibleMode?: boolean,\n router?: any\n}) => {\n //@ts-ignore\n const walletConfig = RootStore.Get(WalletConfigStore, { args: { supportedChains: supportedChains ?? [iotex] } });\n\n const [config, setConfig] = useState(walletConfig.rainbowKitConfig)\n\n reaction(\n () => walletConfig.updateTicker,\n () => {\n setConfig(walletConfig.rainbowKitConfig)\n }\n )\n\n useEffect(() => {\n if (appName) {\n walletConfig.appName = appName\n }\n if (compatibleMode != undefined) {\n walletConfig.compatibleMode = compatibleMode\n }\n }, [appName, compatibleMode])\n return (\n //@ts-ignore\n <WagmiProvider config={config} reconnectOnMount={compatibleMode ? false : true}>\n <QueryClientProvider client={queryClient} >\n <RainbowKitProvider locale=\"en\" theme={theme == 'dark' ? darkTheme() : lightTheme()}>\n {/* @ts-ignore */}\n {children}\n <WalletConnect compatibleMode={compatibleMode} router={router} />\n </RainbowKitProvider>\n </QueryClientProvider>\n </WagmiProvider>\n );\n});\n\nexport const WalletConnect = ({ compatibleMode = true, router }) => {\n const { reconnect } = useReconnect()\n const wallet = RootStore.Get(WalletStore);\n wallet.use();\n\n if (router && compatibleMode) {\n useEffect(() => {\n if (!wallet.account) {\n reconnect()\n }\n }, [router])\n }\n\n return <></>;\n};\n","import React, { useEffect } from \"react\";\nimport { Store } from \"../../store/standard/base\";\nimport { Account, PublicClient, type HttpTransport, WalletClient, TransactionReceipt } from \"viem\";\nimport { PromiseHook } from '../../store/standard/PromiseHook';\nimport { BigNumberState } from '../../store/standard/BigNumberState';\nimport BigNumber from 'bignumber.js';\nimport { AddressMode, WalletTransactionHistoryType } from \"./type\";\nimport EventEmitter from \"events\";\nimport { SwitchChainMutate } from \"wagmi/query\";\nimport { Config, useAccount, useConnect, useDisconnect, useReconnect, useSwitchChain, useWalletClient, } from \"wagmi\";\nimport { Chain, useConnectModal, WalletDetailsParams } from '@rainbow-me/rainbowkit';\nimport { RootStore } from \"../../store\";\nimport { ToastPlugin } from \"../Toast/Toast\";\nimport { http, createPublicClient } from 'viem';\nimport { WalletHistoryStore, WalletRpcStore } from './walletPluginStore';\nimport SafeAppsSDK, { TransactionStatus } from '@safe-global/safe-apps-sdk';\nimport { ShowSuccessTxDialog } from './SuccessTxDialog'\nimport { WalletConfigStore } from \"./walletConfigStore\";\nimport { AIem } from \"../../aiem\";\nimport { helper } from \"../../lib/helper\";\n\nexport class WalletStore implements Store {\n sid = 'wallet';\n autoObservable = true;\n account: `0x${string}` = null;\n isSuccessDialogOpen = false;\n isInSafeApp = false;\n isConnect = false;\n walletClient: WalletClient;\n event = new EventEmitter();\n switchChain: SwitchChainMutate<Config, unknown> | undefined;\n updateTicker = 0;\n addressMode: AddressMode = '0x';\n get isIoTeXChain(): boolean {\n if (this.chain && this.chain.id == 4689) {\n return true\n }\n return false\n }\n setAddressMode(mode: AddressMode) {\n this.addressMode = mode;\n localStorage.setItem('addressMode', mode);\n }\n get accountFormat() {\n return this.account ? helper.address.convertAddress(this.addressMode, this.account) : '-';\n }\n get connectAccountEllipsisFormat() {\n return this.account ? helper.string.truncate(helper.address.convertAddress(this.addressMode, this.account), 11, '...') : '-';\n }\n get accountEllipsisFormat() {\n return this.account ? helper.string.truncate(helper.address.convertAddress(this.addressMode, this.account), 16, '...') : '-';\n }\n get supportedChains() {\n return RootStore.Get(WalletConfigStore).supportedChains\n }\n chain: Chain | undefined;\n openConnectModal: any;\n disconnect: any;\n balance = PromiseHook.wrap({\n func: async () => {\n if (!this.publicClient || !this.account) return helper.number.warpBigNumber('0');\n const balance = await this.publicClient.getBalance({\n address: this.account,\n });\n if (balance) {\n return helper.number.warpBigNumber(balance?.toString() ?? '0');\n }\n },\n });\n\n constructor(args?: Partial<WalletStore>) {\n Object.assign(this, args);\n }\n\n use(router?: any) {\n const { data: walletClient, isSuccess } = useWalletClient();\n const { chain, address, isConnected } = useAccount();\n\n const { switchChain } = useSwitchChain();\n const { openConnectModal } = useConnectModal();\n const { connect } = useConnect();\n const { disconnect } = useDisconnect();\n const walletConfigStore = RootStore.Get(WalletConfigStore);\n this.set({\n //@ts-ignore\n connect,\n // @ts-ignore \n walletClient,\n openConnectModal,\n switchChain,\n disconnect\n })\n\n useEffect(() => {\n RootStore.Get(WalletHistoryStore).set({ isRender: true })\n this.set({\n isConnect: isConnected,\n account: address,\n // @ts-ignore \n chain,\n })\n walletConfigStore.set({\n isConnect: isConnected,\n })\n if (this.account) {\n this.updateTicker++;\n walletConfigStore.set({\n walletUpdateTick: this.updateTicker,\n })\n this.event.emit('walletAccount:ready');\n }\n }, [address, isConnected, chain])\n\n\n\n useEffect(() => {\n setTimeout(() => {\n this.balance.call()\n }, 1500)\n }, [this.updateTicker])\n }\n\n //always return or return default chain\n get publicClient(): PublicClient<HttpTransport, Chain, any, any> {\n if (this.chain && this.supportedChains.some(i => i.id === this.chain.id)) {\n if (this.chain.id == 4689) {\n return AIem.PubClient('4689', { rpcUrls: { default: { http: [RootStore.Get(WalletRpcStore).curRpc.value] } }, multicall: true })\n }\n return AIem.PubClient(this.chain.id.toString())\n } else {\n return AIem.PubClient('4689')\n }\n }\n\n set(args: Partial<WalletStore>) {\n Object.assign(this, args);\n }\n\n toJSON() {\n const { account } = this;\n return { account };\n }\n\n async prepare(chainId?: number): Promise<WalletStore> {\n return new Promise<WalletStore>(async (res, rej) => {\n try {\n if (this.account) {\n if (!chainId) {\n res(this);\n }\n if (Number(this.chain?.id) == Number(chainId)) {\n console.log('has and return ')\n res(this);\n }\n this.switchChain?.({ chainId: chainId ?? 4689 });\n const interval = setInterval(() => {\n if (this.switchChain) {\n if (this.chain?.id == chainId) {\n try {\n // //@ts-ignore\n // const provider = new ethers.providers.Web3Provider(window?.ethereum);\n // this.signer = provider.getSigner();\n res(this);\n } catch (error) {\n }\n clearInterval(interval);\n }\n }\n }, 1000);\n } else {\n this.openConnectModal();\n // this.connect?.({ chainId, connector: this.rainbowkitParams.connectors()[0] }) connect success but ui not change so\n const interval = setInterval(() => {\n if (this.account) {\n clearInterval(interval);\n res(this);\n }\n }, 1000);\n }\n } catch (error) {\n rej(error);\n }\n });\n }\n\n\n async waitForTransactionReceipt({ hash }) {\n // https://github.com/wevm/wagmi/discussions/3463#discussioncomment-8139187\n if (this.isInSafeApp) {\n // console.log('isInSafeApp', this.isInSafeApp);\n const sdk = new SafeAppsSDK();\n while (true) {\n const queued = await sdk.txs.getBySafeTxHash(hash);\n if (queued.txStatus === TransactionStatus.AWAITING_CONFIRMATIONS || queued.txStatus === TransactionStatus.AWAITING_EXECUTION || queued.txStatus === TransactionStatus.CANCELLED) {\n await new Promise((resolve) => setTimeout(resolve, 2000));\n } else {\n return this.publicClient.waitForTransactionReceipt({ hash: queued.txHash! as `0x${string}` });\n }\n }\n } else {\n return this.publicClient.waitForTransactionReceipt({ hash });\n }\n }\n\n static async SendTx(...args: Parameters<WalletStore['sendTx']>) {\n return RootStore.Get(WalletStore).sendTx(...args);\n }\n static async SendRawTx(...args: Parameters<WalletStore['sendRawTx']>) {\n return RootStore.Get(WalletStore).sendRawTx(...args);\n }\n async sendTx({\n chainId,\n tx,\n autoAlert = true,\n loadingText,\n successText,\n onError,\n historyItem,\n showSuccessDialog = false,\n }: {\n chainId: number | string;\n tx: any;\n autoAlert?: boolean;\n loadingText?: string;\n successText?: string;\n showSuccessDialog?: boolean;\n historyItem?: Pick<WalletTransactionHistoryType, 'msg' | 'type'>;\n onError?: (error: any) => void;\n }) {\n const toast = RootStore.Get(ToastPlugin);\n let hash;\n const historyStore = RootStore.Get(WalletHistoryStore)\n try {\n if (loadingText) toast.loading(loadingText);\n if (!chainId) throw new Error('chainId, address, data is required');\n await RootStore.Get(WalletStore).prepare(Number(chainId));\n hash = await tx();\n if (historyItem) {\n historyStore.recordHistory({ ...historyItem, tx: hash, timestamp: Date.now(), status: 'loading', chainId: Number(chainId) });\n }\n const receipt = await this.waitForTransactionReceipt({ hash });\n if (receipt.status == 'success') {\n toast.dismiss();\n toast.success('The transaction was successful');\n if (historyItem) {\n if (showSuccessDialog) {\n ShowSuccessTxDialog({ msg: historyItem.msg, hash: hash });\n }\n historyStore.updateHistoryStatusByTx(hash, 'success');\n }\n } else {\n toast.dismiss();\n toast.error('The transaction failed');\n historyStore.updateHistoryStatusByTx(hash, 'fail');\n }\n if (successText) toast.success(successText);\n this.updateTicker++;\n return receipt;\n } catch (error) {\n console.log(error);\n toast.dismiss();\n if (autoAlert) {\n const msg = /reason=\"[A-Za-z0-9_ :\"]*/g.exec(error?.message);\n console.log('sendTx', error?.message);\n if (error?.message?.includes('user rejected transaction') || String(error).toLowerCase().includes('user rejected') || String(error).toLowerCase().includes('user denied')) {\n toast.error('user rejected transaction');\n onError?.(error);\n return;\n }\n if (error?.message?.includes('The Transaction may not be processed on a block yet') || error?.message?.includes('could not be found')) {\n if (historyItem) {\n historyStore.updateHistoryStatusByTx(hash, 'success');\n }\n toast.success('The transaction was successful');\n return;\n }\n\n if (msg) {\n toast.error(msg as unknown as string);\n onError?.(msg);\n } else {\n if (error?.message.includes('viem')) {\n const messageArr = error?.message.split('\\n');\n console.log('messageArr---', messageArr);\n if (messageArr.length > 0) {\n toast.error(messageArr[0]);\n onError?.(messageArr[0]);\n }\n } else {\n toast.error(String(error?.message || error));\n onError?.(String(error?.message || error));\n }\n }\n } else {\n throw error;\n }\n }\n }\n async sendRawTx({\n chainId,\n address,\n data,\n value = '0',\n autoAlert = true,\n onSended,\n onSuccess,\n onError,\n historyItem,\n loadingText,\n showSuccessDialog = false,\n }: {\n loadingText?: string;\n chainId: number | string;\n address: string;\n data: string | null;\n value?: string;\n autoRefresh?: boolean;\n autoAlert?: boolean;\n historyItem?: Pick<WalletTransactionHistoryType, 'msg' | 'type'>;\n showTransactionSubmitDialog?: boolean;\n showSuccessDialog?: boolean;\n onSended?: ({ res }: { res: TransactionReceipt }) => void;\n onSuccess?: ({ res }: { res: TransactionReceipt }) => void;\n onError?: ({ res }: { res: TransactionReceipt }) => void;\n }): Promise<TransactionReceipt | undefined> {\n chainId = Number(chainId);\n const toast = RootStore.Get(ToastPlugin);\n try {\n if (!chainId || !address) throw new Error('chainId, address, is required');\n await RootStore.Get(WalletStore).prepare(chainId);\n if (loadingText) toast.loading(loadingText);\n const historyStore = RootStore.Get(WalletHistoryStore)\n // @ts-ignore\n const hash = await this.walletClient.sendTransaction({\n account: this.account,\n to: address as `0x${string}`,\n data: data as `0x${string}`,\n value: value ? BigInt(value) : undefined,\n });\n // console.log(hash)\n let receipt = await this.waitForTransactionReceipt({ hash });\n console.log(receipt);\n if (historyItem) {\n historyStore.recordHistory({ ...historyItem, tx: receipt.transactionHash, timestamp: Date.now(), status: 'loading', chainId: Number(chainId) });\n }\n onSended ? onSended({ res: receipt }) : null;\n if (receipt.status == 'success') {\n if (historyItem) {\n if (showSuccessDialog) {\n ShowSuccessTxDialog({ msg: historyItem.msg, hash: hash });\n }\n historyStore.updateHistoryStatusByTx(receipt.transactionHash, 'success');\n }\n onSuccess && onSuccess({ res: receipt });\n toast.dismiss();\n toast.success('The transaction was successful');\n } else {\n if (historyItem) {\n historyStore.updateHistoryStatusByTx(receipt.transactionHash, 'fail');\n }\n onError && onError({ res: receipt });\n toast.dismiss();\n toast.error('The transaction failed');\n }\n return receipt;\n } catch (error) {\n toast.dismiss();\n console.log(error.message);\n const msg = /reason=\"[A-Za-z0-9_ :\"]*/g.exec(error?.message);\n // Details: Transaction was rejected\n if (error?.message?.includes('user rejected transaction') || error?.message?.includes('cancel') || String(error).toLowerCase().includes('user rejected') || String(error).toLowerCase().includes('user denied')) {\n autoAlert && toast.error('user rejected transaction');\n return;\n }\n if (error?.message?.includes('Price slippage check')) {\n autoAlert && toast.error('The latest pool price has changed, please try to increase the slippage tolerance or reload the page.');\n return;\n }\n if (error?.message.includes('viem')) {\n const messageArr = error?.message.split('\\n');\n console.log('messageArr---', messageArr);\n if (messageArr.length > 0) {\n toast.error(messageArr[0]);\n onError?.(messageArr[0]);\n return;\n }\n }\n\n if (msg) {\n autoAlert && toast.error(msg as unknown as string);\n } else {\n autoAlert && toast.error(String(error.message));\n }\n if (!autoAlert) {\n throw error;\n }\n }\n }\n}","import React from 'react';\nimport { Icon } from \"@iconify/react\";\nimport { RootStore } from \"../../store\";\nimport { Store } from \"../../store/standard/base\";\nimport { StorageState } from '../../store/standard/StorageState';\nimport { ToastPlugin } from \"../Toast/Toast\";\nimport { WalletTransactionHistoryType } from \"./type\";\nimport { WalletStore } from \".\";\nimport { helper } from \"../../lib/helper\";\n\nconst defaultRPCList = [\n { name: 'https://babel-api.fastblocks.io', latency: 0, height: 0, custom: false },\n { name: 'https://babel-api.mainnet.iotex.one', latency: 0, height: 0, },\n { name: 'https://babel-api.mainnet.iotex.io', latency: 0, height: 0, },\n { name: 'https://iotex-network.rpc.thirdweb.com', latency: 0, height: 0, },\n { name: 'https://iotexrpc.com', latency: 0, height: 0, },\n { name: 'https://iotex.api.onfinality.io/public', latency: 0, height: 0, },\n { name: 'https://rpc.ankr.com/iotex', latency: 0, height: 0, },\n]\nexport class WalletRpcStore implements Store {\n sid = 'WalletPluginStore';\n autoObservable = true\n curRpc = new StorageState({ default: 'https://babel-api.mainnet.iotex.one', key: 'curRPC-v2', value: 'https://babel-api.mainnet.iotex.one' });\n isAutoSelectRpc = new StorageState({ key: 'isAutoSelectRpc', default: true });\n customRpc = '';\n rpcList = new StorageState({ key: 'customRpcList-v2', default: defaultRPCList, value: [] })\n showCustomRpc = false;\n get currentRpc() {\n console.log(this.rpcList.value?.find(i => i.name == this.curRpc))\n return this.rpcList.value?.find(i => i.name == this.curRpc.value) || null\n }\n addCustomRpc() {\n const item = { name: this.customRpc, latency: 0, height: 0, custom: true }\n if (defaultRPCList.find(i => i.name === item.name)) {\n return RootStore.Get(ToastPlugin).error('Rpc already exists')\n }\n if (this.rpcList.value) {\n this.rpcList.save([...this.rpcList.value, item])\n this.refresh()\n return\n }\n this.rpcList.save([...defaultRPCList, item])\n this.refresh()\n }\n async addToMetamask(url) {\n try {\n if (typeof window == 'undefined') return;\n await window?.ethereum?.request({\n method: 'wallet_addEthereumChain',\n params: [{\n chainId: `0x${(4689).toString(16)}`,\n chainName: 'IoTeX Mainnet',\n nativeCurrency: {\n name: 'IoTeX',\n symbol: 'IOTX',\n decimals: 18,\n },\n rpcUrls: [url],\n blockExplorerUrls: ['https://iotexscan.io'],\n }]\n });\n RootStore.Get(ToastPlugin).success('Network added');\n console.log('Network added');\n } catch (error) {\n console.error('Failed to add network', error);\n }\n }\n refresh() {\n this.showCustomRpc = false\n this.customRpc = ''\n setTimeout(() => {\n this.testRpc()\n }, 500)\n }\n latencyColor(latency: number) {\n if (latency < 0) {\n return 'text-red-500'\n }\n if (latency < 1) {\n return 'text-green-500'\n }\n if (latency < 2) {\n return 'text-yellow-500'\n }\n return 'text-red-500'\n }\n async testRpcFunction(url: string): Promise<{ url: string, lentency: number, height: number }> {\n const start = performance.now();\n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n method: 'eth_getBlockByNumber',\n params: [\"latest\", false],\n id: 1,\n }),\n });\n\n if (!response.ok) {\n throw new Error(`Error from server: ${response.status}`);\n }\n const res = await response.json();\n console.log(res)\n const end = performance.now();\n return { url, lentency: Number(helper.number.numberFormat(((end - start) / 1000), '0.000', { fallback: '-1' })), height: parseInt(res.result.number, 16) };\n } catch (error) {\n console.error('RPC Latency Test Failed:', error);\n return { url, lentency: -1, height: -1 };\n }\n }\n testRpc() {\n this.rpcList?.value.forEach(i => {\n this.testRpcFunction(i.name).then(res => {\n i.latency = res.lentency\n i.height = res.height\n })\n })\n this.rpcList.save(this.rpcList.value)\n }\n removeRpc(name: string) {\n this.rpcList.save(this.rpcList.value.filter(i => i.name !== name))\n }\n scoreIcon(score: number) {\n if (score < 0) {\n return <Icon icon=\"codicon:error\" width=\"18\" height=\"18\" style={{ color: \"#FF0000\" }} />\n }\n if (score < 1) {\n return <Icon icon=\"icon-park-solid:check-one\" width=\"18\" height=\"18\" style={{ color: \"#289726\" }} />\n }\n if (score < 2) {\n return <Icon icon=\"bxs:error\" width=\"18\" height=\"18\" style={{ color: \"#FFA500\" }} />\n }\n return <Icon icon=\"codicon:error\" width=\"18\" height=\"18\" style={{ color: \"#FF0000\" }} />\n }\n get wallet() {\n return RootStore.Get(WalletStore)\n }\n // debounceAutoSelectRpc = pDebounce(this.autoSelectRpc, 3000)\n async autoSelectRpc() {\n console.log('autoSelectRpc')\n for (let i = 0; i < this.rpcList.value.length; i++) {\n const item = this.rpcList.value[i]\n const res = await this.testRpcFunction(item.name)\n if (res.lentency != -1 || res.height > 0) {\n this.curRpc.save(item.name)\n break;\n }\n }\n }\n}\n\nexport class WalletHistoryStore implements Store {\n sid = 'WalletHistoryStore';\n isRender = false\n autoObservable = true\n set(params: Partial<WalletHistoryStore>) {\n Object.assign(this, params);\n }\n private history = new StorageState<WalletTransactionHistoryType[] | null>({ value: [], key: 'history' });\n get historyList(): WalletTransactionHistoryType[] {\n if (this.isRender) {\n return this.history.value\n }\n return []\n }\n recordHistory(item: WalletTransactionHistoryType) {\n let value: WalletTransactionHistoryType[] | null = this.history.load();\n if (!value) {\n value = [item];\n } else {\n value = [...value, item];\n }\n this.history.setValue(value);\n }\n updateHistoryStatusByTx(tx: string | null, status: 'loading' | 'success' | 'fail') {\n let value: WalletTransactionHistoryType[] | null = this.history.load();\n if (!value) {\n return;\n }\n value = value.map((i) => {\n if (i.tx == tx) {\n i.status = status;\n return i;\n }\n if (!tx) {\n i.status = status;\n }\n return i;\n });\n this.history.setValue(value);\n }\n clearHistory() {\n this.history.setValue(null);\n }\n}\n","export const getSDKVersion = () => '9.1.0';\n","// i.e. 0-255 -> '00'-'ff'\nconst dec2hex = (dec: number): string => dec.toString(16).padStart(2, '0');\n\nconst generateId = (len: number): string => {\n const arr = new Uint8Array((len || 40) / 2);\n window.crypto.getRandomValues(arr);\n return Array.from(arr, dec2hex).join('');\n};\n\nconst generateRequestId = (): string => {\n if (typeof window !== 'undefined') {\n return generateId(10);\n }\n\n return new Date().getTime().toString(36);\n};\n\nexport { generateRequestId };\n","import { ErrorResponse, SDKRequestData, RequestId, SuccessResponse, MethodToResponse } from '../types/index.js';\nimport { getSDKVersion } from '../version.js';\nimport { Methods } from './methods.js';\nimport { generateRequestId } from './utils.js';\n\nclass MessageFormatter {\n static makeRequest = <M extends Methods = Methods, P = unknown>(method: M, params: P): SDKRequestData<M, P> => {\n const id = generateRequestId();\n\n return {\n id,\n method,\n params,\n env: {\n sdkVersion: getSDKVersion(),\n },\n };\n };\n\n static makeResponse = (id: RequestId, data: MethodToResponse[Methods], version: string): SuccessResponse => ({\n id,\n success: true,\n version,\n data,\n });\n\n static makeErrorResponse = (id: RequestId, error: string, version: string): ErrorResponse => ({\n id,\n success: false,\n error,\n version,\n });\n}\n\nexport { MessageFormatter };\n","export enum Methods {\n sendTransactions = 'sendTransactions',\n rpcCall = 'rpcCall',\n getChainInfo = 'getChainInfo',\n getSafeInfo = 'getSafeInfo',\n getTxBySafeTxHash = 'getTxBySafeTxHash',\n getSafeBalances = 'getSafeBalances',\n signMessage = 'signMessage',\n signTypedMessage = 'signTypedMessage',\n getEnvironmentInfo = 'getEnvironmentInfo',\n getOffChainSignature = 'getOffChainSignature',\n requestAddressBook = 'requestAddressBook',\n wallet_getPermissions = 'wallet_getPermissions',\n wallet_requestPermissions = 'wallet_requestPermissions',\n}\n\nexport enum RestrictedMethods {\n requestAddressBook = 'requestAddressBook',\n}\n","import { MessageFormatter } from './messageFormatter.js';\nimport { Methods } from './methods.js';\nimport { InterfaceMessageEvent, Communicator, Response, SuccessResponse } from '../types/index.js';\n\n// eslint-disable-next-line\ntype Callback = (response: any) => void;\n\nclass PostMessageCommunicator implements Communicator {\n private readonly allowedOrigins: RegExp[] | null = null;\n private callbacks = new Map<string, Callback>();\n private debugMode = false;\n private isServer = typeof window === 'undefined';\n\n constructor(allowedOrigins: RegExp[] | null = null, debugMode = false) {\n this.allowedOrigins = allowedOrigins;\n this.debugMode = debugMode;\n\n if (!this.isServer) {\n window.addEventListener('message', this.onParentMessage);\n }\n }\n\n private isValidMessage = ({ origin, data, source }: InterfaceMessageEvent): boolean => {\n const emptyOrMalformed = !data;\n const sentFromParentEl = !this.isServer && source === window.parent;\n const majorVersionNumber = typeof data.version !== 'undefined' && parseInt(data.version.split('.')[0]);\n const allowedSDKVersion = typeof majorVersionNumber === 'number' && majorVersionNumber >= 1;\n let validOrigin = true;\n if (Array.isArray(this.allowedOrigins)) {\n validOrigin = this.allowedOrigins.find((regExp) => regExp.test(origin)) !== undefined;\n }\n\n return !emptyOrMalformed && sentFromParentEl && allowedSDKVersion && validOrigin;\n };\n\n private logIncomingMessage = (msg: InterfaceMessageEvent): void => {\n console.info(`Safe Apps SDK v1: A message was received from origin ${msg.origin}. `, msg.data);\n };\n\n private onParentMessage = (msg: InterfaceMessageEvent): void => {\n if (this.isValidMessage(msg)) {\n this.debugMode && this.logIncomingMessage(msg);\n this.handleIncomingMessage(msg.data);\n }\n };\n\n private handleIncomingMessage = (payload: InterfaceMessageEvent['data']): void => {\n const { id } = payload;\n\n const cb = this.callbacks.get(id);\n if (cb) {\n cb(payload);\n\n this.callbacks.delete(id);\n }\n };\n\n public send = <M extends Methods, P, R>(method: M, params: P): Promise<SuccessResponse<R>> => {\n const request = MessageFormatter.makeRequest(method, params);\n\n if (this.isServer) {\n throw new Error(\"Window doesn't exist\");\n }\n\n window.parent.postMessage(request, '*');\n return new Promise((resolve, reject) => {\n this.callbacks.set(request.id, (response: Response<R>) => {\n if (!response.success) {\n reject(new Error(response.error));\n return;\n }\n\n resolve(response);\n });\n });\n };\n}\n\nexport default PostMessageCommunicator;\nexport * from './methods.js';\n","import { ChainInfo as _ChainInfo } from '@safe-global/safe-gateway-typescript-sdk';\n\nexport type ChainInfo = Pick<\n _ChainInfo,\n 'chainName' | 'chainId' | 'shortName' | 'nativeCurrency' | 'blockExplorerUriTemplate'\n>;\n\nexport { NativeCurrency } from '@safe-global/safe-gateway-typescript-sdk';\n\nexport type BaseTransaction = {\n to: string;\n value: string;\n data: string;\n};\n\nexport type GetTxBySafeTxHashParams = {\n safeTxHash: string;\n};\n\nexport interface SendTransactionRequestParams {\n safeTxGas?: number;\n}\n\nexport interface SendTransactionsParams {\n txs: BaseTransaction[];\n params?: SendTransactionRequestParams;\n}\n\nexport type GetBalanceParams = { currency?: string };\n\nexport type SignMessageParams = {\n message: string;\n};\n\nexport interface TypedDataDomain {\n name?: string;\n version?: string;\n chainId?: string | number | bigint | { toNumber: () => number };\n verifyingContract?: string;\n salt?: string;\n}\n\nexport interface TypedDataTypes {\n name: string;\n type: string;\n}\n\nexport type TypedMessageTypes = { [key: string]: TypedDataTypes[] };\n\nexport type EIP712TypedData = {\n domain: TypedDataDomain;\n types: TypedMessageTypes;\n message: Record<string, any>;\n primaryType?: string;\n};\n\nexport type SignTypedMessageParams = {\n typedData: EIP712TypedData;\n};\n\nexport type SendTransactionsResponse = {\n safeTxHash: string;\n};\n\nexport type OffChainSignMessageResponse = {\n messageHash: string;\n};\n\nexport type SignMessageResponse = SendTransactionsResponse | OffChainSignMessageResponse;\n\nexport type SafeInfo = {\n safeAddress: string;\n chainId: number;\n threshold: number;\n owners: string[];\n isReadOnly: boolean;\n};\n\nexport type SafeInfoExtended = SafeInfo & {\n nonce: number;\n implementation: string;\n modules: string[] | null;\n fallbackHandler: string | null;\n guard: string | null;\n version: string | null;\n};\n\nexport type EnvironmentInfo = {\n origin: string;\n};\n\nexport type PostMessageOptions = {\n transfer?: any[];\n};\n\nexport type AddressBookItem = {\n address: string;\n chainId: string;\n name: string;\n};\n\nexport const isObjectEIP712TypedData = (obj?: unknown): obj is EIP712TypedData => {\n return typeof obj === 'object' && obj != null && 'domain' in obj && 'types' in obj && 'message' in obj;\n};\n","import { SafeBalanceResponse, TransactionDetails, TokenInfo } from '@safe-global/safe-gateway-typescript-sdk';\n\nexport {\n AddOwner,\n ChangeImplementation,\n ChangeThreshold,\n Creation,\n Custom,\n DataDecoded,\n DetailedExecutionInfo,\n DisableModule,\n EnableModule,\n Erc20Transfer,\n Erc721Transfer,\n InternalTransaction,\n ModuleExecutionDetails,\n MultiSend,\n MultisigConfirmation,\n MultisigExecutionDetails,\n NativeCoinTransfer,\n Operation,\n Parameter,\n RemoveOwner,\n SafeAppInfo,\n SetFallbackHandler,\n SettingsChange,\n SettingsInfo,\n SwapOwner,\n TokenInfo,\n TokenType,\n TransactionData,\n TransactionInfo,\n TransactionStatus,\n Transfer,\n TransferDirection,\n TransferInfo,\n} from '@safe-global/safe-gateway-typescript-sdk';\n\nexport type GatewayTransactionDetails = TransactionDetails;\n\nexport type TokenBalance = {\n tokenInfo: TokenInfo;\n balance: string;\n fiatBalance: string;\n fiatConversion: string;\n};\n\nexport type SafeBalances = SafeBalanceResponse;\n","import { Methods } from '../communication/methods.js';\nimport {\n GatewayTransactionDetails,\n SignMessageParams,\n SendTransactionsParams,\n GetTxBySafeTxHashParams,\n Communicator,\n SendTransactionsResponse,\n SignTypedMessageParams,\n EIP712TypedData,\n isObjectEIP712TypedData,\n SignMessageResponse,\n} from '../types/index.js';\n\nclass TXs {\n private readonly communicator: Communicator;\n\n constructor(communicator: Communicator) {\n this.communicator = communicator;\n }\n\n async getBySafeTxHash(safeTxHash: string): Promise<GatewayTransactionDetails> {\n if (!safeTxHash) {\n throw new Error('Invalid safeTxHash');\n }\n\n const response = await this.communicator.send<\n Methods.getTxBySafeTxHash,\n GetTxBySafeTxHashParams,\n GatewayTransactionDetails\n >(Methods.getTxBySafeTxHash, { safeTxHash });\n\n return response.data;\n }\n\n async signMessage(message: string): Promise<SignMessageResponse> {\n const messagePayload = {\n message,\n };\n\n const response = await this.communicator.send<Methods.signMessage, SignMessageParams, SignMessageResponse>(\n Methods.signMessage,\n messagePayload,\n );\n\n return response.data;\n }\n\n async signTypedMessage(typedData: EIP712TypedData): Promise<SignMessageResponse> {\n if (!isObjectEIP712TypedData(typedData)) {\n throw new Error('Invalid typed data');\n }\n\n const response = await this.communicator.send<\n Methods.signTypedMessage,\n SignTypedMessageParams,\n SignMessageResponse\n >(Methods.signTypedMessage, { typedData });\n\n return response.data;\n }\n\n async send({ txs, params }: SendTransactionsParams): Promise<SendTransactionsResponse> {\n if (!txs || !txs.length) {\n throw new Error('No transactions were passed');\n }\n\n const messagePayload = {\n txs,\n params,\n };\n\n const response = await this.communicator.send<\n Methods.sendTransactions,\n SendTransactionsParams,\n SendTransactionsResponse\n >(Methods.sendTransactions, messagePayload);\n\n return response.data;\n }\n}\n\nexport { TXs };\n","export const RPC_CALLS = {\n eth_call: 'eth_call',\n eth_gasPrice: 'eth_gasPrice',\n eth_getLogs: 'eth_getLogs',\n eth_getBalance: 'eth_getBalance',\n eth_getCode: 'eth_getCode',\n eth_getBlockByHash: 'eth_getBlockByHash',\n eth_getBlockByNumber: 'eth_getBlockByNumber',\n eth_getStorageAt: 'eth_getStorageAt',\n eth_getTransactionByHash: 'eth_getTransactionByHash',\n eth_getTransactionReceipt: 'eth_getTransactionReceipt',\n eth_getTransactionCount: 'eth_getTransactionCount',\n eth_estimateGas: 'eth_estimateGas',\n safe_setSettings: 'safe_setSettings',\n} as const;\n","import { RPC_CALLS } from '../eth/constants.js';\nimport {\n BlockNumberArg,\n RpcCallNames,\n Communicator,\n Log,\n BlockTransactionString,\n BlockTransactionObject,\n Web3TransactionObject,\n RPCPayload,\n TransactionConfig,\n Web3TransactionReceiptObject,\n PastLogsOptions,\n SafeSettings,\n} from '../types/index.js';\nimport { Methods } from '../communication/methods.js';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Formatter = (arg: any) => any;\n\nconst inputFormatters: Record<string, Formatter> = {\n defaultBlockParam: (arg = 'latest') => arg,\n returnFullTxObjectParam: (arg = false): boolean => arg,\n blockNumberToHex: (arg: BlockNumberArg): string =>\n Number.isInteger(arg) ? `0x${arg.toString(16)}` : (arg as string),\n};\n\ntype BuildRequestArgs = {\n call: RpcCallNames;\n formatters?: (Formatter | null)[];\n};\n\nclass Eth {\n public call;\n public getBalance;\n public getCode;\n public getStorageAt;\n public getPastLogs;\n public getBlockByHash;\n public getBlockByNumber;\n public getTransactionByHash;\n public getTransactionReceipt;\n public getTransactionCount;\n public getGasPrice;\n public getEstimateGas;\n public setSafeSettings;\n\n private readonly communicator: Communicator;\n\n constructor(communicator: Communicator) {\n this.communicator = communicator;\n this.call = this.buildRequest<[TransactionConfig, string?], string>({\n call: RPC_CALLS.eth_call,\n formatters: [null, inputFormatters.defaultBlockParam],\n });\n this.getBalance = this.buildRequest<[string, string?], string>({\n call: RPC_CALLS.eth_getBalance,\n formatters: [null, inputFormatters.defaultBlockParam],\n });\n this.getCode = this.buildRequest<[string, string?], string>({\n call: RPC_CALLS.eth_getCode,\n formatters: [null, inputFormatters.defaultBlockParam],\n });\n this.getStorageAt = this.buildRequest<[string, number, string?], string>({\n call: RPC_CALLS.eth_getStorageAt,\n formatters: [null, inputFormatters.blockNumberToHex, inputFormatters.defaultBlockParam],\n });\n this.getPastLogs = this.buildRequest<[PastLogsOptions], Log[]>({\n call: RPC_CALLS.eth_getLogs,\n });\n this.getBlockByHash = this.buildRequest<[string, boolean?], BlockTransactionString | BlockTransactionObject>({\n call: RPC_CALLS.eth_getBlockByHash,\n formatters: [null, inputFormatters.returnFullTxObjectParam],\n });\n this.getBlockByNumber = this.buildRequest<\n [BlockNumberArg, boolean?],\n BlockTransactionString | BlockTransactionObject\n >({\n call: RPC_CALLS.eth_getBlockByNumber,\n formatters: [inputFormatters.blockNumberToHex, inputFormatters.returnFullTxObjectParam],\n });\n this.getTransactionByHash = this.buildRequest<[string], Web3TransactionObject>({\n call: RPC_CALLS.eth_getTransactionByHash,\n });\n this.getTransactionReceipt = this.buildRequest<[string], Web3TransactionReceiptObject>({\n call: RPC_CALLS.eth_getTransactionReceipt,\n });\n this.getTransactionCount = this.buildRequest<[string, string?], string>({\n call: RPC_CALLS.eth_getTransactionCount,\n formatters: [null, inputFormatters.defaultBlockParam],\n });\n this.getGasPrice = this.buildRequest<never[], string>({\n call: RPC_CALLS.eth_gasPrice,\n });\n this.getEstimateGas = (transaction: TransactionConfig): Promise<number> =>\n this.buildRequest<[TransactionConfig], number>({\n call: RPC_CALLS.eth_estimateGas,\n })([transaction]);\n this.setSafeSettings = this.buildRequest<[SafeSettings], SafeSettings>({\n call: RPC_CALLS.safe_setSettings,\n });\n }\n\n private buildRequest<P = never[], R = unknown>(args: BuildRequestArgs) {\n const { call, formatters } = args;\n\n return async (params?: P): Promise<R> => {\n if (formatters && Array.isArray(params)) {\n formatters.forEach((formatter: ((...args: unknown[]) => unknown) | null, i) => {\n if (formatter) {\n params[i] = formatter(params[i]);\n }\n });\n }\n\n const payload: RPCPayload<P> = {\n call,\n params: params || [],\n };\n\n const response = await this.communicator.send<Methods.rpcCall, RPCPayload<P>, R>(Methods.rpcCall, payload);\n\n return response.data;\n };\n }\n}\n\nexport { Eth };\n","import { encodeFunctionData, Address, hashMessage, hashTypedData } from 'viem';\nimport { MAGIC_VALUE_BYTES, MAGIC_VALUE } from './signatures.js';\nimport { Methods } from '../communication/methods.js';\nimport { RPC_CALLS } from '../eth/constants.js';\nimport {\n Communicator,\n ChainInfo,\n SafeBalances,\n GetBalanceParams,\n RPCPayload,\n TransactionConfig,\n EnvironmentInfo,\n AddressBookItem,\n isObjectEIP712TypedData,\n EIP712TypedData,\n SafeInfoExtended,\n} from '../types/index.js';\nimport requirePermission from '../decorators/requirePermissions.js';\n\nclass Safe {\n private readonly communicator: Communicator;\n\n constructor(communicator: Communicator) {\n this.communicator = communicator;\n }\n\n async getChainInfo(): Promise<ChainInfo> {\n const response = await this.communicator.send<Methods.getChainInfo, undefined, ChainInfo>(\n Methods.getChainInfo,\n undefined,\n );\n\n return response.data;\n }\n\n async getInfo(): Promise<SafeInfoExtended> {\n const response = await this.communicator.send<Methods.getSafeInfo, undefined, SafeInfoExtended>(\n Methods.getSafeInfo,\n undefined,\n );\n\n return response.data;\n }\n\n // There is a possibility that this method will change because we may add pagination to the endpoint\n async experimental_getBalances({ currency = 'usd' }: GetBalanceParams = {}): Promise<SafeBalances> {\n const response = await this.communicator.send<Methods.getSafeBalances, { currency: string }, SafeBalances>(\n Methods.getSafeBalances,\n {\n currency,\n },\n );\n\n return response.data;\n }\n\n private async check1271Signature(messageHash: string, signature = '0x'): Promise<boolean> {\n const safeInfo = await this.getInfo();\n\n const encodedIsValidSignatureCall = encodeFunctionData({\n abi: [\n {\n constant: false,\n inputs: [\n {\n name: '_dataHash',\n type: 'bytes32',\n },\n {\n name: '_signature',\n type: 'bytes',\n },\n ],\n name: 'isValidSignature',\n outputs: [\n {\n name: '',\n type: 'bytes4',\n },\n ],\n payable: false,\n stateMutability: 'nonpayable',\n type: 'function',\n },\n ] as const,\n functionName: 'isValidSignature',\n args: [messageHash as Address, signature as Address],\n });\n\n const payload = {\n call: RPC_CALLS.eth_call,\n params: [\n {\n to: safeInfo.safeAddress,\n data: encodedIsValidSignatureCall,\n },\n 'latest',\n ],\n };\n try {\n const response = await this.communicator.send<Methods.rpcCall, RPCPayload<[TransactionConfig, string]>, string>(\n Methods.rpcCall,\n payload,\n );\n\n return response.data.slice(0, 10).toLowerCase() === MAGIC_VALUE;\n } catch (err) {\n return false;\n }\n }\n\n private async check1271SignatureBytes(messageHash: string, signature = '0x'): Promise<boolean> {\n const safeInfo = await this.getInfo();\n\n const encodedIsValidSignatureCall = encodeFunctionData({\n abi: [\n {\n constant: false,\n inputs: [\n {\n name: '_data',\n type: 'bytes',\n },\n {\n name: '_signature',\n type: 'bytes',\n },\n ],\n name: 'isValidSignature',\n outputs: [\n {\n name: '',\n type: 'bytes4',\n },\n ],\n payable: false,\n stateMutability: 'nonpayable',\n type: 'function',\n },\n ] as const,\n functionName: 'isValidSignature',\n args: [messageHash as Address, signature as Address],\n });\n\n const payload = {\n call: RPC_CALLS.eth_call,\n params: [\n {\n to: safeInfo.safeAddress,\n data: encodedIsValidSignatureCall,\n },\n 'latest',\n ],\n };\n\n try {\n const response = await this.communicator.send<Methods.rpcCall, RPCPayload<[TransactionConfig, string]>, string>(\n Methods.rpcCall,\n payload,\n );\n\n return response.data.slice(0, 10).toLowerCase() === MAGIC_VALUE_BYTES;\n } catch (err) {\n return false;\n }\n }\n\n calculateMessageHash(message: string): string {\n return hashMessage(message);\n }\n\n calculateTypedMessageHash(typedMessage: EIP712TypedData): string {\n const chainId =\n typeof typedMessage.domain.chainId === 'object'\n ? typedMessage.domain.chainId.toNumber()\n : Number(typedMessage.domain.chainId);\n\n let primaryType = typedMessage.primaryType;\n if (!primaryType) {\n const fields = Object.values(typedMessage.types);\n // We try to infer primaryType (simplified ether's version)\n const primaryTypes = Object.keys(typedMessage.types).filter((typeName) =>\n fields.every((dataTypes) => dataTypes.every(({ type }) => type.replace('[', '').replace(']', '') !== typeName)),\n );\n if (primaryTypes.length === 0 || primaryTypes.length > 1) throw new Error('Please specify primaryType');\n primaryType = primaryTypes[0];\n }\n\n return hashTypedData({\n message: typedMessage.message,\n domain: {\n ...typedMessage.domain,\n chainId,\n verifyingContract: typedMessage.domain.verifyingContract as Address,\n salt: typedMessage.domain.salt as Address,\n },\n types: typedMessage.types,\n primaryType,\n });\n }\n\n async getOffChainSignature(messageHash: string): Promise<string> {\n const response = await this.communicator.send<Methods.getOffChainSignature, string, string>(\n Methods.getOffChainSignature,\n messageHash,\n );\n\n return response.data;\n }\n\n async isMessageSigned(message: string | EIP712TypedData, signature = '0x'): Promise<boolean> {\n let check: (() => Promise<boolean>) | undefined;\n if (typeof message === 'string') {\n check = async (): Promise<boolean> => {\n const messageHash = this.calculateMessageHash(message);\n const messageHashSigned = await this.isMessageHashSigned(messageHash, signature);\n return messageHashSigned;\n };\n }\n\n if (isObjectEIP712TypedData(message)) {\n check = async (): Promise<boolean> => {\n const messageHash = this.calculateTypedMessageHash(message);\n const messageHashSigned = await this.isMessageHashSigned(messageHash, signature);\n return messageHashSigned;\n };\n }\n if (check) {\n const isValid = await check();\n\n return isValid;\n }\n\n throw new Error('Invalid message type');\n }\n\n async isMessageHashSigned(messageHash: string, signature = '0x'): Promise<boolean> {\n const checks = [this.check1271Signature.bind(this), this.check1271SignatureBytes.bind(this)];\n\n for (const check of checks) {\n const isValid = await check(messageHash, signature);\n if (isValid) {\n return true;\n }\n }\n\n return false;\n }\n\n async getEnvironmentInfo(): Promise<EnvironmentInfo> {\n const response = await this.communicator.send<Methods.getEnvironmentInfo, undefined, EnvironmentInfo>(\n Methods.getEnvironmentInfo,\n undefined,\n );\n\n return response.data;\n }\n\n @requirePermission()\n async requestAddressBook(): Promise<AddressBookItem[]> {\n const response = await this.communicator.send<Methods.requestAddressBook, undefined, AddressBookItem[]>(\n Methods.requestAddressBook,\n undefined,\n );\n\n return response.data;\n }\n}\n\nexport { Safe };\n","const MAGIC_VALUE = '0x1626ba7e';\nconst MAGIC_VALUE_BYTES = '0x20c13b0b';\n\nexport { MAGIC_VALUE, MAGIC_VALUE_BYTES };\n","export type Permission = {\n parentCapability: string;\n invoker: string;\n date?: number;\n caveats?: PermissionCaveat[];\n};\n\nexport type PermissionRequest = {\n [method: string]: Record<string, unknown>;\n};\n\nexport type PermissionCaveat = {\n type: string;\n value?: unknown;\n name?: string;\n};\n\nexport const PERMISSIONS_REQUEST_REJECTED = 4001;\n\nexport class PermissionsError extends Error {\n public code: number;\n public data?: unknown;\n\n constructor(message: string, code: number, data?: unknown) {\n super(message);\n\n this.code = code;\n this.data = data;\n\n // Should adjust prototype manually because how TS handles the type extension compilation\n // https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, PermissionsError.prototype);\n }\n}\n","import { Methods, RestrictedMethods } from '../communication/methods.js';\nimport { Communicator } from '../types/index.js';\nimport { PermissionRequest, Permission, PermissionsError, PERMISSIONS_REQUEST_REJECTED } from '../types/permissions.js';\n\nclass Wallet {\n private readonly communicator: Communicator;\n\n constructor(communicator: Communicator) {\n this.communicator = communicator;\n }\n\n async getPermissions(): Promise<Permission[]> {\n const response = await this.communicator.send<Methods.wallet_getPermissions, undefined, Permission[]>(\n Methods.wallet_getPermissions,\n undefined,\n );\n\n return response.data;\n }\n\n async requestPermissions(permissions: PermissionRequest[]): Promise<Permission[]> {\n if (!this.isPermissionRequestValid(permissions)) {\n throw new PermissionsError('Permissions request is invalid', PERMISSIONS_REQUEST_REJECTED);\n }\n\n try {\n const response = await this.communicator.send<\n Methods.wallet_requestPermissions,\n PermissionRequest[],\n Permission[]\n >(Methods.wallet_requestPermissions, permissions);\n\n return response.data;\n } catch {\n throw new PermissionsError('Permissions rejected', PERMISSIONS_REQUEST_REJECTED);\n }\n }\n\n isPermissionRequestValid(permissions: PermissionRequest[]): boolean {\n return permissions.every((pr: PermissionRequest) => {\n if (typeof pr === 'object') {\n return Object.keys(pr).every((method) => {\n if (Object.values(RestrictedMethods).includes(method as RestrictedMethods)) {\n return true;\n }\n\n return false;\n });\n }\n\n return false;\n });\n }\n}\n\nexport { Wallet };\n","import { Methods } from '../communication/index.js';\nimport { Safe } from '../safe/index.js';\nimport { Wallet } from '../wallet/index.js';\n\nimport { Permission, PermissionsError, PERMISSIONS_REQUEST_REJECTED } from '../types/permissions.js';\n\nconst hasPermission = (required: Methods, permissions: Permission[]): boolean =>\n permissions.some((permission) => permission.parentCapability === required);\n\nconst requirePermission = () => (_: unknown, propertyKey: string, descriptor: PropertyDescriptor) => {\n const originalMethod = descriptor.value;\n\n descriptor.value = async function () {\n // @ts-expect-error accessing private property from decorator. 'this' context is the class instance\n const wallet = new Wallet((this as Safe).communicator);\n\n let currentPermissions = await wallet.getPermissions();\n\n if (!hasPermission(propertyKey as Methods, currentPermissions)) {\n currentPermissions = await wallet.requestPermissions([{ [propertyKey as Methods]: {} }]);\n }\n\n if (!hasPermission(propertyKey as Methods, currentPermissions)) {\n throw new PermissionsError('Permissions rejected', PERMISSIONS_REQUEST_REJECTED);\n }\n\n return originalMethod.apply(this);\n };\n\n return descriptor;\n};\n\nexport default requirePermission;\n","import { Communicator } from './types/index.js';\nimport InterfaceCommunicator from './communication/index.js';\nimport { TXs } from './txs/index.js';\nimport { Eth } from './eth/index.js';\nimport { Safe } from './safe/index.js';\nimport { Wallet } from './wallet/index.js';\n\nexport type Opts = {\n allowedDomains?: RegExp[];\n debug?: boolean;\n};\n\nclass SafeAppsSDK {\n private readonly communicator: Communicator;\n public readonly eth: Eth;\n public readonly txs: TXs;\n public readonly safe: Safe;\n public readonly wallet: Wallet;\n\n constructor(opts: Opts = {}) {\n const { allowedDomains = null, debug = false } = opts;\n\n this.communicator = new InterfaceCommunicator(allowedDomains, debug);\n this.eth = new Eth(this.communicator);\n this.txs = new TXs(this.communicator);\n this.safe = new Safe(this.communicator);\n this.wallet = new Wallet(this.communicator);\n }\n}\n\nexport default SafeAppsSDK;\n","import SDK from './sdk.js';\n\nexport default SDK;\nexport * from './sdk.js';\nexport * from './types/index.js';\nexport * from './communication/methods.js';\nexport * from './communication/messageFormatter.js';\nexport { getSDKVersion } from './version.js';\nexport * from './eth/constants.js';\n","import { Icon } from \"@iconify/react\";\nimport { observer } from \"mobx-react-lite\";\nimport React from \"react\";\nimport { RootStore } from \"../../../store\";\nimport { DialogStore } from \"../../../module/Dialog\";\ninterface IProps {\n msg: string,\n hash: string,\n}\n\nconst SuccessTxDialog = observer((props: IProps) => {\n return <div className='flex-col gap-4 py-10'>\n <div className='w-full flex items-center justify-center'>\n <Icon icon=\"icon-park-solid:check-one\" width=\"48\" height=\"48\" className='text-green-500' /></div>\n <div className='text-2xl font-[900] text-center mt-4'>{props.msg}</div>\n <div className='flex items-center justify-center text-green-500 text-sm mt-6 gap-2 cursor-pointer hover:text-green-600 transition'\n onClick={e => window.open(`https://iotexscan.io/tx/${props.hash}`, '_blank')}>View on IoTeXScan <Icon icon=\"material-symbols:chip-extraction-rounded\" width=\"18\" height=\"18\" /></div>\n </div>\n})\nexport const ShowSuccessTxDialog = ({ msg, hash }) => {\n RootStore.Get(DialogStore).setData({\n title: '',\n content: <SuccessTxDialog msg={msg} hash={hash} />,\n isOpen: true,\n })\n}","import { Chain, Wallet, useConnectModal, getDefaultConfig, WalletDetailsParams } from '@rainbow-me/rainbowkit';\nimport { walletConnectWallet, metaMaskWallet, iopayWallet, okxWallet, binanceWallet } from '@rainbow-me/rainbowkit/wallets';\nimport { iotex } from 'viem/chains';\nimport { ObjectPool, Store } from '../..';\n\nexport class WalletConfigStore implements Store {\n sid = 'WalletConfigStore';\n autoObservable = true\n\n appName = 'Dappkit';\n projectId = 'b69e844f38265667350efd78e3e1a5fb'\n // @ts-ignore\n supportedChains: Chain[];\n defaultChainId = 4689;\n updateTicker = 1\n walletUpdateTick = 0;\n isConnect = false;\n // This mode to resolve and walletClient and nextui in some extreme cases cause page infinite redraw bugs\n compatibleMode = true;\n\n constructor(args: Partial<WalletConfigStore>) {\n Object.assign(this, args);\n }\n\n set(params: Partial<WalletConfigStore>) {\n Object.assign(this, params);\n this.updateTicker += 1\n }\n\n get reconnectOnMount() {\n if (!this.compatibleMode)\n return true\n\n if (!this.isConnect && this.walletUpdateTick == 0) {\n return true\n }\n if (!this.isConnect && this.walletUpdateTick != 0) {\n return false\n }\n if (this.isConnect) {\n return true\n }\n }\n\n get rainbowKitConfig() {\n return ObjectPool.get(`rainbowKitConfig-${this.supportedChains?.map(i => i.id).join('-')}`, () => {\n return getDefaultConfig({\n appName: this.appName,\n projectId: this.projectId,\n //@ts-ignore\n chains: this.supportedChains,\n wallets: [{\n groupName: 'Recommended',\n wallets: [iopayWallet, metaMaskWallet],\n },\n {\n groupName: 'Others',\n wallets: [metaMaskWallet, walletConnectWallet, iopayWallet, okxWallet, binanceWallet],\n }]\n });\n });\n }\n}","import { iotex as _iotex, iotexTestnet as _iotexTestnet, type Chain } from \"viem/chains\";\n\nexport type NetworkObject = {\n name: string;\n chainId: number;\n rpcUrl: string;\n logoUrl: string;\n explorerUrl: string;\n explorerName: string;\n nativeCoin: string;\n type: 'mainnet' | 'testnet';\n};\n\nexport type WalletTransactionHistoryType = {\n chainId: number;\n tx?: string;\n msg: string;\n timestamp: number;\n type: string;\n status: 'loading' | 'success' | 'fail';\n};\n\nexport type AddressMode = 'io' | '0x';\n\nexport const iotex = {\n iconUrl: 'https://cdn-dapp-works.s3.us-east-1.amazonaws.com/1dd84d927ae959c508392be62e6eb549.png',\n ..._iotex,\n} as Chain;\nexport const iotexTestnet = {\n iconUrl: 'https://cdn-dapp-works.s3.us-east-1.amazonaws.com/1dd84d927ae959c508392be62e6eb549.png',\n ..._iotexTestnet,\n} as Chain;;","import { Icon } from '@iconify/react';\nimport { Button, Checkbox, Chip, Input, Listbox, ListboxItem, Popover, PopoverContent, PopoverTrigger, Radio, RadioGroup, Table, TableBody, TableCell, TableColumn, TableHeader, TableRow, Tooltip } from '@nextui-org/react';\nimport { observer, useLocalObservable } from 'mobx-react-lite';\nimport React from 'react';\nimport { useEffect } from 'react';\nimport { RootStore } from \"../../../store\";\nimport { WalletStore } from \"..\";\nimport { WalletRpcStore } from '../walletPluginStore';\nimport { ToastPlugin } from '../../Toast/Toast';\n\n\nconst RpcList = observer(() => {\n const wallet = RootStore.Get(WalletStore)\n const rpcStore = RootStore.Get(WalletRpcStore)\n useEffect(() => {\n rpcStore.testRpc()\n }, [])\n\n return (\n <div className='mb-3 mt-4'>\n <div className='w-full flex mb-2 mt-2'>\n <div className='flex items-center justify-center gap-2'>\n <Checkbox size='sm' isSelected={rpcStore.isAutoSelectRpc.value} onValueChange={e => rpcStore.isAutoSelectRpc.save(e)}>Auto select rpc</Checkbox>\n <Tooltip content={<div className='w-[300px]'>Once selected, if the current RPC cannot send a request, an available RPC will be automatically chosen.</div>}>\n <Icon icon=\"ph:question\" width=\"18\" height=\"18\" className='text-gray-500' />\n </Tooltip>\n </div>\n\n <Button startContent={<Icon icon=\"tabler:test-pipe\" width=\"18\" height=\"18\" />} className='ml-auto' onClick={e => {\n rpcStore.testRpc()\n }}>Test</Button>\n <Popover placement=\"bottom\" offset={20} showArrow isOpen={rpcStore.showCustomRpc} onOpenChange={(open) => rpcStore.showCustomRpc = (open)}>\n <PopoverTrigger>\n <Button color=\"primary\" startContent={<Icon icon=\"basil:add-solid\" width=\"18\" height=\"18\" />} className='ml-4'>Add custom rpc</Button>\n </PopoverTrigger>\n <PopoverContent>\n <div className=\"px-1 py-2\">\n <Input\n type=\"url\"\n className='mb-4'\n placeholder=\"https://rpc.com\"\n value={rpcStore.customRpc}\n onValueChange={(value) => {\n rpcStore.customRpc = value;\n }}\n />\n <Button color='primary' isDisabled={!rpcStore.customRpc} onClick={e => rpcStore.addCustomRpc()}>Save</Button>\n </div>\n </PopoverContent>\n </Popover>\n\n </div>\n\n <Table\n color=\"success\"\n selectionMode=\"single\"\n defaultSelectedKeys={[rpcStore.curRpc.value]}\n aria-label=\"Example static collection table\"\n >\n <TableHeader>\n <TableColumn>RPC Server Address</TableColumn>\n <TableColumn align='center'>Score</TableColumn>\n <TableColumn align='center'>Height</TableColumn>\n <TableColumn align='center'>Latency</TableColumn>\n <TableColumn align='center'>Action</TableColumn>\n </TableHeader>\n <TableBody >\n {\n rpcStore.rpcList?.value?.map((item, index) => {\n return <TableRow className='cursor-pointer' key={item.name} onClick={e => {\n rpcStore.curRpc.save(item.name)\n RootStore.Get(ToastPlugin).success('Set rpc success')\n }} >\n <TableCell >{item.name}</TableCell>\n <TableCell >{rpcStore.scoreIcon(item.latency)}</TableCell>\n <TableCell>{item.height}</TableCell>\n <TableCell className={rpcStore.latencyColor(item.latency)}>{item.latency}s</TableCell>\n <TableCell>\n <div className=\"relative flex items-center gap-2\">\n <Tooltip content=\"Add to metamask\">\n <span className=\"text-lg text-danger cursor-pointer active:opacity-50\" onClick={e => {\n e.stopPropagation()\n rpcStore.addToMetamask(item.name)\n }}>\n <Icon icon=\"logos:metamask-icon\" width=\"18\" height=\"18\" />\n </span>\n </Tooltip>\n {\n item.custom && <Tooltip content=\"Remove\">\n <span className=\"text-lg text-danger cursor-pointer active:opacity-50\" onClick={e => {\n e.stopPropagation()\n rpcStore.removeRpc(item.name)\n }}>\n <Icon icon=\"solar:trash-bin-minimalistic-broken\" width=\"20\" height=\"20\" />\n </span>\n </Tooltip>\n }\n </div>\n </TableCell>\n </TableRow>\n })\n }\n </TableBody>\n </Table>\n </div>\n );\n});\n\nexport { RpcList };\n"]}
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|