Skip to content

Commit

Permalink
Merge pull request #7327 from LedgerHQ/bugfix/live-13353
Browse files Browse the repository at this point in the history
[LIVE-13353][LLD] Wrong onboarding redirection between Stax and Flex
  • Loading branch information
jiyuzhuang authored Jul 17, 2024
2 parents fa11d97 + 8dd0fb1 commit c34b88f
Show file tree
Hide file tree
Showing 10 changed files with 42 additions and 17 deletions.
5 changes: 5 additions & 0 deletions .changeset/selfish-experts-double.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"ledger-live-desktop": patch
---

Fix onboarding error when device connected.
5 changes: 5 additions & 0 deletions .changeset/tricky-steaks-hope.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@ledgerhq/types-devices": patch
---

Rename QRCodeDevices by DevicesWithTouchScreen
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ import { closePlatformAppDrawer } from "~/renderer/actions/UI";
import { CompleteExchangeError } from "@ledgerhq/live-common/exchange/error";
import { currencySettingsLocaleSelector, SettingsState } from "~/renderer/reducers/settings";
import { accountNameSelector, WalletState } from "@ledgerhq/live-wallet/store";
import { isSyncOnboardingSupported } from "@ledgerhq/live-common/device/use-cases/screenSpecs";

export const AnimationWrapper = styled.div`
width: 600px;
Expand Down Expand Up @@ -663,7 +664,15 @@ export const DeviceNotOnboardedErrorComponent = withV3StyleProvider(
setTrackingSource("device action open onboarding button");
dispatch(closeAllModal());
setDrawer(undefined);
history.push(device?.modelId === "stax" ? "/sync-onboarding/manual" : "/onboarding");
if (!device?.modelId) {
history.push("/onboarding");
} else {
history.push(
isSyncOnboardingSupported(device.modelId)
? `/sync-onboarding/${device.modelId}`
: "/onboarding",
);
}
}, [device?.modelId, dispatch, history, setDrawer]);

return (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import Animation from "~/renderer/animations";
import useTheme from "~/renderer/hooks/useTheme";
import { useSelector } from "react-redux";
import { getCurrentDevice } from "~/renderer/reducers/devices";
import { isSyncOnboardingSupported } from "@ledgerhq/live-common/device/use-cases/isSyncOnboardingSupported";

export type SyncOnboardingDeviceConnectionSearchingProps = {
deviceModelId: DeviceModelId;
Expand All @@ -26,7 +27,11 @@ const SyncOnboardingDeviceConnectionSearching = ({
const currentDevice = useSelector(getCurrentDevice);

useEffect(() => {
if (currentDevice && currentDevice.modelId !== deviceModelId) {
if (
currentDevice &&
currentDevice.modelId !== deviceModelId &&
!isSyncOnboardingSupported(deviceModelId)
) {
setDeviceModelId(currentDevice.modelId);
history.replace("/onboarding/select-use-case");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,15 @@ const modelIds = [
];

for (const modelId of modelIds) {
test.describe.parallel(`[${modelId}] SyncOnboarding with stax selected`, () => {
test.describe.parallel(`[${modelId}] SyncOnboarding`, () => {
test(`[${modelId}] Manual @smoke`, async ({ page }) => {
const onboardingPage = new OnboardingPage(page);

await page.evaluate(id => {
await page.evaluate((id: DeviceModelId) => {
window.ledger.addDevice({
deviceId: "42",
deviceName: `Ledger test ${id}`,
modelId: id as DeviceModelId,
modelId: id,
wired: true,
});
}, modelId);
Expand All @@ -32,7 +32,7 @@ for (const modelId of modelIds) {
});

await test.step(`[${modelId}] Select stax device`, async () => {
await onboardingPage.selectDevice("stax");
await onboardingPage.selectDevice(modelId as "nanoS" | "nanoX" | "nanoSP" | "stax");
});

await test.step(`[${modelId}] Take screenshot of main screen`, async () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ import {
getFeesUnit,
} from "@ledgerhq/live-common/account/index";
import { TFunction } from "react-i18next";
import { DeviceModelId, QRCodeDevices } from "@ledgerhq/types-devices";
import { DeviceModelId } from "@ledgerhq/types-devices";
import type { DeviceModelInfo } from "@ledgerhq/types-live";
import { StackNavigationProp } from "@react-navigation/stack";
import { ParamListBase } from "@react-navigation/native";
Expand Down Expand Up @@ -63,6 +63,7 @@ import Config from "react-native-config";
import { WalletState, accountNameWithDefaultSelector } from "@ledgerhq/live-wallet/store";
import { SettingsState } from "~/reducers/types";
import { RootStackParamList } from "../RootNavigator/types/RootNavigator";
import { isSyncOnboardingSupported } from "@ledgerhq/live-common/device/use-cases/screenSpecs";

export const Wrapper = styled(Flex).attrs({
flex: 1,
Expand Down Expand Up @@ -773,7 +774,7 @@ export function renderDeviceNotOnboarded({
navigation: StackNavigationProp<ParamListBase>;
}) {
const navigateToOnboarding = () => {
if (QRCodeDevices.includes(device.modelId)) {
if (isSyncOnboardingSupported(device.modelId)) {
// On pairing success, navigate to the Sync Onboarding Companion
navigation.navigate(NavigatorName.BaseOnboarding, {
screen: NavigatorName.SyncOnboarding,
Expand Down
4 changes: 2 additions & 2 deletions apps/ledger-live-mobile/src/components/ValidateOnDevice.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import { getDeviceModel } from "@ledgerhq/devices";
import { useTheme } from "@react-navigation/native";
import styled from "styled-components/native";
import { Flex } from "@ledgerhq/native-ui";
import { QRCodeDevices } from "@ledgerhq/types-devices";
import { DevicesWithTouchScreen } from "@ledgerhq/types-devices";
import Alert from "./Alert";
import perFamilyTransactionConfirmFields from "../generated/TransactionConfirmFields";
import { DataRowUnitValue, TextValueField } from "./ValidateOnDeviceDataRow";
Expand Down Expand Up @@ -170,7 +170,7 @@ export default function ValidateOnDevice({
<AnimationContainer>
<Animation
source={getDeviceAnimation({ device, key: "sign", theme })}
style={QRCodeDevices.includes(device.modelId) ? { height: 210 } : {}}
style={DevicesWithTouchScreen.includes(device.modelId) ? { height: 210 } : {}}
/>
</AnimationContainer>
{Title ? (
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Device, QRCodeDevices } from "@ledgerhq/types-devices";
import { Device, DevicesWithTouchScreen } from "@ledgerhq/types-devices";
import React, { useCallback } from "react";
import { Flex } from "@ledgerhq/native-ui";
import { SafeAreaView } from "react-native-safe-area-context";
Expand Down Expand Up @@ -70,7 +70,7 @@ export const BleDevicePairingFlow: React.FC<Props> = ({ navigation }) => {
<Flex px={6} flex={1}>
<BleDevicePairingFlowComponent
key={keyToReset}
filterByDeviceModelId={QRCodeDevices}
filterByDeviceModelId={DevicesWithTouchScreen}
onPairingSuccess={onPairingSuccess}
requestToSetHeaderOptions={requestToSetHeaderOptions}
/>
Expand Down
6 changes: 3 additions & 3 deletions libs/ledgerjs/packages/types-devices/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Ledger types for devices and transport.
#### Table of Contents

* [DeviceModelId](#devicemodelid)
* [QRCodeDevices](#qrcodedevices)
* [DevicesWithTouchScreen](#deviceswithtouchscreen)
* [DeviceModel](#devicemodel)
* [ChargingModes](#chargingmodes)
* [BatteryStatusFlags](#batterystatusflags)
Expand All @@ -31,9 +31,9 @@ Ledger types for devices and transport.

DeviceModelId is a unique identifier to identify the model of a Ledger hardware wallet.

### QRCodeDevices
### DevicesWithTouchScreen

QRCodeDevices is a list of DeviceModelId of whom the Ledger device can present a QR code.
DevicesWithTouchScreen is a list of DeviceModelId of whom the Ledger device can present a QR code.

Type: [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[DeviceModelId](#devicemodelid)>

Expand Down
4 changes: 2 additions & 2 deletions libs/ledgerjs/packages/types-devices/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ export enum DeviceModelId {
}

/**
* QRCodeDevices is a list of DeviceModelId of whom the Ledger device can present a QR code.
* DevicesWithTouchScreen is a list of DeviceModelId of whom the Ledger device can present a QR code.
*/
export const QRCodeDevices: DeviceModelId[] = [DeviceModelId.stax, DeviceModelId.europa];
export const DevicesWithTouchScreen: DeviceModelId[] = [DeviceModelId.stax, DeviceModelId.europa];

/**
* a DeviceModel contains all the information of a specific Ledger hardware wallet model.
Expand Down

1 comment on commit c34b88f

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Bot] Testing with 'Nitrogen' ❌ 4 txs ($7.30) ⏲ 5min 33s

❌ 1 specs have problems: Stellar

What is the bot and how does it work? Everything is documented here!

❌ 4 mutation errors
necessary accounts resynced in 0.15ms
▬ Stellar 5.4.1 on nanoS 2.1.0
→ FROM undefined: 16.161 XLM (576ops) (GC25SBJ3F2XGWRTS3DGPCNFAGQLNDBFUKUJREJMHVV2JIUBZSVY2GAHZ on 44'/148'/1') sep5#1 js:2:stellar:GC25SBJ3F2XGWRTS3DGPCNFAGQLNDBFUKUJREJMHVV2JIUBZSVY2GAHZ:sep5 (! sum of ops 16.1747557 XLM)  TokenAccount USDC: 0 usdc (0 ops)
max spendable ~14.661
★ using mutation 'move ~50% XLM'
→ TO undefined: 15.1933 XLM (577ops) (GA4A2FH4YYI2RXPUC3NPGZQP7XX4CEJNREB27XVX7B7D5RIA3KOLSKTI on 44'/148'/2') sep5#2 js:2:stellar:GA4A2FH4YYI2RXPUC3NPGZQP7XX4CEJNREB27XVX7B7D5RIA3KOLSKTI:sep5
✔️ transaction 
    SEND 6.9916577 XLM
    TO GA4A2FH4YYI2RXPUC3NPGZQP7XX4CEJNREB27XVX7B7D5RIA3KOLSKTI
    with fees=0.0005 XLM
  memo=Ledger Live
STATUS (1179ms)
  amount: 6.9916577 XLM
  estimated fees: 0.0005 XLM
  total spent: 6.9921577 XLM
errors: 
warnings: 
⚠️ Error: device action timeout. Recent events was:
{"text":"EB27XVX7B7D5RIA3K","x":11,"y":17,"w":111,"h":32}
{"text":"Destination (4/4)","x":20,"y":3,"w":102,"h":32}
{"text":"OLSKTI","x":45,"y":17,"w":77,"h":32}
{"text":"Sign","x":41,"y":3,"w":128,"h":32}
{"text":"Transaction","x":41,"y":17,"w":128,"h":32}
(totally spent 61.2s – ends at 2024-07-17T10:49:05.082Z)
necessary accounts resynced in 0.25ms
▬ Stellar 5.4.1 on nanoS 2.1.0
→ FROM undefined: 15.1933 XLM (577ops) (GA4A2FH4YYI2RXPUC3NPGZQP7XX4CEJNREB27XVX7B7D5RIA3KOLSKTI on 44'/148'/2') sep5#2 js:2:stellar:GA4A2FH4YYI2RXPUC3NPGZQP7XX4CEJNREB27XVX7B7D5RIA3KOLSKTI:sep5 (! sum of ops 15.2054652 XLM)  TokenAccount USDC: 0 usdc (0 ops)
max spendable ~13.6932
★ using mutation 'move ~50% XLM'
→ TO undefined: 16.161 XLM (576ops) (GC25SBJ3F2XGWRTS3DGPCNFAGQLNDBFUKUJREJMHVV2JIUBZSVY2GAHZ on 44'/148'/1') sep5#1 js:2:stellar:GC25SBJ3F2XGWRTS3DGPCNFAGQLNDBFUKUJREJMHVV2JIUBZSVY2GAHZ:sep5
✔️ transaction 
    SEND 7.1727094 XLM
    TO GC25SBJ3F2XGWRTS3DGPCNFAGQLNDBFUKUJREJMHVV2JIUBZSVY2GAHZ
    with fees=0.0005 XLM
STATUS (1161ms)
  amount: 7.1727094 XLM
  estimated fees: 0.0005 XLM
  total spent: 7.1732094 XLM
errors: 
warnings: 
⚠️ Error: device action timeout. Recent events was:
{"text":"KUJREJMHVV2JIUBZS","x":10,"y":17,"w":112,"h":32}
{"text":"Destination (4/4)","x":20,"y":3,"w":102,"h":32}
{"text":"VY2GAHZ","x":40,"y":17,"w":82,"h":32}
{"text":"Sign","x":41,"y":3,"w":128,"h":32}
{"text":"Transaction","x":41,"y":17,"w":128,"h":32}
(totally spent 61.2s – ends at 2024-07-17T10:49:05.085Z)
necessary accounts resynced in 0.21ms
▬ Stellar 5.4.1 on nanoS 2.1.0
→ FROM undefined: 1.73943 XLM (554ops) (GDTKZ5E53DELQO33QAYYR6TS4JX44MP2PGCRGKY3RE42IT7PUNLU2SHM on 44'/148'/3') sep5#3 js:2:stellar:GDTKZ5E53DELQO33QAYYR6TS4JX44MP2PGCRGKY3RE42IT7PUNLU2SHM:sep5 (! sum of ops 1.7531513 XLM)  TokenAccount USDC: 0 usdc (0 ops)
max spendable ~0.239411
★ using mutation 'Send max XLM'
→ TO undefined: 16.161 XLM (576ops) (GC25SBJ3F2XGWRTS3DGPCNFAGQLNDBFUKUJREJMHVV2JIUBZSVY2GAHZ on 44'/148'/1') sep5#1 js:2:stellar:GC25SBJ3F2XGWRTS3DGPCNFAGQLNDBFUKUJREJMHVV2JIUBZSVY2GAHZ:sep5
✔️ transaction 
    SEND MAX
    TO GC25SBJ3F2XGWRTS3DGPCNFAGQLNDBFUKUJREJMHVV2JIUBZSVY2GAHZ
    with fees=0.0005 XLM
  memo=Ledger Live
STATUS (1226ms)
  amount: 0.2389212 XLM
  estimated fees: 0.0005 XLM
  total spent: 0.2389212 XLM
errors: 
warnings: 
⚠️ Error: device action timeout. Recent events was:
{"text":"KUJREJMHVV2JIUBZS","x":10,"y":17,"w":112,"h":32}
{"text":"Destination (4/4)","x":20,"y":3,"w":102,"h":32}
{"text":"VY2GAHZ","x":40,"y":17,"w":82,"h":32}
{"text":"Sign","x":41,"y":3,"w":128,"h":32}
{"text":"Transaction","x":41,"y":17,"w":128,"h":32}
(totally spent 61.3s – ends at 2024-07-17T10:49:05.087Z)
necessary accounts resynced in 0.23ms
▬ Stellar 5.4.1 on nanoS 2.1.0
→ FROM undefined: 31.884 XLM (514ops) (GBV2ROL25KKDSFCZC2TQPMUEN567YQHRWTRBYHCO5AKYWVIV4JKJ56AF on 44'/148'/4') sep5#4 js:2:stellar:GBV2ROL25KKDSFCZC2TQPMUEN567YQHRWTRBYHCO5AKYWVIV4JKJ56AF:sep5 (! sum of ops 31.8921926 XLM)  TokenAccount USDC: 0 usdc (0 ops)
max spendable ~30.384
★ using mutation 'Send max XLM'
→ TO undefined: 16.161 XLM (576ops) (GC25SBJ3F2XGWRTS3DGPCNFAGQLNDBFUKUJREJMHVV2JIUBZSVY2GAHZ on 44'/148'/1') sep5#1 js:2:stellar:GC25SBJ3F2XGWRTS3DGPCNFAGQLNDBFUKUJREJMHVV2JIUBZSVY2GAHZ:sep5
✔️ transaction 
    SEND MAX
    TO GC25SBJ3F2XGWRTS3DGPCNFAGQLNDBFUKUJREJMHVV2JIUBZSVY2GAHZ
    with fees=0.0005 XLM
STATUS (903ms)
  amount: 30.3835411 XLM
  estimated fees: 0.0005 XLM
  total spent: 30.3835411 XLM
errors: 
warnings: 
⚠️ Error: device action timeout. Recent events was:
{"text":"KUJREJMHVV2JIUBZS","x":10,"y":17,"w":112,"h":32}
{"text":"Destination (4/4)","x":20,"y":3,"w":102,"h":32}
{"text":"VY2GAHZ","x":40,"y":17,"w":82,"h":32}
{"text":"Sign","x":41,"y":3,"w":128,"h":32}
{"text":"Transaction","x":41,"y":17,"w":128,"h":32}
(totally spent 61s – ends at 2024-07-17T10:49:05.089Z)
⚠️ 1 spec hints
  • Spec Stellar:
    • mutations should define a testDestination(): move ~50% XLM, Send max XLM
Details of the 4 mutations

Spec Stellar (6)

Spec Stellar found 6 Stellar accounts. Will use Stellar 5.4.1 on nanoS 2.1.0
undefined: 1.5005 XLM (580ops) (GDJPZPOWITPCBX3TIHB6N7E4WCHS6JBZKSNWGU34QYCJXKWBTUZY5RYC on 44'/148'/0') sep5#0 js:2:stellar:GDJPZPOWITPCBX3TIHB6N7E4WCHS6JBZKSNWGU34QYCJXKWBTUZY5RYC:sep5
undefined: 16.161 XLM (576ops) (GC25SBJ3F2XGWRTS3DGPCNFAGQLNDBFUKUJREJMHVV2JIUBZSVY2GAHZ on 44'/148'/1') sep5#1 js:2:stellar:GC25SBJ3F2XGWRTS3DGPCNFAGQLNDBFUKUJREJMHVV2JIUBZSVY2GAHZ:sep5
undefined: 15.1933 XLM (577ops) (GA4A2FH4YYI2RXPUC3NPGZQP7XX4CEJNREB27XVX7B7D5RIA3KOLSKTI on 44'/148'/2') sep5#2 js:2:stellar:GA4A2FH4YYI2RXPUC3NPGZQP7XX4CEJNREB27XVX7B7D5RIA3KOLSKTI:sep5
undefined: 1.73943 XLM (554ops) (GDTKZ5E53DELQO33QAYYR6TS4JX44MP2PGCRGKY3RE42IT7PUNLU2SHM on 44'/148'/3') sep5#3 js:2:stellar:GDTKZ5E53DELQO33QAYYR6TS4JX44MP2PGCRGKY3RE42IT7PUNLU2SHM:sep5
undefined: 31.884 XLM (514ops) (GBV2ROL25KKDSFCZC2TQPMUEN567YQHRWTRBYHCO5AKYWVIV4JKJ56AF on 44'/148'/4') sep5#4 js:2:stellar:GBV2ROL25KKDSFCZC2TQPMUEN567YQHRWTRBYHCO5AKYWVIV4JKJ56AF:sep5
undefined: 0 XLM (0ops) (GCMN2KYJPPHB4TMXXF2OZPMWVM5EQSDD76IMFOMET7YMN64VJDVHVNCM on 44'/148'/5') sep5#5 js:2:stellar:GCMN2KYJPPHB4TMXXF2OZPMWVM5EQSDD76IMFOMET7YMN64VJDVHVNCM:sep5
necessary accounts resynced in 0.15ms
▬ Stellar 5.4.1 on nanoS 2.1.0
→ FROM undefined: 16.161 XLM (576ops) (GC25SBJ3F2XGWRTS3DGPCNFAGQLNDBFUKUJREJMHVV2JIUBZSVY2GAHZ on 44'/148'/1') sep5#1 js:2:stellar:GC25SBJ3F2XGWRTS3DGPCNFAGQLNDBFUKUJREJMHVV2JIUBZSVY2GAHZ:sep5 (! sum of ops 16.1747557 XLM)  TokenAccount USDC: 0 usdc (0 ops)
max spendable ~14.661
★ using mutation 'move ~50% XLM'
→ TO undefined: 15.1933 XLM (577ops) (GA4A2FH4YYI2RXPUC3NPGZQP7XX4CEJNREB27XVX7B7D5RIA3KOLSKTI on 44'/148'/2') sep5#2 js:2:stellar:GA4A2FH4YYI2RXPUC3NPGZQP7XX4CEJNREB27XVX7B7D5RIA3KOLSKTI:sep5
✔️ transaction 
    SEND 6.9916577 XLM
    TO GA4A2FH4YYI2RXPUC3NPGZQP7XX4CEJNREB27XVX7B7D5RIA3KOLSKTI
    with fees=0.0005 XLM
  memo=Ledger Live
STATUS (1179ms)
  amount: 6.9916577 XLM
  estimated fees: 0.0005 XLM
  total spent: 6.9921577 XLM
errors: 
warnings: 
⚠️ Error: device action timeout. Recent events was:
{"text":"EB27XVX7B7D5RIA3K","x":11,"y":17,"w":111,"h":32}
{"text":"Destination (4/4)","x":20,"y":3,"w":102,"h":32}
{"text":"OLSKTI","x":45,"y":17,"w":77,"h":32}
{"text":"Sign","x":41,"y":3,"w":128,"h":32}
{"text":"Transaction","x":41,"y":17,"w":128,"h":32}
(totally spent 61.2s – ends at 2024-07-17T10:49:05.093Z)
necessary accounts resynced in 0.25ms
▬ Stellar 5.4.1 on nanoS 2.1.0
→ FROM undefined: 15.1933 XLM (577ops) (GA4A2FH4YYI2RXPUC3NPGZQP7XX4CEJNREB27XVX7B7D5RIA3KOLSKTI on 44'/148'/2') sep5#2 js:2:stellar:GA4A2FH4YYI2RXPUC3NPGZQP7XX4CEJNREB27XVX7B7D5RIA3KOLSKTI:sep5 (! sum of ops 15.2054652 XLM)  TokenAccount USDC: 0 usdc (0 ops)
max spendable ~13.6932
★ using mutation 'move ~50% XLM'
→ TO undefined: 16.161 XLM (576ops) (GC25SBJ3F2XGWRTS3DGPCNFAGQLNDBFUKUJREJMHVV2JIUBZSVY2GAHZ on 44'/148'/1') sep5#1 js:2:stellar:GC25SBJ3F2XGWRTS3DGPCNFAGQLNDBFUKUJREJMHVV2JIUBZSVY2GAHZ:sep5
✔️ transaction 
    SEND 7.1727094 XLM
    TO GC25SBJ3F2XGWRTS3DGPCNFAGQLNDBFUKUJREJMHVV2JIUBZSVY2GAHZ
    with fees=0.0005 XLM
STATUS (1161ms)
  amount: 7.1727094 XLM
  estimated fees: 0.0005 XLM
  total spent: 7.1732094 XLM
errors: 
warnings: 
⚠️ Error: device action timeout. Recent events was:
{"text":"KUJREJMHVV2JIUBZS","x":10,"y":17,"w":112,"h":32}
{"text":"Destination (4/4)","x":20,"y":3,"w":102,"h":32}
{"text":"VY2GAHZ","x":40,"y":17,"w":82,"h":32}
{"text":"Sign","x":41,"y":3,"w":128,"h":32}
{"text":"Transaction","x":41,"y":17,"w":128,"h":32}
(totally spent 61.2s – ends at 2024-07-17T10:49:05.095Z)
necessary accounts resynced in 0.21ms
▬ Stellar 5.4.1 on nanoS 2.1.0
→ FROM undefined: 1.73943 XLM (554ops) (GDTKZ5E53DELQO33QAYYR6TS4JX44MP2PGCRGKY3RE42IT7PUNLU2SHM on 44'/148'/3') sep5#3 js:2:stellar:GDTKZ5E53DELQO33QAYYR6TS4JX44MP2PGCRGKY3RE42IT7PUNLU2SHM:sep5 (! sum of ops 1.7531513 XLM)  TokenAccount USDC: 0 usdc (0 ops)
max spendable ~0.239411
★ using mutation 'Send max XLM'
→ TO undefined: 16.161 XLM (576ops) (GC25SBJ3F2XGWRTS3DGPCNFAGQLNDBFUKUJREJMHVV2JIUBZSVY2GAHZ on 44'/148'/1') sep5#1 js:2:stellar:GC25SBJ3F2XGWRTS3DGPCNFAGQLNDBFUKUJREJMHVV2JIUBZSVY2GAHZ:sep5
✔️ transaction 
    SEND MAX
    TO GC25SBJ3F2XGWRTS3DGPCNFAGQLNDBFUKUJREJMHVV2JIUBZSVY2GAHZ
    with fees=0.0005 XLM
  memo=Ledger Live
STATUS (1226ms)
  amount: 0.2389212 XLM
  estimated fees: 0.0005 XLM
  total spent: 0.2389212 XLM
errors: 
warnings: 
⚠️ Error: device action timeout. Recent events was:
{"text":"KUJREJMHVV2JIUBZS","x":10,"y":17,"w":112,"h":32}
{"text":"Destination (4/4)","x":20,"y":3,"w":102,"h":32}
{"text":"VY2GAHZ","x":40,"y":17,"w":82,"h":32}
{"text":"Sign","x":41,"y":3,"w":128,"h":32}
{"text":"Transaction","x":41,"y":17,"w":128,"h":32}
(totally spent 61.3s – ends at 2024-07-17T10:49:05.098Z)
necessary accounts resynced in 0.23ms
▬ Stellar 5.4.1 on nanoS 2.1.0
→ FROM undefined: 31.884 XLM (514ops) (GBV2ROL25KKDSFCZC2TQPMUEN567YQHRWTRBYHCO5AKYWVIV4JKJ56AF on 44'/148'/4') sep5#4 js:2:stellar:GBV2ROL25KKDSFCZC2TQPMUEN567YQHRWTRBYHCO5AKYWVIV4JKJ56AF:sep5 (! sum of ops 31.8921926 XLM)  TokenAccount USDC: 0 usdc (0 ops)
max spendable ~30.384
★ using mutation 'Send max XLM'
→ TO undefined: 16.161 XLM (576ops) (GC25SBJ3F2XGWRTS3DGPCNFAGQLNDBFUKUJREJMHVV2JIUBZSVY2GAHZ on 44'/148'/1') sep5#1 js:2:stellar:GC25SBJ3F2XGWRTS3DGPCNFAGQLNDBFUKUJREJMHVV2JIUBZSVY2GAHZ:sep5
✔️ transaction 
    SEND MAX
    TO GC25SBJ3F2XGWRTS3DGPCNFAGQLNDBFUKUJREJMHVV2JIUBZSVY2GAHZ
    with fees=0.0005 XLM
STATUS (903ms)
  amount: 30.3835411 XLM
  estimated fees: 0.0005 XLM
  total spent: 30.3835411 XLM
errors: 
warnings: 
⚠️ Error: device action timeout. Recent events was:
{"text":"KUJREJMHVV2JIUBZS","x":10,"y":17,"w":112,"h":32}
{"text":"Destination (4/4)","x":20,"y":3,"w":102,"h":32}
{"text":"VY2GAHZ","x":40,"y":17,"w":82,"h":32}
{"text":"Sign","x":41,"y":3,"w":128,"h":32}
{"text":"Transaction","x":41,"y":17,"w":128,"h":32}
(totally spent 61s – ends at 2024-07-17T10:49:05.099Z)

Details of the 2 uncovered mutations

Spec Stellar (2)

  • add USDC asset: XLM balance is too low 1 (2)
  • move ~50% USDC asset: XLM balance is too low (2)
Portfolio ($7.30) – Details of the 1 currencies
Spec (accounts) State Remaining Runs (est) funds?
Stellar (6) 2801 ops , 58.9783 XLM ($7.30) 💪 999+ GDJPZPOWITPCBX3TIHB6N7E4WCHS6JBZKSNWGU34QYCJXKWBTUZY5RYC
undefined: 1.5005 XLM (580ops) (GDJPZPOWITPCBX3TIHB6N7E4WCHS6JBZKSNWGU34QYCJXKWBTUZY5RYC on 44'/148'/0') sep5#0 js:2:stellar:GDJPZPOWITPCBX3TIHB6N7E4WCHS6JBZKSNWGU34QYCJXKWBTUZY5RYC:sep5
undefined: 16.161 XLM (576ops) (GC25SBJ3F2XGWRTS3DGPCNFAGQLNDBFUKUJREJMHVV2JIUBZSVY2GAHZ on 44'/148'/1') sep5#1 js:2:stellar:GC25SBJ3F2XGWRTS3DGPCNFAGQLNDBFUKUJREJMHVV2JIUBZSVY2GAHZ:sep5
undefined: 15.1933 XLM (577ops) (GA4A2FH4YYI2RXPUC3NPGZQP7XX4CEJNREB27XVX7B7D5RIA3KOLSKTI on 44'/148'/2') sep5#2 js:2:stellar:GA4A2FH4YYI2RXPUC3NPGZQP7XX4CEJNREB27XVX7B7D5RIA3KOLSKTI:sep5
undefined: 1.73943 XLM (554ops) (GDTKZ5E53DELQO33QAYYR6TS4JX44MP2PGCRGKY3RE42IT7PUNLU2SHM on 44'/148'/3') sep5#3 js:2:stellar:GDTKZ5E53DELQO33QAYYR6TS4JX44MP2PGCRGKY3RE42IT7PUNLU2SHM:sep5
undefined: 31.884 XLM (514ops) (GBV2ROL25KKDSFCZC2TQPMUEN567YQHRWTRBYHCO5AKYWVIV4JKJ56AF on 44'/148'/4') sep5#4 js:2:stellar:GBV2ROL25KKDSFCZC2TQPMUEN567YQHRWTRBYHCO5AKYWVIV4JKJ56AF:sep5
undefined: 0 XLM (0ops) (GCMN2KYJPPHB4TMXXF2OZPMWVM5EQSDD76IMFOMET7YMN64VJDVHVNCM on 44'/148'/5') sep5#5 js:2:stellar:GCMN2KYJPPHB4TMXXF2OZPMWVM5EQSDD76IMFOMET7YMN64VJDVHVNCM:sep5
Performance ⏲ 5min 33s

Time spent for each spec: (total across mutations)

Spec (accounts) preload scan re-sync tx status sign op broadcast test destination test
TOTAL 1.14ms 76.4s 1.46ms 4.5s N/A N/A N/A N/A
Stellar (5) 1.14ms 76.4s 1.46ms 4.5s N/A N/A N/A N/A

What is the bot and how does it work? Everything is documented here!

Please sign in to comment.