Skip to content
This repository was archived by the owner on Mar 5, 2025. It is now read-only.

Commit

Permalink
test: add unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
xstelea committed Sep 4, 2023
1 parent 1f9e0cd commit e49d584
Show file tree
Hide file tree
Showing 4 changed files with 1,061 additions and 4 deletions.
18 changes: 18 additions & 0 deletions src/helpers/create-signature-message.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import { createSignatureMessage } from './create-signature-message'
import { rolaTestVectors } from './test-vectors'

describe('createSignatureMessage', () => {
it('should create a signature message', () => {
rolaTestVectors.forEach((vector) => {
const result = createSignatureMessage({
dAppDefinitionAddress: vector.dAppDefinitionAddress,
origin: vector.origin,
challenge: vector.challenge,
})

if (result.isErr()) throw { ...result.error, vector }

expect(result.value).toEqual(vector.blakeHashOfPayload)
})
})
})
44 changes: 44 additions & 0 deletions src/helpers/derive-address-from-public-key.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import { RadixNetwork } from '@radixdlt/babylon-gateway-api-sdk'
import {
deriveVirtualEcdsaSecp256k1AccountAddress,
deriveVirtualEddsaEd25519AccountAddress,
deriveVirtualIdentityAddress,
} from './derive-address-from-public-key'

describe('deriveAddressFromPublicKey', () => {
it('should derive virtual identity address', async () => {
const output = deriveVirtualIdentityAddress(
'59c02cc1c4cc1eddd90907bb848c44ac1808d844476c1621ecf234cf3ed49c57',
RadixNetwork.Enkinet,
)

const result = await output.unwrapOr(undefined)
expect(result).toEqual(
'identity_tdx_21_12t5uwv48e5j7w368r7kjmcrw3wygfh0dtssz0u5n4hkq7qawrwrzyv',
)
})

it('should derive ed25519 virtual account address', async () => {
const output = deriveVirtualEddsaEd25519AccountAddress(
'59c02cc1c4cc1eddd90907bb848c44ac1808d844476c1621ecf234cf3ed49c57',
RadixNetwork.Enkinet,
)

const result = await output.unwrapOr(undefined)
expect(result).toEqual(
'account_tdx_21_1285uwv48e5j7w368r7kjmcrw3wygfh0dtssz0u5n4hkq7qawthf4kn',
)
})

it('should derive secp256k1 virtual account address', async () => {
const output = deriveVirtualEcdsaSecp256k1AccountAddress(
'02807797adba8d61024c186f438b7bd9c7e1260b6306d615c35faeef9da052e5e4',
RadixNetwork.Enkinet,
)

const result = await output.unwrapOr(undefined)
expect(result).toEqual(
'account_tdx_21_168razfxd603n87nals6us3nnzet2k9tjdk5dlyh2xdjkah3duuyyr3',
)
})
})
11 changes: 7 additions & 4 deletions src/helpers/derive-address-from-public-key.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,10 @@ import { PublicKey, RadixEngineToolkit } from '@radixdlt/radix-engine-toolkit'
import { ResultAsync, errAsync } from 'neverthrow'
import { typedError } from './typed-error'

const deriveVirtualIdentityAddress = (publicKey: string, networkId: number) =>
export const deriveVirtualIdentityAddress = (
publicKey: string,
networkId: number,
) =>
ResultAsync.fromPromise(
RadixEngineToolkit.Derive.virtualIdentityAddressFromPublicKey(
new PublicKey.Ed25519(publicKey),
Expand All @@ -12,19 +15,19 @@ const deriveVirtualIdentityAddress = (publicKey: string, networkId: number) =>
typedError,
)

const deriveVirtualEddsaEd25519AccountAddress = (
export const deriveVirtualEddsaEd25519AccountAddress = (
publicKey: string,
networkId: number,
) =>
ResultAsync.fromPromise(
RadixEngineToolkit.Derive.virtualIdentityAddressFromPublicKey(
RadixEngineToolkit.Derive.virtualAccountAddressFromPublicKey(
new PublicKey.Ed25519(publicKey),
networkId,
),
typedError,
)

const deriveVirtualEcdsaSecp256k1AccountAddress = (
export const deriveVirtualEcdsaSecp256k1AccountAddress = (
publicKey: string,
networkId: number,
) =>
Expand Down
Loading

0 comments on commit e49d584

Please sign in to comment.