Fix export private key when switching between chains

This commit is contained in:
Victor Baranov 2021-02-17 18:25:23 +03:00
parent c011c0adcd
commit d278ce4419
2 changed files with 24 additions and 185 deletions

View File

@ -1,7 +1,7 @@
const Component = require('react').Component const Component = require('react').Component
const h = require('react-hyperscript') const h = require('react-hyperscript')
const inherits = require('util').inherits const inherits = require('util').inherits
const exportAsFile = require('../util').exportAsFile const { exportAsFile, getDPath } = require('../util')
const actions = require('../../../ui/app/actions') const actions = require('../../../ui/app/actions')
const ethUtil = require('ethereumjs-util') const ethUtil = require('ethereumjs-util')
const connect = require('react-redux').connect const connect = require('react-redux').connect
@ -18,6 +18,7 @@ function mapStateToProps (state) {
return { return {
warning: state.appState.warning, warning: state.appState.warning,
dPath: state.metamask.dPath, dPath: state.metamask.dPath,
provider: state.metamask.provider,
} }
} }
@ -121,7 +122,7 @@ ExportAccountView.prototype.render = function () {
paddingTop: '25px', paddingTop: '25px',
textOverflow: 'ellipsis', textOverflow: 'ellipsis',
overflow: 'hidden', overflow: 'hidden',
webkitUserSelect: 'text', WebkitUserSelect: 'text',
maxWidth: '275px', maxWidth: '275px',
color: '#333333', color: '#333333',
textAlign: 'center', textAlign: 'center',
@ -166,5 +167,7 @@ ExportAccountView.prototype.onExportKeyPress = function (event) {
event.preventDefault() event.preventDefault()
const input = document.getElementById('exportAccount').value const input = document.getElementById('exportAccount').value
this.props.dispatch(actions.exportAccount(input, this.props.address, this.props.dPath)) const isCreatedWithCorrectDPath = this.props.dispatch(actions.isCreatedWithCorrectDPath())
const dPath = getDPath(this.props.provider.type, isCreatedWithCorrectDPath)
this.props.dispatch(actions.exportAccount(input, this.props.address, dPath))
} }

200
package-lock.json generated
View File

