Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OUTDATED - Smartling translations are completed for PR#9230 from feat/coin-mina #9620

Closed
Changes from 1 commit
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
07ad02a
feat(mina): add init files and coin mina
lawRathod May 14, 2024
93cce06
feat(mina): add getAddress support
lawRathod May 15, 2024
cbabd04
feat(mina): add sync
lawRathod Jun 9, 2024
886d2a6
refac(mina): using new conventions
lawRathod Jun 9, 2024
4b87802
feat(mina): support send using cli
lawRathod Jun 10, 2024
4ef7fd6
feat(mina): add support on lld
lawRathod Jun 30, 2024
4521e9b
feat(mina): add address validation
lawRathod Jul 2, 2024
decba36
feat(mina): add support for llm
lawRathod Jul 2, 2024
69ec37e
fix(mina): improve llm
lawRathod Jul 4, 2024
29a19ea
feat: add mina svg icon
lawRathod Jul 9, 2024
de1cb32
refac(mina): update derivation path
lawRathod Jul 11, 2024
86c50a3
test(mina): add bridge integration tests
lawRathod Jul 11, 2024
c05be95
test(mina): fix integration tests
lawRathod Jul 21, 2024
c068f8c
test(mina): add bot tests specs
lawRathod Jul 30, 2024
4dbbb2a
refac(mina): finalize mainnet usage
lawRathod Aug 18, 2024
0e7212d
chore(mina): changeset
lawRathod Aug 18, 2024
a6c7642
chore(mina): post refac fixed
lawRathod Sep 20, 2024
644e2f2
fix(mina): failing build
lawRathod Jan 30, 2025
0c273ea
refac(mina): use @zondax/ledger-mina-js
lawRathod Feb 7, 2025
65bdf34
chore(mina): update rosetta node endpoint
lawRathod Feb 10, 2025
1f2ace9
tests(mina): update integration test snapshots
lawRathod Feb 10, 2025
60d028f
refac(mina): add bot tests and minor fixes
lawRathod Feb 13, 2025
4efbc69
feat(mina): many fixes, bot tests working and added inc sync
lawRathod Feb 17, 2025
9df1e44
refac(mina): fixes and restructure
lawRathod Feb 18, 2025
00f2edb
chore(mina): remove unimported files
lawRathod Feb 18, 2025
2b2b07a
tests(mina): fix integration tests
lawRathod Feb 24, 2025
1ee6500
chore(mina): fix unimported file error on ci
lawRathod Feb 24, 2025
a5cf9f9
tests(mina): add bot tests app version
lawRathod Feb 24, 2025
fc1682d
tests(mina): fix unit tests
lawRathod Feb 24, 2025
a0ad5f8
fix(mina): unimported
lawRathod Feb 24, 2025
60efa13
tests(mina): formatCurrencyUnit test snapshot update
lawRathod Feb 24, 2025
4fa0a59
refac(mina): remove unused code and cleanup
lawRathod Feb 24, 2025
51a8124
tests(mina): fix app not found on bot tests
lawRathod Feb 25, 2025
ac2e7e3
tests(mina): fix bot test
lawRathod Feb 26, 2025
1f52032
refac(mina): change operation value calc
lawRathod Feb 26, 2025
a193a9c
refac(mina): format fee add and minor changes
lawRathod Feb 26, 2025
243fd98
test(mina): final bot tests fix
lawRathod Feb 26, 2025
d53dd71
tests(mina): integration test snapshot update
lawRathod Feb 27, 2025
276f3d7
chore(mina): post rebase updates
lawRathod Mar 3, 2025
1d144e9
chore(mina): post refac update
lawRathod Mar 12, 2025
f3813e1
chore(mina): add new warnings for llm
lawRathod Mar 14, 2025
f4c6032
File apps/ledger-live-desktop/static/i18n/en/app.json was translated …
smartling-github-connector[bot] Mar 21, 2025
af48396
File apps/ledger-live-mobile/src/locales/en/common.json was translate…
smartling-github-connector[bot] Mar 21, 2025
ef6a823
File apps/ledger-live-desktop/static/i18n/en/app.json was translated …
smartling-github-connector[bot] Mar 21, 2025
aaf009d
File apps/ledger-live-desktop/static/i18n/en/app.json was translated …
smartling-github-connector[bot] Mar 21, 2025
3dfb0f2
File apps/ledger-live-mobile/src/locales/en/common.json was translate…
smartling-github-connector[bot] Mar 21, 2025
da4da6d
File apps/ledger-live-desktop/static/i18n/en/app.json was translated …
smartling-github-connector[bot] Mar 21, 2025
6a7dbf3
File apps/ledger-live-desktop/static/i18n/en/app.json was translated …
smartling-github-connector[bot] Mar 21, 2025
04fe035
File apps/ledger-live-desktop/static/i18n/en/app.json was translated …
smartling-github-connector[bot] Mar 21, 2025
61ce1db
File apps/ledger-live-desktop/static/i18n/en/app.json was translated …
smartling-github-connector[bot] Mar 21, 2025
8b3d60f
File apps/ledger-live-mobile/src/locales/en/common.json was translate…
smartling-github-connector[bot] Mar 21, 2025
6292671
File apps/ledger-live-mobile/src/locales/en/common.json was translate…
smartling-github-connector[bot] Mar 21, 2025
43d99aa
File apps/ledger-live-mobile/src/locales/en/common.json was translate…
smartling-github-connector[bot] Mar 21, 2025
f70bf06
File apps/ledger-live-mobile/src/locales/en/common.json was translate…
smartling-github-connector[bot] Mar 21, 2025
3b540ee
File apps/ledger-live-desktop/static/i18n/en/app.json was translated …
smartling-github-connector[bot] Mar 21, 2025
062c335
File apps/ledger-live-mobile/src/locales/en/common.json was translate…
smartling-github-connector[bot] Mar 21, 2025
fea9379
File apps/ledger-live-mobile/src/locales/en/common.json was translate…
smartling-github-connector[bot] Mar 21, 2025
ce61e98
File apps/ledger-live-desktop/static/i18n/en/app.json was translated …
smartling-github-connector[bot] Mar 21, 2025
0ac07cf
File apps/ledger-live-mobile/src/locales/en/common.json was translate…
smartling-github-connector[bot] Mar 21, 2025
e595d02
File apps/ledger-live-desktop/static/i18n/en/app.json was translated …
smartling-github-connector[bot] Mar 21, 2025
4a93ade
File apps/ledger-live-mobile/src/locales/en/common.json was translate…
smartling-github-connector[bot] Mar 21, 2025
3ab0b3c
File apps/ledger-live-desktop/static/i18n/en/app.json was translated …
smartling-github-connector[bot] Mar 21, 2025
c91c5d1
File apps/ledger-live-mobile/src/locales/en/common.json was translate…
smartling-github-connector[bot] Mar 21, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
feat(mina): add support for llm
lawRathod committed Mar 14, 2025
commit decba3628c16908d1f8c24fbec24c7efdb4c85bb
Original file line number Diff line number Diff line change
@@ -29,6 +29,7 @@ import {
} from "@ledgerhq/live-common/families/solana/types";
import type { Transaction as RippleTransaction } from "@ledgerhq/live-common/families/xrp/types";
import type { Transaction as ICPTransaction } from "@ledgerhq/live-common/families/internet_computer/types";
import type { Transaction as MinaTransaction } from "@ledgerhq/live-common/families/mina/types";
import type { Transaction as StellarTransaction } from "@ledgerhq/live-common/families/stellar/types";
import type { Transaction as StacksTransaction } from "@ledgerhq/live-common/families/stacks/types";
import type { Transaction as CasperTransaction } from "@ledgerhq/live-common/families/casper/types";
@@ -307,6 +308,13 @@ export type SendFundsNavigatorStackParamList = {
transaction: ICPTransaction;
currentNavigation: ScreenName.SignTransactionSummary | ScreenName.SignTransactionSummary;
};
[ScreenName.MinaEditMemo]: {
accountId: string;
account: Account;
parentId?: string;
transaction: MinaTransaction;
currentNavigation: ScreenName.SignTransactionSummary | ScreenName.SignTransactionSummary;
};
[ScreenName.StacksEditMemo]: {
accountId: string;
parentId?: string;
Original file line number Diff line number Diff line change
@@ -23,6 +23,7 @@ import {
} from "@ledgerhq/live-common/families/solana/types";
import { Transaction as HederaTransaction } from "@ledgerhq/live-common/families/hedera/types";
import type { Transaction as ICPTransaction } from "@ledgerhq/live-common/families/internet_computer/types";
import type { Transaction as MinaTransaction } from "@ledgerhq/live-common/families/mina/types";
import type { Transaction as RippleTransaction } from "@ledgerhq/live-common/families/xrp/types";
import type { Transaction as StellarTransaction } from "@ledgerhq/live-common/families/stellar/types";
import type { Transaction as StacksTransaction } from "@ledgerhq/live-common/families/stacks/types";
@@ -278,6 +279,22 @@ export type SignTransactionNavigatorParamList = {
| ScreenName.SendSelectDevice
| ScreenName.SwapForm;
};
[ScreenName.MinaEditMemo]: {
accountId: string;
account: Account;
parentId?: string;
transaction: MinaTransaction;
currentNavigation:
| ScreenName.SignTransactionSummary
| ScreenName.SignTransactionSummary
| ScreenName.SendSummary
| ScreenName.SwapForm;
nextNavigation:
| ScreenName.SignTransactionSelectDevice
| ScreenName.SignTransactionSelectDevice
| ScreenName.SendSelectDevice
| ScreenName.SwapForm;
};
[ScreenName.CasperEditTransferId]: {
accountId: string;
account: Account;
Original file line number Diff line number Diff line change
@@ -27,6 +27,7 @@ import {
SolanaAccount,
Transaction as SolanaTransaction,
} from "@ledgerhq/live-common/families/solana/types";
import type { Transaction as MinaTransaction } from "@ledgerhq/live-common/families/mina/types";
import type { Transaction as StacksTransaction } from "@ledgerhq/live-common/families/stacks/types";
import type { Transaction as StellarTransaction } from "@ledgerhq/live-common/families/stellar/types";
import type { Transaction as TonTransaction } from "@ledgerhq/live-common/families/ton/types";
@@ -270,6 +271,13 @@ export type SwapNavigatorParamList = {
transaction: ICPTransaction;
currentNavigation: ScreenName.SignTransactionSummary | ScreenName.SignTransactionSummary;
};
[ScreenName.MinaEditMemo]: {
accountId: string;
account: Account;
parentId?: string;
transaction: MinaTransaction;
currentNavigation: ScreenName.SignTransactionSummary | ScreenName.SignTransactionSummary;
};

[ScreenName.StacksEditMemo]: {
accountId: string;
2 changes: 2 additions & 0 deletions apps/ledger-live-mobile/src/const/navigation.ts
Original file line number Diff line number Diff line change
@@ -321,6 +321,8 @@ export enum ScreenName {

// ton
TonEditComment = "TonEditComment",
// mina
MinaEditMemo = "MinaEditMemo",

// Algorand
AlgorandEditMemo = "AlgorandEditMemo",
1 change: 1 addition & 0 deletions apps/ledger-live-mobile/src/families/index.ts
Original file line number Diff line number Diff line change
@@ -7,6 +7,7 @@ export * from "./multiversx";
export * from "./evm";
export * from "./hedera";
export * from "./internet_computer";
export * from "./mina";
export * from "./near";
export * from "./polkadot";
export * from "./xrp";
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import React from "react";
import AccountSubHeader from "~/components/AccountSubHeader";

function InternetComputerAccountSubHeader() {
return <AccountSubHeader family="Mina" team="Zondax" />;
}

export default InternetComputerAccountSubHeader;
121 changes: 121 additions & 0 deletions apps/ledger-live-mobile/src/families/mina/ScreenEditMemo.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
import invariant from "invariant";
import React, { useCallback, useState } from "react";
import { View, StyleSheet, ScrollView } from "react-native";
import { SafeAreaView } from "react-native-safe-area-context";
import { useSelector } from "react-redux";
import { useTranslation } from "react-i18next";
import i18next from "i18next";
import { getAccountBridge } from "@ledgerhq/live-common/bridge/index";
import { useIsFocused, useTheme } from "@react-navigation/native";
import KeyboardView from "~/components/KeyboardView";
import Button from "~/components/Button";
import { ScreenName } from "~/const";
import { accountScreenSelector } from "~/reducers/accounts";
import TextInput from "~/components/FocusedTextInput";
import { BaseComposite, StackNavigatorProps } from "~/components/RootNavigator/types/helpers";
import { SendFundsNavigatorStackParamList } from "~/components/RootNavigator/types/SendFundsNavigator";
import { SignTransactionNavigatorParamList } from "~/components/RootNavigator/types/SignTransactionNavigator";
import { SwapNavigatorParamList } from "~/components/RootNavigator/types/SwapNavigator";

type NavigationProps = BaseComposite<
StackNavigatorProps<
SendFundsNavigatorStackParamList | SignTransactionNavigatorParamList | SwapNavigatorParamList,
ScreenName.MinaEditMemo
>
>;

function MinaEditMemo({ navigation, route }: NavigationProps) {
const isFocused = useIsFocused();
const { colors } = useTheme();
const { t } = useTranslation();
const { account } = useSelector(accountScreenSelector(route));
invariant(account, "account is required");
const [memo, setMemo] = useState(route.params?.transaction.memo);
const onChangeMemoValue = useCallback((str: string) => {
let value: string = str;
value = str.replace(/\D/g, "");
setMemo(value === "" ? undefined : value);
}, []);
const onValidateText = useCallback(() => {
const bridge = getAccountBridge(account);
const { transaction } = route.params;
// @ts-expect-error FIXME: No current / next navigation params?
navigation.navigate(ScreenName.SendSummary, {
accountId: account.id,
transaction: bridge.updateTransaction(transaction, {
memo: memo && memo.toString(),
}),
});
}, [navigation, route.params, account, memo]);
return (
<SafeAreaView style={styles.root}>
<KeyboardView
style={[
styles.body,
{
backgroundColor: colors.background,
},
]}
>
<ScrollView contentContainerStyle={styles.root} keyboardShouldPersistTaps="always">
{isFocused && (
<TextInput
allowFontScaling={false}
autoFocus
style={[
styles.textInputAS,
{
color: colors.darkBlue,
},
]}
value={memo?.toString() ?? ""}
placeholder="Eg: 1658490330"
keyboardType="number-pad"
returnKeyType="done"
onChangeText={onChangeMemoValue}
onSubmitEditing={onValidateText}
/>
)}

<View style={styles.flex}>
<Button
event="MinaEditMemo"
type="primary"
title={t("send.summary.validateMemo")}
onPress={onValidateText}
containerStyle={styles.buttonContainer}
/>
</View>
</ScrollView>
</KeyboardView>
</SafeAreaView>
);
}

const options = {
title: i18next.t("send.summary.memo.value"),
headerLeft: undefined,
};
export { MinaEditMemo as component, options };
const styles = StyleSheet.create({
root: {
flex: 1,
},
body: {
flexDirection: "column",
flex: 1,
},
textInputAS: {
padding: 16,
fontSize: 30,
},
buttonContainer: {
marginHorizontal: 16,
},
flex: {
flex: 1,
flexDirection: "column",
justifyContent: "flex-end",
paddingBottom: 16,
},
});
81 changes: 81 additions & 0 deletions apps/ledger-live-mobile/src/families/mina/SendRowMemo.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
import React, { useCallback } from "react";
import { View, StyleSheet } from "react-native";
import { Trans } from "react-i18next";
import { useNavigation, useRoute, useTheme } from "@react-navigation/native";
import type { Account } from "@ledgerhq/types-live";
import type { Transaction as MinaTransaction } from "@ledgerhq/live-common/families/mina/types";
import LText from "~/components/LText";
import { ScreenName } from "~/const";
import SummaryRow from "~/screens/SendFunds/SummaryRow";
import { BaseComposite, StackNavigatorProps } from "~/components/RootNavigator/types/helpers";
import { SendFundsNavigatorStackParamList } from "~/components/RootNavigator/types/SendFundsNavigator";
import { SignTransactionNavigatorParamList } from "~/components/RootNavigator/types/SignTransactionNavigator";
import { SwapNavigatorParamList } from "~/components/RootNavigator/types/SwapNavigator";

type Navigation = BaseComposite<
| StackNavigatorProps<SendFundsNavigatorStackParamList, ScreenName.SendSummary>
| StackNavigatorProps<SignTransactionNavigatorParamList, ScreenName.SignTransactionSummary>
| StackNavigatorProps<SwapNavigatorParamList, ScreenName.SwapSelectFees>
>;

type Props = {
account: Account;
transaction: MinaTransaction;
} & Navigation;
export default function MinaMemoRow({ account, transaction }: Props) {
const { colors } = useTheme();
const navigation = useNavigation<Navigation["navigation"]>();
const route = useRoute<Navigation["route"]>();
const editMemo = useCallback(() => {
navigation.navigate(ScreenName.MinaEditMemo, {
...route.params,
accountId: account.id,
parentId: undefined,
account,
transaction,
});
}, [navigation, route.params, account, transaction]);
const memo = transaction.memo;
return (
<View>
{!memo ? (
<SummaryRow title={<Trans i18nKey="send.summary.memo.title" />} onPress={editMemo}>
<LText
style={[
styles.link,
{
textDecorationColor: colors.live,
},
]}
color="live"
onPress={editMemo}
>
<Trans i18nKey="common.edit" />
</LText>
</SummaryRow>
) : (
<SummaryRow title={<Trans i18nKey="common.edit" />} onPress={editMemo}>
<LText semiBold style={styles.tagText} onPress={editMemo}>
{String(memo)}
</LText>
</SummaryRow>
)}
</View>
);
}
const styles = StyleSheet.create({
memoContainer: {
flexDirection: "row",
},
tagText: {
fontSize: 14,
},
link: {
textDecorationStyle: "solid",
textDecorationLine: "underline",
marginLeft: 8,
},
memo: {
marginBottom: 10,
},
});
29 changes: 29 additions & 0 deletions apps/ledger-live-mobile/src/families/mina/SendRowsCustom.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import React from "react";
import type { Account } from "@ledgerhq/types-live";
import { Transaction as MinaTransaction } from "@ledgerhq/live-common/families/mina/types";
import type { Transaction } from "@ledgerhq/live-common/generated/types";
import SendRowMemo from "./SendRowMemo";
import { BaseComposite, StackNavigatorProps } from "~/components/RootNavigator/types/helpers";
import { SendFundsNavigatorStackParamList } from "~/components/RootNavigator/types/SendFundsNavigator";
import { SignTransactionNavigatorParamList } from "~/components/RootNavigator/types/SignTransactionNavigator";
import { SwapNavigatorParamList } from "~/components/RootNavigator/types/SwapNavigator";
import { ScreenName } from "~/const";

type Navigation = BaseComposite<
| StackNavigatorProps<SendFundsNavigatorStackParamList, ScreenName.SendSummary>
| StackNavigatorProps<SignTransactionNavigatorParamList, ScreenName.SignTransactionSummary>
| StackNavigatorProps<SwapNavigatorParamList, ScreenName.SwapSelectFees>
>;

type Props = {
transaction: Transaction;
account: Account;
} & Navigation;
export default function MinaSendRowsCustom(props: Props) {
const { transaction, ...rest } = props;
return (
<>
<SendRowMemo {...rest} transaction={transaction as MinaTransaction} />
</>
);
}
3 changes: 3 additions & 0 deletions apps/ledger-live-mobile/src/families/mina/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import * as MinaEditMemo from "./ScreenEditMemo";

export { MinaEditMemo };
23 changes: 23 additions & 0 deletions apps/ledger-live-mobile/src/families/mina/operationDetails.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import React from "react";
import { useTranslation } from "react-i18next";
import Section from "~/screens/OperationDetails/Section";
import { InternetComputerOperation } from "@ledgerhq/live-common/families/internet_computer/types";

type Props = {
operation: InternetComputerOperation;
};

function OperationDetailsExtra({ operation }: Props) {
const { t } = useTranslation();
return (
<>
{operation.extra.memo && (
<Section title={t("operationDetails.extra.memo")} value={operation.extra.memo} />
)}
</>
);
}

export default {
OperationDetailsExtra,
};
Original file line number Diff line number Diff line change
@@ -85,6 +85,7 @@ export default function AddAccountsSelectCrypto({ navigation, route }: Props) {
const velasEvm = useFeature("currencyVelasEvm");
const syscoin = useFeature("currencySyscoin");
const internetComputer = useFeature("currencyInternetComputer");
const mina = useFeature("currencyMina");
const telosEvm = useFeature("currencyTelosEvm");
const coreum = useFeature("currencyCoreum");
const polygonZkEvm = useFeature("currencyPolygonZkEvm");
@@ -172,6 +173,7 @@ export default function AddAccountsSelectCrypto({ navigation, route }: Props) {
zenrock,
sonic,
sonic_blaze: sonicBlaze,
mina: mina,
}),
[
aptos,
@@ -230,6 +232,7 @@ export default function AddAccountsSelectCrypto({ navigation, route }: Props) {
zenrock,
sonic,
sonicBlaze,
mina,
],
);