@graphprotocol/hypergraph 0.0.14 → 0.2.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/dist/Entity.d.ts +69 -0
- package/dist/Entity.d.ts.map +1 -0
- package/dist/Entity.js +174 -0
- package/dist/Entity.js.map +1 -0
- package/dist/connect/identity-encryption.d.ts +3 -3
- package/dist/connect/identity-encryption.d.ts.map +1 -1
- package/dist/connect/identity-encryption.js +18 -52
- package/dist/connect/identity-encryption.js.map +1 -1
- package/dist/connect/login.d.ts +1 -1
- package/dist/connect/login.d.ts.map +1 -1
- package/dist/connect/login.js +2 -2
- package/dist/connect/login.js.map +1 -1
- package/dist/connect/parse-auth-params.js +1 -1
- package/dist/connect/parse-auth-params.js.map +1 -1
- package/dist/connect/smart-account.d.ts.map +1 -1
- package/dist/connect/smart-account.js +2 -2
- package/dist/connect/smart-account.js.map +1 -1
- package/dist/connect/types.d.ts +0 -1
- package/dist/connect/types.d.ts.map +1 -1
- package/dist/connect/types.js +0 -1
- package/dist/connect/types.js.map +1 -1
- package/dist/entity/findMany.js +1 -1
- package/dist/entity/findMany.js.map +1 -1
- package/dist/entity/update.js +1 -1
- package/dist/entity/update.js.map +1 -1
- package/dist/identity/create-identity-keys.d.ts +3 -0
- package/dist/identity/create-identity-keys.d.ts.map +1 -0
- package/dist/identity/create-identity-keys.js +20 -0
- package/dist/identity/create-identity-keys.js.map +1 -0
- package/dist/identity/get-verified-identity.d.ts +1 -1
- package/dist/identity/get-verified-identity.d.ts.map +1 -1
- package/dist/identity/get-verified-identity.js +17 -4
- package/dist/identity/get-verified-identity.js.map +1 -1
- package/dist/identity/identity-encryption.js +1 -1
- package/dist/identity/identity-encryption.js.map +1 -1
- package/dist/identity/index.d.ts +1 -1
- package/dist/identity/index.d.ts.map +1 -1
- package/dist/identity/index.js +1 -1
- package/dist/identity/index.js.map +1 -1
- package/dist/identity/login.d.ts +38 -0
- package/dist/identity/login.d.ts.map +1 -0
- package/dist/identity/login.js +241 -0
- package/dist/identity/login.js.map +1 -0
- package/dist/identity/prove-ownership.d.ts +1 -1
- package/dist/identity/prove-ownership.d.ts.map +1 -1
- package/dist/identity/prove-ownership.js +1 -1
- package/dist/identity/prove-ownership.js.map +1 -1
- package/dist/inboxes/index.d.ts +1 -1
- package/dist/inboxes/index.d.ts.map +1 -1
- package/dist/inboxes/index.js +1 -1
- package/dist/inboxes/index.js.map +1 -1
- package/dist/inboxes/message-validation.d.ts.map +1 -1
- package/dist/inboxes/message-validation.js +2 -2
- package/dist/inboxes/message-validation.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/mapping/Mapping.d.ts +418 -0
- package/dist/mapping/Mapping.d.ts.map +1 -0
- package/dist/mapping/Mapping.js +554 -0
- package/dist/mapping/Mapping.js.map +1 -0
- package/dist/mapping/Utils.d.ts +74 -0
- package/dist/mapping/Utils.d.ts.map +1 -0
- package/dist/mapping/Utils.js +144 -0
- package/dist/mapping/Utils.js.map +1 -0
- package/dist/mapping/index.d.ts +3 -0
- package/dist/mapping/index.d.ts.map +1 -0
- package/dist/mapping/index.js +3 -0
- package/dist/mapping/index.js.map +1 -0
- package/dist/messages/types.d.ts +1 -1
- package/dist/messages/types.d.ts.map +1 -1
- package/dist/messages/types.js +2 -2
- package/dist/messages/types.js.map +1 -1
- package/dist/space-events/apply-event.d.ts +1 -1
- package/dist/space-events/apply-event.d.ts.map +1 -1
- package/dist/space-events/apply-event.js +1 -1
- package/dist/space-events/apply-event.js.map +1 -1
- package/dist/space-info/decrypt-space-info.d.ts +1 -1
- package/dist/space-info/decrypt-space-info.d.ts.map +1 -1
- package/dist/space-info/decrypt-space-info.js.map +1 -1
- package/dist/store-connect.d.ts.map +1 -1
- package/dist/store-connect.js.map +1 -1
- package/dist/store.d.ts +4 -2
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +23 -3
- package/dist/store.js.map +1 -1
- package/dist/type/type.d.ts +0 -1
- package/dist/type/type.d.ts.map +1 -1
- package/dist/type/type.js +0 -1
- package/dist/type/type.js.map +1 -1
- package/dist/types.d.ts +0 -13
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/hasArrayField.d.ts +2 -0
- package/dist/utils/hasArrayField.d.ts.map +1 -0
- package/dist/utils/hasArrayField.js +5 -0
- package/dist/utils/hasArrayField.js.map +1 -0
- package/package.json +4 -3
- package/src/connect/identity-encryption.ts +33 -69
- package/src/connect/login.ts +3 -3
- package/src/connect/parse-auth-params.ts +1 -1
- package/src/connect/smart-account.ts +12 -12
- package/src/connect/types.ts +0 -1
- package/src/entity/findMany.ts +2 -2
- package/src/entity/update.ts +1 -1
- package/src/identity/get-verified-identity.ts +17 -2
- package/src/identity/identity-encryption.ts +1 -1
- package/src/identity/index.ts +1 -1
- package/src/identity/prove-ownership.ts +2 -3
- package/src/inboxes/index.ts +1 -1
- package/src/inboxes/message-validation.ts +4 -0
- package/src/index.ts +2 -1
- package/src/mapping/Mapping.ts +771 -0
- package/src/mapping/Utils.ts +156 -0
- package/src/mapping/index.ts +2 -0
- package/src/messages/types.ts +1 -1
- package/src/space-events/apply-event.ts +5 -2
- package/src/space-info/decrypt-space-info.ts +1 -7
- package/src/store-connect.ts +1 -1
- package/src/store.ts +39 -9
- package/src/type/type.ts +0 -1
- package/src/types.ts +0 -15
package/dist/Entity.d.ts
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { DocHandle } from '@automerge/automerge-repo';
|
|
2
|
+
import * as VariantSchema from '@effect/experimental/VariantSchema';
|
|
3
|
+
import * as Schema from 'effect/Schema';
|
|
4
|
+
declare const Class: <Self = never>(identifier: string) => <const Fields extends VariantSchema.Struct.Fields>(fields: Fields & VariantSchema.Struct.Validate<Fields, "select" | "insert" | "update">, annotations?: Schema.Annotations.Schema<Self, readonly []> | undefined) => [Self] extends [never] ? "Missing `Self` generic - use `class Self extends Class<Self>()({ ... })`" : VariantSchema.Class<Self, Fields, VariantSchema.ExtractFields<"select", Fields, true> extends infer T ? { [K in keyof T]: VariantSchema.ExtractFields<"select", Fields, true>[K]; } : never, Schema.Struct.Type<VariantSchema.ExtractFields<"select", Fields, true> extends infer T_1 ? { [K in keyof T_1]: VariantSchema.ExtractFields<"select", Fields, true>[K]; } : never>, Schema.Struct.Encoded<VariantSchema.ExtractFields<"select", Fields, true> extends infer T_2 ? { [K in keyof T_2]: VariantSchema.ExtractFields<"select", Fields, true>[K]; } : never>, Schema.Schema.Context<(VariantSchema.ExtractFields<"select", Fields, true> extends infer T_3 ? { [K in keyof T_3]: VariantSchema.ExtractFields<"select", Fields, true>[K]; } : never)[keyof VariantSchema.ExtractFields<"select", Fields, true>]>, Schema.Struct.Constructor<VariantSchema.ExtractFields<"select", Fields, true> extends infer T_4 ? { [K in keyof T_4]: VariantSchema.ExtractFields<"select", Fields, true>[K]; } : never>> & {
|
|
5
|
+
readonly select: Schema.Struct<VariantSchema.ExtractFields<"select", Fields, false> extends infer T_5 ? { [K_1 in keyof T_5]: VariantSchema.ExtractFields<"select", Fields, false>[K_1]; } : never>;
|
|
6
|
+
readonly insert: Schema.Struct<VariantSchema.ExtractFields<"insert", Fields, false> extends infer T_6 ? { [K_2 in keyof T_6]: VariantSchema.ExtractFields<"insert", Fields, false>[K_2]; } : never>;
|
|
7
|
+
readonly update: Schema.Struct<VariantSchema.ExtractFields<"update", Fields, false> extends infer T_7 ? { [K_3 in keyof T_7]: VariantSchema.ExtractFields<"update", Fields, false>[K_3]; } : never>;
|
|
8
|
+
};
|
|
9
|
+
export { Class };
|
|
10
|
+
export type Any = Schema.Schema.Any & {
|
|
11
|
+
readonly fields: Schema.Struct.Fields;
|
|
12
|
+
readonly insert: Schema.Schema.Any;
|
|
13
|
+
readonly update: Schema.Schema.Any;
|
|
14
|
+
};
|
|
15
|
+
export type AnyNoContext = Schema.Schema.AnyNoContext & {
|
|
16
|
+
readonly fields: Schema.Struct.Fields;
|
|
17
|
+
readonly insert: Schema.Schema.AnyNoContext;
|
|
18
|
+
readonly update: Schema.Schema.AnyNoContext;
|
|
19
|
+
};
|
|
20
|
+
export type Update<S extends Any> = S['update'];
|
|
21
|
+
export type Insert<S extends Any> = S['insert'];
|
|
22
|
+
export interface Generated<S extends Schema.Schema.All | Schema.PropertySignature.All> extends VariantSchema.Field<{
|
|
23
|
+
readonly select: S;
|
|
24
|
+
}> {
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* A field that represents a column that is generated by the store.
|
|
28
|
+
*/
|
|
29
|
+
export declare const Generated: <S extends Schema.Schema.All | Schema.PropertySignature.All>(schema: S) => Generated<S>;
|
|
30
|
+
export declare const Text: typeof Schema.String;
|
|
31
|
+
export declare const Number: typeof Schema.Number;
|
|
32
|
+
export declare const Checkbox: typeof Schema.Boolean;
|
|
33
|
+
export type DocumentContent = {
|
|
34
|
+
entities?: Record<string, unknown>;
|
|
35
|
+
};
|
|
36
|
+
declare const EntityNotFoundError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
|
|
37
|
+
readonly _tag: "EntityNotFoundError";
|
|
38
|
+
} & Readonly<A>;
|
|
39
|
+
export declare class EntityNotFoundError extends EntityNotFoundError_base<{
|
|
40
|
+
id: string;
|
|
41
|
+
type: AnyNoContext;
|
|
42
|
+
cause?: unknown;
|
|
43
|
+
}> {
|
|
44
|
+
}
|
|
45
|
+
export type Entity<S extends AnyNoContext> = Schema.Schema.Type<S> & {
|
|
46
|
+
type: string;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Creates an entity model of given type and stores it in the repo.
|
|
50
|
+
*/
|
|
51
|
+
export declare const create: <const S extends AnyNoContext>(handle: DocHandle<DocumentContent>, type: S) => (data: Readonly<Schema.Schema.Type<Insert<S>>>) => Entity<S>;
|
|
52
|
+
/**
|
|
53
|
+
* Update an existing entity model of given type in the repo.
|
|
54
|
+
*/
|
|
55
|
+
export declare const update: <const S extends AnyNoContext>(handle: DocHandle<DocumentContent>, type: S) => (id: string, data: Schema.Simplify<Partial<Schema.Schema.Type<Update<S>>>>) => Entity<S>;
|
|
56
|
+
/**
|
|
57
|
+
* Deletes the exiting entity from the repo.
|
|
58
|
+
*/
|
|
59
|
+
declare const delete$: (handle: DocHandle<DocumentContent>) => (id: string) => boolean;
|
|
60
|
+
export { delete$ as delete };
|
|
61
|
+
/**
|
|
62
|
+
* Queries for a list of entities of the given type from the repo.
|
|
63
|
+
*/
|
|
64
|
+
export declare function findMany<const S extends AnyNoContext>(handle: DocHandle<DocumentContent>, type: S): Readonly<Array<Entity<S>>>;
|
|
65
|
+
/**
|
|
66
|
+
* Find the entity of the given type, with the given id, from the repo.
|
|
67
|
+
*/
|
|
68
|
+
export declare const findOne: <const S extends AnyNoContext>(handle: DocHandle<DocumentContent>, type: S) => (id: string) => Entity<S> | undefined;
|
|
69
|
+
//# sourceMappingURL=Entity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Entity.d.ts","sourceRoot":"","sources":["../src/Entity.ts"],"names":[],"mappings":"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"}
|
package/dist/Entity.js
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import * as VariantSchema from '@effect/experimental/VariantSchema';
|
|
2
|
+
import * as Data from 'effect/Data';
|
|
3
|
+
import * as Schema from 'effect/Schema';
|
|
4
|
+
import { generateId } from './utils/generateId.js';
|
|
5
|
+
const {
|
|
6
|
+
Class,
|
|
7
|
+
Field
|
|
8
|
+
// FieldExcept,
|
|
9
|
+
// FieldOnly,
|
|
10
|
+
// Struct,
|
|
11
|
+
// Union,
|
|
12
|
+
// extract,
|
|
13
|
+
// fieldEvolve,
|
|
14
|
+
// fieldFromKey
|
|
15
|
+
} = /*#__PURE__*/VariantSchema.make({
|
|
16
|
+
variants: ['select', 'insert', 'update'],
|
|
17
|
+
defaultVariant: 'select'
|
|
18
|
+
});
|
|
19
|
+
export { Class };
|
|
20
|
+
/**
|
|
21
|
+
* A field that represents a column that is generated by the store.
|
|
22
|
+
*/
|
|
23
|
+
export const Generated = schema => Field({
|
|
24
|
+
select: schema
|
|
25
|
+
});
|
|
26
|
+
export const Text = Schema.String;
|
|
27
|
+
// biome-ignore lint/suspicious/noShadowRestrictedNames: is part of a namespaces module and therefor ok
|
|
28
|
+
export const Number = Schema.Number;
|
|
29
|
+
export const Checkbox = Schema.Boolean;
|
|
30
|
+
export class EntityNotFoundError extends /*#__PURE__*/Data.TaggedError('EntityNotFoundError') {}
|
|
31
|
+
/**
|
|
32
|
+
* Creates an entity model of given type and stores it in the repo.
|
|
33
|
+
*/
|
|
34
|
+
export const create = (handle, type) => {
|
|
35
|
+
// TODO: what's the right way to get the name of the type?
|
|
36
|
+
// @ts-expect-error name is defined
|
|
37
|
+
const typeName = type.name;
|
|
38
|
+
const entityId = generateId();
|
|
39
|
+
const encode = Schema.encodeSync(type.insert);
|
|
40
|
+
return data => {
|
|
41
|
+
const encoded = encode(data);
|
|
42
|
+
// apply changes to the repo -> adds the entity to the repo entites document
|
|
43
|
+
handle.change(doc => {
|
|
44
|
+
doc.entities ??= {};
|
|
45
|
+
doc.entities[entityId] = {
|
|
46
|
+
...encoded,
|
|
47
|
+
'@@types@@': [typeName]
|
|
48
|
+
};
|
|
49
|
+
});
|
|
50
|
+
return {
|
|
51
|
+
id: entityId,
|
|
52
|
+
...encoded,
|
|
53
|
+
type: typeName
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Update an existing entity model of given type in the repo.
|
|
59
|
+
*/
|
|
60
|
+
export const update = (handle, type) => {
|
|
61
|
+
const validate = Schema.validateSync(Schema.partial(type.update));
|
|
62
|
+
const encode = Schema.encodeSync(type.update);
|
|
63
|
+
const decode = Schema.decodeUnknownSync(type.update);
|
|
64
|
+
// TODO: what's the right way to get the name of the type?
|
|
65
|
+
// @ts-expect-error name is defined
|
|
66
|
+
const typeName = type.name;
|
|
67
|
+
return (id, data) => {
|
|
68
|
+
validate(data);
|
|
69
|
+
// apply changes to the repo -> updates the existing entity to the repo entites document
|
|
70
|
+
let updated = undefined;
|
|
71
|
+
handle.change(doc => {
|
|
72
|
+
if (doc.entities === undefined) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
// TODO: Fetch the pre-decoded value from the local cache.
|
|
76
|
+
const entity = doc.entities[id] ?? undefined;
|
|
77
|
+
if (entity === undefined || typeof entity !== 'object') {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
// TODO: Try to get a diff of the entitiy properties and only override the changed ones.
|
|
81
|
+
updated = {
|
|
82
|
+
...decode(entity),
|
|
83
|
+
...data
|
|
84
|
+
};
|
|
85
|
+
doc.entities[id] = {
|
|
86
|
+
...encode(updated),
|
|
87
|
+
'@@types@@': [typeName]
|
|
88
|
+
};
|
|
89
|
+
});
|
|
90
|
+
if (updated === undefined) {
|
|
91
|
+
throw new EntityNotFoundError({
|
|
92
|
+
id,
|
|
93
|
+
type
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
return {
|
|
97
|
+
id,
|
|
98
|
+
type: typeName,
|
|
99
|
+
...updated
|
|
100
|
+
};
|
|
101
|
+
};
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* Deletes the exiting entity from the repo.
|
|
105
|
+
*/
|
|
106
|
+
const delete$ = handle => {
|
|
107
|
+
return id => {
|
|
108
|
+
let result = false;
|
|
109
|
+
// apply changes to the repo -> removes the existing entity by its id
|
|
110
|
+
handle.change(doc => {
|
|
111
|
+
if (doc.entities?.[id] !== undefined) {
|
|
112
|
+
delete doc.entities[id];
|
|
113
|
+
result = true;
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
return result;
|
|
117
|
+
};
|
|
118
|
+
};
|
|
119
|
+
export { delete$ as delete };
|
|
120
|
+
/**
|
|
121
|
+
* Queries for a list of entities of the given type from the repo.
|
|
122
|
+
*/
|
|
123
|
+
export function findMany(handle, type) {
|
|
124
|
+
const decode = Schema.decodeUnknownSync(type);
|
|
125
|
+
// TODO: what's the right way to get the name of the type?
|
|
126
|
+
// @ts-expect-error name is defined
|
|
127
|
+
const typeName = type.name;
|
|
128
|
+
// TODO: Instead of this insane filtering logic, we should be keeping track of the entities in
|
|
129
|
+
// an index and store the decoded valeus instead of re-decoding over and over again.
|
|
130
|
+
const entities = handle.docSync()?.entities ?? {};
|
|
131
|
+
const filtered = [];
|
|
132
|
+
for (const id in entities) {
|
|
133
|
+
const entity = entities[id];
|
|
134
|
+
if (typeof entity === 'object' && entity != null && '@@types@@' in entity) {
|
|
135
|
+
const types = entity['@@types@@'];
|
|
136
|
+
if (Array.isArray(types) && types.includes(typeName)) {
|
|
137
|
+
filtered.push({
|
|
138
|
+
...decode({
|
|
139
|
+
...entity,
|
|
140
|
+
id
|
|
141
|
+
}),
|
|
142
|
+
type: typeName
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return filtered;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Find the entity of the given type, with the given id, from the repo.
|
|
151
|
+
*/
|
|
152
|
+
export const findOne = (handle, type) => id => {
|
|
153
|
+
const decode = Schema.decodeUnknownSync(type);
|
|
154
|
+
// TODO: what's the right way to get the name of the type?
|
|
155
|
+
// @ts-expect-error name is defined
|
|
156
|
+
const typeName = type.name;
|
|
157
|
+
// TODO: Instead of this insane filtering logic, we should be keeping track of the entities in
|
|
158
|
+
// an index and store the decoded valeus instead of re-decoding over and over again.
|
|
159
|
+
const entity = handle.docSync()?.entities?.[id];
|
|
160
|
+
if (typeof entity === 'object' && entity != null && '@@types@@' in entity) {
|
|
161
|
+
const types = entity['@@types@@'];
|
|
162
|
+
if (Array.isArray(types) && types.includes(typeName)) {
|
|
163
|
+
return {
|
|
164
|
+
...decode({
|
|
165
|
+
...entity,
|
|
166
|
+
id
|
|
167
|
+
}),
|
|
168
|
+
type: typeName
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
return undefined;
|
|
173
|
+
};
|
|
174
|
+
//# sourceMappingURL=Entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Entity.js","names":["VariantSchema","Data","Schema","generateId","Class","Field","make","variants","defaultVariant","Generated","schema","select","Text","String","Number","Checkbox","Boolean","EntityNotFoundError","TaggedError","create","handle","type","typeName","name","entityId","encode","encodeSync","insert","data","encoded","change","doc","entities","id","update","validate","validateSync","partial","decode","decodeUnknownSync","updated","undefined","entity","delete$","result","delete","findMany","docSync","filtered","types","Array","isArray","includes","push","findOne"],"sources":["../src/Entity.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { IdentityKeys, PrivateAppIdentity, Signer } from './types.js';
|
|
2
|
+
export type AppIdentityForEncryption = Omit<PrivateAppIdentity, 'sessionToken' | 'sessionTokenExpires' | 'accountAddress'>;
|
|
2
3
|
export declare const encryptIdentity: (signer: Signer, keys: IdentityKeys) => Promise<{
|
|
3
4
|
ciphertext: string;
|
|
4
5
|
nonce: string;
|
|
5
6
|
}>;
|
|
6
7
|
export declare const decryptIdentity: (signer: Signer, ciphertext: string, nonce: string) => Promise<IdentityKeys>;
|
|
7
|
-
export declare const encryptAppIdentity: (
|
|
8
|
+
export declare const encryptAppIdentity: (appIdentity: AppIdentityForEncryption, keys: IdentityKeys) => Promise<{
|
|
8
9
|
ciphertext: string;
|
|
9
|
-
nonce: string;
|
|
10
10
|
}>;
|
|
11
|
-
export declare const decryptAppIdentity: (
|
|
11
|
+
export declare const decryptAppIdentity: (ciphertext: string, keys: IdentityKeys) => Promise<AppIdentityForEncryption>;
|
|
12
12
|
//# sourceMappingURL=identity-encryption.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity-encryption.d.ts","sourceRoot":"","sources":["../../src/connect/identity-encryption.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"identity-encryption.d.ts","sourceRoot":"","sources":["../../src/connect/identity-encryption.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAE3E,MAAM,MAAM,wBAAwB,GAAG,IAAI,CACzC,kBAAkB,EAClB,cAAc,GAAG,qBAAqB,GAAG,gBAAgB,CAC1D,CAAC;AA2DF,eAAO,MAAM,eAAe,GAC1B,QAAQ,MAAM,EACd,MAAM,YAAY,KACjB,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CA0B/C,CAAC;AAEF,eAAO,MAAM,eAAe,GAAU,QAAQ,MAAM,EAAE,YAAY,MAAM,EAAE,OAAO,MAAM,KAAG,OAAO,CAAC,YAAY,CAmC7G,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,aAAa,wBAAwB,EACrC,MAAM,YAAY,KACjB,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAoBhC,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAU,YAAY,MAAM,EAAE,MAAM,YAAY,KAAG,OAAO,CAAC,wBAAwB,CA0BjH,CAAC"}
|
|
@@ -2,6 +2,7 @@ import { gcm } from '@noble/ciphers/aes';
|
|
|
2
2
|
import { randomBytes } from '@noble/ciphers/webcrypto';
|
|
3
3
|
import { hkdf } from '@noble/hashes/hkdf';
|
|
4
4
|
import { sha256 } from '@noble/hashes/sha256';
|
|
5
|
+
import { cryptoBoxSeal, cryptoBoxSealOpen } from '@serenity-kit/noble-sodium';
|
|
5
6
|
import { verifyMessage } from 'viem';
|
|
6
7
|
import { bytesToHex, canonicalize, hexToBytes } from '../utils/index.js';
|
|
7
8
|
// Adapted from the XMTP approach to encrypt keys
|
|
@@ -93,7 +94,7 @@ export const decryptIdentity = async (signer, ciphertext, nonce) => {
|
|
|
93
94
|
let keysMsg;
|
|
94
95
|
try {
|
|
95
96
|
keysMsg = await decrypt(ciphertext, secretKey);
|
|
96
|
-
} catch (
|
|
97
|
+
} catch (_e) {
|
|
97
98
|
// See https://github.com/xmtp/xmtp-js/blob/8d6e5a65813902926baac8150a648587acbaad92/sdks/js-sdk/src/keystore/providers/NetworkKeyManager.ts#L142-L146
|
|
98
99
|
if (secretKey.length !== 65) {
|
|
99
100
|
throw new Error('Expected 65 bytes before trying a different recovery byte');
|
|
@@ -117,70 +118,35 @@ export const decryptIdentity = async (signer, ciphertext, nonce) => {
|
|
|
117
118
|
signaturePrivateKey
|
|
118
119
|
};
|
|
119
120
|
};
|
|
120
|
-
export const encryptAppIdentity = async (
|
|
121
|
-
const nonce = randomBytes(32);
|
|
122
|
-
const message = signatureMessage(nonce);
|
|
123
|
-
const signature = await signer.signMessage(message);
|
|
124
|
-
// Check that the signature is valid
|
|
125
|
-
const valid = await verifyMessage({
|
|
126
|
-
address: await signer.getAddress(),
|
|
127
|
-
message,
|
|
128
|
-
signature
|
|
129
|
-
});
|
|
130
|
-
if (!valid) {
|
|
131
|
-
throw new Error('Invalid signature');
|
|
132
|
-
}
|
|
133
|
-
const secretKey = hexToBytes(signature);
|
|
121
|
+
export const encryptAppIdentity = async (appIdentity, keys) => {
|
|
134
122
|
// We use a simple plaintext encoding:
|
|
135
123
|
// Hex keys separated by newlines
|
|
136
|
-
const keysTxt = [
|
|
124
|
+
const keysTxt = [appIdentity.encryptionPublicKey, appIdentity.encryptionPrivateKey, appIdentity.signaturePublicKey, appIdentity.signaturePrivateKey, appIdentity.address, appIdentity.addressPrivateKey, appIdentity.permissionId].join('\n');
|
|
137
125
|
const keysMsg = new TextEncoder().encode(keysTxt);
|
|
138
|
-
const ciphertext =
|
|
126
|
+
const ciphertext = bytesToHex(cryptoBoxSeal({
|
|
127
|
+
message: keysMsg,
|
|
128
|
+
publicKey: hexToBytes(keys.encryptionPublicKey)
|
|
129
|
+
}));
|
|
139
130
|
return {
|
|
140
|
-
ciphertext
|
|
141
|
-
nonce: bytesToHex(nonce)
|
|
131
|
+
ciphertext
|
|
142
132
|
};
|
|
143
133
|
};
|
|
144
|
-
export const decryptAppIdentity = async (
|
|
145
|
-
const
|
|
146
|
-
const
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
message,
|
|
151
|
-
signature
|
|
134
|
+
export const decryptAppIdentity = async (ciphertext, keys) => {
|
|
135
|
+
const ciphertextBytes = hexToBytes(ciphertext);
|
|
136
|
+
const keysMsg = cryptoBoxSealOpen({
|
|
137
|
+
ciphertext: ciphertextBytes,
|
|
138
|
+
privateKey: hexToBytes(keys.encryptionPrivateKey),
|
|
139
|
+
publicKey: hexToBytes(keys.encryptionPublicKey)
|
|
152
140
|
});
|
|
153
|
-
if (!valid) {
|
|
154
|
-
throw new Error('Invalid signature');
|
|
155
|
-
}
|
|
156
|
-
const secretKey = hexToBytes(signature);
|
|
157
|
-
let keysMsg;
|
|
158
|
-
try {
|
|
159
|
-
keysMsg = await decrypt(ciphertext, secretKey);
|
|
160
|
-
} catch (e) {
|
|
161
|
-
// See https://github.com/xmtp/xmtp-js/blob/8d6e5a65813902926baac8150a648587acbaad92/sdks/js-sdk/src/keystore/providers/NetworkKeyManager.ts#L142-L146
|
|
162
|
-
if (secretKey.length !== 65) {
|
|
163
|
-
throw new Error('Expected 65 bytes before trying a different recovery byte');
|
|
164
|
-
}
|
|
165
|
-
// Try the other version of recovery byte, either +27 or -27
|
|
166
|
-
const lastByte = secretKey[secretKey.length - 1];
|
|
167
|
-
let newSecret = secretKey.slice(0, secretKey.length - 1);
|
|
168
|
-
if (lastByte < 27) {
|
|
169
|
-
newSecret = new Uint8Array([...newSecret, lastByte + 27]);
|
|
170
|
-
} else {
|
|
171
|
-
newSecret = new Uint8Array([...newSecret, lastByte - 27]);
|
|
172
|
-
}
|
|
173
|
-
keysMsg = await decrypt(ciphertext, newSecret);
|
|
174
|
-
}
|
|
175
141
|
const keysTxt = new TextDecoder().decode(keysMsg);
|
|
176
|
-
const [encryptionPublicKey, encryptionPrivateKey, signaturePublicKey, signaturePrivateKey,
|
|
142
|
+
const [encryptionPublicKey, encryptionPrivateKey, signaturePublicKey, signaturePrivateKey, address, addressPrivateKey, permissionId] = keysTxt.split('\n');
|
|
177
143
|
return {
|
|
178
144
|
encryptionPublicKey,
|
|
179
145
|
encryptionPrivateKey,
|
|
180
146
|
signaturePublicKey,
|
|
181
147
|
signaturePrivateKey,
|
|
182
|
-
address
|
|
183
|
-
addressPrivateKey
|
|
148
|
+
address,
|
|
149
|
+
addressPrivateKey,
|
|
184
150
|
permissionId
|
|
185
151
|
};
|
|
186
152
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity-encryption.js","names":["gcm","randomBytes","hkdf","sha256","verifyMessage","bytesToHex","canonicalize","hexToBytes","hkdfDeriveKey","secret","salt","encrypt","msg","hkdfSalt","gcmNonce","derivedKey","aes","ciphertext","ciphertextJson","aes256GcmHkdfSha256","payload","TextEncoder","encode","decrypt","TextDecoder","decode","JSON","parse","signatureMessage","nonce","encryptIdentity","signer","keys","message","signature","signMessage","valid","address","getAddress","Error","secretKey","keysTxt","encryptionPublicKey","encryptionPrivateKey","signaturePublicKey","signaturePrivateKey","join","keysMsg","decryptIdentity","
|
|
1
|
+
{"version":3,"file":"identity-encryption.js","names":["gcm","randomBytes","hkdf","sha256","cryptoBoxSeal","cryptoBoxSealOpen","verifyMessage","bytesToHex","canonicalize","hexToBytes","hkdfDeriveKey","secret","salt","encrypt","msg","hkdfSalt","gcmNonce","derivedKey","aes","ciphertext","ciphertextJson","aes256GcmHkdfSha256","payload","TextEncoder","encode","decrypt","TextDecoder","decode","JSON","parse","signatureMessage","nonce","encryptIdentity","signer","keys","message","signature","signMessage","valid","address","getAddress","Error","secretKey","keysTxt","encryptionPublicKey","encryptionPrivateKey","signaturePublicKey","signaturePrivateKey","join","keysMsg","decryptIdentity","_e","length","lastByte","newSecret","slice","Uint8Array","split","encryptAppIdentity","appIdentity","addressPrivateKey","permissionId","publicKey","decryptAppIdentity","ciphertextBytes","privateKey"],"sources":["../../src/connect/identity-encryption.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/connect/login.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { SmartAccountClient } from 'permissionless';
|
|
|
2
2
|
import type { Address, Chain, WalletClient } from 'viem';
|
|
3
3
|
import type { IdentityKeys, Signer, Storage } from './types.js';
|
|
4
4
|
export declare function identityExists(accountAddress: string, syncServerUri: string): Promise<boolean>;
|
|
5
|
-
export declare function signup(signer: Signer,
|
|
5
|
+
export declare function signup(signer: Signer, _walletClient: WalletClient, smartAccountClient: SmartAccountClient, accountAddress: Address, syncServerUri: string, addressStorage: Storage, keysStorage: Storage, identityToken: string, chain: Chain, rpcUrl: string): Promise<{
|
|
6
6
|
accountAddress: `0x${string}`;
|
|
7
7
|
keys: IdentityKeys;
|
|
8
8
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/connect/login.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAO,YAAY,EAAE,MAAM,MAAM,CAAC;AAgB9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAEhE,wBAAsB,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,oBAKjF;AAED,wBAAsB,MAAM,CAC1B,MAAM,EAAE,MAAM,EACd,
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/connect/login.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAO,YAAY,EAAE,MAAM,MAAM,CAAC;AAgB9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAEhE,wBAAsB,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,oBAKjF;AAED,wBAAsB,MAAM,CAC1B,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,YAAY,EAC3B,kBAAkB,EAAE,kBAAkB,EACtC,cAAc,EAAE,OAAO,EACvB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,OAAO,EACvB,WAAW,EAAE,OAAO,EACpB,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM;;;GA8Cf;AAED,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,OAAO,EACvB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,OAAO,EACvB,WAAW,EAAE,OAAO,EACpB,aAAa,EAAE,MAAM;;;GAwBtB;AAmCD,wBAAsB,KAAK,CAAC,EAC1B,YAAY,EACZ,MAAM,EACN,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,MAAM,EACN,KAAK,GACN,EAAE;IACD,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;CACd,iBAkCA"}
|
package/dist/connect/login.js
CHANGED
|
@@ -8,12 +8,12 @@ import { createIdentityKeys } from './create-identity-keys.js';
|
|
|
8
8
|
import { decryptIdentity, encryptIdentity } from './identity-encryption.js';
|
|
9
9
|
import { addSmartAccountOwner, getSmartAccountWalletClient, isSmartAccountDeployed, smartAccountNeedsUpdate, updateLegacySmartAccount } from './smart-account.js';
|
|
10
10
|
export async function identityExists(accountAddress, syncServerUri) {
|
|
11
|
-
const res = await fetch(new URL(`/identity?accountAddress=${accountAddress}`, syncServerUri), {
|
|
11
|
+
const res = await fetch(new URL(`/connect/identity?accountAddress=${accountAddress}`, syncServerUri), {
|
|
12
12
|
method: 'GET'
|
|
13
13
|
});
|
|
14
14
|
return res.status === 200;
|
|
15
15
|
}
|
|
16
|
-
export async function signup(signer,
|
|
16
|
+
export async function signup(signer, _walletClient, smartAccountClient, accountAddress, syncServerUri, addressStorage, keysStorage, identityToken, chain, rpcUrl) {
|
|
17
17
|
const keys = createIdentityKeys();
|
|
18
18
|
const {
|
|
19
19
|
ciphertext,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","names":["Schema","privateKeyToAccount","proveIdentityOwnership","Messages","store","loadAccountAddress","storeAccountAddress","storeKeys","createIdentityKeys","decryptIdentity","encryptIdentity","addSmartAccountOwner","getSmartAccountWalletClient","isSmartAccountDeployed","smartAccountNeedsUpdate","updateLegacySmartAccount","identityExists","accountAddress","syncServerUri","res","fetch","URL","method","status","signup","signer","
|
|
1
|
+
{"version":3,"file":"login.js","names":["Schema","privateKeyToAccount","proveIdentityOwnership","Messages","store","loadAccountAddress","storeAccountAddress","storeKeys","createIdentityKeys","decryptIdentity","encryptIdentity","addSmartAccountOwner","getSmartAccountWalletClient","isSmartAccountDeployed","smartAccountNeedsUpdate","updateLegacySmartAccount","identityExists","accountAddress","syncServerUri","res","fetch","URL","method","status","signup","signer","_walletClient","smartAccountClient","addressStorage","keysStorage","identityToken","chain","rpcUrl","keys","ciphertext","nonce","localAccount","signaturePrivateKey","address","localSmartAccountClient","owner","accountProof","keyProof","req","keyBox","getAddress","signaturePublicKey","encryptionPublicKey","headers","body","JSON","stringify","Error","decoded","decodeUnknownSync","ResponseConnectCreateIdentity","json","success","restoreKeys","ResponseIdentityEncrypted","getAndUpdateSmartAccount","walletClient","accountAddressFromStorage","smartAccountParams","smartAccountWalletClient","account","console","log","login","authData","exists","send","type","sessionToken"],"sources":["../../src/connect/login.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-auth-params.js","names":["Effect","Either","Schema","ConnectAuthPayload","FailedToParseConnectAuthUrl","decodePayload","decodeEither","parseAuthParams","params","data","redirect","nonce","fail","message","length","result","isLeft","succeed","payload","right","
|
|
1
|
+
{"version":3,"file":"parse-auth-params.js","names":["Effect","Either","Schema","ConnectAuthPayload","FailedToParseConnectAuthUrl","decodePayload","decodeEither","parseAuthParams","params","data","redirect","nonce","fail","message","length","result","isLeft","succeed","payload","right","_error"],"sources":["../../src/connect/parse-auth-params.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,SAASC,kBAAkB,EAAEC,2BAA2B,QAAQ,aAAa;AAQ7E,MAAMC,aAAa,gBAAGH,MAAM,CAACI,YAAY,CAACH,kBAAkB,CAAC;AAE7D,OAAO,MAAMI,eAAe,GAC1BC,MAA0B,IACsF;EAChH,MAAM;IAAEC,IAAI;IAAEC,QAAQ;IAAEC;EAAK,CAAE,GAAGH,MAAM;EACxC,IAAI,CAACC,IAAI,IAAI,CAACC,QAAQ,IAAI,CAACC,KAAK,EAAE;IAChC,OAAOX,MAAM,CAACY,IAAI,CAAC,IAAIR,2BAA2B,CAAC;MAAES,OAAO,EAAE;IAA0C,CAAE,CAAC,CAAC;EAC9G;EAEA,IAAIF,KAAK,CAACG,MAAM,KAAK,EAAE,EAAE;IACvB,OAAOd,MAAM,CAACY,IAAI,CAAC,IAAIR,2BAA2B,CAAC;MAAES,OAAO,EAAE;IAAe,CAAE,CAAC,CAAC;EACnF;EAEA,IAAI;IACF,MAAME,MAAM,GAAGV,aAAa,CAACI,IAA0B,CAAC;IAExD,IAAIR,MAAM,CAACe,MAAM,CAACD,MAAM,CAAC,EAAE;MACzB,OAAOf,MAAM,CAACY,IAAI,CAAC,IAAIR,2BAA2B,CAAC;QAAES,OAAO,EAAE;MAAsC,CAAE,CAAC,CAAC;IAC1G;IAEA,OAAOb,MAAM,CAACiB,OAAO,CAAC;MAAEC,OAAO,EAAEH,MAAM,CAACI,KAAK;MAAET,QAAQ;MAAEC;IAAK,CAAE,CAAC;EACnE,CAAC,CAAC,OAAOS,MAAM,EAAE;IACf,OAAOpB,MAAM,CAACY,IAAI,CAAC,IAAIR,2BAA2B,CAAC;MAAES,OAAO,EAAE;IAAsC,CAAE,CAAC,CAAC;EAC1G;AACF,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smart-account.d.ts","sourceRoot":"","sources":["../../src/connect/smart-account.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"smart-account.d.ts","sourceRoot":"","sources":["../../src/connect/smart-account.ts"],"names":[],"mappings":"AAEA,OAAO,EAUL,uBAAuB,EACvB,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,mBAAmB,EACnB,mBAAmB,EAKpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAiD,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAKxG,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,OAAO,EAEZ,KAAK,KAAK,EAKV,KAAK,GAAG,EAGR,KAAK,iBAAiB,EACtB,KAAK,eAAe,EAIpB,KAAK,YAAY,EAClB,MAAM,MAAM,CAAC;AACd,OAAO,EAIL,KAAK,qCAAqC,EAC3C,MAAM,0BAA0B,CAAC;AAalC,eAAO,MAAM,eAAe,qDAAqD,CAAC;AAClF,eAAO,MAAM,eAAe,kDAAkD,CAAC;AA+C/E,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;CAgBtB,CAAC;AAEF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;CAgBvB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,oBAAoB,EAAE,GAAG,CAAC;IAC1B,cAAc,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,GAAG,CAAA;KAAE,EAAE,CAAC;CACxE,CAAC;AAIF,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,GACpB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;IACb,iBAAiB,EAAE,CAAC,KAAK,CAAC,KAAK,SAAS,SAAS,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5G,2BAA2B,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QAAE,IAAI,EAAE,GAAG,CAAA;KAAE,KAAK,OAAO,CAAC,qCAAqC,CAAC,CAAC;IACzG,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE;QAAE,OAAO,EAAE,eAAe,CAAA;KAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CAC1E,CAAC;AAqKF,eAAO,MAAM,sBAAsB,GAAU,oBAAoB,kBAAkB,KAAG,OAAO,CAAC,OAAO,CAKpG,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC;IAC9B,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAKF,eAAO,MAAM,2BAA2B,GAAU,4CAM/C,kBAAkB,KAAG,OAAO,CAAC,kBAAkB,CAmBjD,CAAC;AAGF,eAAO,MAAM,8BAA8B,GACzC,oBAAoB,kBAAkB,EACtC,OAAO,KAAK,EACZ,QAAQ,MAAM,KACb,OAAO,CAAC;IAAE,aAAa,EAAE,OAAO,CAAC;IAAC,yBAAyB,EAAE,OAAO,CAAC;IAAC,mBAAmB,EAAE,OAAO,CAAA;CAAE,CA6CtG,CAAC;AAIF,eAAO,MAAM,uBAAuB,GAClC,oBAAoB,kBAAkB,EACtC,OAAO,KAAK,EACZ,QAAQ,MAAM,KACb,OAAO,CAAC,OAAO,CAYjB,CAAC;AAIF,eAAO,MAAM,wBAAwB,GACnC,oBAAoB,kBAAkB,EACtC,OAAO,KAAK,EACZ,QAAQ,MAAM,KACb,OAAO,CAAC,qCAAqC,GAAG,SAAS,CAyF3D,CAAC;AAmCF,eAAO,MAAM,oBAAoB,GAC/B,oBAAoB,kBAAkB,EACtC,UAAU,OAAO,EACjB,OAAO,KAAK,EACZ,QAAQ,MAAM;;;;;;;;;;;;cA0Cf,CAAC;AAOF,eAAO,MAAM,kBAAkB,GAC7B,OAAO,YAAY,GAAG,iBAAiB,EACvC,gBAAgB,GAAG,EACnB,mBAAmB,GAAG,EACtB,OAAO,KAAK,EACZ,QAAQ,MAAM,EACd,mDAIG;IACD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE;QACP,OAAO,EAAE,GAAG,CAAC;QACb,IAAI,EAAE,UAAU,GAAG,QAAQ,CAAC;KAC7B,EAAE,CAAC;IACJ,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB,KACL,OAAO,CAAC,GAAG,CA2Mb,CAAC;AAKF,eAAO,MAAM,qBAAqB,GAAU,6EAOzC;IACD,cAAc,EAAE,GAAG,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,GAAG,CAAC;IACvB,YAAY,EAAE,GAAG,CAAC;CACnB,KAAG,OAAO,CAAC,kBAAkB,CAkF7B,CAAC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { MAINNET, TESTNET } from '@graphprotocol/grc-20/contracts';
|
|
2
2
|
import { randomBytes } from '@noble/hashes/utils';
|
|
3
|
-
import {
|
|
3
|
+
import { encodeSmartSessionSignature, encodeValidationData, encodeValidatorNonce, getAccount, getEnableSessionDetails, getOwnableValidator, getOwnableValidatorMockSignature, getPermissionId, getSmartSessionsValidator, getSpendingLimitsPolicy, getSudoPolicy, getTimeFramePolicy, getUniversalActionPolicy, getUsageLimitPolicy, getValueLimitPolicy, OWNABLE_VALIDATOR_ADDRESS, RHINESTONE_ATTESTER_ADDRESS, SmartSessionMode } from '@rhinestone/module-sdk';
|
|
4
4
|
import { createSmartAccountClient, encodeInstallModule } from 'permissionless';
|
|
5
5
|
import { toSafeSmartAccount } from 'permissionless/accounts';
|
|
6
6
|
import { getAccountNonce } from 'permissionless/actions';
|
|
7
7
|
import { erc7579Actions } from 'permissionless/actions/erc7579';
|
|
8
8
|
import { createPimlicoClient } from 'permissionless/clients/pimlico';
|
|
9
|
-
import {
|
|
9
|
+
import { ContractFunctionExecutionError, createPublicClient, encodeFunctionData, getAbiItem, http, toBytes, toFunctionSelector, toHex } from 'viem';
|
|
10
10
|
import { entryPoint07Address, getUserOperationHash } from 'viem/account-abstraction';
|
|
11
11
|
import { privateKeyToAccount } from 'viem/accounts';
|
|
12
12
|
import { bytesToHex } from '../utils/hexBytesAddressUtils.js';
|