Skip to content

Commit fbef3f9

Browse files
authored
feat/1047: Ledger transport updates, Updated Step 2 text (#1389)
* feat: bump transport packages, namadillo * fix: fix docs * feat: update step description to display which index of tx is to be signed
1 parent 6c52209 commit fbef3f9

File tree

6 files changed

+97
-40
lines changed

6 files changed

+97
-40
lines changed

apps/extension/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@
4141
"dependencies": {
4242
"@cosmjs/encoding": "^0.29.0",
4343
"@dao-xyz/borsh": "^5.1.5",
44-
"@ledgerhq/hw-transport": "^6.30.0",
45-
"@ledgerhq/hw-transport-webhid": "^6.28.0",
46-
"@ledgerhq/hw-transport-webusb": "^6.28.0",
44+
"@ledgerhq/hw-transport": "^6.31.4",
45+
"@ledgerhq/hw-transport-webhid": "^6.29.4",
46+
"@ledgerhq/hw-transport-webusb": "^6.29.4",
4747
"@zondax/ledger-namada": "^1.0.0",
4848
"bignumber.js": "^9.1.1",
4949
"buffer": "^6.0.3",

apps/extension/src/Approvals/ConfirmSignLedgerTx.tsx

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ type Props = {
2727

2828
const Step: React.FC<{
2929
title: string;
30-
description: string;
30+
description: React.ReactNode;
3131
icon: ReactNode;
3232
selected: boolean;
3333
disabled?: boolean;
@@ -60,7 +60,10 @@ export const ConfirmSignLedgerTx: React.FC<Props> = ({ details }) => {
6060
const [error, setError] = useState<string>();
6161
const [status, setStatus] = useState<Status>();
6262
const [statusInfo, setStatusInfo] = useState("");
63+
const [stepTwoDescription, setStepTwoDescription] =
64+
useState<React.ReactNode>();
6365
const [isLedgerConnected, setIsLedgerConnected] = useState(false);
66+
const [ledger, setLedger] = useState<Ledger>();
6467
const { msgId, signer } = details;
6568

6669
useEffect(() => {
@@ -75,7 +78,7 @@ export const ConfirmSignLedgerTx: React.FC<Props> = ({ details }) => {
7578
path: string
7679
): Promise<ResponseSign> => {
7780
// Open ledger transport
78-
setStatusInfo(`Review and approve transaction on your Ledger`);
81+
setStatusInfo("Review and approve transaction on your Ledger");
7982

8083
// Sign with Ledger
8184
const signature = await ledger.sign(bytes, path);
@@ -91,7 +94,7 @@ export const ConfirmSignLedgerTx: React.FC<Props> = ({ details }) => {
9194
async (e: React.FormEvent): Promise<void> => {
9295
e.preventDefault();
9396
setIsLedgerConnected(false);
94-
setStatusInfo(`Connecting Ledger...`);
97+
setStatusInfo("Connecting Ledger...");
9598
setStatus(Status.Pending);
9699

97100
const ledger = await Ledger.init().catch((e) => {
@@ -102,6 +105,7 @@ export const ConfirmSignLedgerTx: React.FC<Props> = ({ details }) => {
102105
if (!ledger) {
103106
return;
104107
}
108+
setLedger(ledger);
105109

106110
const {
107111
version: { returnCode, errorMessage },
@@ -115,7 +119,7 @@ export const ConfirmSignLedgerTx: React.FC<Props> = ({ details }) => {
115119
}
116120

117121
setIsLedgerConnected(true);
118-
setStatusInfo("Preparing transaction...");
122+
setStepTwoDescription("Preparing transaction...");
119123

120124
try {
121125
const accountDetails = await requester.sendMessage(
@@ -144,15 +148,34 @@ export const ConfirmSignLedgerTx: React.FC<Props> = ({ details }) => {
144148

145149
const signatures: ResponseSign[] = [];
146150

151+
let txIndex = 0;
152+
const txCount = pendingTxs.length;
153+
const stepTwoText = "Approve on your device";
154+
155+
if (txCount === 1) {
156+
setStepTwoDescription(<p>{stepTwoText}</p>);
157+
}
158+
147159
for await (const tx of pendingTxs) {
160+
if (txCount > 1) {
161+
setStepTwoDescription(
162+
<p>
163+
{stepTwoText}
164+
<br />
165+
Tx {txIndex + 1} of {txCount}
166+
</p>
167+
);
168+
}
148169
const signature = await signLedgerTx(
149170
ledger,
150171
fromBase64(tx),
151172
bip44Path
152173
);
153174
signatures.push(signature);
175+
txIndex++;
154176
}
155177

178+
setStepTwoDescription(<p>Submitting...</p>);
156179
await requester.sendMessage(
157180
Ports.Background,
158181
new SubmitApprovedSignLedgerTxMsg(msgId, signatures)
@@ -170,6 +193,9 @@ export const ConfirmSignLedgerTx: React.FC<Props> = ({ details }) => {
170193
);
171194

172195
const handleRejectButton = useCallback(() => {
196+
if (ledger) {
197+
void ledger.closeTransport();
198+
}
173199
void closeCurrentTab();
174200
}, []);
175201

@@ -187,7 +213,7 @@ export const ConfirmSignLedgerTx: React.FC<Props> = ({ details }) => {
187213
/>
188214
<Step
189215
title="Step 2"
190-
description="Review and approve transaction on your ledger"
216+
description={stepTwoDescription}
191217
icon={<ApproveIcon />}
192218
selected={isLedgerConnected}
193219
/>

packages/sdk/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ The Namada SDK package
77
### Installation
88

99
```bash
10-
npm install @heliaxdev/namada-sdk
10+
npm install @namada/sdk
1111

1212
# Or, via yarn
13-
yarn add @heliaxdev/namada-sdk
13+
yarn add @namada/sdk
1414
```
1515

1616
### Initializing the SDK
@@ -19,8 +19,8 @@ As this package depends on Wasm compiled from Rust to integrate with Namada, thi
1919
developing for the Web. The following is a quick overview of some of the features of the SDK package:
2020

2121
```typescript
22-
import { Sdk, getSdk } from "@heliaxdev/namada-sdk/web";
23-
import sdkInit from "@heliaxdev/namada-sdk/web-init";
22+
import { Sdk, getSdk } from "@namada/sdk/web";
23+
import sdkInit from "@namada/sdk/web-init";
2424

2525
// Load Tx props from types package
2626
import { BondProps, WrapperTxProps } from "@namada/types";

packages/sdk/docs/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ The Namada SDK package
99
### Installation
1010

1111
```bash
12-
npm install @heliaxdev/namada-sdk
12+
npm install @namada/sdk
1313

1414
# Or, via yarn
15-
yarn add @heliaxdev/namada-sdk
15+
yarn add @namada/sdk
1616
```
1717

1818
### Initializing the SDK
@@ -21,8 +21,8 @@ As this package depends on Wasm compiled from Rust to integrate with Namada, thi
2121
developing for the Web. The following is a quick overview of some of the features of the SDK package:
2222

2323
```typescript
24-
import { Sdk, getSdk } from "@heliaxdev/namada-sdk/web";
25-
import sdkInit from "@heliaxdev/namada-sdk/web-init";
24+
import { Sdk, getSdk } from "@namada/sdk/web";
25+
import sdkInit from "@namada/sdk/web-init";
2626

2727
// Load Tx props from types package
2828
import { BondProps, WrapperTxProps } from "@namada/types";

packages/sdk/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,9 @@
6262
"dependencies": {
6363
"@cosmjs/encoding": "^0.29.0",
6464
"@dao-xyz/borsh": "^5.1.5",
65-
"@ledgerhq/hw-transport": "^6.30.0",
66-
"@ledgerhq/hw-transport-webhid": "^6.28.0",
67-
"@ledgerhq/hw-transport-webusb": "^6.28.0",
65+
"@ledgerhq/hw-transport": "^6.31.4",
66+
"@ledgerhq/hw-transport-webhid": "^6.29.4",
67+
"@ledgerhq/hw-transport-webusb": "^6.29.4",
6868
"@zondax/ledger-namada": "^1.0.0",
6969
"bignumber.js": "^9.1.1",
7070
"buffer": "^6.0.3",

yarn.lock

Lines changed: 52 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3233,38 +3233,57 @@ __metadata:
32333233
languageName: node
32343234
linkType: hard
32353235

3236+
"@ledgerhq/devices@npm:^8.4.4":
3237+
version: 8.4.4
3238+
resolution: "@ledgerhq/devices@npm:8.4.4"
3239+
dependencies:
3240+
"@ledgerhq/errors": "npm:^6.19.1"
3241+
"@ledgerhq/logs": "npm:^6.12.0"
3242+
rxjs: "npm:^7.8.1"
3243+
semver: "npm:^7.3.5"
3244+
checksum: ea4c3dada124c5c0aad59837e1c399bf2f41f8b4da5c996aaf73bbf8719082598808947c505dc728266ff83fc5fea71170d3f0d18a9b5d59e6e2737ae8a38f39
3245+
languageName: node
3246+
linkType: hard
3247+
32363248
"@ledgerhq/errors@npm:^6.18.0":
32373249
version: 6.18.0
32383250
resolution: "@ledgerhq/errors@npm:6.18.0"
32393251
checksum: 0dad36bd049c1eb346b83d2b99c1dde0445c53ae3a2f73d4f9a7f5e278ef61d1e589cc0b30bb81dd3082ad9a751f7d82b662214088e19b09769bded45447fb54
32403252
languageName: node
32413253
linkType: hard
32423254

3243-
"@ledgerhq/hw-transport-webhid@npm:^6.28.0":
3244-
version: 6.29.2
3245-
resolution: "@ledgerhq/hw-transport-webhid@npm:6.29.2"
3255+
"@ledgerhq/errors@npm:^6.19.1":
3256+
version: 6.19.1
3257+
resolution: "@ledgerhq/errors@npm:6.19.1"
3258+
checksum: 5cfbd5ff5e4316afc88c456a74d3dc0e0032dafd88f656e80a5cb5b297a75ba6701c53ce38ef3f38a84a8591c499b0b9248cdf352ff34c97a550440cdaddd8d2
3259+
languageName: node
3260+
linkType: hard
3261+
3262+
"@ledgerhq/hw-transport-webhid@npm:^6.29.4":
3263+
version: 6.29.4
3264+
resolution: "@ledgerhq/hw-transport-webhid@npm:6.29.4"
32463265
dependencies:
3247-
"@ledgerhq/devices": "npm:^8.4.2"
3248-
"@ledgerhq/errors": "npm:^6.18.0"
3249-
"@ledgerhq/hw-transport": "npm:^6.31.2"
3266+
"@ledgerhq/devices": "npm:^8.4.4"
3267+
"@ledgerhq/errors": "npm:^6.19.1"
3268+
"@ledgerhq/hw-transport": "npm:^6.31.4"
32503269
"@ledgerhq/logs": "npm:^6.12.0"
3251-
checksum: 86a610bf99eb44fbd93a7d0afc621f13a5f43e63fc86c64f686f88cc528d0ea62a51f674b8a6148aaa4330cc8ef2c2b2e461bbea5a71ae39305f82124a83377b
3270+
checksum: 85db88aa9c9ca4911645b9421e1a1ce828c48c32b03b7ed15caed8f8e24749dc31007540ec4f0088603d1a315274dbc06d30e4cb71c86b57160b721a664fc8dd
32523271
languageName: node
32533272
linkType: hard
32543273

3255-
"@ledgerhq/hw-transport-webusb@npm:^6.28.0":
3256-
version: 6.29.2
3257-
resolution: "@ledgerhq/hw-transport-webusb@npm:6.29.2"
3274+
"@ledgerhq/hw-transport-webusb@npm:^6.29.4":
3275+
version: 6.29.4
3276+
resolution: "@ledgerhq/hw-transport-webusb@npm:6.29.4"
32583277
dependencies:
3259-
"@ledgerhq/devices": "npm:^8.4.2"
3260-
"@ledgerhq/errors": "npm:^6.18.0"
3261-
"@ledgerhq/hw-transport": "npm:^6.31.2"
3278+
"@ledgerhq/devices": "npm:^8.4.4"
3279+
"@ledgerhq/errors": "npm:^6.19.1"
3280+
"@ledgerhq/hw-transport": "npm:^6.31.4"
32623281
"@ledgerhq/logs": "npm:^6.12.0"
3263-
checksum: 6499398c90ccd1210d9a6b91846df49001b0de7b74a97a8df0020fc35f22b90f3b886499c5237cdf198e914a616f310ccd22238f5136df46699561f6dd2412ed
3282+
checksum: cddd324c12de64e755422c6dc0d509bc344f2f048c2b743bc5737db9c097ffb6c201fc577d971543e196ccb34a72507450ed3262a2b6d39c753424d299fafc2f
32643283
languageName: node
32653284
linkType: hard
32663285

3267-
"@ledgerhq/hw-transport@npm:^6.30.0, @ledgerhq/hw-transport@npm:^6.30.6, @ledgerhq/hw-transport@npm:^6.31.2":
3286+
"@ledgerhq/hw-transport@npm:^6.30.6":
32683287
version: 6.31.2
32693288
resolution: "@ledgerhq/hw-transport@npm:6.31.2"
32703289
dependencies:
@@ -3276,6 +3295,18 @@ __metadata:
32763295
languageName: node
32773296
linkType: hard
32783297

3298+
"@ledgerhq/hw-transport@npm:^6.31.4":
3299+
version: 6.31.4
3300+
resolution: "@ledgerhq/hw-transport@npm:6.31.4"
3301+
dependencies:
3302+
"@ledgerhq/devices": "npm:^8.4.4"
3303+
"@ledgerhq/errors": "npm:^6.19.1"
3304+
"@ledgerhq/logs": "npm:^6.12.0"
3305+
events: "npm:^3.3.0"
3306+
checksum: 033acb802d991788efcda9223356528d0987a268e94c34cbafde499541722363e7cfa6e2734365ef3282c0a80a69f4964a6d728690ff7494662a650516530b02
3307+
languageName: node
3308+
linkType: hard
3309+
32793310
"@ledgerhq/logs@npm:^6.12.0":
32803311
version: 6.12.0
32813312
resolution: "@ledgerhq/logs@npm:6.12.0"
@@ -3441,9 +3472,9 @@ __metadata:
34413472
"@babel/plugin-transform-modules-commonjs": "npm:^7.20.11"
34423473
"@cosmjs/encoding": "npm:^0.29.0"
34433474
"@dao-xyz/borsh": "npm:^5.1.5"
3444-
"@ledgerhq/hw-transport": "npm:^6.30.0"
3445-
"@ledgerhq/hw-transport-webhid": "npm:^6.28.0"
3446-
"@ledgerhq/hw-transport-webusb": "npm:^6.28.0"
3475+
"@ledgerhq/hw-transport": "npm:^6.31.4"
3476+
"@ledgerhq/hw-transport-webhid": "npm:^6.29.4"
3477+
"@ledgerhq/hw-transport-webusb": "npm:^6.29.4"
34473478
"@svgr/webpack": "npm:^6.3.1"
34483479
"@types/chrome": "npm:^0.0.237"
34493480
"@types/dompurify": "npm:^3.0.5"
@@ -3719,9 +3750,9 @@ __metadata:
37193750
"@babel/preset-typescript": "npm:^7.23.3"
37203751
"@cosmjs/encoding": "npm:^0.29.0"
37213752
"@dao-xyz/borsh": "npm:^5.1.5"
3722-
"@ledgerhq/hw-transport": "npm:^6.30.0"
3723-
"@ledgerhq/hw-transport-webhid": "npm:^6.28.0"
3724-
"@ledgerhq/hw-transport-webusb": "npm:^6.28.0"
3753+
"@ledgerhq/hw-transport": "npm:^6.31.4"
3754+
"@ledgerhq/hw-transport-webhid": "npm:^6.29.4"
3755+
"@ledgerhq/hw-transport-webusb": "npm:^6.29.4"
37253756
"@release-it/conventional-changelog": "npm:^8.0.1"
37263757
"@types/jest": "npm:^29.5.12"
37273758
"@types/node": "npm:^20.11.4"

0 commit comments

Comments
 (0)