Skip to content

Commit

Permalink
Merge branch 'develop' into feat/new-user-import
Browse files Browse the repository at this point in the history
  • Loading branch information
cs1707 committed Nov 22, 2024
2 parents b9b1d69 + cc613b2 commit 987544e
Show file tree
Hide file tree
Showing 23 changed files with 371 additions and 165 deletions.
5 changes: 5 additions & 0 deletions _raw/locales/en/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -2546,6 +2546,11 @@
"fast": "Fast",
"normal": "Normal",
"doNotReserve": "Don't reserve Gas"
},
"OpenExternalWebsiteModal": {
"title": "You're Leaving Rabby Wallet",
"content": "You're about to visit an external website. Rabby Wallet is not responsible for the content or security of this site.",
"button": "Continue"
}
},
"global": {
Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "rabby",
"version": "0.92.99",
"version": "0.92.100",
"description": "A browser plugin for DeFi users",
"scripts": {
"clean": "mkdir -p dist && rm -rf dist/*",
Expand Down Expand Up @@ -60,7 +60,7 @@
"@rabby-wallet/eth-watch-keyring": "1.0.0",
"@rabby-wallet/gnosis-sdk": "1.3.9",
"@rabby-wallet/page-provider": "0.4.2",
"@rabby-wallet/rabby-action": "0.1.4",
"@rabby-wallet/rabby-action": "0.1.8",
"@rabby-wallet/rabby-api": "0.8.5",
"@rabby-wallet/rabby-security-engine": "2.0.7",
"@rabby-wallet/rabby-swap": "0.0.42",
Expand Down
26 changes: 26 additions & 0 deletions patches/@ledgerhq+hw-app-eth+6.39.0.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
diff --git a/node_modules/@ledgerhq/hw-app-eth/lib-es/services/ledger/contracts.js b/node_modules/@ledgerhq/hw-app-eth/lib-es/services/ledger/contracts.js
index 806a539..b488b25 100644
--- a/node_modules/@ledgerhq/hw-app-eth/lib-es/services/ledger/contracts.js
+++ b/node_modules/@ledgerhq/hw-app-eth/lib-es/services/ledger/contracts.js
@@ -19,7 +19,7 @@ export const loadInfosForContractMethod = (contractAddress, selector, chainId, u
if (pluginBaseURL) {
const url = `${pluginBaseURL}/plugins/ethereum.json`;
data = yield axios
- .get(`${pluginBaseURL}/plugins/ethereum.json`)
+ .get(`${pluginBaseURL}/plugins/ethereum.json`, { timeout: 5000 })
.then(r => r.data)
.catch(e => {
log("error", "could not fetch from " + url + ": " + String(e));
diff --git a/node_modules/@ledgerhq/hw-app-eth/lib-es/services/ledger/erc20.js b/node_modules/@ledgerhq/hw-app-eth/lib-es/services/ledger/erc20.js
index 16a933e..a2a0f1a 100644
--- a/node_modules/@ledgerhq/hw-app-eth/lib-es/services/ledger/erc20.js
+++ b/node_modules/@ledgerhq/hw-app-eth/lib-es/services/ledger/erc20.js
@@ -21,7 +21,7 @@ export const findERC20SignaturesInfo = (userLoadConfig, chainId) => __awaiter(vo
return null;
const url = `${cryptoassetsBaseURL}/evm/${chainId}/erc20-signatures.json`;
const blob = yield axios
- .get(url)
+ .get(url, { timeout: 5000 })
.then(({ data }) => {
if (!data || typeof data !== "string") {
throw new Error(`ERC20 signatures for chainId ${chainId} file is malformed ${url}`);
22 changes: 22 additions & 0 deletions patches/@metamask+eth-sig-util+5.1.0.patch
Original file line number Diff line number Diff line change
@@ -1,3 +1,25 @@
diff --git a/node_modules/@metamask/eth-sig-util/dist/ethereumjs-abi-utils.d.ts b/node_modules/@metamask/eth-sig-util/dist/ethereumjs-abi-utils.d.ts
index 45a660e..9b3f105 100644
--- a/node_modules/@metamask/eth-sig-util/dist/ethereumjs-abi-utils.d.ts
+++ b/node_modules/@metamask/eth-sig-util/dist/ethereumjs-abi-utils.d.ts
@@ -20,3 +20,5 @@ export declare function parseNumber(arg: string | number | BN): BN;
* @param values
*/
export declare function rawEncode(types: string[], values: (BN | Buffer | string | number | string[] | number[])[]): Buffer;
+
+export declare function encodeSingle(type: string, arg: BN | Buffer | string | number | string[] | number[]): Buffer;
diff --git a/node_modules/@metamask/eth-sig-util/dist/ethereumjs-abi-utils.js b/node_modules/@metamask/eth-sig-util/dist/ethereumjs-abi-utils.js
index 1a11fec..7c78143 100644
--- a/node_modules/@metamask/eth-sig-util/dist/ethereumjs-abi-utils.js
+++ b/node_modules/@metamask/eth-sig-util/dist/ethereumjs-abi-utils.js
@@ -352,6 +352,7 @@ function encodeSingle(type, arg) {
}
throw new Error(`Unsupported or invalid type: ${JSON.stringify(type)}`);
}
+exports.encodeSingle = encodeSingle;
// Is a type dynamic?
/**
* @param type
diff --git a/node_modules/@metamask/eth-sig-util/dist/index.d.ts b/node_modules/@metamask/eth-sig-util/dist/index.d.ts
index 48ddf59..58c9ae7 100644
--- a/node_modules/@metamask/eth-sig-util/dist/index.d.ts
Expand Down
21 changes: 20 additions & 1 deletion src/background/service/keyring/eth-ledger-keyring.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,12 @@ import { SignHelper, LedgerHDPathType } from './helper';
const type = 'Ledger Hardware';

import HDPathType = LedgerHDPathType;
import Browser from 'webextension-polyfill';
import {
LedgerAction,
OffscreenCommunicationTarget,
} from '@/constant/offscreen-communication';
import { isManifestV3 } from '@/utils/env';

const HD_PATH_BASE = {
[HDPathType.BIP44]: "m/44'/60'/0'/0",
Expand Down Expand Up @@ -70,6 +76,17 @@ class LedgerBridgeKeyring {
this.app = null;
this.usedHDPathTypeList = {};
this.deserialize(opts);

if (isManifestV3) {
Browser.runtime.onMessage.addListener((request) => {
if (
request.target === OffscreenCommunicationTarget.extension &&
request.event === LedgerAction.ledgerDeviceDisconnect
) {
this.cleanUp();
}
});
}
}

serialize() {
Expand Down Expand Up @@ -145,7 +162,9 @@ class LedgerBridgeKeyring {

async cleanUp() {
this.app = null;
if (this.transport) this.transport.close();
if (this.transport) {
await this.transport.close();
}
this.transport = null;
}

Expand Down
4 changes: 4 additions & 0 deletions src/constant/offscreen-communication.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,3 +49,7 @@ export enum LatticeAction {
export enum KnownOrigins {
lattice = 'https://lattice.gridplus.io',
}

export enum LedgerAction {
ledgerDeviceDisconnect = 'ledger-device-disconnect',
}
2 changes: 1 addition & 1 deletion src/manifest/mv2/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"manifest_version": 2,
"name": "__MSG_appName__",
"short_name": "__MSG_appName__",
"version": "0.92.99",
"version": "0.92.100",
"default_locale": "en",
"description": "__MSG_appDescription__",
"icons": {
Expand Down
2 changes: 1 addition & 1 deletion src/manifest/mv3/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"manifest_version": 3,
"name": "__MSG_appName__",
"short_name": "__MSG_appName__",
"version": "0.92.99",
"version": "0.92.100",
"default_locale": "en",
"description": "__MSG_appDescription__",
"icons": {
Expand Down
17 changes: 17 additions & 0 deletions src/offscreen/scripts/ledger.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import {
LedgerAction,
OffscreenCommunicationTarget,
} from '@/constant/offscreen-communication';
import { ledgerUSBVendorId } from '@ledgerhq/devices';
import Browser from 'webextension-polyfill';

export function initLedger() {
navigator.hid.addEventListener('disconnect', ({ device }) => {
if (device.vendorId === ledgerUSBVendorId) {
Browser.runtime.sendMessage({
target: OffscreenCommunicationTarget.extension,
event: LedgerAction.ledgerDeviceDisconnect,
});
}
});
}
2 changes: 2 additions & 0 deletions src/offscreen/scripts/offscreen.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
import { initBitBox02 } from './bitbox02';
import { initImKey } from './imkey';
import initLattice from './lattice';
import { initLedger } from './ledger';
import { initOneKey } from './onekey';

initImKey();
initOneKey();
initBitBox02();
initLattice();
initLedger();

// keep alive when ui page is open
let pageCount = 0;
Expand Down
17 changes: 17 additions & 0 deletions src/ui/assets/component/external-link-alert.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
15 changes: 7 additions & 8 deletions src/ui/component/Ecology/EcologyNavBar.tsx
Original file line number Diff line number Diff line change
@@ -1,23 +1,22 @@
import { findChain } from '@/utils/chain';
import clsx from 'clsx';
import React, { useMemo } from 'react';
import { useTranslation } from 'react-i18next';
import { useHistory } from 'react-router-dom';
import { ReactComponent as RcIconBack } from 'ui/assets/icon-back-cc.svg';
import { EcoChains } from 'ui/views/Ecology/constants';

interface Props {
className?: string;
style?: React.CSSProperties;
chainId: number;
}

const findChain = (id: number) => {
return EcoChains.find((chain) => chain.id === id);
};

export const EcologyNavBar = ({ className, style, chainId }: Props) => {
const chain = useMemo(
() =>
findChain({
id: chainId,
}),
[chainId]
);
const chain = useMemo(() => findChain(chainId), [chainId]);
const history = useHistory();

const { t } = useTranslation();
Expand Down
16 changes: 16 additions & 0 deletions src/ui/style/index.less
Original file line number Diff line number Diff line change
Expand Up @@ -423,3 +423,19 @@ button:focus {
background-clip: text;
color: transparent;
}

.external-link-alert-modal {
background: var(--r-neutral-bg-1);
border-radius: 16px;
overflow: hidden;
padding-bottom: 0;
.ant-modal-confirm-content {
padding: 0;
}
.ant-modal-confirm-content, .ant-modal-content {
background: var(--r-neutral-bg-1);
}
.ant-modal-content {
box-shadow: none;
}
}
55 changes: 0 additions & 55 deletions src/ui/utils/webapi.ts

This file was deleted.

Loading

0 comments on commit 987544e

Please sign in to comment.