From 1805b74edfd193948a1fdea8e6ad45ea5e7bf3eb Mon Sep 17 00:00:00 2001 From: Felipe Knorr Kuhn <100320+knorrium@users.noreply.github.com> Date: Wed, 6 Jul 2022 12:25:30 -0700 Subject: [PATCH 1/2] Add types for cryptojs --- backend/package-lock.json | 13 +++++++++++++ backend/package.json | 1 + 2 files changed, 14 insertions(+) diff --git a/backend/package-lock.json b/backend/package-lock.json index ce3a8ff68..b832c3b52 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -23,6 +23,7 @@ }, "devDependencies": { "@types/compression": "^1.7.2", + "@types/crypto-js": "^4.1.1", "@types/express": "^4.17.13", "@types/ws": "~8.5.3", "@typescript-eslint/eslint-plugin": "^5.30.5", @@ -232,6 +233,12 @@ "@types/node": "*" } }, + "node_modules/@types/crypto-js": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@types/crypto-js/-/crypto-js-4.1.1.tgz", + "integrity": "sha512-BG7fQKZ689HIoc5h+6D2Dgq1fABRa0RbBWKBd9SP/MVRVXROflpm5fhwyATX5duFmbStzyzyycPB8qUYKDH3NA==", + "dev": true + }, "node_modules/@types/express": { "version": "4.17.13", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", @@ -3246,6 +3253,12 @@ "@types/node": "*" } }, + "@types/crypto-js": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@types/crypto-js/-/crypto-js-4.1.1.tgz", + "integrity": "sha512-BG7fQKZ689HIoc5h+6D2Dgq1fABRa0RbBWKBd9SP/MVRVXROflpm5fhwyATX5duFmbStzyzyycPB8qUYKDH3NA==", + "dev": true + }, "@types/express": { "version": "4.17.13", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", diff --git a/backend/package.json b/backend/package.json index c5cd4380c..0c4bc57a2 100644 --- a/backend/package.json +++ b/backend/package.json @@ -43,6 +43,7 @@ }, "devDependencies": { "@types/compression": "^1.7.2", + "@types/crypto-js": "^4.1.1", "@types/express": "^4.17.13", "@types/ws": "~8.5.3", "@typescript-eslint/eslint-plugin": "^5.30.5", From 72c4ea00652d7cd31dc8a5cd8000b18d0bb8596f Mon Sep 17 00:00:00 2001 From: Felipe Knorr Kuhn <100320+knorrium@users.noreply.github.com> Date: Wed, 6 Jul 2022 12:34:54 -0700 Subject: [PATCH 2/2] Fix crypto library usage for the Electrum API --- backend/src/api/bitcoin/electrum-api.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/backend/src/api/bitcoin/electrum-api.ts b/backend/src/api/bitcoin/electrum-api.ts index 54d75d67b..73fc3f28f 100644 --- a/backend/src/api/bitcoin/electrum-api.ts +++ b/backend/src/api/bitcoin/electrum-api.ts @@ -5,8 +5,7 @@ import { IEsploraApi } from './esplora-api.interface'; import { IElectrumApi } from './electrum-api.interface'; import BitcoinApi from './bitcoin-api'; import logger from '../../logger'; -import * as sha256 from 'crypto-js/sha256'; -import * as hexEnc from 'crypto-js/enc-hex'; +import crypto from "crypto-js"; import loadingIndicators from '../loading-indicators'; import memoryCache from '../memory-cache'; @@ -144,8 +143,8 @@ class BitcoindElectrsApi extends BitcoinApi implements AbstractBitcoinApi { } private encodeScriptHash(scriptPubKey: string): string { - const addrScripthash = hexEnc.stringify(sha256(hexEnc.parse(scriptPubKey))); - return addrScripthash.match(/.{2}/g).reverse().join(''); + const addrScripthash = crypto.enc.Hex.stringify(crypto.SHA256(crypto.enc.Hex.parse(scriptPubKey))); + return addrScripthash!.match(/.{2}/g)!.reverse().join(''); } }