|
1 | | -//import { http, type Chain, type Hex, type WalletClient, createPublicClient, verifyMessage } from 'viem'; |
2 | | -import type { Chain, Hex, WalletClient } from 'viem'; |
| 1 | +import { http, type Chain, type Hex, type WalletClient, createPublicClient, verifyMessage } from 'viem'; |
3 | 2 | import { privateKeyToAccount } from 'viem/accounts'; |
4 | 3 |
|
5 | 4 | import type { SmartAccountClient } from 'permissionless'; |
6 | 5 | import { DEFAULT_RPC_URL, GEOGENESIS } from '../connect/smart-account.js'; |
7 | | -//import { publicKeyToAddress } from '../utils/index.js'; |
| 6 | +import { publicKeyToAddress } from '../utils/index.js'; |
8 | 7 | import type { IdentityKeys } from './types.js'; |
9 | 8 |
|
10 | 9 | export const getAccountProofMessage = (accountAddress: string, publicKey: string): string => { |
@@ -60,43 +59,46 @@ export const verifyIdentityOwnership = async ( |
60 | 59 | rpcUrl: string = DEFAULT_RPC_URL, |
61 | 60 | ): Promise<boolean> => { |
62 | 61 | console.log('verifyIdentityOwnership', accountAddress, publicKey, accountProof, keyProof, chain, rpcUrl); |
63 | | - // const keyProofMessage = getKeyProofMessage(accountAddress, publicKey); |
64 | | - // const publicClient = createPublicClient({ |
65 | | - // chain, |
66 | | - // transport: http(rpcUrl), |
67 | | - // }); |
| 62 | + const keyProofMessage = getKeyProofMessage(accountAddress, publicKey); |
| 63 | + const publicClient = createPublicClient({ |
| 64 | + chain, |
| 65 | + transport: http(rpcUrl), |
| 66 | + }); |
| 67 | + console.log('publicClient', publicClient); |
| 68 | + console.log('rpcUrl', rpcUrl); |
| 69 | + console.log('chain', chain); |
68 | 70 |
|
69 | | - // console.log('accountProof', accountProof); |
70 | | - // console.log('accountAddress', accountAddress); |
71 | | - // console.log('publicKey', publicKey); |
| 71 | + console.log('accountProof', accountProof); |
| 72 | + console.log('accountAddress', accountAddress); |
| 73 | + console.log('publicKey', publicKey); |
72 | 74 |
|
73 | | - // const accountProofMessage = getAccountProofMessage(accountAddress, publicKey); |
74 | | - // const validAccountProof = await publicClient.verifyTypedData({ |
75 | | - // address: accountAddress as Hex, |
76 | | - // message: { |
77 | | - // message: accountProofMessage, |
78 | | - // }, |
79 | | - // types: { |
80 | | - // Message: [{ name: 'message', type: 'string' }], |
81 | | - // }, |
82 | | - // domain: accountProofDomain, |
83 | | - // primaryType: 'Message', |
84 | | - // signature: accountProof as Hex, |
85 | | - // }); |
86 | | - // if (!validAccountProof) { |
87 | | - // console.log('Invalid account proof'); |
88 | | - // return false; |
89 | | - // } |
| 75 | + const accountProofMessage = getAccountProofMessage(accountAddress, publicKey); |
| 76 | + const validAccountProof = await publicClient.verifyTypedData({ |
| 77 | + address: accountAddress as Hex, |
| 78 | + message: { |
| 79 | + message: accountProofMessage, |
| 80 | + }, |
| 81 | + types: { |
| 82 | + Message: [{ name: 'message', type: 'string' }], |
| 83 | + }, |
| 84 | + domain: accountProofDomain, |
| 85 | + primaryType: 'Message', |
| 86 | + signature: accountProof as Hex, |
| 87 | + }); |
| 88 | + if (!validAccountProof) { |
| 89 | + console.log('Invalid account proof'); |
| 90 | + return false; |
| 91 | + } |
90 | 92 |
|
91 | | - // const keyAddress = publicKeyToAddress(publicKey) as Hex; |
92 | | - // const validKeyProof = await verifyMessage({ |
93 | | - // address: keyAddress, |
94 | | - // message: keyProofMessage, |
95 | | - // signature: keyProof as Hex, |
96 | | - // }); |
97 | | - // if (!validKeyProof) { |
98 | | - // console.log('Invalid key proof'); |
99 | | - // return false; |
100 | | - // } |
| 93 | + const keyAddress = publicKeyToAddress(publicKey) as Hex; |
| 94 | + const validKeyProof = await verifyMessage({ |
| 95 | + address: keyAddress, |
| 96 | + message: keyProofMessage, |
| 97 | + signature: keyProof as Hex, |
| 98 | + }); |
| 99 | + if (!validKeyProof) { |
| 100 | + console.log('Invalid key proof'); |
| 101 | + return false; |
| 102 | + } |
101 | 103 | return true; |
102 | 104 | }; |
0 commit comments