|
| 1 | +import { expect, test } from '@jest/globals'; |
| 2 | +import { PublicKey, keyToImplicitAddress } from '../src'; |
| 3 | + |
| 4 | +test.each` |
| 5 | + publicKey | expected |
| 6 | + ${'ed25519:DcA2MzgpJbrUATQLLceocVckhhAqrkingax4oJ9kZ847'} | ${'bb4dc639b212e075a751685b26bdcea5920a504181ff2910e8549742127092a0'} |
| 7 | + ${'DcA2MzgpJbrUATQLLceocVckhhAqrkingax4oJ9kZ847'} | ${'bb4dc639b212e075a751685b26bdcea5920a504181ff2910e8549742127092a0'} |
| 8 | + ${'ed25519:6E8sCci9badyRkXb3JoRpBj5p8C6Tw41ELDZoiihKEtp'} | ${'4da7e0f4096aaf2ce55e371657cd3089ba1e9f59f4d6e27bd02e472a16a61dc1'} |
| 9 | + ${'6E8sCci9badyRkXb3JoRpBj5p8C6Tw41ELDZoiihKEtp'} | ${'4da7e0f4096aaf2ce55e371657cd3089ba1e9f59f4d6e27bd02e472a16a61dc1'} |
| 10 | + ${'ed25519:5TdhJVkBRc9YWQdRZJXjYkfNNb8FYhPnJbGJk4zE5kDN'} | ${'424156f9ae27087a5de6b42f44d7f96db75d73ff6f3b9aa45f4cbe1259234829'} |
| 11 | +`( |
| 12 | + 'keyToImplicitAddress($publicKey) returns $expected', |
| 13 | + ({ publicKey, expected }) => { |
| 14 | + expect(keyToImplicitAddress(publicKey)).toEqual(expected); |
| 15 | + } |
| 16 | +); |
| 17 | + |
| 18 | +test('keyToImplicitAddress accepts object with toString method', () => { |
| 19 | + const pk = PublicKey.fromString('ed25519:DcA2MzgpJbrUATQLLceocVckhhAqrkingax4oJ9kZ847'); |
| 20 | + |
| 21 | + const result = keyToImplicitAddress(pk); |
| 22 | + expect(result).toEqual( |
| 23 | + 'bb4dc639b212e075a751685b26bdcea5920a504181ff2910e8549742127092a0' |
| 24 | + ); |
| 25 | +}); |
| 26 | + |
| 27 | +test('keyToImplicitAddress handles object with toString returning key without prefix', () => { |
| 28 | + const pk = PublicKey.fromString('DcA2MzgpJbrUATQLLceocVckhhAqrkingax4oJ9kZ847'); |
| 29 | + |
| 30 | + const result = keyToImplicitAddress(pk); |
| 31 | + expect(result).toEqual( |
| 32 | + 'bb4dc639b212e075a751685b26bdcea5920a504181ff2910e8549742127092a0' |
| 33 | + ); |
| 34 | +}); |
| 35 | + |
| 36 | +test('keyToImplicitAddress returns hex string with proper padding', () => { |
| 37 | + const result = keyToImplicitAddress( |
| 38 | + 'ed25519:DcA2MzgpJbrUATQLLceocVckhhAqrkingax4oJ9kZ847' |
| 39 | + ); |
| 40 | + |
| 41 | + expect(result.length).toEqual(64); |
| 42 | + expect(result).toMatch(/^[0-9a-f]+$/); |
| 43 | +}); |
0 commit comments