Skip to content

Reduce default circuit break duration to 2 minutes #6015

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

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
13 changes: 13 additions & 0 deletions packages/controller-utils/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Added

- Add convenience variables for calculating the number of milliseconds in a higher unit of time
- `SECOND` / `SECONDS`
- `MINUTE` / `MINUTES`
- `HOUR` / `HOURS`
- `DAY` / `DAYS`

### Changed

- Update `createServicePolicy` to reduce circuit break duration from 30 minutes to 2 minutes ([#6015](https://github.com/MetaMask/core/pull/6015))
- When hitting an API, this reduces the default duration for which requests to the API are paused when perceived to be unavailable

## [11.10.0]

### Added
Expand Down
40 changes: 40 additions & 0 deletions packages/controller-utils/src/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -195,3 +195,43 @@ export const CHAIN_ID_TO_ETHERS_NETWORK_NAME_MAP: Record<
[ChainId['linea-mainnet']]: BuiltInNetworkName.LineaMainnet,
[ChainId.aurora]: BuiltInNetworkName.Aurora,
};

/**
* The number of milliseconds in a second.
*/
export const SECOND = 1000;

/**
* The number of milliseconds in a second.
*/
export const SECONDS = SECOND;

/**
* The number of milliseconds in a minute.
*/
export const MINUTE = SECONDS * 60;

/**
* The number of milliseconds in a minute.
*/
export const MINUTES = MINUTE;

/**
* The number of milliseconds in a hour.
*/
export const HOUR = MINUTES * 60;

/**
* The number of milliseconds in a hour.
*/
export const HOURS = HOUR;

/**
* The number of milliseconds in a day.
*/
export const DAY = HOURS * 24;

/**
* The number of milliseconds in a day.
*/
export const DAYS = DAY;
60 changes: 34 additions & 26 deletions packages/controller-utils/src/index.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,40 @@ describe('@metamask/controller-utils', () => {
"createServicePolicy",
"handleAll",
"handleWhen",
"RPC",
"FALL_BACK_VS_CURRENCY",
"IPFS_DEFAULT_GATEWAY_URL",
"GANACHE_CHAIN_ID",
"MAX_SAFE_CHAIN_ID",
"ERC721",
"ERC1155",
"ERC20",
"ERC721_INTERFACE_ID",
"ERC721_METADATA_INTERFACE_ID",
"ERC721_ENUMERABLE_INTERFACE_ID",
"ERC1155_INTERFACE_ID",
"ERC1155_METADATA_URI_INTERFACE_ID",
"ERC1155_TOKEN_RECEIVER_INTERFACE_ID",
"GWEI",
"ASSET_TYPES",
"TESTNET_TICKER_SYMBOLS",
"BUILT_IN_CUSTOM_NETWORKS_RPC",
"BUILT_IN_NETWORKS",
"OPENSEA_PROXY_URL",
"NFT_API_BASE_URL",
"NFT_API_VERSION",
"NFT_API_TIMEOUT",
"ORIGIN_METAMASK",
"ApprovalType",
"CHAIN_ID_TO_ETHERS_NETWORK_NAME_MAP",
"SECOND",
"SECONDS",
"MINUTE",
"MINUTES",
"HOUR",
"HOURS",
"DAY",
"DAYS",
"BNToHex",
"convertHexToDecimal",
"fetchWithErrorHandling",
Expand Down Expand Up @@ -43,32 +77,6 @@ describe('@metamask/controller-utils', () => {
"toHex",
"weiHexToGweiDec",
"isEqualCaseInsensitive",
"RPC",
"FALL_BACK_VS_CURRENCY",
"IPFS_DEFAULT_GATEWAY_URL",
"GANACHE_CHAIN_ID",
"MAX_SAFE_CHAIN_ID",
"ERC721",
"ERC1155",
"ERC20",
"ERC721_INTERFACE_ID",
"ERC721_METADATA_INTERFACE_ID",
"ERC721_ENUMERABLE_INTERFACE_ID",
"ERC1155_INTERFACE_ID",
"ERC1155_METADATA_URI_INTERFACE_ID",
"ERC1155_TOKEN_RECEIVER_INTERFACE_ID",
"GWEI",
"ASSET_TYPES",
"TESTNET_TICKER_SYMBOLS",
"BUILT_IN_CUSTOM_NETWORKS_RPC",
"BUILT_IN_NETWORKS",
"OPENSEA_PROXY_URL",
"NFT_API_BASE_URL",
"NFT_API_VERSION",
"NFT_API_TIMEOUT",
"ORIGIN_METAMASK",
"ApprovalType",
"CHAIN_ID_TO_ETHERS_NETWORK_NAME_MAP",
"InfuraNetworkType",
"CustomNetworkType",
"NetworkType",
Expand Down
37 changes: 36 additions & 1 deletion packages/controller-utils/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,42 @@ export type {
CreateServicePolicyOptions,
ServicePolicy,
} from './create-service-policy';
export * from './constants';
export {
RPC,
FALL_BACK_VS_CURRENCY,
IPFS_DEFAULT_GATEWAY_URL,
GANACHE_CHAIN_ID,
MAX_SAFE_CHAIN_ID,
ERC721,
ERC1155,
ERC20,
ERC721_INTERFACE_ID,
ERC721_METADATA_INTERFACE_ID,
ERC721_ENUMERABLE_INTERFACE_ID,
ERC1155_INTERFACE_ID,
ERC1155_METADATA_URI_INTERFACE_ID,
ERC1155_TOKEN_RECEIVER_INTERFACE_ID,
GWEI,
ASSET_TYPES,
TESTNET_TICKER_SYMBOLS,
BUILT_IN_CUSTOM_NETWORKS_RPC,
BUILT_IN_NETWORKS,
OPENSEA_PROXY_URL,
NFT_API_BASE_URL,
NFT_API_VERSION,
NFT_API_TIMEOUT,
ORIGIN_METAMASK,
ApprovalType,
CHAIN_ID_TO_ETHERS_NETWORK_NAME_MAP,
SECOND,
SECONDS,
MINUTE,
MINUTES,
HOUR,
HOURS,
DAY,
DAYS,
} from './constants';
export type { NonEmptyArray } from './util';
export {
BNToHex,
Expand Down
Loading