mirror of
https://github.com/status-im/MyCrypto.git
synced 2025-02-25 17:25:25 +00:00
* Make UnlockHeader a PureComponent * MVP * actually disable wallet format if not determined to be valid format for wallet * default to correct derivation in mnemonic modal * cleanup * fix tslint * use enums for HD wallet getPath * Add stricter typing * Fix labels not updating on selector * Ban hardware wallet support for custom network unsupported chainIds * Fix type error * Fix custom node dPath not being saved * Fix mnemonic modal * default path bugfixes * add react-select * misc fixes; rabbit holing hard. * fix tslint * revert identicon changes * reload on network change :/ * actually reload on network change * really really reload on network change * tslint fixes * Update styles * set table width * fix package versioning * push broken sagas * Fix saga test * fix tslint * address round of review * move non-selectors out to utilty; adjust reload timer * cleanup network util comments * manage wallet disable at WalletDecrypt instead of in both WalletDecrypt and WalletButton * Separate WalletDecrypt props into ownProps / StateProps * disable payment requests on non-eth networks * specialize connect; separate props * remove unused state prop * remove bad import * create tests for networks * Clarify Lite-Send error on non-ethereum networkS * remove string option for network config name * Create concept of always-on 'EXTRA_PATHS'; include SINGULAR_DTV legacy dPath in 'EXTRA_PATHS' * fix multiple imports * address PR comments
61 lines
1.7 KiB
TypeScript
61 lines
1.7 KiB
TypeScript
import { Wei, toTokenBase } from 'libs/units';
|
|
import { addHexPrefix } from 'ethereumjs-util';
|
|
import BN from 'bn.js';
|
|
import { NetworkKeys } from 'config';
|
|
|
|
export function stripHexPrefix(value: string) {
|
|
return value.replace('0x', '');
|
|
}
|
|
|
|
export function stripHexPrefixAndLower(value: string): string {
|
|
return stripHexPrefix(value).toLowerCase();
|
|
}
|
|
|
|
export function toHexWei(weiString: string): string {
|
|
return addHexPrefix(Wei(weiString).toString(16));
|
|
}
|
|
|
|
export function padLeftEven(hex: string) {
|
|
return hex.length % 2 !== 0 ? `0${hex}` : hex;
|
|
}
|
|
|
|
export function sanitizeHex(hex: string) {
|
|
const hexStr = hex.substring(0, 2) === '0x' ? hex.substring(2) : hex;
|
|
return hex !== '' ? `0x${padLeftEven(hexStr)}` : '';
|
|
}
|
|
|
|
export function networkIdToName(networkId: string | number): NetworkKeys {
|
|
switch (networkId.toString()) {
|
|
case '1':
|
|
return 'ETH';
|
|
case '3':
|
|
return 'Ropsten';
|
|
case '4':
|
|
return 'Rinkeby';
|
|
case '42':
|
|
return 'Kovan';
|
|
default:
|
|
throw new Error(`Network ${networkId} is unsupported.`);
|
|
}
|
|
}
|
|
|
|
export const buildEIP681EtherRequest = (
|
|
recipientAddr: string,
|
|
chainId: number,
|
|
etherValue: { raw: string; value: Wei | '' }
|
|
) => `ethereum:${recipientAddr}${chainId !== 1 ? `@${chainId}` : ''}?value=${etherValue.raw}e18`;
|
|
|
|
export const buildEIP681TokenRequest = (
|
|
recipientAddr: string,
|
|
contractAddr: string,
|
|
chainId: number,
|
|
tokenValue: { raw: string; value: Wei | '' },
|
|
decimal: number,
|
|
gasLimit: { raw: string; value: BN | null }
|
|
) =>
|
|
`ethereum:${contractAddr}${
|
|
chainId !== 1 ? `@${chainId}` : ''
|
|
}/transfer?address=${recipientAddr}&uint256=${toTokenBase(tokenValue.raw, decimal)}&gas=${
|
|
gasLimit.raw
|
|
}`;
|