@rhinestone/sdk 1.4.2 → 1.5.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.
- package/README.md +89 -1
- package/dist/src/accounts/signing/common.d.ts +8 -2
- package/dist/src/accounts/signing/common.d.ts.map +1 -1
- package/dist/src/auth/provider.d.ts +7 -0
- package/dist/src/auth/provider.d.ts.map +1 -0
- package/dist/src/auth/provider.js +41 -0
- package/dist/src/execution/index.d.ts +3 -2
- package/dist/src/execution/index.d.ts.map +1 -1
- package/dist/src/execution/index.js +11 -9
- package/dist/src/execution/utils.d.ts +6 -2
- package/dist/src/execution/utils.d.ts.map +1 -1
- package/dist/src/execution/utils.js +33 -13
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +6 -5
- package/dist/src/jwt-server/digest.d.ts +11 -0
- package/dist/src/jwt-server/digest.d.ts.map +1 -0
- package/dist/src/jwt-server/digest.js +22 -0
- package/dist/src/jwt-server/express.d.ts +16 -0
- package/dist/src/jwt-server/express.d.ts.map +1 -0
- package/dist/src/jwt-server/express.js +24 -0
- package/dist/src/jwt-server/handlers.d.ts +10 -0
- package/dist/src/jwt-server/handlers.d.ts.map +1 -0
- package/dist/src/jwt-server/handlers.js +41 -0
- package/dist/src/jwt-server/index.d.ts +8 -0
- package/dist/src/jwt-server/index.d.ts.map +1 -0
- package/dist/src/jwt-server/index.js +18 -0
- package/dist/src/jwt-server/jcs.d.ts +12 -0
- package/dist/src/jwt-server/jcs.d.ts.map +1 -0
- package/dist/src/jwt-server/jcs.js +60 -0
- package/dist/src/jwt-server/signer.d.ts +18 -0
- package/dist/src/jwt-server/signer.d.ts.map +1 -0
- package/dist/src/jwt-server/signer.js +71 -0
- package/dist/src/jwt-server/sponsorship.d.ts +19 -0
- package/dist/src/jwt-server/sponsorship.d.ts.map +1 -0
- package/dist/src/jwt-server/sponsorship.js +56 -0
- package/dist/src/jwt-server/web.d.ts +4 -0
- package/dist/src/jwt-server/web.d.ts.map +1 -0
- package/dist/src/jwt-server/web.js +27 -0
- package/dist/src/modules/validators/smart-sessions.d.ts +1 -1
- package/dist/src/modules/validators/smart-sessions.d.ts.map +1 -1
- package/dist/src/modules/validators/smart-sessions.js +12 -3
- package/dist/src/orchestrator/client.d.ts +9 -4
- package/dist/src/orchestrator/client.d.ts.map +1 -1
- package/dist/src/orchestrator/client.js +28 -17
- package/dist/src/orchestrator/consts.d.ts +1 -1
- package/dist/src/orchestrator/consts.js +1 -1
- package/dist/src/orchestrator/index.d.ts +2 -1
- package/dist/src/orchestrator/index.d.ts.map +1 -1
- package/dist/src/orchestrator/index.js +2 -2
- package/dist/src/orchestrator/types.d.ts +5 -1
- package/dist/src/orchestrator/types.d.ts.map +1 -1
- package/dist/src/types.d.ts +27 -3
- package/dist/src/types.d.ts.map +1 -1
- package/package.json +17 -3
- package/dist/src/accounts/index.test.d.ts +0 -2
- package/dist/src/accounts/index.test.d.ts.map +0 -1
- package/dist/src/accounts/index.test.js +0 -33
- package/dist/src/accounts/json-rpc/index.test.d.ts +0 -2
- package/dist/src/accounts/json-rpc/index.test.d.ts.map +0 -1
- package/dist/src/accounts/json-rpc/index.test.js +0 -35
- package/dist/src/accounts/json-rpc/providers.test.d.ts +0 -2
- package/dist/src/accounts/json-rpc/providers.test.d.ts.map +0 -1
- package/dist/src/accounts/json-rpc/providers.test.js +0 -43
- package/dist/src/accounts/kernel.test.d.ts +0 -2
- package/dist/src/accounts/kernel.test.d.ts.map +0 -1
- package/dist/src/accounts/kernel.test.js +0 -132
- package/dist/src/accounts/nexus.test.d.ts +0 -2
- package/dist/src/accounts/nexus.test.d.ts.map +0 -1
- package/dist/src/accounts/nexus.test.js +0 -118
- package/dist/src/accounts/safe.test.d.ts +0 -2
- package/dist/src/accounts/safe.test.d.ts.map +0 -1
- package/dist/src/accounts/safe.test.js +0 -168
- package/dist/src/accounts/signing/passkeys.test.d.ts +0 -2
- package/dist/src/accounts/signing/passkeys.test.d.ts.map +0 -1
- package/dist/src/accounts/signing/passkeys.test.js +0 -88
- package/dist/src/accounts/startale.test.d.ts +0 -2
- package/dist/src/accounts/startale.test.d.ts.map +0 -1
- package/dist/src/accounts/startale.test.js +0 -189
- package/dist/src/accounts/utils.test.d.ts +0 -2
- package/dist/src/accounts/utils.test.d.ts.map +0 -1
- package/dist/src/accounts/utils.test.js +0 -49
- package/dist/src/actions/ecdsa.test.d.ts +0 -2
- package/dist/src/actions/ecdsa.test.d.ts.map +0 -1
- package/dist/src/actions/ecdsa.test.js +0 -99
- package/dist/src/actions/passkeys.test.d.ts +0 -2
- package/dist/src/actions/passkeys.test.d.ts.map +0 -1
- package/dist/src/actions/passkeys.test.js +0 -54
- package/dist/src/actions/recovery.test.d.ts +0 -2
- package/dist/src/actions/recovery.test.d.ts.map +0 -1
- package/dist/src/actions/recovery.test.js +0 -168
- package/dist/src/execution/signing.test.d.ts +0 -2
- package/dist/src/execution/signing.test.d.ts.map +0 -1
- package/dist/src/execution/signing.test.js +0 -465
- package/dist/src/execution/utils.test.d.ts +0 -2
- package/dist/src/execution/utils.test.d.ts.map +0 -1
- package/dist/src/execution/utils.test.js +0 -388
- package/dist/src/modules/index.test.d.ts +0 -2
- package/dist/src/modules/index.test.d.ts.map +0 -1
- package/dist/src/modules/index.test.js +0 -81
- package/dist/src/modules/validators/core.test.d.ts +0 -2
- package/dist/src/modules/validators/core.test.d.ts.map +0 -1
- package/dist/src/modules/validators/core.test.js +0 -101
- package/dist/src/modules/validators/policies/claim/permit2.test.d.ts +0 -2
- package/dist/src/modules/validators/policies/claim/permit2.test.d.ts.map +0 -1
- package/dist/src/modules/validators/policies/claim/permit2.test.js +0 -519
- package/dist/src/modules/validators/smart-sessions.test.d.ts +0 -2
- package/dist/src/modules/validators/smart-sessions.test.d.ts.map +0 -1
- package/dist/src/modules/validators/smart-sessions.test.js +0 -311
- package/dist/src/orchestrator/registry.test.d.ts +0 -2
- package/dist/src/orchestrator/registry.test.d.ts.map +0 -1
- package/dist/src/orchestrator/registry.test.js +0 -154
- package/dist/src/utils/index.test.d.ts +0 -2
- package/dist/src/utils/index.test.d.ts.map +0 -1
- package/dist/src/utils/index.test.js +0 -42
- package/dist/test/consts.d.ts +0 -10
- package/dist/test/consts.d.ts.map +0 -1
- package/dist/test/consts.js +0 -22
- package/dist/test/utils/utils.d.ts +0 -5
- package/dist/test/utils/utils.d.ts.map +0 -1
- package/dist/test/utils/utils.js +0 -20
|
@@ -1,311 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const viem_1 = require("viem");
|
|
4
|
-
const chains_1 = require("viem/chains");
|
|
5
|
-
const vitest_1 = require("vitest");
|
|
6
|
-
const consts_1 = require("../../../test/consts");
|
|
7
|
-
const smart_sessions_1 = require("./smart-sessions");
|
|
8
|
-
// ---------------------------------------------------------------------------
|
|
9
|
-
// Shared fixtures
|
|
10
|
-
// ---------------------------------------------------------------------------
|
|
11
|
-
const baseSession = {
|
|
12
|
-
chain: chains_1.base,
|
|
13
|
-
owners: { type: 'ecdsa', accounts: [consts_1.accountA] },
|
|
14
|
-
};
|
|
15
|
-
const sessionWithAction = {
|
|
16
|
-
chain: chains_1.base,
|
|
17
|
-
owners: { type: 'ecdsa', accounts: [consts_1.accountA] },
|
|
18
|
-
actions: [
|
|
19
|
-
{
|
|
20
|
-
target: '0x1111111111111111111111111111111111111111',
|
|
21
|
-
selector: '0xa9059cbb',
|
|
22
|
-
policies: [{ type: 'sudo' }],
|
|
23
|
-
},
|
|
24
|
-
],
|
|
25
|
-
};
|
|
26
|
-
const dummySig = `0x${'00'.repeat(65)}`;
|
|
27
|
-
// ---------------------------------------------------------------------------
|
|
28
|
-
// A. Policy encoding
|
|
29
|
-
// ---------------------------------------------------------------------------
|
|
30
|
-
(0, vitest_1.describe)('getPolicyData', () => {
|
|
31
|
-
(0, vitest_1.test)('sudo → SUDO_POLICY_ADDRESS, empty initData', () => {
|
|
32
|
-
const result = (0, smart_sessions_1.getPolicyData)({ type: 'sudo' });
|
|
33
|
-
(0, vitest_1.expect)(result.policy).toBe(smart_sessions_1.SUDO_POLICY_ADDRESS);
|
|
34
|
-
(0, vitest_1.expect)(result.initData).toBe('0x');
|
|
35
|
-
});
|
|
36
|
-
(0, vitest_1.test)('intent-execution → INTENT_EXECUTION_POLICY_ADDRESS, empty initData', () => {
|
|
37
|
-
const result = (0, smart_sessions_1.getPolicyData)({ type: 'intent-execution' });
|
|
38
|
-
(0, vitest_1.expect)(result.policy).toBe(smart_sessions_1.INTENT_EXECUTION_POLICY_ADDRESS);
|
|
39
|
-
(0, vitest_1.expect)(result.initData).toBe('0x');
|
|
40
|
-
});
|
|
41
|
-
(0, vitest_1.test)('spending-limits encodes token addresses and amounts', () => {
|
|
42
|
-
const token = '0xaabbccdd00000000000000000000000000000001';
|
|
43
|
-
const result = (0, smart_sessions_1.getPolicyData)({
|
|
44
|
-
type: 'spending-limits',
|
|
45
|
-
limits: [{ token, amount: 1000n }],
|
|
46
|
-
});
|
|
47
|
-
(0, vitest_1.expect)(result.policy).toBe(smart_sessions_1.SPENDING_LIMITS_POLICY_ADDRESS);
|
|
48
|
-
const expected = (0, viem_1.encodeAbiParameters)([{ type: 'address[]' }, { type: 'uint256[]' }], [[token], [1000n]]);
|
|
49
|
-
(0, vitest_1.expect)(result.initData).toBe(expected);
|
|
50
|
-
});
|
|
51
|
-
(0, vitest_1.test)('time-frame encodes validUntil/validAfter in seconds (ms → s)', () => {
|
|
52
|
-
const validUntil = 1_800_000_000_000;
|
|
53
|
-
const validAfter = 1_700_000_000_000;
|
|
54
|
-
const result = (0, smart_sessions_1.getPolicyData)({ type: 'time-frame', validUntil, validAfter });
|
|
55
|
-
(0, vitest_1.expect)(result.policy).toBe(smart_sessions_1.TIME_FRAME_POLICY_ADDRESS);
|
|
56
|
-
const expected = (0, viem_1.encodePacked)(['uint48', 'uint48'], [Math.floor(validUntil / 1000), Math.floor(validAfter / 1000)]);
|
|
57
|
-
(0, vitest_1.expect)(result.initData).toBe(expected);
|
|
58
|
-
});
|
|
59
|
-
(0, vitest_1.test)('usage-limit encodes limit as uint128', () => {
|
|
60
|
-
const result = (0, smart_sessions_1.getPolicyData)({ type: 'usage-limit', limit: 5n });
|
|
61
|
-
(0, vitest_1.expect)(result.policy).toBe(smart_sessions_1.USAGE_LIMIT_POLICY_ADDRESS);
|
|
62
|
-
(0, vitest_1.expect)(result.initData).toBe((0, viem_1.encodePacked)(['uint128'], [5n]));
|
|
63
|
-
});
|
|
64
|
-
(0, vitest_1.test)('value-limit encodes limit as uint256', () => {
|
|
65
|
-
const limit = (0, viem_1.parseEther)('1');
|
|
66
|
-
const result = (0, smart_sessions_1.getPolicyData)({ type: 'value-limit', limit });
|
|
67
|
-
(0, vitest_1.expect)(result.policy).toBe(smart_sessions_1.VALUE_LIMIT_POLICY_ADDRESS);
|
|
68
|
-
(0, vitest_1.expect)(result.initData).toBe((0, viem_1.encodeAbiParameters)([{ type: 'uint256' }], [limit]));
|
|
69
|
-
});
|
|
70
|
-
(0, vitest_1.test)('universal-action → UNIVERSAL_ACTION_POLICY_ADDRESS, non-empty initData', () => {
|
|
71
|
-
const result = (0, smart_sessions_1.getPolicyData)({
|
|
72
|
-
type: 'universal-action',
|
|
73
|
-
valueLimitPerUse: 0n,
|
|
74
|
-
rules: [
|
|
75
|
-
{
|
|
76
|
-
condition: 'equal',
|
|
77
|
-
calldataOffset: 4n,
|
|
78
|
-
referenceValue: 100n,
|
|
79
|
-
},
|
|
80
|
-
],
|
|
81
|
-
});
|
|
82
|
-
(0, vitest_1.expect)(result.policy).toBe(smart_sessions_1.UNIVERSAL_ACTION_POLICY_ADDRESS);
|
|
83
|
-
(0, vitest_1.expect)(result.initData.length).toBeGreaterThan(2);
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
// ---------------------------------------------------------------------------
|
|
87
|
-
// B. getSessionData
|
|
88
|
-
// ---------------------------------------------------------------------------
|
|
89
|
-
(0, vitest_1.describe)('getSessionData', () => {
|
|
90
|
-
(0, vitest_1.test)('no actions → single sudoAction fallback', () => {
|
|
91
|
-
const data = (0, smart_sessions_1.getSessionData)(baseSession);
|
|
92
|
-
(0, vitest_1.expect)(data.actions).toHaveLength(1);
|
|
93
|
-
(0, vitest_1.expect)(data.actions[0].actionTarget).toBe(smart_sessions_1.SMART_SESSIONS_FALLBACK_TARGET_FLAG);
|
|
94
|
-
(0, vitest_1.expect)(data.actions[0].actionTargetSelector).toBe(smart_sessions_1.SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG);
|
|
95
|
-
});
|
|
96
|
-
(0, vitest_1.test)('explicit actions → user action + 3 injected (WETH deposit + intent-execution fallback + dummy preclaimop)', () => {
|
|
97
|
-
const data = (0, smart_sessions_1.getSessionData)(sessionWithAction);
|
|
98
|
-
(0, vitest_1.expect)(data.actions).toHaveLength(4);
|
|
99
|
-
(0, vitest_1.expect)(data.actions[0].actionTarget).toBe('0x1111111111111111111111111111111111111111');
|
|
100
|
-
// injected WETH deposit — target is the wrapped token (non-zero address)
|
|
101
|
-
(0, vitest_1.expect)(data.actions[1].actionTarget).not.toBe('0x0000000000000000000000000000000000000000');
|
|
102
|
-
// injected intent-execution fallback
|
|
103
|
-
(0, vitest_1.expect)(data.actions[2].actionTarget).toBe(smart_sessions_1.SMART_SESSIONS_FALLBACK_TARGET_FLAG);
|
|
104
|
-
// injected dummy preclaimop action
|
|
105
|
-
(0, vitest_1.expect)(data.actions[3].actionTarget).toBe(smart_sessions_1.DUMMY_PRECLAIMOP_TARGET);
|
|
106
|
-
(0, vitest_1.expect)(data.actions[3].actionTargetSelector).toBe(smart_sessions_1.DUMMY_PRECLAIMOP_SELECTOR);
|
|
107
|
-
});
|
|
108
|
-
(0, vitest_1.test)('dummy preclaimop action uses sudo policy', () => {
|
|
109
|
-
const data = (0, smart_sessions_1.getSessionData)(sessionWithAction);
|
|
110
|
-
const dummyAction = data.actions.find((a) => a.actionTargetSelector === smart_sessions_1.DUMMY_PRECLAIMOP_SELECTOR);
|
|
111
|
-
(0, vitest_1.expect)(dummyAction).toBeDefined();
|
|
112
|
-
(0, vitest_1.expect)(dummyAction.actionPolicies).toHaveLength(1);
|
|
113
|
-
(0, vitest_1.expect)(dummyAction.actionPolicies[0].policy).toBe(smart_sessions_1.SUDO_POLICY_ADDRESS);
|
|
114
|
-
(0, vitest_1.expect)(dummyAction.actionPolicies[0].initData).toBe('0x');
|
|
115
|
-
});
|
|
116
|
-
(0, vitest_1.test)('no explicit actions → sudoAction fallback only (dummy injected via injectedActions path is not used)', () => {
|
|
117
|
-
// Sessions without explicit actions use the [sudoAction] fallback directly,
|
|
118
|
-
// which covers all (target, selector) pairs — no dummy action needed.
|
|
119
|
-
const data = (0, smart_sessions_1.getSessionData)(baseSession);
|
|
120
|
-
(0, vitest_1.expect)(data.actions).toHaveLength(1);
|
|
121
|
-
(0, vitest_1.expect)(data.actions[0].actionTarget).toBe(smart_sessions_1.SMART_SESSIONS_FALLBACK_TARGET_FLAG);
|
|
122
|
-
});
|
|
123
|
-
(0, vitest_1.test)('empty actions array → same sudoAction fallback as no actions', () => {
|
|
124
|
-
// actions: [] is truthy but has no elements — must be treated the same as
|
|
125
|
-
// actions: undefined so injectedActions are not appended.
|
|
126
|
-
const sessionWithEmptyActions = { ...baseSession, actions: [] };
|
|
127
|
-
const data = (0, smart_sessions_1.getSessionData)(sessionWithEmptyActions);
|
|
128
|
-
(0, vitest_1.expect)(data.actions).toHaveLength(1);
|
|
129
|
-
(0, vitest_1.expect)(data.actions[0].actionTarget).toBe(smart_sessions_1.SMART_SESSIONS_FALLBACK_TARGET_FLAG);
|
|
130
|
-
});
|
|
131
|
-
(0, vitest_1.test)('multiple policies on one action', () => {
|
|
132
|
-
const session = {
|
|
133
|
-
chain: chains_1.base,
|
|
134
|
-
owners: { type: 'ecdsa', accounts: [consts_1.accountA] },
|
|
135
|
-
actions: [
|
|
136
|
-
{
|
|
137
|
-
target: '0x2222222222222222222222222222222222222222',
|
|
138
|
-
selector: '0x12345678',
|
|
139
|
-
policies: [{ type: 'sudo' }, { type: 'usage-limit', limit: 3n }],
|
|
140
|
-
},
|
|
141
|
-
],
|
|
142
|
-
};
|
|
143
|
-
const data = (0, smart_sessions_1.getSessionData)(session);
|
|
144
|
-
(0, vitest_1.expect)(data.actions[0].actionPolicies).toHaveLength(2);
|
|
145
|
-
(0, vitest_1.expect)(data.actions[0].actionPolicies[0].policy).toBe(smart_sessions_1.SUDO_POLICY_ADDRESS);
|
|
146
|
-
(0, vitest_1.expect)(data.actions[0].actionPolicies[1].policy).toBe(smart_sessions_1.USAGE_LIMIT_POLICY_ADDRESS);
|
|
147
|
-
});
|
|
148
|
-
(0, vitest_1.test)('salt is always zeroHash', () => {
|
|
149
|
-
(0, vitest_1.expect)((0, smart_sessions_1.getSessionData)(baseSession).salt).toBe(viem_1.zeroHash);
|
|
150
|
-
(0, vitest_1.expect)((0, smart_sessions_1.getSessionData)(sessionWithAction).salt).toBe(viem_1.zeroHash);
|
|
151
|
-
});
|
|
152
|
-
(0, vitest_1.test)('erc7739Policies has sudo erc1271 policy', () => {
|
|
153
|
-
const data = (0, smart_sessions_1.getSessionData)(baseSession);
|
|
154
|
-
(0, vitest_1.expect)(data.erc7739Policies.erc1271Policies[0].policy).toBe(smart_sessions_1.SUDO_POLICY_ADDRESS);
|
|
155
|
-
});
|
|
156
|
-
});
|
|
157
|
-
// ---------------------------------------------------------------------------
|
|
158
|
-
// C. getPermissionId
|
|
159
|
-
// ---------------------------------------------------------------------------
|
|
160
|
-
(0, vitest_1.describe)('getPermissionId', () => {
|
|
161
|
-
(0, vitest_1.test)('deterministic — same session returns same id', () => {
|
|
162
|
-
(0, vitest_1.expect)((0, smart_sessions_1.getPermissionId)(baseSession)).toBe((0, smart_sessions_1.getPermissionId)(baseSession));
|
|
163
|
-
});
|
|
164
|
-
(0, vitest_1.test)('different owners → different permissionId', () => {
|
|
165
|
-
const sessionB = {
|
|
166
|
-
chain: chains_1.base,
|
|
167
|
-
owners: { type: 'ecdsa', accounts: [consts_1.accountB] },
|
|
168
|
-
};
|
|
169
|
-
(0, vitest_1.expect)((0, smart_sessions_1.getPermissionId)(baseSession)).not.toBe((0, smart_sessions_1.getPermissionId)(sessionB));
|
|
170
|
-
});
|
|
171
|
-
(0, vitest_1.test)('actions do not affect permissionId (only validator identity does)', () => {
|
|
172
|
-
// permissionId is derived from sessionValidator + sessionValidatorInitData + salt,
|
|
173
|
-
// NOT from actions — so same owner with different actions yields the same id
|
|
174
|
-
(0, vitest_1.expect)((0, smart_sessions_1.getPermissionId)(baseSession)).toBe((0, smart_sessions_1.getPermissionId)(sessionWithAction));
|
|
175
|
-
});
|
|
176
|
-
(0, vitest_1.test)('returns 32-byte hex string', () => {
|
|
177
|
-
const id = (0, smart_sessions_1.getPermissionId)(baseSession);
|
|
178
|
-
(0, vitest_1.expect)(id).toMatch(/^0x[0-9a-f]{64}$/);
|
|
179
|
-
});
|
|
180
|
-
});
|
|
181
|
-
// ---------------------------------------------------------------------------
|
|
182
|
-
// D. packSignature
|
|
183
|
-
// ---------------------------------------------------------------------------
|
|
184
|
-
(0, vitest_1.describe)('packSignature', () => {
|
|
185
|
-
(0, vitest_1.test)('verifyExecutions: false → MODE_USE (0x00) prefix', () => {
|
|
186
|
-
const signers = {
|
|
187
|
-
type: 'experimental_session',
|
|
188
|
-
session: baseSession,
|
|
189
|
-
verifyExecutions: false,
|
|
190
|
-
};
|
|
191
|
-
const result = (0, smart_sessions_1.packSignature)(signers, dummySig);
|
|
192
|
-
(0, vitest_1.expect)((0, viem_1.slice)(result, 0, 1)).toBe('0x00');
|
|
193
|
-
});
|
|
194
|
-
(0, vitest_1.test)('verifyExecutions: false → bytes 1-32 are the permissionId', () => {
|
|
195
|
-
const signers = {
|
|
196
|
-
type: 'experimental_session',
|
|
197
|
-
session: baseSession,
|
|
198
|
-
verifyExecutions: false,
|
|
199
|
-
};
|
|
200
|
-
const result = (0, smart_sessions_1.packSignature)(signers, dummySig);
|
|
201
|
-
const permissionId = (0, smart_sessions_1.getPermissionId)(baseSession);
|
|
202
|
-
(0, vitest_1.expect)((0, viem_1.slice)(result, 1, 33)).toBe(permissionId);
|
|
203
|
-
});
|
|
204
|
-
(0, vitest_1.test)('verifyExecutions: false → total length > 66 bytes', () => {
|
|
205
|
-
const signers = {
|
|
206
|
-
type: 'experimental_session',
|
|
207
|
-
session: baseSession,
|
|
208
|
-
verifyExecutions: false,
|
|
209
|
-
};
|
|
210
|
-
const result = (0, smart_sessions_1.packSignature)(signers, dummySig);
|
|
211
|
-
const byteLen = (result.length - 2) / 2;
|
|
212
|
-
(0, vitest_1.expect)(byteLen).toBeGreaterThan(66);
|
|
213
|
-
});
|
|
214
|
-
(0, vitest_1.test)('verifyExecutions: true + enableData → MODE_ENABLE (0x01) prefix', () => {
|
|
215
|
-
const signers = {
|
|
216
|
-
type: 'experimental_session',
|
|
217
|
-
session: baseSession,
|
|
218
|
-
verifyExecutions: true,
|
|
219
|
-
enableData: {
|
|
220
|
-
userSignature: dummySig,
|
|
221
|
-
hashesAndChainIds: [
|
|
222
|
-
{ chainId: BigInt(chains_1.base.id), sessionDigest: viem_1.zeroHash },
|
|
223
|
-
],
|
|
224
|
-
sessionToEnableIndex: 0,
|
|
225
|
-
},
|
|
226
|
-
};
|
|
227
|
-
const result = (0, smart_sessions_1.packSignature)(signers, dummySig);
|
|
228
|
-
(0, vitest_1.expect)((0, viem_1.slice)(result, 0, 1)).toBe('0x01');
|
|
229
|
-
});
|
|
230
|
-
(0, vitest_1.test)('verifyExecutions: true + enableData → longer output (has compressed payload)', () => {
|
|
231
|
-
const signers = {
|
|
232
|
-
type: 'experimental_session',
|
|
233
|
-
session: baseSession,
|
|
234
|
-
verifyExecutions: true,
|
|
235
|
-
enableData: {
|
|
236
|
-
userSignature: dummySig,
|
|
237
|
-
hashesAndChainIds: [
|
|
238
|
-
{ chainId: BigInt(chains_1.base.id), sessionDigest: viem_1.zeroHash },
|
|
239
|
-
],
|
|
240
|
-
sessionToEnableIndex: 0,
|
|
241
|
-
},
|
|
242
|
-
};
|
|
243
|
-
const result = (0, smart_sessions_1.packSignature)(signers, dummySig);
|
|
244
|
-
const byteLen = (result.length - 2) / 2;
|
|
245
|
-
(0, vitest_1.expect)(byteLen).toBeGreaterThan(33);
|
|
246
|
-
});
|
|
247
|
-
(0, vitest_1.test)('verifyExecutions: true, no enableData → MODE_USE (0x00) prefix', () => {
|
|
248
|
-
const signers = {
|
|
249
|
-
type: 'experimental_session',
|
|
250
|
-
session: baseSession,
|
|
251
|
-
verifyExecutions: true,
|
|
252
|
-
};
|
|
253
|
-
const result = (0, smart_sessions_1.packSignature)(signers, dummySig);
|
|
254
|
-
(0, vitest_1.expect)((0, viem_1.slice)(result, 0, 1)).toBe('0x00');
|
|
255
|
-
});
|
|
256
|
-
(0, vitest_1.test)('different owners produce different packed bytes', () => {
|
|
257
|
-
const sessionB = {
|
|
258
|
-
chain: chains_1.base,
|
|
259
|
-
owners: { type: 'ecdsa', accounts: [consts_1.accountB] },
|
|
260
|
-
};
|
|
261
|
-
const signersA = {
|
|
262
|
-
type: 'experimental_session',
|
|
263
|
-
session: baseSession,
|
|
264
|
-
verifyExecutions: false,
|
|
265
|
-
};
|
|
266
|
-
const signersB = {
|
|
267
|
-
type: 'experimental_session',
|
|
268
|
-
session: sessionB,
|
|
269
|
-
verifyExecutions: false,
|
|
270
|
-
};
|
|
271
|
-
(0, vitest_1.expect)((0, smart_sessions_1.packSignature)(signersA, dummySig)).not.toBe((0, smart_sessions_1.packSignature)(signersB, dummySig));
|
|
272
|
-
});
|
|
273
|
-
});
|
|
274
|
-
// ---------------------------------------------------------------------------
|
|
275
|
-
// E. buildMockSignature (existing tests preserved + extras)
|
|
276
|
-
// ---------------------------------------------------------------------------
|
|
277
|
-
(0, vitest_1.describe)('buildMockSignature', () => {
|
|
278
|
-
(0, vitest_1.test)('first 20 bytes are the emissary address', () => {
|
|
279
|
-
const sig = (0, smart_sessions_1.buildMockSignature)(baseSession);
|
|
280
|
-
const validatorBytes = (0, viem_1.slice)(sig, 0, 20);
|
|
281
|
-
(0, vitest_1.expect)((0, viem_1.isAddressEqual)(validatorBytes, smart_sessions_1.SMART_SESSION_EMISSARY_ADDRESS)).toBe(true);
|
|
282
|
-
});
|
|
283
|
-
(0, vitest_1.test)('byte 20 is SMART_SESSION_MODE_ENABLE (0x01)', () => {
|
|
284
|
-
const sig = (0, smart_sessions_1.buildMockSignature)(baseSession);
|
|
285
|
-
const modeByte = (0, viem_1.slice)(sig, 20, 21);
|
|
286
|
-
(0, vitest_1.expect)(modeByte).toBe('0x01');
|
|
287
|
-
});
|
|
288
|
-
(0, vitest_1.test)('total length is larger than just emissary + mode byte (has compressed payload)', () => {
|
|
289
|
-
const sig = (0, smart_sessions_1.buildMockSignature)(baseSession);
|
|
290
|
-
const byteLen = (sig.length - 2) / 2;
|
|
291
|
-
(0, vitest_1.expect)(byteLen).toBeGreaterThan(21);
|
|
292
|
-
});
|
|
293
|
-
(0, vitest_1.test)('sessions with different actions produce different sigData', () => {
|
|
294
|
-
const sigBase = (0, smart_sessions_1.buildMockSignature)(baseSession);
|
|
295
|
-
const sigWithAction = (0, smart_sessions_1.buildMockSignature)(sessionWithAction);
|
|
296
|
-
(0, vitest_1.expect)(sigBase).not.toBe(sigWithAction);
|
|
297
|
-
});
|
|
298
|
-
(0, vitest_1.test)('useDevContracts=true produces different emissary prefix', () => {
|
|
299
|
-
const sigProd = (0, smart_sessions_1.buildMockSignature)(baseSession, false);
|
|
300
|
-
const sigDev = (0, smart_sessions_1.buildMockSignature)(baseSession, true);
|
|
301
|
-
(0, vitest_1.expect)((0, viem_1.slice)(sigProd, 0, 20)).not.toBe((0, viem_1.slice)(sigDev, 0, 20));
|
|
302
|
-
});
|
|
303
|
-
(0, vitest_1.test)('chainCount=2 produces valid output (LibZip may compress smaller than chainCount=1)', () => {
|
|
304
|
-
const sig = (0, smart_sessions_1.buildMockSignature)(baseSession, false, 2);
|
|
305
|
-
// Must be at least emissaryAddress (20) + mode byte (1) + some payload
|
|
306
|
-
const byteLen = (sig.length - 2) / 2;
|
|
307
|
-
(0, vitest_1.expect)(byteLen).toBeGreaterThan(21);
|
|
308
|
-
// Must start with the emissary address
|
|
309
|
-
(0, vitest_1.expect)((0, viem_1.isAddressEqual)((0, viem_1.slice)(sig, 0, 20), smart_sessions_1.SMART_SESSION_EMISSARY_ADDRESS)).toBe(true);
|
|
310
|
-
});
|
|
311
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registry.test.d.ts","sourceRoot":"","sources":["../../../orchestrator/registry.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const viem_1 = require("viem");
|
|
4
|
-
const chains_1 = require("viem/chains");
|
|
5
|
-
const vitest_1 = require("vitest");
|
|
6
|
-
const registry_1 = require("./registry");
|
|
7
|
-
const DEPRECATED_CHAIN_ID = 5; // Goerli
|
|
8
|
-
const UNSUPPORTED_CHAIN_ID = 81457; // Blast
|
|
9
|
-
const TOKEN_SYMBOLS = {
|
|
10
|
-
ETH: 'ETH',
|
|
11
|
-
USDC: 'USDC',
|
|
12
|
-
USDT: 'USDT',
|
|
13
|
-
WETH: 'WETH',
|
|
14
|
-
};
|
|
15
|
-
const TOKEN_ADDRESSES = {
|
|
16
|
-
ARBTRUM_USDC: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831',
|
|
17
|
-
BASE_WETH: '0x4200000000000000000000000000000000000006',
|
|
18
|
-
};
|
|
19
|
-
const UNSUPPORTED_TOKEN_ADDRESS = '0x1234567890123456789012345678901234567890';
|
|
20
|
-
(0, vitest_1.describe)('Registry', () => {
|
|
21
|
-
(0, vitest_1.describe)('getSupportedChainIds', () => {
|
|
22
|
-
(0, vitest_1.test)('returns supported chain IDs', () => {
|
|
23
|
-
const chainIds = (0, registry_1.getSupportedChainIds)();
|
|
24
|
-
(0, vitest_1.expect)(chainIds).toContain(chains_1.arbitrum.id);
|
|
25
|
-
(0, vitest_1.expect)(chainIds).toContain(chains_1.base.id);
|
|
26
|
-
(0, vitest_1.expect)(chainIds).toContain(chains_1.sepolia.id);
|
|
27
|
-
});
|
|
28
|
-
(0, vitest_1.test)('does not include unsupported chains', () => {
|
|
29
|
-
const chainIds = (0, registry_1.getSupportedChainIds)();
|
|
30
|
-
(0, vitest_1.expect)(chainIds).not.toContain(DEPRECATED_CHAIN_ID);
|
|
31
|
-
(0, vitest_1.expect)(chainIds).not.toContain(UNSUPPORTED_CHAIN_ID);
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
(0, vitest_1.describe)('getTokenSymbol', () => {
|
|
35
|
-
(0, vitest_1.test)('returns correct symbol for supported token', () => {
|
|
36
|
-
const symbol = (0, registry_1.getTokenSymbol)(TOKEN_ADDRESSES.ARBTRUM_USDC, chains_1.arbitrum.id);
|
|
37
|
-
(0, vitest_1.expect)(symbol).toBe(TOKEN_SYMBOLS.USDC);
|
|
38
|
-
});
|
|
39
|
-
(0, vitest_1.test)('throws error for unsupported chain', () => {
|
|
40
|
-
(0, vitest_1.expect)(() => (0, registry_1.getTokenSymbol)(TOKEN_ADDRESSES.ARBTRUM_USDC, UNSUPPORTED_CHAIN_ID)).toThrow(`Unsupported chain ${UNSUPPORTED_CHAIN_ID}`);
|
|
41
|
-
});
|
|
42
|
-
(0, vitest_1.test)('returns undefined for unsupported token on supported chain', () => {
|
|
43
|
-
const symbol = (0, registry_1.getTokenSymbol)(UNSUPPORTED_TOKEN_ADDRESS, chains_1.arbitrum.id);
|
|
44
|
-
(0, vitest_1.expect)(symbol).toBeUndefined();
|
|
45
|
-
});
|
|
46
|
-
});
|
|
47
|
-
(0, vitest_1.describe)('getTokenAddress', () => {
|
|
48
|
-
(0, vitest_1.test)('returns zero address for ETH', () => {
|
|
49
|
-
const address = (0, registry_1.getTokenAddress)(TOKEN_SYMBOLS.ETH, chains_1.arbitrum.id);
|
|
50
|
-
(0, vitest_1.expect)(address).toBe(viem_1.zeroAddress);
|
|
51
|
-
});
|
|
52
|
-
(0, vitest_1.test)('returns correct address for token symbol', () => {
|
|
53
|
-
const address = (0, registry_1.getTokenAddress)(TOKEN_SYMBOLS.USDC, chains_1.arbitrum.id);
|
|
54
|
-
(0, vitest_1.expect)(address).toBe(TOKEN_ADDRESSES.ARBTRUM_USDC);
|
|
55
|
-
});
|
|
56
|
-
(0, vitest_1.test)('throws error for unsupported chain', () => {
|
|
57
|
-
(0, vitest_1.expect)(() => (0, registry_1.getTokenAddress)(TOKEN_SYMBOLS.USDC, UNSUPPORTED_CHAIN_ID)).toThrow(`Unsupported chain ${UNSUPPORTED_CHAIN_ID}`);
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
(0, vitest_1.describe)('getTokenDecimals', () => {
|
|
61
|
-
(0, vitest_1.test)('returns 18 for ETH', () => {
|
|
62
|
-
const address = (0, registry_1.getTokenDecimals)(TOKEN_SYMBOLS.ETH, chains_1.arbitrum.id);
|
|
63
|
-
(0, vitest_1.expect)(address).toBe(18);
|
|
64
|
-
});
|
|
65
|
-
(0, vitest_1.test)('returns correct decimals for token symbol', () => {
|
|
66
|
-
const address = (0, registry_1.getTokenDecimals)(TOKEN_SYMBOLS.USDC, chains_1.arbitrum.id);
|
|
67
|
-
(0, vitest_1.expect)(address).toBe(6);
|
|
68
|
-
});
|
|
69
|
-
(0, vitest_1.test)('throws error for unsupported chain', () => {
|
|
70
|
-
(0, vitest_1.expect)(() => (0, registry_1.getTokenDecimals)(TOKEN_SYMBOLS.USDC, UNSUPPORTED_CHAIN_ID)).toThrow(`Unsupported chain ${UNSUPPORTED_CHAIN_ID}`);
|
|
71
|
-
});
|
|
72
|
-
});
|
|
73
|
-
(0, vitest_1.describe)('getWethAddress', () => {
|
|
74
|
-
(0, vitest_1.test)('returns correct WETH address', () => {
|
|
75
|
-
const address = (0, registry_1.getWethAddress)(chains_1.base);
|
|
76
|
-
(0, vitest_1.expect)(address).toBe(TOKEN_ADDRESSES.BASE_WETH);
|
|
77
|
-
});
|
|
78
|
-
(0, vitest_1.test)('throws error for unsupported chain', () => {
|
|
79
|
-
const unsupportedChain = {
|
|
80
|
-
id: UNSUPPORTED_CHAIN_ID,
|
|
81
|
-
name: 'Unsupported',
|
|
82
|
-
};
|
|
83
|
-
(0, vitest_1.expect)(() => (0, registry_1.getWethAddress)(unsupportedChain)).toThrow(`Unsupported chain ${UNSUPPORTED_CHAIN_ID}`);
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
(0, vitest_1.describe)('getChainById', () => {
|
|
87
|
-
(0, vitest_1.test)('returns correct chain for supported ID', () => {
|
|
88
|
-
const chain = (0, registry_1.getChainById)(chains_1.arbitrum.id);
|
|
89
|
-
(0, vitest_1.expect)(chain.id).toBe(chains_1.arbitrum.id);
|
|
90
|
-
(0, vitest_1.expect)(chain.name).toBe(chains_1.arbitrum.name);
|
|
91
|
-
});
|
|
92
|
-
(0, vitest_1.test)('throws error for unsupported chain', () => {
|
|
93
|
-
(0, vitest_1.expect)(() => (0, registry_1.getChainById)(UNSUPPORTED_CHAIN_ID)).toThrow(`Unsupported chain ${UNSUPPORTED_CHAIN_ID}`);
|
|
94
|
-
});
|
|
95
|
-
});
|
|
96
|
-
(0, vitest_1.describe)('isTestnet', () => {
|
|
97
|
-
(0, vitest_1.test)('returns false for arbitrum', () => {
|
|
98
|
-
(0, vitest_1.expect)((0, registry_1.isTestnet)(chains_1.arbitrum.id)).toBe(false);
|
|
99
|
-
});
|
|
100
|
-
(0, vitest_1.test)('returns true for testnet', () => {
|
|
101
|
-
(0, vitest_1.expect)((0, registry_1.isTestnet)(chains_1.sepolia.id)).toBe(true);
|
|
102
|
-
});
|
|
103
|
-
(0, vitest_1.test)('throws error for unsupported chain', () => {
|
|
104
|
-
(0, vitest_1.expect)(() => (0, registry_1.isTestnet)(UNSUPPORTED_CHAIN_ID)).toThrow(`Unsupported chain ${UNSUPPORTED_CHAIN_ID}`);
|
|
105
|
-
});
|
|
106
|
-
});
|
|
107
|
-
(0, vitest_1.describe)('isTokenAddressSupported', () => {
|
|
108
|
-
(0, vitest_1.test)('returns true for supported token', () => {
|
|
109
|
-
const isSupported = (0, registry_1.isTokenAddressSupported)(TOKEN_ADDRESSES.ARBTRUM_USDC, chains_1.arbitrum.id);
|
|
110
|
-
(0, vitest_1.expect)(isSupported).toBe(true);
|
|
111
|
-
});
|
|
112
|
-
(0, vitest_1.test)('returns false for unsupported token or chain', () => {
|
|
113
|
-
(0, vitest_1.expect)((0, registry_1.isTokenAddressSupported)(UNSUPPORTED_TOKEN_ADDRESS, chains_1.arbitrum.id)).toBe(false);
|
|
114
|
-
(0, vitest_1.expect)((0, registry_1.isTokenAddressSupported)(TOKEN_ADDRESSES.ARBTRUM_USDC, UNSUPPORTED_CHAIN_ID)).toBe(false);
|
|
115
|
-
});
|
|
116
|
-
});
|
|
117
|
-
(0, vitest_1.describe)('getSupportedTokens', () => {
|
|
118
|
-
(0, vitest_1.test)('returns tokens for supported chain', () => {
|
|
119
|
-
const tokens = (0, registry_1.getSupportedTokens)(chains_1.arbitrum.id);
|
|
120
|
-
(0, vitest_1.expect)(tokens.length).toBeGreaterThan(0);
|
|
121
|
-
(0, vitest_1.expect)(tokens.find((t) => t.symbol === TOKEN_SYMBOLS.USDC)).toBeDefined();
|
|
122
|
-
});
|
|
123
|
-
(0, vitest_1.test)('throws error for unsupported chain', () => {
|
|
124
|
-
(0, vitest_1.expect)(() => (0, registry_1.getSupportedTokens)(UNSUPPORTED_CHAIN_ID)).toThrow(`Unsupported chain ${UNSUPPORTED_CHAIN_ID}`);
|
|
125
|
-
});
|
|
126
|
-
});
|
|
127
|
-
(0, vitest_1.describe)('getDefaultAccountAccessList', () => {
|
|
128
|
-
(0, vitest_1.test)('filters chains by testnet status', () => {
|
|
129
|
-
const arbitrumList = (0, registry_1.getDefaultAccountAccessList)(false);
|
|
130
|
-
const testnetList = (0, registry_1.getDefaultAccountAccessList)(true);
|
|
131
|
-
(0, vitest_1.expect)(arbitrumList.chainIds).toContain(chains_1.arbitrum.id);
|
|
132
|
-
(0, vitest_1.expect)(arbitrumList.chainIds).not.toContain(chains_1.sepolia.id);
|
|
133
|
-
(0, vitest_1.expect)(testnetList.chainIds).toContain(chains_1.sepolia.id);
|
|
134
|
-
(0, vitest_1.expect)(testnetList.chainIds).not.toContain(chains_1.arbitrum.id);
|
|
135
|
-
});
|
|
136
|
-
});
|
|
137
|
-
(0, vitest_1.describe)('resolveTokenAddress', () => {
|
|
138
|
-
(0, vitest_1.test)('returns address as-is when given valid address', () => {
|
|
139
|
-
const address = TOKEN_ADDRESSES.ARBTRUM_USDC;
|
|
140
|
-
const result = (0, registry_1.resolveTokenAddress)(address, chains_1.arbitrum.id);
|
|
141
|
-
(0, vitest_1.expect)(result).toBe(address);
|
|
142
|
-
});
|
|
143
|
-
(0, vitest_1.test)('resolves token symbol to address', () => {
|
|
144
|
-
const result = (0, registry_1.resolveTokenAddress)(TOKEN_SYMBOLS.USDC, chains_1.arbitrum.id);
|
|
145
|
-
(0, vitest_1.expect)(result).toBe(TOKEN_ADDRESSES.ARBTRUM_USDC);
|
|
146
|
-
});
|
|
147
|
-
(0, vitest_1.test)('throw error for unsupported token', () => {
|
|
148
|
-
(0, vitest_1.expect)(() => (0, registry_1.resolveTokenAddress)(TOKEN_SYMBOLS.USDT, chains_1.baseSepolia.id)).toThrow(`Unsupported token ${TOKEN_SYMBOLS.USDT} for chain ${chains_1.baseSepolia.id}`);
|
|
149
|
-
});
|
|
150
|
-
(0, vitest_1.test)('throws error for unsupported chain', () => {
|
|
151
|
-
(0, vitest_1.expect)(() => (0, registry_1.resolveTokenAddress)(TOKEN_SYMBOLS.USDC, UNSUPPORTED_CHAIN_ID)).toThrow(`Unsupported chain ${UNSUPPORTED_CHAIN_ID}`);
|
|
152
|
-
});
|
|
153
|
-
});
|
|
154
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../utils/index.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const vitest_1 = require("vitest");
|
|
4
|
-
const consts_1 = require("../../test/consts");
|
|
5
|
-
const index_1 = require("./index");
|
|
6
|
-
(0, vitest_1.describe)('Utils', () => {
|
|
7
|
-
(0, vitest_1.test)('experimental_getV0InitData accepts session-enabled safe config', () => {
|
|
8
|
-
const baseConfig = {
|
|
9
|
-
account: {
|
|
10
|
-
type: 'safe',
|
|
11
|
-
},
|
|
12
|
-
owners: {
|
|
13
|
-
type: 'ecdsa',
|
|
14
|
-
accounts: [consts_1.accountA],
|
|
15
|
-
},
|
|
16
|
-
};
|
|
17
|
-
const withoutSessions = (0, index_1.experimental_getV0InitData)(baseConfig);
|
|
18
|
-
const withSessions = (0, index_1.experimental_getV0InitData)({
|
|
19
|
-
...baseConfig,
|
|
20
|
-
experimental_sessions: {
|
|
21
|
-
enabled: true,
|
|
22
|
-
},
|
|
23
|
-
});
|
|
24
|
-
(0, vitest_1.expect)(withSessions.address).toMatch(/^0x[a-fA-F0-9]{40}$/);
|
|
25
|
-
(0, vitest_1.expect)(withSessions.factoryData).not.toEqual(withoutSessions.factoryData);
|
|
26
|
-
});
|
|
27
|
-
(0, vitest_1.test)('experimental_getRhinestoneInitData accepts session-enabled safe config', () => {
|
|
28
|
-
const initData = (0, index_1.experimental_getRhinestoneInitData)({
|
|
29
|
-
account: {
|
|
30
|
-
type: 'safe',
|
|
31
|
-
},
|
|
32
|
-
owners: {
|
|
33
|
-
type: 'ecdsa',
|
|
34
|
-
accounts: [consts_1.accountA],
|
|
35
|
-
},
|
|
36
|
-
experimental_sessions: {
|
|
37
|
-
enabled: true,
|
|
38
|
-
},
|
|
39
|
-
});
|
|
40
|
-
(0, vitest_1.expect)('factory' in initData).toBe(true);
|
|
41
|
-
});
|
|
42
|
-
});
|
package/dist/test/consts.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { type WebAuthnAccount } from 'viem/account-abstraction';
|
|
2
|
-
import { type Account } from 'viem/accounts';
|
|
3
|
-
declare const accountA: Account;
|
|
4
|
-
declare const accountB: Account;
|
|
5
|
-
declare const accountC: Account;
|
|
6
|
-
declare const accountD: Account;
|
|
7
|
-
declare const passkeyAccount: WebAuthnAccount;
|
|
8
|
-
declare const MOCK_API_KEY = "MOCK_KEY";
|
|
9
|
-
export { accountA, accountB, accountC, accountD, passkeyAccount, MOCK_API_KEY };
|
|
10
|
-
//# sourceMappingURL=consts.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../../test/consts.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,KAAK,OAAO,EAAuB,MAAM,eAAe,CAAA;AAEjE,QAAA,MAAM,QAAQ,EAAE,OAEf,CAAA;AACD,QAAA,MAAM,QAAQ,EAAE,OAEf,CAAA;AACD,QAAA,MAAM,QAAQ,EAAE,OAEf,CAAA;AACD,QAAA,MAAM,QAAQ,EAAE,OAEf,CAAA;AACD,QAAA,MAAM,cAAc,EAAE,eAMpB,CAAA;AAEF,QAAA,MAAM,YAAY,aAAa,CAAA;AAE/B,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,CAAA"}
|
package/dist/test/consts.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MOCK_API_KEY = exports.passkeyAccount = exports.accountD = exports.accountC = exports.accountB = exports.accountA = void 0;
|
|
4
|
-
const account_abstraction_1 = require("viem/account-abstraction");
|
|
5
|
-
const accounts_1 = require("viem/accounts");
|
|
6
|
-
const accountA = (0, accounts_1.privateKeyToAccount)('0x2be89d993f98bbaab8b83f1a2830cb9414e19662967c7ba2a0f43d2a9125bd6d');
|
|
7
|
-
exports.accountA = accountA;
|
|
8
|
-
const accountB = (0, accounts_1.privateKeyToAccount)('0x39e2fec1a04c088f939d81de8f1abebdebf899a6cfb9968f9b663a7afba8301b');
|
|
9
|
-
exports.accountB = accountB;
|
|
10
|
-
const accountC = (0, accounts_1.privateKeyToAccount)('0xb63c74af219a3949cf95f5e3a3d20b0137425de053bb03e5cc0f46fe0d19f22f');
|
|
11
|
-
exports.accountC = accountC;
|
|
12
|
-
const accountD = (0, accounts_1.privateKeyToAccount)('0xa4aba81871b7b51fff56bfe441ea7f9a4879dd4bc8ce8c15fdb06dc92e63d1d7');
|
|
13
|
-
exports.accountD = accountD;
|
|
14
|
-
const passkeyAccount = (0, account_abstraction_1.toWebAuthnAccount)({
|
|
15
|
-
credential: {
|
|
16
|
-
id: '9IwX9n6cn-l9SzqFzfQXvDHRuTM',
|
|
17
|
-
publicKey: '0x580a9af0569ad3905b26a703201b358aa0904236642ebe79b22a19d00d3737637d46f725a5427ae45a9569259bf67e1e16b187d7b3ad1ed70138c4f0409677d1',
|
|
18
|
-
},
|
|
19
|
-
});
|
|
20
|
-
exports.passkeyAccount = passkeyAccount;
|
|
21
|
-
const MOCK_API_KEY = 'MOCK_KEY';
|
|
22
|
-
exports.MOCK_API_KEY = MOCK_API_KEY;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../test/utils/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,MAAM,CAAA;AAIjC,iBAAS,UAAU,CAAC,KAAK,EAAE,KAAK,UAU/B;AAED,iBAAS,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAE7D;AAED,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,CAAA"}
|
package/dist/test/utils/utils.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getForkUrl = getForkUrl;
|
|
4
|
-
exports.assertNotNull = assertNotNull;
|
|
5
|
-
const chains_1 = require("viem/chains");
|
|
6
|
-
const vitest_1 = require("vitest");
|
|
7
|
-
function getForkUrl(chain) {
|
|
8
|
-
// @ts-expect-error
|
|
9
|
-
const alchemyApiKey = import.meta.env.VITE_ALCHEMY_API_KEY;
|
|
10
|
-
if (!alchemyApiKey) {
|
|
11
|
-
throw new Error('VITE_ALCHEMY_API_KEY is not set');
|
|
12
|
-
}
|
|
13
|
-
if (chain.id === chains_1.base.id) {
|
|
14
|
-
return `https://base-mainnet.g.alchemy.com/v2/${alchemyApiKey}`;
|
|
15
|
-
}
|
|
16
|
-
throw new Error(`Unsupported chain: ${chain.id}`);
|
|
17
|
-
}
|
|
18
|
-
function assertNotNull(value) {
|
|
19
|
-
(0, vitest_1.expect)(value).not.toBeNull();
|
|
20
|
-
}
|