Replace hardcoded sent ether label on confirm screen (#11802)
* Replace hardcoded sent ether label on confirm screen * replace transaction type SENT_ETHER with network agnostic SENDING_NATIVE_ASSET * remove sentEther translation base * make backwards compatible with lingering transaction of legacy sentEther type * update localalization files * fixup legacy sentEther transaction type * changing new transaction type away from localization string * revert migration tests * update fixtures and test data * update name of new transaction type * add migration * remove legacy SENT_ETHER from transaction types enum objectfeature/default_network_editable
parent
2100fb0ce1
commit
2a9fbffb6c
@ -0,0 +1,41 @@ |
||||
import { cloneDeep, isPlainObject } from 'lodash'; |
||||
import { TRANSACTION_TYPES } from '../../../shared/constants/transaction'; |
||||
|
||||
const version = 64; |
||||
|
||||
const SENT_ETHER = 'sentEther'; // the legacy transaction type being replaced in this migration with TRANSACTION_TYPES.SIMPLE_SEND
|
||||
|
||||
/** |
||||
* Removes metaMetricsSendCount from MetaMetrics controller |
||||
*/ |
||||
export default { |
||||
version, |
||||
async migrate(originalVersionedData) { |
||||
const versionedData = cloneDeep(originalVersionedData); |
||||
versionedData.meta.version = version; |
||||
const state = versionedData.data; |
||||
const newState = transformState(state); |
||||
versionedData.data = newState; |
||||
return versionedData; |
||||
}, |
||||
}; |
||||
|
||||
function transformState(state) { |
||||
const transactions = state?.TransactionController?.transactions; |
||||
if (isPlainObject(transactions)) { |
||||
for (const tx of Object.values(transactions)) { |
||||
if (tx.type === SENT_ETHER) { |
||||
tx.type = TRANSACTION_TYPES.SIMPLE_SEND; |
||||
} |
||||
if (tx.history) { |
||||
tx.history.map((txEvent) => { |
||||
if (txEvent.type && txEvent.type === SENT_ETHER) { |
||||
txEvent.type = TRANSACTION_TYPES.SIMPLE_SEND; |
||||
} |
||||
return txEvent; |
||||
}); |
||||
} |
||||
} |
||||
} |
||||
return state; |
||||
} |
@ -0,0 +1,469 @@ |
||||
import { strict as assert } from 'assert'; |
||||
import { TRANSACTION_TYPES } from '../../../shared/constants/transaction'; |
||||
import { MAINNET_CHAIN_ID } from '../../../shared/constants/network'; |
||||
import migration64 from './064'; |
||||
|
||||
const SENT_ETHER = 'sentEther'; // the legacy transaction type being replaced in this migration with TRANSACTION_TYPES.SIMPLE_SEND
|
||||
|
||||
describe('migration #64', function () { |
||||
it('should update the version metadata', async function () { |
||||
const oldStorage = { |
||||
meta: { |
||||
version: 63, |
||||
}, |
||||
data: {}, |
||||
}; |
||||
|
||||
const newStorage = await migration64.migrate(oldStorage); |
||||
assert.deepEqual(newStorage.meta, { |
||||
version: 64, |
||||
}); |
||||
}); |
||||
|
||||
it('should do nothing if transactions state does not exist', async function () { |
||||
const oldStorage = { |
||||
meta: {}, |
||||
data: { |
||||
TransactionController: { |
||||
bar: 'baz', |
||||
}, |
||||
IncomingTransactionsController: { |
||||
foo: 'baz', |
||||
}, |
||||
foo: 'bar', |
||||
}, |
||||
}; |
||||
|
||||
const newStorage = await migration64.migrate(oldStorage); |
||||
assert.deepEqual(oldStorage.data, newStorage.data); |
||||
}); |
||||
|
||||
it('should do nothing if transactions state is empty', async function () { |
||||
const oldStorage = { |
||||
meta: {}, |
||||
data: { |
||||
TransactionController: { |
||||
transactions: {}, |
||||
bar: 'baz', |
||||
}, |
||||
foo: 'bar', |
||||
}, |
||||
}; |
||||
|
||||
const newStorage = await migration64.migrate(oldStorage); |
||||
assert.deepEqual(oldStorage.data, newStorage.data); |
||||
}); |
||||
|
||||
it('should do nothing if transactions state is not an object', async function () { |
||||
const oldStorage = { |
||||
meta: {}, |
||||
data: { |
||||
TransactionController: { |
||||
transactions: [], |
||||
bar: 'baz', |
||||
}, |
||||
foo: 'bar', |
||||
}, |
||||
}; |
||||
|
||||
const newStorage = await migration64.migrate(oldStorage); |
||||
assert.deepEqual(oldStorage.data, newStorage.data); |
||||
}); |
||||
|
||||
it('should do nothing if state is empty', async function () { |
||||
const oldStorage = { |
||||
meta: {}, |
||||
data: {}, |
||||
}; |
||||
|
||||
const newStorage = await migration64.migrate(oldStorage); |
||||
assert.deepEqual(oldStorage.data, newStorage.data); |
||||
}); |
||||
|
||||
it('should change action type of "sentEther" to "simpleSend" for any transactions and transaction history events in transactionsController.transactions', async function () { |
||||
const OLD_TRANSACTION_STATE = { |
||||
1462177651588364: { |
||||
type: TRANSACTION_TYPES.CANCEL, |
||||
id: 0, |
||||
chainId: MAINNET_CHAIN_ID, |
||||
txParams: { |
||||
nonce: '0x0', |
||||
}, |
||||
origin: 'https://metamask.github.io', |
||||
r: '0x29f00dda09306f0f09895e80db110b9348eeb57d3e0b386409bfb674041ba45a', |
||||
rawTx: |
||||
'0x02f902fc04278459682f008459682f10830314138080b902a3608060405234801561001057600080fd5b5033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000808190555061023b806100686000396000f300608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632e1a7d4d1461005c5780638da5cb5b1461009d578063d0e30db0146100f4575b600080fd5b34801561006857600080fd5b5061008760048036038101908080359060200190929190505050610112565b6040518082815260200191505060405180910390f35b3480156100a957600080fd5b506100b26101d0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100fc6101f6565b6040518082815260200191505060405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561017057600080fd5b8160008082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156101c5573d6000803e3d6000fd5b506000549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003460008082825401925050819055506000549050905600a165627a7a72305820f237db3ec816a52589d82512117bc85bc08d3537683ffeff9059108caf3e5d400029c001a029f00dda09306f0f09895e80db110b9348eeb57d3e0b386409bfb674041ba45aa049f74084dd8c517b305a2e60b39ae9002176a5244cb06de8f9ea3757811f5ec6', |
||||
s: '0x49f74084dd8c517b305a2e60b39ae9002176a5244cb06de8f9ea3757811f5ec6', |
||||
status: 'confirmed', |
||||
estimatedBaseFee: 'b', |
||||
hash: |
||||
'0x4d8543f12afd3795b94d723dcd0e20bfc3740e1af668e5e90a0c5ec49f36ba12', |
||||
}, |
||||
1: { |
||||
type: SENT_ETHER, |
||||
id: 1, |
||||
chainId: MAINNET_CHAIN_ID, |
||||
txParams: { |
||||
nonce: '0x1', |
||||
}, |
||||
history: [ |
||||
{ |
||||
chainId: '0x4', |
||||
dappSuggestedGasFees: { |
||||
gas: '0x31413', |
||||
}, |
||||
id: 1462177651588364, |
||||
loadingDefaults: true, |
||||
metamaskNetworkId: '4', |
||||
origin: 'https://metamask.github.io', |
||||
status: 'unapproved', |
||||
time: 1631118004776, |
||||
txParams: { |
||||
data: |
||||
'0x608060405234801561001057600080fd5b5033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000808190555061023b806100686000396000f300608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632e1a7d4d1461005c5780638da5cb5b1461009d578063d0e30db0146100f4575b600080fd5b34801561006857600080fd5b5061008760048036038101908080359060200190929190505050610112565b6040518082815260200191505060405180910390f35b3480156100a957600080fd5b506100b26101d0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100fc6101f6565b6040518082815260200191505060405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561017057600080fd5b8160008082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156101c5573d6000803e3d6000fd5b506000549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003460008082825401925050819055506000549050905600a165627a7a72305820f237db3ec816a52589d82512117bc85bc08d3537683ffeff9059108caf3e5d400029', |
||||
from: '0x0f002c95c041f003be01c3e4f52cae1f6ab3ba6e', |
||||
gas: '0x31413', |
||||
value: '0x0', |
||||
}, |
||||
type: SENT_ETHER, |
||||
}, |
||||
[ |
||||
{ |
||||
note: 'Added new unapproved transaction.', |
||||
op: 'add', |
||||
path: '/txParams/maxFeePerGas', |
||||
timestamp: 1631118004862, |
||||
value: '0x59682f10', |
||||
}, |
||||
{ |
||||
op: 'add', |
||||
path: '/txParams/maxPriorityFeePerGas', |
||||
value: '0x59682f00', |
||||
}, |
||||
{ |
||||
op: 'replace', |
||||
path: '/loadingDefaults', |
||||
value: false, |
||||
}, |
||||
{ |
||||
op: 'add', |
||||
path: '/userFeeLevel', |
||||
value: 'medium', |
||||
}, |
||||
], |
||||
], |
||||
}, |
||||
3274396743040791: { |
||||
baseFeePerGas: '0xb', |
||||
chainId: '0x4', |
||||
dappSuggestedGasFees: { |
||||
gas: '0xa9fe', |
||||
}, |
||||
estimatedBaseFee: 'b', |
||||
hash: |
||||
'0x19ffab8a9467df9afbef82d8907f9e39f0696c7a774ed5473ecf7337adcc674b', |
||||
origin: 'https://metamask.github.io', |
||||
r: '0xc2b2901f3593536d21e9b136c469b9b8f91a944f18a29a3cdf3a2eaadf660e71', |
||||
rawTx: |
||||
'0x02f87604288459682f008459682f1082a9fe949ef57335bc7d5b6cbc06dca6064a604b75e09ace883782dace9d90000084d0e30db0c001a0c2b2901f3593536d21e9b136c469b9b8f91a944f18a29a3cdf3a2eaadf660e71a057876a0292d548dd67c6faed8e835b94252b55a043ce01a1206361ccab417ad4', |
||||
s: '0x57876a0292d548dd67c6faed8e835b94252b55a043ce01a1206361ccab417ad4', |
||||
status: 'confirmed', |
||||
submittedTime: 1631118228493, |
||||
time: 1631118217596, |
||||
txParams: { |
||||
data: '0xd0e30db0', |
||||
from: '0x0f002c95c041f003be01c3e4f52cae1f6ab3ba6e', |
||||
gas: '0xa9fe', |
||||
maxFeePerGas: '0x59682f10', |
||||
maxPriorityFeePerGas: '0x59682f00', |
||||
nonce: '0x28', |
||||
to: '0x9ef57335bc7d5b6cbc06dca6064a604b75e09ace', |
||||
value: '0x3782dace9d900000', |
||||
}, |
||||
txReceipt: { |
||||
blockHash: |
||||
'0xafa4e1fd95e429d9c6e6c7c1d282b2bd0bbeb50d0a68743e9392b9c95a06e2eb', |
||||
blockNumber: { |
||||
length: 1, |
||||
negative: 0, |
||||
red: null, |
||||
words: [9257603, null], |
||||
}, |
||||
contractAddress: null, |
||||
cumulativeGasUsed: { |
||||
length: 1, |
||||
negative: 0, |
||||
red: null, |
||||
words: [4954851, null], |
||||
}, |
||||
effectiveGasPrice: '0x59682f0b', |
||||
from: '0x0f002c95c041f003be01c3e4f52cae1f6ab3ba6e', |
||||
gasUsed: 'a9fe', |
||||
logs: [], |
||||
logsBloom: |
||||
'0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', |
||||
status: '0x1', |
||||
to: '0x9ef57335bc7d5b6cbc06dca6064a604b75e09ace', |
||||
transactionHash: |
||||
'0x19ffab8a9467df9afbef82d8907f9e39f0696c7a774ed5473ecf7337adcc674b', |
||||
transactionIndex: { |
||||
length: 1, |
||||
negative: 0, |
||||
red: null, |
||||
words: [9, null], |
||||
}, |
||||
type: '0x2', |
||||
}, |
||||
type: SENT_ETHER, |
||||
history: [ |
||||
{ |
||||
chainId: '0x4', |
||||
dappSuggestedGasFees: { |
||||
gas: '0xa9fe', |
||||
}, |
||||
id: 3274396743040791, |
||||
loadingDefaults: true, |
||||
metamaskNetworkId: '4', |
||||
origin: 'https://metamask.github.io', |
||||
status: 'unapproved', |
||||
time: 1631118217596, |
||||
txParams: { |
||||
data: '0xd0e30db0', |
||||
from: '0x0f002c95c041f003be01c3e4f52cae1f6ab3ba6e', |
||||
gas: '0xa9fe', |
||||
to: '0x9ef57335bc7d5b6cbc06dca6064a604b75e09ace', |
||||
value: '0x3782dace9d900000', |
||||
}, |
||||
}, |
||||
[ |
||||
{ |
||||
note: 'Added new unapproved transaction.', |
||||
op: 'add', |
||||
path: '/txParams/maxFeePerGas', |
||||
timestamp: 1631118217762, |
||||
value: '0x59682f10', |
||||
}, |
||||
{ |
||||
op: 'add', |
||||
path: '/txParams/maxPriorityFeePerGas', |
||||
value: '0x59682f00', |
||||
}, |
||||
{ |
||||
op: 'replace', |
||||
path: '/loadingDefaults', |
||||
value: false, |
||||
}, |
||||
{ |
||||
op: 'add', |
||||
path: '/userFeeLevel', |
||||
value: 'medium', |
||||
}, |
||||
], |
||||
], |
||||
}, |
||||
}; |
||||
|
||||
const EXPECTED_TRANSACTION_STATE = { |
||||
1462177651588364: { |
||||
type: TRANSACTION_TYPES.CANCEL, |
||||
id: 0, |
||||
chainId: MAINNET_CHAIN_ID, |
||||
txParams: { |
||||
nonce: '0x0', |
||||
}, |
||||
origin: 'https://metamask.github.io', |
||||
r: '0x29f00dda09306f0f09895e80db110b9348eeb57d3e0b386409bfb674041ba45a', |
||||
rawTx: |
||||
'0x02f902fc04278459682f008459682f10830314138080b902a3608060405234801561001057600080fd5b5033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000808190555061023b806100686000396000f300608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632e1a7d4d1461005c5780638da5cb5b1461009d578063d0e30db0146100f4575b600080fd5b34801561006857600080fd5b5061008760048036038101908080359060200190929190505050610112565b6040518082815260200191505060405180910390f35b3480156100a957600080fd5b506100b26101d0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100fc6101f6565b6040518082815260200191505060405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561017057600080fd5b8160008082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156101c5573d6000803e3d6000fd5b506000549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003460008082825401925050819055506000549050905600a165627a7a72305820f237db3ec816a52589d82512117bc85bc08d3537683ffeff9059108caf3e5d400029c001a029f00dda09306f0f09895e80db110b9348eeb57d3e0b386409bfb674041ba45aa049f74084dd8c517b305a2e60b39ae9002176a5244cb06de8f9ea3757811f5ec6', |
||||
s: '0x49f74084dd8c517b305a2e60b39ae9002176a5244cb06de8f9ea3757811f5ec6', |
||||
status: 'confirmed', |
||||
estimatedBaseFee: 'b', |
||||
hash: |
||||
'0x4d8543f12afd3795b94d723dcd0e20bfc3740e1af668e5e90a0c5ec49f36ba12', |
||||
}, |
||||
1: { |
||||
type: TRANSACTION_TYPES.SIMPLE_SEND, |
||||
id: 1, |
||||
chainId: MAINNET_CHAIN_ID, |
||||
txParams: { |
||||
nonce: '0x1', |
||||
}, |
||||
history: [ |
||||
{ |
||||
chainId: '0x4', |
||||
dappSuggestedGasFees: { |
||||
gas: '0x31413', |
||||
}, |
||||
id: 1462177651588364, |
||||
loadingDefaults: true, |
||||
metamaskNetworkId: '4', |
||||
origin: 'https://metamask.github.io', |
||||
status: 'unapproved', |
||||
time: 1631118004776, |
||||
txParams: { |
||||
data: |
||||
'0x608060405234801561001057600080fd5b5033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000808190555061023b806100686000396000f300608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632e1a7d4d1461005c5780638da5cb5b1461009d578063d0e30db0146100f4575b600080fd5b34801561006857600080fd5b5061008760048036038101908080359060200190929190505050610112565b6040518082815260200191505060405180910390f35b3480156100a957600080fd5b506100b26101d0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100fc6101f6565b6040518082815260200191505060405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561017057600080fd5b8160008082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156101c5573d6000803e3d6000fd5b506000549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003460008082825401925050819055506000549050905600a165627a7a72305820f237db3ec816a52589d82512117bc85bc08d3537683ffeff9059108caf3e5d400029', |
||||
from: '0x0f002c95c041f003be01c3e4f52cae1f6ab3ba6e', |
||||
gas: '0x31413', |
||||
value: '0x0', |
||||
}, |
||||
type: TRANSACTION_TYPES.SIMPLE_SEND, |
||||
}, |
||||
[ |
||||
{ |
||||
note: 'Added new unapproved transaction.', |
||||
op: 'add', |
||||
path: '/txParams/maxFeePerGas', |
||||
timestamp: 1631118004862, |
||||
value: '0x59682f10', |
||||
}, |
||||
{ |
||||
op: 'add', |
||||
path: '/txParams/maxPriorityFeePerGas', |
||||
value: '0x59682f00', |
||||
}, |
||||
{ |
||||
op: 'replace', |
||||
path: '/loadingDefaults', |
||||
value: false, |
||||
}, |
||||
{ |
||||
op: 'add', |
||||
path: '/userFeeLevel', |
||||
value: 'medium', |
||||
}, |
||||
], |
||||
], |
||||
}, |
||||
3274396743040791: { |
||||
baseFeePerGas: '0xb', |
||||
chainId: '0x4', |
||||
dappSuggestedGasFees: { |
||||
gas: '0xa9fe', |
||||
}, |
||||
estimatedBaseFee: 'b', |
||||
hash: |
||||
'0x19ffab8a9467df9afbef82d8907f9e39f0696c7a774ed5473ecf7337adcc674b', |
||||
origin: 'https://metamask.github.io', |
||||
r: '0xc2b2901f3593536d21e9b136c469b9b8f91a944f18a29a3cdf3a2eaadf660e71', |
||||
rawTx: |
||||
'0x02f87604288459682f008459682f1082a9fe949ef57335bc7d5b6cbc06dca6064a604b75e09ace883782dace9d90000084d0e30db0c001a0c2b2901f3593536d21e9b136c469b9b8f91a944f18a29a3cdf3a2eaadf660e71a057876a0292d548dd67c6faed8e835b94252b55a043ce01a1206361ccab417ad4', |
||||
s: '0x57876a0292d548dd67c6faed8e835b94252b55a043ce01a1206361ccab417ad4', |
||||
status: 'confirmed', |
||||
submittedTime: 1631118228493, |
||||
time: 1631118217596, |
||||
txParams: { |
||||
data: '0xd0e30db0', |
||||
from: '0x0f002c95c041f003be01c3e4f52cae1f6ab3ba6e', |
||||
gas: '0xa9fe', |
||||
maxFeePerGas: '0x59682f10', |
||||
maxPriorityFeePerGas: '0x59682f00', |
||||
nonce: '0x28', |
||||
to: '0x9ef57335bc7d5b6cbc06dca6064a604b75e09ace', |
||||
value: '0x3782dace9d900000', |
||||
}, |
||||
txReceipt: { |
||||
blockHash: |
||||
'0xafa4e1fd95e429d9c6e6c7c1d282b2bd0bbeb50d0a68743e9392b9c95a06e2eb', |
||||
blockNumber: { |
||||
length: 1, |
||||
negative: 0, |
||||
red: null, |
||||
words: [9257603, null], |
||||
}, |
||||
contractAddress: null, |
||||
cumulativeGasUsed: { |
||||
length: 1, |
||||
negative: 0, |
||||
red: null, |
||||
words: [4954851, null], |
||||
}, |
||||
effectiveGasPrice: '0x59682f0b', |
||||
from: '0x0f002c95c041f003be01c3e4f52cae1f6ab3ba6e', |
||||
gasUsed: 'a9fe', |
||||
logs: [], |
||||
logsBloom: |
||||
'0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', |
||||
status: '0x1', |
||||
to: '0x9ef57335bc7d5b6cbc06dca6064a604b75e09ace', |
||||
transactionHash: |
||||
'0x19ffab8a9467df9afbef82d8907f9e39f0696c7a774ed5473ecf7337adcc674b', |
||||
transactionIndex: { |
||||
length: 1, |
||||
negative: 0, |
||||
red: null, |
||||
words: [9, null], |
||||
}, |
||||
type: '0x2', |
||||
}, |
||||
type: TRANSACTION_TYPES.SIMPLE_SEND, |
||||
history: [ |
||||
{ |
||||
chainId: '0x4', |
||||
dappSuggestedGasFees: { |
||||
gas: '0xa9fe', |
||||
}, |
||||
id: 3274396743040791, |
||||
loadingDefaults: true, |
||||
metamaskNetworkId: '4', |
||||
origin: 'https://metamask.github.io', |
||||
status: 'unapproved', |
||||
time: 1631118217596, |
||||
txParams: { |
||||
data: '0xd0e30db0', |
||||
from: '0x0f002c95c041f003be01c3e4f52cae1f6ab3ba6e', |
||||
gas: '0xa9fe', |
||||
to: '0x9ef57335bc7d5b6cbc06dca6064a604b75e09ace', |
||||
value: '0x3782dace9d900000', |
||||
}, |
||||
}, |
||||
[ |
||||
{ |
||||
note: 'Added new unapproved transaction.', |
||||
op: 'add', |
||||
path: '/txParams/maxFeePerGas', |
||||
timestamp: 1631118217762, |
||||
value: '0x59682f10', |
||||
}, |
||||
{ |
||||
op: 'add', |
||||
path: '/txParams/maxPriorityFeePerGas', |
||||
value: '0x59682f00', |
||||
}, |
||||
{ |
||||
op: 'replace', |
||||
path: '/loadingDefaults', |
||||
value: false, |
||||
}, |
||||
{ |
||||
op: 'add', |
||||
path: '/userFeeLevel', |
||||
value: 'medium', |
||||
}, |
||||
], |
||||
], |
||||
}, |
||||
}; |
||||
const oldStorage = { |
||||
meta: {}, |
||||
data: { |
||||
TransactionController: { |
||||
transactions: OLD_TRANSACTION_STATE, |
||||
}, |
||||
}, |
||||
}; |
||||
|
||||
const expectedStorage = { |
||||
meta: {}, |
||||
data: { |
||||
TransactionController: { |
||||
transactions: EXPECTED_TRANSACTION_STATE, |
||||
}, |
||||
}, |
||||
}; |
||||
|
||||
const newStorage = await migration64.migrate(oldStorage); |
||||
|
||||
assert.deepEqual(expectedStorage.data, newStorage.data); |
||||
}); |
||||
}); |
Loading…
Reference in new issue