59 lines
1.4 KiB
JavaScript
59 lines
1.4 KiB
JavaScript
import Vue from 'vue'
|
|
import Vuex from 'vuex'
|
|
import state from './state'
|
|
import getWeb3 from '../network/getWeb3'
|
|
import pollWeb3 from '../network/pollWeb3'
|
|
import getContract from '../network/getContract'
|
|
|
|
Vue.use(Vuex)
|
|
export const store = new Vuex.Store({
|
|
strict: true,
|
|
state,
|
|
mutations: {
|
|
registerWeb3Instance (state, data) {
|
|
console.log('registerWeb3instance', data)
|
|
const result = data
|
|
let newWeb3 = state.web3
|
|
newWeb3.coinbase = result.coinbase
|
|
newWeb3.networkId = result.networkId
|
|
newWeb3.balance = parseInt(result.balance, 10)
|
|
newWeb3.isInjected = result.injectedWeb3
|
|
newWeb3.web3Instance = result.web3
|
|
state.web3 = newWeb3
|
|
pollWeb3()
|
|
},
|
|
|
|
updateWeb3Instance (state, data) {
|
|
console.log('updateWeb3Instance', data)
|
|
state.web3.coinbase = data.coinbase
|
|
state.web3.balance = parseInt(data.balance, 10)
|
|
},
|
|
|
|
registerContractInstance (state, data) {
|
|
console.log('contract instance: ', data)
|
|
state.contractInstance = () => data
|
|
}
|
|
|
|
},
|
|
actions: {
|
|
registerWeb3 ({commit}) {
|
|
getWeb3.then(result => {
|
|
console.log('commit result')
|
|
commit('registerWeb3Instance', result)
|
|
}).catch(e => {
|
|
console.error('error', e)
|
|
})
|
|
},
|
|
|
|
updateWeb3 ({commit}, data) {
|
|
commit('updateWeb3Instance', data)
|
|
},
|
|
|
|
getContractInstance ({commit}) {
|
|
getContract.then(result => {
|
|
commit('registerContractInstance', result)
|
|
}).catch(e => console.log(e))
|
|
}
|
|
}
|
|
})
|