1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-23 02:10:12 +01:00
metamask-extension/shared/constants/gas.js

84 lines
2.2 KiB
JavaScript
Raw Normal View History

2021-06-08 17:25:48 +02:00
import { addHexPrefix } from 'ethereumjs-util';
2021-10-19 21:31:56 +02:00
import { MIN_GAS_LIMIT_HEX } from '../../ui/pages/send/send.constants';
const ONE_HUNDRED_THOUSAND = 100000;
2021-06-08 17:25:48 +02:00
export const GAS_LIMITS = {
// maximum gasLimit of a simple send
2021-10-19 21:31:56 +02:00
SIMPLE: addHexPrefix(MIN_GAS_LIMIT_HEX),
2021-06-08 17:25:48 +02:00
// a base estimate for token transfers.
BASE_TOKEN_ESTIMATE: addHexPrefix(ONE_HUNDRED_THOUSAND.toString(16)),
2021-06-08 17:25:48 +02:00
};
2021-07-08 22:23:00 +02:00
2022-05-25 22:54:05 +02:00
/**
* @typedef {Object} GasEstimateTypes
* @property {'fee-market'} FEE_MARKET - A gas estimate for a fee market
* transaction generated by our gas estimation API.
* @property {'legacy'} LEGACY - A gas estimate for a legacy Transaction
* generated by our gas estimation API.
* @property {'eth_gasPrice'} ETH_GAS_PRICE - A gas estimate provided by the
* Ethereum node via eth_gasPrice.
* @property {'none'} NONE - No gas estimate available.
*/
2021-07-08 22:23:00 +02:00
/**
* These are already declared in @metamask/controllers but importing them from
* that module and re-exporting causes the UI bundle size to expand beyond 4MB
2022-05-25 22:54:05 +02:00
*
* @type {GasEstimateTypes}
2021-07-08 22:23:00 +02:00
*/
export const GAS_ESTIMATE_TYPES = {
FEE_MARKET: 'fee-market',
LEGACY: 'legacy',
ETH_GASPRICE: 'eth_gasPrice',
NONE: 'none',
};
/**
* These represent gas recommendation levels presented in the UI
*/
export const GAS_RECOMMENDATIONS = {
LOW: 'low',
MEDIUM: 'medium',
HIGH: 'high',
};
/**
* These represent types of gas estimation
*/
export const PRIORITY_LEVELS = {
2022-01-06 23:40:31 +01:00
TEN_PERCENT_INCREASED: 'tenPercentIncreased',
LOW: 'low',
MEDIUM: 'medium',
HIGH: 'high',
CUSTOM: 'custom',
DAPP_SUGGESTED: 'dappSuggested',
};
/**
* Represents the user customizing their gas preference
*/
export const CUSTOM_GAS_ESTIMATE = 'custom';
/**
* These represent the different edit modes presented in the UI
*/
export const EDIT_GAS_MODES = {
SPEED_UP: 'speed-up',
CANCEL: 'cancel',
MODIFY_IN_PLACE: 'modify-in-place',
SWAPS: 'swaps',
};
/**
* Represents levels for `networkCongestion` (calculated along with gas fee
* estimates; represents a number between 0 and 1) that we use to render the
* network status slider on the send transaction screen and inform users when
* gas fees are high
*/
export const NETWORK_CONGESTION_THRESHOLDS = {
NOT_BUSY: 0,
STABLE: 0.33,
BUSY: 0.66,
};