diff --git a/web/cashtab/package-lock.json b/web/cashtab/package-lock.json
--- a/web/cashtab/package-lock.json
+++ b/web/cashtab/package-lock.json
@@ -95,7 +95,7 @@
"webpack-manifest-plugin": "^4.0.2",
"wif": "^2.0.6",
"workbox-webpack-plugin": "^6.4.1",
- "xecjs-message": "^1.0.5"
+ "xecjs-message": "file:../xecjs-message"
},
"devDependencies": {
"husky": "^8.0.1",
@@ -152,7 +152,6 @@
},
"../xecjs-message": {
"version": "1.0.5",
- "extraneous": true,
"license": "MIT",
"dependencies": {
"buffer-equals": "^1.0.3",
@@ -20717,19 +20716,8 @@
}
},
"node_modules/xecjs-message": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/xecjs-message/-/xecjs-message-1.0.5.tgz",
- "integrity": "sha512-8gnkLAQz/Wz7/e5JfI4J+lVN8MdsS7Do+pyE0vF4fBsEtGDkOh71dQFcrQ8lbYEZhkIrwjsmDz964ub/52HCGg==",
- "dependencies": {
- "buffer-equals": "^1.0.3",
- "create-hash": "^1.1.2",
- "ecashaddrjs": "^1.0.7",
- "secp256k1": "^3.0.1",
- "varuint-bitcoin": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10"
- }
+ "resolved": "../xecjs-message",
+ "link": true
},
"node_modules/xml": {
"version": "1.0.1",
@@ -35801,14 +35789,16 @@
"requires": {}
},
"xecjs-message": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/xecjs-message/-/xecjs-message-1.0.5.tgz",
- "integrity": "sha512-8gnkLAQz/Wz7/e5JfI4J+lVN8MdsS7Do+pyE0vF4fBsEtGDkOh71dQFcrQ8lbYEZhkIrwjsmDz964ub/52HCGg==",
+ "version": "file:../xecjs-message",
"requires": {
+ "bigi": "^1.4.1",
+ "bitcoinjs-lib": "^3.2.0",
"buffer-equals": "^1.0.3",
"create-hash": "^1.1.2",
"ecashaddrjs": "^1.0.7",
+ "nyc": "^14.1.1",
"secp256k1": "^3.0.1",
+ "tape": "^4.5.1",
"varuint-bitcoin": "^1.0.1"
}
},
diff --git a/web/cashtab/package.json b/web/cashtab/package.json
--- a/web/cashtab/package.json
+++ b/web/cashtab/package.json
@@ -90,7 +90,7 @@
"webpack-manifest-plugin": "^4.0.2",
"wif": "^2.0.6",
"workbox-webpack-plugin": "^6.4.1",
- "xecjs-message": "^1.0.5"
+ "xecjs-message": "file:../xecjs-message"
},
"scripts": {
"start": "node scripts/start.js",
diff --git a/web/cashtab/src/components/SignVerifyMsg/SignVerifyMsg.js b/web/cashtab/src/components/SignVerifyMsg/SignVerifyMsg.js
--- a/web/cashtab/src/components/SignVerifyMsg/SignVerifyMsg.js
+++ b/web/cashtab/src/components/SignVerifyMsg/SignVerifyMsg.js
@@ -98,7 +98,7 @@
useState(false);
const [messageVerificationSigError, setMessageVerificationSigError] =
useState(false);
- const signMessageByPk = () => {
+ const signMessageByPk = async () => {
try {
// First, get required params
const keyPair = getECPairFromWIF(wallet.Path1899.fundingWif);
@@ -109,6 +109,22 @@
.sign(msgToSign, privKey, keyPair.compressed)
.toString('base64');
+ // Also test the async function
+ let asyncSignature = await (
+ await xecMessage.signAsync(
+ msgToSign,
+ privKey,
+ keyPair.compressed,
+ )
+ ).toString('base64');
+
+ console.log(`sync sig`, messageSignature);
+ console.log(`asyncSignature`, asyncSignature);
+
+ if (messageSignature === asyncSignature) {
+ console.log(`Both methods not broken`);
+ }
+
setMessageSignature(messageSignature);
messageSignedNotification(messageSignature);
} catch (err) {
diff --git a/web/cashtab/src/components/SignVerifyMsg/__tests__/SignVerifyMsg.test.js b/web/cashtab/src/components/SignVerifyMsg/__tests__/SignVerifyMsg.test.js
deleted file mode 100644
--- a/web/cashtab/src/components/SignVerifyMsg/__tests__/SignVerifyMsg.test.js
+++ /dev/null
@@ -1,92 +0,0 @@
-import React from 'react';
-import renderer from 'react-test-renderer';
-import { ThemeProvider } from 'styled-components';
-import { theme } from 'assets/styles/theme';
-import {
- walletWithoutBalancesMock,
- walletWithBalancesMock,
- walletWithBalancesAndTokensWithCorrectState,
-} from '../../Home/__mocks__/walletAndBalancesMock';
-import SignVerifyMsg from '../SignVerifyMsg';
-import { BrowserRouter as Router } from 'react-router-dom';
-import { WalletContext } from 'utils/context';
-
-beforeEach(() => {
- // Mock method not implemented in JSDOM
- // See reference at https://jestjs.io/docs/manual-mocks#mocking-methods-which-are-not-implemented-in-jsdom
- Object.defineProperty(window, 'matchMedia', {
- writable: true,
- value: jest.fn().mockImplementation(query => ({
- matches: false,
- media: query,
- onchange: null,
- addListener: jest.fn(), // Deprecated
- removeListener: jest.fn(), // Deprecated
- addEventListener: jest.fn(),
- removeEventListener: jest.fn(),
- dispatchEvent: jest.fn(),
- })),
- });
-});
-
-test('Wallet without BCH balance', () => {
- const component = renderer.create(
-