diff --git a/lib/IO/decode-wallet-response.ts b/lib/IO/decode-wallet-response.ts index 1aecbe9..302428b 100644 --- a/lib/IO/decode-wallet-response.ts +++ b/lib/IO/decode-wallet-response.ts @@ -11,8 +11,11 @@ export const decodeWalletResponse = ( const { discriminator: authDiscriminator, ...auth } = value if (authDiscriminator === 'usePersona') { return { ...acc, persona: auth.persona } + } else if (authDiscriminator === 'loginWithChallenge') { + const { persona, ...signedChallenge } = auth + return { ...acc, persona, signedChallenge } } else { - return { ...acc, login: auth } + return { ...acc, persona: auth.persona } } } diff --git a/lib/IO/request-items/login.ts b/lib/IO/request-items/login.ts index 1de59c2..a02b3bb 100644 --- a/lib/IO/request-items/login.ts +++ b/lib/IO/request-items/login.ts @@ -14,7 +14,7 @@ export type Login = { method: { input: {} output: { - auth: Persona + persona: Persona } } } @@ -25,9 +25,9 @@ export type Login = { } method: { output: { - auth: { + persona: Persona + signedChallenge: { challenge: string - persona: Persona publicKey: string signature: string } diff --git a/lib/__tests__/decode-wallet-response.spec.ts b/lib/__tests__/decode-wallet-response.spec.ts index 16678ca..97a97bc 100644 --- a/lib/__tests__/decode-wallet-response.spec.ts +++ b/lib/__tests__/decode-wallet-response.spec.ts @@ -57,11 +57,11 @@ describe('decodeWalletResponse', () => { }, }, expected: { - login: { - persona: { - identityAddress: 'addr_xxx', - label: 'personaLabel', - }, + persona: { + identityAddress: 'addr_xxx', + label: 'personaLabel', + }, + signedChallenge: { challenge: 'challenge', publicKey: 'publicKey', signature: 'signature', diff --git a/lib/__tests__/wallet-sdk.spec.ts b/lib/__tests__/wallet-sdk.spec.ts index cbd33d3..a0f221f 100644 --- a/lib/__tests__/wallet-sdk.spec.ts +++ b/lib/__tests__/wallet-sdk.spec.ts @@ -216,7 +216,6 @@ describe('sdk flow', () => { const result = await request if (result.isErr()) throw new Error('should not get a error response') - expect((result.value as any).ongoingAccounts).toEqual([ { address: @@ -232,6 +231,10 @@ describe('sdk flow', () => { }, ]) + expect((result.value as any).persona.identityAddress).toEqual( + 'account_tdx_b_1qlu8fdyj77jpmu2mqe4rgh3738jcva4nfd2y2vp675zqgdg72y' + ) + expect(outgoingMessageSpy.getFirstValue().metadata).toEqual({ dAppDefinitionAddress: 'radixDashboard', networkId: 1,