Merge pull request #62 from rstormsf/core
(Feature) Automatically save all keys with its passwords
This commit is contained in:
commit
db23e47a88
|
@ -3613,6 +3613,11 @@
|
|||
"schema-utils": "0.3.0"
|
||||
}
|
||||
},
|
||||
"file-saver": {
|
||||
"version": "1.3.3",
|
||||
"resolved": "https://registry.npmjs.org/file-saver/-/file-saver-1.3.3.tgz",
|
||||
"integrity": "sha1-zdTETTqiZOrC9o7BZbx5HDSvEjI="
|
||||
},
|
||||
"file-type": {
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz",
|
||||
|
@ -4577,6 +4582,14 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz",
|
||||
"integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=",
|
||||
"requires": {
|
||||
"safe-buffer": "5.0.1"
|
||||
}
|
||||
},
|
||||
"string-width": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
|
||||
|
@ -4587,14 +4600,6 @@
|
|||
"strip-ansi": "3.0.1"
|
||||
}
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz",
|
||||
"integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=",
|
||||
"requires": {
|
||||
"safe-buffer": "5.0.1"
|
||||
}
|
||||
},
|
||||
"stringstream": {
|
||||
"version": "0.0.5",
|
||||
"resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
|
||||
|
@ -5388,6 +5393,11 @@
|
|||
"resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz",
|
||||
"integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA=="
|
||||
},
|
||||
"immediate": {
|
||||
"version": "3.0.6",
|
||||
"resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
|
||||
"integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps="
|
||||
},
|
||||
"import-local": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/import-local/-/import-local-0.1.1.tgz",
|
||||
|
@ -6388,6 +6398,48 @@
|
|||
"resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz",
|
||||
"integrity": "sha1-OGchPo3Xm/Ho8jAMDPwe+xgsDfE="
|
||||
},
|
||||
"jszip": {
|
||||
"version": "3.1.5",
|
||||
"resolved": "https://registry.npmjs.org/jszip/-/jszip-3.1.5.tgz",
|
||||
"integrity": "sha512-5W8NUaFRFRqTOL7ZDDrx5qWHJyBXy6velVudIzQUSoqAAYqzSh2Z7/m0Rf1QbmQJccegD0r+YZxBjzqoBiEeJQ==",
|
||||
"requires": {
|
||||
"core-js": "2.3.0",
|
||||
"es6-promise": "3.0.2",
|
||||
"lie": "3.1.1",
|
||||
"pako": "1.0.6",
|
||||
"readable-stream": "2.0.6"
|
||||
},
|
||||
"dependencies": {
|
||||
"core-js": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.3.0.tgz",
|
||||
"integrity": "sha1-+rg/uwstjchfpjbEudNMdUIMbWU="
|
||||
},
|
||||
"es6-promise": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz",
|
||||
"integrity": "sha1-AQ1YWEI6XxGJeWZfRkhqlcbuK7Y="
|
||||
},
|
||||
"readable-stream": {
|
||||
"version": "2.0.6",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
|
||||
"integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
|
||||
"requires": {
|
||||
"core-util-is": "1.0.2",
|
||||
"inherits": "2.0.3",
|
||||
"isarray": "1.0.0",
|
||||
"process-nextick-args": "1.0.7",
|
||||
"string_decoder": "0.10.31",
|
||||
"util-deprecate": "1.0.2"
|
||||
}
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "0.10.31",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
|
||||
"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
|
||||
}
|
||||
}
|
||||
},
|
||||
"keccak": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/keccak/-/keccak-1.2.0.tgz",
|
||||
|
@ -6480,6 +6532,14 @@
|
|||
"type-check": "0.3.2"
|
||||
}
|
||||
},
|
||||
"lie": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz",
|
||||
"integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=",
|
||||
"requires": {
|
||||
"immediate": "3.0.6"
|
||||
}
|
||||
},
|
||||
"load-json-file": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
|
||||
|
@ -10205,6 +10265,14 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz",
|
||||
"integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=",
|
||||
"requires": {
|
||||
"safe-buffer": "5.0.1"
|
||||
}
|
||||
},
|
||||
"string-width": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
|
||||
|
@ -10215,14 +10283,6 @@
|
|||
"strip-ansi": "3.0.1"
|
||||
}
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz",
|
||||
"integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=",
|
||||
"requires": {
|
||||
"safe-buffer": "5.0.1"
|
||||
}
|
||||
},
|
||||
"stringstream": {
|
||||
"version": "0.0.5",
|
||||
"resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
|
||||
|
@ -11310,6 +11370,14 @@
|
|||
"resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
|
||||
"integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM="
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
|
||||
"integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
|
||||
"requires": {
|
||||
"safe-buffer": "5.1.1"
|
||||
}
|
||||
},
|
||||
"string-length": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz",
|
||||
|
@ -11338,14 +11406,6 @@
|
|||
"function-bind": "1.1.1"
|
||||
}
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
|
||||
"integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
|
||||
"requires": {
|
||||
"safe-buffer": "5.1.1"
|
||||
}
|
||||
},
|
||||
"stringstream": {
|
||||
"version": "0.0.5",
|
||||
"resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
|
||||
|
|
|
@ -5,7 +5,9 @@
|
|||
"homepage": "https://poanetwork.github.io/",
|
||||
"dependencies": {
|
||||
"clipboard": "^1.7.1",
|
||||
"file-saver": "^1.3.3",
|
||||
"gh-pages": "^1.1.0",
|
||||
"jszip": "^3.1.5",
|
||||
"keythereum": "^1.0.2",
|
||||
"node-sass-chokidar": "0.0.3",
|
||||
"npm-run-all": "^4.1.2",
|
||||
|
|
32
src/App.js
32
src/App.js
|
@ -7,6 +7,8 @@ import './index/index.css';
|
|||
import ReactDOM from 'react-dom';
|
||||
import { error } from 'util';
|
||||
import addressGenerator from './addressGenerator'
|
||||
import JSzip from 'jszip';
|
||||
import FileSaver from 'file-saver';
|
||||
|
||||
function generateElement(msg){
|
||||
let errorNode = document.createElement("div");
|
||||
|
@ -33,6 +35,9 @@ class App extends Component {
|
|||
constructor(props){
|
||||
super(props);
|
||||
this.onClick = this.onClick.bind(this);
|
||||
this.saveFile = (blob) => {
|
||||
FileSaver.saveAs(blob, `poa_network_validator_keys.zip`);
|
||||
};
|
||||
this.state = {
|
||||
web3Config: {},
|
||||
mining: null,
|
||||
|
@ -58,13 +63,19 @@ class App extends Component {
|
|||
}
|
||||
componentDidMount(){
|
||||
if(window.location.hash.indexOf('just-generate-keys') !== -1) {
|
||||
this.generateKeys();
|
||||
this.setState({loading:true});
|
||||
setTimeout(async () => {
|
||||
const {mining, voting, payout} = await this.generateKeys();
|
||||
this.setState({loading:false});
|
||||
await this.generateZip({mining, voting, payout, netIdName: "manualCreation"});
|
||||
}, 150)
|
||||
}
|
||||
}
|
||||
async generateKeys() {
|
||||
async generateKeys(cb) {
|
||||
const mining = await addressGenerator();
|
||||
const voting = await addressGenerator();
|
||||
const payout = await addressGenerator();
|
||||
const netIdName = this.state.web3Config.netIdName;
|
||||
this.setState({
|
||||
mining,
|
||||
voting,
|
||||
|
@ -75,6 +86,20 @@ class App extends Component {
|
|||
mining, voting, payout
|
||||
}
|
||||
}
|
||||
async generateZip({mining, voting, payout, netIdName}){
|
||||
const zip = new JSzip();
|
||||
zip.file(`${netIdName}_keys/mining_key_${mining.jsonStore.address}.json`, JSON.stringify(mining.jsonStore));
|
||||
zip.file(`${netIdName}_keys/mining_password_${mining.jsonStore.address}.txt`, mining.password);
|
||||
|
||||
zip.file(`${netIdName}_keys/voting_key_${voting.jsonStore.address}.json`, JSON.stringify(voting.jsonStore));
|
||||
zip.file(`${netIdName}_keys/voting_password_${voting.jsonStore.address}.txt`, voting.password);
|
||||
|
||||
zip.file(`${netIdName}_keys/payout_key_${payout.jsonStore.address}.json`, JSON.stringify(payout.jsonStore));
|
||||
zip.file(`${netIdName}_keys/payout_password_${payout.jsonStore.address}.txt`, payout.password);
|
||||
zip.generateAsync({type:"blob"}).then((blob) => {
|
||||
FileSaver.saveAs(blob, `poa_network_validator_keys.zip`);
|
||||
});
|
||||
}
|
||||
async onClick() {
|
||||
this.setState({loading:true});
|
||||
const initialKey = window.web3.eth.defaultAccount;
|
||||
|
@ -101,10 +126,11 @@ class App extends Component {
|
|||
voting: voting.jsonStore.address,
|
||||
payout: payout.jsonStore.address,
|
||||
sender: initialKey
|
||||
}).then((receipt) => {
|
||||
}).then(async (receipt) => {
|
||||
console.log(receipt);
|
||||
this.setState({loading: false})
|
||||
swal("Congratulations!", "Your keys are generated!", "success");
|
||||
await this.generateZip({mining, voting, payout});
|
||||
}).catch((error) => {
|
||||
console.error(error.message);
|
||||
this.setState({loading: false, keysGenerated: false})
|
||||
|
|
|
@ -3,7 +3,7 @@ const CORE_ADDRESSES = {
|
|||
}
|
||||
|
||||
const SOKOL_ADDRESSES = {
|
||||
KEYS_MANAGER_ADDRESS: "0xD480319659AFe5044FB09e2B92d10c987044DE4B",
|
||||
KEYS_MANAGER_ADDRESS: "0x1aa02bd52fe418ac70263351282f66f1dacf898c",
|
||||
}
|
||||
|
||||
module.exports = (netId) => {
|
||||
|
|
Loading…
Reference in New Issue