1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-22 09:23:21 +01:00

bump @metamask/network-controller from v10.3.1 to v11.0.0 (#20367)

* bump @metamask/network-controller from v10.3.0 to v11.0.0

* add lavamoat policy files

* fix

* tweak
This commit is contained in:
Alex Donesky 2023-08-02 16:22:35 -05:00 committed by GitHub
parent 1099a3763b
commit bf9311555d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 258 additions and 10 deletions

View File

@ -0,0 +1,111 @@
import { InfuraNetworkType, NetworkType } from '@metamask/controller-utils';
import { migrate, version } from './092';
describe('migration #92', () => {
it('should update the version metadata', async () => {
const oldStorage = {
meta: {
version: 91,
},
data: {},
};
const newStorage = await migrate(oldStorage);
expect(newStorage.meta).toStrictEqual({
version,
});
});
it('should return state unaltered if there is no network controller state', async () => {
const oldData = {
other: 'data',
};
const oldStorage = {
meta: {
version: 91,
},
data: oldData,
};
const newStorage = await migrate(oldStorage);
expect(newStorage.data).toStrictEqual(oldData);
});
it('should return state unaltered if there is no network controller providerConfig state', async () => {
const oldData = {
other: 'data',
NetworkController: {
networkConfigurations: {
id1: {
foo: 'bar',
},
},
},
};
const oldStorage = {
meta: {
version: 91,
},
data: oldData,
};
const newStorage = await migrate(oldStorage);
expect(newStorage.data).toStrictEqual(oldData);
});
it('should return state unaltered if there is already a ticker in the providerConfig state', async () => {
const oldData = {
other: 'data',
NetworkController: {
providerConfig: {
ticker: 'GoerliETH',
type: InfuraNetworkType.goerli,
chainId: '5',
nickname: 'Goerli Testnet',
id: 'goerli',
},
},
};
const oldStorage = {
meta: {
version: 91,
},
data: oldData,
};
const newStorage = await migrate(oldStorage);
expect(newStorage.data).toStrictEqual(oldData);
});
it('should update the provider config to have a ticker set to "ETH" if none is currently present', async () => {
const oldData = {
other: 'data',
NetworkController: {
providerConfig: {
type: NetworkType.rpc,
chainId: '0x9292',
nickname: 'Funky Town Chain',
},
},
};
const oldStorage = {
meta: {
version: 91,
},
data: oldData,
};
const newStorage = await migrate(oldStorage);
expect(newStorage.data).toStrictEqual({
other: 'data',
NetworkController: {
providerConfig: {
type: NetworkType.rpc,
chainId: '0x9292',
nickname: 'Funky Town Chain',
ticker: 'ETH',
},
},
});
});
});

View File

@ -0,0 +1,49 @@
import { cloneDeep } from 'lodash';
import { hasProperty, isObject } from '@metamask/utils';
export const version = 92;
/**
* Add ticker to the providerConfig object if missing
*
* @param originalVersionedData - Versioned MetaMask extension state, exactly what we persist to dist.
* @param originalVersionedData.meta - State metadata.
* @param originalVersionedData.meta.version - The current state version.
* @param originalVersionedData.data - The persisted MetaMask state, keyed by controller.
* @returns Updated versioned MetaMask extension state.
*/
export async function migrate(originalVersionedData: {
meta: { version: number };
data: Record<string, unknown>;
}) {
const versionedData = cloneDeep(originalVersionedData);
versionedData.meta.version = version;
versionedData.data = transformState(versionedData.data);
return versionedData;
}
function transformState(state: Record<string, unknown>) {
if (
hasProperty(state, 'NetworkController') &&
isObject(state.NetworkController) &&
hasProperty(state.NetworkController, 'providerConfig') &&
isObject(state.NetworkController.providerConfig)
) {
const { providerConfig } = state.NetworkController;
if (providerConfig.ticker) {
return state;
}
state.NetworkController.providerConfig = {
ticker: 'ETH',
...providerConfig,
};
return {
...state,
NetworkController: state.NetworkController,
};
}
return state;
}

View File

@ -95,6 +95,7 @@ import * as m088 from './088';
import * as m089 from './089';
import * as m090 from './090';
import * as m091 from './091';
import * as m092 from './092';
const migrations = [
m002,
@ -187,6 +188,6 @@ const migrations = [
m089,
m090,
m091,
m092,
];
export default migrations;

View File

@ -1667,8 +1667,8 @@
"@metamask/network-controller>@metamask/eth-json-rpc-infura": true,
"@metamask/network-controller>@metamask/eth-json-rpc-provider": true,
"@metamask/network-controller>@metamask/swappable-obj-proxy": true,
"@metamask/network-controller>@metamask/utils": true,
"@metamask/network-controller>eth-block-tracker": true,
"@metamask/utils": true,
"browserify>assert": true,
"eth-query": true,
"eth-rpc-errors": true,
@ -1706,6 +1706,19 @@
"json-rpc-engine": true
}
},
"@metamask/network-controller>@metamask/utils": {
"globals": {
"TextDecoder": true,
"TextEncoder": true
},
"packages": {
"@metamask/key-tree>@noble/hashes": true,
"browserify>buffer": true,
"nock>debug": true,
"semver": true,
"superstruct": true
}
},
"@metamask/network-controller>eth-block-tracker": {
"globals": {
"clearTimeout": true,

View File

@ -1818,8 +1818,8 @@
"@metamask/network-controller>@metamask/eth-json-rpc-infura": true,
"@metamask/network-controller>@metamask/eth-json-rpc-provider": true,
"@metamask/network-controller>@metamask/swappable-obj-proxy": true,
"@metamask/network-controller>@metamask/utils": true,
"@metamask/network-controller>eth-block-tracker": true,
"@metamask/utils": true,
"browserify>assert": true,
"eth-query": true,
"eth-rpc-errors": true,
@ -1857,6 +1857,19 @@
"json-rpc-engine": true
}
},
"@metamask/network-controller>@metamask/utils": {
"globals": {
"TextDecoder": true,
"TextEncoder": true
},
"packages": {
"@metamask/key-tree>@noble/hashes": true,
"browserify>buffer": true,
"nock>debug": true,
"semver": true,
"superstruct": true
}
},
"@metamask/network-controller>eth-block-tracker": {
"globals": {
"clearTimeout": true,

View File

@ -1818,8 +1818,8 @@
"@metamask/network-controller>@metamask/eth-json-rpc-infura": true,
"@metamask/network-controller>@metamask/eth-json-rpc-provider": true,
"@metamask/network-controller>@metamask/swappable-obj-proxy": true,
"@metamask/network-controller>@metamask/utils": true,
"@metamask/network-controller>eth-block-tracker": true,
"@metamask/utils": true,
"browserify>assert": true,
"eth-query": true,
"eth-rpc-errors": true,
@ -1857,6 +1857,19 @@
"json-rpc-engine": true
}
},
"@metamask/network-controller>@metamask/utils": {
"globals": {
"TextDecoder": true,
"TextEncoder": true
},
"packages": {
"@metamask/key-tree>@noble/hashes": true,
"browserify>buffer": true,
"nock>debug": true,
"semver": true,
"superstruct": true
}
},
"@metamask/network-controller>eth-block-tracker": {
"globals": {
"clearTimeout": true,

View File

@ -1667,8 +1667,8 @@
"@metamask/network-controller>@metamask/eth-json-rpc-infura": true,
"@metamask/network-controller>@metamask/eth-json-rpc-provider": true,
"@metamask/network-controller>@metamask/swappable-obj-proxy": true,
"@metamask/network-controller>@metamask/utils": true,
"@metamask/network-controller>eth-block-tracker": true,
"@metamask/utils": true,
"browserify>assert": true,
"eth-query": true,
"eth-rpc-errors": true,
@ -1706,6 +1706,19 @@
"json-rpc-engine": true
}
},
"@metamask/network-controller>@metamask/utils": {
"globals": {
"TextDecoder": true,
"TextEncoder": true
},
"packages": {
"@metamask/key-tree>@noble/hashes": true,
"browserify>buffer": true,
"nock>debug": true,
"semver": true,
"superstruct": true
}
},
"@metamask/network-controller>eth-block-tracker": {
"globals": {
"clearTimeout": true,

View File

@ -1895,8 +1895,8 @@
"@metamask/network-controller>@metamask/eth-json-rpc-infura": true,
"@metamask/network-controller>@metamask/eth-json-rpc-provider": true,
"@metamask/network-controller>@metamask/swappable-obj-proxy": true,
"@metamask/network-controller>@metamask/utils": true,
"@metamask/network-controller>eth-block-tracker": true,
"@metamask/utils": true,
"browserify>assert": true,
"eth-query": true,
"eth-rpc-errors": true,
@ -1934,6 +1934,19 @@
"json-rpc-engine": true
}
},
"@metamask/network-controller>@metamask/utils": {
"globals": {
"TextDecoder": true,
"TextEncoder": true
},
"packages": {
"@metamask/key-tree>@noble/hashes": true,
"browserify>buffer": true,
"nock>debug": true,
"semver": true,
"superstruct": true
}
},
"@metamask/network-controller>eth-block-tracker": {
"globals": {
"clearTimeout": true,

View File

@ -252,7 +252,7 @@
"@metamask/logo": "^3.1.1",
"@metamask/message-manager": "^7.0.2",
"@metamask/metamask-eth-abis": "^3.0.0",
"@metamask/network-controller": "^10.3.1",
"@metamask/network-controller": "^11.0.0",
"@metamask/notification-controller": "^3.0.0",
"@metamask/obs-store": "^8.1.0",
"@metamask/permission-controller": "^4.0.0",

View File

@ -4037,7 +4037,7 @@ __metadata:
languageName: node
linkType: hard
"@metamask/eth-json-rpc-infura@npm:^8.1.0":
"@metamask/eth-json-rpc-infura@npm:^8.1.0, @metamask/eth-json-rpc-infura@npm:^8.1.1":
version: 8.1.1
resolution: "@metamask/eth-json-rpc-infura@npm:8.1.1"
dependencies:
@ -4377,7 +4377,7 @@ __metadata:
languageName: node
linkType: hard
"@metamask/network-controller@npm:^10.2.0, @metamask/network-controller@npm:^10.3.0, @metamask/network-controller@npm:^10.3.1":
"@metamask/network-controller@npm:^10.2.0, @metamask/network-controller@npm:^10.3.0":
version: 10.3.1
resolution: "@metamask/network-controller@npm:10.3.1"
dependencies:
@ -4400,6 +4400,28 @@ __metadata:
languageName: node
linkType: hard
"@metamask/network-controller@npm:^11.0.0":
version: 11.0.0
resolution: "@metamask/network-controller@npm:11.0.0"
dependencies:
"@metamask/base-controller": "npm:^3.2.0"
"@metamask/controller-utils": "npm:^4.3.0"
"@metamask/eth-json-rpc-infura": "npm:^8.1.1"
"@metamask/eth-json-rpc-middleware": "npm:^11.0.0"
"@metamask/eth-json-rpc-provider": "npm:^1.0.0"
"@metamask/swappable-obj-proxy": "npm:^2.1.0"
"@metamask/utils": "npm:^6.2.0"
async-mutex: "npm:^0.2.6"
eth-block-tracker: "npm:^7.0.1"
eth-query: "npm:^2.1.2"
eth-rpc-errors: "npm:^4.0.2"
immer: "npm:^9.0.6"
json-rpc-engine: "npm:^6.1.0"
uuid: "npm:^8.3.2"
checksum: de89ed99001eedce04309285276837080f038859a1a9fee231f89fdb851a037766396f36dc75b2d2feff6941171bb6bde6970d60c11f2885f44e33534e644dc1
languageName: node
linkType: hard
"@metamask/notification-controller@npm:^3.0.0":
version: 3.0.0
resolution: "@metamask/notification-controller@npm:3.0.0"
@ -24237,7 +24259,7 @@ __metadata:
"@metamask/logo": "npm:^3.1.1"
"@metamask/message-manager": "npm:^7.0.2"
"@metamask/metamask-eth-abis": "npm:^3.0.0"
"@metamask/network-controller": "npm:^10.3.1"
"@metamask/network-controller": "npm:^11.0.0"
"@metamask/notification-controller": "npm:^3.0.0"
"@metamask/obs-store": "npm:^8.1.0"
"@metamask/permission-controller": "npm:^4.0.0"