zksync-sso 0.0.0-beta.1

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 (300) hide show
  1. package/.gitignore +5 -0
  2. package/.lintstagedrc.js +5 -0
  3. package/.npmignore +10 -0
  4. package/README.md +3 -0
  5. package/dist/_cjs/abi/Factory.js +197 -0
  6. package/dist/_cjs/abi/Factory.js.map +1 -0
  7. package/dist/_cjs/abi/SessionKeyModule.js +1104 -0
  8. package/dist/_cjs/abi/SessionKeyModule.js.map +1 -0
  9. package/dist/_cjs/client/actions/account.js +140 -0
  10. package/dist/_cjs/client/actions/account.js.map +1 -0
  11. package/dist/_cjs/client/actions/index.js +19 -0
  12. package/dist/_cjs/client/actions/index.js.map +1 -0
  13. package/dist/_cjs/client/actions/passkey.js +122 -0
  14. package/dist/_cjs/client/actions/passkey.js.map +1 -0
  15. package/dist/_cjs/client/actions/session.js +40 -0
  16. package/dist/_cjs/client/actions/session.js.map +1 -0
  17. package/dist/_cjs/client/clients/passkey.js +46 -0
  18. package/dist/_cjs/client/clients/passkey.js.map +1 -0
  19. package/dist/_cjs/client/clients/session.js +48 -0
  20. package/dist/_cjs/client/clients/session.js.map +1 -0
  21. package/dist/_cjs/client/decorators/index.js +19 -0
  22. package/dist/_cjs/client/decorators/index.js.map +1 -0
  23. package/dist/_cjs/client/decorators/passkey.js +15 -0
  24. package/dist/_cjs/client/decorators/passkey.js.map +1 -0
  25. package/dist/_cjs/client/decorators/session.js +7 -0
  26. package/dist/_cjs/client/decorators/session.js.map +1 -0
  27. package/dist/_cjs/client/decorators/session_wallet.js +32 -0
  28. package/dist/_cjs/client/decorators/session_wallet.js.map +1 -0
  29. package/dist/_cjs/client/index.js +22 -0
  30. package/dist/_cjs/client/index.js.map +1 -0
  31. package/dist/_cjs/client/passkey.js +20 -0
  32. package/dist/_cjs/client/passkey.js.map +1 -0
  33. package/dist/_cjs/client/smart-account.js +45 -0
  34. package/dist/_cjs/client/smart-account.js.map +1 -0
  35. package/dist/_cjs/client/utils/assertEip712Transaction.js +44 -0
  36. package/dist/_cjs/client/utils/assertEip712Transaction.js.map +1 -0
  37. package/dist/_cjs/client/utils/getEip712Domain.js +57 -0
  38. package/dist/_cjs/client/utils/getEip712Domain.js.map +1 -0
  39. package/dist/_cjs/client/utils/isEip712Transaction.js +16 -0
  40. package/dist/_cjs/client/utils/isEip712Transaction.js.map +1 -0
  41. package/dist/_cjs/client-auth-server/Signer.js +264 -0
  42. package/dist/_cjs/client-auth-server/Signer.js.map +1 -0
  43. package/dist/_cjs/client-auth-server/WalletProvider.js +107 -0
  44. package/dist/_cjs/client-auth-server/WalletProvider.js.map +1 -0
  45. package/dist/_cjs/client-auth-server/index.js +20 -0
  46. package/dist/_cjs/client-auth-server/index.js.map +1 -0
  47. package/dist/_cjs/client-auth-server/interface.js +3 -0
  48. package/dist/_cjs/client-auth-server/interface.js.map +1 -0
  49. package/dist/_cjs/client-auth-server/rpc.js +3 -0
  50. package/dist/_cjs/client-auth-server/rpc.js.map +1 -0
  51. package/dist/_cjs/client-auth-server/session.js +90 -0
  52. package/dist/_cjs/client-auth-server/session.js.map +1 -0
  53. package/dist/_cjs/communicator/PopupCommunicator.js +138 -0
  54. package/dist/_cjs/communicator/PopupCommunicator.js.map +1 -0
  55. package/dist/_cjs/communicator/index.js +6 -0
  56. package/dist/_cjs/communicator/index.js.map +1 -0
  57. package/dist/_cjs/communicator/interface.js +3 -0
  58. package/dist/_cjs/communicator/interface.js.map +1 -0
  59. package/dist/_cjs/connector/index.js +148 -0
  60. package/dist/_cjs/connector/index.js.map +1 -0
  61. package/dist/_cjs/errors/constants.js +97 -0
  62. package/dist/_cjs/errors/constants.js.map +1 -0
  63. package/dist/_cjs/errors/errors.js +122 -0
  64. package/dist/_cjs/errors/errors.js.map +1 -0
  65. package/dist/_cjs/errors/index.js +10 -0
  66. package/dist/_cjs/errors/index.js.map +1 -0
  67. package/dist/_cjs/errors/serialize.js +63 -0
  68. package/dist/_cjs/errors/serialize.js.map +1 -0
  69. package/dist/_cjs/errors/utils.js +95 -0
  70. package/dist/_cjs/errors/utils.js.map +1 -0
  71. package/dist/_cjs/index.js +6 -0
  72. package/dist/_cjs/index.js.map +1 -0
  73. package/dist/_cjs/package.json +1 -0
  74. package/dist/_cjs/utils/encoding.js +32 -0
  75. package/dist/_cjs/utils/encoding.js.map +1 -0
  76. package/dist/_cjs/utils/helpers.js +43 -0
  77. package/dist/_cjs/utils/helpers.js.map +1 -0
  78. package/dist/_cjs/utils/index.js +20 -0
  79. package/dist/_cjs/utils/index.js.map +1 -0
  80. package/dist/_cjs/utils/passkey.js +243 -0
  81. package/dist/_cjs/utils/passkey.js.map +1 -0
  82. package/dist/_cjs/utils/session.js +30 -0
  83. package/dist/_cjs/utils/session.js.map +1 -0
  84. package/dist/_cjs/utils/storage.js +93 -0
  85. package/dist/_cjs/utils/storage.js.map +1 -0
  86. package/dist/_cjs/version.js +5 -0
  87. package/dist/_cjs/version.js.map +1 -0
  88. package/dist/_esm/abi/Factory.js +194 -0
  89. package/dist/_esm/abi/Factory.js.map +1 -0
  90. package/dist/_esm/abi/SessionKeyModule.js +1101 -0
  91. package/dist/_esm/abi/SessionKeyModule.js.map +1 -0
  92. package/dist/_esm/client/actions/account.js +137 -0
  93. package/dist/_esm/client/actions/account.js.map +1 -0
  94. package/dist/_esm/client/actions/index.js +3 -0
  95. package/dist/_esm/client/actions/index.js.map +1 -0
  96. package/dist/_esm/client/actions/passkey.js +121 -0
  97. package/dist/_esm/client/actions/passkey.js.map +1 -0
  98. package/dist/_esm/client/actions/session.js +36 -0
  99. package/dist/_esm/client/actions/session.js.map +1 -0
  100. package/dist/_esm/client/clients/passkey.js +43 -0
  101. package/dist/_esm/client/clients/passkey.js.map +1 -0
  102. package/dist/_esm/client/clients/session.js +45 -0
  103. package/dist/_esm/client/clients/session.js.map +1 -0
  104. package/dist/_esm/client/decorators/index.js +3 -0
  105. package/dist/_esm/client/decorators/index.js.map +1 -0
  106. package/dist/_esm/client/decorators/passkey.js +13 -0
  107. package/dist/_esm/client/decorators/passkey.js.map +1 -0
  108. package/dist/_esm/client/decorators/session.js +5 -0
  109. package/dist/_esm/client/decorators/session.js.map +1 -0
  110. package/dist/_esm/client/decorators/session_wallet.js +171 -0
  111. package/dist/_esm/client/decorators/session_wallet.js.map +1 -0
  112. package/dist/_esm/client/index.js +3 -0
  113. package/dist/_esm/client/index.js.map +1 -0
  114. package/dist/_esm/client/passkey.js +4 -0
  115. package/dist/_esm/client/passkey.js.map +1 -0
  116. package/dist/_esm/client/smart-account.js +46 -0
  117. package/dist/_esm/client/smart-account.js.map +1 -0
  118. package/dist/_esm/client/utils/assertEip712Transaction.js +39 -0
  119. package/dist/_esm/client/utils/assertEip712Transaction.js.map +1 -0
  120. package/dist/_esm/client/utils/getEip712Domain.js +57 -0
  121. package/dist/_esm/client/utils/getEip712Domain.js.map +1 -0
  122. package/dist/_esm/client/utils/isEip712Transaction.js +13 -0
  123. package/dist/_esm/client/utils/isEip712Transaction.js.map +1 -0
  124. package/dist/_esm/client-auth-server/Signer.js +262 -0
  125. package/dist/_esm/client-auth-server/Signer.js.map +1 -0
  126. package/dist/_esm/client-auth-server/WalletProvider.js +104 -0
  127. package/dist/_esm/client-auth-server/WalletProvider.js.map +1 -0
  128. package/dist/_esm/client-auth-server/index.js +4 -0
  129. package/dist/_esm/client-auth-server/index.js.map +1 -0
  130. package/dist/_esm/client-auth-server/interface.js +2 -0
  131. package/dist/_esm/client-auth-server/interface.js.map +1 -0
  132. package/dist/_esm/client-auth-server/rpc.js +2 -0
  133. package/dist/_esm/client-auth-server/rpc.js.map +1 -0
  134. package/dist/_esm/client-auth-server/session.js +91 -0
  135. package/dist/_esm/client-auth-server/session.js.map +1 -0
  136. package/dist/_esm/communicator/PopupCommunicator.js +136 -0
  137. package/dist/_esm/communicator/PopupCommunicator.js.map +1 -0
  138. package/dist/_esm/communicator/index.js +2 -0
  139. package/dist/_esm/communicator/index.js.map +1 -0
  140. package/dist/_esm/communicator/interface.js +2 -0
  141. package/dist/_esm/communicator/interface.js.map +1 -0
  142. package/dist/_esm/connector/index.js +146 -0
  143. package/dist/_esm/connector/index.js.map +1 -0
  144. package/dist/_esm/errors/constants.js +94 -0
  145. package/dist/_esm/errors/constants.js.map +1 -0
  146. package/dist/_esm/errors/errors.js +124 -0
  147. package/dist/_esm/errors/errors.js.map +1 -0
  148. package/dist/_esm/errors/index.js +4 -0
  149. package/dist/_esm/errors/index.js.map +1 -0
  150. package/dist/_esm/errors/serialize.js +69 -0
  151. package/dist/_esm/errors/serialize.js.map +1 -0
  152. package/dist/_esm/errors/utils.js +101 -0
  153. package/dist/_esm/errors/utils.js.map +1 -0
  154. package/dist/_esm/index.js +2 -0
  155. package/dist/_esm/index.js.map +1 -0
  156. package/dist/_esm/package.json +1 -0
  157. package/dist/_esm/utils/encoding.js +26 -0
  158. package/dist/_esm/utils/encoding.js.map +1 -0
  159. package/dist/_esm/utils/helpers.js +40 -0
  160. package/dist/_esm/utils/helpers.js.map +1 -0
  161. package/dist/_esm/utils/index.js +4 -0
  162. package/dist/_esm/utils/index.js.map +1 -0
  163. package/dist/_esm/utils/passkey.js +294 -0
  164. package/dist/_esm/utils/passkey.js.map +1 -0
  165. package/dist/_esm/utils/session.js +31 -0
  166. package/dist/_esm/utils/session.js.map +1 -0
  167. package/dist/_esm/utils/storage.js +89 -0
  168. package/dist/_esm/utils/storage.js.map +1 -0
  169. package/dist/_esm/version.js +2 -0
  170. package/dist/_esm/version.js.map +1 -0
  171. package/dist/_types/abi/Factory.d.ts +149 -0
  172. package/dist/_types/abi/Factory.d.ts.map +1 -0
  173. package/dist/_types/abi/SessionKeyModule.d.ts +846 -0
  174. package/dist/_types/abi/SessionKeyModule.d.ts.map +1 -0
  175. package/dist/_types/client/actions/account.d.ts +38 -0
  176. package/dist/_types/client/actions/account.d.ts.map +1 -0
  177. package/dist/_types/client/actions/index.d.ts +3 -0
  178. package/dist/_types/client/actions/index.d.ts.map +1 -0
  179. package/dist/_types/client/actions/passkey.d.ts +45 -0
  180. package/dist/_types/client/actions/passkey.d.ts.map +1 -0
  181. package/dist/_types/client/actions/session.d.ts +14 -0
  182. package/dist/_types/client/actions/session.d.ts.map +1 -0
  183. package/dist/_types/client/clients/passkey.d.ts +32 -0
  184. package/dist/_types/client/clients/passkey.d.ts.map +1 -0
  185. package/dist/_types/client/clients/session.d.ts +26 -0
  186. package/dist/_types/client/clients/session.d.ts.map +1 -0
  187. package/dist/_types/client/decorators/index.d.ts +3 -0
  188. package/dist/_types/client/decorators/index.d.ts.map +1 -0
  189. package/dist/_types/client/decorators/passkey.d.ts +8 -0
  190. package/dist/_types/client/decorators/passkey.d.ts.map +1 -0
  191. package/dist/_types/client/decorators/session.d.ts +5 -0
  192. package/dist/_types/client/decorators/session.d.ts.map +1 -0
  193. package/dist/_types/client/decorators/session_wallet.d.ts +5 -0
  194. package/dist/_types/client/decorators/session_wallet.d.ts.map +1 -0
  195. package/dist/_types/client/index.d.ts +3 -0
  196. package/dist/_types/client/index.d.ts.map +1 -0
  197. package/dist/_types/client/passkey.d.ts +4 -0
  198. package/dist/_types/client/passkey.d.ts.map +1 -0
  199. package/dist/_types/client/smart-account.d.ts +24 -0
  200. package/dist/_types/client/smart-account.d.ts.map +1 -0
  201. package/dist/_types/client/utils/assertEip712Transaction.d.ts +11 -0
  202. package/dist/_types/client/utils/assertEip712Transaction.d.ts.map +1 -0
  203. package/dist/_types/client/utils/getEip712Domain.d.ts +3 -0
  204. package/dist/_types/client/utils/getEip712Domain.d.ts.map +1 -0
  205. package/dist/_types/client/utils/isEip712Transaction.d.ts +4 -0
  206. package/dist/_types/client/utils/isEip712Transaction.d.ts.map +1 -0
  207. package/dist/_types/client-auth-server/Signer.d.ts +52 -0
  208. package/dist/_types/client-auth-server/Signer.d.ts.map +1 -0
  209. package/dist/_types/client-auth-server/WalletProvider.d.ts +27 -0
  210. package/dist/_types/client-auth-server/WalletProvider.d.ts.map +1 -0
  211. package/dist/_types/client-auth-server/index.d.ts +4 -0
  212. package/dist/_types/client-auth-server/index.d.ts.map +1 -0
  213. package/dist/_types/client-auth-server/interface.d.ts +34 -0
  214. package/dist/_types/client-auth-server/interface.d.ts.map +1 -0
  215. package/dist/_types/client-auth-server/rpc.d.ts +55 -0
  216. package/dist/_types/client-auth-server/rpc.d.ts.map +1 -0
  217. package/dist/_types/client-auth-server/session.d.ts +45 -0
  218. package/dist/_types/client-auth-server/session.d.ts.map +1 -0
  219. package/dist/_types/communicator/PopupCommunicator.d.ts +20 -0
  220. package/dist/_types/communicator/PopupCommunicator.d.ts.map +1 -0
  221. package/dist/_types/communicator/index.d.ts +3 -0
  222. package/dist/_types/communicator/index.d.ts.map +1 -0
  223. package/dist/_types/communicator/interface.d.ts +16 -0
  224. package/dist/_types/communicator/interface.d.ts.map +1 -0
  225. package/dist/_types/connector/index.d.ts +8 -0
  226. package/dist/_types/connector/index.d.ts.map +1 -0
  227. package/dist/_types/errors/constants.d.ts +96 -0
  228. package/dist/_types/errors/constants.d.ts.map +1 -0
  229. package/dist/_types/errors/errors.d.ts +48 -0
  230. package/dist/_types/errors/errors.d.ts.map +1 -0
  231. package/dist/_types/errors/index.d.ts +5 -0
  232. package/dist/_types/errors/index.d.ts.map +1 -0
  233. package/dist/_types/errors/serialize.d.ts +13 -0
  234. package/dist/_types/errors/serialize.d.ts.map +1 -0
  235. package/dist/_types/errors/utils.d.ts +30 -0
  236. package/dist/_types/errors/utils.d.ts.map +1 -0
  237. package/dist/_types/index.d.ts +4 -0
  238. package/dist/_types/index.d.ts.map +1 -0
  239. package/dist/_types/utils/encoding.d.ts +12 -0
  240. package/dist/_types/utils/encoding.d.ts.map +1 -0
  241. package/dist/_types/utils/helpers.d.ts +4 -0
  242. package/dist/_types/utils/helpers.d.ts.map +1 -0
  243. package/dist/_types/utils/index.d.ts +4 -0
  244. package/dist/_types/utils/index.d.ts.map +1 -0
  245. package/dist/_types/utils/passkey.d.ts +47 -0
  246. package/dist/_types/utils/passkey.d.ts.map +1 -0
  247. package/dist/_types/utils/session.d.ts +95 -0
  248. package/dist/_types/utils/session.d.ts.map +1 -0
  249. package/dist/_types/utils/storage.d.ts +30 -0
  250. package/dist/_types/utils/storage.d.ts.map +1 -0
  251. package/dist/_types/version.d.ts +2 -0
  252. package/dist/_types/version.d.ts.map +1 -0
  253. package/eslint.config.js +6 -0
  254. package/package.json +144 -0
  255. package/prepare-package.mjs +39 -0
  256. package/project.json +67 -0
  257. package/src/abi/Factory.ts +193 -0
  258. package/src/abi/SessionKeyModule.ts +1100 -0
  259. package/src/client/actions/account.ts +198 -0
  260. package/src/client/actions/index.ts +2 -0
  261. package/src/client/actions/passkey.ts +165 -0
  262. package/src/client/actions/session.ts +118 -0
  263. package/src/client/clients/passkey.ts +107 -0
  264. package/src/client/clients/session.ts +105 -0
  265. package/src/client/decorators/index.ts +2 -0
  266. package/src/client/decorators/passkey.ts +22 -0
  267. package/src/client/decorators/session.ts +17 -0
  268. package/src/client/decorators/session_wallet.ts +184 -0
  269. package/src/client/index.ts +2 -0
  270. package/src/client/passkey.ts +3 -0
  271. package/src/client/smart-account.ts +68 -0
  272. package/src/client/utils/assertEip712Transaction.ts +49 -0
  273. package/src/client/utils/getEip712Domain.ts +84 -0
  274. package/src/client/utils/isEip712Transaction.ts +18 -0
  275. package/src/client-auth-server/Signer.ts +260 -0
  276. package/src/client-auth-server/WalletProvider.ts +114 -0
  277. package/src/client-auth-server/index.ts +3 -0
  278. package/src/client-auth-server/interface.ts +39 -0
  279. package/src/client-auth-server/rpc.ts +69 -0
  280. package/src/client-auth-server/session.ts +139 -0
  281. package/src/communicator/PopupCommunicator.ts +111 -0
  282. package/src/communicator/index.ts +2 -0
  283. package/src/communicator/interface.ts +15 -0
  284. package/src/connector/index.ts +171 -0
  285. package/src/errors/constants.ts +119 -0
  286. package/src/errors/errors.ts +168 -0
  287. package/src/errors/index.ts +4 -0
  288. package/src/errors/serialize.ts +91 -0
  289. package/src/errors/utils.ts +152 -0
  290. package/src/index.ts +3 -0
  291. package/src/types/index.d.ts +9 -0
  292. package/src/utils/encoding.ts +36 -0
  293. package/src/utils/helpers.ts +43 -0
  294. package/src/utils/index.ts +3 -0
  295. package/src/utils/passkey.ts +344 -0
  296. package/src/utils/session.ts +103 -0
  297. package/src/utils/storage.ts +87 -0
  298. package/src/version.ts +1 -0
  299. package/tsconfig.base.json +44 -0
  300. package/tsconfig.json +11 -0
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatSessionPreferences = formatSessionPreferences;
4
+ const viem_1 = require("viem");
5
+ const session_js_1 = require("../utils/session.js");
6
+ ;
7
+ const formatLimitPreferences = (limit) => {
8
+ if (typeof limit === "bigint") {
9
+ return {
10
+ limitType: session_js_1.LimitType.Lifetime,
11
+ limit,
12
+ period: 0n,
13
+ };
14
+ }
15
+ if ("limitType" in limit) {
16
+ if (limit.limitType === "lifetime" || limit.limitType === session_js_1.LimitType.Lifetime) {
17
+ return {
18
+ limitType: session_js_1.LimitType.Lifetime,
19
+ limit: limit.limit,
20
+ period: 0n,
21
+ };
22
+ }
23
+ else if (limit.limitType === "unlimited" || limit.limitType === session_js_1.LimitType.Unlimited) {
24
+ return {
25
+ limitType: session_js_1.LimitType.Unlimited,
26
+ limit: 0n,
27
+ period: 0n,
28
+ };
29
+ }
30
+ else if (limit.limitType === "allowance" || limit.limitType === session_js_1.LimitType.Allowance) {
31
+ return {
32
+ limitType: session_js_1.LimitType.Allowance,
33
+ limit: limit.limit,
34
+ period: limit.period,
35
+ };
36
+ }
37
+ throw new Error(`Invalid limit type: ${limit.limitType}`);
38
+ }
39
+ if (!limit.period) {
40
+ return {
41
+ limitType: session_js_1.LimitType.Lifetime,
42
+ limit: limit.limit,
43
+ period: 0n,
44
+ };
45
+ }
46
+ return {
47
+ limitType: session_js_1.LimitType.Allowance,
48
+ limit: limit.limit,
49
+ period: limit.period,
50
+ };
51
+ };
52
+ const formatDatePreferences = (date) => {
53
+ if (date instanceof Date) {
54
+ return BigInt(Math.floor(date.getTime() / 1000));
55
+ }
56
+ return date;
57
+ };
58
+ function formatSessionPreferences(preferences, defaults) {
59
+ return {
60
+ expiresAt: preferences.expiresAt ? formatDatePreferences(preferences.expiresAt) : defaults.expiresAt,
61
+ feeLimit: preferences.feeLimit ? formatLimitPreferences(preferences.feeLimit) : defaults.feeLimit,
62
+ callPolicies: preferences.contractCalls?.map((policy) => {
63
+ const valueLimit = policy.valueLimit ? formatLimitPreferences(policy.valueLimit) : session_js_1.LimitZero;
64
+ const selector = policy.function ? (0, viem_1.toFunctionSelector)(policy.function) : policy.selector;
65
+ if (!selector)
66
+ throw new Error("Missing function or selector in contract call policy");
67
+ return {
68
+ target: policy.address,
69
+ maxValuePerUse: policy.maxValuePerUse ?? valueLimit.limit,
70
+ valueLimit,
71
+ selector: selector,
72
+ constraints: policy.constraints?.map((constraint) => ({
73
+ index: BigInt(constraint.index),
74
+ condition: typeof constraint.condition == "string" ? session_js_1.ConstraintCondition[constraint.condition] : (constraint.condition ?? 0),
75
+ refValue: constraint.refValue ?? (0, viem_1.toHex)("", { size: 32 }),
76
+ limit: constraint.limit ? formatLimitPreferences(constraint.limit) : session_js_1.LimitUnlimited,
77
+ })) ?? [],
78
+ };
79
+ }) ?? [],
80
+ transferPolicies: preferences.transfers?.map((policy) => {
81
+ const valueLimit = policy.valueLimit ? formatLimitPreferences(policy.valueLimit) : session_js_1.LimitZero;
82
+ return {
83
+ target: policy.to,
84
+ maxValuePerUse: policy.maxValuePerUse ?? valueLimit.limit,
85
+ valueLimit,
86
+ };
87
+ }) ?? [],
88
+ };
89
+ }
90
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/client-auth-server/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PopupCommunicator = void 0;
4
+ const index_js_1 = require("../errors/index.js");
5
+ class PopupCommunicator {
6
+ constructor(url) {
7
+ Object.defineProperty(this, "url", {
8
+ enumerable: true,
9
+ configurable: true,
10
+ writable: true,
11
+ value: void 0
12
+ });
13
+ Object.defineProperty(this, "popup", {
14
+ enumerable: true,
15
+ configurable: true,
16
+ writable: true,
17
+ value: null
18
+ });
19
+ Object.defineProperty(this, "listeners", {
20
+ enumerable: true,
21
+ configurable: true,
22
+ writable: true,
23
+ value: new Map()
24
+ });
25
+ Object.defineProperty(this, "postMessage", {
26
+ enumerable: true,
27
+ configurable: true,
28
+ writable: true,
29
+ value: async (message) => {
30
+ const popup = await this.waitForPopupLoaded();
31
+ popup.postMessage(message, this.url.origin);
32
+ }
33
+ });
34
+ Object.defineProperty(this, "postRequestAndWaitForResponse", {
35
+ enumerable: true,
36
+ configurable: true,
37
+ writable: true,
38
+ value: async (request) => {
39
+ const responsePromise = this.onMessage(({ requestId }) => requestId === request.id);
40
+ this.postMessage(request);
41
+ return await responsePromise;
42
+ }
43
+ });
44
+ Object.defineProperty(this, "onMessage", {
45
+ enumerable: true,
46
+ configurable: true,
47
+ writable: true,
48
+ value: async (predicate) => {
49
+ return new Promise((resolve, reject) => {
50
+ const listener = (event) => {
51
+ if (event.origin !== this.url.origin)
52
+ return;
53
+ const message = event.data;
54
+ if (predicate(message)) {
55
+ resolve(message);
56
+ window.removeEventListener("message", listener);
57
+ this.listeners.delete(listener);
58
+ }
59
+ };
60
+ window.addEventListener("message", listener);
61
+ this.listeners.set(listener, { reject });
62
+ });
63
+ }
64
+ });
65
+ Object.defineProperty(this, "disconnect", {
66
+ enumerable: true,
67
+ configurable: true,
68
+ writable: true,
69
+ value: () => {
70
+ try {
71
+ if (this.popup && !this.popup.closed) {
72
+ this.popup.close();
73
+ }
74
+ }
75
+ catch (error) {
76
+ console.warn("Failed to close popup", error);
77
+ }
78
+ this.popup = null;
79
+ this.listeners.forEach(({ reject }, listener) => {
80
+ reject(index_js_1.standardErrors.provider.userRejectedRequest("Request rejected"));
81
+ window.removeEventListener("message", listener);
82
+ });
83
+ this.listeners.clear();
84
+ }
85
+ });
86
+ Object.defineProperty(this, "openPopup", {
87
+ enumerable: true,
88
+ configurable: true,
89
+ writable: true,
90
+ value: () => {
91
+ const width = 420;
92
+ const height = 600;
93
+ const url = new URL(this.url.toString());
94
+ url.searchParams.set("origin", window.location.origin);
95
+ const left = (window.innerWidth - width) / 2 + window.screenX;
96
+ const top = (window.innerHeight - height) / 2 + window.screenY;
97
+ const popup = window.open(url, "ZKsync SSO", `width=${width}, height=${height}, left=${left}, top=${top}`);
98
+ if (!popup) {
99
+ throw index_js_1.standardErrors.rpc.internal("Pop up window failed to open");
100
+ }
101
+ popup.focus();
102
+ return popup;
103
+ }
104
+ });
105
+ Object.defineProperty(this, "waitForPopupLoaded", {
106
+ enumerable: true,
107
+ configurable: true,
108
+ writable: true,
109
+ value: async () => {
110
+ if (this.popup && !this.popup.closed) {
111
+ this.popup.focus();
112
+ return this.popup;
113
+ }
114
+ this.popup = this.openPopup();
115
+ this.onMessage(({ event }) => event === "PopupUnload")
116
+ .then(this.disconnect)
117
+ .catch(() => { });
118
+ return this.onMessage(({ event }) => event === "PopupLoaded")
119
+ .then(() => {
120
+ if (!this.popup)
121
+ throw index_js_1.standardErrors.rpc.internal();
122
+ return this.popup;
123
+ });
124
+ }
125
+ });
126
+ Object.defineProperty(this, "ready", {
127
+ enumerable: true,
128
+ configurable: true,
129
+ writable: true,
130
+ value: async () => {
131
+ await this.waitForPopupLoaded();
132
+ }
133
+ });
134
+ this.url = new URL(url);
135
+ }
136
+ }
137
+ exports.PopupCommunicator = PopupCommunicator;
138
+ //# sourceMappingURL=PopupCommunicator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PopupCommunicator.js","sourceRoot":"","sources":["../../../src/communicator/PopupCommunicator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PopupCommunicator = void 0;
4
+ var PopupCommunicator_js_1 = require("./PopupCommunicator.js");
5
+ Object.defineProperty(exports, "PopupCommunicator", { enumerable: true, get: function () { return PopupCommunicator_js_1.PopupCommunicator; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/communicator/index.ts"],"names":[],"mappings":";;;AACA,+DAAoF;AAA3E,yHAAA,iBAAiB,OAAA"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../src/communicator/interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.zksyncSsoConnector = void 0;
4
+ const core_1 = require("@wagmi/core");
5
+ const viem_1 = require("viem");
6
+ const index_js_1 = require("../index.js");
7
+ const zksyncSsoConnector = (parameters) => {
8
+ let walletProvider;
9
+ let accountsChanged;
10
+ let chainChanged;
11
+ let disconnect;
12
+ const destroyWallet = () => {
13
+ if (walletProvider) {
14
+ if (accountsChanged) {
15
+ walletProvider.removeListener("accountsChanged", accountsChanged);
16
+ accountsChanged = undefined;
17
+ }
18
+ if (chainChanged) {
19
+ walletProvider.removeListener("chainChanged", chainChanged);
20
+ chainChanged = undefined;
21
+ }
22
+ if (disconnect) {
23
+ walletProvider.removeListener("disconnect", disconnect);
24
+ disconnect = undefined;
25
+ }
26
+ }
27
+ walletProvider = undefined;
28
+ };
29
+ return (0, core_1.createConnector)((config) => ({
30
+ icon: "https://zksync.io/favicon.ico",
31
+ id: "zksync-sso",
32
+ name: "ZKsync",
33
+ type: "zksync-sso",
34
+ async connect({ chainId } = {}) {
35
+ try {
36
+ const provider = await this.getProvider();
37
+ const accounts = (await provider.request({
38
+ method: "eth_requestAccounts",
39
+ })).map((x) => (0, viem_1.getAddress)(x));
40
+ if (!accountsChanged) {
41
+ accountsChanged = this.onAccountsChanged.bind(this);
42
+ provider.on("accountsChanged", accountsChanged);
43
+ }
44
+ if (!chainChanged) {
45
+ chainChanged = this.onChainChanged.bind(this);
46
+ provider.on("chainChanged", chainChanged);
47
+ }
48
+ if (!disconnect) {
49
+ disconnect = this.onDisconnect.bind(this);
50
+ provider.on("disconnect", disconnect);
51
+ }
52
+ let walletChainId = await this.getChainId();
53
+ if (chainId && walletChainId !== chainId) {
54
+ const chain = await this.switchChain({ chainId }).catch((error) => {
55
+ if (error.code === viem_1.UserRejectedRequestError.code)
56
+ throw error;
57
+ return { id: walletChainId };
58
+ });
59
+ walletChainId = chain?.id ?? walletChainId;
60
+ }
61
+ return { accounts, chainId: walletChainId };
62
+ }
63
+ catch (error) {
64
+ console.error(`Error connecting to ${this.name}`, error);
65
+ if (/(user closed modal|accounts received is empty|user denied account|request rejected)/i.test(error.message))
66
+ throw new viem_1.UserRejectedRequestError(error);
67
+ throw error;
68
+ }
69
+ },
70
+ async disconnect() {
71
+ const provider = await this.getProvider();
72
+ provider.disconnect();
73
+ destroyWallet();
74
+ },
75
+ async getAccounts() {
76
+ const provider = await this.getProvider();
77
+ return (await provider.request({
78
+ method: "eth_accounts",
79
+ })).map((x) => (0, viem_1.getAddress)(x));
80
+ },
81
+ async getChainId() {
82
+ const provider = await this.getProvider();
83
+ const chainId = await provider.request({
84
+ method: "eth_chainId",
85
+ });
86
+ if (!chainId)
87
+ return config.chains[0].id;
88
+ return Number(chainId);
89
+ },
90
+ async getProvider() {
91
+ if (!walletProvider) {
92
+ walletProvider = new index_js_1.WalletProvider({
93
+ metadata: {
94
+ name: parameters.metadata?.name,
95
+ icon: parameters.metadata?.icon,
96
+ },
97
+ authServerUrl: parameters.authServerUrl,
98
+ session: parameters.session,
99
+ transports: config.transports,
100
+ chains: config.chains,
101
+ });
102
+ }
103
+ return walletProvider;
104
+ },
105
+ async isAuthorized() {
106
+ try {
107
+ const accounts = await this.getAccounts();
108
+ return !!accounts.length;
109
+ }
110
+ catch {
111
+ return false;
112
+ }
113
+ },
114
+ async switchChain({ chainId }) {
115
+ const chain = config.chains.find((chain) => chain.id === chainId);
116
+ if (!chain)
117
+ throw new viem_1.SwitchChainError(new core_1.ChainNotConfiguredError());
118
+ try {
119
+ const provider = await this.getProvider();
120
+ await provider.request({
121
+ method: "wallet_switchEthereumChain",
122
+ params: [{ chainId: (0, viem_1.toHex)(chainId) }],
123
+ });
124
+ return chain;
125
+ }
126
+ catch (error) {
127
+ throw new viem_1.SwitchChainError(error);
128
+ }
129
+ },
130
+ onAccountsChanged(accounts) {
131
+ if (accounts.length === 0)
132
+ this.onDisconnect();
133
+ else
134
+ config.emitter.emit("change", {
135
+ accounts: accounts.map((x) => (0, viem_1.getAddress)(x)),
136
+ });
137
+ },
138
+ onChainChanged(chain) {
139
+ config.emitter.emit("change", { chainId: Number(chain) });
140
+ },
141
+ async onDisconnect(_error) {
142
+ console.error("onDisconnect", _error);
143
+ config.emitter.emit("disconnect");
144
+ },
145
+ }));
146
+ };
147
+ exports.zksyncSsoConnector = zksyncSsoConnector;
148
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/connector/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.errorValues = exports.standardErrorCodes = void 0;
4
+ exports.standardErrorCodes = {
5
+ rpc: {
6
+ invalidInput: -32000,
7
+ resourceNotFound: -32001,
8
+ resourceUnavailable: -32002,
9
+ transactionRejected: -32003,
10
+ methodNotSupported: -32004,
11
+ limitExceeded: -32005,
12
+ parse: -32700,
13
+ invalidRequest: -32600,
14
+ methodNotFound: -32601,
15
+ invalidParams: -32602,
16
+ internal: -32603,
17
+ },
18
+ provider: {
19
+ userRejectedRequest: 4001,
20
+ unauthorized: 4100,
21
+ unsupportedMethod: 4200,
22
+ disconnected: 4900,
23
+ chainDisconnected: 4901,
24
+ unsupportedChain: 4902,
25
+ },
26
+ };
27
+ exports.errorValues = {
28
+ "-32700": {
29
+ standard: "JSON RPC 2.0",
30
+ message: "Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text.",
31
+ },
32
+ "-32600": {
33
+ standard: "JSON RPC 2.0",
34
+ message: "The JSON sent is not a valid Request object.",
35
+ },
36
+ "-32601": {
37
+ standard: "JSON RPC 2.0",
38
+ message: "The method does not exist / is not available.",
39
+ },
40
+ "-32602": {
41
+ standard: "JSON RPC 2.0",
42
+ message: "Invalid method parameter(s).",
43
+ },
44
+ "-32603": {
45
+ standard: "JSON RPC 2.0",
46
+ message: "Internal JSON-RPC error.",
47
+ },
48
+ "-32000": {
49
+ standard: "EIP-1474",
50
+ message: "Invalid input.",
51
+ },
52
+ "-32001": {
53
+ standard: "EIP-1474",
54
+ message: "Resource not found.",
55
+ },
56
+ "-32002": {
57
+ standard: "EIP-1474",
58
+ message: "Resource unavailable.",
59
+ },
60
+ "-32003": {
61
+ standard: "EIP-1474",
62
+ message: "Transaction rejected.",
63
+ },
64
+ "-32004": {
65
+ standard: "EIP-1474",
66
+ message: "Method not supported.",
67
+ },
68
+ "-32005": {
69
+ standard: "EIP-1474",
70
+ message: "Request limit exceeded.",
71
+ },
72
+ 4001: {
73
+ standard: "EIP-1193",
74
+ message: "User rejected the request.",
75
+ },
76
+ 4100: {
77
+ standard: "EIP-1193",
78
+ message: "The requested account and/or method has not been authorized by the user.",
79
+ },
80
+ 4200: {
81
+ standard: "EIP-1193",
82
+ message: "The requested method is not supported by this Ethereum provider.",
83
+ },
84
+ 4900: {
85
+ standard: "EIP-1193",
86
+ message: "The provider is disconnected from all chains.",
87
+ },
88
+ 4901: {
89
+ standard: "EIP-1193",
90
+ message: "The provider is disconnected from the specified chain.",
91
+ },
92
+ 4902: {
93
+ standard: "EIP-3085",
94
+ message: "Unrecognized chain ID.",
95
+ },
96
+ };
97
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/errors/constants.ts"],"names":[],"mappings":";;;AAwBa,QAAA,kBAAkB,GAAe;IAC5C,GAAG,EAAE;QACH,YAAY,EAAE,CAAC,KAAK;QACpB,gBAAgB,EAAE,CAAC,KAAK;QACxB,mBAAmB,EAAE,CAAC,KAAK;QAC3B,mBAAmB,EAAE,CAAC,KAAK;QAC3B,kBAAkB,EAAE,CAAC,KAAK;QAC1B,aAAa,EAAE,CAAC,KAAK;QACrB,KAAK,EAAE,CAAC,KAAK;QACb,cAAc,EAAE,CAAC,KAAK;QACtB,cAAc,EAAE,CAAC,KAAK;QACtB,aAAa,EAAE,CAAC,KAAK;QACrB,QAAQ,EAAE,CAAC,KAAK;KACjB;IACD,QAAQ,EAAE;QACR,mBAAmB,EAAE,IAAI;QACzB,YAAY,EAAE,IAAI;QAClB,iBAAiB,EAAE,IAAI;QACvB,YAAY,EAAE,IAAI;QAClB,iBAAiB,EAAE,IAAI;QACvB,gBAAgB,EAAE,IAAI;KACvB;CACF,CAAC;AAEW,QAAA,WAAW,GAAG;IACzB,QAAQ,EAAE;QACR,QAAQ,EAAE,cAAc;QACxB,OAAO,EACL,uGAAuG;KAC1G;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,cAAc;QACxB,OAAO,EAAE,8CAA8C;KACxD;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,cAAc;QACxB,OAAO,EAAE,+CAA+C;KACzD;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,cAAc;QACxB,OAAO,EAAE,8BAA8B;KACxC;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,cAAc;QACxB,OAAO,EAAE,0BAA0B;KACpC;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,gBAAgB;KAC1B;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,qBAAqB;KAC/B;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,uBAAuB;KACjC;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,uBAAuB;KACjC;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,uBAAuB;KACjC;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,yBAAyB;KACnC;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,4BAA4B;KACtC;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,0EAA0E;KACpF;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,kEAAkE;KAC5E;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,+CAA+C;KACzD;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,wDAAwD;KAClE;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,wBAAwB;KAClC;CACF,CAAC"}
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.standardErrors = void 0;
4
+ const constants_js_1 = require("./constants.js");
5
+ const utils_js_1 = require("./utils.js");
6
+ exports.standardErrors = {
7
+ rpc: {
8
+ parse: (arg) => getEthJsonRpcError(constants_js_1.standardErrorCodes.rpc.parse, arg),
9
+ invalidRequest: (arg) => getEthJsonRpcError(constants_js_1.standardErrorCodes.rpc.invalidRequest, arg),
10
+ invalidParams: (arg) => getEthJsonRpcError(constants_js_1.standardErrorCodes.rpc.invalidParams, arg),
11
+ methodNotFound: (arg) => getEthJsonRpcError(constants_js_1.standardErrorCodes.rpc.methodNotFound, arg),
12
+ internal: (arg) => getEthJsonRpcError(constants_js_1.standardErrorCodes.rpc.internal, arg),
13
+ server: (opts) => {
14
+ if (!opts || typeof opts !== "object" || Array.isArray(opts)) {
15
+ throw new Error("Ethereum RPC Server errors must provide single object argument.");
16
+ }
17
+ const { code } = opts;
18
+ if (!Number.isInteger(code) || code > -32005 || code < -32099) {
19
+ throw new Error("\"code\" must be an integer such that: -32099 <= code <= -32005");
20
+ }
21
+ return getEthJsonRpcError(code, opts);
22
+ },
23
+ invalidInput: (arg) => getEthJsonRpcError(constants_js_1.standardErrorCodes.rpc.invalidInput, arg),
24
+ resourceNotFound: (arg) => getEthJsonRpcError(constants_js_1.standardErrorCodes.rpc.resourceNotFound, arg),
25
+ resourceUnavailable: (arg) => getEthJsonRpcError(constants_js_1.standardErrorCodes.rpc.resourceUnavailable, arg),
26
+ transactionRejected: (arg) => getEthJsonRpcError(constants_js_1.standardErrorCodes.rpc.transactionRejected, arg),
27
+ methodNotSupported: (arg) => getEthJsonRpcError(constants_js_1.standardErrorCodes.rpc.methodNotSupported, arg),
28
+ limitExceeded: (arg) => getEthJsonRpcError(constants_js_1.standardErrorCodes.rpc.limitExceeded, arg),
29
+ },
30
+ provider: {
31
+ userRejectedRequest: (arg) => {
32
+ return getEthProviderError(constants_js_1.standardErrorCodes.provider.userRejectedRequest, arg);
33
+ },
34
+ unauthorized: (arg) => {
35
+ return getEthProviderError(constants_js_1.standardErrorCodes.provider.unauthorized, arg);
36
+ },
37
+ unsupportedMethod: (arg) => {
38
+ return getEthProviderError(constants_js_1.standardErrorCodes.provider.unsupportedMethod, arg);
39
+ },
40
+ disconnected: (arg) => {
41
+ return getEthProviderError(constants_js_1.standardErrorCodes.provider.disconnected, arg);
42
+ },
43
+ chainDisconnected: (arg) => {
44
+ return getEthProviderError(constants_js_1.standardErrorCodes.provider.chainDisconnected, arg);
45
+ },
46
+ unsupportedChain: (arg) => {
47
+ return getEthProviderError(constants_js_1.standardErrorCodes.provider.unsupportedChain, arg);
48
+ },
49
+ custom: (opts) => {
50
+ if (!opts || typeof opts !== "object" || Array.isArray(opts)) {
51
+ throw new Error("Ethereum Provider custom errors must provide single object argument.");
52
+ }
53
+ const { code, message, data } = opts;
54
+ if (!message || typeof message !== "string") {
55
+ throw new Error("\"message\" must be a nonempty string");
56
+ }
57
+ return new EthereumProviderError(code, message, data);
58
+ },
59
+ },
60
+ };
61
+ function getEthJsonRpcError(code, arg) {
62
+ const [message, data] = parseOpts(arg);
63
+ return new EthereumRpcError(code, message || (0, utils_js_1.getMessageFromCode)(code), data);
64
+ }
65
+ function getEthProviderError(code, arg) {
66
+ const [message, data] = parseOpts(arg);
67
+ return new EthereumProviderError(code, message || (0, utils_js_1.getMessageFromCode)(code), data);
68
+ }
69
+ function parseOpts(arg) {
70
+ if (arg) {
71
+ if (typeof arg === "string") {
72
+ return [arg];
73
+ }
74
+ else if (typeof arg === "object" && !Array.isArray(arg)) {
75
+ const { message, data } = arg;
76
+ if (message && typeof message !== "string") {
77
+ throw new Error("Must specify string message.");
78
+ }
79
+ return [message || undefined, data];
80
+ }
81
+ }
82
+ return [];
83
+ }
84
+ class EthereumRpcError extends Error {
85
+ constructor(code, message, data) {
86
+ if (!Number.isInteger(code)) {
87
+ throw new Error("\"code\" must be an integer.");
88
+ }
89
+ if (!message || typeof message !== "string") {
90
+ throw new Error("\"message\" must be a nonempty string.");
91
+ }
92
+ super(message);
93
+ Object.defineProperty(this, "code", {
94
+ enumerable: true,
95
+ configurable: true,
96
+ writable: true,
97
+ value: void 0
98
+ });
99
+ Object.defineProperty(this, "data", {
100
+ enumerable: true,
101
+ configurable: true,
102
+ writable: true,
103
+ value: void 0
104
+ });
105
+ this.code = code;
106
+ if (data !== undefined) {
107
+ this.data = data;
108
+ }
109
+ }
110
+ }
111
+ class EthereumProviderError extends EthereumRpcError {
112
+ constructor(code, message, data) {
113
+ if (!isValidEthProviderCode(code)) {
114
+ throw new Error("\"code\" must be an integer such that: 1000 <= code <= 4999");
115
+ }
116
+ super(code, message, data);
117
+ }
118
+ }
119
+ function isValidEthProviderCode(code) {
120
+ return Number.isInteger(code) && code >= 1000 && code <= 4999;
121
+ }
122
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/errors/errors.ts"],"names":[],"mappings":"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"}