@ -11560,41 +11560,14 @@
}, },
"dependencies": { "dependencies": {
"eth-sig-util": { "eth-sig-util": {
"version": "2.5.2", "version": "2.5.4",
"resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-2.5.2.tgz", "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-2.5.4.tgz",
"integrity": "sha512-xvDojS/4reXsw8Pz/+p/qcM5rVB61FOdPbEtMZ8FQ0YHnPEzPy5F8zAAaZ+zj5ud0SwRLWPfor2Cacjm7EzMIw==", "integrity": "sha512-aCMBwp8q/4wrW4QLsF/HYBOSA7TpLKmkVwP3pYQNkEEseW2Rr8Z5Uxc9/h6HX+OG3tuHo+2bINVSihIeBfym6A==",
"requires": { "requires": {
"buffer": "^5.2.1", "ethereumjs-abi": "0.6.8",
"elliptic": "^6.4.0",
"ethereumjs-abi": "0.6.5",
"ethereumjs-util": "^5.1.1", "ethereumjs-util": "^5.1.1",
"tweetnacl": "^1.0.0", "tweetnacl": "^1.0.3",
"tweetnacl-util": "^0.15.0" "tweetnacl-util": "^0.15.0"
},
"dependencies": {
"ethereumjs-abi": {
"version": "0.6.5",
"resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.5.tgz",
"integrity": "sha1-WmN+8Wq0NHP6cqKa2QhxQFs/UkE=",
"requires": {
"bn.js": "^4.10.0",
"ethereumjs-util": "^4.3.0"
},
"dependencies": {
"ethereumjs-util": {
"version": "4.5.1",
"resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-4.5.1.tgz",
"integrity": "sha512-WrckOZ7uBnei4+AKimpuF1B3Fv25OmoRgmYCpGsP7u8PFxXAmAgiJSYT2kRWnt6fVIlKaQlZvuwXp7PIrmn3/w==",
"requires": {
"bn.js": "^4.8.0",
"create-hash": "^1.1.2",
"elliptic": "^6.5.2",
"ethereum-cryptography": "^0.1.3",
"rlp": "^2.0.0"
}
}
}
}
} }
}, },
"events": { "events": {
@ -11894,7 +11867,7 @@
} }
}, },
"ethereumjs-abi": { "ethereumjs-abi": {
"version": "git+https://github.com/ethereumjs/ethereumjs-abi.git#1cfbb13862f90f0b391d8a699544d5fe4dfb8c7b", "version": "git+https://github.com/ethereumjs/ethereumjs-abi.git#1a27c59c15ab1e95ee8e5c4ed6ad814c49cc439e",
"from": "git+https://github.com/ethereumjs/ethereumjs-abi.git", "from": "git+https://github.com/ethereumjs/ethereumjs-abi.git",
"requires": { "requires": {
"bn.js": "^4.11.8", "bn.js": "^4.11.8",
@ -11902,17 +11875,17 @@
}, },
"dependencies": { "dependencies": {
"ethereumjs-util": { "ethereumjs-util": {
"version": "6.2.0", "version": "6.2.1",
"resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.0.tgz", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz",
"integrity": "sha512-vb0XN9J2QGdZGIEKG2vXM+kUdEivUfU6Wmi5y0cg+LRhDYKnXIZ/Lz7XjFbHRR9VIKq2lVGLzGBkA++y2nOdOQ==", "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==",
"requires": { "requires": {
"@types/bn.js": "^4.11.3", "@types/bn.js": "^4.11.3",
"bn.js": "^4.11.0", "bn.js": "^4.11.0",
"create-hash": "^1.1.2", "create-hash": "^1.1.2",
"elliptic": "^6.5.2",
"ethereum-cryptography": "^0.1.3",
"ethjs-util": "0.1.6", "ethjs-util": "0.1.6",
"keccak": "^2.0.0", "rlp": "^2.2.3"
"rlp": "^2.2.3",
"secp256k1": "^3.0.1"
} }
} }
} }
@ -12154,41 +12127,14 @@
}, },
"dependencies": { "dependencies": {
"eth-sig-util": { "eth-sig-util": {
"version": "2.5.2", "version": "2.5.4",
"resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-2.5.2.tgz", "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-2.5.4.tgz",
"integrity": "sha512-xvDojS/4reXsw8Pz/+p/qcM5rVB61FOdPbEtMZ8FQ0YHnPEzPy5F8zAAaZ+zj5ud0SwRLWPfor2Cacjm7EzMIw==", "integrity": "sha512-aCMBwp8q/4wrW4QLsF/HYBOSA7TpLKmkVwP3pYQNkEEseW2Rr8Z5Uxc9/h6HX+OG3tuHo+2bINVSihIeBfym6A==",
"requires": { "requires": {
"buffer": "^5.2.1", "ethereumjs-abi": "0.6.8",
"elliptic": "^6.4.0",
"ethereumjs-abi": "0.6.5",
"ethereumjs-util": "^5.1.1", "ethereumjs-util": "^5.1.1",
"tweetnacl": "^1.0.0", "tweetnacl": "^1.0.3",
"tweetnacl-util": "^0.15.0" "tweetnacl-util": "^0.15.0"
},
"dependencies": {
"ethereumjs-abi": {
"version": "0.6.5",
"resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.5.tgz",
"integrity": "sha1-WmN+8Wq0NHP6cqKa2QhxQFs/UkE=",
"requires": {
"bn.js": "^4.10.0",
"ethereumjs-util": "^4.3.0"
},
"dependencies": {
"ethereumjs-util": {
"version": "4.5.1",
"resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-4.5.1.tgz",
"integrity": "sha512-WrckOZ7uBnei4+AKimpuF1B3Fv25OmoRgmYCpGsP7u8PFxXAmAgiJSYT2kRWnt6fVIlKaQlZvuwXp7PIrmn3/w==",
"requires": {
"bn.js": "^4.8.0",
"create-hash": "^1.1.2",
"elliptic": "^6.5.2",
"ethereum-cryptography": "^0.1.3",
"rlp": "^2.0.0"
}
}
}
}
} }
}, },
"events": { "events": {
@ -17038,91 +16984,7 @@
"requires": { "requires": {
"eth-json-rpc-middleware": "^4.4.0", "eth-json-rpc-middleware": "^4.4.0",
"eth-rpc-errors": "^3.0.0", "eth-rpc-errors": "^3.0.0",
"json-rpc-engine": "^5.1.3", "json-rpc-engine": "^5.1.3"
"node-fetch": "^2.6.0"
},
"dependencies": {
"eth-json-rpc-errors": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz",
"integrity": "sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg==",
"requires": {
"fast-safe-stringify": "^2.0.6"
}
},
"eth-json-rpc-middleware": {
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/eth-json-rpc-middleware/-/eth-json-rpc-middleware-4.4.1.tgz",
"integrity": "sha512-yoSuRgEYYGFdVeZg3poWOwAlRI+MoBIltmOB86MtpoZjvLbou9EB/qWMOWSmH2ryCWLW97VYY6NWsmWm3OAA7A==",
"requires": {
"btoa": "^1.2.1",
"clone": "^2.1.1",
"eth-json-rpc-errors": "^1.0.1",
"eth-query": "^2.1.2",
"eth-sig-util": "^1.4.2",
"ethereumjs-block": "^1.6.0",
"ethereumjs-tx": "^1.3.7",
"ethereumjs-util": "^5.1.2",
"ethereumjs-vm": "^2.6.0",
"fetch-ponyfill": "^4.0.0",
"json-rpc-engine": "^5.1.3",
"json-stable-stringify": "^1.0.1",
"pify": "^3.0.0",
"safe-event-emitter": "^1.0.1"
}
},
"eth-sig-util": {
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-1.4.2.tgz",
"integrity": "sha1-jZWCAsftuq6Dlwf7pvCf8ydgYhA=",
"requires": {
"ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git",
"ethereumjs-util": "^5.1.1"
}
},
"ethereumjs-abi": {
"version": "git+https://github.com/ethereumjs/ethereumjs-abi.git#1ce6a1d64235fabe2aaf827fd606def55693508f",
"from": "git+https://github.com/ethereumjs/ethereumjs-abi.git",
"requires": {
"bn.js": "^4.11.8",
"ethereumjs-util": "^6.0.0"
},
"dependencies": {
"ethereumjs-util": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz",
"integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==",
"requires": {
"@types/bn.js": "^4.11.3",
"bn.js": "^4.11.0",
"create-hash": "^1.1.2",
"elliptic": "^6.5.2",
"ethereum-cryptography": "^0.1.3",
"ethjs-util": "0.1.6",
"rlp": "^2.2.3"
}
}
}
},
"ethereumjs-util": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz",
"integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==",
"requires": {
"bn.js": "^4.11.0",
"create-hash": "^1.1.2",
"elliptic": "^6.5.2",
"ethereum-cryptography": "^0.1.3",
"ethjs-util": "^0.1.3",
"rlp": "^2.0.0",
"safe-buffer": "^5.1.1"
}
},
"node-fetch": {
"version": "2.6.1",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
"integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
}
} }
}, },
"eth-json-rpc-middleware": { "eth-json-rpc-middleware": {
@ -17146,14 +17008,6 @@
"safe-event-emitter": "^1.0.1" "safe-event-emitter": "^1.0.1"
}, },
"dependencies": { "dependencies": {
"eth-json-rpc-errors": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz",
"integrity": "sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg==",
"requires": {
"fast-safe-stringify": "^2.0.6"
}
},
"eth-sig-util": { "eth-sig-util": {
"version": "1.4.2", "version": "1.4.2",
"resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-1.4.2.tgz", "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-1.4.2.tgz",
@ -20332,16 +20186,6 @@
"eth-json-rpc-errors": "^1.0.1", "eth-json-rpc-errors": "^1.0.1",
"promise-to-callback": "^1.0.0", "promise-to-callback": "^1.0.0",
"safe-event-emitter": "^1.0.1" "safe-event-emitter": "^1.0.1"
},
"dependencies": {
"eth-json-rpc-errors": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz",
"integrity": "sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg==",
"requires": {
"fast-safe-stringify": "^2.0.6"
}
}
} }
}, },
"json-rpc-random-id": { "json-rpc-random-id": {
@ -23062,14 +22906,6 @@
"xtend": "^4.0.1" "xtend": "^4.0.1"
}, },
"dependencies": { "dependencies": {
"eth-json-rpc-errors": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz",
"integrity": "sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg==",
"requires": {
"fast-safe-stringify": "^2.0.6"
}
},
"eth-sig-util": { "eth-sig-util": {
"version": "1.4.2", "version": "1.4.2",
"resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-1.4.2.tgz", "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-1.4.2.tgz",