From 2cad2665fc239e4ac1e41f0d10855719757181ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Van=20Eyck?= Date: Thu, 30 Jan 2025 09:46:45 +0100 Subject: [PATCH 1/3] feat: add dedicated OneKey keyring class --- packages/keyring-eth-trezor/jest.config.js | 6 +-- .../src/onekey-keyring.test.ts | 42 +++++++++++++++++++ .../keyring-eth-trezor/src/onekey-keyring.ts | 9 ++++ 3 files changed, 54 insertions(+), 3 deletions(-) create mode 100644 packages/keyring-eth-trezor/src/onekey-keyring.test.ts create mode 100644 packages/keyring-eth-trezor/src/onekey-keyring.ts diff --git a/packages/keyring-eth-trezor/jest.config.js b/packages/keyring-eth-trezor/jest.config.js index eb577705..b35e07cc 100644 --- a/packages/keyring-eth-trezor/jest.config.js +++ b/packages/keyring-eth-trezor/jest.config.js @@ -24,9 +24,9 @@ module.exports = merge(baseConfig, { coverageThreshold: { global: { branches: 48.27, - functions: 91.22, - lines: 89.94, - statements: 90.15, + functions: 91.37, + lines: 90.2, + statements: 90.4, }, }, }); diff --git a/packages/keyring-eth-trezor/src/onekey-keyring.test.ts b/packages/keyring-eth-trezor/src/onekey-keyring.test.ts new file mode 100644 index 00000000..5eb7b7ad --- /dev/null +++ b/packages/keyring-eth-trezor/src/onekey-keyring.test.ts @@ -0,0 +1,42 @@ +import HDKey from 'hdkey'; +import * as sinon from 'sinon'; + +import { OneKeyKeyring } from './onekey-keyring'; +import { TrezorBridge } from './trezor-bridge'; +import { TrezorKeyring } from './trezor-keyring'; + +const fakeXPubKey = + 'xpub6FnCn6nSzZAw5Tw7cgR9bi15UV96gLZhjDstkXXxvCLsUXBGXPdSnLFbdpq8p9HmGsApME5hQTZ3emM2rnY5agb9rXpVGyy3bdW6EEgAtqt'; +const fakeHdKey = HDKey.fromExtendedKey(fakeXPubKey); + +describe('TrezorKeyring', function () { + let keyring: OneKeyKeyring; + let bridge: TrezorBridge; + + beforeEach(async function () { + bridge = {} as TrezorBridge; + keyring = new OneKeyKeyring({ bridge }); + keyring.hdk = fakeHdKey; + }); + + afterEach(function () { + sinon.restore(); + }); + + it('extends TrezorKeyring', () => { + expect(keyring).toBeInstanceOf(TrezorKeyring); + }); + + describe('Keyring.type', function () { + it('is a class property that returns the type string.', function () { + const { type } = TrezorKeyring; + expect(typeof type).toBe('string'); + }); + + it('returns the correct value', function () { + const { type } = keyring; + const correct = OneKeyKeyring.type; + expect(type).toBe(correct); + }); + }); +}); diff --git a/packages/keyring-eth-trezor/src/onekey-keyring.ts b/packages/keyring-eth-trezor/src/onekey-keyring.ts new file mode 100644 index 00000000..e998b183 --- /dev/null +++ b/packages/keyring-eth-trezor/src/onekey-keyring.ts @@ -0,0 +1,9 @@ +import { TrezorKeyring } from './trezor-keyring'; + +const oneKeyKeyringType = 'OneKey Hardware'; + +export class OneKeyKeyring extends TrezorKeyring { + static type: string = oneKeyKeyringType; + + readonly type: string = oneKeyKeyringType; +} From 41e387ff0fe42a184d5786f8f4250a21b2c933e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Van=20Eyck?= Date: Tue, 11 Feb 2025 14:15:15 +0100 Subject: [PATCH 2/3] feat: add onekey keyring to index --- packages/keyring-eth-trezor/src/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/keyring-eth-trezor/src/index.ts b/packages/keyring-eth-trezor/src/index.ts index 69f51db2..6cb20b9e 100644 --- a/packages/keyring-eth-trezor/src/index.ts +++ b/packages/keyring-eth-trezor/src/index.ts @@ -1,3 +1,4 @@ export * from './trezor-keyring'; +export * from './onekey-keyring'; export type * from './trezor-bridge'; export * from './trezor-connect-bridge'; From 2f31e031a89bac222ab3da873e51a1dce9dfa795 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Van=20Eyck?= Date: Tue, 11 Feb 2025 14:26:12 +0100 Subject: [PATCH 3/3] fix: typo in test describe name --- packages/keyring-eth-trezor/src/onekey-keyring.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/keyring-eth-trezor/src/onekey-keyring.test.ts b/packages/keyring-eth-trezor/src/onekey-keyring.test.ts index 5eb7b7ad..fab53379 100644 --- a/packages/keyring-eth-trezor/src/onekey-keyring.test.ts +++ b/packages/keyring-eth-trezor/src/onekey-keyring.test.ts @@ -9,7 +9,7 @@ const fakeXPubKey = 'xpub6FnCn6nSzZAw5Tw7cgR9bi15UV96gLZhjDstkXXxvCLsUXBGXPdSnLFbdpq8p9HmGsApME5hQTZ3emM2rnY5agb9rXpVGyy3bdW6EEgAtqt'; const fakeHdKey = HDKey.fromExtendedKey(fakeXPubKey); -describe('TrezorKeyring', function () { +describe('OneKeyKeyring', function () { let keyring: OneKeyKeyring; let bridge: TrezorBridge;