From 0c1295fc558a29ebfcac8e91319607e6ec28f870 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABtan=20Renaudeau?= Date: Thu, 25 Oct 2018 16:39:19 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=8C=B2=20ZCash=20update?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 4 +-- src/bridge/LibcoreBridge.js | 1 + src/commands/libcoreSignAndBroadcast.js | 26 +++++++++++++++++-- .../AddAccounts/steps/03-step-import.js | 4 ++- yarn.lock | 16 ++++++------ 5 files changed, 38 insertions(+), 13 deletions(-) diff --git a/package.json b/package.json index 9fd9547f..97c04030 100644 --- a/package.json +++ b/package.json @@ -35,12 +35,12 @@ } }, "dependencies": { - "@ledgerhq/hw-app-btc": "4.24.0", + "@ledgerhq/hw-app-btc": "^4.27.0", "@ledgerhq/hw-app-eth": "^4.24.0", "@ledgerhq/hw-app-xrp": "^4.24.0", "@ledgerhq/hw-transport": "^4.24.0", "@ledgerhq/hw-transport-node-hid": "4.24.0", - "@ledgerhq/ledger-core": "2.0.0-rc.8", + "@ledgerhq/ledger-core": "2.0.0-rc.9", "@ledgerhq/live-common": "4.0.0-beta.1", "animated": "^0.2.2", "async": "^2.6.1", diff --git a/src/bridge/LibcoreBridge.js b/src/bridge/LibcoreBridge.js index 4ad2bfc0..8ed8de3d 100644 --- a/src/bridge/LibcoreBridge.js +++ b/src/bridge/LibcoreBridge.js @@ -220,6 +220,7 @@ const LibcoreBridge: WalletBridge = { .send({ accountId: account.id, currencyId: account.currency.id, + blockHeight: account.blockHeight, xpub: account.xpub || '', // FIXME only reason is to build the op id. we need to consider another id for making op id. derivationMode: account.derivationMode, seedIdentifier: account.seedIdentifier, diff --git a/src/commands/libcoreSignAndBroadcast.js b/src/commands/libcoreSignAndBroadcast.js index 98cd8ff5..db096031 100644 --- a/src/commands/libcoreSignAndBroadcast.js +++ b/src/commands/libcoreSignAndBroadcast.js @@ -26,6 +26,7 @@ type BitcoinLikeTransaction = { type Input = { accountId: string, + blockHeight: number, currencyId: string, derivationMode: string, seedIdentifier: string, @@ -41,7 +42,17 @@ type Result = { type: 'signed' } | { type: 'broadcasted', operation: OperationRa const cmd: Command = createCommand( 'libcoreSignAndBroadcast', - ({ accountId, currencyId, derivationMode, seedIdentifier, xpub, index, transaction, deviceId }) => + ({ + accountId, + blockHeight, + currencyId, + derivationMode, + seedIdentifier, + xpub, + index, + transaction, + deviceId, + }) => Observable.create(o => { let unsubscribed = false const currency = getCryptoCurrencyById(currencyId) @@ -50,6 +61,7 @@ const cmd: Command = createCommand( doSignAndBroadcast({ accountId, currency, + blockHeight, derivationMode, seedIdentifier, xpub, @@ -79,6 +91,7 @@ const cmd: Command = createCommand( async function signTransaction({ hwApp, currency, + blockHeight, transaction, derivationMode, sigHashType, @@ -86,6 +99,7 @@ async function signTransaction({ }: { hwApp: Btc, currency: CryptoCurrency, + blockHeight: number, transaction: *, derivationMode: string, sigHashType: number, @@ -94,7 +108,12 @@ async function signTransaction({ const additionals = [] let expiryHeight if (currency.id === 'bitcoin_cash' || currency.id === 'bitcoin_gold') additionals.push('bip143') - if (currency.id === 'zcash') expiryHeight = Buffer.from([0x00, 0x00, 0x00, 0x00]) + if (currency.id === 'zcash') { + expiryHeight = Buffer.from([0x00, 0x00, 0x00, 0x00]) + if (blockHeight >= 419200) { + additionals.push('sapling') + } + } const rawInputs = transaction.getInputs() const hasExtraData = currency.id === 'zcash' @@ -166,6 +185,7 @@ async function signTransaction({ export async function doSignAndBroadcast({ accountId, derivationMode, + blockHeight, seedIdentifier, currency, xpub, @@ -180,6 +200,7 @@ export async function doSignAndBroadcast({ accountId: string, derivationMode: string, seedIdentifier: string, + blockHeight: number, currency: CryptoCurrency, xpub: string, index: number, @@ -222,6 +243,7 @@ export async function doSignAndBroadcast({ signTransaction({ hwApp: new Btc(transport), currency, + blockHeight, transaction: builded, sigHashType: parseInt(sigHashType, 16), hasTimestamp, diff --git a/src/components/modals/AddAccounts/steps/03-step-import.js b/src/components/modals/AddAccounts/steps/03-step-import.js index 4d2ef811..227e5f00 100644 --- a/src/components/modals/AddAccounts/steps/03-step-import.js +++ b/src/components/modals/AddAccounts/steps/03-step-import.js @@ -144,7 +144,9 @@ class StepImport extends PureComponent { }) } }, - complete: () => setScanStatus('finished'), + complete: () => { + setScanStatus('finished') + }, error: err => { logger.critical(err) setScanStatus('error', err) diff --git a/yarn.lock b/yarn.lock index e076ec19..97d61a8e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1670,10 +1670,10 @@ camelcase "^5.0.0" prettier "^1.13.7" -"@ledgerhq/hw-app-btc@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-app-btc/-/hw-app-btc-4.24.0.tgz#8889b2bc9b9583209ed24f832c96ea8d23e1dc74" - integrity sha512-OEc8UCcdAWp10PPM9Keoh8imuusmNVe2o/89ujMT5UIWOGCu7duezpsnCY11jGNxf2hyos6lezUMlUAOHBuISQ== +"@ledgerhq/hw-app-btc@^4.27.0": + version "4.27.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-app-btc/-/hw-app-btc-4.27.0.tgz#11fc822bd34a47a39b1a7ae03ced69cf1d432796" + integrity sha512-7Ck48wCBb6nd9UXarNeGOsOqbOTi2cs4AxFhbDNrVLvPiBSH0yEiNQEF95J6u5BxKkAdM1GV9LoRumR4KhZGqQ== dependencies: "@ledgerhq/hw-transport" "^4.24.0" create-hash "^1.1.3" @@ -1733,10 +1733,10 @@ dependencies: events "^3.0.0" -"@ledgerhq/ledger-core@2.0.0-rc.8": - version "2.0.0-rc.8" - resolved "https://registry.yarnpkg.com/@ledgerhq/ledger-core/-/ledger-core-2.0.0-rc.8.tgz#618ff2ca091464c71890678d3912921ee46f98af" - integrity sha512-UYEwlw7+JfRCPw1z2kw9EGs88wsk5XBGxMPpNPF1cdpE7extEL63Gr+4h4ibU6kXEeEIpfI0lZ2l/6HwzMw6EQ== +"@ledgerhq/ledger-core@2.0.0-rc.9": + version "2.0.0-rc.9" + resolved "https://registry.yarnpkg.com/@ledgerhq/ledger-core/-/ledger-core-2.0.0-rc.9.tgz#f478f52fac0ecace8842df430bc83fa60e14483f" + integrity sha512-wd+w4W/8IfhX2a4h1sM9rkKD0vfcixkbrvKa+SmKzv0WtiUx1i94rHlPLX08tbP2ubaAv/LufeT2DwFz+EcssA== dependencies: "@ledgerhq/hw-app-btc" "^4.7.3" "@ledgerhq/hw-transport-node-hid" "^4.7.6"