diff --git a/README.md b/README.md index f56e88d..f61c93c 100644 --- a/README.md +++ b/README.md @@ -8,3 +8,7 @@ https://support.ledger.com/hc/en-us/articles/115005165269-Connection-issues-with ``` wget -q -O - https://raw.githubusercontent.com/LedgerHQ/udev-rules/master/add_udev_rules.sh | sudo bash ``` + +Any donation to ELA address EUSMsck3svNiacva9LfwrLfbvNnUU27z77 or mbutcho (CryptoName) is much appreciated. + +### Thank you and enjoy! diff --git a/docs/build-notes.md b/docs/build-notes.md index 05e937a..a451d25 100644 --- a/docs/build-notes.md +++ b/docs/build-notes.md @@ -43,23 +43,23 @@ npm run dist-linux; ## Checksum: - 1.0.2-RC1 + 1.0.2-RC2 windows: - openssl dgst -sha512 -binary Elastos-Light-Wallet-Setup-1.0.2-RC1.exe | openssl base64 -A + openssl dgst -sha512 -binary Elastos-Light-Wallet-Setup-1.0.2-RC2.exe | openssl base64 -A xxxx Ubuntu 18: - openssl sha -sha512 Elastos-Light-Wallet-1.0.2-RC1.AppImage + openssl sha -sha512 Elastos-Light-Wallet-1.0.2-RC2.AppImage xxxx Mac: - openssl dgst -sha512 Elastos-Light-Wallet-1.0.2-RC1.dmg + openssl dgst -sha512 Elastos-Light-Wallet-1.0.2-RC2.dmg xxxx @@ -77,13 +77,13 @@ npm ls node-gyp # to auto build a releases - git commit -am v1.0.2-RC1; - git tag v1.0.2-RC1; + git commit -am v1.0.2-RC2; + git tag v1.0.2-RC2; git push; git push --tags; ## to delete release tags - git push --delete origin v1.0.2-RC1; - git tag -d v1.0.2-RC1; + git push --delete origin v1.0.2-RC2; + git tag -d v1.0.2-RC2; git pull; git push; diff --git a/package-lock.json b/package-lock.json index 075a908..ec2bf51 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "elastos-light-wallet", - "version": "v1.0.2-RC1", + "version": "v1.0.2-RC2", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -4290,7 +4290,7 @@ }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "resolved": "http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, diff --git a/package.json b/package.json index 9a6efc6..05a5271 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "elastos-light-wallet", - "version": "v1.0.2-RC1", + "version": "v1.0.2-RC2", "description": "elastos light wallet", "productName": "Elastos Light Wallet", "main": "index.js", diff --git a/scripts/App.js b/scripts/App.js index 667acf7..3f5f610 100644 --- a/scripts/App.js +++ b/scripts/App.js @@ -1439,11 +1439,6 @@ const clearSelection = () => { const clearUTXOsSelection = () => { //mainConsole.log('Before clearUTXOsSelection', selectedUTXOs); - selectedUTXOs.map(e => { - if (e.isSelected) { - e.isSelected = false; - } - }); selectedUTXOs.length = 0; selectedUTXOs = []; customUTXOs = false; @@ -2909,7 +2904,7 @@ const getPasswordRegEx = () => { const getTXDetails = (_txID) => { let txDetail = parsedTransactionHistory.filter(tx => tx.txHash === _txID); - //console.log(JSON.stringify(txDetail)); + //console.log(JSON.stringify(selectedUTXOs)); return txDetail; } @@ -2921,10 +2916,10 @@ const getMaxCandidates = () => { return maxCandidates; } -const toggleUTXOControl = (_item) => { - const selectUTXO = parsedUnspentTransactionOutputs[_item.index]; +const toggleUTXOControl = (_utxoIx) => { + const selectUTXO = parsedUnspentTransactionOutputs.find(element => element.utxoIx === _utxoIx); + //console.log(_utxoIx, JSON.stringify(selectUTXO)); if (!checkUTXO(selectUTXO.utxoIx)) { - //console.log(JSON.stringify(selectUTXO)); selectedUTXOs.push(selectUTXO); } else { for(var i = 0; i < selectedUTXOs.length; i++) { @@ -2960,11 +2955,11 @@ const validateUTXOsSelection = () => { return true; } -const checkUTXO = (_index) => { +const checkUTXO = (_utxoIx) => { let matchUTXO = false; if (selectedUTXOs.length > 0) { selectedUTXOs.forEach((_utxo) => { - if (_utxo.utxoIx === _index) { + if (_utxo.utxoIx === _utxoIx) { matchUTXO = true; } }); @@ -2972,9 +2967,10 @@ const checkUTXO = (_index) => { return matchUTXO; } -const selectMaxUTXOs = () => { +const selectMaxUTXOs = (_sort, _direction) => { clearUTXOsSelection(); - selectedUTXOs = parsedUnspentTransactionOutputs.slice(0, getMaxUTXOsPerTX()); + let tempUTXOs = parsedUnspentTransactionOutputs; + selectedUTXOs = tempUTXOs.sort(_sort === "index" ? (({utxoIx: previousutxoIx}, {utxoIx: currentutxoIx}) => _direction === "asc" ? previousutxoIx - currentutxoIx : currentutxoIx - previousutxoIx) : (({Value: previousValue}, {Value: currentValue}) => _direction === "asc" ? previousValue - currentValue : currentValue - previousValue)).slice(0, getMaxUTXOsPerTX()); } const getSelectedUTXOs = () => { diff --git a/style.css b/style.css index 997c02c..7fa057c 100755 --- a/style.css +++ b/style.css @@ -2842,4 +2842,34 @@ input:checked + .slider:before { background: none; color: #B2B4C3; font-size: 14px; +} + +.sort-arrow { + margin-left: 5px; + position: relative; + top: -2px; + border: solid; + border-width: 0 2px 2px 0; + display: inline-block; + padding: 2px; +} + +.right { + transform: rotate(-45deg); + -webkit-transform: rotate(-45deg); +} + +.left { + transform: rotate(135deg); + -webkit-transform: rotate(135deg); +} + +.up { + transform: rotate(-135deg); + -webkit-transform: rotate(-135deg); +} + +.down { + transform: rotate(45deg); + -webkit-transform: rotate(45deg); } \ No newline at end of file diff --git a/views/home.jsx b/views/home.jsx index 918622e..ca47026 100755 --- a/views/home.jsx +++ b/views/home.jsx @@ -365,6 +365,10 @@ module.exports = (props) => { + + {/*
*/} + +
Transaction Details
@@ -411,10 +415,6 @@ module.exports = (props) => {
- - {/*
*/} - -
closeModal()}>
diff --git a/views/partial/utxos.jsx b/views/partial/utxos.jsx index 1b7cdb6..d720954 100644 --- a/views/partial/utxos.jsx +++ b/views/partial/utxos.jsx @@ -1,6 +1,8 @@ const React = require('react'); let showUTXOs = ''; +let sort = "index"; +let direction = "asc"; module.exports = (props) => { const App = props.App; @@ -18,6 +20,30 @@ module.exports = (props) => { } } + const sortIndex = () => { + if (sort === "value") { + direction = "asc" // default for Index + } else { + if (direction === "asc") {direction = "desc"} + else {direction = "asc"} + } + sort = "index"; + App.renderApp(); + //console.log("Sort index", direction); + } + + const sortValue = () => { + if (sort === "index") { + direction = "desc" // default for Value + } else { + if (direction === "asc") {direction = "desc"} + else {direction = "asc"} + } + sort = "value"; + App.renderApp(); + //console.log("Sort value", direction); + } + return (
closeModal()}> @@ -33,14 +59,14 @@ module.exports = (props) => { - + - + { - App.getAllUTXOs().slice(0, App.getAllUTXOs().count).map((item, index) => { - return ( App.toggleUTXOControl({index})}> + App.getAllUTXOs().slice(0, App.getAllUTXOs().count).sort(sort === "index" ? (({utxoIx: previousutxoIx}, {utxoIx: currentutxoIx}) => direction === "asc" ? previousutxoIx - currentutxoIx : currentutxoIx - previousutxoIx) : (({Value: previousValue}, {Value: currentValue}) => direction === "asc" ? previousValue - currentValue : currentValue - previousValue)).map((item, index) => { + return ( App.toggleUTXOControl(item.utxoIx)}> @@ -55,7 +81,7 @@ module.exports = (props) => {
- +
Index sortIndex()}>Index Tx IDValue sortValue()}>Value Select
{item.utxoIx} {item.Txid.substring(0, 15) + '...'} {item.Value}