1
0
mirror of https://github.com/trezor/trezor-wallet synced 2024-11-30 12:18:09 +00:00

add gas price and nonce l10n

This commit is contained in:
slowbackspace 2019-04-26 12:10:18 +02:00
parent 5000ea65e4
commit baee0855c5
2 changed files with 83 additions and 12 deletions

View File

@ -357,21 +357,33 @@ export const gasLimitValidation = ($state: State): PayloadAction<State> => (
/* /*
* Gas price value validation * Gas price value validation
*/ */
export const gasPriceValidation = ($state: State): PayloadAction<State> => (): State => { export const gasPriceValidation = ($state: State): PayloadAction<State> => (
dispatch: Dispatch,
getState: GetState
): State => {
const state = { ...$state }; const state = { ...$state };
if (!state.touched.gasPrice) return state; if (!state.touched.gasPrice) return state;
// get react-intl imperative api
const { language, messages } = getState().wallet;
const intlProvider = new IntlProvider({ language, messages });
const { intl } = intlProvider.getChildContext();
const { gasPrice } = state; const { gasPrice } = state;
if (gasPrice.length < 1) { if (gasPrice.length < 1) {
state.errors.gasPrice = 'Gas price is not set'; // state.errors.gasPrice = 'Gas price is not set';
state.errors.gasPrice = intl.formatMessage(l10nMessages.TR_GAS_PRICE_IS_NOT_SET);
} else if (gasPrice.length > 0 && !validators.isNumber(gasPrice)) { } else if (gasPrice.length > 0 && !validators.isNumber(gasPrice)) {
state.errors.gasPrice = 'Gas price is not a number'; // state.errors.gasPrice = 'Gas price is not a number';
state.errors.gasPrice = intl.formatMessage(l10nMessages.TR_GAS_PRICE_IS_NOT_A_NUMBER);
} else { } else {
const gp: BigNumber = new BigNumber(gasPrice); const gp: BigNumber = new BigNumber(gasPrice);
if (gp.isGreaterThan(1000)) { if (gp.isGreaterThan(1000)) {
state.warnings.gasPrice = 'Gas price is too high'; // state.warnings.gasPrice = 'Gas price is too high';
state.warnings.gasPrice = intl.formatMessage(l10nMessages.TR_GAS_PRICE_IS_TOO_HIGH);
} else if (gp.isLessThanOrEqualTo('0')) { } else if (gp.isLessThanOrEqualTo('0')) {
state.errors.gasPrice = 'Gas price is too low'; // state.errors.gasPrice = 'Gas price is too low';
state.errors.gasPrice = intl.formatMessage(l10nMessages.TR_GAS_PRICE_IS_TOO_LOW);
} }
} }
return state; return state;
@ -387,33 +399,56 @@ export const nonceValidation = ($state: State): PayloadAction<State> => (
const state = { ...$state }; const state = { ...$state };
if (!state.touched.nonce) return state; if (!state.touched.nonce) return state;
// get react-intl imperative api
const { language, messages } = getState().wallet;
const intlProvider = new IntlProvider({ language, messages });
const { intl } = intlProvider.getChildContext();
const { account } = getState().selectedAccount; const { account } = getState().selectedAccount;
if (!account || account.networkType !== 'ethereum') return state; if (!account || account.networkType !== 'ethereum') return state;
const { nonce } = state; const { nonce } = state;
if (nonce.length < 1) { if (nonce.length < 1) {
state.errors.nonce = 'Nonce is not set'; // state.errors.nonce = 'Nonce is not set';
state.errors.nonce = intl.formatMessage(l10nMessages.TR_NONCE_IS_NOT_SET);
} else if (!validators.isAbs(nonce)) { } else if (!validators.isAbs(nonce)) {
state.errors.nonce = 'Nonce is not a valid number'; // state.errors.nonce = 'Nonce is not a valid number';
state.errors.nonce = intl.formatMessage(l10nMessages.TR_NONCE_IS_NOT_A_NUMBER);
} else { } else {
const n: BigNumber = new BigNumber(nonce); const n: BigNumber = new BigNumber(nonce);
if (n.isLessThan(account.nonce)) { if (n.isLessThan(account.nonce)) {
state.warnings.nonce = 'Nonce is lower than recommended'; // state.warnings.nonce = 'Nonce is lower than recommended';
state.warnings.nonce = intl.formatMessage(
l10nMessages.TR_NONCE_IS_LOWER_THAN_RECOMMENDED
);
} else if (n.isGreaterThan(account.nonce)) { } else if (n.isGreaterThan(account.nonce)) {
state.warnings.nonce = 'Nonce is greater than recommended'; // state.warnings.nonce = 'Nonce is greater than recommended';
state.warnings.nonce = intl.formatMessage(
l10nMessages.TR_NONCE_IS_GREATER_THAN_RECOMMENDED
);
} }
} }
return state; return state;
}; };
/* /*
* Gas price value validation * Data validation
*/ */
export const dataValidation = ($state: State): PayloadAction<State> => (): State => { export const dataValidation = ($state: State): PayloadAction<State> => (
dispatch: Dispatch,
getState: GetState
): State => {
const state = { ...$state }; const state = { ...$state };
if (!state.touched.data || state.data.length === 0) return state; if (!state.touched.data || state.data.length === 0) return state;
// get react-intl imperative api
const { language, messages } = getState().wallet;
const intlProvider = new IntlProvider({ language, messages });
const { intl } = intlProvider.getChildContext();
if (!ethUtils.isHex(state.data)) { if (!ethUtils.isHex(state.data)) {
state.errors.data = 'Data is not valid hexadecimal'; // state.errors.data = 'Data is not valid hexadecimal';
state.errors.data = intl.formatMessage(l10nMessages.TR_DATA_IS_NOT_VALID_HEX);
} }
return state; return state;
}; };

View File

@ -55,6 +55,42 @@ const definedMessages: Messages = defineMessages({
id: 'TR_GAS_LIMIT_IS_BELOW_RECOMMENDED', id: 'TR_GAS_LIMIT_IS_BELOW_RECOMMENDED',
defaultMessage: 'Gas limit is below recommended', defaultMessage: 'Gas limit is below recommended',
}, },
TR_GAS_PRICE_IS_NOT_A_NUMBER: {
id: 'TR_GAS_PRICE_IS_NOT_A_NUMBER',
defaultMessage: 'Gas price is not a number',
},
TR_GAS_PRICE_IS_NOT_SET: {
id: 'TR_GAS_PRICE_IS_NOT_SET',
defaultMessage: 'Gas price is not set',
},
TR_GAS_PRICE_IS_TOO_LOW: {
id: 'TR_GAS_PRICE_IS_TOO_LOW',
defaultMessage: 'Gas price is too low',
},
TR_GAS_PRICE_IS_TOO_HIGH: {
id: 'TR_GAS_PRICE_IS_TOO_HIGH',
defaultMessage: 'Gas price is too high',
},
TR_NONCE_IS_NOT_A_NUMBER: {
id: 'TR_NONCE_IS_NOT_A_NUMBER',
defaultMessage: 'Nonce is not a valid number',
},
TR_NONCE_IS_NOT_SET: {
id: 'TR_NONCE_IS_NOT_SET',
defaultMessage: 'Nonce is not set',
},
TR_NONCE_IS_GREATER_THAN_RECOMMENDED: {
id: 'TR_NONCE_IS_GREATER_THAN_RECOMMENDED',
defaultMessage: 'Nonce is greater than recommended',
},
TR_NONCE_IS_LOWER_THAN_RECOMMENDED: {
id: 'TR_NONCE_IS_LOWER_THAN_RECOMMENDED',
defaultMessage: 'Nonce is lower than recommended',
},
TR_DATA_IS_NOT_VALID_HEX: {
id: 'TR_DATA_IS_NOT_VALID_HEX',
defaultMessage: 'Data is not valid hexadecimal',
},
}); });
export default definedMessages; export default definedMessages;