This commit is contained in:
andrewnguyen22 2019-06-28 11:26:34 -04:00 committed by Andrew Nguyen
parent 6ed22a7c6e
commit 0c2e0ca9b3
6 changed files with 282 additions and 299 deletions

View File

@ -8,12 +8,13 @@ const createBlockTrackerInspectorMiddleware = require('eth-json-rpc-middleware/b
const providerFromMiddleware = require('eth-json-rpc-middleware/providerFromMiddleware')
const createPocketMiddleware = require('json-rpc-pocket')
const BlockTracker = require('eth-block-tracker')
const devid = 'DEVO7QQqPHCK2h3cGXhh2rY'
module.exports = createPocketClient
function createPocketClient ({ network }) {
const pocketMiddleware = createPocketMiddleware('DEVO7QQqPHCK2h3cGXhh2rY', {
netID: getNetworkIds(network).netId,
const pocketMiddleware = createPocketMiddleware(devid, {
netID: getNetworkIds({ network }).netId,
})
const pocketProvider = providerFromMiddleware(pocketMiddleware)
const blockTracker = new BlockTracker({ provider: pocketProvider })
@ -34,7 +35,6 @@ function getNetworkIds ({ network }) {
let chainId
let netId
console.log(network)
switch (network) {
case 'mainnet':
netId = '1'
@ -65,7 +65,7 @@ function getNetworkIds ({ network }) {
}
function createNetworkAndChainIdMiddleware ({ network }) {
const networkIds = getNetworkIds(network)
const networkIds = getNetworkIds({network})
return createScaffoldMiddleware({
eth_chainId: networkIds.chainId,

View File

@ -10,7 +10,7 @@ const createMetamaskMiddleware = require('./createMetamaskMiddleware')
const createInfuraClient = require('./createInfuraClient')
const createJsonRpcClient = require('./createJsonRpcClient')
const createLocalhostClient = require('./createLocalhostClient')
//const createPocketClient = require('./createPocketClient')
const createPocketClient = require('./createPocketClient')
const { createSwappableProxy, createEventEmitterProxy } = require('swappable-obj-proxy')
const ethNetProps = require('eth-net-props')
const parse = require('url-parse')
@ -56,7 +56,8 @@ module.exports = class NetworkController extends EventEmitter {
// create stores
this.providerStore = new ObservableStore(providerConfig)
this.networkStore = new ObservableStore('loading')
this.store = new ComposedStore({ provider: this.providerStore, network: this.networkStore, dProvider: false })
this.dProviderStore = new ObservableStore({dProvider: false})
this.store = new ComposedStore({ provider: this.providerStore, network: this.networkStore, dProviderStore: this.dProviderStore })
this.on('networkDidChange', this.lookupNetwork)
// provider and block tracker
this._provider = null
@ -154,12 +155,13 @@ module.exports = class NetworkController extends EventEmitter {
}
getDProvider(){
return this.store.getState().dProvider
return this.dProviderStore.getState().dProvider
}
setDProvider(key){
this.store.updateState({
dProvider: key
console.log("UPDATING STATE TO " + key)
this.dProviderStore.updateState({
dProvider: key,
})
}
@ -178,11 +180,10 @@ module.exports = class NetworkController extends EventEmitter {
// infura type-based endpoints
const isInfura = INFURA_PROVIDER_TYPES.includes(type)
if (isInfura) {
if (this.store.dProvider) {
// log.debug("IS POCKET")
console.log(this.dProviderStore.getState())
if (this.dProviderStore.getState().dProvider) {
this._configurePocketProvider(opts)
} else {
// log.debug("IS INFURA")
this._configureInfuraProvider(opts)
}
// other type-based rpc endpoints
@ -218,8 +219,7 @@ module.exports = class NetworkController extends EventEmitter {
_configurePocketProvider ({ type }) {
log.info('NetworkController - configurePocketProvider', type)
//const networkClient = createPocketClient({ network: type })
const networkClient = createInfuraClient({ network: type })
const networkClient = createPocketClient({ network: type })
this._setNetworkClient(networkClient)
// setup networkConfig
var settings = {

View File

@ -1757,6 +1757,7 @@ module.exports = class MetamaskController extends EventEmitter {
* @param {Function} cb - A callback function called when complete.
*/
setDProvider (key, cb) {
console.log("SETDPROVIDER CALLED ON METAMASK CONTROLLER" + key)
try {
this.networkController.setDProvider(key)
cb(null)

View File

@ -1,7 +1,7 @@
const inherits = require('util').inherits
const Component = require('react').Component
const h = require('react-hyperscript')
const connect = require('react-redux').connect
import PropTypes from 'prop-types'
const actions = require('../../ui/app/actions')
const LoadingIndicator = require('./components/loading')
const Web3 = require('web3')
@ -14,22 +14,18 @@ const Modal = require('../../ui/app/components/modals/index').Modal
const ethNetProps = require('eth-net-props')
const { networks } = require('../../app/scripts/controllers/network/util')
class ConfigScreen extends Component {
module.exports = connect(mapStateToProps)(ConfigScreen)
constructor (props) {
super(props)
this.state = {
loading: false,
function mapStateToProps (state) {
return {
metamask: state.metamask,
warning: state.appState.warning,
}
}
<<<<<<< ef400f8d291b983ac5a95bb2d4a3287dae588f76
static propTypes = {
dispatch: PropTypes.func,
=======
inherits(ConfigScreen, Component)
function ConfigScreen (props) {
if (props.metamask.dProvider){
if (props.metamask.dProviderStore.dProvider){
this.state = {
loading: false,
provider: "Decentralized"
@ -39,10 +35,11 @@ function ConfigScreen (props) {
loading: false,
provider: "Centralized"
}
>>>>>>> wip
}
Component.call(this)
}
render () {
ConfigScreen.prototype.render = function () {
const state = this.props
const metamaskState = state.metamask
const warning = state.warning
@ -96,9 +93,8 @@ function ConfigScreen (props) {
},
}, [
this.currentProviderDisplay(metamaskState, state),
currentProviderDisplay(metamaskState, state),
<<<<<<< ef400f8d291b983ac5a95bb2d4a3287dae588f76
h('div', { style: {display: 'flex'} }, [
h('input#new_rpc', {
placeholder: 'New RPC URL',
@ -135,49 +131,13 @@ function ConfigScreen (props) {
h('hr.horizontal-line'),
this.currentConversionInformation(metamaskState, state),
currentConversionInformation(metamaskState, state),
h('hr.horizontal-line', {
style: {
marginTop: '20px',
},
}),
=======
// POCKET NETWORK UI CHANGES START
h('p', {
style: {
fontFamily: 'Nunito Regular',
fontSize: '14px',
lineHeight: '18px',
},
}, [
'Choose Pocket Nework for a decentralized blockchain provider for applicable networks',
]),
h('button', {
style: {
alignSelf: 'center',
marginTop: '20px',
},
onClick: (event) => {
event.preventDefault()
this.toggleProvider()
},
}, this.state.provider),
h('hr.horizontal-line', {
style: {
marginTop: '20px',
},
}),
// POCKET NETWORK UI CHANGES END
h('div', {
style: {
marginTop: '20px',
},
}, [
>>>>>>> wip
h('div', {
style: {
@ -235,12 +195,37 @@ function ConfigScreen (props) {
marginTop: '20px',
},
}),
<<<<<<< ef400f8d291b983ac5a95bb2d4a3287dae588f76
// POCKET NETWORK UI CHANGES START
h('p', {
style: {
fontFamily: 'Nunito Regular',
fontSize: '14px',
lineHeight: '18px',
},
}, [
'Choose Pocket Nework for a decentralized blockchain provider for applicable networks',
]),
h('button', {
style: {
alignSelf: 'center',
marginTop: '20px',
},
onClick: (event) => {
event.preventDefault()
this.toggleProvider()
},
}, this.state.provider),
h('hr.horizontal-line', {
style: {
marginTop: '20px',
},
}),
// POCKET NETWORK UI CHANGES END
h('div', {
=======
h('button', {
>>>>>>> wip
style: {
marginTop: '20px',
},
@ -272,7 +257,6 @@ function ConfigScreen (props) {
marginTop: '20px',
},
}),
h('button', {
style: {
alignSelf: 'center',
@ -289,32 +273,29 @@ function ConfigScreen (props) {
)
}
<<<<<<< ef400f8d291b983ac5a95bb2d4a3287dae588f76
componentWillUnmount () {
this.props.dispatch(actions.displayWarning(''))
}
=======
ConfigScreen.prototype.toggleProvider = function (){
// console.log(this)
console.log(this)
console.log(this.props.metamask.provider.type)
if (this.state.provider == "Centralized"){
this.setState({
provider: "Decentralized"
})
this.props.dispatch(actions.setDProvider(true))
this.props.dispatch(actions.setProviderType(this.props.metamask.provider.type))
} else {
this.setState({
provider: "Centralized"
})
this.props.dispatch(actions.setDProvider(false))
this.props.dispatch(actions.setProviderType(this.props.metamask.provider.type))
}
}
ConfigScreen.prototype.componentWillUnmount = function () {
this.props.dispatch(actions.displayWarning(''))
}
>>>>>>> wip
rpcValidation (newRpc, state) {
ConfigScreen.prototype.rpcValidation = function (newRpc, state) {
if (validUrl.isWebUri(newRpc)) {
this.setState({
loading: true,
@ -339,7 +320,7 @@ ConfigScreen.prototype.componentWillUnmount = function () {
}
}
currentConversionInformation (metamaskState, state) {
function currentConversionInformation (metamaskState, state) {
const currentCurrency = metamaskState.currentCurrency
const conversionDate = metamaskState.conversionDate
return h('div', [
@ -360,7 +341,7 @@ ConfigScreen.prototype.componentWillUnmount = function () {
])
}
currentProviderDisplay (metamaskState, state) {
function currentProviderDisplay (metamaskState, state) {
const provider = metamaskState.provider
let title, value
@ -383,14 +364,3 @@ ConfigScreen.prototype.componentWillUnmount = function () {
}, 'Delete'),
])
}
}
function mapStateToProps (state) {
return {
metamask: state.metamask,
warning: state.appState.warning,
}
}
module.exports = connect(mapStateToProps)(ConfigScreen)

View File

@ -2652,10 +2652,20 @@ function updateCurrentLocale (key) {
}
}
function setDProvider(key){
return {
function setDProvider (val) {
return (dispatch) => {
dispatch(actions.showLoadingIndication())
log.debug(`background.setDProvider`)
background.setDProvider(val, (err) => {
dispatch(actions.hideLoadingIndication())
if (err) {
return dispatch(actions.displayWarning(err.message))
}
})
dispatch({
type: actions.SET_DPROVIDER,
value: key,
value: val,
})
}
}

View File

@ -356,7 +356,9 @@ function reduceMetamask (state, action) {
case actions.SET_DPROVIDER:
return extend(metamaskState, {
dProvider: action.value
dProviderStore: {
dProvider : action.value,
},
})
case actions.SET_CURRENT_LOCALE: