Skip to content

Commit 0c19260

Browse files
committed
feat: account tag enhancement & uppercase for OneKey labels
1 parent 584c13d commit 0c19260

File tree

13 files changed

+66
-34
lines changed

13 files changed

+66
-34
lines changed

app/scripts/metamask-controller.js

+13-6
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import { JsonRpcError, providerErrors } from '@metamask/rpc-errors';
3333
import { Mutex } from 'await-semaphore';
3434
import log from 'loglevel';
3535
import {
36+
OneKeyKeyring,
3637
TrezorConnectBridge,
3738
TrezorKeyring,
3839
} from '@metamask/eth-trezor-keyring';
@@ -1126,6 +1127,10 @@ export default class MetamaskController extends EventEmitter {
11261127
keyring: keyringOverrides?.trezor || TrezorKeyring,
11271128
bridge: keyringOverrides?.trezorBridge || TrezorConnectBridge,
11281129
},
1130+
{
1131+
keyring: keyringOverrides?.oneKey || OneKeyKeyring,
1132+
bridge: keyringOverrides?.oneKeyBridge || TrezorConnectBridge,
1133+
},
11291134
{
11301135
keyring: keyringOverrides?.ledger || LedgerKeyring,
11311136
bridge: keyringOverrides?.ledgerBridge || LedgerIframeBridge,
@@ -1150,6 +1155,10 @@ export default class MetamaskController extends EventEmitter {
11501155
TrezorKeyring,
11511156
keyringOverrides?.trezorBridge || TrezorOffscreenBridge,
11521157
),
1158+
hardwareKeyringBuilderFactory(
1159+
OneKeyKeyring,
1160+
keyringOverrides?.oneKey || TrezorOffscreenBridge,
1161+
),
11531162
hardwareKeyringBuilderFactory(
11541163
LedgerKeyring,
11551164
keyringOverrides?.ledgerBridge || LedgerOffscreenBridge,
@@ -4653,11 +4662,7 @@ export default class MetamaskController extends EventEmitter {
46534662
// The `getKeyringForAccount` is now deprecated, so we just use `withKeyring` instead to access our keyring.
46544663
return await this.keyringController.withKeyring(
46554664
{ address },
4656-
({ type: keyringType, bridge: keyringBridge }) =>
4657-
// Specific case for OneKey devices, see `ONE_KEY_VIA_TREZOR_MINOR_VERSION` for further details.
4658-
keyringBridge?.minorVersion === ONE_KEY_VIA_TREZOR_MINOR_VERSION
4659-
? HardwareKeyringType.oneKey
4660-
: HardwareKeyringType[keyringType],
4665+
({ type }) => HardwareKeyringType[type],
46614666
);
46624667
}
46634668

@@ -7458,9 +7463,11 @@ export default class MetamaskController extends EventEmitter {
74587463
let keyringType = null;
74597464
switch (options.name) {
74607465
case HardwareDeviceNames.trezor:
7461-
case HardwareDeviceNames.oneKey:
74627466
keyringType = keyringOverrides?.trezor?.type || TrezorKeyring.type;
74637467
break;
7468+
case HardwareDeviceNames.oneKey:
7469+
keyringType = keyringOverrides?.oneKey?.type || OneKeyKeyring?.type;
7470+
break;
74647471
case HardwareDeviceNames.ledger:
74657472
keyringType = keyringOverrides?.ledger?.type || LedgerKeyring.type;
74667473
break;

lavamoat/build-system/policy.json

+8
Original file line numberDiff line numberDiff line change
@@ -1795,6 +1795,7 @@
17951795
"chokidar>anymatch": true,
17961796
"chokidar>braces": true,
17971797
"chokidar>fsevents": true,
1798+
"tsx>fsevents": true,
17981799
"eslint>glob-parent": true,
17991800
"chokidar>is-binary-path": true,
18001801
"del>is-glob": true,
@@ -3364,6 +3365,13 @@
33643365
"gulp-watch>chokidar>fsevents>node-pre-gyp": true
33653366
}
33663367
},
3368+
"tsx>fsevents": {
3369+
"globals": {
3370+
"console.assert": true,
3371+
"process.platform": true
3372+
},
3373+
"native": true
3374+
},
33673375
"@lavamoat/allow-scripts>@npmcli/run-script>node-gyp>npmlog>gauge": {
33683376
"builtin": {
33693377
"util.format": true

package.json

+8-4
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,7 @@
291291
"@metamask-institutional/types": "^1.2.0",
292292
"@metamask/abi-utils": "^2.0.2",
293293
"@metamask/account-watcher": "^4.1.2",
294-
"@metamask/accounts-controller": "^23.0.1",
294+
"@metamask/accounts-controller": "^23.1.0",
295295
"@metamask/address-book-controller": "^6.0.3",
296296
"@metamask/announcement-controller": "^7.0.3",
297297
"@metamask/approval-controller": "^7.0.0",
@@ -310,14 +310,14 @@
310310
"@metamask/eth-sig-util": "^7.0.1",
311311
"@metamask/eth-snap-keyring": "^10.0.0",
312312
"@metamask/eth-token-tracker": "^10.0.2",
313-
"@metamask/eth-trezor-keyring": "^6.0.0",
313+
"@metamask/eth-trezor-keyring": "^6.1.0",
314314
"@metamask/etherscan-link": "^3.0.0",
315315
"@metamask/gas-fee-controller": "^22.0.3",
316316
"@metamask/jazzicon": "^2.0.0",
317317
"@metamask/json-rpc-engine": "^10.0.0",
318318
"@metamask/json-rpc-middleware-stream": "^8.0.4",
319319
"@metamask/keyring-api": "^17.0.0",
320-
"@metamask/keyring-controller": "^19.0.7",
320+
"@metamask/keyring-controller": "^19.1.0",
321321
"@metamask/keyring-internal-api": "^4.0.2",
322322
"@metamask/keyring-snap-client": "^4.0.0",
323323
"@metamask/logging-controller": "^6.0.4",
@@ -771,7 +771,11 @@
771771
"level>classic-level": false,
772772
"jest-preview": false,
773773
"@metamask/solana-wallet-snap>@solana/web3.js>bigint-buffer": false,
774-
"@lavamoat/allow-scripts>@lavamoat/preinstall-always-fail": false
774+
"@lavamoat/allow-scripts>@lavamoat/preinstall-always-fail": false,
775+
"@metamask/eth-trezor-keyring>@trezor/connect-web>@trezor/connect>@trezor/transport>protobufjs": false,
776+
"@metamask/eth-trezor-keyring>@trezor/connect-web>@trezor/connect>@trezor/transport>usb": false,
777+
"@trezor/connect-web>@trezor/connect>@trezor/blockchain-link>@solana/web3.js>rpc-websockets>bufferutil": false,
778+
"@trezor/connect-web>@trezor/connect>@trezor/blockchain-link>@solana/web3.js>rpc-websockets>utf-8-validate": false
775779
}
776780
},
777781
"packageManager": "[email protected]",

shared/constants/hardware-wallets.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,15 @@ export enum HardwareKeyringType {
1212
export enum HardwareKeyringNames {
1313
ledger = 'Ledger',
1414
trezor = 'Trezor',
15+
oneKey = 'OneKey',
1516
lattice = 'Lattice1',
1617
qr = 'QR',
1718
}
1819

1920
export enum HardwareDeviceNames {
2021
ledger = 'ledger',
2122
trezor = 'trezor',
22-
oneKey = 'onekey',
23+
oneKey = 'oneKey',
2324
lattice = 'lattice',
2425
qr = 'QR Hardware',
2526
}

ui/ducks/app/app.test.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ describe('App State', () => {
230230
it('sets hardware wallet default hd path', () => {
231231
const hdPaths = {
232232
trezor: "m/44'/60'/0'/0",
233-
onekey: "m/44'/60'/0'/0",
233+
oneKey: "m/44'/60'/0'/0",
234234
ledger: "m/44'/60'/0'",
235235
lattice: "m/44'/60'/0'/0",
236236
};

ui/ducks/app/app.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ type AppState = {
7272
buyView: Record<string, any>;
7373
defaultHdPaths: {
7474
trezor: string;
75-
onekey: string;
75+
oneKey: string;
7676
ledger: string;
7777
lattice: string;
7878
};
@@ -178,7 +178,7 @@ const initialState: AppState = {
178178
buyView: {},
179179
defaultHdPaths: {
180180
trezor: `m/44'/60'/0'/0`,
181-
onekey: `m/44'/60'/0'/0`,
181+
oneKey: `m/44'/60'/0'/0`,
182182
ledger: `m/44'/60'/0'/0/0`,
183183
lattice: `m/44'/60'/0'/0`,
184184
},

ui/helpers/utils/accounts.js

+2
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,8 @@ export function getAccountLabel(
9191
return HardwareKeyringNames.qr;
9292
case KeyringType.trezor:
9393
return HardwareKeyringNames.trezor;
94+
case KeyringType.oneKey:
95+
return HardwareKeyringNames.oneKey;
9496
case KeyringType.ledger:
9597
return HardwareKeyringNames.ledger;
9698
case KeyringType.lattice:

ui/helpers/utils/accounts.test.js

+7
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,13 @@ describe('Accounts', () => {
142142
);
143143
});
144144

145+
it('should return the correct label for OneKey hardware wallet', () => {
146+
mockAccount.metadata.keyring.type = KeyringType.oneKey;
147+
expect(getAccountLabel(KeyringType.oneKey, mockAccount)).toBe(
148+
HardwareKeyringNames.oneKey,
149+
);
150+
});
151+
145152
it('should return the correct label for Ledger hardware wallet', () => {
146153
mockAccount.metadata.keyring.type = KeyringType.ledger;
147154
expect(getAccountLabel(KeyringType.ledger, mockAccount)).toBe(

ui/pages/create-account/connect-hardware/account-list.js

+4-2
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ class AccountList extends Component {
5050
<div className="hw-connect__hdPath">
5151
<Dropdown
5252
className="hw-connect__hdPath__select"
53-
options={hdPaths[device.toLowerCase()]}
53+
options={hdPaths[device]}
5454
selectedOption={pathValue || selectedPath}
5555
onChange={(value) => {
5656
this.setPath(value);
@@ -73,7 +73,9 @@ class AccountList extends Component {
7373
HardwareDeviceNames.lattice,
7474
HardwareDeviceNames.trezor,
7575
HardwareDeviceNames.oneKey,
76-
].includes(device.toLowerCase());
76+
]
77+
.map((name) => name.toLowerCase())
78+
.includes(device.toLowerCase());
7779
return (
7880
<div className="hw-connect">
7981
<h3 className="hw-connect__unlock-title">

ui/pages/create-account/connect-hardware/account-list.test.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ const render = () => {
5555
ledger: LEDGER_HD_PATHS,
5656
lattice: LATTICE_HD_PATHS,
5757
trezor: TREZOR_HD_PATHS,
58-
onekey: TREZOR_HD_PATHS,
58+
oneKey: TREZOR_HD_PATHS,
5959
},
6060
onPathChange: jest.fn(),
6161
onAccountChange: jest.fn(),

ui/pages/create-account/connect-hardware/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ const HD_PATHS = {
7474
ledger: LEDGER_HD_PATHS,
7575
lattice: LATTICE_HD_PATHS,
7676
trezor: TREZOR_HD_PATHS,
77-
onekey: TREZOR_HD_PATHS,
77+
oneKey: TREZOR_HD_PATHS,
7878
};
7979

8080
const getErrorMessage = (errorCode, t) => {

ui/selectors/selectors.js

+1
Original file line numberDiff line numberDiff line change
@@ -358,6 +358,7 @@ export function getAccountTypeForKeyring(keyring) {
358358

359359
switch (type) {
360360
case KeyringType.trezor:
361+
case KeyringType.oneKey:
361362
case KeyringType.ledger:
362363
case KeyringType.lattice:
363364
case KeyringType.qr:

yarn.lock

+16-16
Original file line numberDiff line numberDiff line change
@@ -4822,9 +4822,9 @@ __metadata:
48224822
languageName: node
48234823
linkType: hard
48244824

4825-
"@metamask/accounts-controller@npm:^23.0.1":
4826-
version: 23.0.1
4827-
resolution: "@metamask/accounts-controller@npm:23.0.1"
4825+
"@metamask/accounts-controller@npm:^23.1.0":
4826+
version: 23.1.0
4827+
resolution: "@metamask/accounts-controller@npm:23.1.0"
48284828
dependencies:
48294829
"@ethereumjs/util": "npm:^8.1.0"
48304830
"@metamask/base-controller": "npm:^8.0.0"
@@ -4843,7 +4843,7 @@ __metadata:
48434843
"@metamask/providers": ^18.1.0
48444844
"@metamask/snaps-controllers": ^9.19.0
48454845
webextension-polyfill: ^0.10.0 || ^0.11.0 || ^0.12.0
4846-
checksum: 10/65ae8e09fe90de224ed7705dd23ef232ef2308cf5e8e7c1d3e4d13f9692c610e78553ca5d5095352f069a0038d587756bcbedcf14147ad5fd446bf855db69915
4846+
checksum: 10/f96be18434d1568ad8e8c9455c8d35a8924ffe8a59610833aec96db39d7df7e609ec1231533be973bbf63f23244bbfbc6a41c8b637aa0c3d36c391b43f6aba98
48474847
languageName: node
48484848
linkType: hard
48494849

@@ -5365,18 +5365,18 @@ __metadata:
53655365
languageName: node
53665366
linkType: hard
53675367

5368-
"@metamask/eth-trezor-keyring@npm:^6.0.0":
5369-
version: 6.0.0
5370-
resolution: "@metamask/eth-trezor-keyring@npm:6.0.0"
5368+
"@metamask/eth-trezor-keyring@npm:^6.1.0":
5369+
version: 6.1.0
5370+
resolution: "@metamask/eth-trezor-keyring@npm:6.1.0"
53715371
dependencies:
53725372
"@ethereumjs/tx": "npm:^4.2.0"
53735373
"@ethereumjs/util": "npm:^8.1.0"
5374-
"@metamask/eth-sig-util": "npm:^8.0.0"
5374+
"@metamask/eth-sig-util": "npm:^8.2.0"
53755375
"@trezor/connect-plugin-ethereum": "npm:^9.0.3"
53765376
"@trezor/connect-web": "npm:^9.1.11"
53775377
hdkey: "npm:^2.1.0"
53785378
tslib: "npm:^2.6.2"
5379-
checksum: 10/d5d799c60eeab963ef3e5533de472044b08b6f72652ecefbf26cec99784829bbcd706df57f6450ddb019c7dff7c41b0e0dad244aad62b7d03b51fc97755e2c4c
5379+
checksum: 10/993da25843c14b0db6b1760ad178c5a48d4f765faff4bff539fb43c518f54b74402c9edb7d4042f2699c05b9668b928770f0264cbd04046f6003c2640a83e73c
53805380
languageName: node
53815381
linkType: hard
53825382

@@ -5573,9 +5573,9 @@ __metadata:
55735573
languageName: node
55745574
linkType: hard
55755575

5576-
"@metamask/keyring-controller@npm:^19.0.7":
5577-
version: 19.0.7
5578-
resolution: "@metamask/keyring-controller@npm:19.0.7"
5576+
"@metamask/keyring-controller@npm:^19.0.7, @metamask/keyring-controller@npm:^19.1.0":
5577+
version: 19.1.0
5578+
resolution: "@metamask/keyring-controller@npm:19.1.0"
55795579
dependencies:
55805580
"@ethereumjs/util": "npm:^8.1.0"
55815581
"@keystonehq/metamask-airgapped-keyring": "npm:^0.14.1"
@@ -5591,7 +5591,7 @@ __metadata:
55915591
async-mutex: "npm:^0.5.0"
55925592
ethereumjs-wallet: "npm:^1.0.1"
55935593
immer: "npm:^9.0.6"
5594-
checksum: 10/9b385b2e4f17126ed992ff4b4ef2cfa86c7404fbda464b482f57ed2aa1254b0ea98b59f9182ee73a4a6dfc6eea93646950eced9370536be2837987556c3b16c3
5594+
checksum: 10/2121c8935f019edc92c1fef9901d9b67c1555905b96ac90640b3a991896c33261a6ca59fc23aeb995ca9f39d6c3b33a7b04d95ef48ec440f9683c3dd309bfd7b
55955595
languageName: node
55965596
linkType: hard
55975597

@@ -26627,7 +26627,7 @@ __metadata:
2662726627
"@metamask-institutional/types": "npm:^1.2.0"
2662826628
"@metamask/abi-utils": "npm:^2.0.2"
2662926629
"@metamask/account-watcher": "npm:^4.1.2"
26630-
"@metamask/accounts-controller": "npm:^23.0.1"
26630+
"@metamask/accounts-controller": "npm:^23.1.0"
2663126631
"@metamask/address-book-controller": "npm:^6.0.3"
2663226632
"@metamask/announcement-controller": "npm:^7.0.3"
2663326633
"@metamask/api-specs": "npm:^0.9.3"
@@ -26656,15 +26656,15 @@ __metadata:
2665626656
"@metamask/eth-sig-util": "npm:^7.0.1"
2665726657
"@metamask/eth-snap-keyring": "npm:^10.0.0"
2665826658
"@metamask/eth-token-tracker": "npm:^10.0.2"
26659-
"@metamask/eth-trezor-keyring": "npm:^6.0.0"
26659+
"@metamask/eth-trezor-keyring": "npm:^6.1.0"
2666026660
"@metamask/etherscan-link": "npm:^3.0.0"
2666126661
"@metamask/forwarder": "npm:^1.1.0"
2666226662
"@metamask/gas-fee-controller": "npm:^22.0.3"
2666326663
"@metamask/jazzicon": "npm:^2.0.0"
2666426664
"@metamask/json-rpc-engine": "npm:^10.0.0"
2666526665
"@metamask/json-rpc-middleware-stream": "npm:^8.0.4"
2666626666
"@metamask/keyring-api": "npm:^17.0.0"
26667-
"@metamask/keyring-controller": "npm:^19.0.7"
26667+
"@metamask/keyring-controller": "npm:^19.1.0"
2666826668
"@metamask/keyring-internal-api": "npm:^4.0.2"
2666926669
"@metamask/keyring-snap-client": "npm:^4.0.0"
2667026670
"@metamask/logging-controller": "npm:^6.0.4"

0 commit comments

Comments
 (0)