@0xsequence/wallet-wdk 3.0.0-beta.4 → 3.0.0-beta.6
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/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +24 -0
- package/dist/sequence/manager.d.ts +6 -1
- package/dist/sequence/manager.d.ts.map +1 -1
- package/dist/sequence/manager.js +31 -2
- package/dist/sequence/sessions.d.ts.map +1 -1
- package/dist/sequence/sessions.js +12 -4
- package/dist/sequence/signers.d.ts.map +1 -1
- package/dist/sequence/signers.js +11 -0
- package/package.json +11 -11
- package/src/sequence/manager.ts +42 -1
- package/src/sequence/sessions.ts +13 -4
- package/src/sequence/signers.ts +13 -0
- package/test/authcode-pkce.test.ts +4 -4
- package/test/authcode.test.ts +14 -14
- package/test/constants.ts +8 -7
- package/test/guard.test.ts +8 -8
- package/test/identity-auth-dbs.test.ts +3 -5
- package/test/identity-signer.test.ts +16 -16
- package/test/messages.test.ts +17 -13
- package/test/otp.test.ts +8 -8
- package/test/passkeys.test.ts +4 -4
- package/test/recovery.test.ts +6 -6
- package/test/sessions.test.ts +2 -2
- package/test/setup.ts +1 -1
- package/test/signers-kindof.test.ts +40 -0
- package/test/transactions.test.ts +43 -35
- package/test/wallets.test.ts +42 -38
package/.turbo/turbo-build.log
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# @0xsequence/wallet-wdk
|
|
2
2
|
|
|
3
|
+
## 3.0.0-beta.6
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Fix signer 404 error, minor fixes
|
|
8
|
+
- Updated dependencies
|
|
9
|
+
- @0xsequence/guard@3.0.0-beta.6
|
|
10
|
+
- @0xsequence/identity-instrument@3.0.0-beta.6
|
|
11
|
+
- @0xsequence/relayer@3.0.0-beta.6
|
|
12
|
+
- @0xsequence/wallet-core@3.0.0-beta.6
|
|
13
|
+
- @0xsequence/wallet-primitives@3.0.0-beta.6
|
|
14
|
+
|
|
15
|
+
## 3.0.0-beta.5
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- Beta release for v3
|
|
20
|
+
- Updated dependencies
|
|
21
|
+
- @0xsequence/guard@3.0.0-beta.5
|
|
22
|
+
- @0xsequence/identity-instrument@3.0.0-beta.5
|
|
23
|
+
- @0xsequence/relayer@3.0.0-beta.5
|
|
24
|
+
- @0xsequence/wallet-core@3.0.0-beta.5
|
|
25
|
+
- @0xsequence/wallet-primitives@3.0.0-beta.5
|
|
26
|
+
|
|
3
27
|
## 3.0.0-beta.4
|
|
4
28
|
|
|
5
29
|
### Patch Changes
|
|
@@ -23,6 +23,7 @@ export type ManagerOptions = {
|
|
|
23
23
|
verbose?: boolean;
|
|
24
24
|
extensions?: Extensions.Extensions;
|
|
25
25
|
context?: Context.Context;
|
|
26
|
+
context4337?: Context.Context;
|
|
26
27
|
guest?: Address.Address;
|
|
27
28
|
encryptedPksDb?: CoreSigners.Pk.Encrypted.EncryptedPksDb;
|
|
28
29
|
managerDb?: Db.Wallets;
|
|
@@ -40,6 +41,7 @@ export type ManagerOptions = {
|
|
|
40
41
|
bundlers?: Bundler.Bundler[];
|
|
41
42
|
guardUrl?: string;
|
|
42
43
|
guardAddresses?: Record<GuardRole, Address.Address>;
|
|
44
|
+
nonWitnessableSigners?: Address.Address[];
|
|
43
45
|
defaultGuardTopology?: Config.Topology;
|
|
44
46
|
defaultRecoverySettings?: RecoverySettings;
|
|
45
47
|
multiInjectedProviderDiscovery?: boolean;
|
|
@@ -89,6 +91,7 @@ export declare const ManagerOptionsDefaults: {
|
|
|
89
91
|
networks: Network.Network[];
|
|
90
92
|
relayers: () => Relayer.LocalRelayer[];
|
|
91
93
|
bundlers: never[];
|
|
94
|
+
nonWitnessableSigners: Address.Address[];
|
|
92
95
|
guardUrl: string;
|
|
93
96
|
guardAddresses: Record<GuardRole, Address.Address>;
|
|
94
97
|
defaultGuardTopology: Config.NestedLeaf;
|
|
@@ -147,6 +150,7 @@ export declare function applyManagerOptionsDefaults(options?: ManagerOptions): {
|
|
|
147
150
|
verbose: boolean;
|
|
148
151
|
extensions: Extensions.Extensions;
|
|
149
152
|
context: Context.Context;
|
|
153
|
+
context4337: Context.Context;
|
|
150
154
|
guest: Address.Address;
|
|
151
155
|
encryptedPksDb: CoreSigners.Pk.Encrypted.EncryptedPksDb;
|
|
152
156
|
managerDb: Db.Wallets;
|
|
@@ -164,10 +168,10 @@ export declare function applyManagerOptionsDefaults(options?: ManagerOptions): {
|
|
|
164
168
|
bundlers: Bundler.Bundler[];
|
|
165
169
|
guardUrl: string;
|
|
166
170
|
guardAddresses: Record<GuardRole, Address.Address>;
|
|
171
|
+
nonWitnessableSigners: Address.Address[];
|
|
167
172
|
defaultGuardTopology: Config.Topology;
|
|
168
173
|
defaultRecoverySettings: RecoverySettings;
|
|
169
174
|
multiInjectedProviderDiscovery: boolean;
|
|
170
|
-
context4337: Context.Context;
|
|
171
175
|
defaultSessionsTopology: Omit<Config.SapientSignerLeaf, "imageHash" | "address">;
|
|
172
176
|
};
|
|
173
177
|
export type RecoverySettings = {
|
|
@@ -195,6 +199,7 @@ export type Sequence = {
|
|
|
195
199
|
readonly networks: Network.Network[];
|
|
196
200
|
readonly relayers: Relayer.Relayer[];
|
|
197
201
|
readonly bundlers: Bundler.Bundler[];
|
|
202
|
+
readonly nonWitnessableSigners: ReadonlySet<Address.Address>;
|
|
198
203
|
readonly defaultGuardTopology: Config.Topology;
|
|
199
204
|
readonly defaultRecoverySettings: RecoverySettings;
|
|
200
205
|
readonly guardUrl: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/sequence/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAChF,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAG7C,OAAO,EAAE,MAAM,EAAa,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAA;AAC/F,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AAC5B,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE/C,OAAO,EAGL,OAAO,EAIR,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAEvE,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAgB,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEpD,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB,UAAU,CAAC,EAAE,UAAU,CAAC,UAAU,CAAA;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAA;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,CAAA;IAEvB,cAAc,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,SAAS,CAAC,cAAc,CAAA;IACxD,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAA;IACtB,cAAc,CAAC,EAAE,EAAE,CAAC,YAAY,CAAA;IAChC,YAAY,CAAC,EAAE,EAAE,CAAC,UAAU,CAAA;IAC5B,UAAU,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAA;IACxB,iBAAiB,CAAC,EAAE,EAAE,CAAC,eAAe,CAAA;IACtC,UAAU,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAA;IACxB,UAAU,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAA;IACxB,oBAAoB,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAA;IAE5C,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAE1B,aAAa,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAA;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,CAAA;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;IACxD,QAAQ,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,CAAA;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/sequence/manager.ts"],"names":[],"mappings":"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"}
|
package/dist/sequence/manager.js
CHANGED
|
@@ -2,7 +2,8 @@ import { Signers as CoreSigners, State } from '@0xsequence/wallet-core';
|
|
|
2
2
|
import { Relayer } from '@0xsequence/relayer';
|
|
3
3
|
import { IdentityInstrument } from '@0xsequence/identity-instrument';
|
|
4
4
|
import { createAttestationVerifyingFetch } from '@0xsequence/tee-verifier';
|
|
5
|
-
import { Constants, Context, Extensions, Network } from '@0xsequence/wallet-primitives';
|
|
5
|
+
import { Config, Constants, Context, Extensions, Network } from '@0xsequence/wallet-primitives';
|
|
6
|
+
import { Address } from 'ox';
|
|
6
7
|
import * as Db from '../dbs/index.js';
|
|
7
8
|
import { Cron } from './cron.js';
|
|
8
9
|
import { Devices } from './devices.js';
|
|
@@ -45,6 +46,7 @@ export const ManagerOptionsDefaults = {
|
|
|
45
46
|
return [];
|
|
46
47
|
},
|
|
47
48
|
bundlers: [],
|
|
49
|
+
nonWitnessableSigners: [],
|
|
48
50
|
guardUrl: 'https://guard.sequence.app',
|
|
49
51
|
guardAddresses: {
|
|
50
52
|
wallet: '0x26f3D30F41FA897309Ae804A2AFf15CEb1dA5742',
|
|
@@ -98,11 +100,37 @@ export const CreateWalletOptionsDefaults = {
|
|
|
98
100
|
useGuard: false,
|
|
99
101
|
};
|
|
100
102
|
export function applyManagerOptionsDefaults(options) {
|
|
101
|
-
|
|
103
|
+
const merged = {
|
|
102
104
|
...ManagerOptionsDefaults,
|
|
103
105
|
...options,
|
|
104
106
|
identity: { ...ManagerOptionsDefaults.identity, ...options?.identity },
|
|
105
107
|
};
|
|
108
|
+
// Merge and normalize non-witnessable signers.
|
|
109
|
+
// We always include the sessions extension address for the active extensions set.
|
|
110
|
+
const nonWitnessable = new Set();
|
|
111
|
+
for (const address of ManagerOptionsDefaults.nonWitnessableSigners ?? []) {
|
|
112
|
+
nonWitnessable.add(address.toLowerCase());
|
|
113
|
+
}
|
|
114
|
+
for (const address of options?.nonWitnessableSigners ?? []) {
|
|
115
|
+
nonWitnessable.add(address.toLowerCase());
|
|
116
|
+
}
|
|
117
|
+
nonWitnessable.add(merged.extensions.sessions.toLowerCase());
|
|
118
|
+
// Include static signer leaves from the guard topology (e.g. recovery guard signer),
|
|
119
|
+
// but ignore the placeholder address that is later replaced per-role.
|
|
120
|
+
if (merged.defaultGuardTopology) {
|
|
121
|
+
const guardTopologySigners = Config.getSigners(merged.defaultGuardTopology);
|
|
122
|
+
for (const signer of guardTopologySigners.signers) {
|
|
123
|
+
if (Address.isEqual(signer, Constants.PlaceholderAddress)) {
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
nonWitnessable.add(signer.toLowerCase());
|
|
127
|
+
}
|
|
128
|
+
for (const signer of guardTopologySigners.sapientSigners) {
|
|
129
|
+
nonWitnessable.add(signer.address.toLowerCase());
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
merged.nonWitnessableSigners = Array.from(nonWitnessable);
|
|
133
|
+
return merged;
|
|
106
134
|
}
|
|
107
135
|
export class Manager {
|
|
108
136
|
shared;
|
|
@@ -242,6 +270,7 @@ export class Manager {
|
|
|
242
270
|
networks: ops.networks,
|
|
243
271
|
relayers,
|
|
244
272
|
bundlers: ops.bundlers,
|
|
273
|
+
nonWitnessableSigners: new Set((ops.nonWitnessableSigners ?? []).map((address) => address.toLowerCase())),
|
|
245
274
|
defaultGuardTopology: ops.defaultGuardTopology,
|
|
246
275
|
defaultRecoverySettings: ops.defaultRecoverySettings,
|
|
247
276
|
guardUrl: ops.guardUrl,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/sequence/sessions.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/sequence/sessions.ts"],"names":[],"mappings":"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"}
|
|
@@ -143,11 +143,19 @@ export class Sessions {
|
|
|
143
143
|
continue;
|
|
144
144
|
}
|
|
145
145
|
const iHandler = this.shared.handlers.get(identityKind);
|
|
146
|
-
if (iHandler) {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
146
|
+
if (!iHandler) {
|
|
147
|
+
continue;
|
|
148
|
+
}
|
|
149
|
+
if (identityKind === Kinds.LocalDevice) {
|
|
150
|
+
const hasLocalDevice = await this.shared.modules.devices.has(identitySigner);
|
|
151
|
+
if (!hasLocalDevice) {
|
|
152
|
+
console.warn('Identity signer not on this device, skipping', identitySigner);
|
|
153
|
+
continue;
|
|
154
|
+
}
|
|
150
155
|
}
|
|
156
|
+
handler = iHandler;
|
|
157
|
+
identitySignerAddress = identitySigner;
|
|
158
|
+
break;
|
|
151
159
|
}
|
|
152
160
|
if (!handler || !identitySignerAddress) {
|
|
153
161
|
throw new Error('No identity handler or address found');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signers.d.ts","sourceRoot":"","sources":["../../src/sequence/signers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,CAAA;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,IAAI,EAAS,cAAc,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAEvF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,sBAAsB,CAEpF;AAmBD,qBAAa,OAAO;IACN,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAErC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"signers.d.ts","sourceRoot":"","sources":["../../src/sequence/signers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,CAAA;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,IAAI,EAAS,cAAc,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAEvF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,sBAAsB,CAEpF;AAmBD,qBAAa,OAAO;IACN,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAErC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IA2DzG,YAAY,CAChB,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,OAAO,EAAE,CAAC,OAAO,CAAC,OAAO,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;QAAC,SAAS,EAAE,GAAG,CAAC,GAAG,CAAA;KAAE,CAAC,EAAE,GAC9E,OAAO,CAAC,cAAc,EAAE,CAAC;CAoB7B"}
|
package/dist/sequence/signers.js
CHANGED
|
@@ -37,6 +37,17 @@ export class Signers {
|
|
|
37
37
|
if (Array.from(Object.values(this.shared.sequence.guardAddresses)).some((guardAddress) => Address.isEqual(guardAddress, address))) {
|
|
38
38
|
return Kinds.Guard;
|
|
39
39
|
}
|
|
40
|
+
// Passkeys are a sapient signer module: the address alone identifies the kind.
|
|
41
|
+
// Metadata (credential id, public key, etc.) is loaded later by the PasskeysHandler
|
|
42
|
+
// via the witness payload, so we can skip the witness probe here.
|
|
43
|
+
if (Address.isEqual(this.shared.sequence.extensions.passkeys, address)) {
|
|
44
|
+
return Kinds.LoginPasskey;
|
|
45
|
+
}
|
|
46
|
+
// Some signers are known to never publish a witness record (e.g. module signers).
|
|
47
|
+
// Skip probing the Sessions/Witness endpoint for them.
|
|
48
|
+
if (this.shared.sequence.nonWitnessableSigners.has(address.toLowerCase())) {
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
40
51
|
// We need to use the state provider (and witness) this will tell us the kind of signer
|
|
41
52
|
// NOTICE: This looks expensive, but this operation should be cached by the state provider
|
|
42
53
|
const witness = await (imageHash
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@0xsequence/wallet-wdk",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.6",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"publishConfig": {
|
|
@@ -14,14 +14,14 @@
|
|
|
14
14
|
}
|
|
15
15
|
},
|
|
16
16
|
"devDependencies": {
|
|
17
|
-
"@types/node": "^
|
|
18
|
-
"@vitest/coverage-v8": "^4.0.
|
|
17
|
+
"@types/node": "^25.0.2",
|
|
18
|
+
"@vitest/coverage-v8": "^4.0.15",
|
|
19
19
|
"dotenv": "^17.2.3",
|
|
20
20
|
"fake-indexeddb": "^6.2.5",
|
|
21
|
-
"happy-dom": "^20.0.
|
|
21
|
+
"happy-dom": "^20.0.11",
|
|
22
22
|
"typescript": "^5.9.3",
|
|
23
|
-
"vitest": "^4.0.
|
|
24
|
-
"@repo/typescript-config": "^0.0.1-beta.
|
|
23
|
+
"vitest": "^4.0.15",
|
|
24
|
+
"@repo/typescript-config": "^0.0.1-beta.1"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@0xsequence/tee-verifier": "^0.1.2",
|
|
@@ -29,11 +29,11 @@
|
|
|
29
29
|
"jwt-decode": "^4.0.0",
|
|
30
30
|
"ox": "^0.9.17",
|
|
31
31
|
"uuid": "^13.0.0",
|
|
32
|
-
"@0xsequence/
|
|
33
|
-
"@0xsequence/
|
|
34
|
-
"@0xsequence/
|
|
35
|
-
"@0xsequence/
|
|
36
|
-
"@0xsequence/wallet-
|
|
32
|
+
"@0xsequence/guard": "^3.0.0-beta.6",
|
|
33
|
+
"@0xsequence/identity-instrument": "^3.0.0-beta.6",
|
|
34
|
+
"@0xsequence/relayer": "^3.0.0-beta.6",
|
|
35
|
+
"@0xsequence/wallet-primitives": "^3.0.0-beta.6",
|
|
36
|
+
"@0xsequence/wallet-core": "^3.0.0-beta.6"
|
|
37
37
|
},
|
|
38
38
|
"scripts": {
|
|
39
39
|
"build": "tsc",
|
package/src/sequence/manager.ts
CHANGED
|
@@ -37,6 +37,7 @@ export type ManagerOptions = {
|
|
|
37
37
|
|
|
38
38
|
extensions?: Extensions.Extensions
|
|
39
39
|
context?: Context.Context
|
|
40
|
+
context4337?: Context.Context
|
|
40
41
|
guest?: Address.Address
|
|
41
42
|
|
|
42
43
|
encryptedPksDb?: CoreSigners.Pk.Encrypted.EncryptedPksDb
|
|
@@ -58,6 +59,8 @@ export type ManagerOptions = {
|
|
|
58
59
|
guardUrl?: string
|
|
59
60
|
guardAddresses?: Record<GuardRole, Address.Address>
|
|
60
61
|
|
|
62
|
+
nonWitnessableSigners?: Address.Address[]
|
|
63
|
+
|
|
61
64
|
// The default guard topology MUST have a placeholder address for the guard address
|
|
62
65
|
defaultGuardTopology?: Config.Topology
|
|
63
66
|
defaultRecoverySettings?: RecoverySettings
|
|
@@ -122,6 +125,8 @@ export const ManagerOptionsDefaults = {
|
|
|
122
125
|
},
|
|
123
126
|
bundlers: [],
|
|
124
127
|
|
|
128
|
+
nonWitnessableSigners: [] as Address.Address[],
|
|
129
|
+
|
|
125
130
|
guardUrl: 'https://guard.sequence.app',
|
|
126
131
|
guardAddresses: {
|
|
127
132
|
wallet: '0x26f3D30F41FA897309Ae804A2AFf15CEb1dA5742',
|
|
@@ -182,11 +187,41 @@ export const CreateWalletOptionsDefaults = {
|
|
|
182
187
|
}
|
|
183
188
|
|
|
184
189
|
export function applyManagerOptionsDefaults(options?: ManagerOptions) {
|
|
185
|
-
|
|
190
|
+
const merged = {
|
|
186
191
|
...ManagerOptionsDefaults,
|
|
187
192
|
...options,
|
|
188
193
|
identity: { ...ManagerOptionsDefaults.identity, ...options?.identity },
|
|
189
194
|
}
|
|
195
|
+
|
|
196
|
+
// Merge and normalize non-witnessable signers.
|
|
197
|
+
// We always include the sessions extension address for the active extensions set.
|
|
198
|
+
const nonWitnessable = new Set<string>()
|
|
199
|
+
for (const address of ManagerOptionsDefaults.nonWitnessableSigners ?? []) {
|
|
200
|
+
nonWitnessable.add(address.toLowerCase())
|
|
201
|
+
}
|
|
202
|
+
for (const address of options?.nonWitnessableSigners ?? []) {
|
|
203
|
+
nonWitnessable.add(address.toLowerCase())
|
|
204
|
+
}
|
|
205
|
+
nonWitnessable.add(merged.extensions.sessions.toLowerCase())
|
|
206
|
+
|
|
207
|
+
// Include static signer leaves from the guard topology (e.g. recovery guard signer),
|
|
208
|
+
// but ignore the placeholder address that is later replaced per-role.
|
|
209
|
+
if (merged.defaultGuardTopology) {
|
|
210
|
+
const guardTopologySigners = Config.getSigners(merged.defaultGuardTopology)
|
|
211
|
+
for (const signer of guardTopologySigners.signers) {
|
|
212
|
+
if (Address.isEqual(signer, Constants.PlaceholderAddress)) {
|
|
213
|
+
continue
|
|
214
|
+
}
|
|
215
|
+
nonWitnessable.add(signer.toLowerCase())
|
|
216
|
+
}
|
|
217
|
+
for (const signer of guardTopologySigners.sapientSigners) {
|
|
218
|
+
nonWitnessable.add(signer.address.toLowerCase())
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
merged.nonWitnessableSigners = Array.from(nonWitnessable) as Address.Address[]
|
|
223
|
+
|
|
224
|
+
return merged
|
|
190
225
|
}
|
|
191
226
|
|
|
192
227
|
export type RecoverySettings = {
|
|
@@ -220,6 +255,8 @@ export type Sequence = {
|
|
|
220
255
|
readonly relayers: Relayer.Relayer[]
|
|
221
256
|
readonly bundlers: Bundler.Bundler[]
|
|
222
257
|
|
|
258
|
+
readonly nonWitnessableSigners: ReadonlySet<Address.Address>
|
|
259
|
+
|
|
223
260
|
readonly defaultGuardTopology: Config.Topology
|
|
224
261
|
readonly defaultRecoverySettings: RecoverySettings
|
|
225
262
|
|
|
@@ -407,6 +444,10 @@ export class Manager {
|
|
|
407
444
|
relayers,
|
|
408
445
|
bundlers: ops.bundlers,
|
|
409
446
|
|
|
447
|
+
nonWitnessableSigners: new Set(
|
|
448
|
+
(ops.nonWitnessableSigners ?? []).map((address) => address.toLowerCase() as Address.Address),
|
|
449
|
+
),
|
|
450
|
+
|
|
410
451
|
defaultGuardTopology: ops.defaultGuardTopology,
|
|
411
452
|
defaultRecoverySettings: ops.defaultRecoverySettings,
|
|
412
453
|
|
package/src/sequence/sessions.ts
CHANGED
|
@@ -336,11 +336,20 @@ export class Sessions implements SessionsInterface {
|
|
|
336
336
|
continue
|
|
337
337
|
}
|
|
338
338
|
const iHandler = this.shared.handlers.get(identityKind)
|
|
339
|
-
if (iHandler) {
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
339
|
+
if (!iHandler) {
|
|
340
|
+
continue
|
|
341
|
+
}
|
|
342
|
+
if (identityKind === Kinds.LocalDevice) {
|
|
343
|
+
const hasLocalDevice = await this.shared.modules.devices.has(identitySigner)
|
|
344
|
+
if (!hasLocalDevice) {
|
|
345
|
+
console.warn('Identity signer not on this device, skipping', identitySigner)
|
|
346
|
+
continue
|
|
347
|
+
}
|
|
343
348
|
}
|
|
349
|
+
|
|
350
|
+
handler = iHandler
|
|
351
|
+
identitySignerAddress = identitySigner
|
|
352
|
+
break
|
|
344
353
|
}
|
|
345
354
|
|
|
346
355
|
if (!handler || !identitySignerAddress) {
|
package/src/sequence/signers.ts
CHANGED
|
@@ -48,6 +48,19 @@ export class Signers {
|
|
|
48
48
|
return Kinds.Guard
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
+
// Passkeys are a sapient signer module: the address alone identifies the kind.
|
|
52
|
+
// Metadata (credential id, public key, etc.) is loaded later by the PasskeysHandler
|
|
53
|
+
// via the witness payload, so we can skip the witness probe here.
|
|
54
|
+
if (Address.isEqual(this.shared.sequence.extensions.passkeys, address)) {
|
|
55
|
+
return Kinds.LoginPasskey
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Some signers are known to never publish a witness record (e.g. module signers).
|
|
59
|
+
// Skip probing the Sessions/Witness endpoint for them.
|
|
60
|
+
if (this.shared.sequence.nonWitnessableSigners.has(address.toLowerCase() as Address.Address)) {
|
|
61
|
+
return undefined
|
|
62
|
+
}
|
|
63
|
+
|
|
51
64
|
// We need to use the state provider (and witness) this will tell us the kind of signer
|
|
52
65
|
// NOTICE: This looks expensive, but this operation should be cached by the state provider
|
|
53
66
|
const witness = await (imageHash
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
|
2
2
|
import { Address, Hex, Bytes } from 'ox'
|
|
3
3
|
import * as Identity from '@0xsequence/identity-instrument'
|
|
4
|
-
import { AuthCodePkceHandler } from '../src/sequence/handlers/authcode-pkce'
|
|
5
|
-
import { Signatures } from '../src/sequence/signatures'
|
|
6
|
-
import * as Db from '../src/dbs'
|
|
7
|
-
import { IdentitySigner } from '../src/identity/signer'
|
|
4
|
+
import { AuthCodePkceHandler } from '../src/sequence/handlers/authcode-pkce.js'
|
|
5
|
+
import { Signatures } from '../src/sequence/signatures.js'
|
|
6
|
+
import * as Db from '../src/dbs/index.js'
|
|
7
|
+
import { IdentitySigner } from '../src/identity/signer.js'
|
|
8
8
|
|
|
9
9
|
describe('AuthCodePkceHandler', () => {
|
|
10
10
|
let handler: AuthCodePkceHandler
|
package/test/authcode.test.ts
CHANGED
|
@@ -2,11 +2,11 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
|
|
2
2
|
import { Address, Hex, Bytes } from 'ox'
|
|
3
3
|
import { Network, Payload } from '@0xsequence/wallet-primitives'
|
|
4
4
|
import { IdentityInstrument, IdentityType, KeyType, AuthCodeChallenge } from '@0xsequence/identity-instrument'
|
|
5
|
-
import { AuthCodeHandler } from '../src/sequence/handlers/authcode'
|
|
6
|
-
import { Signatures } from '../src/sequence/signatures'
|
|
7
|
-
import * as Db from '../src/dbs'
|
|
8
|
-
import { IdentitySigner } from '../src/identity/signer'
|
|
9
|
-
import { BaseSignatureRequest } from '../src/sequence/types/signature-request'
|
|
5
|
+
import { AuthCodeHandler } from '../src/sequence/handlers/authcode.js'
|
|
6
|
+
import { Signatures } from '../src/sequence/signatures.js'
|
|
7
|
+
import * as Db from '../src/dbs/index.js'
|
|
8
|
+
import { IdentitySigner } from '../src/identity/signer.js'
|
|
9
|
+
import { BaseSignatureRequest } from '../src/sequence/types/signature-request.js'
|
|
10
10
|
|
|
11
11
|
// Mock the global crypto API
|
|
12
12
|
const mockCryptoSubtle = {
|
|
@@ -254,7 +254,7 @@ describe('AuthCodeHandler', () => {
|
|
|
254
254
|
|
|
255
255
|
// Verify commitment was saved
|
|
256
256
|
expect(mockAuthCommitmentsSet).toHaveBeenCalledOnce()
|
|
257
|
-
const commitmentCall = mockAuthCommitmentsSet.mock.calls[0][0]
|
|
257
|
+
const commitmentCall = mockAuthCommitmentsSet.mock.calls[0]![0]!
|
|
258
258
|
|
|
259
259
|
expect(commitmentCall.kind).toBe('google-pkce')
|
|
260
260
|
expect(commitmentCall.signer).toBe(signer)
|
|
@@ -279,7 +279,7 @@ describe('AuthCodeHandler', () => {
|
|
|
279
279
|
const result = await authCodeHandler.commitAuth('/target', false, customState)
|
|
280
280
|
|
|
281
281
|
// Verify commitment uses custom state
|
|
282
|
-
const commitmentCall = mockAuthCommitmentsSet.mock.calls[0][0]
|
|
282
|
+
const commitmentCall = mockAuthCommitmentsSet.mock.calls[0]![0]!
|
|
283
283
|
expect(commitmentCall.id).toBe(customState)
|
|
284
284
|
expect(result).toContain(`state=${customState}`)
|
|
285
285
|
})
|
|
@@ -287,7 +287,7 @@ describe('AuthCodeHandler', () => {
|
|
|
287
287
|
it('Should generate random state when not provided', async () => {
|
|
288
288
|
const result = await authCodeHandler.commitAuth('/target', false)
|
|
289
289
|
|
|
290
|
-
const commitmentCall = mockAuthCommitmentsSet.mock.calls[0][0]
|
|
290
|
+
const commitmentCall = mockAuthCommitmentsSet.mock.calls[0]![0]!
|
|
291
291
|
expect(commitmentCall.id).toBeDefined()
|
|
292
292
|
expect(typeof commitmentCall.id).toBe('string')
|
|
293
293
|
expect(commitmentCall.id.startsWith('0x')).toBe(true)
|
|
@@ -316,7 +316,7 @@ describe('AuthCodeHandler', () => {
|
|
|
316
316
|
it('Should create commitment without signer', async () => {
|
|
317
317
|
const result = await authCodeHandler.commitAuth('/target', true)
|
|
318
318
|
|
|
319
|
-
const commitmentCall = mockAuthCommitmentsSet.mock.calls[0][0]
|
|
319
|
+
const commitmentCall = mockAuthCommitmentsSet.mock.calls[0]![0]!
|
|
320
320
|
expect(commitmentCall.signer).toBeUndefined()
|
|
321
321
|
expect(commitmentCall.isSignUp).toBe(true)
|
|
322
322
|
})
|
|
@@ -348,12 +348,12 @@ describe('AuthCodeHandler', () => {
|
|
|
348
348
|
|
|
349
349
|
// Verify commitVerifier was called
|
|
350
350
|
expect(mockCommitVerifier).toHaveBeenCalledOnce()
|
|
351
|
-
const commitVerifierCall = mockCommitVerifier.mock.calls[0]
|
|
351
|
+
const commitVerifierCall = mockCommitVerifier.mock.calls[0]!
|
|
352
352
|
expect(commitVerifierCall[1]).toBeInstanceOf(AuthCodeChallenge)
|
|
353
353
|
|
|
354
354
|
// Verify completeAuth was called
|
|
355
355
|
expect(mockCompleteAuth).toHaveBeenCalledOnce()
|
|
356
|
-
const completeAuthCall = mockCompleteAuth.mock.calls[0]
|
|
356
|
+
const completeAuthCall = mockCompleteAuth.mock.calls[0]!
|
|
357
357
|
expect(completeAuthCall[1]).toBeInstanceOf(AuthCodeChallenge)
|
|
358
358
|
|
|
359
359
|
// Verify results
|
|
@@ -490,7 +490,7 @@ describe('AuthCodeHandler', () => {
|
|
|
490
490
|
expect(window.location.href).toContain('https://accounts.google.com/o/oauth2/v2/auth')
|
|
491
491
|
expect(mockAuthCommitmentsSet).toHaveBeenCalledOnce()
|
|
492
492
|
|
|
493
|
-
const commitmentCall = mockAuthCommitmentsSet.mock.calls[0][0]
|
|
493
|
+
const commitmentCall = mockAuthCommitmentsSet.mock.calls[0]![0]!
|
|
494
494
|
expect(commitmentCall.target).toBe(window.location.pathname)
|
|
495
495
|
expect(commitmentCall.isSignUp).toBe(false)
|
|
496
496
|
expect(commitmentCall.signer).toBe(testWallet)
|
|
@@ -711,14 +711,14 @@ describe('AuthCodeHandler', () => {
|
|
|
711
711
|
// Test signup flow
|
|
712
712
|
await authCodeHandler.commitAuth('/signup-target', true, 'signup-state')
|
|
713
713
|
|
|
714
|
-
const signupCall = mockAuthCommitmentsSet.mock.calls[0][0]
|
|
714
|
+
const signupCall = mockAuthCommitmentsSet.mock.calls[0]![0]!
|
|
715
715
|
expect(signupCall.isSignUp).toBe(true)
|
|
716
716
|
expect(signupCall.target).toBe('/signup-target')
|
|
717
717
|
|
|
718
718
|
// Test login flow
|
|
719
719
|
await authCodeHandler.commitAuth('/login-target', false, 'login-state')
|
|
720
720
|
|
|
721
|
-
const loginCall = mockAuthCommitmentsSet.mock.calls[1][0]
|
|
721
|
+
const loginCall = mockAuthCommitmentsSet.mock.calls[1]![0]!
|
|
722
722
|
expect(loginCall.isSignUp).toBe(false)
|
|
723
723
|
expect(loginCall.target).toBe('/login-target')
|
|
724
724
|
})
|
package/test/constants.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { config as dotenvConfig } from 'dotenv'
|
|
2
2
|
import { Abi, Address, Provider, RpcTransport } from 'ox'
|
|
3
|
-
import { Manager, ManagerOptions, ManagerOptionsDefaults } from '../src/sequence'
|
|
4
|
-
import { mockEthereum } from './setup'
|
|
5
|
-
import { Signers as CoreSigners, State,
|
|
6
|
-
import
|
|
3
|
+
import { Manager, ManagerOptions, ManagerOptionsDefaults } from '../src/sequence/index.js'
|
|
4
|
+
import { mockEthereum } from './setup.js'
|
|
5
|
+
import { Signers as CoreSigners, State, Bundler } from '@0xsequence/wallet-core'
|
|
6
|
+
import { Relayer } from '@0xsequence/relayer'
|
|
7
|
+
import * as Db from '../src/dbs/index.js'
|
|
7
8
|
import { Network } from '@0xsequence/wallet-primitives'
|
|
8
9
|
|
|
9
10
|
const envFile = process.env.CI ? '.env.test' : '.env.test.local'
|
|
@@ -81,16 +82,16 @@ export function newRemoteManager(
|
|
|
81
82
|
: `_testrun_${testIdCounter}`
|
|
82
83
|
|
|
83
84
|
let relayers: Relayer.Relayer[] = []
|
|
84
|
-
let bundlers:
|
|
85
|
+
let bundlers: Bundler.Bundler[] = []
|
|
85
86
|
|
|
86
87
|
if (remoteManagerOptions.network.relayerPk) {
|
|
87
88
|
const provider = Provider.from(RpcTransport.fromHttp(remoteManagerOptions.network.rpcUrl))
|
|
88
|
-
relayers.push(new Relayer.
|
|
89
|
+
relayers.push(new Relayer.PkRelayer(remoteManagerOptions.network.relayerPk as `0x${string}`, provider))
|
|
89
90
|
}
|
|
90
91
|
|
|
91
92
|
if (remoteManagerOptions.network.bundlerUrl) {
|
|
92
93
|
bundlers.push(
|
|
93
|
-
new
|
|
94
|
+
new Bundler.Bundlers.PimlicoBundler(
|
|
94
95
|
remoteManagerOptions.network.bundlerUrl,
|
|
95
96
|
Provider.from(RpcTransport.fromHttp(remoteManagerOptions.network.rpcUrl)),
|
|
96
97
|
),
|
package/test/guard.test.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
|
2
|
-
import { Manager } from '../src/sequence'
|
|
3
|
-
import { GuardHandler } from '../src/sequence/handlers/guard'
|
|
2
|
+
import { Manager } from '../src/sequence/index.js'
|
|
3
|
+
import { GuardHandler } from '../src/sequence/handlers/guard.js'
|
|
4
4
|
import { Address, Bytes, Hex, TypedData } from 'ox'
|
|
5
5
|
import { Config, Constants, Network, Payload } from '@0xsequence/wallet-primitives'
|
|
6
|
-
import { Kinds } from '../src/sequence/types/signer'
|
|
7
|
-
import { newManager } from './constants'
|
|
8
|
-
import { GuardRole, Guards } from '../src/sequence/guards'
|
|
6
|
+
import { Kinds } from '../src/sequence/types/signer.js'
|
|
7
|
+
import { newManager } from './constants.js'
|
|
8
|
+
import { GuardRole, Guards } from '../src/sequence/guards.js'
|
|
9
9
|
|
|
10
10
|
// Mock fetch globally for guard API calls
|
|
11
11
|
const mockFetch = vi.fn()
|
|
@@ -163,7 +163,7 @@ describe('GuardHandler', () => {
|
|
|
163
163
|
expect(result).toBe(true)
|
|
164
164
|
expect(mockAddSignature).toHaveBeenCalledOnce()
|
|
165
165
|
|
|
166
|
-
const [requestId, signatureData] = mockAddSignature.mock.calls[0]
|
|
166
|
+
const [requestId, signatureData] = mockAddSignature.mock.calls[0]!
|
|
167
167
|
expect(requestId).toBe('test-request-id')
|
|
168
168
|
expect(signatureData.address).toBe(guards.getByRole('wallet').address)
|
|
169
169
|
expect(signatureData.signature).toBeDefined()
|
|
@@ -247,7 +247,7 @@ describe('GuardHandler', () => {
|
|
|
247
247
|
expect(mockCallback).toHaveBeenCalledOnce()
|
|
248
248
|
expect(mockAddSignature).toHaveBeenCalledOnce()
|
|
249
249
|
|
|
250
|
-
const [requestId, signatureData] = mockAddSignature.mock.calls[0]
|
|
250
|
+
const [requestId, signatureData] = mockAddSignature.mock.calls[0]!
|
|
251
251
|
expect(requestId).toBe('test-request-id')
|
|
252
252
|
expect(signatureData.address).toBe(guards.getByRole('wallet').address)
|
|
253
253
|
expect(signatureData.signature).toBeDefined()
|
|
@@ -300,7 +300,7 @@ describe('GuardHandler', () => {
|
|
|
300
300
|
signatures: [],
|
|
301
301
|
})
|
|
302
302
|
|
|
303
|
-
expect(mockFetch.mock.calls[0][0]).toContain(customGuardUrl)
|
|
303
|
+
expect(mockFetch.mock.calls[0]![0]).toContain(customGuardUrl)
|
|
304
304
|
|
|
305
305
|
await customManager.stop()
|
|
306
306
|
})
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
|
2
|
-
import { Manager } from '../src/sequence'
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import * as Db from '../src/dbs'
|
|
6
|
-
import { LOCAL_RPC_URL } from './constants'
|
|
2
|
+
import { Manager } from '../src/sequence/index.js'
|
|
3
|
+
import * as Db from '../src/dbs/index.js'
|
|
4
|
+
import { LOCAL_RPC_URL } from './constants.js'
|
|
7
5
|
import { State } from '@0xsequence/wallet-core'
|
|
8
6
|
import { Network } from '@0xsequence/wallet-primitives'
|
|
9
7
|
|