@@ -16,6 +16,10 @@ import { createWalletClient, custom } from 'viem';
1616import { privateKeyToAccount } from 'viem/accounts' ;
1717
1818const CHAIN = import . meta. env . VITE_HYPERGRAPH_CHAIN === 'geogenesis' ? Connect . GEOGENESIS : Connect . GEO_TESTNET ;
19+ const API_URL =
20+ import . meta. env . VITE_HYPERGRAPH_CHAIN === 'geogenesis'
21+ ? `${ Graph . MAINNET_API_ORIGIN } /graphql`
22+ : `${ Graph . TESTNET_API_ORIGIN } /graphql` ;
1923
2024type AuthenticateSearch = {
2125 data : unknown ;
@@ -135,19 +139,14 @@ function AuthenticateComponent() {
135139 const accountAddress = useSelector ( StoreConnect . store , ( state ) => state . context . accountAddress ) ;
136140 const keys = useSelector ( StoreConnect . store , ( state ) => state . context . keys ) ;
137141
138- const { signMessage } = usePrivy ( ) ;
139142 const { wallets } = useWallets ( ) ;
140143 const embeddedWallet = wallets . find ( ( wallet ) => wallet . walletClientType === 'privy' ) || wallets [ 0 ] ;
141144
142145 const state = useSelector ( componentStore , ( state ) => state . context ) ;
143146 const [ selectedPrivateSpaces , setSelectedPrivateSpaces ] = useState < Set < string > > ( new Set ( ) ) ;
144147
145148 const { isPending : privateSpacesPending , error : privateSpacesError , data : privateSpacesData } = usePrivateSpaces ( ) ;
146- const {
147- isPending : publicSpacesPending ,
148- error : publicSpacesError ,
149- data : publicSpacesData ,
150- } = usePublicSpaces ( `${ Graph . TESTNET_API_ORIGIN } /graphql` ) ;
149+ const { data : publicSpacesData } = usePublicSpaces ( API_URL ) ;
151150
152151 useEffect ( ( ) => {
153152 const run = async ( ) => {
@@ -334,21 +333,6 @@ function AuthenticateComponent() {
334333 transport : custom ( privyProvider ) ,
335334 } ) ;
336335
337- const signer : Identity . Signer = {
338- getAddress : async ( ) => {
339- const [ address ] = await walletClient . getAddresses ( ) ;
340- return address ;
341- } ,
342- signMessage : async ( message : string ) => {
343- if ( embeddedWallet . walletClientType === 'privy' ) {
344- const { signature } = await signMessage ( { message } ) ;
345- return signature ;
346- }
347- const [ address ] = await walletClient . getAddresses ( ) ;
348- return await walletClient . signMessage ( { account : address , message } ) ;
349- } ,
350- } ;
351-
352336 const newAppIdentity = Connect . createAppIdentity ( ) ;
353337
354338 console . log ( 'creating smart session' ) ;
@@ -388,25 +372,13 @@ function AuthenticateComponent() {
388372 rpcUrl : import . meta. env . VITE_HYPERGRAPH_RPC_URL ,
389373 } ) ;
390374
391- const appIdentityKeys = {
392- encryptionPrivateKey : newAppIdentity . encryptionPrivateKey ,
393- encryptionPublicKey : newAppIdentity . encryptionPublicKey ,
394- signaturePrivateKey : newAppIdentity . signaturePrivateKey ,
395- signaturePublicKey : newAppIdentity . signaturePublicKey ,
396- } ;
397375 console . log ( 'encrypting app identity' ) ;
398- const { ciphertext, nonce } = await Connect . encryptAppIdentity (
399- signer ,
400- newAppIdentity . address ,
401- newAppIdentity . addressPrivateKey ,
402- permissionId ,
403- appIdentityKeys ,
404- ) ;
376+ const { ciphertext } = await Connect . encryptAppIdentity ( { ...newAppIdentity , permissionId } , keys ) ;
405377 console . log ( 'proving ownership' ) ;
406378 const { accountProof, keyProof } = await Identity . proveIdentityOwnership (
407379 smartAccountClient ,
408380 accountAddress ,
409- appIdentityKeys ,
381+ newAppIdentity ,
410382 ) ;
411383
412384 const message : Messages . RequestConnectCreateAppIdentity = {
@@ -416,7 +388,6 @@ function AuthenticateComponent() {
416388 signaturePublicKey : keys . signaturePublicKey ,
417389 encryptionPublicKey : keys . encryptionPublicKey ,
418390 ciphertext,
419- nonce,
420391 accountProof,
421392 keyProof,
422393 } ;
@@ -459,48 +430,16 @@ function AuthenticateComponent() {
459430 } ;
460431
461432 const decryptAppIdentityAndRedirect = async ( ) => {
462- if ( ! state . appIdentityResponse ) {
433+ if ( ! state . appIdentityResponse || ! keys ) {
463434 return ;
464435 }
465436
466- const privyProvider = await embeddedWallet . getEthereumProvider ( ) ;
467- const walletClient = createWalletClient ( {
468- account : embeddedWallet . address as `0x${string } `,
469- chain : CHAIN ,
470- transport : custom ( privyProvider ) ,
471- } ) ;
472-
473- const signer : Identity . Signer = {
474- getAddress : async ( ) => {
475- const [ address ] = await walletClient . getAddresses ( ) ;
476- return address ;
477- } ,
478- signMessage : async ( message : string ) => {
479- if ( embeddedWallet . walletClientType === 'privy' ) {
480- const { signature } = await signMessage ( { message } ) ;
481- return signature ;
482- }
483- const [ address ] = await walletClient . getAddresses ( ) ;
484- return await walletClient . signMessage ( { account : address , message } ) ;
485- } ,
486- } ;
487-
488- const decryptedIdentity = await Connect . decryptAppIdentity (
489- signer ,
490- state . appIdentityResponse . ciphertext ,
491- state . appIdentityResponse . nonce ,
492- ) ;
437+ const decryptedIdentity = await Connect . decryptAppIdentity ( state . appIdentityResponse . ciphertext , keys ) ;
493438 await encryptSpacesAndRedirect ( {
494439 accountAddress : state . appIdentityResponse . accountAddress ,
495440 appIdentity : {
496- address : decryptedIdentity . address ,
497- addressPrivateKey : decryptedIdentity . addressPrivateKey ,
441+ ...decryptedIdentity ,
498442 accountAddress : state . appIdentityResponse . accountAddress ,
499- permissionId : decryptedIdentity . permissionId ,
500- encryptionPrivateKey : decryptedIdentity . encryptionPrivateKey ,
501- signaturePrivateKey : decryptedIdentity . signaturePrivateKey ,
502- encryptionPublicKey : decryptedIdentity . encryptionPublicKey ,
503- signaturePublicKey : decryptedIdentity . signaturePublicKey ,
504443 sessionToken : state . appIdentityResponse . sessionToken ,
505444 sessionTokenExpires : new Date ( state . appIdentityResponse . sessionTokenExpires ) ,
506445 } ,
0 commit comments