From e0ebda40031a25d8cab43f0fc0745c94cf2b9f6a Mon Sep 17 00:00:00 2001 From: Rahul Bile Date: Thu, 29 Oct 2020 12:52:49 +0530 Subject: [PATCH 01/21] chore(deps): update dependency electron to v8.5.2 [security] --- package.json | 4 ++-- yarn.lock | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 53f0dcf7e41..c4079555aa9 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ } }, "browserslist": [ - "electron 8.4.0" + "electron 8.5.2" ], "engines": { "node": ">=12.0.0", @@ -255,7 +255,7 @@ "cross-env": "7.0.2", "cross-spawn": "7.0.3", "csp-html-webpack-plugin": "4.0.0", - "electron": "8.4.0", + "electron": "8.5.2", "electron-builder": "22.9.1", "electron-devtools-installer": "3.1.1", "electron-notarize": "1.0.0", diff --git a/yarn.lock b/yarn.lock index 38d6c0aeb89..4e0767f945d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7983,10 +7983,10 @@ electron-updater@4.3.5: lodash.isequal "^4.5.0" semver "^7.3.2" -electron@8.4.0: - version "8.4.0" - resolved "https://registry.yarnpkg.com/electron/-/electron-8.4.0.tgz#30692166dc8b2a511b3c01c70960d467efe2b8e6" - integrity sha512-SpgyccM5rjDJSGcpQjiviUBT44fZlSyhcjy8RpKSnAad+co4xY1vYj6T25U1CfSk0PH/dhvcp63P2sdXHCwq/Q== +electron@8.5.2: + version "8.5.2" + resolved "https://registry.yarnpkg.com/electron/-/electron-8.5.2.tgz#7b0246c6676a39df0e5e384b11cfe854fe5917f0" + integrity sha512-VU+zZnmCzxoZ5UfBg2UGVm+nyxlNlQOQkotMLfk7FCtnkIOhX+sosl618OCxUWjOvPc+Mpg5MEkEmxPU5ziW4Q== dependencies: "@electron/get" "^1.0.1" "@types/node" "^12.0.12" From 7f000e5c3b9d65fafa4251b528db834c34343f17 Mon Sep 17 00:00:00 2001 From: rahulbile Date: Mon, 2 Nov 2020 19:13:57 +0530 Subject: [PATCH 02/21] chore(deps): update dependency electron to v8.5.3 --- package.json | 4 ++-- yarn.lock | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index c4079555aa9..fdfba76e8c7 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ } }, "browserslist": [ - "electron 8.5.2" + "electron 8.5.3" ], "engines": { "node": ">=12.0.0", @@ -255,7 +255,7 @@ "cross-env": "7.0.2", "cross-spawn": "7.0.3", "csp-html-webpack-plugin": "4.0.0", - "electron": "8.5.2", + "electron": "8.5.3", "electron-builder": "22.9.1", "electron-devtools-installer": "3.1.1", "electron-notarize": "1.0.0", diff --git a/yarn.lock b/yarn.lock index 4e0767f945d..34f87c4924a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7983,10 +7983,10 @@ electron-updater@4.3.5: lodash.isequal "^4.5.0" semver "^7.3.2" -electron@8.5.2: - version "8.5.2" - resolved "https://registry.yarnpkg.com/electron/-/electron-8.5.2.tgz#7b0246c6676a39df0e5e384b11cfe854fe5917f0" - integrity sha512-VU+zZnmCzxoZ5UfBg2UGVm+nyxlNlQOQkotMLfk7FCtnkIOhX+sosl618OCxUWjOvPc+Mpg5MEkEmxPU5ziW4Q== +electron@8.5.3: + version "8.5.3" + resolved "https://registry.yarnpkg.com/electron/-/electron-8.5.3.tgz#f7abb8f5350fa54ac14df6ca24e9b6aec2ef1498" + integrity sha512-cDozmnx6GUNpe9E/pkxeNZq78szgyM2LixlJ+Sov+SzYjXwzTdBfiWuELLkw047ucWvaDFCv5QuYGMmyjJPk7g== dependencies: "@electron/get" "^1.0.1" "@types/node" "^12.0.12" From 801f20b60b7c2da9186dba20ada864efaa321104 Mon Sep 17 00:00:00 2001 From: Tom Kirkpatrick Date: Mon, 9 Nov 2020 21:15:36 +0000 Subject: [PATCH 03/21] fix(lnd): patching lnd to support interceptors --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 91bcd852a53..8b39f20c658 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ }, "config": { "lnd-binary": { - "binaryVersion": "0.11.1-beta-3-g9fc02c041", + "binaryVersion": "0.11.1-beta-4-gb305c99fb", "binarySite": "https://github.com/LN-Zap/lnd/releases/download" } }, From 115cc219bd5b04885ec02583369235c3cc8c15ad Mon Sep 17 00:00:00 2001 From: Tom Kirkpatrick Date: Mon, 9 Nov 2020 21:20:16 +0000 Subject: [PATCH 04/21] feat(lnd): support for interceptor nodes --- renderer/reducers/payment/utils.js | 10 +++++++++- services/grpc/router.methods.js | 9 --------- utils/crypto.js | 18 ++++++++++++++++++ 3 files changed, 27 insertions(+), 10 deletions(-) diff --git a/renderer/reducers/payment/utils.js b/renderer/reducers/payment/utils.js index 3fdcfa4324e..2fbed5dbc99 100644 --- a/renderer/reducers/payment/utils.js +++ b/renderer/reducers/payment/utils.js @@ -1,7 +1,13 @@ import get from 'lodash/get' import cloneDeep from 'lodash/cloneDeep' import { chanNumber } from 'bolt07' -import { getTag, decodePayReq, getNodeAlias, generatePreimage } from '@zap/utils/crypto' +import { + getTag, + decodePayReq, + getNodeAlias, + generatePreimage, + generateProbeHash, +} from '@zap/utils/crypto' import { convert } from '@zap/utils/btc' import { getIntl } from '@zap/i18n' import { sha256digest } from '@zap/utils/sha256' @@ -169,6 +175,7 @@ export const prepareBolt11Probe = (payReq, feeLimit) => { // Extract route hints from the invoice. const routingInfo = getTag(invoice, 'routing_info') || [] + const paymentHash = getTag(invoice, 'payment_hash') const hopHints = routingInfo.map(hint => ({ nodeId: hint.pubkey, chanId: chanNumber({ id: hint.short_channel_id }).number, @@ -183,6 +190,7 @@ export const prepareBolt11Probe = (payReq, feeLimit) => { amtMsat: millisatoshis, finalCltvDelta: getTag(invoice, 'min_final_cltv_expiry') || DEFAULT_CLTV_DELTA, routeHints: [{ hopHints }], + paymentHash: generateProbeHash(paymentHash), } } diff --git a/services/grpc/router.methods.js b/services/grpc/router.methods.js index 21fb1284d1e..082e09922e1 100644 --- a/services/grpc/router.methods.js +++ b/services/grpc/router.methods.js @@ -1,5 +1,4 @@ import { grpcLog } from '@zap/utils/log' -import { generatePreimage } from '@zap/utils/crypto' import { logGrpcCmd } from './helpers' export const KEYSEND_PREIMAGE_TYPE = '5482373484' @@ -15,10 +14,6 @@ export const KEYSEND_PREIMAGE_TYPE = '5482373484' * @returns {Promise} The route route when state is SUCCEEDED */ async function probePayment(payload) { - // Use a payload that has the payment hash set to some random bytes. - // This will cause the payment to fail at the final destination. - payload.paymentHash = new Uint8Array(generatePreimage()) - logGrpcCmd('Router.probePayment', payload) let result @@ -94,10 +89,6 @@ async function probePayment(payload) { * @returns {Promise} The route route when state is SUCCEEDED */ async function probePaymentV2(payload) { - // Use a payload that has the payment hash set to some random bytes. - // This will cause the payment to fail at the final destination. - payload.paymentHash = new Uint8Array(generatePreimage()) - logGrpcCmd('Router.probePaymentV2', payload) let result diff --git a/utils/crypto.js b/utils/crypto.js index 68402e8c29e..dd5fdcc6b0e 100644 --- a/utils/crypto.js +++ b/utils/crypto.js @@ -8,6 +8,7 @@ import bip21 from 'bip21' import coininfo from 'coininfo' import { CoinBig } from '@zap/utils/coin' import { convert } from '@zap/utils/btc' +import { sha256digest } from '@zap/utils/sha256' export const PREIMAGE_BYTE_LENGTH = 32 @@ -315,3 +316,20 @@ export const getFeeRange = (routes = []) => ({ * @returns {Uint8Array} hash bytes */ export const generatePreimage = () => randomBytes(PREIMAGE_BYTE_LENGTH) + +/** + * generateHash - Generates probe hash from payment hash. + * + * @param {string} paymentHash payment hash (hex) + * @returns {Uint8Array} probe hash (bytes) + */ +export const generateProbeHash = paymentHash => { + const idx = Buffer.from('probing-01:', 'utf8') + const hash = Buffer.from(paymentHash, 'hex') + const totalLength = idx.length + hash.length + + const probeHashBuffer = Buffer.concat([idx, hash], totalLength) + const probeHash = sha256digest(probeHashBuffer) + + return probeHash +} From 8cbfc75ff3a3a6fc0163afa86952914c10184b26 Mon Sep 17 00:00:00 2001 From: rahulbile Date: Sun, 8 Nov 2020 17:03:17 +0530 Subject: [PATCH 05/21] feat(ui): add time display mode setting to general preferences fix #3600 --- config/default.js | 3 +++ .../Settings/SettingsFieldsGeneral.js | 24 +++++++++++++++++++ renderer/components/Settings/messages.js | 4 ++++ 3 files changed, 31 insertions(+) diff --git a/config/default.js b/config/default.js index bdda23acda4..288102ae1f9 100644 --- a/config/default.js +++ b/config/default.js @@ -21,6 +21,9 @@ module.exports = { currency: 'USD', locale: 'en', + // Default time dipslay mode (12hour|24hour). + timeDisplayMode: '12hour', + autoupdate: { active: true, channel: 'beta', diff --git a/renderer/components/Settings/SettingsFieldsGeneral.js b/renderer/components/Settings/SettingsFieldsGeneral.js index 83af5d48873..7cb9d36a43b 100644 --- a/renderer/components/Settings/SettingsFieldsGeneral.js +++ b/renderer/components/Settings/SettingsFieldsGeneral.js @@ -26,6 +26,15 @@ const themeMessageMapper = key => { return filters[key] } +const displayModeItems = [{ key: '12hour' }, { key: '24hour' }] +const displayModeMessageMapper = key => { + const filters = { + '12hour': messages.timeDisplayMode_option_12hour, + '24hour': messages.timeDisplayMode_option_24hour, + } + return filters[key] +} + const SettingsFieldsGeneral = ({ currentConfig }) => { return ( <> @@ -72,6 +81,21 @@ const SettingsFieldsGeneral = ({ currentConfig }) => { + } + right={ + } + field="name" + initialValue={name} + label={} + maxLength={30} + name="name" + /> ) }} diff --git a/renderer/components/Onboarding/Steps/ConnectionDetailsString.js b/renderer/components/Onboarding/Steps/ConnectionDetailsString.js index b692a8b26a7..971f636ee65 100644 --- a/renderer/components/Onboarding/Steps/ConnectionDetailsString.js +++ b/renderer/components/Onboarding/Steps/ConnectionDetailsString.js @@ -3,7 +3,7 @@ import PropTypes from 'prop-types' import { FormattedMessage, injectIntl } from 'react-intl' import { Box } from 'rebass/styled-components' import { Bar, Header } from 'components/UI' -import { Form, LndConnectionStringInput } from 'components/Form' +import { Form, Input, LndConnectionStringInput } from 'components/Form' import ConnectionDetailsTabs from './ConnectionDetailsTabs' import messages from './messages' @@ -12,8 +12,10 @@ class ConnectionDetailsString extends React.Component { clearStartLndError: PropTypes.func.isRequired, connectionString: PropTypes.string, lndConnect: PropTypes.string, + name: PropTypes.string, setConnectionString: PropTypes.func.isRequired, setLndconnect: PropTypes.func.isRequired, + setName: PropTypes.func.isRequired, startLndCertError: PropTypes.string, startLndHostError: PropTypes.string, @@ -25,6 +27,7 @@ class ConnectionDetailsString extends React.Component { static defaultProps = { wizardApi: {}, wizardState: {}, + name: null, } componentDidMount() { @@ -85,8 +88,9 @@ class ConnectionDetailsString extends React.Component { } handleSubmit = values => { - const { setConnectionString } = this.props + const { setConnectionString, setName } = this.props setConnectionString(values.connectionString) + setName(values.name) } render() { @@ -98,8 +102,10 @@ class ConnectionDetailsString extends React.Component { startLndCertError, startLndMacaroonError, lndConnect, + name, setLndconnect, setConnectionString, + setName, clearStartLndError, ...rest } = this.props @@ -158,11 +164,21 @@ class ConnectionDetailsString extends React.Component { field="connectionString" initialValue={connectionString} isRequired + mb={3} rows="12" validateOnBlur={willValidateInline} validateOnChange={willValidateInline} willAutoFocus /> + + } + field="name" + initialValue={name} + label={} + maxLength={30} + name="name" + /> ) }} diff --git a/renderer/components/Onboarding/Steps/Name.js b/renderer/components/Onboarding/Steps/Name.js index dfb259f1c1f..c56155db9fa 100644 --- a/renderer/components/Onboarding/Steps/Name.js +++ b/renderer/components/Onboarding/Steps/Name.js @@ -19,7 +19,7 @@ class Name extends React.Component { static defaultProps = { wizardApi: {}, wizardState: {}, - name: '', + name: null, } setFormApi = formApi => { diff --git a/renderer/containers/Onboarding/Steps/ConnectionConfirm.js b/renderer/containers/Onboarding/Steps/ConnectionConfirm.js index 4ae458ad3e4..185971df236 100644 --- a/renderer/containers/Onboarding/Steps/ConnectionConfirm.js +++ b/renderer/containers/Onboarding/Steps/ConnectionConfirm.js @@ -11,6 +11,7 @@ const mapStateToProps = state => ({ isLightningGrpcActive: state.lnd.isLightningGrpcActive, isWalletUnlockerGrpcActive: state.lnd.isWalletUnlockerGrpcActive, lndConnect: state.onboarding.lndConnect, + name: state.onboarding.name, startLndHostError: lndSelectors.startLndHostError(state), startLndCertError: lndSelectors.startLndCertError(state), startLndMacaroonError: lndSelectors.startLndMacaroonError(state), diff --git a/renderer/containers/Onboarding/Steps/ConnectionDetails.js b/renderer/containers/Onboarding/Steps/ConnectionDetails.js index 47414ff2a53..816e4459623 100644 --- a/renderer/containers/Onboarding/Steps/ConnectionDetails.js +++ b/renderer/containers/Onboarding/Steps/ConnectionDetails.js @@ -10,6 +10,7 @@ import { setConnectionMacaroon, setConnectionString, setLndconnect, + setName, } from 'reducers/onboarding' const mapStateToProps = state => ({ @@ -19,6 +20,7 @@ const mapStateToProps = state => ({ connectionHost: state.onboarding.connectionHost, connectionCert: state.onboarding.connectionCert, lndConnect: state.onboarding.lndConnect, + name: state.onboarding.name, startLndHostError: lndSelectors.startLndHostError(state), startLndCertError: lndSelectors.startLndCertError(state), startLndMacaroonError: lndSelectors.startLndMacaroonError(state), @@ -33,6 +35,7 @@ const mapDispatchToProps = { setConnectionMacaroon, setConnectionString, setLndconnect, + setName, clearStartLndError, } diff --git a/renderer/containers/Onboarding/Steps/ConnectionDetailsManual.js b/renderer/containers/Onboarding/Steps/ConnectionDetailsManual.js index 024e3800b6a..968779bdf20 100644 --- a/renderer/containers/Onboarding/Steps/ConnectionDetailsManual.js +++ b/renderer/containers/Onboarding/Steps/ConnectionDetailsManual.js @@ -10,6 +10,7 @@ import { setConnectionMacaroon, setConnectionString, setLndconnect, + setName, } from 'reducers/onboarding' const mapStateToProps = state => ({ @@ -19,6 +20,7 @@ const mapStateToProps = state => ({ connectionHost: state.onboarding.connectionHost, connectionCert: state.onboarding.connectionCert, lndConnect: state.onboarding.lndConnect, + name: state.onboarding.name, startLndHostError: lndSelectors.startLndHostError(state), startLndCertError: lndSelectors.startLndCertError(state), startLndMacaroonError: lndSelectors.startLndMacaroonError(state), @@ -33,6 +35,7 @@ const mapDispatchToProps = { setConnectionMacaroon, setConnectionString, setLndconnect, + setName, clearStartLndError, } From bd89ff239722e05e9381caacb3cc23292489ec23 Mon Sep 17 00:00:00 2001 From: rahulbile Date: Fri, 13 Nov 2020 21:35:05 +0530 Subject: [PATCH 09/21] test(e2e): set wallet name in onboarding --- test/e2e/basic-ui.spec.js | 1 + test/e2e/onboarding-connect-btcpay.spec.js | 4 ++++ test/e2e/onboarding-connect-lndconnect.spec.js | 5 +++++ test/e2e/pages/onboarding.js | 4 +++- 4 files changed, 13 insertions(+), 1 deletion(-) diff --git a/test/e2e/basic-ui.spec.js b/test/e2e/basic-ui.spec.js index 578fd028663..330ba7fbf09 100644 --- a/test/e2e/basic-ui.spec.js +++ b/test/e2e/basic-ui.spec.js @@ -51,6 +51,7 @@ test('provide access to basic wallet functionality', async t => { .typeText(onboarding.macaroonInput, path.join(__dirname, 'fixtures', 'readonly.macaroon'), { paste: true, }) + .typeText(onboarding.nameInput, 'My Test Wallet', { paste: true }) .click(onboarding.nextButton) // Confirm connection details and submit diff --git a/test/e2e/onboarding-connect-btcpay.spec.js b/test/e2e/onboarding-connect-btcpay.spec.js index a05ce32a30b..a5b17a08ece 100644 --- a/test/e2e/onboarding-connect-btcpay.spec.js +++ b/test/e2e/onboarding-connect-btcpay.spec.js @@ -55,6 +55,10 @@ test('should connect to an external wallet (btcpay)', async t => { }`, { paste: true } ) + // Fill out wallet name and submit. + .expect(onboarding.nameInput.exists) + .ok() + .typeText(onboarding.nameInput, 'External Wallet (lndconnect)', { paste: true }) .click(onboarding.nextButton) // Confirm connection details and submit. diff --git a/test/e2e/onboarding-connect-lndconnect.spec.js b/test/e2e/onboarding-connect-lndconnect.spec.js index 6452cb1af60..ac490c3fcf7 100644 --- a/test/e2e/onboarding-connect-lndconnect.spec.js +++ b/test/e2e/onboarding-connect-lndconnect.spec.js @@ -43,6 +43,11 @@ test('should connect to an external wallet (lndconnect)', async t => { 'lndconnect://testnet4-lnd.zaphq.io:10009?cert=MIICYTCCAgagAwIBAgIRAJMTFnc73j4iP6VAU_-nSOowCgYIKoZIzj0EAwIwPjEfMB0GA1UEChMWbG5kIGF1dG9nZW5lcmF0ZWQgY2VydDEbMBkGA1UEAxMSemFwLXRlc3RuZXQ0LWxuZC0wMB4XDTE5MTAyMzEwMDIyNloXDTIwMTIxNzEwMDIyNlowPjEfMB0GA1UEChMWbG5kIGF1dG9nZW5lcmF0ZWQgY2VydDEbMBkGA1UEAxMSemFwLXRlc3RuZXQ0LWxuZC0wMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEESndkptIDcgVAdH7ulBVDPZNsKWgD12WJhII2VmbUN9IU1ZFFcv43kg_DyzCH0_158tDGqHp-Npyf9JEQ--y4aOB5DCB4TAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH_BAUwAwEB_zCBvQYDVR0RBIG1MIGyghJ6YXAtdGVzdG5ldDQtbG5kLTCCCWxvY2FsaG9zdIIVdGVzdG5ldDQtbG5kLnphcGhxLmlvgj56YXBuMzRxZmVlZHcybDV5MjZwM2hubmt1c3FuYmh4Y3h3NjRscTVjb2ptdnE0NXl3NGJjM3NxZC5vbmlvboIEdW5peIIKdW5peHBhY2tldIcEfwAAAYcQAAAAAAAAAAAAAAAAAAAAAYcECjQEPocEIklopocECjf8YDAKBggqhkjOPQQDAgNJADBGAiEAiBiCFmgYrgQyF_OKoZb_I47xnaZYTkdUNeajomMoFKoCIQC6X3YEAMV2r1rbNs0faOUYS3hCTmFK75coXBJHHWFsFw&macaroon=AgEDbG5kAooBAwoQGE3tbiKnewTcFZ2PksnBLxIBMBoPCgdhZGRyZXNzEgRyZWFkGgwKBGluZm8SBHJlYWQaEAoIaW52b2ljZXMSBHJlYWQaDwoHbWVzc2FnZRIEcmVhZBoQCghvZmZjaGFpbhIEcmVhZBoPCgdvbmNoYWluEgRyZWFkGg0KBXBlZXJzEgRyZWFkAAAGILUucIJstjca7--eeHDbtkIQ1BLlYOEXKgxLWQDiuReD', { paste: true } ) + + // Fill out wallet name and submit. + .expect(onboarding.nameInput.exists) + .ok() + .typeText(onboarding.nameInput, 'External Wallet (lndconnect)', { paste: true }) .click(onboarding.nextButton) // Confirm connection details and submit diff --git a/test/e2e/pages/onboarding.js b/test/e2e/pages/onboarding.js index 80fe89aa3c0..877358bf862 100644 --- a/test/e2e/pages/onboarding.js +++ b/test/e2e/pages/onboarding.js @@ -91,7 +91,9 @@ class Onboarding { passwordInputSeePasswordButton = ReactSelector('Password Input').find('svg') - nameInput = ReactSelector('Name Input').find('input') + nameInput = ReactSelector('Input') + .nth(-1) + .find('input') hostInput = ReactSelector('ConnectionDetailsManual Input') .nth(0) From 22597b852a5cde397e651afe619203f1aae32c23 Mon Sep 17 00:00:00 2001 From: rahulbile Date: Mon, 16 Nov 2020 22:09:12 +0530 Subject: [PATCH 10/21] fix(build): adjust desktop icon name as per icon images fix 3608 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8b39f20c658..353b0d169ba 100644 --- a/package.json +++ b/package.json @@ -154,7 +154,7 @@ ], "desktop": { "Comment": "Zap - Lightning wallet", - "Icon": "zap", + "Icon": "zap-desktop.png", "Name": "Zap", "StartupNotify": "true", "Terminal": "false", From e1e09276d9fee2fb99f4e94ddf657642939bad34 Mon Sep 17 00:00:00 2001 From: rahulbile Date: Thu, 19 Nov 2020 03:37:56 -0500 Subject: [PATCH 11/21] chore(deps): update dependency electron to v9.3.4 --- package.json | 4 ++-- yarn.lock | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 5f350141787..15dbe7087df 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ } }, "browserslist": [ - "electron 8.5.3" + "electron 9.3.4" ], "engines": { "node": ">=12.0.0", @@ -255,7 +255,7 @@ "cross-env": "7.0.2", "cross-spawn": "7.0.3", "csp-html-webpack-plugin": "4.0.0", - "electron": "8.5.3", + "electron": "9.3.4", "electron-builder": "22.9.1", "electron-devtools-installer": "3.1.1", "electron-notarize": "1.0.0", diff --git a/yarn.lock b/yarn.lock index 34f87c4924a..ce8da7a72eb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7983,10 +7983,10 @@ electron-updater@4.3.5: lodash.isequal "^4.5.0" semver "^7.3.2" -electron@8.5.3: - version "8.5.3" - resolved "https://registry.yarnpkg.com/electron/-/electron-8.5.3.tgz#f7abb8f5350fa54ac14df6ca24e9b6aec2ef1498" - integrity sha512-cDozmnx6GUNpe9E/pkxeNZq78szgyM2LixlJ+Sov+SzYjXwzTdBfiWuELLkw047ucWvaDFCv5QuYGMmyjJPk7g== +electron@9.3.4: + version "9.3.4" + resolved "https://registry.yarnpkg.com/electron/-/electron-9.3.4.tgz#d62dd9f8abc93c009878714de9e60db030361a05" + integrity sha512-OHP8qMKgW8D8GtH+altB22WJw/lBOyyVdoz5e8D0/iPBmJU3Jm93vO4z4Eh/9DvdSXlH8bMHUCMLL9PVW6f+tw== dependencies: "@electron/get" "^1.0.1" "@types/node" "^12.0.12" From e4234ee5c7fdd0fffd73068a315106dfa86431cb Mon Sep 17 00:00:00 2001 From: Tom Kirkpatrick Date: Thu, 19 Nov 2020 09:31:40 +0000 Subject: [PATCH 12/21] refactor: switch to session.removeExtension --- electron/main.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/electron/main.js b/electron/main.js index c26e1b6dcd6..d3db71814e6 100644 --- a/electron/main.js +++ b/electron/main.js @@ -6,7 +6,7 @@ * When running `npm run build` or `npm run build-main`, this file is compiled to * `/dist/main.js` using webpack. This gives us some performance wins. */ -import { app, BrowserWindow } from 'electron' +import { app, session, BrowserWindow } from 'electron' import isDev from 'electron-is-dev' import installExtension, { REACT_DEVELOPER_TOOLS, @@ -397,8 +397,8 @@ app.on('ready', async () => { */ if (process.env.NODE_ENV === 'development' || process.env.DEBUG_PROD) { if (process.env.REINSTALL_DEVTOOLS) { - BrowserWindow.removeDevToolsExtension(REACT_DEVELOPER_TOOLS) - BrowserWindow.removeDevToolsExtension(REDUX_DEVTOOLS) + session.removeExtension(REACT_DEVELOPER_TOOLS) + session.removeExtension(REDUX_DEVTOOLS) } installExtension(REACT_DEVELOPER_TOOLS) From 0d637e370cfd4918f91172fa251e37b3cdc7a754 Mon Sep 17 00:00:00 2001 From: Tom Kirkpatrick Date: Sun, 20 Dec 2020 18:26:16 +0000 Subject: [PATCH 13/21] chore(deps): update lnd-grpc to v0.4.7-beta.1 --- package.json | 2 +- webpack/webpack.config.dll.js | 2 +- yarn.lock | 82 ++++++++++++++++++++++------------- 3 files changed, 54 insertions(+), 32 deletions(-) diff --git a/package.json b/package.json index 15dbe7087df..a3e41774a32 100644 --- a/package.json +++ b/package.json @@ -351,7 +351,7 @@ "is-electron-renderer": "2.0.1", "jstimezonedetect": "1.0.7", "keytar": "5.6.0", - "lnd-grpc": "0.4.6", + "lnd-grpc": "0.4.7-beta.1", "lndconnect": "0.2.10", "lodash": "4.17.20", "new-github-issue-url": "0.2.1", diff --git a/webpack/webpack.config.dll.js b/webpack/webpack.config.dll.js index 90d43bb85cf..0f7eea649df 100644 --- a/webpack/webpack.config.dll.js +++ b/webpack/webpack.config.dll.js @@ -15,7 +15,7 @@ export default merge.smart(baseConfig, { mode: 'development', externals: [ '@grpc/grpc-js', - '@ln-zap/proto-loader', + '@grpc/proto-loader', 'config', 'electron', 'electron-is-dev', diff --git a/yarn.lock b/yarn.lock index ce8da7a72eb..4fd3a1c0b16 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1373,26 +1373,22 @@ tslib "^2.0.1" typescript "^4.0" -"@grpc/grpc-js@^1.1.7": - version "1.1.7" - resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.1.7.tgz#d3d71c6da95397e2d63895ccc4a05e7572f7b7e6" - integrity sha512-EuxMstI0u778dp0nk6Fe3gHXYPeV6FYsWOe0/QFwxv1NQ6bc5Wl/0Yxa4xl9uBlKElL6AIxuASmSfu7KEJhqiw== +"@grpc/grpc-js@^1.2.0": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.2.2.tgz#ee4a7417fe15a686a8e369c36ec4c80678445c67" + integrity sha512-iK/T984Ni6VnmlQK/LJdUk+VsXSaYIWkgzJ0LyOcxN2SowAmoRjG28kS7B1ui/q/MAv42iM3051WBt5QorFxmg== dependencies: - "@grpc/proto-loader" "^0.6.0-pre14" "@types/node" "^12.12.47" - google-auth-library "^6.0.0" + google-auth-library "^6.1.1" semver "^6.2.0" -"@grpc/proto-loader@^0.6.0-pre14": - version "0.6.0-pre9" - resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.6.0-pre9.tgz#0c6fe42f6c5ef9ce1b3cef7be64d5b09d6fe4d6d" - integrity sha512-oM+LjpEjNzW5pNJjt4/hq1HYayNeQT+eGrOPABJnYHv7TyNPDNzkQ76rDYZF86X5swJOa4EujEMzQ9iiTdPgww== +"@grpc/proto-loader@^0.5.5": + version "0.5.5" + resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.5.5.tgz#6725e7a1827bdf8e92e29fbf4e9ef0203c0906a9" + integrity sha512-WwN9jVNdHRQoOBo9FDH7qU+mgfjPc8GygPYms3M+y3fbQLfnCe/Kv/E01t7JRgnrsOHH8euvSbed3mIalXhwqQ== dependencies: - "@types/long" "^4.0.1" lodash.camelcase "^4.3.0" - long "^4.0.0" - protobufjs "^6.9.0" - yargs "^15.3.1" + protobufjs "^6.8.6" "@hot-loader/react-dom@16.13.0": version "16.13.0" @@ -1609,14 +1605,6 @@ resolved "https://registry.yarnpkg.com/@ln-zap/prettier-config/-/prettier-config-0.1.0.tgz#d42cd49c9d675da26d56ecfe58f5304c43471d84" integrity sha512-L9OHuzQ2XscNCWCyqWMYLxZhGc6hQLDjkDTa9aywkGYVAKctlGpHIj43OeuZnaacxZWA+vgiSUNsKT94BxfX6g== -"@ln-zap/proto-loader@0.5.4": - version "0.5.4" - resolved "https://registry.yarnpkg.com/@ln-zap/proto-loader/-/proto-loader-0.5.4.tgz#4be409f6d0448fe81e71918e440bf902168f576f" - integrity sha512-6zK9sgYrUwz+vd5Tt97rrKwKiFBe8r4+sQdO+MLZO2odiapLuiwUBB5mjEG/zb0c9nDgU6ZW+Pqye7Gye00VcA== - dependencies: - lodash.camelcase "^4.3.0" - protobufjs "^6.8.6" - "@marionebl/sander@^0.6.0": version "0.6.1" resolved "https://registry.yarnpkg.com/@marionebl/sander/-/sander-0.6.1.tgz#1958965874f24bc51be48875feb50d642fc41f7b" @@ -9829,6 +9817,17 @@ gaxios@^3.0.0, gaxios@^3.2.0: is-stream "^2.0.0" node-fetch "^2.3.0" +gaxios@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-4.1.0.tgz#e8ad466db5a4383c70b9d63bfd14dfaa87eb0099" + integrity sha512-vb0to8xzGnA2qcgywAjtshOKKVDf2eQhJoiL6fHhgW5tVN7wNk7egnYIO9zotfn3lQ3De1VPdf7V5/BWfCtCmg== + dependencies: + abort-controller "^3.0.0" + extend "^3.0.2" + https-proxy-agent "^5.0.0" + is-stream "^2.0.0" + node-fetch "^2.3.0" + gcp-metadata@^4.1.0: version "4.2.0" resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-4.2.0.tgz#3b424355ccdc240ee07c5791e2fd6a60a283d89a" @@ -9837,6 +9836,14 @@ gcp-metadata@^4.1.0: gaxios "^3.0.0" json-bigint "^1.0.0" +gcp-metadata@^4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-4.2.1.tgz#31849fbcf9025ef34c2297c32a89a1e7e9f2cd62" + integrity sha512-tSk+REe5iq/N+K+SK1XjZJUrFPuDqGZVzCy2vocIHIGmPlTGsa8owXMJwGkrXr73NO0AzhPW4MF2DEHz7P2AVw== + dependencies: + gaxios "^4.0.0" + json-bigint "^1.0.0" + gensync@^1.0.0-beta.1: version "1.0.0-beta.1" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" @@ -10208,6 +10215,21 @@ google-auth-library@^6.0.0: jws "^4.0.0" lru-cache "^6.0.0" +google-auth-library@^6.1.1: + version "6.1.3" + resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-6.1.3.tgz#39d868140b70d0c4b32c6f6d8f4ccc1400d84dca" + integrity sha512-m9mwvY3GWbr7ZYEbl61isWmk+fvTmOt0YNUfPOUY2VH8K5pZlAIWJjxEi0PqR3OjMretyiQLI6GURMrPSwHQ2g== + dependencies: + arrify "^2.0.0" + base64-js "^1.3.0" + ecdsa-sig-formatter "^1.0.11" + fast-text-encoding "^1.0.0" + gaxios "^4.0.0" + gcp-metadata "^4.2.0" + gtoken "^5.0.4" + jws "^4.0.0" + lru-cache "^6.0.0" + google-p12-pem@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-3.0.3.tgz#673ac3a75d3903a87f05878f3c75e06fc151669e" @@ -12563,13 +12585,13 @@ lnd-binary@0.3.18: "true-case-path" "^2.2.1" unzip-stream "^0.3.0" -lnd-grpc@0.4.6: - version "0.4.6" - resolved "https://registry.yarnpkg.com/lnd-grpc/-/lnd-grpc-0.4.6.tgz#5ef3e6429531a3f814a5ec4cfadc5d5c2dd7d4a0" - integrity sha512-dzHpS9lLyJE6xzGrqs/nCFkBOT3edqFibK+nL1ibCx9fuG5PXs7QBFrhwYgu4vbWva44xrxkz/JSHifPEBUH7A== +lnd-grpc@0.4.7-beta.1: + version "0.4.7-beta.1" + resolved "https://registry.yarnpkg.com/lnd-grpc/-/lnd-grpc-0.4.7-beta.1.tgz#a897e5911f69cdb68d69f083f7bd60b379294717" + integrity sha512-8xMge64IwYHIrYiN/3zYp86aK05uN60v09fC7ORyqLBMSgVLuLYcGpKVWjnL6bP9QYCXuaYa+YyZ+N4YyVUr6Q== dependencies: - "@grpc/grpc-js" "^1.1.7" - "@ln-zap/proto-loader" "0.5.4" + "@grpc/grpc-js" "^1.2.0" + "@grpc/proto-loader" "^0.5.5" debug "^4.2.0" get-port "5.1.1" javascript-state-machine "3.1.0" @@ -14952,7 +14974,7 @@ proto-list@~1.2.1: resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= -protobufjs@^6.8.6, protobufjs@^6.9.0: +protobufjs@^6.8.6: version "6.10.1" resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.10.1.tgz#e6a484dd8f04b29629e9053344e3970cccf13cd2" integrity sha512-pb8kTchL+1Ceg4lFd5XUpK8PdWacbvV5SK2ULH2ebrYtl4GjJmS24m6CKME67jzV53tbJxHlnNOSqQHbTsR9JQ== @@ -19683,7 +19705,7 @@ yargs@^13.3.2: y18n "^4.0.0" yargs-parser "^13.1.2" -yargs@^15.3.1, yargs@^15.4.1: +yargs@^15.4.1: version "15.4.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== From e46ef82f2c5071b933f84cc6fbcf9e430101d5b6 Mon Sep 17 00:00:00 2001 From: Tom Kirkpatrick Date: Sun, 20 Dec 2020 18:27:18 +0000 Subject: [PATCH 14/21] fix(lnd): case insensitive parsing of lnd debug log --- services/neutrino/neutrino.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/services/neutrino/neutrino.js b/services/neutrino/neutrino.js index def6b2dc3c8..5ff6b5de14b 100644 --- a/services/neutrino/neutrino.js +++ b/services/neutrino/neutrino.js @@ -478,12 +478,13 @@ class Neutrino extends EventEmitter { } /** + * * notifyOnWalletUnlockerActivation - Update state if log line indicates WalletUnlocker gRPC became active. * * @param {string} line log output line */ notifyOnWalletUnlockerActivation(line) { - if (line.includes('RPC server listening on') && line.includes('password')) { + if (line.includes('RPC server listening on') && line.toLowerCase().includes('password')) { this.isWalletUnlockerGrpcActive = true this.isLightningGrpcActive = false this.emit(NEUTRINO_WALLET_UNLOCKER_GRPC_ACTIVE) @@ -496,7 +497,7 @@ class Neutrino extends EventEmitter { * @param {string} line log output line */ notifyLightningActivation(line) { - if (line.includes('RPC server listening on') && !line.includes('password')) { + if (line.includes('RPC server listening on') && !line.toLowerCase().includes('password')) { this.isLightningGrpcActive = true this.isWalletUnlockerGrpcActive = false this.emit(NEUTRINO_LIGHTNING_GRPC_ACTIVE) From 8940f8155c4fb038bc566e448600c91a0e81b484 Mon Sep 17 00:00:00 2001 From: Tom Kirkpatrick Date: Sun, 20 Dec 2020 18:27:33 +0000 Subject: [PATCH 15/21] fix(lnd): implementing neutrino.feeurl --- services/neutrino/neutrino.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/services/neutrino/neutrino.js b/services/neutrino/neutrino.js index 5ff6b5de14b..29380aa65e6 100644 --- a/services/neutrino/neutrino.js +++ b/services/neutrino/neutrino.js @@ -372,10 +372,12 @@ class Neutrino extends EventEmitter { const { chain, network, whitelistPeers, neutrinoNodes } = this.lndConfig const nodes = neutrinoNodes || config.lnd.neutrino[chain][network] const connectFlag = whitelistPeers ? 'connect' : 'addpeer' + const feeUrl = 'https://nodes.lightning.computer/fees/v1/btc-fee-estimates.json' neutrinoArgs.push('--bitcoin.node=neutrino') neutrinoArgs.push('--neutrino.useragentname=zap-desktop') neutrinoArgs.push(`--neutrino.useragentversion=${getPackageDetails().version}`) + neutrinoArgs.push(`--neutrino.feeurl=${feeUrl}`) neutrinoArgs.push(`--${chain}.${network}`) nodes.forEach(node => neutrinoArgs.push(`--neutrino.${connectFlag}=${node}`)) From c599c8382ce9fbb14f003a171f7feeb3d925a223 Mon Sep 17 00:00:00 2001 From: Tom Kirkpatrick Date: Thu, 28 Jan 2021 12:53:11 +0000 Subject: [PATCH 16/21] feat(lnd): update to 0.12.0-beta --- package.json | 5 +++-- yarn.lock | 59 ++++++++++++++++++++++++++++++++++------------------ 2 files changed, 42 insertions(+), 22 deletions(-) diff --git a/package.json b/package.json index a3e41774a32..ef16dcd9ea4 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ }, "config": { "lnd-binary": { - "binaryVersion": "0.11.1-beta-4-gb305c99fb", + "binaryVersion": "0.12.0-beta-2-g2dd779205", "binarySite": "https://github.com/LN-Zap/lnd/releases/download" } }, @@ -321,6 +321,7 @@ }, "dependencies": { "@hot-loader/react-dom": "16.13.0", + "@ln-zap/bolt11": "1.2.8-beta.3", "@rebass/forms": "4.0.6", "@styled-system/theme-get": "5.1.2", "axios": "0.19.2", @@ -351,7 +352,7 @@ "is-electron-renderer": "2.0.1", "jstimezonedetect": "1.0.7", "keytar": "5.6.0", - "lnd-grpc": "0.4.7-beta.1", + "lnd-grpc": "0.4.7", "lndconnect": "0.2.10", "lodash": "4.17.20", "new-github-issue-url": "0.2.1", diff --git a/yarn.lock b/yarn.lock index 4fd3a1c0b16..89902ff06ea 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1373,19 +1373,19 @@ tslib "^2.0.1" typescript "^4.0" -"@grpc/grpc-js@^1.2.0": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.2.2.tgz#ee4a7417fe15a686a8e369c36ec4c80678445c67" - integrity sha512-iK/T984Ni6VnmlQK/LJdUk+VsXSaYIWkgzJ0LyOcxN2SowAmoRjG28kS7B1ui/q/MAv42iM3051WBt5QorFxmg== +"@grpc/grpc-js@1.2.5": + version "1.2.5" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.2.5.tgz#d1ef9ae8b99c3b46bb6cc8c82be1aa80080b7300" + integrity sha512-CBCNwedw8McnEBq9jvoiJikws16WN0OiHFejQPovY71XkFWSiIqgvydYiDwpvIYDJmhPQ7qZNzW9BPndhXbx1Q== dependencies: "@types/node" "^12.12.47" google-auth-library "^6.1.1" semver "^6.2.0" -"@grpc/proto-loader@^0.5.5": - version "0.5.5" - resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.5.5.tgz#6725e7a1827bdf8e92e29fbf4e9ef0203c0906a9" - integrity sha512-WwN9jVNdHRQoOBo9FDH7qU+mgfjPc8GygPYms3M+y3fbQLfnCe/Kv/E01t7JRgnrsOHH8euvSbed3mIalXhwqQ== +"@grpc/proto-loader@0.5.6": + version "0.5.6" + resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.5.6.tgz#1dea4b8a6412b05e2d58514d507137b63a52a98d" + integrity sha512-DT14xgw3PSzPxwS13auTEwxhMMOoz33DPUKNtmYK/QYbBSpLXJy78FGGs5yVoxVobEqPm4iW9MOIoz0A3bLTRQ== dependencies: lodash.camelcase "^4.3.0" protobufjs "^6.8.6" @@ -1592,6 +1592,20 @@ "@types/yargs" "^15.0.0" chalk "^4.0.0" +"@ln-zap/bolt11@1.2.8-beta.3": + version "1.2.8-beta.3" + resolved "https://registry.yarnpkg.com/@ln-zap/bolt11/-/bolt11-1.2.8-beta.3.tgz#201b080c0113932fba482df14573403ff8a8b0cf" + integrity sha512-K9mnrVRpqmWu8nlpZod2yrWj3MN22rKOOkmxOqgC2uoRAq8zPlT/1FPDwKmkqAtnVsRFCPxKo+KKvZBqMsW+Aw== + dependencies: + "@types/bn.js" "^4.11.3" + bech32 "^1.1.2" + bitcoinjs-lib "^3.3.1" + bn.js "^4.11.8" + create-hash "^1.2.0" + lodash "^4.17.11" + safe-buffer "^5.1.1" + secp256k1 "^3.4.0" + "@ln-zap/eslint-config@0.3.2": version "0.3.2" resolved "https://registry.yarnpkg.com/@ln-zap/eslint-config/-/eslint-config-0.3.2.tgz#e6d54f5e2104fb405b1c67871fbdb5f185cb1a50" @@ -7246,7 +7260,7 @@ debug@2.6.9, debug@^2.1.0, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6. dependencies: ms "2.0.0" -debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0: +debug@4, debug@4.2.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: version "4.2.0" resolved "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1" integrity sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg== @@ -12585,21 +12599,21 @@ lnd-binary@0.3.18: "true-case-path" "^2.2.1" unzip-stream "^0.3.0" -lnd-grpc@0.4.7-beta.1: - version "0.4.7-beta.1" - resolved "https://registry.yarnpkg.com/lnd-grpc/-/lnd-grpc-0.4.7-beta.1.tgz#a897e5911f69cdb68d69f083f7bd60b379294717" - integrity sha512-8xMge64IwYHIrYiN/3zYp86aK05uN60v09fC7ORyqLBMSgVLuLYcGpKVWjnL6bP9QYCXuaYa+YyZ+N4YyVUr6Q== +lnd-grpc@0.4.7: + version "0.4.7" + resolved "https://registry.yarnpkg.com/lnd-grpc/-/lnd-grpc-0.4.7.tgz#a69de1d0a9238c3baf14cedc1e9f1896db1e081d" + integrity sha512-/hzdQr5eDwjHAZ5Tcqt5VzzT5loHFZyVWbu9GtqXrBA6BuSN6YNtiaOy0rlLH0+8zEVQcUJPUfFhvAndB0o3QA== dependencies: - "@grpc/grpc-js" "^1.2.0" - "@grpc/proto-loader" "^0.5.5" - debug "^4.2.0" + "@grpc/grpc-js" "1.2.5" + "@grpc/proto-loader" "0.5.6" + debug "4.2.0" get-port "5.1.1" javascript-state-machine "3.1.0" lndconnect "0.2.10" lodash.defaultsdeep "4.6.1" - semver "^7.1.3" + semver "7.1.3" untildify "4.0.0" - validator "^13.1.17" + validator "13.1.17" lndconnect@0.2.10: version "0.2.10" @@ -16579,7 +16593,12 @@ semver@7.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@7.3.2, semver@^7.1.3, semver@^7.2.1, semver@^7.3.2: +semver@7.1.3: + version "7.1.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.1.3.tgz#e4345ce73071c53f336445cfc19efb1c311df2a6" + integrity sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA== + +semver@7.3.2, semver@^7.2.1, semver@^7.3.2: version "7.3.2" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== @@ -19021,7 +19040,7 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" -validator@13.1.17, validator@^13.1.17: +validator@13.1.17: version "13.1.17" resolved "https://registry.yarnpkg.com/validator/-/validator-13.1.17.tgz#ad677736950adddd3c37209484a6b2e0966579ad" integrity sha512-zL5QBoemJ3jYFb2/j38y7ljhwYGXVLUp8H6W1nVxadnAOvUOytec+L7BHh1oBQ82/TzWXHd+GSaxUWp4lROkLg== From bd8cb54ba084d4bac561e203f0698f0fa6d47eb7 Mon Sep 17 00:00:00 2001 From: Tom Kirkpatrick Date: Thu, 28 Jan 2021 12:54:20 +0000 Subject: [PATCH 17/21] fix(lnd): support paying to invoices with payment secret --- renderer/reducers/payment/reducer.js | 19 ++++++++++++++++--- renderer/reducers/payment/utils.js | 3 +++ stories/containers/activity.stories.js | 2 +- .../request/request.component.stories.js | 2 +- stories/helpers.js | 2 +- utils/crypto.js | 12 ++++++------ 6 files changed, 28 insertions(+), 12 deletions(-) diff --git a/renderer/reducers/payment/reducer.js b/renderer/reducers/payment/reducer.js index 0e578159627..0fd6472a0c7 100644 --- a/renderer/reducers/payment/reducer.js +++ b/renderer/reducers/payment/reducer.js @@ -4,8 +4,9 @@ import pick from 'lodash/pick' import defaults from 'lodash/defaults' import omitBy from 'lodash/omitBy' import isNil from 'lodash/isNil' +import cloneDeep from 'lodash/cloneDeep' import createReducer from '@zap/utils/createReducer' -import { isPubkey } from '@zap/utils/crypto' +import { isPubkey, getTag } from '@zap/utils/crypto' import delay from '@zap/utils/delay' import genId from '@zap/utils/genId' import { mainLog } from '@zap/utils/log' @@ -316,13 +317,25 @@ export const payInvoice = ({ if (route && route.isExact) { let result = {} try { - const routeToUse = { ...route } + const routeToUse = cloneDeep(route) delete routeToUse.isExact delete routeToUse.paymentHash - result = await grpc.services.Router.sendToRoute({ + + // Add payment secret into the route. + const paymentAddress = getTag(payReq, 'payment_secret') + if (paymentAddress) { + routeToUse.hops[routeToUse.hops.length - 1].tlvPayload = true + routeToUse.hops[routeToUse.hops.length - 1].mppRecord = { + paymentAddr: Buffer.from(paymentAddress, 'hex'), + totalAmtMsat: routeToUse.totalAmtMsat - routeToUse.totalFeesMsat, + } + } + + result = await grpc.services.Router.sendToRouteV2({ paymentHash: route.paymentHash ? Buffer.from(route.paymentHash, 'hex') : null, route: routeToUse, }) + if (result.failure) { throw new Error(result.failure.code) } diff --git a/renderer/reducers/payment/utils.js b/renderer/reducers/payment/utils.js index 2fbed5dbc99..8f9e59d4ccb 100644 --- a/renderer/reducers/payment/utils.js +++ b/renderer/reducers/payment/utils.js @@ -176,6 +176,8 @@ export const prepareBolt11Probe = (payReq, feeLimit) => { // Extract route hints from the invoice. const routingInfo = getTag(invoice, 'routing_info') || [] const paymentHash = getTag(invoice, 'payment_hash') + const paymentAddress = getTag(invoice, 'payment_secret') + const hopHints = routingInfo.map(hint => ({ nodeId: hint.pubkey, chanId: chanNumber({ id: hint.short_channel_id }).number, @@ -191,6 +193,7 @@ export const prepareBolt11Probe = (payReq, feeLimit) => { finalCltvDelta: getTag(invoice, 'min_final_cltv_expiry') || DEFAULT_CLTV_DELTA, routeHints: [{ hopHints }], paymentHash: generateProbeHash(paymentHash), + paymentAddr: Buffer.from(paymentAddress, 'hex'), } } diff --git a/stories/containers/activity.stories.js b/stories/containers/activity.stories.js index 8b5c9c61ba9..deacd2e65a8 100644 --- a/stories/containers/activity.stories.js +++ b/stories/containers/activity.stories.js @@ -2,7 +2,7 @@ import React from 'react' import { storiesOf } from '@storybook/react' import { action } from '@storybook/addon-actions' import { boolean } from '@storybook/addon-knobs' -import lightningPayReq from 'bolt11' +import lightningPayReq from '@ln-zap/bolt11' import { Modal } from 'components/UI' import { InvoiceModal } from 'components/Activity/InvoiceModal' import { PaymentModal } from 'components/Activity/PaymentModal' diff --git a/stories/containers/request/request.component.stories.js b/stories/containers/request/request.component.stories.js index 7dbcaa05246..bc0861692c2 100644 --- a/stories/containers/request/request.component.stories.js +++ b/stories/containers/request/request.component.stories.js @@ -3,7 +3,7 @@ import React from 'react' import { storiesOf } from '@storybook/react' import { action } from '@storybook/addon-actions' -import lightningPayReq from 'bolt11' +import lightningPayReq from '@ln-zap/bolt11' import { convert } from '@zap/utils/btc' import { RequestSummary } from 'components/Request' import { Provider } from '../../Provider' diff --git a/stories/helpers.js b/stories/helpers.js index 1bf41976ad0..9e22edea1c5 100644 --- a/stories/helpers.js +++ b/stories/helpers.js @@ -1,7 +1,7 @@ import React from 'react' import PropTypes from 'prop-types' import { Box, Flex } from 'rebass/styled-components' -import lightningPayReq from 'bolt11' +import lightningPayReq from '@ln-zap/bolt11' import { Bar, Heading, Page } from '@zap/renderer/components/UI' export const Window = props => diff --git a/utils/crypto.js b/utils/crypto.js index dd5fdcc6b0e..6e0c7cac3fa 100644 --- a/utils/crypto.js +++ b/utils/crypto.js @@ -3,7 +3,7 @@ import get from 'lodash/get' import config from 'config' import range from 'lodash/range' import { address } from 'bitcoinjs-lib' -import lightningRequestReq from 'bolt11' +import lightningRequestReq from '@ln-zap/bolt11' import bip21 from 'bip21' import coininfo from 'coininfo' import { CoinBig } from '@zap/utils/coin' @@ -23,10 +23,10 @@ export const networks = { export const coinTypes = { bitcoin: { - mainnet: 'bitcoin', - testnet: 'testnet', - regtest: 'regtest', - simnet: 'simnet', + mainnet: 'bc', + testnet: 'tb', + regtest: 'bcrt', + simnet: 'sb', }, } @@ -180,7 +180,7 @@ export const isBolt11 = (input, chain = 'bitcoin', network = 'mainnet') => { } try { const decoded = lightningRequestReq.decode(input) - if (decoded.coinType !== get(coinTypes, `${chain}.${network}`)) { + if (decoded.network.bech32 !== get(coinTypes, `${chain}.${network}`)) { throw new Error('Invalid coin type') } return true From bab0c4ee80e41746a6e2e64244a248a68c240158 Mon Sep 17 00:00:00 2001 From: Tom Kirkpatrick Date: Thu, 28 Jan 2021 13:15:54 +0000 Subject: [PATCH 18/21] chore(deps): update lnd-grpc to 0.4.8 --- package.json | 2 +- renderer/reducers/payment/utils.js | 2 +- yarn.lock | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index ef16dcd9ea4..cd5ab9f4a3d 100644 --- a/package.json +++ b/package.json @@ -352,7 +352,7 @@ "is-electron-renderer": "2.0.1", "jstimezonedetect": "1.0.7", "keytar": "5.6.0", - "lnd-grpc": "0.4.7", + "lnd-grpc": "0.4.8", "lndconnect": "0.2.10", "lodash": "4.17.20", "new-github-issue-url": "0.2.1", diff --git a/renderer/reducers/payment/utils.js b/renderer/reducers/payment/utils.js index 8f9e59d4ccb..8f90c210c23 100644 --- a/renderer/reducers/payment/utils.js +++ b/renderer/reducers/payment/utils.js @@ -193,7 +193,7 @@ export const prepareBolt11Probe = (payReq, feeLimit) => { finalCltvDelta: getTag(invoice, 'min_final_cltv_expiry') || DEFAULT_CLTV_DELTA, routeHints: [{ hopHints }], paymentHash: generateProbeHash(paymentHash), - paymentAddr: Buffer.from(paymentAddress, 'hex'), + paymentAddr: paymentAddress && Buffer.from(paymentAddress, 'hex'), } } diff --git a/yarn.lock b/yarn.lock index 89902ff06ea..c979e56c142 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12599,10 +12599,10 @@ lnd-binary@0.3.18: "true-case-path" "^2.2.1" unzip-stream "^0.3.0" -lnd-grpc@0.4.7: - version "0.4.7" - resolved "https://registry.yarnpkg.com/lnd-grpc/-/lnd-grpc-0.4.7.tgz#a69de1d0a9238c3baf14cedc1e9f1896db1e081d" - integrity sha512-/hzdQr5eDwjHAZ5Tcqt5VzzT5loHFZyVWbu9GtqXrBA6BuSN6YNtiaOy0rlLH0+8zEVQcUJPUfFhvAndB0o3QA== +lnd-grpc@0.4.8: + version "0.4.8" + resolved "https://registry.yarnpkg.com/lnd-grpc/-/lnd-grpc-0.4.8.tgz#84e079f127682e157071dfae25695223da97a9cd" + integrity sha512-wu10CB+ANiXysXOCLrvpm7PLdsHAepgcxa7HTPcMYVRoU8I8aH8oLaxUvIWJQMBiHfS2vdOrfWTx1Cj/qGc6gQ== dependencies: "@grpc/grpc-js" "1.2.5" "@grpc/proto-loader" "0.5.6" From 40dfb578251f53886a625e30530a218718b9b48f Mon Sep 17 00:00:00 2001 From: Tom Kirkpatrick Date: Sat, 30 Jan 2021 23:13:46 +0000 Subject: [PATCH 19/21] test(fixtures): update testnet node tls cert --- test/e2e/fixtures/tls.cert | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/test/e2e/fixtures/tls.cert b/test/e2e/fixtures/tls.cert index 8fcb22f8c9d..270d04a5ee6 100644 --- a/test/e2e/fixtures/tls.cert +++ b/test/e2e/fixtures/tls.cert @@ -1,15 +1,16 @@ -----BEGIN CERTIFICATE----- -MIICYTCCAgagAwIBAgIRAJMTFnc73j4iP6VAU/+nSOowCgYIKoZIzj0EAwIwPjEf -MB0GA1UEChMWbG5kIGF1dG9nZW5lcmF0ZWQgY2VydDEbMBkGA1UEAxMSemFwLXRl -c3RuZXQ0LWxuZC0wMB4XDTE5MTAyMzEwMDIyNloXDTIwMTIxNzEwMDIyNlowPjEf -MB0GA1UEChMWbG5kIGF1dG9nZW5lcmF0ZWQgY2VydDEbMBkGA1UEAxMSemFwLXRl -c3RuZXQ0LWxuZC0wMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEESndkptIDcgV -AdH7ulBVDPZNsKWgD12WJhII2VmbUN9IU1ZFFcv43kg/DyzCH0/158tDGqHp+Npy -f9JEQ++y4aOB5DCB4TAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH/BAUwAwEB/zCB -vQYDVR0RBIG1MIGyghJ6YXAtdGVzdG5ldDQtbG5kLTCCCWxvY2FsaG9zdIIVdGVz -dG5ldDQtbG5kLnphcGhxLmlvgj56YXBuMzRxZmVlZHcybDV5MjZwM2hubmt1c3Fu -Ymh4Y3h3NjRscTVjb2ptdnE0NXl3NGJjM3NxZC5vbmlvboIEdW5peIIKdW5peHBh -Y2tldIcEfwAAAYcQAAAAAAAAAAAAAAAAAAAAAYcECjQEPocEIklopocECjf8YDAK -BggqhkjOPQQDAgNJADBGAiEAiBiCFmgYrgQyF/OKoZb/I47xnaZYTkdUNeajomMo -FKoCIQC6X3YEAMV2r1rbNs0faOUYS3hCTmFK75coXBJHHWFsFw== +MIICeDCCAh2gAwIBAgIQOMCEKNbMG26NQgqAOmsYoDAKBggqhkjOPQQDAjA+MR8w +HQYDVQQKExZsbmQgYXV0b2dlbmVyYXRlZCBjZXJ0MRswGQYDVQQDExJ6YXAtdGVz +dG5ldDQtbG5kLTAwHhcNMjAxMjE2MTMzMTI4WhcNMjIwMjEwMTMzMTI4WjA+MR8w +HQYDVQQKExZsbmQgYXV0b2dlbmVyYXRlZCBjZXJ0MRswGQYDVQQDExJ6YXAtdGVz +dG5ldDQtbG5kLTAwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARvFglyFQ1Jn2qT +26K+/OWBT86ZanV6mHjbx1eia4UEsdL2fE2FiD2yyJx56OeY+YdXqXNDM+kNiELc +f0me4JxAo4H8MIH5MA4GA1UdDwEB/wQEAwICpDATBgNVHSUEDDAKBggrBgEFBQcD +ATAPBgNVHRMBAf8EBTADAQH/MIHABgNVHREEgbgwgbWCEnphcC10ZXN0bmV0NC1s +bmQtMIIJbG9jYWxob3N0ghV0ZXN0bmV0NC1sbmQuemFwaHEuaW+CPnphcG4zNHFm +ZWVkdzJsNXkyNnAzaG5ua3VzcW5iaHhjeHc2NGxxNWNvam12cTQ1eXc0YmMzc3Fk +Lm9uaW9uggR1bml4ggp1bml4cGFja2V0ggdidWZjb25uhwR/AAABhxAAAAAAAAAA +AAAAAAAAAAABhwQKNAFbhwQiSWimMAoGCCqGSM49BAMCA0kAMEYCIQD/aVOTXMfz +tJ54IIOs+d99H8OtYkRNeYcXQBOVuKWnSQIhAKB+U7Jt8d1qn23RDc85e8tDqJos +dPv6QS1cN1SwpxPv -----END CERTIFICATE----- From b3e4c5bc9a3881d7f9cdf80c110854b07b7f8a6e Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sun, 6 Jun 2021 19:08:03 +0000 Subject: [PATCH 20/21] chore(deps): update dependency browserslist to v4.16.5 [security] --- package.json | 2 +- yarn.lock | 52 ++++++++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 45 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index cd5ab9f4a3d..5b294caaa33 100644 --- a/package.json +++ b/package.json @@ -247,7 +247,7 @@ "babel-plugin-styled-components": "1.10.7", "babel-plugin-transform-react-pure-class-to-function": "1.0.1", "babel-plugin-transform-react-remove-prop-types": "0.4.24", - "browserslist": "4.14.5", + "browserslist": "4.16.5", "circular-dependency-plugin": "5.2.0", "clean-webpack-plugin": "3.0.0", "copy-webpack-plugin": "5.1.1", diff --git a/yarn.lock b/yarn.lock index c979e56c142..207d2a51efc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5718,15 +5718,16 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@4.14.5, browserslist@^4.12.0, browserslist@^4.12.2, browserslist@^4.8.5: - version "4.14.5" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.5.tgz#1c751461a102ddc60e40993639b709be7f2c4015" - integrity sha512-Z+vsCZIvCBvqLoYkBFTwEYH3v5MCQbsAjp50ERycpOjnPmolg1Gjy4+KaWWpm8QOJt9GHkhdqAl14NpCX73CWA== +browserslist@4.16.5: + version "4.16.5" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.5.tgz#952825440bca8913c62d0021334cbe928ef062ae" + integrity sha512-C2HAjrM1AI/djrpAUU/tr4pml1DqLIzJKSLDBXBrNErl9ZCCTXdhwxdJjYc16953+mBWf7Lw+uUJgpgb8cN71A== dependencies: - caniuse-lite "^1.0.30001135" - electron-to-chromium "^1.3.571" - escalade "^3.1.0" - node-releases "^1.1.61" + caniuse-lite "^1.0.30001214" + colorette "^1.2.2" + electron-to-chromium "^1.3.719" + escalade "^3.1.1" + node-releases "^1.1.71" browserslist@4.7.0: version "4.7.0" @@ -5745,6 +5746,16 @@ browserslist@^3.2.6: caniuse-lite "^1.0.30000844" electron-to-chromium "^1.3.47" +browserslist@^4.12.0, browserslist@^4.12.2, browserslist@^4.8.5: + version "4.14.5" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.5.tgz#1c751461a102ddc60e40993639b709be7f2c4015" + integrity sha512-Z+vsCZIvCBvqLoYkBFTwEYH3v5MCQbsAjp50ERycpOjnPmolg1Gjy4+KaWWpm8QOJt9GHkhdqAl14NpCX73CWA== + dependencies: + caniuse-lite "^1.0.30001135" + electron-to-chromium "^1.3.571" + escalade "^3.1.0" + node-releases "^1.1.61" + bs58@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" @@ -6068,6 +6079,11 @@ caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000989, caniuse-lite@^1.0.300011 resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001146.tgz#c61fcb1474520c1462913689201fb292ba6f447c" integrity sha512-VAy5RHDfTJhpxnDdp2n40GPPLp3KqNrXz1QqFv4J64HvArKs8nuNMOWkB3ICOaBTU/Aj4rYAo/ytdQDDFF/Pug== +caniuse-lite@^1.0.30001214: + version "1.0.30001235" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001235.tgz#ad5ca75bc5a1f7b12df79ad806d715a43a5ac4ed" + integrity sha512-zWEwIVqnzPkSAXOUlQnPW2oKoYb2aLQ4Q5ejdjBcnH63rfypaW34CxaeBn1VMya2XaEU3P/R2qHpWyj+l0BT1A== + capital-case@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/capital-case/-/capital-case-1.0.3.tgz#339bd77e8fab6cf75111d4fca509b3edf7c117c8" @@ -6548,6 +6564,11 @@ colorette@^1.2.1: resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== +colorette@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" + integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== + colors@^1.1.2: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" @@ -7972,6 +7993,11 @@ electron-to-chromium@^1.3.247, electron-to-chromium@^1.3.47, electron-to-chromiu resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.578.tgz#e6671936f4571a874eb26e2e833aa0b2c0b776e0" integrity sha512-z4gU6dA1CbBJsAErW5swTGAaU2TBzc2mPAonJb00zqW1rOraDo2zfBMDRvaz9cVic+0JEZiYbHWPw/fTaZlG2Q== +electron-to-chromium@^1.3.719: + version "1.3.749" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.749.tgz#0ecebc529ceb49dd2a7c838ae425236644c3439a" + integrity sha512-F+v2zxZgw/fMwPz/VUGIggG4ZndDsYy0vlpthi3tjmDZlcfbhN5mYW0evXUsBr2sUtuDANFtle410A9u/sd/4A== + electron-updater@4.3.5: version "4.3.5" resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-4.3.5.tgz#4fb36f593a031c87ea07ee141c9f064d5deffb15" @@ -8367,6 +8393,11 @@ escalade@^3.0.2, escalade@^3.1.0: resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.0.tgz#e8e2d7c7a8b76f6ee64c2181d6b8151441602d4e" integrity sha512-mAk+hPSO8fLDkhV7V0dXazH5pDc6MrjBTPyD3VeKzxnVFjH1MIxbCdqGZB9O8+EwWakZs3ZCbDS4IpRt79V1ig== +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + escape-goat@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" @@ -13760,6 +13791,11 @@ node-releases@^1.1.29, node-releases@^1.1.61: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.61.tgz#707b0fca9ce4e11783612ba4a2fcba09047af16e" integrity sha512-DD5vebQLg8jLCOzwupn954fbIiZht05DAZs0k2u8NStSe6h9XdsuIQL8hSRKYiU8WUQRznmSDrKGbv3ObOmC7g== +node-releases@^1.1.71: + version "1.1.72" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.72.tgz#14802ab6b1039a79a0c7d662b610a5bbd76eacbe" + integrity sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw== + node-version@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/node-version/-/node-version-1.2.0.tgz#34fde3ffa8e1149bd323983479dda620e1b5060d" From 9d4447decfc9a1c8e7be6d7290cc10f7c4f485fc Mon Sep 17 00:00:00 2001 From: rahulbile Date: Fri, 18 Jun 2021 16:49:43 +0530 Subject: [PATCH 21/21] revert(create-channel): comment feat to adjust remote csv delay --- renderer/components/Channels/ChannelCreateForm.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/renderer/components/Channels/ChannelCreateForm.js b/renderer/components/Channels/ChannelCreateForm.js index c2eb83a3ca3..7676e3acf0d 100644 --- a/renderer/components/Channels/ChannelCreateForm.js +++ b/renderer/components/Channels/ChannelCreateForm.js @@ -14,7 +14,7 @@ import { Label, Toggle, TransactionFeeInput, - IntegerInput, + // IntegerInput, } from 'components/Form' import { CryptoValue } from 'containers/UI' import { CurrencyFieldGroup } from 'containers/Form' @@ -313,7 +313,7 @@ class ChannelCreateForm extends React.Component { )} - + {/* @@ -333,7 +333,7 @@ class ChannelCreateForm extends React.Component { variant="thin" width={80} /> - + */} ) }