@graphprotocol/hypergraph 0.0.7 → 0.0.8
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/connect/abis.d.ts +5 -1
- package/dist/connect/abis.d.ts.map +1 -1
- package/dist/connect/abis.js +14 -0
- package/dist/connect/abis.js.map +1 -1
- package/dist/connect/auth-storage.d.ts +1 -0
- package/dist/connect/auth-storage.d.ts.map +1 -1
- package/dist/connect/auth-storage.js +8 -0
- package/dist/connect/auth-storage.js.map +1 -1
- package/dist/connect/login.d.ts +5 -4
- package/dist/connect/login.d.ts.map +1 -1
- package/dist/connect/login.js +26 -41
- package/dist/connect/login.js.map +1 -1
- package/dist/connect/smart-account.d.ts +15 -2
- package/dist/connect/smart-account.d.ts.map +1 -1
- package/dist/connect/smart-account.js +40 -4
- package/dist/connect/smart-account.js.map +1 -1
- package/dist/identity/prove-ownership.d.ts +2 -2
- 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/package.json +1 -1
- package/src/connect/abis.ts +19 -0
- package/src/connect/auth-storage.ts +9 -0
- package/src/connect/login.ts +43 -42
- package/src/connect/smart-account.ts +52 -6
- package/src/identity/prove-ownership.ts +1 -2
package/dist/connect/abis.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abis.d.ts","sourceRoot":"","sources":["../../src/connect/abis.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,8BAA8B,CAAuB;AAC/E,OAAO,qBAAqB,MAAM,sCAAsC,CAAuB;AAE/F,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,CAAC;AAGhD,eAAO,MAAM,oBAAoB;;;;;;;;;;GA2BhC,CAAC;AAEF,eAAO,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"abis.d.ts","sourceRoot":"","sources":["../../src/connect/abis.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,8BAA8B,CAAuB;AAC/E,OAAO,qBAAqB,MAAM,sCAAsC,CAAuB;AAE/F,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,CAAC;AAGhD,eAAO,MAAM,oBAAoB;;;;;;;;;;GA2BhC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;GAsC/B,CAAC;AAGF,eAAO,MAAM,gBAAgB;;;;;;;;;;GAc5B,CAAC;AAGF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;GAsBvB,CAAC;AAGF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmFhB,CAAC"}
|
package/dist/connect/abis.js
CHANGED
|
@@ -37,6 +37,20 @@ export const safeOwnerManagerAbi = [{
|
|
|
37
37
|
outputs: [],
|
|
38
38
|
stateMutability: 'nonpayable',
|
|
39
39
|
type: 'function'
|
|
40
|
+
}, {
|
|
41
|
+
inputs: [{
|
|
42
|
+
internalType: 'address',
|
|
43
|
+
name: 'owner',
|
|
44
|
+
type: 'address'
|
|
45
|
+
}],
|
|
46
|
+
name: 'isOwner',
|
|
47
|
+
outputs: [{
|
|
48
|
+
internalType: 'bool',
|
|
49
|
+
name: '',
|
|
50
|
+
type: 'bool'
|
|
51
|
+
}],
|
|
52
|
+
stateMutability: 'view',
|
|
53
|
+
type: 'function'
|
|
40
54
|
}];
|
|
41
55
|
// We only use this for revokeEnableSignature to use as a noop when creating a smart session
|
|
42
56
|
export const smartSessionsAbi = [{
|
package/dist/connect/abis.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abis.js","names":["mainVotingAbi","type","personalSpaceAdminAbi","safeModuleManagerAbi","inputs","internalType","name","outputs","stateMutability","safeOwnerManagerAbi","smartSessionsAbi","safe7579Abi","daoFactoryAbi","components"],"sources":["../../src/connect/abis.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"abis.js","names":["mainVotingAbi","type","personalSpaceAdminAbi","safeModuleManagerAbi","inputs","internalType","name","outputs","stateMutability","safeOwnerManagerAbi","smartSessionsAbi","safe7579Abi","daoFactoryAbi","components"],"sources":["../../src/connect/abis.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -12,4 +12,5 @@ export declare const wipeSyncServerSessionToken: (storage: Storage, walletAddres
|
|
|
12
12
|
export declare const loadAccountAddress: (storage: Storage) => string | null;
|
|
13
13
|
export declare const storeAccountAddress: (storage: Storage, accountId: string) => void;
|
|
14
14
|
export declare const wipeAccountAddress: (storage: Storage) => void;
|
|
15
|
+
export declare const wipeAllAuthData: (addressStorage: Storage, keysAndTokenStorage: Storage) => void;
|
|
15
16
|
//# sourceMappingURL=auth-storage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-storage.d.ts","sourceRoot":"","sources":["../../src/connect/auth-storage.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAc,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAEzE,eAAO,MAAM,MAAM,QAAO,KAAK,GAAG,YAAY,GAAG,OAEhD,CAAC;AAEF,eAAO,MAAM,6BAA6B,cAAoC,CAAC;AAE/E,eAAO,MAAM,mBAAmB,GAAI,eAAe,MAAM,WACY,CAAC;AAEtE,eAAO,MAAM,2BAA2B,GAAI,eAAe,MAAM,WACa,CAAC;AAE/E,eAAO,MAAM,QAAQ,GAAI,SAAS,OAAO,EAAE,eAAe,MAAM,KAAG,YAAY,GAAG,IAajF,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,SAAS,OAAO,EAAE,eAAe,MAAM,EAAE,MAAM,YAAY,SAGpF,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,SAAS,OAAO,EAAE,eAAe,MAAM,SAG/D,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAI,SAAS,OAAO,EAAE,SAAS,MAAM,KAAG,MAAM,GAAG,IAIvF,CAAC;AAEF,eAAO,MAAM,2BAA2B,GAAI,SAAS,OAAO,EAAE,SAAS,MAAM,EAAE,cAAc,MAAM,SAGlG,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAI,SAAS,OAAO,EAAE,eAAe,MAAM,SAEjF,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,SAAS,OAAO,KAAG,MAAM,GAAG,IAE9D,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,SAAS,OAAO,EAAE,WAAW,MAAM,SAEtE,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,SAAS,OAAO,SAElD,CAAC"}
|
|
1
|
+
{"version":3,"file":"auth-storage.d.ts","sourceRoot":"","sources":["../../src/connect/auth-storage.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAc,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAEzE,eAAO,MAAM,MAAM,QAAO,KAAK,GAAG,YAAY,GAAG,OAEhD,CAAC;AAEF,eAAO,MAAM,6BAA6B,cAAoC,CAAC;AAE/E,eAAO,MAAM,mBAAmB,GAAI,eAAe,MAAM,WACY,CAAC;AAEtE,eAAO,MAAM,2BAA2B,GAAI,eAAe,MAAM,WACa,CAAC;AAE/E,eAAO,MAAM,QAAQ,GAAI,SAAS,OAAO,EAAE,eAAe,MAAM,KAAG,YAAY,GAAG,IAajF,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,SAAS,OAAO,EAAE,eAAe,MAAM,EAAE,MAAM,YAAY,SAGpF,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,SAAS,OAAO,EAAE,eAAe,MAAM,SAG/D,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAI,SAAS,OAAO,EAAE,SAAS,MAAM,KAAG,MAAM,GAAG,IAIvF,CAAC;AAEF,eAAO,MAAM,2BAA2B,GAAI,SAAS,OAAO,EAAE,SAAS,MAAM,EAAE,cAAc,MAAM,SAGlG,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAI,SAAS,OAAO,EAAE,eAAe,MAAM,SAEjF,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,SAAS,OAAO,KAAG,MAAM,GAAG,IAE9D,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,SAAS,OAAO,EAAE,WAAW,MAAM,SAEtE,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,SAAS,OAAO,SAElD,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,gBAAgB,OAAO,EAAE,qBAAqB,OAAO,SAOpF,CAAC"}
|
|
@@ -50,4 +50,12 @@ export const storeAccountAddress = (storage, accountId) => {
|
|
|
50
50
|
export const wipeAccountAddress = storage => {
|
|
51
51
|
storage.removeItem(buildAccountAddressStorageKey());
|
|
52
52
|
};
|
|
53
|
+
export const wipeAllAuthData = (addressStorage, keysAndTokenStorage) => {
|
|
54
|
+
const accountAddress = loadAccountAddress(addressStorage);
|
|
55
|
+
wipeAccountAddress(addressStorage);
|
|
56
|
+
if (accountAddress) {
|
|
57
|
+
wipeKeys(keysAndTokenStorage, accountAddress);
|
|
58
|
+
wipeSyncServerSessionToken(keysAndTokenStorage, accountAddress);
|
|
59
|
+
}
|
|
60
|
+
};
|
|
53
61
|
//# sourceMappingURL=auth-storage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-storage.js","names":["Schema","deserialize","serialize","KeysSchema","getEnv","buildAccountAddressStorageKey","buildKeysStorageKey","walletAddress","buildSessionTokenStorageKey","loadKeys","storage","accessKey","val","getItem","deserialized","decodeUnknownSync","encryptionPublicKey","encryptionPrivateKey","signaturePublicKey","signaturePrivateKey","storeKeys","keys","keysMsg","encodeSync","setItem","wipeKeys","removeItem","loadSyncServerSessionToken","address","key","token","storeSyncServerSessionToken","sessionToken","wipeSyncServerSessionToken","loadAccountAddress","storeAccountAddress","accountId","wipeAccountAddress"],"sources":["../../src/connect/auth-storage.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"auth-storage.js","names":["Schema","deserialize","serialize","KeysSchema","getEnv","buildAccountAddressStorageKey","buildKeysStorageKey","walletAddress","buildSessionTokenStorageKey","loadKeys","storage","accessKey","val","getItem","deserialized","decodeUnknownSync","encryptionPublicKey","encryptionPrivateKey","signaturePublicKey","signaturePrivateKey","storeKeys","keys","keysMsg","encodeSync","setItem","wipeKeys","removeItem","loadSyncServerSessionToken","address","key","token","storeSyncServerSessionToken","sessionToken","wipeSyncServerSessionToken","loadAccountAddress","storeAccountAddress","accountId","wipeAccountAddress","wipeAllAuthData","addressStorage","keysAndTokenStorage","accountAddress"],"sources":["../../src/connect/auth-storage.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/connect/login.d.ts
CHANGED
|
@@ -2,19 +2,20 @@ 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, walletClient: WalletClient, smartAccountClient: SmartAccountClient, accountAddress: Address, syncServerUri: string,
|
|
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
|
}>;
|
|
9
|
-
export declare function restoreKeys(signer: Signer, accountAddress: Address, syncServerUri: string,
|
|
9
|
+
export declare function restoreKeys(signer: Signer, accountAddress: Address, syncServerUri: string, addressStorage: Storage, keysStorage: Storage, identityToken: string): Promise<{
|
|
10
10
|
accountAddress: `0x${string}`;
|
|
11
11
|
keys: IdentityKeys;
|
|
12
12
|
}>;
|
|
13
|
-
export declare function login({ walletClient, signer, syncServerUri,
|
|
13
|
+
export declare function login({ walletClient, signer, syncServerUri, addressStorage, keysStorage, identityToken, rpcUrl, chain, }: {
|
|
14
14
|
walletClient: WalletClient;
|
|
15
15
|
signer: Signer;
|
|
16
16
|
syncServerUri: string;
|
|
17
|
-
|
|
17
|
+
addressStorage: Storage;
|
|
18
|
+
keysStorage: Storage;
|
|
18
19
|
identityToken: string;
|
|
19
20
|
rpcUrl: string;
|
|
20
21
|
chain: Chain;
|
|
@@ -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;
|
|
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,YAAY,EAAE,YAAY,EAC1B,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
|
@@ -1,27 +1,37 @@
|
|
|
1
1
|
import * as Schema from 'effect/Schema';
|
|
2
|
+
import { privateKeyToAccount } from 'viem/accounts';
|
|
2
3
|
import { proveIdentityOwnership } from '../identity/prove-ownership.js';
|
|
3
4
|
import * as Messages from '../messages/index.js';
|
|
4
5
|
import { store } from '../store-connect.js';
|
|
5
|
-
import { loadAccountAddress, storeAccountAddress, storeKeys
|
|
6
|
+
import { loadAccountAddress, storeAccountAddress, storeKeys } from './auth-storage.js';
|
|
6
7
|
import { createIdentityKeys } from './create-identity-keys.js';
|
|
7
8
|
import { decryptIdentity, encryptIdentity } from './identity-encryption.js';
|
|
8
|
-
import { getSmartAccountWalletClient, isSmartAccountDeployed, smartAccountNeedsUpdate, updateLegacySmartAccount } from './smart-account.js';
|
|
9
|
+
import { addSmartAccountOwner, getSmartAccountWalletClient, isSmartAccountDeployed, smartAccountNeedsUpdate, updateLegacySmartAccount } from './smart-account.js';
|
|
9
10
|
export async function identityExists(accountAddress, syncServerUri) {
|
|
10
11
|
const res = await fetch(new URL(`/identity?accountAddress=${accountAddress}`, syncServerUri), {
|
|
11
12
|
method: 'GET'
|
|
12
13
|
});
|
|
13
14
|
return res.status === 200;
|
|
14
15
|
}
|
|
15
|
-
export async function signup(signer, walletClient, smartAccountClient, accountAddress, syncServerUri,
|
|
16
|
+
export async function signup(signer, walletClient, smartAccountClient, accountAddress, syncServerUri, addressStorage, keysStorage, identityToken, chain, rpcUrl) {
|
|
16
17
|
const keys = createIdentityKeys();
|
|
17
18
|
const {
|
|
18
19
|
ciphertext,
|
|
19
20
|
nonce
|
|
20
21
|
} = await encryptIdentity(signer, keys);
|
|
22
|
+
const localAccount = privateKeyToAccount(keys.signaturePrivateKey);
|
|
23
|
+
// This will deploy the smart account if it's not deployed
|
|
24
|
+
await addSmartAccountOwner(smartAccountClient, localAccount.address, chain, rpcUrl);
|
|
25
|
+
const localSmartAccountClient = await getSmartAccountWalletClient({
|
|
26
|
+
owner: localAccount,
|
|
27
|
+
address: accountAddress,
|
|
28
|
+
rpcUrl,
|
|
29
|
+
chain
|
|
30
|
+
});
|
|
21
31
|
const {
|
|
22
32
|
accountProof,
|
|
23
33
|
keyProof
|
|
24
|
-
} = await proveIdentityOwnership(
|
|
34
|
+
} = await proveIdentityOwnership(localSmartAccountClient, accountAddress, keys);
|
|
25
35
|
const req = {
|
|
26
36
|
keyBox: {
|
|
27
37
|
signer: await signer.getAddress(),
|
|
@@ -50,14 +60,14 @@ export async function signup(signer, walletClient, smartAccountClient, accountAd
|
|
|
50
60
|
if (!decoded.success) {
|
|
51
61
|
throw new Error('Error creating identity');
|
|
52
62
|
}
|
|
53
|
-
storeKeys(
|
|
54
|
-
storeAccountAddress(
|
|
63
|
+
storeKeys(keysStorage, accountAddress, keys);
|
|
64
|
+
storeAccountAddress(addressStorage, accountAddress);
|
|
55
65
|
return {
|
|
56
66
|
accountAddress,
|
|
57
67
|
keys
|
|
58
68
|
};
|
|
59
69
|
}
|
|
60
|
-
export async function restoreKeys(signer, accountAddress, syncServerUri,
|
|
70
|
+
export async function restoreKeys(signer, accountAddress, syncServerUri, addressStorage, keysStorage, identityToken) {
|
|
61
71
|
const res = await fetch(new URL('/connect/identity/encrypted', syncServerUri), {
|
|
62
72
|
method: 'GET',
|
|
63
73
|
headers: {
|
|
@@ -76,8 +86,8 @@ export async function restoreKeys(signer, accountAddress, syncServerUri, storage
|
|
|
76
86
|
nonce
|
|
77
87
|
} = keyBox;
|
|
78
88
|
const keys = await decryptIdentity(signer, ciphertext, nonce);
|
|
79
|
-
storeKeys(
|
|
80
|
-
storeAccountAddress(
|
|
89
|
+
storeKeys(keysStorage, accountAddress, keys);
|
|
90
|
+
storeAccountAddress(addressStorage, accountAddress);
|
|
81
91
|
return {
|
|
82
92
|
accountAddress,
|
|
83
93
|
keys
|
|
@@ -85,8 +95,8 @@ export async function restoreKeys(signer, accountAddress, syncServerUri, storage
|
|
|
85
95
|
}
|
|
86
96
|
throw new Error(`Error fetching identity ${res.status}`);
|
|
87
97
|
}
|
|
88
|
-
const
|
|
89
|
-
const accountAddressFromStorage = loadAccountAddress(
|
|
98
|
+
const getAndUpdateSmartAccount = async (walletClient, rpcUrl, chain, addressStorage) => {
|
|
99
|
+
const accountAddressFromStorage = loadAccountAddress(addressStorage);
|
|
90
100
|
const smartAccountParams = {
|
|
91
101
|
owner: walletClient,
|
|
92
102
|
rpcUrl,
|
|
@@ -110,54 +120,29 @@ const getAndDeploySmartAccount = async (walletClient, rpcUrl, chain, storage) =>
|
|
|
110
120
|
// Create the client again to ensure we have the 7579 config now
|
|
111
121
|
return getSmartAccountWalletClient(smartAccountParams);
|
|
112
122
|
}
|
|
113
|
-
if (!(await isSmartAccountDeployed(smartAccountWalletClient))) {
|
|
114
|
-
// TODO: remove this once we manage to get counterfactual signatures working
|
|
115
|
-
console.log('sending dummy userOp to deploy smart account');
|
|
116
|
-
if (!walletClient.account) {
|
|
117
|
-
throw new Error('Wallet client account not found');
|
|
118
|
-
}
|
|
119
|
-
const tx = await smartAccountWalletClient.sendUserOperation({
|
|
120
|
-
calls: [{
|
|
121
|
-
to: walletClient.account.address,
|
|
122
|
-
data: '0x'
|
|
123
|
-
}],
|
|
124
|
-
account: smartAccountWalletClient.account
|
|
125
|
-
});
|
|
126
|
-
console.log('tx', tx);
|
|
127
|
-
const receipt = await smartAccountWalletClient.waitForUserOperationReceipt({
|
|
128
|
-
hash: tx
|
|
129
|
-
});
|
|
130
|
-
console.log('receipt', receipt);
|
|
131
|
-
}
|
|
132
123
|
return smartAccountWalletClient;
|
|
133
124
|
};
|
|
134
125
|
export async function login({
|
|
135
126
|
walletClient,
|
|
136
127
|
signer,
|
|
137
128
|
syncServerUri,
|
|
138
|
-
|
|
129
|
+
addressStorage,
|
|
130
|
+
keysStorage,
|
|
139
131
|
identityToken,
|
|
140
132
|
rpcUrl,
|
|
141
133
|
chain
|
|
142
134
|
}) {
|
|
143
|
-
|
|
144
|
-
try {
|
|
145
|
-
smartAccountWalletClient = await getAndDeploySmartAccount(walletClient, rpcUrl, chain, storage);
|
|
146
|
-
} catch (error) {
|
|
147
|
-
wipeAccountAddress(storage);
|
|
148
|
-
smartAccountWalletClient = await getAndDeploySmartAccount(walletClient, rpcUrl, chain, storage);
|
|
149
|
-
}
|
|
135
|
+
const smartAccountWalletClient = await getAndUpdateSmartAccount(walletClient, rpcUrl, chain, addressStorage);
|
|
150
136
|
if (!smartAccountWalletClient.account) {
|
|
151
137
|
throw new Error('Smart account wallet client account not found');
|
|
152
138
|
}
|
|
153
139
|
const accountAddress = smartAccountWalletClient.account.address;
|
|
154
|
-
// const keys = loadKeys(storage, accountAddress);
|
|
155
140
|
let authData;
|
|
156
141
|
const exists = await identityExists(accountAddress, syncServerUri);
|
|
157
142
|
if (!exists) {
|
|
158
|
-
authData = await signup(signer, walletClient, smartAccountWalletClient, accountAddress, syncServerUri,
|
|
143
|
+
authData = await signup(signer, walletClient, smartAccountWalletClient, accountAddress, syncServerUri, addressStorage, keysStorage, identityToken, chain, rpcUrl);
|
|
159
144
|
} else {
|
|
160
|
-
authData = await restoreKeys(signer, accountAddress, syncServerUri,
|
|
145
|
+
authData = await restoreKeys(signer, accountAddress, syncServerUri, addressStorage, keysStorage, identityToken);
|
|
161
146
|
}
|
|
162
147
|
store.send({
|
|
163
148
|
type: 'reset'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","names":["Schema","proveIdentityOwnership","Messages","store","loadAccountAddress","storeAccountAddress","storeKeys","
|
|
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","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,6 +1,6 @@
|
|
|
1
1
|
import { getSpendingLimitsPolicy, getSudoPolicy, getTimeFramePolicy, getUniversalActionPolicy, getUsageLimitPolicy, getValueLimitPolicy } from '@rhinestone/module-sdk';
|
|
2
2
|
import { type SmartAccountClient } from 'permissionless';
|
|
3
|
-
import { type Account, type Address, type Chain, type Hex, type SignableMessage, type WalletClient } from 'viem';
|
|
3
|
+
import { type Account, type Address, type Chain, type Hex, type PrivateKeyAccount, type SignableMessage, type WalletClient } from 'viem';
|
|
4
4
|
import { type WaitForUserOperationReceiptReturnType } from 'viem/account-abstraction';
|
|
5
5
|
export declare const DEFAULT_RPC_URL = "https://rpc-geo-genesis-h0q2s21xx8.t.conduit.xyz";
|
|
6
6
|
export declare const TESTNET_RPC_URL = "https://rpc-geo-test-zc16z3tcvf.t.conduit.xyz";
|
|
@@ -77,7 +77,20 @@ export declare const legacySmartAccountUpdateStatus: (smartAccountClient: SmartA
|
|
|
77
77
|
}>;
|
|
78
78
|
export declare const smartAccountNeedsUpdate: (smartAccountClient: SmartAccountClient, chain: Chain, rpcUrl: string) => Promise<boolean>;
|
|
79
79
|
export declare const updateLegacySmartAccount: (smartAccountClient: SmartAccountClient, chain: Chain, rpcUrl: string) => Promise<WaitForUserOperationReceiptReturnType | undefined>;
|
|
80
|
-
export declare const
|
|
80
|
+
export declare const addSmartAccountOwner: (smartAccountClient: SmartAccountClient, newOwner: Address, chain: Chain, rpcUrl: string) => Promise<{
|
|
81
|
+
actualGasCost: bigint;
|
|
82
|
+
actualGasUsed: bigint;
|
|
83
|
+
entryPoint: Address;
|
|
84
|
+
logs: import("viem").Log<bigint, number, false>[];
|
|
85
|
+
nonce: bigint;
|
|
86
|
+
paymaster?: `0x${string}` | undefined;
|
|
87
|
+
reason?: string | undefined | undefined;
|
|
88
|
+
receipt: import("viem").TransactionReceipt<bigint, number, "success" | "reverted">;
|
|
89
|
+
sender: Address;
|
|
90
|
+
success: boolean;
|
|
91
|
+
userOpHash: import("viem").Hash;
|
|
92
|
+
} | undefined>;
|
|
93
|
+
export declare const createSmartSession: (owner: WalletClient | PrivateKeyAccount, accountAddress: Hex, sessionPrivateKey: Hex, chain: Chain, rpcUrl: string, { allowCreateSpace, spaces, additionalActions, }?: {
|
|
81
94
|
allowCreateSpace?: boolean;
|
|
82
95
|
spaces?: {
|
|
83
96
|
address: Hex;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smart-account.d.ts","sourceRoot":"","sources":["../../src/connect/smart-account.ts"],"names":[],"mappings":"AAEA,OAAO,EAcL,uBAAuB,EACvB,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,KAAK,kBAAkB,EAAiD,MAAM,gBAAgB,CAAC;AAKxG,OAAO,EAGL,KAAK,OAAO,EACZ,KAAK,OAAO,EAEZ,KAAK,KAAK,EAEV,KAAK,GAAG,EAER,KAAK,eAAe,EACpB,KAAK,YAAY,EAOlB,MAAM,MAAM,CAAC;AACd,OAAO,EAEL,KAAK,qCAAqC,EAG3C,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;
|
|
1
|
+
{"version":3,"file":"smart-account.d.ts","sourceRoot":"","sources":["../../src/connect/smart-account.ts"],"names":[],"mappings":"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"}
|
|
@@ -442,6 +442,45 @@ const getSpaceActions = space => {
|
|
|
442
442
|
}
|
|
443
443
|
return actions;
|
|
444
444
|
};
|
|
445
|
+
export const addSmartAccountOwner = async (smartAccountClient, newOwner, chain, rpcUrl) => {
|
|
446
|
+
if (!smartAccountClient.account) {
|
|
447
|
+
throw new Error('Invalid smart account');
|
|
448
|
+
}
|
|
449
|
+
const publicClient = createPublicClient({
|
|
450
|
+
transport: http(rpcUrl),
|
|
451
|
+
chain
|
|
452
|
+
});
|
|
453
|
+
if (await isSmartAccountDeployed(smartAccountClient)) {
|
|
454
|
+
const isOwner = await publicClient.readContract({
|
|
455
|
+
abi: safeOwnerManagerAbi,
|
|
456
|
+
address: smartAccountClient.account.address,
|
|
457
|
+
functionName: 'isOwner',
|
|
458
|
+
args: [newOwner]
|
|
459
|
+
});
|
|
460
|
+
if (isOwner) {
|
|
461
|
+
return;
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
const tx = await smartAccountClient.sendUserOperation({
|
|
465
|
+
calls: [{
|
|
466
|
+
to: smartAccountClient.account.address,
|
|
467
|
+
data: encodeFunctionData({
|
|
468
|
+
abi: safeOwnerManagerAbi,
|
|
469
|
+
functionName: 'addOwnerWithThreshold',
|
|
470
|
+
args: [newOwner, BigInt(1)]
|
|
471
|
+
}),
|
|
472
|
+
value: BigInt(0)
|
|
473
|
+
}],
|
|
474
|
+
account: smartAccountClient.account
|
|
475
|
+
});
|
|
476
|
+
const receipt = await smartAccountClient.waitForUserOperationReceipt({
|
|
477
|
+
hash: tx
|
|
478
|
+
});
|
|
479
|
+
if (!receipt.success) {
|
|
480
|
+
throw new Error('Transaction to add smart account owner failed');
|
|
481
|
+
}
|
|
482
|
+
return receipt;
|
|
483
|
+
};
|
|
445
484
|
// This is the function that the Connect app uses to create a smart session and
|
|
446
485
|
// enable it on the smart account.
|
|
447
486
|
// It will prompt the user to sign the message to enable the session, and then
|
|
@@ -470,9 +509,6 @@ export const createSmartSession = async (owner, accountAddress, sessionPrivateKe
|
|
|
470
509
|
if (!smartAccountClient.chain) {
|
|
471
510
|
throw new Error('Invalid smart account chain');
|
|
472
511
|
}
|
|
473
|
-
if (!owner.account) {
|
|
474
|
-
throw new Error('Invalid wallet client');
|
|
475
|
-
}
|
|
476
512
|
const sessionKeyAccount = privateKeyToAccount(sessionPrivateKey);
|
|
477
513
|
const transport = http(rpcUrl);
|
|
478
514
|
const publicClient = createPublicClient({
|
|
@@ -595,7 +631,7 @@ export const createSmartSession = async (owner, accountAddress, sessionPrivateKe
|
|
|
595
631
|
message: {
|
|
596
632
|
raw: sessionDetails.permissionEnableHash
|
|
597
633
|
},
|
|
598
|
-
account: owner.account.address
|
|
634
|
+
account: owner.account?.address ?? owner.address
|
|
599
635
|
});
|
|
600
636
|
console.log('session details signed');
|
|
601
637
|
const smartSessions = getSmartSessionsValidator({});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smart-account.js","names":["MAINNET","TESTNET","randomBytes","OWNABLE_VALIDATOR_ADDRESS","RHINESTONE_ATTESTER_ADDRESS","SmartSessionMode","encodeSmartSessionSignature","encodeValidationData","encodeValidatorNonce","getAccount","getEnableSessionDetails","getOwnableValidator","getOwnableValidatorMockSignature","getPermissionId","getSmartSessionsValidator","getSpendingLimitsPolicy","getSudoPolicy","getTimeFramePolicy","getUniversalActionPolicy","getUsageLimitPolicy","getValueLimitPolicy","createSmartAccountClient","encodeInstallModule","toSafeSmartAccount","getAccountNonce","erc7579Actions","createPimlicoClient","http","ContractFunctionExecutionError","createPublicClient","encodeFunctionData","getAbiItem","toBytes","toFunctionSelector","toHex","entryPoint07Address","getUserOperationHash","privateKeyToAccount","bytesToHex","daoFactoryAbi","mainVotingAbi","personalSpaceAdminAbi","safe7579Abi","safeModuleManagerAbi","safeOwnerManagerAbi","smartSessionsAbi","DEFAULT_RPC_URL","TESTNET_RPC_URL","DEFAULT_API_KEY","BUNDLER_TRANSPORT_URL_BASE","SAFE_7579_MODULE_ADDRESS","SAFE_4337_MODULE_ADDRESS","ERC7579_LAUNCHPAD_ADDRESS","SPACE_FACTORY_ADDRESS","DAO_FACTORY_ADDRESS","MODULE_TYPE_VALIDATOR","PUBLIC_SPACE_FUNCTIONS","PERSONAL_SPACE_FUNCTIONS","GEOGENESIS","id","Number","name","nativeCurrency","symbol","decimals","rpcUrls","default","public","GEO_TESTNET","getLegacySmartAccountWalletClient","owner","address","chain","rpcUrl","apiKey","transport","publicClient","safeAccountParams","client","owners","entryPoint","version","safeModuleSetupAddress","safe4337ModuleAddress","safeProxyFactoryAddress","safeSingletonAddress","multiSendAddress","multiSendCallOnlyAddress","safeAccount","bundlerTransport","paymasterClient","smartAccountClient","account","paymaster","userOperation","estimateFeesPerGas","getUserOperationGasPrice","fast","get7579SmartAccountWalletClient","console","log","ownerAddress","Error","ownableValidator","threshold","smartSessionsValidator","erc7579LaunchpadAddress","attesters","attestersThreshold","validators","context","initData","extend","isSmartAccountDeployed","isDeployed","getSmartAccountWalletClient","params","legacyClient","legacySmartAccountUpdateStatus","isSmartSessionsValidatorInstalled","readContract","abi","functionName","args","error","details","includes","has7579Module","hasSmartSessionsValidator","hasOwnableValidator","isOwnableValidatorInstalled","smartAccountNeedsUpdate","updateStatus","updateLegacySmartAccount","installValidatorsTx","modules","type","calls","push","to","data","value","BigInt","length","tx","sendUserOperation","receipt","waitForUserOperationReceipt","hash","success","getSpaceActions","space","actions","actionTarget","actionTargetSelector","actionPolicies","createSmartSession","accountAddress","sessionPrivateKey","allowCreateSpace","spaces","additionalActions","sessionKeyAccount","noOpActionPolicy","paramRules","rules","Array","fill","condition","isLimited","offset","ref","size","usage","limit","used","valueLimitPerUse","spaceFactoryAddress","toString","session","sessionValidator","sessionValidatorInitData","salt","userOpPolicies","erc7739Policies","allowedERC7739Content","erc1271Policies","chainId","permitERC4337Paymaster","sessionDetails","sessions","clients","enableSessionData","enableSession","permissionEnableSig","signMessage","message","raw","permissionEnableHash","smartSessions","nonce","entryPointAddress","key","validator","signature","prepareUserOperation","userOpHashToSign","entryPointVersion","userOpHash","getSmartSessionClient","permissionId","mode","USE"],"sources":["../../src/connect/smart-account.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"smart-account.js","names":["MAINNET","TESTNET","randomBytes","OWNABLE_VALIDATOR_ADDRESS","RHINESTONE_ATTESTER_ADDRESS","SmartSessionMode","encodeSmartSessionSignature","encodeValidationData","encodeValidatorNonce","getAccount","getEnableSessionDetails","getOwnableValidator","getOwnableValidatorMockSignature","getPermissionId","getSmartSessionsValidator","getSpendingLimitsPolicy","getSudoPolicy","getTimeFramePolicy","getUniversalActionPolicy","getUsageLimitPolicy","getValueLimitPolicy","createSmartAccountClient","encodeInstallModule","toSafeSmartAccount","getAccountNonce","erc7579Actions","createPimlicoClient","http","ContractFunctionExecutionError","createPublicClient","encodeFunctionData","getAbiItem","toBytes","toFunctionSelector","toHex","entryPoint07Address","getUserOperationHash","privateKeyToAccount","bytesToHex","daoFactoryAbi","mainVotingAbi","personalSpaceAdminAbi","safe7579Abi","safeModuleManagerAbi","safeOwnerManagerAbi","smartSessionsAbi","DEFAULT_RPC_URL","TESTNET_RPC_URL","DEFAULT_API_KEY","BUNDLER_TRANSPORT_URL_BASE","SAFE_7579_MODULE_ADDRESS","SAFE_4337_MODULE_ADDRESS","ERC7579_LAUNCHPAD_ADDRESS","SPACE_FACTORY_ADDRESS","DAO_FACTORY_ADDRESS","MODULE_TYPE_VALIDATOR","PUBLIC_SPACE_FUNCTIONS","PERSONAL_SPACE_FUNCTIONS","GEOGENESIS","id","Number","name","nativeCurrency","symbol","decimals","rpcUrls","default","public","GEO_TESTNET","getLegacySmartAccountWalletClient","owner","address","chain","rpcUrl","apiKey","transport","publicClient","safeAccountParams","client","owners","entryPoint","version","safeModuleSetupAddress","safe4337ModuleAddress","safeProxyFactoryAddress","safeSingletonAddress","multiSendAddress","multiSendCallOnlyAddress","safeAccount","bundlerTransport","paymasterClient","smartAccountClient","account","paymaster","userOperation","estimateFeesPerGas","getUserOperationGasPrice","fast","get7579SmartAccountWalletClient","console","log","ownerAddress","Error","ownableValidator","threshold","smartSessionsValidator","erc7579LaunchpadAddress","attesters","attestersThreshold","validators","context","initData","extend","isSmartAccountDeployed","isDeployed","getSmartAccountWalletClient","params","legacyClient","legacySmartAccountUpdateStatus","isSmartSessionsValidatorInstalled","readContract","abi","functionName","args","error","details","includes","has7579Module","hasSmartSessionsValidator","hasOwnableValidator","isOwnableValidatorInstalled","smartAccountNeedsUpdate","updateStatus","updateLegacySmartAccount","installValidatorsTx","modules","type","calls","push","to","data","value","BigInt","length","tx","sendUserOperation","receipt","waitForUserOperationReceipt","hash","success","getSpaceActions","space","actions","actionTarget","actionTargetSelector","actionPolicies","addSmartAccountOwner","newOwner","isOwner","createSmartSession","accountAddress","sessionPrivateKey","allowCreateSpace","spaces","additionalActions","sessionKeyAccount","noOpActionPolicy","paramRules","rules","Array","fill","condition","isLimited","offset","ref","size","usage","limit","used","valueLimitPerUse","spaceFactoryAddress","toString","session","sessionValidator","sessionValidatorInitData","salt","userOpPolicies","erc7739Policies","allowedERC7739Content","erc1271Policies","chainId","permitERC4337Paymaster","sessionDetails","sessions","clients","enableSessionData","enableSession","permissionEnableSig","signMessage","message","raw","permissionEnableHash","smartSessions","nonce","entryPointAddress","key","validator","signature","prepareUserOperation","userOpHashToSign","entryPointVersion","userOpHash","getSmartSessionClient","permissionId","mode","USE"],"sources":["../../src/connect/smart-account.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type Chain
|
|
1
|
+
import { type Chain } from 'viem';
|
|
2
2
|
import type { SmartAccountClient } from 'permissionless';
|
|
3
3
|
import type { IdentityKeys } from './types.js';
|
|
4
4
|
export declare const getAccountProofMessage: (accountAddress: string, publicKey: string) => string;
|
|
@@ -7,7 +7,7 @@ export declare const accountProofDomain: {
|
|
|
7
7
|
name: string;
|
|
8
8
|
version: string;
|
|
9
9
|
};
|
|
10
|
-
export declare const proveIdentityOwnership: (
|
|
10
|
+
export declare const proveIdentityOwnership: (smartAccountClient: SmartAccountClient, accountAddress: string, keys: IdentityKeys) => Promise<{
|
|
11
11
|
accountProof: string;
|
|
12
12
|
keyProof: string;
|
|
13
13
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prove-ownership.d.ts","sourceRoot":"","sources":["../../src/identity/prove-ownership.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,KAAK,
|
|
1
|
+
{"version":3,"file":"prove-ownership.d.ts","sourceRoot":"","sources":["../../src/identity/prove-ownership.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,KAAK,EAA+C,MAAM,MAAM,CAAC;AAGrF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,eAAO,MAAM,sBAAsB,GAAI,gBAAgB,MAAM,EAAE,WAAW,MAAM,KAAG,MAElF,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,gBAAgB,MAAM,EAAE,WAAW,MAAM,KAAG,MAE9E,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;CAG9B,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,oBAAoB,kBAAkB,EACtC,gBAAgB,MAAM,EACtB,MAAM,YAAY,KACjB,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAwBpD,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,gBAAgB,MAAM,EACtB,WAAW,MAAM,EACjB,cAAc,MAAM,EACpB,UAAU,MAAM,EAChB,OAAO,KAAK,EACZ,QAAQ,MAAM,KACb,OAAO,CAAC,OAAO,CA2CjB,CAAC"}
|
|
@@ -11,7 +11,7 @@ export const accountProofDomain = {
|
|
|
11
11
|
name: 'Hypergraph',
|
|
12
12
|
version: '1'
|
|
13
13
|
};
|
|
14
|
-
export const proveIdentityOwnership = async (
|
|
14
|
+
export const proveIdentityOwnership = async (smartAccountClient, accountAddress, keys) => {
|
|
15
15
|
if (!smartAccountClient.account) {
|
|
16
16
|
throw new Error('Smart account client does not have an account');
|
|
17
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prove-ownership.js","names":["http","createPublicClient","verifyMessage","privateKeyToAccount","publicKeyToAddress","getAccountProofMessage","accountAddress","publicKey","getKeyProofMessage","accountProofDomain","name","version","proveIdentityOwnership","
|
|
1
|
+
{"version":3,"file":"prove-ownership.js","names":["http","createPublicClient","verifyMessage","privateKeyToAccount","publicKeyToAddress","getAccountProofMessage","accountAddress","publicKey","getKeyProofMessage","accountProofDomain","name","version","proveIdentityOwnership","smartAccountClient","keys","account","Error","chain","signaturePublicKey","keyProofMessage","accountProof","signTypedData","message","types","Message","type","domain","primaryType","console","log","signaturePrivateKey","keyProof","signMessage","verifyIdentityOwnership","rpcUrl","publicClient","transport","accountProofMessage","validAccountProof","verifyTypedData","address","signature","keyAddress","validKeyProof"],"sources":["../../src/identity/prove-ownership.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
package/src/connect/abis.ts
CHANGED
|
@@ -52,6 +52,25 @@ export const safeOwnerManagerAbi = [
|
|
|
52
52
|
stateMutability: 'nonpayable',
|
|
53
53
|
type: 'function',
|
|
54
54
|
},
|
|
55
|
+
{
|
|
56
|
+
inputs: [
|
|
57
|
+
{
|
|
58
|
+
internalType: 'address',
|
|
59
|
+
name: 'owner',
|
|
60
|
+
type: 'address',
|
|
61
|
+
},
|
|
62
|
+
],
|
|
63
|
+
name: 'isOwner',
|
|
64
|
+
outputs: [
|
|
65
|
+
{
|
|
66
|
+
internalType: 'bool',
|
|
67
|
+
name: '',
|
|
68
|
+
type: 'bool',
|
|
69
|
+
},
|
|
70
|
+
],
|
|
71
|
+
stateMutability: 'view',
|
|
72
|
+
type: 'function',
|
|
73
|
+
},
|
|
55
74
|
];
|
|
56
75
|
|
|
57
76
|
// We only use this for revokeEnableSignature to use as a noop when creating a smart session
|
|
@@ -65,3 +65,12 @@ export const storeAccountAddress = (storage: Storage, accountId: string) => {
|
|
|
65
65
|
export const wipeAccountAddress = (storage: Storage) => {
|
|
66
66
|
storage.removeItem(buildAccountAddressStorageKey());
|
|
67
67
|
};
|
|
68
|
+
|
|
69
|
+
export const wipeAllAuthData = (addressStorage: Storage, keysAndTokenStorage: Storage) => {
|
|
70
|
+
const accountAddress = loadAccountAddress(addressStorage);
|
|
71
|
+
wipeAccountAddress(addressStorage);
|
|
72
|
+
if (accountAddress) {
|
|
73
|
+
wipeKeys(keysAndTokenStorage, accountAddress);
|
|
74
|
+
wipeSyncServerSessionToken(keysAndTokenStorage, accountAddress);
|
|
75
|
+
}
|
|
76
|
+
};
|
package/src/connect/login.ts
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import * as Schema from 'effect/Schema';
|
|
2
2
|
import type { SmartAccountClient } from 'permissionless';
|
|
3
3
|
import type { Address, Chain, Hex, WalletClient } from 'viem';
|
|
4
|
+
import { privateKeyToAccount } from 'viem/accounts';
|
|
4
5
|
import { proveIdentityOwnership } from '../identity/prove-ownership.js';
|
|
5
6
|
import * as Messages from '../messages/index.js';
|
|
6
7
|
import { store } from '../store-connect.js';
|
|
7
|
-
import { loadAccountAddress, storeAccountAddress, storeKeys
|
|
8
|
+
import { loadAccountAddress, storeAccountAddress, storeKeys } from './auth-storage.js';
|
|
8
9
|
import { createIdentityKeys } from './create-identity-keys.js';
|
|
9
10
|
import { decryptIdentity, encryptIdentity } from './identity-encryption.js';
|
|
10
11
|
import {
|
|
11
12
|
type SmartAccountParams,
|
|
13
|
+
addSmartAccountOwner,
|
|
12
14
|
getSmartAccountWalletClient,
|
|
13
15
|
isSmartAccountDeployed,
|
|
14
16
|
smartAccountNeedsUpdate,
|
|
@@ -29,17 +31,26 @@ export async function signup(
|
|
|
29
31
|
smartAccountClient: SmartAccountClient,
|
|
30
32
|
accountAddress: Address,
|
|
31
33
|
syncServerUri: string,
|
|
32
|
-
|
|
34
|
+
addressStorage: Storage,
|
|
35
|
+
keysStorage: Storage,
|
|
33
36
|
identityToken: string,
|
|
37
|
+
chain: Chain,
|
|
38
|
+
rpcUrl: string,
|
|
34
39
|
) {
|
|
35
40
|
const keys = createIdentityKeys();
|
|
36
41
|
const { ciphertext, nonce } = await encryptIdentity(signer, keys);
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
42
|
+
|
|
43
|
+
const localAccount = privateKeyToAccount(keys.signaturePrivateKey as `0x${string}`);
|
|
44
|
+
// This will deploy the smart account if it's not deployed
|
|
45
|
+
await addSmartAccountOwner(smartAccountClient, localAccount.address, chain, rpcUrl);
|
|
46
|
+
const localSmartAccountClient = await getSmartAccountWalletClient({
|
|
47
|
+
owner: localAccount,
|
|
48
|
+
address: accountAddress,
|
|
49
|
+
rpcUrl,
|
|
50
|
+
chain,
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
const { accountProof, keyProof } = await proveIdentityOwnership(localSmartAccountClient, accountAddress, keys);
|
|
43
54
|
|
|
44
55
|
const req: Messages.RequestConnectCreateIdentity = {
|
|
45
56
|
keyBox: { signer: await signer.getAddress(), accountAddress, ciphertext, nonce },
|
|
@@ -64,8 +75,8 @@ export async function signup(
|
|
|
64
75
|
if (!decoded.success) {
|
|
65
76
|
throw new Error('Error creating identity');
|
|
66
77
|
}
|
|
67
|
-
storeKeys(
|
|
68
|
-
storeAccountAddress(
|
|
78
|
+
storeKeys(keysStorage, accountAddress, keys);
|
|
79
|
+
storeAccountAddress(addressStorage, accountAddress);
|
|
69
80
|
return {
|
|
70
81
|
accountAddress,
|
|
71
82
|
keys,
|
|
@@ -76,7 +87,8 @@ export async function restoreKeys(
|
|
|
76
87
|
signer: Signer,
|
|
77
88
|
accountAddress: Address,
|
|
78
89
|
syncServerUri: string,
|
|
79
|
-
|
|
90
|
+
addressStorage: Storage,
|
|
91
|
+
keysStorage: Storage,
|
|
80
92
|
identityToken: string,
|
|
81
93
|
) {
|
|
82
94
|
const res = await fetch(new URL('/connect/identity/encrypted', syncServerUri), {
|
|
@@ -93,8 +105,8 @@ export async function restoreKeys(
|
|
|
93
105
|
const { keyBox } = decoded;
|
|
94
106
|
const { ciphertext, nonce } = keyBox;
|
|
95
107
|
const keys = await decryptIdentity(signer, ciphertext, nonce);
|
|
96
|
-
storeKeys(
|
|
97
|
-
storeAccountAddress(
|
|
108
|
+
storeKeys(keysStorage, accountAddress, keys);
|
|
109
|
+
storeAccountAddress(addressStorage, accountAddress);
|
|
98
110
|
return {
|
|
99
111
|
accountAddress,
|
|
100
112
|
keys,
|
|
@@ -103,8 +115,13 @@ export async function restoreKeys(
|
|
|
103
115
|
throw new Error(`Error fetching identity ${res.status}`);
|
|
104
116
|
}
|
|
105
117
|
|
|
106
|
-
const
|
|
107
|
-
|
|
118
|
+
const getAndUpdateSmartAccount = async (
|
|
119
|
+
walletClient: WalletClient,
|
|
120
|
+
rpcUrl: string,
|
|
121
|
+
chain: Chain,
|
|
122
|
+
addressStorage: Storage,
|
|
123
|
+
) => {
|
|
124
|
+
const accountAddressFromStorage = loadAccountAddress(addressStorage) as Hex;
|
|
108
125
|
const smartAccountParams: SmartAccountParams = {
|
|
109
126
|
owner: walletClient,
|
|
110
127
|
rpcUrl,
|
|
@@ -128,21 +145,6 @@ const getAndDeploySmartAccount = async (walletClient: WalletClient, rpcUrl: stri
|
|
|
128
145
|
// Create the client again to ensure we have the 7579 config now
|
|
129
146
|
return getSmartAccountWalletClient(smartAccountParams);
|
|
130
147
|
}
|
|
131
|
-
if (!(await isSmartAccountDeployed(smartAccountWalletClient))) {
|
|
132
|
-
// TODO: remove this once we manage to get counterfactual signatures working
|
|
133
|
-
console.log('sending dummy userOp to deploy smart account');
|
|
134
|
-
if (!walletClient.account) {
|
|
135
|
-
throw new Error('Wallet client account not found');
|
|
136
|
-
}
|
|
137
|
-
const tx = await smartAccountWalletClient.sendUserOperation({
|
|
138
|
-
calls: [{ to: walletClient.account.address, data: '0x' }],
|
|
139
|
-
account: smartAccountWalletClient.account,
|
|
140
|
-
});
|
|
141
|
-
|
|
142
|
-
console.log('tx', tx);
|
|
143
|
-
const receipt = await smartAccountWalletClient.waitForUserOperationReceipt({ hash: tx });
|
|
144
|
-
console.log('receipt', receipt);
|
|
145
|
-
}
|
|
146
148
|
return smartAccountWalletClient;
|
|
147
149
|
};
|
|
148
150
|
|
|
@@ -150,7 +152,8 @@ export async function login({
|
|
|
150
152
|
walletClient,
|
|
151
153
|
signer,
|
|
152
154
|
syncServerUri,
|
|
153
|
-
|
|
155
|
+
addressStorage,
|
|
156
|
+
keysStorage,
|
|
154
157
|
identityToken,
|
|
155
158
|
rpcUrl,
|
|
156
159
|
chain,
|
|
@@ -158,23 +161,18 @@ export async function login({
|
|
|
158
161
|
walletClient: WalletClient;
|
|
159
162
|
signer: Signer;
|
|
160
163
|
syncServerUri: string;
|
|
161
|
-
|
|
164
|
+
addressStorage: Storage;
|
|
165
|
+
keysStorage: Storage;
|
|
162
166
|
identityToken: string;
|
|
163
167
|
rpcUrl: string;
|
|
164
168
|
chain: Chain;
|
|
165
169
|
}) {
|
|
166
|
-
|
|
167
|
-
try {
|
|
168
|
-
smartAccountWalletClient = await getAndDeploySmartAccount(walletClient, rpcUrl, chain, storage);
|
|
169
|
-
} catch (error) {
|
|
170
|
-
wipeAccountAddress(storage);
|
|
171
|
-
smartAccountWalletClient = await getAndDeploySmartAccount(walletClient, rpcUrl, chain, storage);
|
|
172
|
-
}
|
|
170
|
+
const smartAccountWalletClient = await getAndUpdateSmartAccount(walletClient, rpcUrl, chain, addressStorage);
|
|
173
171
|
if (!smartAccountWalletClient.account) {
|
|
174
172
|
throw new Error('Smart account wallet client account not found');
|
|
175
173
|
}
|
|
176
174
|
const accountAddress = smartAccountWalletClient.account.address;
|
|
177
|
-
|
|
175
|
+
|
|
178
176
|
let authData: {
|
|
179
177
|
accountAddress: Address;
|
|
180
178
|
keys: IdentityKeys;
|
|
@@ -187,11 +185,14 @@ export async function login({
|
|
|
187
185
|
smartAccountWalletClient,
|
|
188
186
|
accountAddress,
|
|
189
187
|
syncServerUri,
|
|
190
|
-
|
|
188
|
+
addressStorage,
|
|
189
|
+
keysStorage,
|
|
191
190
|
identityToken,
|
|
191
|
+
chain,
|
|
192
|
+
rpcUrl,
|
|
192
193
|
);
|
|
193
194
|
} else {
|
|
194
|
-
authData = await restoreKeys(signer, accountAddress, syncServerUri,
|
|
195
|
+
authData = await restoreKeys(signer, accountAddress, syncServerUri, addressStorage, keysStorage, identityToken);
|
|
195
196
|
}
|
|
196
197
|
store.send({ type: 'reset' });
|
|
197
198
|
store.send({
|
|
@@ -36,6 +36,7 @@ import {
|
|
|
36
36
|
ContractFunctionExecutionError,
|
|
37
37
|
type Hex,
|
|
38
38
|
type Narrow,
|
|
39
|
+
type PrivateKeyAccount,
|
|
39
40
|
type SignableMessage,
|
|
40
41
|
type WalletClient,
|
|
41
42
|
createPublicClient,
|
|
@@ -582,13 +583,61 @@ const getSpaceActions = (space: { address: Hex; type: 'personal' | 'public' }) =
|
|
|
582
583
|
return actions;
|
|
583
584
|
};
|
|
584
585
|
|
|
586
|
+
export const addSmartAccountOwner = async (
|
|
587
|
+
smartAccountClient: SmartAccountClient,
|
|
588
|
+
newOwner: Address,
|
|
589
|
+
chain: Chain,
|
|
590
|
+
rpcUrl: string,
|
|
591
|
+
) => {
|
|
592
|
+
if (!smartAccountClient.account) {
|
|
593
|
+
throw new Error('Invalid smart account');
|
|
594
|
+
}
|
|
595
|
+
const publicClient = createPublicClient({
|
|
596
|
+
transport: http(rpcUrl),
|
|
597
|
+
chain,
|
|
598
|
+
});
|
|
599
|
+
if (await isSmartAccountDeployed(smartAccountClient)) {
|
|
600
|
+
const isOwner = await publicClient.readContract({
|
|
601
|
+
abi: safeOwnerManagerAbi,
|
|
602
|
+
address: smartAccountClient.account.address,
|
|
603
|
+
functionName: 'isOwner',
|
|
604
|
+
args: [newOwner],
|
|
605
|
+
});
|
|
606
|
+
if (isOwner) {
|
|
607
|
+
return;
|
|
608
|
+
}
|
|
609
|
+
}
|
|
610
|
+
|
|
611
|
+
const tx = await smartAccountClient.sendUserOperation({
|
|
612
|
+
calls: [
|
|
613
|
+
{
|
|
614
|
+
to: smartAccountClient.account.address,
|
|
615
|
+
data: encodeFunctionData({
|
|
616
|
+
abi: safeOwnerManagerAbi,
|
|
617
|
+
functionName: 'addOwnerWithThreshold',
|
|
618
|
+
args: [newOwner, BigInt(1)],
|
|
619
|
+
}),
|
|
620
|
+
value: BigInt(0),
|
|
621
|
+
},
|
|
622
|
+
],
|
|
623
|
+
account: smartAccountClient.account,
|
|
624
|
+
});
|
|
625
|
+
const receipt = await smartAccountClient.waitForUserOperationReceipt({
|
|
626
|
+
hash: tx,
|
|
627
|
+
});
|
|
628
|
+
if (!receipt.success) {
|
|
629
|
+
throw new Error('Transaction to add smart account owner failed');
|
|
630
|
+
}
|
|
631
|
+
return receipt;
|
|
632
|
+
};
|
|
633
|
+
|
|
585
634
|
// This is the function that the Connect app uses to create a smart session and
|
|
586
635
|
// enable it on the smart account.
|
|
587
636
|
// It will prompt the user to sign the message to enable the session, and then
|
|
588
637
|
// execute the transaction to enable the session.
|
|
589
638
|
// It will return the permissionId that can be used to create a smart session client.
|
|
590
639
|
export const createSmartSession = async (
|
|
591
|
-
owner: WalletClient,
|
|
640
|
+
owner: WalletClient | PrivateKeyAccount,
|
|
592
641
|
accountAddress: Hex,
|
|
593
642
|
sessionPrivateKey: Hex,
|
|
594
643
|
chain: Chain,
|
|
@@ -624,9 +673,6 @@ export const createSmartSession = async (
|
|
|
624
673
|
if (!smartAccountClient.chain) {
|
|
625
674
|
throw new Error('Invalid smart account chain');
|
|
626
675
|
}
|
|
627
|
-
if (!owner.account) {
|
|
628
|
-
throw new Error('Invalid wallet client');
|
|
629
|
-
}
|
|
630
676
|
|
|
631
677
|
const sessionKeyAccount = privateKeyToAccount(sessionPrivateKey);
|
|
632
678
|
const transport = http(rpcUrl);
|
|
@@ -751,9 +797,9 @@ export const createSmartSession = async (
|
|
|
751
797
|
|
|
752
798
|
console.log('signing session details');
|
|
753
799
|
// This will prompt the user to sign the message to enable the session
|
|
754
|
-
sessionDetails.enableSessionData.enableSession.permissionEnableSig = await owner.signMessage({
|
|
800
|
+
sessionDetails.enableSessionData.enableSession.permissionEnableSig = await (owner as WalletClient).signMessage({
|
|
755
801
|
message: { raw: sessionDetails.permissionEnableHash },
|
|
756
|
-
account: owner.account.address,
|
|
802
|
+
account: (owner as WalletClient).account?.address ?? (owner as PrivateKeyAccount).address,
|
|
757
803
|
});
|
|
758
804
|
console.log('session details signed');
|
|
759
805
|
const smartSessions = getSmartSessionsValidator({});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { http, type Chain, type Hex,
|
|
1
|
+
import { http, type Chain, type Hex, createPublicClient, verifyMessage } from 'viem';
|
|
2
2
|
import { privateKeyToAccount } from 'viem/accounts';
|
|
3
3
|
|
|
4
4
|
import type { SmartAccountClient } from 'permissionless';
|
|
@@ -19,7 +19,6 @@ export const accountProofDomain = {
|
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
export const proveIdentityOwnership = async (
|
|
22
|
-
walletClient: WalletClient,
|
|
23
22
|
smartAccountClient: SmartAccountClient,
|
|
24
23
|
accountAddress: string,
|
|
25
24
|
keys: IdentityKeys,
|