Added auto updating.
Ask user about updating. Fix quit and install process. Removed unnecessary logs Added progress bar when selecting download and install. Added releasing instructions Minor fix
This commit is contained in:
parent
b9a60aed76
commit
f3884a3ef0
|
@ -29,3 +29,5 @@ bin/*
|
|||
.env
|
||||
|
||||
/downloads
|
||||
|
||||
dev-app-update.yml
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
# Releasing
|
||||
|
||||
Releasing the application to work with auto update is very simple.
|
||||
|
||||
1. Increment the application version in `package.json`.
|
||||
2. Push changes to master to trigger github actions to build the binaries.
|
||||
- Ensure that `.yml` files aren't being left out in the artifacts. These are needed for auto-update to work correctly.
|
||||
3. Create a github release with the **tag** being in the format `v[Version]`.
|
||||
- E.g if the version was `2.1.1` then the github tag would be `v2.1.1`
|
||||
4. Add release notes
|
||||
5. Publish the release!
|
||||
|
||||
|
|
@ -2196,8 +2196,7 @@
|
|||
"@types/node": {
|
||||
"version": "10.14.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.4.tgz",
|
||||
"integrity": "sha512-DT25xX/YgyPKiHFOpNuANIQIVvYEwCWXgK2jYYwqgaMrYE6+tq+DtmMwlD3drl6DJbUwtlIDnn0d7tIn/EbXBg==",
|
||||
"dev": true
|
||||
"integrity": "sha512-DT25xX/YgyPKiHFOpNuANIQIVvYEwCWXgK2jYYwqgaMrYE6+tq+DtmMwlD3drl6DJbUwtlIDnn0d7tIn/EbXBg=="
|
||||
},
|
||||
"@types/q": {
|
||||
"version": "1.5.2",
|
||||
|
@ -2205,6 +2204,14 @@
|
|||
"integrity": "sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/semver": {
|
||||
"version": "7.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.1.0.tgz",
|
||||
"integrity": "sha512-pOKLaubrAEMUItGNpgwl0HMFPrSAFic8oSVIvfu1UwcgGNmNyK9gyhBHKmBnUTwwVvpZfkzUC0GaMgnL6P86uA==",
|
||||
"requires": {
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"@vue/component-compiler-utils": {
|
||||
"version": "2.6.0",
|
||||
"resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-2.6.0.tgz",
|
||||
|
@ -2655,6 +2662,16 @@
|
|||
"lru-cache": "^5.1.1"
|
||||
}
|
||||
},
|
||||
"js-yaml": {
|
||||
"version": "3.13.1",
|
||||
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
|
||||
"integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"argparse": "^1.0.7",
|
||||
"esprima": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"lru-cache": {
|
||||
"version": "5.1.1",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
|
||||
|
@ -2754,7 +2771,6 @@
|
|||
"version": "1.0.10",
|
||||
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
|
||||
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"sprintf-js": "~1.0.2"
|
||||
}
|
||||
|
@ -3703,6 +3719,16 @@
|
|||
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
|
||||
"dev": true
|
||||
},
|
||||
"js-yaml": {
|
||||
"version": "3.13.1",
|
||||
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
|
||||
"integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"argparse": "^1.0.7",
|
||||
"esprima": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||
|
@ -4736,6 +4762,16 @@
|
|||
"parse-json": "^4.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"js-yaml": {
|
||||
"version": "3.13.1",
|
||||
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
|
||||
"integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"argparse": "^1.0.7",
|
||||
"esprima": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"parse-json": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
|
||||
|
@ -5546,6 +5582,16 @@
|
|||
"safer-buffer": ">= 2.1.2 < 3"
|
||||
}
|
||||
},
|
||||
"js-yaml": {
|
||||
"version": "3.13.1",
|
||||
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
|
||||
"integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"argparse": "^1.0.7",
|
||||
"esprima": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"json5": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz",
|
||||
|
@ -6310,6 +6356,14 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"electron-progressbar": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/electron-progressbar/-/electron-progressbar-1.2.0.tgz",
|
||||
"integrity": "sha512-I89HaI61SF5wl8c4p62UU3RXhL0xByzl4XH/miwb1e/VNUtRj5WCe/wJ5pNikfC01+/4aAOlNsbmkfsvQjtW6Q==",
|
||||
"requires": {
|
||||
"extend": "^3.0.1"
|
||||
}
|
||||
},
|
||||
"electron-publish": {
|
||||
"version": "22.2.0",
|
||||
"resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.2.0.tgz",
|
||||
|
@ -6389,6 +6443,64 @@
|
|||
"integrity": "sha512-LWOvuJ80pLO3FtFqTcGuXB0dxdMtzSCkRmbXdY5mHUvXRQGor3sTVmyfU70aD2yF5i+fbHz52ncWr5T3xUYHlA==",
|
||||
"dev": true
|
||||
},
|
||||
"electron-updater": {
|
||||
"version": "4.2.2",
|
||||
"resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-4.2.2.tgz",
|
||||
"integrity": "sha512-e/OZhr5tLW0GcgmpR5wD0ImxgKMa8pPoNWRcwRyMzTL9pGej7+ORp0t9DtI5ZBHUbObIoEbrk+6EDGUGtJf+aA==",
|
||||
"requires": {
|
||||
"@types/semver": "^7.1.0",
|
||||
"builder-util-runtime": "8.6.0",
|
||||
"fs-extra": "^8.1.0",
|
||||
"js-yaml": "^3.13.1",
|
||||
"lazy-val": "^1.0.4",
|
||||
"lodash.isequal": "^4.5.0",
|
||||
"pako": "^1.0.11",
|
||||
"semver": "^7.1.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"builder-util-runtime": {
|
||||
"version": "8.6.0",
|
||||
"resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.6.0.tgz",
|
||||
"integrity": "sha512-WTDhTUVrm7zkFyd6Qn7AXgmWifjpZ/fYnEdV3XCOIDMNNb/KPddBTbQ8bUlxxVeuOYlhGpcLUypG+4USdGL1ww==",
|
||||
"requires": {
|
||||
"debug": "^4.1.1",
|
||||
"sax": "^1.2.4"
|
||||
}
|
||||
},
|
||||
"debug": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
|
||||
"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
|
||||
"requires": {
|
||||
"ms": "^2.1.1"
|
||||
}
|
||||
},
|
||||
"js-yaml": {
|
||||
"version": "3.13.1",
|
||||
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
|
||||
"integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
|
||||
"requires": {
|
||||
"argparse": "^1.0.7",
|
||||
"esprima": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
|
||||
},
|
||||
"pako": {
|
||||
"version": "1.0.11",
|
||||
"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
|
||||
"integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
|
||||
},
|
||||
"semver": {
|
||||
"version": "7.1.3",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz",
|
||||
"integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"electron-window-state": {
|
||||
"version": "5.0.3",
|
||||
"resolved": "https://registry.npmjs.org/electron-window-state/-/electron-window-state-5.0.3.tgz",
|
||||
|
@ -6935,8 +7047,7 @@
|
|||
"esprima": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz",
|
||||
"integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==",
|
||||
"dev": true
|
||||
"integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw=="
|
||||
},
|
||||
"esquery": {
|
||||
"version": "1.0.1",
|
||||
|
@ -7114,10 +7225,9 @@
|
|||
}
|
||||
},
|
||||
"extend": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
|
||||
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
|
||||
"dev": true
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
|
||||
"integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ="
|
||||
},
|
||||
"extend-shallow": {
|
||||
"version": "3.0.2",
|
||||
|
@ -7593,9 +7703,9 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"graceful-fs": {
|
||||
"version": "4.2.2",
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
|
||||
"integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q=="
|
||||
"version": "4.2.3",
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
|
||||
"integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -9649,9 +9759,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"js-yaml": {
|
||||
"version": "3.13.1",
|
||||
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
|
||||
"integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
|
||||
"version": "3.12.0",
|
||||
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz",
|
||||
"integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"argparse": "^1.0.7",
|
||||
|
@ -9804,8 +9914,7 @@
|
|||
"lazy-val": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.4.tgz",
|
||||
"integrity": "sha512-u93kb2fPbIrfzBuLjZE+w+fJbUUMhNDXxNmMfaqNgpfQf1CO5ZSe2LfsnBqVAk7i/2NF48OSoRj+Xe2VT+lE8Q==",
|
||||
"dev": true
|
||||
"integrity": "sha512-u93kb2fPbIrfzBuLjZE+w+fJbUUMhNDXxNmMfaqNgpfQf1CO5ZSe2LfsnBqVAk7i/2NF48OSoRj+Xe2VT+lE8Q=="
|
||||
},
|
||||
"lcid": {
|
||||
"version": "1.0.0",
|
||||
|
@ -9930,6 +10039,11 @@
|
|||
"integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=",
|
||||
"dev": true
|
||||
},
|
||||
"lodash.isequal": {
|
||||
"version": "4.5.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
|
||||
"integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA="
|
||||
},
|
||||
"lodash.isfinite": {
|
||||
"version": "3.3.2",
|
||||
"resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz",
|
||||
|
@ -12677,6 +12791,16 @@
|
|||
"integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==",
|
||||
"dev": true
|
||||
},
|
||||
"js-yaml": {
|
||||
"version": "3.13.1",
|
||||
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
|
||||
"integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"argparse": "^1.0.7",
|
||||
"esprima": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"json5": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz",
|
||||
|
@ -13285,8 +13409,7 @@
|
|||
"sax": {
|
||||
"version": "1.2.4",
|
||||
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
|
||||
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
|
||||
"dev": true
|
||||
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
|
||||
},
|
||||
"schema-utils": {
|
||||
"version": "1.0.0",
|
||||
|
@ -13297,6 +13420,38 @@
|
|||
"ajv": "^6.1.0",
|
||||
"ajv-errors": "^1.0.0",
|
||||
"ajv-keywords": "^3.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"ajv": {
|
||||
"version": "6.10.0",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz",
|
||||
"integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fast-deep-equal": "^2.0.1",
|
||||
"fast-json-stable-stringify": "^2.0.0",
|
||||
"json-schema-traverse": "^0.4.1",
|
||||
"uri-js": "^4.2.2"
|
||||
}
|
||||
},
|
||||
"ajv-keywords": {
|
||||
"version": "3.4.0",
|
||||
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.0.tgz",
|
||||
"integrity": "sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw==",
|
||||
"dev": true
|
||||
},
|
||||
"fast-deep-equal": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
|
||||
"integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
|
||||
"dev": true
|
||||
},
|
||||
"json-schema-traverse": {
|
||||
"version": "0.4.1",
|
||||
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
|
||||
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"scss-tokenizer": {
|
||||
|
@ -13934,8 +14089,7 @@
|
|||
"sprintf-js": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
|
||||
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
|
||||
"dev": true
|
||||
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
|
||||
},
|
||||
"sshpk": {
|
||||
"version": "1.14.2",
|
||||
|
@ -14292,6 +14446,18 @@
|
|||
"stable": "^0.1.8",
|
||||
"unquote": "~1.1.1",
|
||||
"util.promisify": "~1.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"js-yaml": {
|
||||
"version": "3.13.1",
|
||||
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
|
||||
"integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"argparse": "^1.0.7",
|
||||
"esprima": "^4.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"table": {
|
||||
|
|
11
package.json
11
package.json
|
@ -3,8 +3,15 @@
|
|||
"version": "1.3.3",
|
||||
"description": "Modern GUI interface for Loki Currency",
|
||||
"productName": "Loki Electron Wallet",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/loki-project/loki-electron-gui-wallet.git"
|
||||
},
|
||||
"cordovaId": "com.lokinetwork.wallet",
|
||||
"author": "Loki",
|
||||
"author": {
|
||||
"name": "Loki",
|
||||
"email": "team@loki.network"
|
||||
},
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "quasar dev -m electron -t mat",
|
||||
|
@ -17,6 +24,8 @@
|
|||
"dependencies": {
|
||||
"axios": "^0.18.1",
|
||||
"electron-is-dev": "^1.0.1",
|
||||
"electron-progressbar": "^1.2.0",
|
||||
"electron-updater": "^4.2.0",
|
||||
"electron-window-state": "^5.0.3",
|
||||
"flag-icon-css": "^3.3.0",
|
||||
"fs-extra": "^8.1.0",
|
||||
|
|
|
@ -181,10 +181,7 @@ module.exports = function (ctx) {
|
|||
copyright: "Copyright © 2018-2019 Loki Project, 2018 Ryo Currency Project",
|
||||
afterSign: "build/notarize.js",
|
||||
artifactName: "loki-electron-wallet-${version}-${os}.${ext}",
|
||||
|
||||
// directories: {
|
||||
// buildResources: "src-electron/build"
|
||||
// },
|
||||
publish: "github",
|
||||
|
||||
linux: {
|
||||
target: ["AppImage"],
|
||||
|
@ -215,7 +212,8 @@ module.exports = function (ctx) {
|
|||
|
||||
files: [
|
||||
"!build/*.js",
|
||||
"!.env"
|
||||
"!.env",
|
||||
"!dev-app-update.yml"
|
||||
],
|
||||
|
||||
extraResources: [
|
||||
|
|
|
@ -0,0 +1,86 @@
|
|||
import { dialog } from "electron"
|
||||
import isDev from "electron-is-dev"
|
||||
import { autoUpdater } from "electron-updater"
|
||||
import ProgressBar from "electron-progressbar"
|
||||
|
||||
let progressBar = null
|
||||
let isUpdating = false
|
||||
let downloadAndInstall = false
|
||||
|
||||
function checkForUpdate (onQuitAndInstall) {
|
||||
// Disable for development
|
||||
if (isDev) {
|
||||
return
|
||||
}
|
||||
|
||||
autoUpdater.logger = console
|
||||
autoUpdater.autoDownload = false
|
||||
|
||||
autoUpdater.on("error", (err) => {
|
||||
if (isUpdating) {
|
||||
dialog.showErrorBox("Update Error: ", err == null ? "unknown" : err.message)
|
||||
isUpdating = false
|
||||
console.error("Error in auto-updater.", err.message)
|
||||
}
|
||||
})
|
||||
|
||||
autoUpdater.on("update-available", info => {
|
||||
console.log(`Update available: ${info.version}`)
|
||||
|
||||
const message = `Update ${info.version} found. Do you want to download the update?`
|
||||
const detail = `View the release notes at: https://github.com/loki-project/loki-electron-gui-wallet/releases/tag/v${info.version}`
|
||||
|
||||
dialog.showMessageBox({
|
||||
type: "info",
|
||||
title: "Update available",
|
||||
message,
|
||||
detail,
|
||||
buttons: ["Download and Install", "Download and Install Later", "No"],
|
||||
defaultId: 0
|
||||
}, (buttonIndex) => {
|
||||
// Download and install
|
||||
if (buttonIndex === 0) {
|
||||
downloadAndInstall = true
|
||||
if (!progressBar) {
|
||||
progressBar = new ProgressBar({
|
||||
indeterminate: false,
|
||||
title: "Downloading...",
|
||||
text: `Downloading wallet v${info.version}`
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// Download
|
||||
if (buttonIndex !== 2) {
|
||||
isUpdating = true
|
||||
autoUpdater.downloadUpdate()
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
autoUpdater.on("download-progress", progress => {
|
||||
if (progressBar) {
|
||||
progressBar.value = progress.percent
|
||||
}
|
||||
})
|
||||
|
||||
autoUpdater.on("update-downloaded", () => {
|
||||
console.log("Update downloaded")
|
||||
isUpdating = false
|
||||
|
||||
if (progressBar) {
|
||||
progressBar.setCompleted()
|
||||
progressBar = null
|
||||
}
|
||||
|
||||
// If download and install was selected then quit and install
|
||||
if (downloadAndInstall && onQuitAndInstall) {
|
||||
onQuitAndInstall(autoUpdater)
|
||||
downloadAndInstall = false
|
||||
}
|
||||
})
|
||||
|
||||
autoUpdater.checkForUpdates()
|
||||
}
|
||||
|
||||
export { checkForUpdate }
|
|
@ -1,6 +1,7 @@
|
|||
import { app, ipcMain, BrowserWindow, Menu, dialog } from "electron"
|
||||
import { version, productName } from "../../package.json"
|
||||
import { Backend } from "./modules/backend"
|
||||
import { checkForUpdate } from "./auto-updater"
|
||||
import menuTemplate from "./menu"
|
||||
import isDev from "electron-is-dev"
|
||||
const portscanner = require("portscanner")
|
||||
|
@ -21,6 +22,7 @@ if (process.env.PROD) {
|
|||
let mainWindow, backend
|
||||
let showConfirmClose = true
|
||||
let forceQuit = false
|
||||
let installUpdate = false
|
||||
|
||||
const title = `${productName} v${version}`
|
||||
|
||||
|
@ -60,6 +62,9 @@ function createWindow () {
|
|||
})
|
||||
|
||||
mainWindow.on("close", (e) => {
|
||||
// Don't ask for confirmation if we're installing an update
|
||||
if (installUpdate) { return }
|
||||
|
||||
if (process.platform === "darwin") {
|
||||
if (forceQuit) {
|
||||
forceQuit = false
|
||||
|
@ -90,14 +95,11 @@ function createWindow () {
|
|||
// In dev mode, this will launch a blank white screen
|
||||
if (restart && !isDev) app.relaunch()
|
||||
|
||||
if (backend) {
|
||||
backend.quit().then(() => {
|
||||
backend = null
|
||||
app.quit()
|
||||
})
|
||||
} else {
|
||||
const promise = backend ? backend.quit() : Promise.resolve()
|
||||
promise.then(() => {
|
||||
backend = null
|
||||
app.quit()
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
mainWindow.webContents.on("did-finish-load", () => {
|
||||
|
@ -113,7 +115,11 @@ function createWindow () {
|
|||
token: buffer.toString("hex")
|
||||
}
|
||||
|
||||
portscanner.checkPortStatus(config.port, "127.0.0.1", (e, status) => {
|
||||
portscanner.checkPortStatus(config.port, "127.0.0.1", (error, status) => {
|
||||
if (error) {
|
||||
console.error(error)
|
||||
}
|
||||
|
||||
if (status === "closed") {
|
||||
backend = new Backend(mainWindow)
|
||||
backend.init(config)
|
||||
|
@ -147,6 +153,18 @@ function createWindow () {
|
|||
}
|
||||
|
||||
app.on("ready", () => {
|
||||
checkForUpdate(autoUpdater => {
|
||||
if (mainWindow) {
|
||||
mainWindow.webContents.send("showQuitScreen")
|
||||
}
|
||||
|
||||
const promise = backend ? backend.quit() : Promise.resolve()
|
||||
promise.then(() => {
|
||||
installUpdate = true
|
||||
backend = null
|
||||
autoUpdater.quitAndInstall()
|
||||
})
|
||||
})
|
||||
if (process.platform === "darwin") {
|
||||
const menu = Menu.buildFromTemplate(menuTemplate)
|
||||
Menu.setApplicationMenu(menu)
|
||||
|
@ -169,6 +187,11 @@ app.on("activate", () => {
|
|||
})
|
||||
|
||||
app.on("before-quit", () => {
|
||||
// Quit instantly if we are installing an update
|
||||
if (installUpdate) {
|
||||
return
|
||||
}
|
||||
|
||||
if (process.platform === "darwin") {
|
||||
forceQuit = true
|
||||
} else {
|
||||
|
|
|
@ -951,12 +951,12 @@ export class WalletRPC {
|
|||
"address": address,
|
||||
"account_index": 0,
|
||||
"priority": priority,
|
||||
"blink": priority == 0x626c6e6b ? true : false,
|
||||
"blink": priority == 0x626c6e6b,
|
||||
"ring_size": 10
|
||||
} : {
|
||||
"destinations": [{ "amount": amount, "address": address }],
|
||||
"priority": priority,
|
||||
"blink": priority == 0x626c6e6b ? true : false,
|
||||
"blink": priority == 0x626c6e6b,
|
||||
"ring_size": 10
|
||||
}
|
||||
|
||||
|
|
|
@ -182,7 +182,6 @@ export default {
|
|||
}
|
||||
</script>
|
||||
|
||||
|
||||
<style lang="scss">
|
||||
.check-transaction {
|
||||
.description {
|
||||
|
|
|
@ -48,6 +48,12 @@ export class Gateway extends EventEmitter {
|
|||
ipcRenderer.on("confirmClose", () => {
|
||||
this.confirmClose(i18n.t("dialog.exit.message"))
|
||||
})
|
||||
|
||||
ipcRenderer.on("showQuitScreen", () => {
|
||||
if (this.router) {
|
||||
this.router.replace({ path: "/quit" })
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
open () {
|
||||
|
|
Loading…
Reference in New Issue