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.
- package/.gitignore +5 -0
- package/.lintstagedrc.js +5 -0
- package/.npmignore +10 -0
- package/README.md +3 -0
- package/dist/_cjs/abi/Factory.js +197 -0
- package/dist/_cjs/abi/Factory.js.map +1 -0
- package/dist/_cjs/abi/SessionKeyModule.js +1104 -0
- package/dist/_cjs/abi/SessionKeyModule.js.map +1 -0
- package/dist/_cjs/client/actions/account.js +140 -0
- package/dist/_cjs/client/actions/account.js.map +1 -0
- package/dist/_cjs/client/actions/index.js +19 -0
- package/dist/_cjs/client/actions/index.js.map +1 -0
- package/dist/_cjs/client/actions/passkey.js +122 -0
- package/dist/_cjs/client/actions/passkey.js.map +1 -0
- package/dist/_cjs/client/actions/session.js +40 -0
- package/dist/_cjs/client/actions/session.js.map +1 -0
- package/dist/_cjs/client/clients/passkey.js +46 -0
- package/dist/_cjs/client/clients/passkey.js.map +1 -0
- package/dist/_cjs/client/clients/session.js +48 -0
- package/dist/_cjs/client/clients/session.js.map +1 -0
- package/dist/_cjs/client/decorators/index.js +19 -0
- package/dist/_cjs/client/decorators/index.js.map +1 -0
- package/dist/_cjs/client/decorators/passkey.js +15 -0
- package/dist/_cjs/client/decorators/passkey.js.map +1 -0
- package/dist/_cjs/client/decorators/session.js +7 -0
- package/dist/_cjs/client/decorators/session.js.map +1 -0
- package/dist/_cjs/client/decorators/session_wallet.js +32 -0
- package/dist/_cjs/client/decorators/session_wallet.js.map +1 -0
- package/dist/_cjs/client/index.js +22 -0
- package/dist/_cjs/client/index.js.map +1 -0
- package/dist/_cjs/client/passkey.js +20 -0
- package/dist/_cjs/client/passkey.js.map +1 -0
- package/dist/_cjs/client/smart-account.js +45 -0
- package/dist/_cjs/client/smart-account.js.map +1 -0
- package/dist/_cjs/client/utils/assertEip712Transaction.js +44 -0
- package/dist/_cjs/client/utils/assertEip712Transaction.js.map +1 -0
- package/dist/_cjs/client/utils/getEip712Domain.js +57 -0
- package/dist/_cjs/client/utils/getEip712Domain.js.map +1 -0
- package/dist/_cjs/client/utils/isEip712Transaction.js +16 -0
- package/dist/_cjs/client/utils/isEip712Transaction.js.map +1 -0
- package/dist/_cjs/client-auth-server/Signer.js +264 -0
- package/dist/_cjs/client-auth-server/Signer.js.map +1 -0
- package/dist/_cjs/client-auth-server/WalletProvider.js +107 -0
- package/dist/_cjs/client-auth-server/WalletProvider.js.map +1 -0
- package/dist/_cjs/client-auth-server/index.js +20 -0
- package/dist/_cjs/client-auth-server/index.js.map +1 -0
- package/dist/_cjs/client-auth-server/interface.js +3 -0
- package/dist/_cjs/client-auth-server/interface.js.map +1 -0
- package/dist/_cjs/client-auth-server/rpc.js +3 -0
- package/dist/_cjs/client-auth-server/rpc.js.map +1 -0
- package/dist/_cjs/client-auth-server/session.js +90 -0
- package/dist/_cjs/client-auth-server/session.js.map +1 -0
- package/dist/_cjs/communicator/PopupCommunicator.js +138 -0
- package/dist/_cjs/communicator/PopupCommunicator.js.map +1 -0
- package/dist/_cjs/communicator/index.js +6 -0
- package/dist/_cjs/communicator/index.js.map +1 -0
- package/dist/_cjs/communicator/interface.js +3 -0
- package/dist/_cjs/communicator/interface.js.map +1 -0
- package/dist/_cjs/connector/index.js +148 -0
- package/dist/_cjs/connector/index.js.map +1 -0
- package/dist/_cjs/errors/constants.js +97 -0
- package/dist/_cjs/errors/constants.js.map +1 -0
- package/dist/_cjs/errors/errors.js +122 -0
- package/dist/_cjs/errors/errors.js.map +1 -0
- package/dist/_cjs/errors/index.js +10 -0
- package/dist/_cjs/errors/index.js.map +1 -0
- package/dist/_cjs/errors/serialize.js +63 -0
- package/dist/_cjs/errors/serialize.js.map +1 -0
- package/dist/_cjs/errors/utils.js +95 -0
- package/dist/_cjs/errors/utils.js.map +1 -0
- package/dist/_cjs/index.js +6 -0
- package/dist/_cjs/index.js.map +1 -0
- package/dist/_cjs/package.json +1 -0
- package/dist/_cjs/utils/encoding.js +32 -0
- package/dist/_cjs/utils/encoding.js.map +1 -0
- package/dist/_cjs/utils/helpers.js +43 -0
- package/dist/_cjs/utils/helpers.js.map +1 -0
- package/dist/_cjs/utils/index.js +20 -0
- package/dist/_cjs/utils/index.js.map +1 -0
- package/dist/_cjs/utils/passkey.js +243 -0
- package/dist/_cjs/utils/passkey.js.map +1 -0
- package/dist/_cjs/utils/session.js +30 -0
- package/dist/_cjs/utils/session.js.map +1 -0
- package/dist/_cjs/utils/storage.js +93 -0
- package/dist/_cjs/utils/storage.js.map +1 -0
- package/dist/_cjs/version.js +5 -0
- package/dist/_cjs/version.js.map +1 -0
- package/dist/_esm/abi/Factory.js +194 -0
- package/dist/_esm/abi/Factory.js.map +1 -0
- package/dist/_esm/abi/SessionKeyModule.js +1101 -0
- package/dist/_esm/abi/SessionKeyModule.js.map +1 -0
- package/dist/_esm/client/actions/account.js +137 -0
- package/dist/_esm/client/actions/account.js.map +1 -0
- package/dist/_esm/client/actions/index.js +3 -0
- package/dist/_esm/client/actions/index.js.map +1 -0
- package/dist/_esm/client/actions/passkey.js +121 -0
- package/dist/_esm/client/actions/passkey.js.map +1 -0
- package/dist/_esm/client/actions/session.js +36 -0
- package/dist/_esm/client/actions/session.js.map +1 -0
- package/dist/_esm/client/clients/passkey.js +43 -0
- package/dist/_esm/client/clients/passkey.js.map +1 -0
- package/dist/_esm/client/clients/session.js +45 -0
- package/dist/_esm/client/clients/session.js.map +1 -0
- package/dist/_esm/client/decorators/index.js +3 -0
- package/dist/_esm/client/decorators/index.js.map +1 -0
- package/dist/_esm/client/decorators/passkey.js +13 -0
- package/dist/_esm/client/decorators/passkey.js.map +1 -0
- package/dist/_esm/client/decorators/session.js +5 -0
- package/dist/_esm/client/decorators/session.js.map +1 -0
- package/dist/_esm/client/decorators/session_wallet.js +171 -0
- package/dist/_esm/client/decorators/session_wallet.js.map +1 -0
- package/dist/_esm/client/index.js +3 -0
- package/dist/_esm/client/index.js.map +1 -0
- package/dist/_esm/client/passkey.js +4 -0
- package/dist/_esm/client/passkey.js.map +1 -0
- package/dist/_esm/client/smart-account.js +46 -0
- package/dist/_esm/client/smart-account.js.map +1 -0
- package/dist/_esm/client/utils/assertEip712Transaction.js +39 -0
- package/dist/_esm/client/utils/assertEip712Transaction.js.map +1 -0
- package/dist/_esm/client/utils/getEip712Domain.js +57 -0
- package/dist/_esm/client/utils/getEip712Domain.js.map +1 -0
- package/dist/_esm/client/utils/isEip712Transaction.js +13 -0
- package/dist/_esm/client/utils/isEip712Transaction.js.map +1 -0
- package/dist/_esm/client-auth-server/Signer.js +262 -0
- package/dist/_esm/client-auth-server/Signer.js.map +1 -0
- package/dist/_esm/client-auth-server/WalletProvider.js +104 -0
- package/dist/_esm/client-auth-server/WalletProvider.js.map +1 -0
- package/dist/_esm/client-auth-server/index.js +4 -0
- package/dist/_esm/client-auth-server/index.js.map +1 -0
- package/dist/_esm/client-auth-server/interface.js +2 -0
- package/dist/_esm/client-auth-server/interface.js.map +1 -0
- package/dist/_esm/client-auth-server/rpc.js +2 -0
- package/dist/_esm/client-auth-server/rpc.js.map +1 -0
- package/dist/_esm/client-auth-server/session.js +91 -0
- package/dist/_esm/client-auth-server/session.js.map +1 -0
- package/dist/_esm/communicator/PopupCommunicator.js +136 -0
- package/dist/_esm/communicator/PopupCommunicator.js.map +1 -0
- package/dist/_esm/communicator/index.js +2 -0
- package/dist/_esm/communicator/index.js.map +1 -0
- package/dist/_esm/communicator/interface.js +2 -0
- package/dist/_esm/communicator/interface.js.map +1 -0
- package/dist/_esm/connector/index.js +146 -0
- package/dist/_esm/connector/index.js.map +1 -0
- package/dist/_esm/errors/constants.js +94 -0
- package/dist/_esm/errors/constants.js.map +1 -0
- package/dist/_esm/errors/errors.js +124 -0
- package/dist/_esm/errors/errors.js.map +1 -0
- package/dist/_esm/errors/index.js +4 -0
- package/dist/_esm/errors/index.js.map +1 -0
- package/dist/_esm/errors/serialize.js +69 -0
- package/dist/_esm/errors/serialize.js.map +1 -0
- package/dist/_esm/errors/utils.js +101 -0
- package/dist/_esm/errors/utils.js.map +1 -0
- package/dist/_esm/index.js +2 -0
- package/dist/_esm/index.js.map +1 -0
- package/dist/_esm/package.json +1 -0
- package/dist/_esm/utils/encoding.js +26 -0
- package/dist/_esm/utils/encoding.js.map +1 -0
- package/dist/_esm/utils/helpers.js +40 -0
- package/dist/_esm/utils/helpers.js.map +1 -0
- package/dist/_esm/utils/index.js +4 -0
- package/dist/_esm/utils/index.js.map +1 -0
- package/dist/_esm/utils/passkey.js +294 -0
- package/dist/_esm/utils/passkey.js.map +1 -0
- package/dist/_esm/utils/session.js +31 -0
- package/dist/_esm/utils/session.js.map +1 -0
- package/dist/_esm/utils/storage.js +89 -0
- package/dist/_esm/utils/storage.js.map +1 -0
- package/dist/_esm/version.js +2 -0
- package/dist/_esm/version.js.map +1 -0
- package/dist/_types/abi/Factory.d.ts +149 -0
- package/dist/_types/abi/Factory.d.ts.map +1 -0
- package/dist/_types/abi/SessionKeyModule.d.ts +846 -0
- package/dist/_types/abi/SessionKeyModule.d.ts.map +1 -0
- package/dist/_types/client/actions/account.d.ts +38 -0
- package/dist/_types/client/actions/account.d.ts.map +1 -0
- package/dist/_types/client/actions/index.d.ts +3 -0
- package/dist/_types/client/actions/index.d.ts.map +1 -0
- package/dist/_types/client/actions/passkey.d.ts +45 -0
- package/dist/_types/client/actions/passkey.d.ts.map +1 -0
- package/dist/_types/client/actions/session.d.ts +14 -0
- package/dist/_types/client/actions/session.d.ts.map +1 -0
- package/dist/_types/client/clients/passkey.d.ts +32 -0
- package/dist/_types/client/clients/passkey.d.ts.map +1 -0
- package/dist/_types/client/clients/session.d.ts +26 -0
- package/dist/_types/client/clients/session.d.ts.map +1 -0
- package/dist/_types/client/decorators/index.d.ts +3 -0
- package/dist/_types/client/decorators/index.d.ts.map +1 -0
- package/dist/_types/client/decorators/passkey.d.ts +8 -0
- package/dist/_types/client/decorators/passkey.d.ts.map +1 -0
- package/dist/_types/client/decorators/session.d.ts +5 -0
- package/dist/_types/client/decorators/session.d.ts.map +1 -0
- package/dist/_types/client/decorators/session_wallet.d.ts +5 -0
- package/dist/_types/client/decorators/session_wallet.d.ts.map +1 -0
- package/dist/_types/client/index.d.ts +3 -0
- package/dist/_types/client/index.d.ts.map +1 -0
- package/dist/_types/client/passkey.d.ts +4 -0
- package/dist/_types/client/passkey.d.ts.map +1 -0
- package/dist/_types/client/smart-account.d.ts +24 -0
- package/dist/_types/client/smart-account.d.ts.map +1 -0
- package/dist/_types/client/utils/assertEip712Transaction.d.ts +11 -0
- package/dist/_types/client/utils/assertEip712Transaction.d.ts.map +1 -0
- package/dist/_types/client/utils/getEip712Domain.d.ts +3 -0
- package/dist/_types/client/utils/getEip712Domain.d.ts.map +1 -0
- package/dist/_types/client/utils/isEip712Transaction.d.ts +4 -0
- package/dist/_types/client/utils/isEip712Transaction.d.ts.map +1 -0
- package/dist/_types/client-auth-server/Signer.d.ts +52 -0
- package/dist/_types/client-auth-server/Signer.d.ts.map +1 -0
- package/dist/_types/client-auth-server/WalletProvider.d.ts +27 -0
- package/dist/_types/client-auth-server/WalletProvider.d.ts.map +1 -0
- package/dist/_types/client-auth-server/index.d.ts +4 -0
- package/dist/_types/client-auth-server/index.d.ts.map +1 -0
- package/dist/_types/client-auth-server/interface.d.ts +34 -0
- package/dist/_types/client-auth-server/interface.d.ts.map +1 -0
- package/dist/_types/client-auth-server/rpc.d.ts +55 -0
- package/dist/_types/client-auth-server/rpc.d.ts.map +1 -0
- package/dist/_types/client-auth-server/session.d.ts +45 -0
- package/dist/_types/client-auth-server/session.d.ts.map +1 -0
- package/dist/_types/communicator/PopupCommunicator.d.ts +20 -0
- package/dist/_types/communicator/PopupCommunicator.d.ts.map +1 -0
- package/dist/_types/communicator/index.d.ts +3 -0
- package/dist/_types/communicator/index.d.ts.map +1 -0
- package/dist/_types/communicator/interface.d.ts +16 -0
- package/dist/_types/communicator/interface.d.ts.map +1 -0
- package/dist/_types/connector/index.d.ts +8 -0
- package/dist/_types/connector/index.d.ts.map +1 -0
- package/dist/_types/errors/constants.d.ts +96 -0
- package/dist/_types/errors/constants.d.ts.map +1 -0
- package/dist/_types/errors/errors.d.ts +48 -0
- package/dist/_types/errors/errors.d.ts.map +1 -0
- package/dist/_types/errors/index.d.ts +5 -0
- package/dist/_types/errors/index.d.ts.map +1 -0
- package/dist/_types/errors/serialize.d.ts +13 -0
- package/dist/_types/errors/serialize.d.ts.map +1 -0
- package/dist/_types/errors/utils.d.ts +30 -0
- package/dist/_types/errors/utils.d.ts.map +1 -0
- package/dist/_types/index.d.ts +4 -0
- package/dist/_types/index.d.ts.map +1 -0
- package/dist/_types/utils/encoding.d.ts +12 -0
- package/dist/_types/utils/encoding.d.ts.map +1 -0
- package/dist/_types/utils/helpers.d.ts +4 -0
- package/dist/_types/utils/helpers.d.ts.map +1 -0
- package/dist/_types/utils/index.d.ts +4 -0
- package/dist/_types/utils/index.d.ts.map +1 -0
- package/dist/_types/utils/passkey.d.ts +47 -0
- package/dist/_types/utils/passkey.d.ts.map +1 -0
- package/dist/_types/utils/session.d.ts +95 -0
- package/dist/_types/utils/session.d.ts.map +1 -0
- package/dist/_types/utils/storage.d.ts +30 -0
- package/dist/_types/utils/storage.d.ts.map +1 -0
- package/dist/_types/version.d.ts +2 -0
- package/dist/_types/version.d.ts.map +1 -0
- package/eslint.config.js +6 -0
- package/package.json +144 -0
- package/prepare-package.mjs +39 -0
- package/project.json +67 -0
- package/src/abi/Factory.ts +193 -0
- package/src/abi/SessionKeyModule.ts +1100 -0
- package/src/client/actions/account.ts +198 -0
- package/src/client/actions/index.ts +2 -0
- package/src/client/actions/passkey.ts +165 -0
- package/src/client/actions/session.ts +118 -0
- package/src/client/clients/passkey.ts +107 -0
- package/src/client/clients/session.ts +105 -0
- package/src/client/decorators/index.ts +2 -0
- package/src/client/decorators/passkey.ts +22 -0
- package/src/client/decorators/session.ts +17 -0
- package/src/client/decorators/session_wallet.ts +184 -0
- package/src/client/index.ts +2 -0
- package/src/client/passkey.ts +3 -0
- package/src/client/smart-account.ts +68 -0
- package/src/client/utils/assertEip712Transaction.ts +49 -0
- package/src/client/utils/getEip712Domain.ts +84 -0
- package/src/client/utils/isEip712Transaction.ts +18 -0
- package/src/client-auth-server/Signer.ts +260 -0
- package/src/client-auth-server/WalletProvider.ts +114 -0
- package/src/client-auth-server/index.ts +3 -0
- package/src/client-auth-server/interface.ts +39 -0
- package/src/client-auth-server/rpc.ts +69 -0
- package/src/client-auth-server/session.ts +139 -0
- package/src/communicator/PopupCommunicator.ts +111 -0
- package/src/communicator/index.ts +2 -0
- package/src/communicator/interface.ts +15 -0
- package/src/connector/index.ts +171 -0
- package/src/errors/constants.ts +119 -0
- package/src/errors/errors.ts +168 -0
- package/src/errors/index.ts +4 -0
- package/src/errors/serialize.ts +91 -0
- package/src/errors/utils.ts +152 -0
- package/src/index.ts +3 -0
- package/src/types/index.d.ts +9 -0
- package/src/utils/encoding.ts +36 -0
- package/src/utils/helpers.ts +43 -0
- package/src/utils/index.ts +3 -0
- package/src/utils/passkey.ts +344 -0
- package/src/utils/session.ts +103 -0
- package/src/utils/storage.ts +87 -0
- package/src/version.ts +1 -0
- package/tsconfig.base.json +44 -0
- 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 @@
|
|
|
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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"}
|