@haneullabs/enoki 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/CHANGELOG.md +1109 -0
  2. package/README.md +1 -0
  3. package/dist/cjs/EnokiClient/index.d.ts +36 -0
  4. package/dist/cjs/EnokiClient/index.js +196 -0
  5. package/dist/cjs/EnokiClient/index.js.map +7 -0
  6. package/dist/cjs/EnokiClient/type.d.ts +119 -0
  7. package/dist/cjs/EnokiClient/type.js +17 -0
  8. package/dist/cjs/EnokiClient/type.js.map +7 -0
  9. package/dist/cjs/EnokiFlow.d.ts +74 -0
  10. package/dist/cjs/EnokiFlow.js +279 -0
  11. package/dist/cjs/EnokiFlow.js.map +7 -0
  12. package/dist/cjs/EnokiKeypair.d.ts +20 -0
  13. package/dist/cjs/EnokiKeypair.js +87 -0
  14. package/dist/cjs/EnokiKeypair.js.map +7 -0
  15. package/dist/cjs/encryption.d.ts +15 -0
  16. package/dist/cjs/encryption.js +96 -0
  17. package/dist/cjs/encryption.js.map +7 -0
  18. package/dist/cjs/index.d.ts +12 -0
  19. package/dist/cjs/index.js +50 -0
  20. package/dist/cjs/index.js.map +7 -0
  21. package/dist/cjs/package.json +4 -0
  22. package/dist/cjs/react.d.ts +20 -0
  23. package/dist/cjs/react.js +76 -0
  24. package/dist/cjs/react.js.map +7 -0
  25. package/dist/cjs/stores.d.ts +21 -0
  26. package/dist/cjs/stores.js +67 -0
  27. package/dist/cjs/stores.js.map +7 -0
  28. package/dist/cjs/utils.d.ts +2 -0
  29. package/dist/cjs/utils.js +27 -0
  30. package/dist/cjs/utils.js.map +7 -0
  31. package/dist/cjs/wallet/features.d.ts +50 -0
  32. package/dist/cjs/wallet/features.js +27 -0
  33. package/dist/cjs/wallet/features.js.map +7 -0
  34. package/dist/cjs/wallet/initializer.d.ts +11 -0
  35. package/dist/cjs/wallet/initializer.js +41 -0
  36. package/dist/cjs/wallet/initializer.js.map +7 -0
  37. package/dist/cjs/wallet/providers.d.ts +7 -0
  38. package/dist/cjs/wallet/providers.js +51 -0
  39. package/dist/cjs/wallet/providers.js.map +7 -0
  40. package/dist/cjs/wallet/register.d.ts +7 -0
  41. package/dist/cjs/wallet/register.js +68 -0
  42. package/dist/cjs/wallet/register.js.map +7 -0
  43. package/dist/cjs/wallet/state.d.ts +18 -0
  44. package/dist/cjs/wallet/state.js +142 -0
  45. package/dist/cjs/wallet/state.js.map +7 -0
  46. package/dist/cjs/wallet/types.d.ts +82 -0
  47. package/dist/cjs/wallet/types.js +17 -0
  48. package/dist/cjs/wallet/types.js.map +7 -0
  49. package/dist/cjs/wallet/utils.d.ts +11 -0
  50. package/dist/cjs/wallet/utils.js +83 -0
  51. package/dist/cjs/wallet/utils.js.map +7 -0
  52. package/dist/cjs/wallet/wallet.d.ts +16 -0
  53. package/dist/cjs/wallet/wallet.js +466 -0
  54. package/dist/cjs/wallet/wallet.js.map +7 -0
  55. package/dist/esm/EnokiClient/index.d.ts +36 -0
  56. package/dist/esm/EnokiClient/index.js +176 -0
  57. package/dist/esm/EnokiClient/index.js.map +7 -0
  58. package/dist/esm/EnokiClient/type.d.ts +119 -0
  59. package/dist/esm/EnokiClient/type.js +1 -0
  60. package/dist/esm/EnokiClient/type.js.map +7 -0
  61. package/dist/esm/EnokiFlow.d.ts +74 -0
  62. package/dist/esm/EnokiFlow.js +259 -0
  63. package/dist/esm/EnokiFlow.js.map +7 -0
  64. package/dist/esm/EnokiKeypair.d.ts +20 -0
  65. package/dist/esm/EnokiKeypair.js +67 -0
  66. package/dist/esm/EnokiKeypair.js.map +7 -0
  67. package/dist/esm/encryption.d.ts +15 -0
  68. package/dist/esm/encryption.js +76 -0
  69. package/dist/esm/encryption.js.map +7 -0
  70. package/dist/esm/index.d.ts +12 -0
  71. package/dist/esm/index.js +41 -0
  72. package/dist/esm/index.js.map +7 -0
  73. package/dist/esm/package.json +4 -0
  74. package/dist/esm/react.d.ts +20 -0
  75. package/dist/esm/react.js +56 -0
  76. package/dist/esm/react.js.map +7 -0
  77. package/dist/esm/stores.d.ts +21 -0
  78. package/dist/esm/stores.js +47 -0
  79. package/dist/esm/stores.js.map +7 -0
  80. package/dist/esm/utils.d.ts +2 -0
  81. package/dist/esm/utils.js +7 -0
  82. package/dist/esm/utils.js.map +7 -0
  83. package/dist/esm/wallet/features.d.ts +50 -0
  84. package/dist/esm/wallet/features.js +7 -0
  85. package/dist/esm/wallet/features.js.map +7 -0
  86. package/dist/esm/wallet/initializer.d.ts +11 -0
  87. package/dist/esm/wallet/initializer.js +21 -0
  88. package/dist/esm/wallet/initializer.js.map +7 -0
  89. package/dist/esm/wallet/providers.d.ts +7 -0
  90. package/dist/esm/wallet/providers.js +31 -0
  91. package/dist/esm/wallet/providers.js.map +7 -0
  92. package/dist/esm/wallet/register.d.ts +7 -0
  93. package/dist/esm/wallet/register.js +48 -0
  94. package/dist/esm/wallet/register.js.map +7 -0
  95. package/dist/esm/wallet/state.d.ts +18 -0
  96. package/dist/esm/wallet/state.js +122 -0
  97. package/dist/esm/wallet/state.js.map +7 -0
  98. package/dist/esm/wallet/types.d.ts +82 -0
  99. package/dist/esm/wallet/types.js +1 -0
  100. package/dist/esm/wallet/types.js.map +7 -0
  101. package/dist/esm/wallet/utils.d.ts +11 -0
  102. package/dist/esm/wallet/utils.js +63 -0
  103. package/dist/esm/wallet/utils.js.map +7 -0
  104. package/dist/esm/wallet/wallet.d.ts +16 -0
  105. package/dist/esm/wallet/wallet.js +444 -0
  106. package/dist/esm/wallet/wallet.js.map +7 -0
  107. package/dist/tsconfig.esm.tsbuildinfo +1 -0
  108. package/dist/tsconfig.tsbuildinfo +1 -0
  109. package/package.json +80 -0
  110. package/react/package.json +5 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/wallet/initializer.ts"],
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ClientWithCoreApi, Experimental_HaneulClientTypes } from '@haneullabs/haneul/experimental';\nimport { registerEnokiWallets } from './register.js';\nimport type { RegisterEnokiWalletsOptions } from './types.js';\n\nexport function enokiWalletsInitializer(\n\toptions: Omit<RegisterEnokiWalletsOptions, 'clients' | 'getCurrentNetwork'>,\n) {\n\treturn {\n\t\tid: 'enoki-wallets-initializer',\n\t\tasync initialize({\n\t\t\tnetworks,\n\t\t\tgetClient,\n\t\t}: {\n\t\t\tnetworks: readonly Experimental_HaneulClientTypes.Network[];\n\t\t\tgetClient: (network?: Experimental_HaneulClientTypes.Network) => ClientWithCoreApi;\n\t\t}) {\n\t\t\tconst { unregister } = registerEnokiWallets({\n\t\t\t\t...options,\n\t\t\t\tgetCurrentNetwork: () => getClient().network,\n\t\t\t\tclients: networks.map(getClient),\n\t\t\t});\n\n\t\t\treturn { unregister };\n\t\t},\n\t};\n}\n"],
5
+ "mappings": "AAIA,SAAS,4BAA4B;AAG9B,SAAS,wBACf,SACC;AACD,SAAO;AAAA,IACN,IAAI;AAAA,IACJ,MAAM,WAAW;AAAA,MAChB;AAAA,MACA;AAAA,IACD,GAGG;AACF,YAAM,EAAE,WAAW,IAAI,qBAAqB;AAAA,QAC3C,GAAG;AAAA,QACH,mBAAmB,MAAM,UAAU,EAAE;AAAA,QACrC,SAAS,SAAS,IAAI,SAAS;AAAA,MAChC,CAAC;AAED,aAAO,EAAE,WAAW;AAAA,IACrB;AAAA,EACD;AACD;",
6
+ "names": []
7
+ }
@@ -0,0 +1,7 @@
1
+ import type { Wallet } from '@haneullabs/wallet-standard';
2
+ import type { AuthProvider } from '../EnokiClient/type.js';
3
+ export declare const ENOKI_PROVIDER_WALLETS_INFO: {
4
+ name: string;
5
+ icon: Wallet['icon'];
6
+ provider: AuthProvider;
7
+ }[];
@@ -0,0 +1,31 @@
1
+ const ENOKI_PROVIDER_WALLETS_INFO = [
2
+ {
3
+ provider: "google",
4
+ name: "Sign in with Google",
5
+ icon: "data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiBoZWlnaHQ9IjMyIiB2aWV3Qm94PSIwIDAgMzIgMzIiIHdpZHRoPSIzMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtMzIgMGgtMzJ2MzJoMzJ6IiBmaWxsPSIjZmZmIi8+PGcgY2xpcC1ydWxlPSJldmVub2RkIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Im0yMy44Mjk5IDE2LjE4MThjMC0uNTY3Mi0uMDUwOS0xLjExMjctLjE0NTQtMS42MzYzaC03LjUzNDZ2My4wOTQ1aDQuMzA1NWMtLjE4NTUgMS0uNzQ5MSAxLjg0NzMtMS41OTY0IDIuNDE0NnYyLjAwNzNoMi41ODU1YzEuNTEyNy0xLjM5MjggMi4zODU0LTMuNDQzNyAyLjM4NTQtNS44ODAxeiIgZmlsbD0iIzQyODVmNCIvPjxwYXRoIGQ9Im0xNi4xNDk2IDI0YzIuMTYgMCAzLjk3MDktLjcxNjQgNS4yOTQ2LTEuOTM4MmwtMi41ODU1LTIuMDA3M2MtLjcxNjQuNDgtMS42MzI3Ljc2MzYtMi43MDkxLjc2MzYtMi4wODM2IDAtMy44NDczLTEuNDA3Mi00LjQ3NjQtMy4yOTgxaC0yLjY3MjcxdjIuMDcyN2MxLjMxNjQxIDIuNjE0NSA0LjAyMTgxIDQuNDA3MyA3LjE0OTExIDQuNDA3M3oiIGZpbGw9IiMzNGE4NTMiLz48cGF0aCBkPSJtMTEuNjczNSAxNy41MmMtLjE2LS40OC0uMjUwOS0uOTkyOC0uMjUwOS0xLjUyIDAtLjUyNzMuMDkwOS0xLjA0LjI1MDktMS41MnYtMi4wNzI4aC0yLjY3MjY5Yy0uNTQxODIgMS4wOC0uODUwOTEgMi4zMDE4LS44NTA5MSAzLjU5MjggMCAxLjI5MDkuMzA5MDkgMi41MTI3Ljg1MDkxIDMuNTkyN3oiIGZpbGw9IiNmYmJjMDUiLz48cGF0aCBkPSJtMTYuMTQ5NiAxMS4xODE4YzEuMTc0NSAwIDIuMjI5MS40MDM3IDMuMDU4MiAxLjE5NjRsMi4yOTQ1LTIuMjk0NmMtMS4zODU0LTEuMjkwODctMy4xOTYzLTIuMDgzNi01LjM1MjctMi4wODM2LTMuMTI3MyAwLTUuODMyNyAxLjc5MjczLTcuMTQ5MTEgNC40MDczbDIuNjcyNzEgMi4wNzI3Yy42MjkxLTEuODkwOSAyLjM5MjgtMy4yOTgyIDQuNDc2NC0zLjI5ODJ6IiBmaWxsPSIjZWE0MzM1Ii8+PC9nPjwvc3ZnPg=="
6
+ },
7
+ {
8
+ provider: "facebook",
9
+ name: "Sign in with Facebook",
10
+ icon: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgZmlsbD0iIzE4NzdGMiIgdmVyc2lvbj0iMS4wIiB2aWV3Qm94PSIwIDAgMjA4NCAyMDg0Ij48cGF0aCBkPSJNOTkyIDJDODU4LjcgOS4xIDczNi42IDM4LjEgNjE5IDkwLjVjLTI4NS41IDEyNy4yLTQ5OS4xIDM3NS45LTU4MS41IDY3Ny0yNS45IDk0LjYtMzcuOCAxOTAuMi0zNi4yIDI5MSAuOCA0Ni43IDIuOCA3NS4zIDguMyAxMTguNSAxNi4xIDEyNi42IDU2LjcgMjUxLjUgMTE4IDM2My44IDEwMS44IDE4NiAyNTYuOSAzMzYuMiA0NDUuOSA0MzEuNyA2Mi4xIDMxLjMgMTI3LjggNTYuNiAxOTMgNzQuMyA5LjkgMi43IDE5LjIgNS4yIDIwLjggNS42bDIuNy42di02OTJsLTEwNy4yLS4yLTEwNy4zLS4zdi0zMThsMTA3LjEtLjMgMTA3LjItLjIuNS05Mi44Yy41LTkwIC45LTEwMyA0LjMtMTM5LjIgMTctMTgzLjIgOTAtMzA1LjUgMjIwLjUtMzY5LjUgNTguNy0yOC44IDEyOC4zLTQ1LjcgMjE1LjktNTIuNSAyMi44LTEuOCA4Mi40LTIuNCAxMDYtMS4xIDU3LjEgMy4yIDEyMC40IDEwLjYgMTYzIDE5LjEgMTAuNyAyLjIgMjAuOSA0LjMgMjIuNSA0LjhsMyAuOC4zIDE0NC45LjIgMTQ0LjgtNi4yLS42Yy0yOS4zLTMtMTMzLjEtNC4yLTE1OC4zLTEuOS02NS42IDYtMTA4LjYgMjIuMy0xMzkgNTIuNy0yMi45IDIyLjktMzcuOCA1My00NS45IDkyLjgtNi40IDMxLjEtNy42IDUyLjgtNy42IDEzMi45djY0LjhoMTcwYzkzLjUgMCAxNzAgLjQgMTcwIC44IDAgLjUtMTMgNzEuOS0yOSAxNTguNy0xNS45IDg2LjgtMjkgMTU4LjItMjkgMTU4LjcgMCAuNC02My40LjgtMTQxIC44aC0xNDF2MzU3LjVjMCAyODUuMy4zIDM1Ny41IDEuMyAzNTcuNSAzLjMgMCA0NC43LTYuNCA2MS42LTkuNSAxNjMtMjkuOSAzMTYuNy05OC44IDQ0OS4xLTIwMS40IDU1LjgtNDMuMiAxMTMuOS05OS4xIDE1OS42LTE1My43IDQxLjMtNDkuMSA4MC41LTEwNi4yIDExMi44LTE2My45IDE5LjctMzUuMiA0Ny05My42IDYxLjctMTMyLjMgNzAuNi0xODQuOCA4Ny4yLTM4Ni4xIDQ3LjgtNTgxLjUtNDUuNy0yMjYuNi0xNjkuNC00MzUuNi0zNDYuOS01ODUuOC0xNDQuNS0xMjIuMi0zMTYuNC0yMDItNTAxLjUtMjMyLjktMzEuMy01LjItNjYuNC05LjItMTA0LTEyLTE4LjMtMS40LTk4LjctMi4xLTExOC41LTF6Ii8+PC9zdmc+"
11
+ },
12
+ {
13
+ provider: "twitch",
14
+ name: "Sign in with Twitch",
15
+ icon: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIzLjAuNiwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCgl2aWV3Qm94PSItNDAwIC00MDAgMjgwMCAzMjAwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4KCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkJLnN0MCB7CgkJCWZpbGw6ICNGRkZGRkY7CgkJfQoKCQkuc3QxIHsKCQkJZmlsbDogIzkxNDZGRjsKCQl9Cgk8L3N0eWxlPgoJPHRpdGxlPkFzc2V0IDI8L3RpdGxlPgoJPGc+CgkJPHBvbHlnb24gY2xhc3M9InN0MCIgcG9pbnRzPSIyMjAwLDEzMDAgMTgwMCwxNzAwIDE0MDAsMTcwMCAxMDUwLDIwNTAgMTA1MCwxNzAwIDYwMCwxNzAwIDYwMCwyMDAgMjIwMCwyMDAgCSIgLz4KCQk8Zz4KCQkJPGcgaWQ9IkxheWVyXzEtMiI+CgkJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNNTAwLDBMMCw1MDB2MTgwMGg2MDB2NTAwbDUwMC01MDBoNDAwbDkwMC05MDBWMEg1MDB6IE0yMjAwLDEzMDBsLTQwMCw0MDBoLTQwMGwtMzUwLDM1MHYtMzUwSDYwMFYyMDBoMTYwMAoJCQkJVjEzMDB6IiAvPgoJCQkJPHJlY3QgeD0iMTcwMCIgeT0iNTUwIiBjbGFzcz0ic3QxIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjYwMCIgLz4KCQkJCTxyZWN0IHg9IjExNTAiIHk9IjU1MCIgY2xhc3M9InN0MSIgd2lkdGg9IjIwMCIgaGVpZ2h0PSI2MDAiIC8+CgkJCTwvZz4KCQk8L2c+Cgk8L2c+Cjwvc3ZnPgo="
16
+ },
17
+ {
18
+ provider: "onefc",
19
+ name: "Sign in with ONE Championship",
20
+ icon: "data:image/png;base64,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"
21
+ },
22
+ {
23
+ provider: "playtron",
24
+ name: "Sign in with Playtron",
25
+ icon: "data:image/png;base64,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"
26
+ }
27
+ ];
28
+ export {
29
+ ENOKI_PROVIDER_WALLETS_INFO
30
+ };
31
+ //# sourceMappingURL=providers.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/wallet/providers.ts"],
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { Wallet } from '@haneullabs/wallet-standard';\n\nimport type { AuthProvider } from '../EnokiClient/type.js';\n\nexport const ENOKI_PROVIDER_WALLETS_INFO: {\n\tname: string;\n\ticon: Wallet['icon'];\n\tprovider: AuthProvider;\n}[] = [\n\t{\n\t\tprovider: 'google',\n\t\tname: 'Sign in with Google',\n\t\ticon: 'data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiBoZWlnaHQ9IjMyIiB2aWV3Qm94PSIwIDAgMzIgMzIiIHdpZHRoPSIzMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtMzIgMGgtMzJ2MzJoMzJ6IiBmaWxsPSIjZmZmIi8+PGcgY2xpcC1ydWxlPSJldmVub2RkIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Im0yMy44Mjk5IDE2LjE4MThjMC0uNTY3Mi0uMDUwOS0xLjExMjctLjE0NTQtMS42MzYzaC03LjUzNDZ2My4wOTQ1aDQuMzA1NWMtLjE4NTUgMS0uNzQ5MSAxLjg0NzMtMS41OTY0IDIuNDE0NnYyLjAwNzNoMi41ODU1YzEuNTEyNy0xLjM5MjggMi4zODU0LTMuNDQzNyAyLjM4NTQtNS44ODAxeiIgZmlsbD0iIzQyODVmNCIvPjxwYXRoIGQ9Im0xNi4xNDk2IDI0YzIuMTYgMCAzLjk3MDktLjcxNjQgNS4yOTQ2LTEuOTM4MmwtMi41ODU1LTIuMDA3M2MtLjcxNjQuNDgtMS42MzI3Ljc2MzYtMi43MDkxLjc2MzYtMi4wODM2IDAtMy44NDczLTEuNDA3Mi00LjQ3NjQtMy4yOTgxaC0yLjY3MjcxdjIuMDcyN2MxLjMxNjQxIDIuNjE0NSA0LjAyMTgxIDQuNDA3MyA3LjE0OTExIDQuNDA3M3oiIGZpbGw9IiMzNGE4NTMiLz48cGF0aCBkPSJtMTEuNjczNSAxNy41MmMtLjE2LS40OC0uMjUwOS0uOTkyOC0uMjUwOS0xLjUyIDAtLjUyNzMuMDkwOS0xLjA0LjI1MDktMS41MnYtMi4wNzI4aC0yLjY3MjY5Yy0uNTQxODIgMS4wOC0uODUwOTEgMi4zMDE4LS44NTA5MSAzLjU5MjggMCAxLjI5MDkuMzA5MDkgMi41MTI3Ljg1MDkxIDMuNTkyN3oiIGZpbGw9IiNmYmJjMDUiLz48cGF0aCBkPSJtMTYuMTQ5NiAxMS4xODE4YzEuMTc0NSAwIDIuMjI5MS40MDM3IDMuMDU4MiAxLjE5NjRsMi4yOTQ1LTIuMjk0NmMtMS4zODU0LTEuMjkwODctMy4xOTYzLTIuMDgzNi01LjM1MjctMi4wODM2LTMuMTI3MyAwLTUuODMyNyAxLjc5MjczLTcuMTQ5MTEgNC40MDczbDIuNjcyNzEgMi4wNzI3Yy42MjkxLTEuODkwOSAyLjM5MjgtMy4yOTgyIDQuNDc2NC0zLjI5ODJ6IiBmaWxsPSIjZWE0MzM1Ii8+PC9nPjwvc3ZnPg==',\n\t},\n\t{\n\t\tprovider: 'facebook',\n\t\tname: 'Sign in with Facebook',\n\t\ticon: 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgZmlsbD0iIzE4NzdGMiIgdmVyc2lvbj0iMS4wIiB2aWV3Qm94PSIwIDAgMjA4NCAyMDg0Ij48cGF0aCBkPSJNOTkyIDJDODU4LjcgOS4xIDczNi42IDM4LjEgNjE5IDkwLjVjLTI4NS41IDEyNy4yLTQ5OS4xIDM3NS45LTU4MS41IDY3Ny0yNS45IDk0LjYtMzcuOCAxOTAuMi0zNi4yIDI5MSAuOCA0Ni43IDIuOCA3NS4zIDguMyAxMTguNSAxNi4xIDEyNi42IDU2LjcgMjUxLjUgMTE4IDM2My44IDEwMS44IDE4NiAyNTYuOSAzMzYuMiA0NDUuOSA0MzEuNyA2Mi4xIDMxLjMgMTI3LjggNTYuNiAxOTMgNzQuMyA5LjkgMi43IDE5LjIgNS4yIDIwLjggNS42bDIuNy42di02OTJsLTEwNy4yLS4yLTEwNy4zLS4zdi0zMThsMTA3LjEtLjMgMTA3LjItLjIuNS05Mi44Yy41LTkwIC45LTEwMyA0LjMtMTM5LjIgMTctMTgzLjIgOTAtMzA1LjUgMjIwLjUtMzY5LjUgNTguNy0yOC44IDEyOC4zLTQ1LjcgMjE1LjktNTIuNSAyMi44LTEuOCA4Mi40LTIuNCAxMDYtMS4xIDU3LjEgMy4yIDEyMC40IDEwLjYgMTYzIDE5LjEgMTAuNyAyLjIgMjAuOSA0LjMgMjIuNSA0LjhsMyAuOC4zIDE0NC45LjIgMTQ0LjgtNi4yLS42Yy0yOS4zLTMtMTMzLjEtNC4yLTE1OC4zLTEuOS02NS42IDYtMTA4LjYgMjIuMy0xMzkgNTIuNy0yMi45IDIyLjktMzcuOCA1My00NS45IDkyLjgtNi40IDMxLjEtNy42IDUyLjgtNy42IDEzMi45djY0LjhoMTcwYzkzLjUgMCAxNzAgLjQgMTcwIC44IDAgLjUtMTMgNzEuOS0yOSAxNTguNy0xNS45IDg2LjgtMjkgMTU4LjItMjkgMTU4LjcgMCAuNC02My40LjgtMTQxIC44aC0xNDF2MzU3LjVjMCAyODUuMy4zIDM1Ny41IDEuMyAzNTcuNSAzLjMgMCA0NC43LTYuNCA2MS42LTkuNSAxNjMtMjkuOSAzMTYuNy05OC44IDQ0OS4xLTIwMS40IDU1LjgtNDMuMiAxMTMuOS05OS4xIDE1OS42LTE1My43IDQxLjMtNDkuMSA4MC41LTEwNi4yIDExMi44LTE2My45IDE5LjctMzUuMiA0Ny05My42IDYxLjctMTMyLjMgNzAuNi0xODQuOCA4Ny4yLTM4Ni4xIDQ3LjgtNTgxLjUtNDUuNy0yMjYuNi0xNjkuNC00MzUuNi0zNDYuOS01ODUuOC0xNDQuNS0xMjIuMi0zMTYuNC0yMDItNTAxLjUtMjMyLjktMzEuMy01LjItNjYuNC05LjItMTA0LTEyLTE4LjMtMS40LTk4LjctMi4xLTExOC41LTF6Ii8+PC9zdmc+',\n\t},\n\t{\n\t\tprovider: 'twitch',\n\t\tname: 'Sign in with Twitch',\n\t\ticon: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIzLjAuNiwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCgl2aWV3Qm94PSItNDAwIC00MDAgMjgwMCAzMjAwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4KCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkJLnN0MCB7CgkJCWZpbGw6ICNGRkZGRkY7CgkJfQoKCQkuc3QxIHsKCQkJZmlsbDogIzkxNDZGRjsKCQl9Cgk8L3N0eWxlPgoJPHRpdGxlPkFzc2V0IDI8L3RpdGxlPgoJPGc+CgkJPHBvbHlnb24gY2xhc3M9InN0MCIgcG9pbnRzPSIyMjAwLDEzMDAgMTgwMCwxNzAwIDE0MDAsMTcwMCAxMDUwLDIwNTAgMTA1MCwxNzAwIDYwMCwxNzAwIDYwMCwyMDAgMjIwMCwyMDAgCSIgLz4KCQk8Zz4KCQkJPGcgaWQ9IkxheWVyXzEtMiI+CgkJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNNTAwLDBMMCw1MDB2MTgwMGg2MDB2NTAwbDUwMC01MDBoNDAwbDkwMC05MDBWMEg1MDB6IE0yMjAwLDEzMDBsLTQwMCw0MDBoLTQwMGwtMzUwLDM1MHYtMzUwSDYwMFYyMDBoMTYwMAoJCQkJVjEzMDB6IiAvPgoJCQkJPHJlY3QgeD0iMTcwMCIgeT0iNTUwIiBjbGFzcz0ic3QxIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjYwMCIgLz4KCQkJCTxyZWN0IHg9IjExNTAiIHk9IjU1MCIgY2xhc3M9InN0MSIgd2lkdGg9IjIwMCIgaGVpZ2h0PSI2MDAiIC8+CgkJCTwvZz4KCQk8L2c+Cgk8L2c+Cjwvc3ZnPgo=',\n\t},\n\t{\n\t\tprovider: 'onefc',\n\t\tname: 'Sign in with ONE Championship',\n\t\ticon: 'data:image/png;base64,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',\n\t},\n\t{\n\t\tprovider: 'playtron',\n\t\tname: 'Sign in with Playtron',\n\t\ticon: 'data:image/png;base64,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',\n\t},\n];\n"],
5
+ "mappings": "AAOO,MAAM,8BAIP;AAAA,EACL;AAAA,IACC,UAAU;AAAA,IACV,MAAM;AAAA,IACN,MAAM;AAAA,EACP;AAAA,EACA;AAAA,IACC,UAAU;AAAA,IACV,MAAM;AAAA,IACN,MAAM;AAAA,EACP;AAAA,EACA;AAAA,IACC,UAAU;AAAA,IACV,MAAM;AAAA,IACN,MAAM;AAAA,EACP;AAAA,EACA;AAAA,IACC,UAAU;AAAA,IACV,MAAM;AAAA,IACN,MAAM;AAAA,EACP;AAAA,EACA;AAAA,IACC,UAAU;AAAA,IACV,MAAM;AAAA,IACN,MAAM;AAAA,EACP;AACD;",
6
+ "names": []
7
+ }
@@ -0,0 +1,7 @@
1
+ import { EnokiWallet } from './wallet.js';
2
+ import type { RegisterEnokiWalletsOptions } from './types.js';
3
+ import type { AuthProvider } from '../EnokiClient/type.js';
4
+ export declare function registerEnokiWallets({ providers, windowFeatures, ...config }: RegisterEnokiWalletsOptions): {
5
+ wallets: Partial<Record<AuthProvider, EnokiWallet>>;
6
+ unregister: () => void;
7
+ };
@@ -0,0 +1,48 @@
1
+ import { EnokiWallet } from "./wallet.js";
2
+ import { getWallets } from "@haneullabs/wallet-standard";
3
+ import { isEnokiNetwork } from "../utils.js";
4
+ import { ENOKI_PROVIDER_WALLETS_INFO } from "./providers.js";
5
+ function registerEnokiWallets({
6
+ providers,
7
+ windowFeatures = defaultWindowFeatures,
8
+ ...config
9
+ }) {
10
+ const clients = "clients" in config ? config.clients : [Object.assign(config.client, { network: config.network ?? "mainnet" })];
11
+ const enokiCompatibleClients = clients.filter(({ network }) => isEnokiNetwork(network));
12
+ if (enokiCompatibleClients.length === 0) {
13
+ throw new Error("None of the specified clients are compatible with Enoki.");
14
+ }
15
+ const getCurrentNetwork = "clients" in config ? config.getCurrentNetwork : () => clients[0].network;
16
+ const walletsApi = getWallets();
17
+ const wallets = {};
18
+ for (const { name, icon, provider } of ENOKI_PROVIDER_WALLETS_INFO) {
19
+ const providerOptions = providers[provider];
20
+ if (providerOptions) {
21
+ wallets[provider] = new EnokiWallet({
22
+ ...providerOptions,
23
+ name,
24
+ icon,
25
+ provider,
26
+ windowFeatures,
27
+ getCurrentNetwork,
28
+ apiKey: config.apiKey,
29
+ apiUrl: config.apiUrl,
30
+ additionalEpochs: config.additionalEpochs,
31
+ clients: enokiCompatibleClients
32
+ });
33
+ }
34
+ }
35
+ const unregister = walletsApi.register(...Object.values(wallets));
36
+ return { wallets, unregister };
37
+ }
38
+ function defaultWindowFeatures() {
39
+ const width = 500;
40
+ const height = 800;
41
+ const left = (screen.width - width) / 2;
42
+ const top = (screen.height - height) / 4;
43
+ return `popup=1;toolbar=0;status=0;resizable=1,width=${width},height=${height},top=${top},left=${left}`;
44
+ }
45
+ export {
46
+ registerEnokiWallets
47
+ };
48
+ //# sourceMappingURL=register.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/wallet/register.ts"],
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { EnokiWallet } from './wallet.js';\nimport type { RegisterEnokiWalletsOptions } from './types.js';\nimport { getWallets } from '@haneullabs/wallet-standard';\nimport type { ClientWithCoreApi } from '@haneullabs/haneul/experimental';\nimport type { AuthProvider } from '../EnokiClient/type.js';\nimport { isEnokiNetwork } from '../utils.js';\nimport { ENOKI_PROVIDER_WALLETS_INFO } from './providers.js';\n\nexport function registerEnokiWallets({\n\tproviders,\n\twindowFeatures = defaultWindowFeatures,\n\t...config\n}: RegisterEnokiWalletsOptions) {\n\tconst clients: ClientWithCoreApi[] =\n\t\t'clients' in config\n\t\t\t? config.clients\n\t\t\t: [Object.assign(config.client, { network: config.network ?? 'mainnet' })];\n\n\tconst enokiCompatibleClients = clients.filter(({ network }) => isEnokiNetwork(network));\n\tif (enokiCompatibleClients.length === 0) {\n\t\tthrow new Error('None of the specified clients are compatible with Enoki.');\n\t}\n\n\tconst getCurrentNetwork =\n\t\t'clients' in config ? config.getCurrentNetwork : () => clients[0].network;\n\n\tconst walletsApi = getWallets();\n\tconst wallets: Partial<Record<AuthProvider, EnokiWallet>> = {};\n\n\tfor (const { name, icon, provider } of ENOKI_PROVIDER_WALLETS_INFO) {\n\t\tconst providerOptions = providers[provider];\n\t\tif (providerOptions) {\n\t\t\twallets[provider] = new EnokiWallet({\n\t\t\t\t...providerOptions,\n\t\t\t\tname,\n\t\t\t\ticon,\n\t\t\t\tprovider,\n\t\t\t\twindowFeatures,\n\t\t\t\tgetCurrentNetwork,\n\t\t\t\tapiKey: config.apiKey,\n\t\t\t\tapiUrl: config.apiUrl,\n\t\t\t\tadditionalEpochs: config.additionalEpochs,\n\t\t\t\tclients: enokiCompatibleClients,\n\t\t\t});\n\t\t}\n\t}\n\n\tconst unregister = walletsApi.register(...Object.values(wallets));\n\treturn { wallets, unregister };\n}\n\nfunction defaultWindowFeatures() {\n\tconst width = 500;\n\tconst height = 800;\n\tconst left = (screen.width - width) / 2;\n\tconst top = (screen.height - height) / 4;\n\n\treturn `popup=1;toolbar=0;status=0;resizable=1,width=${width},height=${height},top=${top},left=${left}`;\n}\n"],
5
+ "mappings": "AAGA,SAAS,mBAAmB;AAE5B,SAAS,kBAAkB;AAG3B,SAAS,sBAAsB;AAC/B,SAAS,mCAAmC;AAErC,SAAS,qBAAqB;AAAA,EACpC;AAAA,EACA,iBAAiB;AAAA,EACjB,GAAG;AACJ,GAAgC;AAC/B,QAAM,UACL,aAAa,SACV,OAAO,UACP,CAAC,OAAO,OAAO,OAAO,QAAQ,EAAE,SAAS,OAAO,WAAW,UAAU,CAAC,CAAC;AAE3E,QAAM,yBAAyB,QAAQ,OAAO,CAAC,EAAE,QAAQ,MAAM,eAAe,OAAO,CAAC;AACtF,MAAI,uBAAuB,WAAW,GAAG;AACxC,UAAM,IAAI,MAAM,0DAA0D;AAAA,EAC3E;AAEA,QAAM,oBACL,aAAa,SAAS,OAAO,oBAAoB,MAAM,QAAQ,CAAC,EAAE;AAEnE,QAAM,aAAa,WAAW;AAC9B,QAAM,UAAsD,CAAC;AAE7D,aAAW,EAAE,MAAM,MAAM,SAAS,KAAK,6BAA6B;AACnE,UAAM,kBAAkB,UAAU,QAAQ;AAC1C,QAAI,iBAAiB;AACpB,cAAQ,QAAQ,IAAI,IAAI,YAAY;AAAA,QACnC,GAAG;AAAA,QACH;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,QAAQ,OAAO;AAAA,QACf,QAAQ,OAAO;AAAA,QACf,kBAAkB,OAAO;AAAA,QACzB,SAAS;AAAA,MACV,CAAC;AAAA,IACF;AAAA,EACD;AAEA,QAAM,aAAa,WAAW,SAAS,GAAG,OAAO,OAAO,OAAO,CAAC;AAChE,SAAO,EAAE,SAAS,WAAW;AAC9B;AAEA,SAAS,wBAAwB;AAChC,QAAM,QAAQ;AACd,QAAM,SAAS;AACf,QAAM,QAAQ,OAAO,QAAQ,SAAS;AACtC,QAAM,OAAO,OAAO,SAAS,UAAU;AAEvC,SAAO,gDAAgD,KAAK,WAAW,MAAM,QAAQ,GAAG,SAAS,IAAI;AACtG;",
6
+ "names": []
7
+ }
@@ -0,0 +1,18 @@
1
+ import type { WritableAtom } from 'nanostores';
2
+ import type { EnokiClientConfig } from '../EnokiClient/index.js';
3
+ import type { ClientWithCoreApi, Experimental_HaneulClientTypes } from '@haneullabs/haneul/experimental';
4
+ import type { EnokiSessionContext, ZkLoginSession, ZkLoginState } from './types.js';
5
+ export type EnokiWalletStateConfig = EnokiClientConfig & {
6
+ clients: ClientWithCoreApi[];
7
+ clientId: string;
8
+ };
9
+ export declare class EnokiWalletState {
10
+ #private;
11
+ constructor(config: EnokiWalletStateConfig);
12
+ get zkLoginState(): WritableAtom<ZkLoginState | null>;
13
+ get sessionContextByNetwork(): Map<Experimental_HaneulClientTypes.Network, EnokiSessionContext>;
14
+ getSessionContext(network: Experimental_HaneulClientTypes.Network): EnokiSessionContext;
15
+ logout(): Promise<void>;
16
+ setSession(context: EnokiSessionContext, newValue: ZkLoginSession | null): Promise<void>;
17
+ getSession({ $zkLoginSession, idbStore }: EnokiSessionContext): Promise<ZkLoginSession | null>;
18
+ }
@@ -0,0 +1,122 @@
1
+ var __typeError = (msg) => {
2
+ throw TypeError(msg);
3
+ };
4
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
5
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
6
+ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
7
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
8
+ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
9
+ var _encryption, _encryptionKey, _stateStore, _sessionContextByNetwork, _zkLoginState, _EnokiWalletState_instances, createZkLoginState_fn;
10
+ import { clear, createStore, del, get, set } from "idb-keyval";
11
+ import { atom, onMount, onSet, task } from "nanostores";
12
+ import { createDefaultEncryption } from "../encryption.js";
13
+ const sessionKey = "zklogin-session";
14
+ const stateKey = "zklogin-state";
15
+ class EnokiWalletState {
16
+ constructor(config) {
17
+ __privateAdd(this, _EnokiWalletState_instances);
18
+ __privateAdd(this, _encryption);
19
+ __privateAdd(this, _encryptionKey);
20
+ __privateAdd(this, _stateStore);
21
+ __privateAdd(this, _sessionContextByNetwork);
22
+ __privateAdd(this, _zkLoginState);
23
+ __privateSet(this, _encryptionKey, config.apiKey);
24
+ __privateSet(this, _encryption, createDefaultEncryption());
25
+ __privateSet(this, _stateStore, createStore(`${config.apiKey}_${config.clientId}`, "enoki"));
26
+ __privateSet(this, _zkLoginState, __privateMethod(this, _EnokiWalletState_instances, createZkLoginState_fn).call(this));
27
+ __privateSet(this, _sessionContextByNetwork, config.clients.reduce((accumulator, client) => {
28
+ const network = client.network;
29
+ const idbStore = createStore(`${config.apiKey}_${network}_${config.clientId}`, "enoki");
30
+ const sessionContext = {
31
+ $zkLoginSession: atom({ initialized: false, value: null }),
32
+ client,
33
+ idbStore
34
+ };
35
+ onMount(sessionContext.$zkLoginSession, () => {
36
+ this.getSession(sessionContext);
37
+ });
38
+ return accumulator.set(network, sessionContext);
39
+ }, /* @__PURE__ */ new Map()));
40
+ }
41
+ get zkLoginState() {
42
+ return __privateGet(this, _zkLoginState);
43
+ }
44
+ get sessionContextByNetwork() {
45
+ return __privateGet(this, _sessionContextByNetwork);
46
+ }
47
+ getSessionContext(network) {
48
+ const context = __privateGet(this, _sessionContextByNetwork).get(network);
49
+ if (!context) {
50
+ throw new Error(`The network ${network} isn't supported.`);
51
+ }
52
+ return context;
53
+ }
54
+ async logout() {
55
+ __privateGet(this, _zkLoginState).set(null);
56
+ await clear(__privateGet(this, _stateStore));
57
+ for (const context of __privateGet(this, _sessionContextByNetwork).values()) {
58
+ await this.setSession(context, null);
59
+ await clear(context.idbStore);
60
+ }
61
+ }
62
+ async setSession(context, newValue) {
63
+ if (newValue) {
64
+ const storedValue = await __privateGet(this, _encryption).encrypt(
65
+ __privateGet(this, _encryptionKey),
66
+ JSON.stringify(newValue)
67
+ );
68
+ await set(sessionKey, storedValue, context.idbStore);
69
+ } else {
70
+ await del(sessionKey, context.idbStore);
71
+ }
72
+ context.$zkLoginSession.set({ initialized: true, value: newValue });
73
+ }
74
+ async getSession({ $zkLoginSession, idbStore }) {
75
+ if ($zkLoginSession.get().initialized) {
76
+ return $zkLoginSession.get().value;
77
+ }
78
+ try {
79
+ const storedValue = await get(sessionKey, idbStore);
80
+ if (!storedValue) return null;
81
+ const state = JSON.parse(
82
+ await __privateGet(this, _encryption).decrypt(__privateGet(this, _encryptionKey), storedValue)
83
+ );
84
+ if (state?.expiresAt && Date.now() > state.expiresAt) {
85
+ await this.logout();
86
+ } else {
87
+ $zkLoginSession.set({ initialized: true, value: state });
88
+ }
89
+ } catch {
90
+ $zkLoginSession.set({ initialized: true, value: null });
91
+ }
92
+ return $zkLoginSession.get().value;
93
+ }
94
+ }
95
+ _encryption = new WeakMap();
96
+ _encryptionKey = new WeakMap();
97
+ _stateStore = new WeakMap();
98
+ _sessionContextByNetwork = new WeakMap();
99
+ _zkLoginState = new WeakMap();
100
+ _EnokiWalletState_instances = new WeakSet();
101
+ createZkLoginState_fn = function() {
102
+ const $zkLoginState = atom(null);
103
+ onMount($zkLoginState, () => {
104
+ task(async () => {
105
+ try {
106
+ const rawStoredValue = await get(stateKey, __privateGet(this, _stateStore));
107
+ if (rawStoredValue) {
108
+ $zkLoginState.set(JSON.parse(rawStoredValue));
109
+ }
110
+ } catch {
111
+ }
112
+ });
113
+ });
114
+ onSet($zkLoginState, ({ newValue }) => {
115
+ set(stateKey, JSON.stringify(newValue), __privateGet(this, _stateStore));
116
+ });
117
+ return $zkLoginState;
118
+ };
119
+ export {
120
+ EnokiWalletState
121
+ };
122
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/wallet/state.ts"],
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { UseStore } from 'idb-keyval';\nimport { clear, createStore, del, get, set } from 'idb-keyval';\nimport type { WritableAtom } from 'nanostores';\nimport { atom, onMount, onSet, task } from 'nanostores';\n\nimport type { Encryption } from '../encryption.js';\nimport { createDefaultEncryption } from '../encryption.js';\nimport type { EnokiClientConfig } from '../EnokiClient/index.js';\nimport type { ClientWithCoreApi, Experimental_HaneulClientTypes } from '@haneullabs/haneul/experimental';\n\nimport type { EnokiSessionContext, ZkLoginSession, ZkLoginState } from './types.js';\n\nexport type EnokiWalletStateConfig = EnokiClientConfig & {\n\tclients: ClientWithCoreApi[];\n\tclientId: string;\n};\n\nconst sessionKey = 'zklogin-session';\n\nconst stateKey = 'zklogin-state';\n\nexport class EnokiWalletState {\n\t#encryption: Encryption;\n\t#encryptionKey: string;\n\n\t#stateStore: UseStore;\n\t#sessionContextByNetwork: Map<Experimental_HaneulClientTypes.Network, EnokiSessionContext>;\n\t#zkLoginState: WritableAtom<ZkLoginState | null>;\n\n\tconstructor(config: EnokiWalletStateConfig) {\n\t\tthis.#encryptionKey = config.apiKey;\n\t\tthis.#encryption = createDefaultEncryption();\n\n\t\tthis.#stateStore = createStore(`${config.apiKey}_${config.clientId}`, 'enoki');\n\t\tthis.#zkLoginState = this.#createZkLoginState();\n\n\t\tthis.#sessionContextByNetwork = config.clients.reduce((accumulator, client) => {\n\t\t\tconst network = client.network;\n\t\t\tconst idbStore = createStore(`${config.apiKey}_${network}_${config.clientId}`, 'enoki');\n\n\t\t\tconst sessionContext: EnokiSessionContext = {\n\t\t\t\t$zkLoginSession: atom({ initialized: false, value: null }),\n\t\t\t\tclient,\n\t\t\t\tidbStore,\n\t\t\t};\n\n\t\t\tonMount(sessionContext.$zkLoginSession, () => {\n\t\t\t\tthis.getSession(sessionContext);\n\t\t\t});\n\n\t\t\treturn accumulator.set(network, sessionContext);\n\t\t}, new Map());\n\t}\n\n\tget zkLoginState() {\n\t\treturn this.#zkLoginState;\n\t}\n\n\tget sessionContextByNetwork() {\n\t\treturn this.#sessionContextByNetwork;\n\t}\n\n\tgetSessionContext(network: Experimental_HaneulClientTypes.Network) {\n\t\tconst context = this.#sessionContextByNetwork.get(network);\n\t\tif (!context) {\n\t\t\tthrow new Error(`The network ${network} isn't supported.`);\n\t\t}\n\n\t\treturn context;\n\t}\n\n\tasync logout() {\n\t\tthis.#zkLoginState.set(null);\n\t\tawait clear(this.#stateStore);\n\n\t\tfor (const context of this.#sessionContextByNetwork.values()) {\n\t\t\tawait this.setSession(context, null);\n\t\t\tawait clear(context.idbStore);\n\t\t}\n\t}\n\n\tasync setSession(context: EnokiSessionContext, newValue: ZkLoginSession | null) {\n\t\tif (newValue) {\n\t\t\tconst storedValue = await this.#encryption.encrypt(\n\t\t\t\tthis.#encryptionKey,\n\t\t\t\tJSON.stringify(newValue),\n\t\t\t);\n\n\t\t\tawait set(sessionKey, storedValue, context.idbStore);\n\t\t} else {\n\t\t\tawait del(sessionKey, context.idbStore);\n\t\t}\n\n\t\tcontext.$zkLoginSession.set({ initialized: true, value: newValue });\n\t}\n\n\tasync getSession({ $zkLoginSession, idbStore }: EnokiSessionContext) {\n\t\tif ($zkLoginSession.get().initialized) {\n\t\t\treturn $zkLoginSession.get().value;\n\t\t}\n\n\t\ttry {\n\t\t\tconst storedValue = await get(sessionKey, idbStore);\n\t\t\tif (!storedValue) return null;\n\n\t\t\tconst state: ZkLoginSession = JSON.parse(\n\t\t\t\tawait this.#encryption.decrypt(this.#encryptionKey, storedValue),\n\t\t\t);\n\n\t\t\tif (state?.expiresAt && Date.now() > state.expiresAt) {\n\t\t\t\tawait this.logout();\n\t\t\t} else {\n\t\t\t\t$zkLoginSession.set({ initialized: true, value: state });\n\t\t\t}\n\t\t} catch {\n\t\t\t$zkLoginSession.set({ initialized: true, value: null });\n\t\t}\n\n\t\treturn $zkLoginSession.get().value;\n\t}\n\n\t#createZkLoginState() {\n\t\tconst $zkLoginState = atom<ZkLoginState | null>(null);\n\n\t\tonMount($zkLoginState, () => {\n\t\t\ttask(async () => {\n\t\t\t\ttry {\n\t\t\t\t\tconst rawStoredValue = await get<string>(stateKey, this.#stateStore);\n\t\t\t\t\tif (rawStoredValue) {\n\t\t\t\t\t\t$zkLoginState.set(JSON.parse(rawStoredValue));\n\t\t\t\t\t}\n\t\t\t\t} catch {\n\t\t\t\t\t// Ignore errors\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tonSet($zkLoginState, ({ newValue }) => {\n\t\t\tset(stateKey, JSON.stringify(newValue), this.#stateStore);\n\t\t});\n\n\t\treturn $zkLoginState;\n\t}\n}\n"],
5
+ "mappings": ";;;;;;;;AAAA;AAIA,SAAS,OAAO,aAAa,KAAK,KAAK,WAAW;AAElD,SAAS,MAAM,SAAS,OAAO,YAAY;AAG3C,SAAS,+BAA+B;AAWxC,MAAM,aAAa;AAEnB,MAAM,WAAW;AAEV,MAAM,iBAAiB;AAAA,EAQ7B,YAAY,QAAgC;AARtC;AACN;AACA;AAEA;AACA;AACA;AAGC,uBAAK,gBAAiB,OAAO;AAC7B,uBAAK,aAAc,wBAAwB;AAE3C,uBAAK,aAAc,YAAY,GAAG,OAAO,MAAM,IAAI,OAAO,QAAQ,IAAI,OAAO;AAC7E,uBAAK,eAAgB,sBAAK,oDAAL;AAErB,uBAAK,0BAA2B,OAAO,QAAQ,OAAO,CAAC,aAAa,WAAW;AAC9E,YAAM,UAAU,OAAO;AACvB,YAAM,WAAW,YAAY,GAAG,OAAO,MAAM,IAAI,OAAO,IAAI,OAAO,QAAQ,IAAI,OAAO;AAEtF,YAAM,iBAAsC;AAAA,QAC3C,iBAAiB,KAAK,EAAE,aAAa,OAAO,OAAO,KAAK,CAAC;AAAA,QACzD;AAAA,QACA;AAAA,MACD;AAEA,cAAQ,eAAe,iBAAiB,MAAM;AAC7C,aAAK,WAAW,cAAc;AAAA,MAC/B,CAAC;AAED,aAAO,YAAY,IAAI,SAAS,cAAc;AAAA,IAC/C,GAAG,oBAAI,IAAI,CAAC;AAAA,EACb;AAAA,EAEA,IAAI,eAAe;AAClB,WAAO,mBAAK;AAAA,EACb;AAAA,EAEA,IAAI,0BAA0B;AAC7B,WAAO,mBAAK;AAAA,EACb;AAAA,EAEA,kBAAkB,SAAiD;AAClE,UAAM,UAAU,mBAAK,0BAAyB,IAAI,OAAO;AACzD,QAAI,CAAC,SAAS;AACb,YAAM,IAAI,MAAM,eAAe,OAAO,mBAAmB;AAAA,IAC1D;AAEA,WAAO;AAAA,EACR;AAAA,EAEA,MAAM,SAAS;AACd,uBAAK,eAAc,IAAI,IAAI;AAC3B,UAAM,MAAM,mBAAK,YAAW;AAE5B,eAAW,WAAW,mBAAK,0BAAyB,OAAO,GAAG;AAC7D,YAAM,KAAK,WAAW,SAAS,IAAI;AACnC,YAAM,MAAM,QAAQ,QAAQ;AAAA,IAC7B;AAAA,EACD;AAAA,EAEA,MAAM,WAAW,SAA8B,UAAiC;AAC/E,QAAI,UAAU;AACb,YAAM,cAAc,MAAM,mBAAK,aAAY;AAAA,QAC1C,mBAAK;AAAA,QACL,KAAK,UAAU,QAAQ;AAAA,MACxB;AAEA,YAAM,IAAI,YAAY,aAAa,QAAQ,QAAQ;AAAA,IACpD,OAAO;AACN,YAAM,IAAI,YAAY,QAAQ,QAAQ;AAAA,IACvC;AAEA,YAAQ,gBAAgB,IAAI,EAAE,aAAa,MAAM,OAAO,SAAS,CAAC;AAAA,EACnE;AAAA,EAEA,MAAM,WAAW,EAAE,iBAAiB,SAAS,GAAwB;AACpE,QAAI,gBAAgB,IAAI,EAAE,aAAa;AACtC,aAAO,gBAAgB,IAAI,EAAE;AAAA,IAC9B;AAEA,QAAI;AACH,YAAM,cAAc,MAAM,IAAI,YAAY,QAAQ;AAClD,UAAI,CAAC,YAAa,QAAO;AAEzB,YAAM,QAAwB,KAAK;AAAA,QAClC,MAAM,mBAAK,aAAY,QAAQ,mBAAK,iBAAgB,WAAW;AAAA,MAChE;AAEA,UAAI,OAAO,aAAa,KAAK,IAAI,IAAI,MAAM,WAAW;AACrD,cAAM,KAAK,OAAO;AAAA,MACnB,OAAO;AACN,wBAAgB,IAAI,EAAE,aAAa,MAAM,OAAO,MAAM,CAAC;AAAA,MACxD;AAAA,IACD,QAAQ;AACP,sBAAgB,IAAI,EAAE,aAAa,MAAM,OAAO,KAAK,CAAC;AAAA,IACvD;AAEA,WAAO,gBAAgB,IAAI,EAAE;AAAA,EAC9B;AAwBD;AAzHC;AACA;AAEA;AACA;AACA;AANM;AAoGN,wBAAmB,WAAG;AACrB,QAAM,gBAAgB,KAA0B,IAAI;AAEpD,UAAQ,eAAe,MAAM;AAC5B,SAAK,YAAY;AAChB,UAAI;AACH,cAAM,iBAAiB,MAAM,IAAY,UAAU,mBAAK,YAAW;AACnE,YAAI,gBAAgB;AACnB,wBAAc,IAAI,KAAK,MAAM,cAAc,CAAC;AAAA,QAC7C;AAAA,MACD,QAAQ;AAAA,MAER;AAAA,IACD,CAAC;AAAA,EACF,CAAC;AAED,QAAM,eAAe,CAAC,EAAE,SAAS,MAAM;AACtC,QAAI,UAAU,KAAK,UAAU,QAAQ,GAAG,mBAAK,YAAW;AAAA,EACzD,CAAC;AAED,SAAO;AACR;",
6
+ "names": []
7
+ }
@@ -0,0 +1,82 @@
1
+ import type { HaneulClient } from '@haneullabs/haneul/client';
2
+ import type { StandardEventsListeners, Wallet } from '@haneullabs/wallet-standard';
3
+ import type { EnokiClientConfig } from '../EnokiClient/index.js';
4
+ import type { AuthProvider, EnokiNetwork } from '../EnokiClient/type.js';
5
+ import type { ClientWithCoreApi, Experimental_HaneulClientTypes } from '@haneullabs/haneul/experimental';
6
+ import type { ZkLoginSignatureInputs } from '@haneullabs/haneul/zklogin';
7
+ import type { UseStore } from 'idb-keyval';
8
+ import type { WritableAtom } from 'nanostores';
9
+ export type WalletEventsMap = {
10
+ [E in keyof StandardEventsListeners]: Parameters<StandardEventsListeners[E]>[0];
11
+ };
12
+ export type ZkLoginState = {
13
+ address: string;
14
+ publicKey: string;
15
+ };
16
+ export type ZkLoginSession = {
17
+ maxEpoch: number;
18
+ randomness: string;
19
+ expiresAt: number;
20
+ jwt?: string;
21
+ proof?: ZkLoginSignatureInputs;
22
+ };
23
+ export type EnokiSessionContext = {
24
+ idbStore: UseStore;
25
+ client: ClientWithCoreApi;
26
+ $zkLoginSession: WritableAtom<{
27
+ initialized: boolean;
28
+ value: ZkLoginSession | null;
29
+ }>;
30
+ };
31
+ type ClientConfig = {
32
+ /**
33
+ * A list of client instances to use when building and executing transactions.
34
+ */
35
+ clients: ClientWithCoreApi[];
36
+ /**
37
+ * A function that returns the current network that the application is acting on.
38
+ */
39
+ getCurrentNetwork: () => Experimental_HaneulClientTypes.Network;
40
+ };
41
+ export type EnokiWalletOptions = {
42
+ /**
43
+ * The window features to use when opening the authorization popup.
44
+ * https://developer.mozilla.org/en-US/docs/Web/API/Window/open#windowfeatures
45
+ */
46
+ windowFeatures?: string | (() => string);
47
+ /**
48
+ * The authentication provider to register the wallet for.
49
+ */
50
+ provider: AuthProvider;
51
+ } & AuthProviderOptions & EnokiClientConfig & ClientConfig & Pick<Wallet, 'name' | 'icon'>;
52
+ export type AuthProviderOptions = {
53
+ /**
54
+ * The OAuth client ID.
55
+ */
56
+ clientId: string;
57
+ /**
58
+ * The URL to redirect to after authorization.
59
+ */
60
+ redirectUrl?: string;
61
+ /**
62
+ * Extra parameters to include in the authorization URL.
63
+ */
64
+ extraParams?: Record<string, string> | (() => Record<string, string>);
65
+ };
66
+ export type RegisterEnokiWalletsOptions = {
67
+ /**
68
+ * Configuration for each OAuth provider.
69
+ */
70
+ providers: Partial<Record<AuthProvider, AuthProviderOptions>>;
71
+ } & Pick<EnokiWalletOptions, 'apiKey' | 'apiUrl' | 'additionalEpochs' | 'windowFeatures'> & (ClientConfig | {
72
+ /**
73
+ * The HaneulClient instance to use when building and executing transactions.
74
+ */
75
+ client: HaneulClient;
76
+ /**
77
+ * The network to use when building and executing transactions.
78
+ * @default 'mainnet'
79
+ */
80
+ network?: EnokiNetwork;
81
+ });
82
+ export {};
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,11 @@
1
+ import type { Wallet } from '@haneullabs/wallet-standard';
2
+ import type { UiWallet } from '@wallet-standard/ui';
3
+ import type { EnokiWallet } from './wallet.js';
4
+ import type { EnokiGetSessionInput } from './features.js';
5
+ export declare function isEnokiWallet(wallet: UiWallet): boolean;
6
+ export declare function isEnokiWallet(wallet: Wallet): wallet is EnokiWallet;
7
+ export declare function getWalletMetadata(wallet: Wallet | UiWallet): import("./features.js").EnokiGetMetadataOutput | null;
8
+ export declare function getSession(wallet: Wallet | UiWallet, input?: EnokiGetSessionInput): Promise<import("./features.js").EnokiGetSessionOutput>;
9
+ export declare function isGoogleWallet(wallet: Wallet | UiWallet): boolean;
10
+ export declare function isTwitchWallet(wallet: Wallet | UiWallet): boolean;
11
+ export declare function isFacebookWallet(wallet: Wallet | UiWallet): boolean;
@@ -0,0 +1,63 @@
1
+ import { getWalletFeature } from "@wallet-standard/ui";
2
+ import { EnokiGetMetadata, EnokiGetSession } from "./features.js";
3
+ function isEnokiWallet(wallet) {
4
+ if (isWalletHandle(wallet)) {
5
+ return wallet.features.includes(EnokiGetMetadata);
6
+ }
7
+ return EnokiGetMetadata in wallet.features;
8
+ }
9
+ function getWalletMetadata(wallet) {
10
+ if (isWalletHandle(wallet)) {
11
+ try {
12
+ const { getMetadata } = getWalletFeature(
13
+ wallet,
14
+ EnokiGetMetadata
15
+ );
16
+ return getMetadata();
17
+ } catch {
18
+ return null;
19
+ }
20
+ } else if (EnokiGetMetadata in wallet.features) {
21
+ const walletWithFeature = wallet;
22
+ return walletWithFeature.features[EnokiGetMetadata].getMetadata();
23
+ }
24
+ return null;
25
+ }
26
+ async function getSession(wallet, input) {
27
+ if (isWalletHandle(wallet)) {
28
+ try {
29
+ const { getSession: getSession2 } = getWalletFeature(
30
+ wallet,
31
+ EnokiGetSession
32
+ );
33
+ return await getSession2(input);
34
+ } catch {
35
+ return null;
36
+ }
37
+ } else if (EnokiGetSession in wallet.features) {
38
+ const walletWithFeature = wallet;
39
+ return await walletWithFeature.features[EnokiGetSession].getSession(input);
40
+ }
41
+ return null;
42
+ }
43
+ function isGoogleWallet(wallet) {
44
+ return getWalletMetadata(wallet)?.provider === "google";
45
+ }
46
+ function isTwitchWallet(wallet) {
47
+ return getWalletMetadata(wallet)?.provider === "twitch";
48
+ }
49
+ function isFacebookWallet(wallet) {
50
+ return getWalletMetadata(wallet)?.provider === "facebook";
51
+ }
52
+ function isWalletHandle(wallet) {
53
+ return Array.isArray(wallet.features);
54
+ }
55
+ export {
56
+ getSession,
57
+ getWalletMetadata,
58
+ isEnokiWallet,
59
+ isFacebookWallet,
60
+ isGoogleWallet,
61
+ isTwitchWallet
62
+ };
63
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/wallet/utils.ts"],
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { Wallet, WalletWithFeatures } from '@haneullabs/wallet-standard';\nimport type { UiWallet } from '@wallet-standard/ui';\nimport { getWalletFeature } from '@wallet-standard/ui';\nimport type { EnokiWallet } from './wallet.js';\nimport type {\n\tEnokiGetMetadataFeature,\n\tEnokiGetSessionFeature,\n\tEnokiGetSessionInput,\n} from './features.js';\nimport { EnokiGetMetadata, EnokiGetSession } from './features.js';\n\nexport function isEnokiWallet(wallet: UiWallet): boolean;\nexport function isEnokiWallet(wallet: Wallet): wallet is EnokiWallet;\nexport function isEnokiWallet(wallet: Wallet | UiWallet) {\n\tif (isWalletHandle(wallet)) {\n\t\treturn wallet.features.includes(EnokiGetMetadata);\n\t}\n\treturn EnokiGetMetadata in wallet.features;\n}\n\nexport function getWalletMetadata(wallet: Wallet | UiWallet) {\n\tif (isWalletHandle(wallet)) {\n\t\ttry {\n\t\t\tconst { getMetadata } = getWalletFeature(\n\t\t\t\twallet,\n\t\t\t\tEnokiGetMetadata,\n\t\t\t) as EnokiGetMetadataFeature[typeof EnokiGetMetadata];\n\n\t\t\treturn getMetadata();\n\t\t} catch {\n\t\t\treturn null;\n\t\t}\n\t} else if (EnokiGetMetadata in wallet.features) {\n\t\tconst walletWithFeature = wallet as WalletWithFeatures<EnokiGetMetadataFeature>;\n\t\treturn walletWithFeature.features[EnokiGetMetadata].getMetadata();\n\t}\n\treturn null;\n}\n\nexport async function getSession(wallet: Wallet | UiWallet, input?: EnokiGetSessionInput) {\n\tif (isWalletHandle(wallet)) {\n\t\ttry {\n\t\t\tconst { getSession } = getWalletFeature(\n\t\t\t\twallet,\n\t\t\t\tEnokiGetSession,\n\t\t\t) as EnokiGetSessionFeature[typeof EnokiGetSession];\n\n\t\t\treturn await getSession(input);\n\t\t} catch {\n\t\t\treturn null;\n\t\t}\n\t} else if (EnokiGetSession in wallet.features) {\n\t\tconst walletWithFeature = wallet as WalletWithFeatures<EnokiGetSessionFeature>;\n\t\treturn await walletWithFeature.features[EnokiGetSession].getSession(input);\n\t}\n\treturn null;\n}\n\nexport function isGoogleWallet(wallet: Wallet | UiWallet) {\n\treturn getWalletMetadata(wallet)?.provider === 'google';\n}\n\nexport function isTwitchWallet(wallet: Wallet | UiWallet) {\n\treturn getWalletMetadata(wallet)?.provider === 'twitch';\n}\n\nexport function isFacebookWallet(wallet: Wallet | UiWallet) {\n\treturn getWalletMetadata(wallet)?.provider === 'facebook';\n}\n\nfunction isWalletHandle(wallet: UiWallet | Wallet): wallet is UiWallet {\n\t// TypeScript doesn't properly narrow readonly arrays:\n\t// https://github.com/microsoft/TypeScript/issues/1700\n\treturn Array.isArray(wallet.features);\n}\n"],
5
+ "mappings": "AAKA,SAAS,wBAAwB;AAOjC,SAAS,kBAAkB,uBAAuB;AAI3C,SAAS,cAAc,QAA2B;AACxD,MAAI,eAAe,MAAM,GAAG;AAC3B,WAAO,OAAO,SAAS,SAAS,gBAAgB;AAAA,EACjD;AACA,SAAO,oBAAoB,OAAO;AACnC;AAEO,SAAS,kBAAkB,QAA2B;AAC5D,MAAI,eAAe,MAAM,GAAG;AAC3B,QAAI;AACH,YAAM,EAAE,YAAY,IAAI;AAAA,QACvB;AAAA,QACA;AAAA,MACD;AAEA,aAAO,YAAY;AAAA,IACpB,QAAQ;AACP,aAAO;AAAA,IACR;AAAA,EACD,WAAW,oBAAoB,OAAO,UAAU;AAC/C,UAAM,oBAAoB;AAC1B,WAAO,kBAAkB,SAAS,gBAAgB,EAAE,YAAY;AAAA,EACjE;AACA,SAAO;AACR;AAEA,eAAsB,WAAW,QAA2B,OAA8B;AACzF,MAAI,eAAe,MAAM,GAAG;AAC3B,QAAI;AACH,YAAM,EAAE,YAAAA,YAAW,IAAI;AAAA,QACtB;AAAA,QACA;AAAA,MACD;AAEA,aAAO,MAAMA,YAAW,KAAK;AAAA,IAC9B,QAAQ;AACP,aAAO;AAAA,IACR;AAAA,EACD,WAAW,mBAAmB,OAAO,UAAU;AAC9C,UAAM,oBAAoB;AAC1B,WAAO,MAAM,kBAAkB,SAAS,eAAe,EAAE,WAAW,KAAK;AAAA,EAC1E;AACA,SAAO;AACR;AAEO,SAAS,eAAe,QAA2B;AACzD,SAAO,kBAAkB,MAAM,GAAG,aAAa;AAChD;AAEO,SAAS,eAAe,QAA2B;AACzD,SAAO,kBAAkB,MAAM,GAAG,aAAa;AAChD;AAEO,SAAS,iBAAiB,QAA2B;AAC3D,SAAO,kBAAkB,MAAM,GAAG,aAAa;AAChD;AAEA,SAAS,eAAe,QAA+C;AAGtE,SAAO,MAAM,QAAQ,OAAO,QAAQ;AACrC;",
6
+ "names": ["getSession"]
7
+ }
@@ -0,0 +1,16 @@
1
+ import type { StandardConnectFeature, StandardDisconnectFeature, StandardEventsFeature, HaneulSignAndExecuteTransactionFeature, HaneulSignPersonalMessageFeature, HaneulSignTransactionFeature, Wallet } from '@haneullabs/wallet-standard';
2
+ import { ReadonlyWalletAccount } from '@haneullabs/wallet-standard';
3
+ import type { AuthProvider } from '../EnokiClient/type.js';
4
+ import type { EnokiWalletOptions } from './types.js';
5
+ import type { EnokiGetMetadataFeature, EnokiGetSessionFeature } from './features.js';
6
+ export declare class EnokiWallet implements Wallet {
7
+ #private;
8
+ get name(): string;
9
+ get provider(): AuthProvider;
10
+ get icon(): `data:image/svg+xml;base64,${string}` | `data:image/webp;base64,${string}` | `data:image/png;base64,${string}` | `data:image/gif;base64,${string}`;
11
+ get version(): "1.0.0";
12
+ get chains(): `sui:${string & {}}`[];
13
+ get accounts(): ReadonlyWalletAccount[];
14
+ get features(): StandardConnectFeature & StandardDisconnectFeature & StandardEventsFeature & HaneulSignTransactionFeature & HaneulSignAndExecuteTransactionFeature & HaneulSignPersonalMessageFeature & EnokiGetMetadataFeature & EnokiGetSessionFeature;
15
+ constructor({ name, icon, provider, clientId, redirectUrl, extraParams, windowFeatures, getCurrentNetwork, apiKey, apiUrl, additionalEpochs, clients, }: EnokiWalletOptions);
16
+ }