mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
Merge pull request #944 from MetaMask/i938-uri-validation
I938 uri validation
This commit is contained in:
commit
73cdf0bfd4
@ -5,6 +5,7 @@
|
|||||||
## 2.14.1 2016-12-20
|
## 2.14.1 2016-12-20
|
||||||
|
|
||||||
- Temporarily disable extension reload detection causing infinite reload bug.
|
- Temporarily disable extension reload detection causing infinite reload bug.
|
||||||
|
- Implemented basic checking for valid RPC URIs.
|
||||||
|
|
||||||
## 2.14.0 2016-12-16
|
## 2.14.0 2016-12-16
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ module.exports = class NoticeController extends EventEmitter {
|
|||||||
var id = notice.id
|
var id = notice.id
|
||||||
notices[id].read = true
|
notices[id].read = true
|
||||||
this.setNoticesList(notices)
|
this.setNoticesList(notices)
|
||||||
let latestNotice = this.getLatestUnreadNotice()
|
const latestNotice = this.getLatestUnreadNotice()
|
||||||
cb(null, latestNotice)
|
cb(null, latestNotice)
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
cb(err)
|
cb(err)
|
||||||
|
@ -91,6 +91,7 @@
|
|||||||
"textarea-caret": "^3.0.1",
|
"textarea-caret": "^3.0.1",
|
||||||
"three.js": "^0.73.2",
|
"three.js": "^0.73.2",
|
||||||
"through2": "^2.0.1",
|
"through2": "^2.0.1",
|
||||||
|
"valid-url": "^1.0.9",
|
||||||
"vreme": "^3.0.2",
|
"vreme": "^3.0.2",
|
||||||
"web3": "0.17.0-beta",
|
"web3": "0.17.0-beta",
|
||||||
"web3-provider-engine": "^8.1.14",
|
"web3-provider-engine": "^8.1.14",
|
||||||
|
@ -4,11 +4,13 @@ const h = require('react-hyperscript')
|
|||||||
const connect = require('react-redux').connect
|
const connect = require('react-redux').connect
|
||||||
const actions = require('./actions')
|
const actions = require('./actions')
|
||||||
const currencies = require('./conversion.json').rows
|
const currencies = require('./conversion.json').rows
|
||||||
|
const validUrl = require('valid-url')
|
||||||
module.exports = connect(mapStateToProps)(ConfigScreen)
|
module.exports = connect(mapStateToProps)(ConfigScreen)
|
||||||
|
|
||||||
function mapStateToProps (state) {
|
function mapStateToProps (state) {
|
||||||
return {
|
return {
|
||||||
metamask: state.metamask,
|
metamask: state.metamask,
|
||||||
|
warning: state.appState.warning,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -20,6 +22,7 @@ function ConfigScreen () {
|
|||||||
ConfigScreen.prototype.render = function () {
|
ConfigScreen.prototype.render = function () {
|
||||||
var state = this.props
|
var state = this.props
|
||||||
var metamaskState = state.metamask
|
var metamaskState = state.metamask
|
||||||
|
var warning = state.warning
|
||||||
|
|
||||||
return (
|
return (
|
||||||
h('.flex-column.flex-grow', [
|
h('.flex-column.flex-grow', [
|
||||||
@ -34,6 +37,14 @@ ConfigScreen.prototype.render = function () {
|
|||||||
h('h2.page-subtitle', 'Settings'),
|
h('h2.page-subtitle', 'Settings'),
|
||||||
]),
|
]),
|
||||||
|
|
||||||
|
h('.error', {
|
||||||
|
style: {
|
||||||
|
display: warning ? 'block' : 'none',
|
||||||
|
padding: '0 20px',
|
||||||
|
textAlign: 'center',
|
||||||
|
},
|
||||||
|
}, warning),
|
||||||
|
|
||||||
// conf view
|
// conf view
|
||||||
h('.flex-column.flex-justify-center.flex-grow.select-none', [
|
h('.flex-column.flex-justify-center.flex-grow.select-none', [
|
||||||
h('.flex-space-around', {
|
h('.flex-space-around', {
|
||||||
@ -57,7 +68,7 @@ ConfigScreen.prototype.render = function () {
|
|||||||
if (event.key === 'Enter') {
|
if (event.key === 'Enter') {
|
||||||
var element = event.target
|
var element = event.target
|
||||||
var newRpc = element.value
|
var newRpc = element.value
|
||||||
state.dispatch(actions.setRpcTarget(newRpc))
|
rpcValidation(newRpc, state)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
@ -69,7 +80,7 @@ ConfigScreen.prototype.render = function () {
|
|||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
var element = document.querySelector('input#new_rpc')
|
var element = document.querySelector('input#new_rpc')
|
||||||
var newRpc = element.value
|
var newRpc = element.value
|
||||||
state.dispatch(actions.setRpcTarget(newRpc))
|
rpcValidation(newRpc, state)
|
||||||
},
|
},
|
||||||
}, 'Save'),
|
}, 'Save'),
|
||||||
]),
|
]),
|
||||||
@ -99,6 +110,19 @@ ConfigScreen.prototype.render = function () {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function rpcValidation (newRpc, state) {
|
||||||
|
if (validUrl.isWebUri(newRpc)) {
|
||||||
|
state.dispatch(actions.setRpcTarget(newRpc))
|
||||||
|
} else {
|
||||||
|
var appendedRpc = `http://${newRpc}`
|
||||||
|
if (validUrl.isWebUri(appendedRpc)) {
|
||||||
|
state.dispatch(actions.displayWarning('URIs require the appropriate HTTP/HTTPS prefix.'))
|
||||||
|
} else {
|
||||||
|
state.dispatch(actions.displayWarning('Invalid RPC URI'))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function currentConversionInformation (metamaskState, state) {
|
function currentConversionInformation (metamaskState, state) {
|
||||||
var currentFiat = metamaskState.currentFiat
|
var currentFiat = metamaskState.currentFiat
|
||||||
var conversionDate = metamaskState.conversionDate
|
var conversionDate = metamaskState.conversionDate
|
||||||
|
Loading…
Reference in New Issue
Block a user