"lockfileVersion": 1,
"requires": true,
"dependencies": {
+ "7zip-bin": {
+ "version": "4.0.2",
+ "resolved": "http://registry.npm.taobao.org/7zip-bin/download/7zip-bin-4.0.2.tgz",
+ "integrity": "sha1-arvcIvM8q3QgU3d6JtsuJcpScXk=",
+ "dev": true
+ },
+ "@types/node": {
+ "version": "8.10.17",
+ "resolved": "http://registry.npm.taobao.org/@types/node/download/@types/node-8.10.17.tgz",
+ "integrity": "sha1-1IzxDw3G3PWfgn9aP8ekpgBDGNM=",
+ "dev": true
+ "@babel/runtime": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.1.2.tgz",
+ "integrity": "sha512-Y3SCjmhSupzFB6wcv1KmmFucH6gDVnI30WjOcicV10ju0cZjak3Jcs67YLIXBrmZYw1xCrVeJPbycFwrqNyxpg==",
+ "requires": {
+ "regenerator-runtime": "0.12.1"
+ },
+ "dependencies": {
+ "regenerator-runtime": {
+ "version": "0.12.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz",
+ "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg=="
+ }
+ }
},
"abbrev": {
"version": "1.1.1",
"object-assign": "4.1.1"
}
},
+ "create-react-context": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/create-react-context/-/create-react-context-0.2.3.tgz",
+ "integrity": "sha512-CQBmD0+QGgTaxDL3OX1IDXYqjkp2It4RIbcb99jS6AEg27Ga+a9G3JtK6SIu0HBwPLZlmwt9F7UwWA4Bn92Rag==",
+ "requires": {
+ "fbjs": "0.8.16",
+ "gud": "1.0.0"
+ }
+ },
"cross-spawn": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
- "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
+ "version": "5.1.0",
+ "resolved": "http://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
"dev": true,
"requires": {
"lru-cache": "4.1.3",
"integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
"dev": true
},
+ "growl": {
+ "version": "1.8.1",
+ "resolved": "http://registry.npm.taobao.org/growl/download/growl-1.8.1.tgz",
+ "integrity": "sha1-Sy3sjZB+k9szZiTc7AGDUC+MlCg=",
+ "dev": true
+ },
+ "gud": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz",
+ "integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw=="
+ },
"har-schema": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
- "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
- "dev": true
+ "resolved": "http://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz",
+ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
},
"har-validator": {
"version": "5.0.3",
"integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=",
"dev": true
},
+ "html-parse-stringify2": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/html-parse-stringify2/-/html-parse-stringify2-2.0.1.tgz",
+ "integrity": "sha1-3FZwtyksoVi3vJFsmmc1rIhyg0o=",
+ "requires": {
+ "void-elements": "2.0.1"
+ }
+ },
"http-errors": {
"version": "1.6.3",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
+ "resolved": "http://registry.npm.taobao.org/http-errors/download/http-errors-1.6.3.tgz",
"integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
- "dev": true,
"requires": {
"depd": "1.1.2",
"inherits": "2.0.3",
"integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=",
"dev": true
},
+ "https-proxy-agent": {
+ "version": "2.2.1",
+ "resolved": "http://registry.npm.taobao.org/https-proxy-agent/download/https-proxy-agent-2.2.1.tgz",
+ "integrity": "sha1-UVUpcPoE1yPgTFbQQXjD+SWSu8A=",
+ "requires": {
+ "agent-base": "4.2.0",
+ "debug": "3.1.0"
+ }
+ },
"i18next": {
- "version": "10.5.1",
- "resolved": "http://registry.npm.taobao.org/i18next/download/i18next-10.5.1.tgz",
- "integrity": "sha1-+OHKThXEQOvDqaXD0BXDptKIeJA="
+ "version": "11.9.1",
+ "resolved": "https://registry.npmjs.org/i18next/-/i18next-11.9.1.tgz",
+ "integrity": "sha512-sUAfCdKYi8EufO6B8aY5RF/hqweCpRKvbxUhlzlmlAr+LgJQ2kXe/5y02kaPu6ApFIiW5WOz8+3ehoy97LUtMw=="
+ },
+ "i18next-browser-languagedetector": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-2.2.3.tgz",
+ "integrity": "sha512-sJZ2n9Vgax0vGer23hJMwyO3FRO7P0dq2DXZPXWE329g3snfJUcw+S24Mp3lqJaxL/0McDu4BD75ds6pzIfhhw=="
},
"iconv-lite": {
"version": "0.4.23",
"asap": "2.0.6"
}
},
+ "promisify-call": {
+ "version": "2.0.4",
+ "resolved": "http://registry.npm.taobao.org/promisify-call/download/promisify-call-2.0.4.tgz",
+ "integrity": "sha1-1IwtRWUszM1SgB3ey9UzptS9X7o=",
+ "optional": true,
+ "requires": {
+ "with-callback": "1.0.2"
+ }
+ },
"prop-types": {
- "version": "15.6.1",
- "resolved": "http://registry.npm.taobao.org/prop-types/download/prop-types-15.6.1.tgz",
- "integrity": "sha1-NmREU1ZCVd3aORGR+zoSXL32VMo=",
+ "version": "15.6.2",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz",
+ "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==",
"requires": {
- "fbjs": "0.8.16",
"loose-envify": "1.3.1",
"object-assign": "4.1.1"
}
}
}
},
+ "react-i18next": {
+ "version": "8.0.7",
+ "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-8.0.7.tgz",
+ "integrity": "sha512-oJDVe5X8QK72NYYH7/VQtopONZPcNiarlWdVuCSkn9PucQCEAOf/yRt0V2LdjC4nBY48Y20/540glwR1nlE9gA==",
+ "requires": {
+ "@babel/runtime": "7.1.2",
+ "create-react-context": "0.2.3",
+ "hoist-non-react-statics": "3.0.1",
+ "html-parse-stringify2": "2.0.1"
+ },
+ "dependencies": {
+ "hoist-non-react-statics": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.0.1.tgz",
+ "integrity": "sha512-1kXwPsOi0OGQIZNVMPvgWJ9tSnGMiMfJdihqEzrPEXlHOBh9AAHXX/QYmAJTXztnz/K+PQ8ryCb4eGaN6HlGbQ==",
+ "requires": {
+ "react-is": "16.3.2"
+ }
+ }
+ }
+ },
"react-is": {
- "version": "16.3.2",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.3.2.tgz",
- "integrity": "sha512-ybEM7YOr4yBgFd6w8dJqwxegqZGJNBZl6U27HnGKuTZmDvVrD5quWOK/wAnMywiZzW+Qsk+l4X2c70+thp/A8Q=="
+ "version": "16.4.0",
+ "resolved": "http://registry.npm.taobao.org/react-is/download/react-is-16.4.0.tgz",
+ "integrity": "sha1-zJ/chVrDTS59nS63BZu8JA01/88="
},
"react-lazy-cache": {
"version": "3.0.1",
"requires": {
"dom-helpers": "3.3.1",
"loose-envify": "1.3.1",
- "prop-types": "15.6.1"
+ "prop-types": "15.6.2"
}
},
+ "read-config-file": {
+ "version": "3.0.1",
+ "resolved": "http://registry.npm.taobao.org/read-config-file/download/read-config-file-3.0.1.tgz",
+ "integrity": "sha1-MH7S4WL6VDBtCubUHpzcgpcg0qk=",
+ "dev": true,
+ "requires": {
+ "ajv": "6.5.0",
+ "ajv-keywords": "3.2.0",
+ "bluebird-lst": "1.0.5",
+ "dotenv": "5.0.1",
+ "dotenv-expand": "4.2.0",
+ "fs-extra-p": "4.6.0",
+ "js-yaml": "3.11.0",
+ "json5": "1.0.1",
+ "lazy-val": "1.0.3"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "6.5.0",
+ "resolved": "http://registry.npm.taobao.org/ajv/download/ajv-6.5.0.tgz",
+ "integrity": "sha1-TIr/34CIfY8TLJxSq4otxNC3skw=",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "2.0.1",
+ "fast-json-stable-stringify": "2.0.0",
+ "json-schema-traverse": "0.3.1",
+ "uri-js": "4.2.2"
+ }
+ },
+ "fast-deep-equal": {
+ "version": "2.0.1",
+ "resolved": "http://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-2.0.1.tgz",
+ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
+ "dev": true
+ },
+ "json5": {
+ "version": "1.0.1",
+ "resolved": "http://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz",
+ "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=",
+ "dev": true,
+ "requires": {
+ "minimist": "1.2.0"
+ }
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "http://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
"read-pkg": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+ "resolved": "http://registry.npm.taobao.org/read-pkg/download/read-pkg-1.1.0.tgz",
"integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
"dev": true,
"requires": {
"indexof": "0.0.1"
}
},
+ "void-elements": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz",
+ "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w="
+ },
"w3c-blob": {
"version": "0.0.1",
- "resolved": "https://registry.npmjs.org/w3c-blob/-/w3c-blob-0.0.1.tgz",
+ "resolved": "http://registry.npm.taobao.org/w3c-blob/download/w3c-blob-0.0.1.tgz",
"integrity": "sha1-sM01KhpQ9RVWNCD/1YYflQ8dhbg="
},
"warning": {
this.props.showConfiguration()
}
}
-
componentDidMount() {
- this.props.fetchAccountItem().then(resp => {
- if (resp.data.length == 0) {
- this.setState({noAccountItem: true})
- }
- })
+ if(window.ipcRenderer){
+ window.ipcRenderer.on('redirect', (event, arg) => {
+ this.props.history.push(arg)
+ })
+ window.ipcRenderer.on('btmAmountUnitState', (event, arg) => {
+ this.props.uptdateBtmAmountUnit(arg)
+ })
+ window.ipcRenderer.on('lang', (event, arg) => {
+ this.props.uptdateLang(arg)
+ })
+ window.ipcRenderer.on('ConfiguredNetwork', (event, arg) => {
+ if(arg === 'startNode'){
+ this.props.fetchInfo().then(() => {
+ this.props.fetchAccountItem().then(resp => {
+ if (resp.data.length == 0) {
+ this.setState({noAccountItem: true})
+ }
+ })
+ this.props.showRoot()
+ })
+ setInterval(() => this.props.fetchInfo(), CORE_POLLING_TIME)
+ }
+ if(arg === 'init'){
+ this.props.updateConfiguredStatus()
+ }
+ })
+ window.ipcRenderer.on('mining', (event, arg) => {
+ let isMining = (arg == 'true')
+ this.props.updateMiningState(isMining)
+ })
+ }
- if(this.props.lang === 'zh'){
+ if(this.props.lng === 'zh'){
moment.locale('zh-cn')
}else{
- moment.locale(this.props.lang)
+ moment.locale(this.props.lng)
}
}
render() {
let layout
+ const lang = this.props.lang
+ const { i18n } = this.props
+ i18n.on('languageChanged', function(lng) {
+ if(lng === 'zh'){
+ moment.locale('zh-cn')
+ }else{
+ moment.locale(lng)
+ }
+ })
+
if (!this.props.authOk) {
layout = <Login/>
- } else if (!this.props.configKnown) {
- return <Loading>Connecting to Bytom Core...</Loading>
} else if (!this.props.configured) {
layout = <Config>{this.props.children}</Config>
+ } else if (!this.props.configKnown) {
+ return <Loading>{lang === 'zh'? '正在连接到Bytom Core...' : 'Connecting to Bytom Core...'}</Loading>
} else if (!this.props.accountInit && this.state.noAccountItem){
layout = <Register>{this.props.children}</Register>
} else{
export default connect(
(state) => ({
authOk: !state.core.requireClientToken || state.core.validToken,
- configKnown: true,
- configured: true,
+ configKnown: state.core.configKnown,
+ configured: state.core.configured,
onTestnet: state.core.onTestnet,
+ flashMessages: state.app.flashMessages,
accountInit: state.core.accountInit,
- lang: state.core.lang
}),
(dispatch) => ({
fetchInfo: options => dispatch(actions.core.fetchCoreInfo(options)),
+ updateMiningState: param => dispatch(actions.core.updateMiningState(param)),
showRoot: () => dispatch(actions.app.showRoot),
showConfiguration: () => dispatch(actions.app.showConfiguration()),
+ uptdateBtmAmountUnit: (param) => dispatch(actions.core.updateBTMAmountUnit(param)),
+ uptdateLang: (param) => dispatch(actions.core.updateLang(param)),
+ updateConfiguredStatus: () => dispatch(actions.core.updateConfiguredStatus),
+ markFlashDisplayed: (key) => dispatch(actions.app.displayedFlash(key)),
fetchAccountItem: () => dispatch(actions.account.fetchItems())
})
- )(Container)
+ )( withI18n() (Container) )