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

View File

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

View File

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

View File

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

View File

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