Skip to content

Commit 2feb7bc

Browse files
authored
Update apex buttons (#593)
* fix apex buttons * add waitUntilTextDisappears
1 parent 3a62d11 commit 2feb7bc

File tree

6 files changed

+67
-45
lines changed

6 files changed

+67
-45
lines changed

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@
4040
"dependencies": {
4141
"@grpc/grpc-js": "^1.14.0",
4242
"@grpc/proto-loader": "^0.8.0",
43-
"@ledgerhq/hw-transport-http": "^6.30.12",
4443
"@ledgerhq/errors": "^6.26.0",
44+
"@ledgerhq/hw-transport-http": "^6.30.12",
4545
"axios": "^1.12.2",
4646
"axios-retry": "^4.5.0",
4747
"dockerode": "^4.0.9",
@@ -56,7 +56,7 @@
5656
"@ledgerhq/hw-transport": "^6.31.12",
5757
"@types/dockerode": "^3.3.44",
5858
"@types/fs-extra": "^11.0.4",
59-
"@types/node": "^24.6.2",
59+
"@types/node": "^24.7.0",
6060
"@types/pngjs": "^6.0.5",
6161
"@types/randomstring": "^1.3.0",
6262
"@zondax/ledger-substrate": "^1.1.2",

pnpm-lock.yaml

Lines changed: 30 additions & 30 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Zemu.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -660,6 +660,28 @@ export default class Zemu {
660660
this.log('Screen changed')
661661
}
662662

663+
async waitUntilTextDisappears(text: string, timeout = 5000): Promise<void> {
664+
const startTime = Date.now()
665+
666+
while (true) {
667+
if (Date.now() - startTime > timeout) {
668+
throw new Error(`Timeout waiting for text "${text}" to disappear (${timeout}ms)`)
669+
}
670+
671+
const events = await this.getEvents()
672+
673+
const lastIndexWithText = events.findLastIndex((event) => event.text.includes(text))
674+
675+
// If text was never present, or if there are new events after the text appeared, we're done.
676+
if (lastIndexWithText === -1 || lastIndexWithText < events.length - 1) {
677+
return
678+
}
679+
680+
// Text is still the most recent thing on screen, keep waiting
681+
await Zemu.sleep(50)
682+
}
683+
}
684+
663685
eventsAreEqual(events1: IEvent[], events2: IEvent[]): boolean {
664686
if (events1.length !== events2.length) return false
665687
for (let i = 0; i < events1.length; i++) {

src/buttons_apex.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ export namespace apex_p {
7373
}
7474

7575
export const rejectButton: IButton = {
76-
x: 150,
76+
x: 95,
7777
y: 380,
7878
delay: 0.25,
7979
direction: SwipeDirection.NoSwipe,
@@ -87,10 +87,9 @@ export namespace apex_p {
8787
direction: SwipeDirection.NoSwipe,
8888
}
8989

90-
// TODO
9190
export const approveTapButton: IButton = {
92-
x: 205,
93-
y: 520,
91+
x: 180,
92+
y: 290,
9493
delay: 0.25,
9594
direction: SwipeDirection.NoSwipe,
9695
}

tsconfig.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"compilerOptions": {
33
"target": "es2022",
4+
"lib": ["es2023"],
45
"module": "commonjs",
56
"moduleResolution": "node",
67
"strict": true,

yarn.lock

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -576,12 +576,12 @@
576576
dependencies:
577577
undici-types "~5.26.4"
578578

579-
"@types/node@^24.6.2":
580-
version "24.6.2"
581-
resolved "https://registry.npmjs.org/@types/node/-/node-24.6.2.tgz#59b99878b6fed17e698e7d09e51c729c5877736a"
582-
integrity sha512-d2L25Y4j+W3ZlNAeMKcy7yDsK425ibcAOO2t7aPTz6gNMH0z2GThtwENCDc0d/Pw9wgyRqE5Px1wkV7naz8ang==
579+
"@types/node@^24.7.0":
580+
version "24.7.0"
581+
resolved "https://registry.npmjs.org/@types/node/-/node-24.7.0.tgz#a34c9f0d3401db396782e440317dd5d8373c286f"
582+
integrity sha512-IbKooQVqUBrlzWTi79E8Fw78l8k1RNtlDDNWsFZs7XonuQSJ8oNYfEeclhprUldXISRMLzBpILuKgPlIxm+/Yw==
583583
dependencies:
584-
undici-types "~7.13.0"
584+
undici-types "~7.14.0"
585585

586586
"@types/pngjs@^6.0.5":
587587
version "6.0.5"
@@ -1834,10 +1834,10 @@ undici-types@~7.10.0:
18341834
resolved "https://registry.npmjs.org/undici-types/-/undici-types-7.10.0.tgz#4ac2e058ce56b462b056e629cc6a02393d3ff350"
18351835
integrity sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==
18361836

1837-
undici-types@~7.13.0:
1838-
version "7.13.0"
1839-
resolved "https://registry.npmjs.org/undici-types/-/undici-types-7.13.0.tgz#a20ba7c0a2be0c97bd55c308069d29d167466bff"
1840-
integrity sha512-Ov2Rr9Sx+fRgagJ5AX0qvItZG/JKKoBRAVITs1zk7IqZGTJUwgUr7qoYBpWwakpWilTZFM98rG/AFRocu10iIQ==
1837+
undici-types@~7.14.0:
1838+
version "7.14.0"
1839+
resolved "https://registry.npmjs.org/undici-types/-/undici-types-7.14.0.tgz#4c037b32ca4d7d62fae042174604341588bc0840"
1840+
integrity sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA==
18411841

18421842
universalify@^2.0.0:
18431843
version "2.0.1"

0 commit comments

Comments
 (0)