From 2d1b0f7c33277ae6f56ba5123fd2dc21ca8ab9c8 Mon Sep 17 00:00:00 2001 From: yann300 Date: Mon, 23 Oct 2023 22:21:03 +0200 Subject: [PATCH] fix sign message --- apps/remix-ide/src/blockchain/providers/injected.ts | 3 ++- apps/remix-ide/src/blockchain/providers/node.ts | 3 ++- apps/remix-ide/src/blockchain/providers/vm.ts | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/apps/remix-ide/src/blockchain/providers/injected.ts b/apps/remix-ide/src/blockchain/providers/injected.ts index bdbf077db0..ce6ae9912b 100644 --- a/apps/remix-ide/src/blockchain/providers/injected.ts +++ b/apps/remix-ide/src/blockchain/providers/injected.ts @@ -1,5 +1,5 @@ import Web3 from 'web3' -import { hashPersonalMessage } from '@ethereumjs/util' +import { hashPersonalMessage, isHexString } from '@ethereumjs/util' import { ExecutionContext } from '../execution-context' export class InjectedProvider { @@ -35,6 +35,7 @@ export class InjectedProvider { signMessage (message, account, _passphrase, cb) { const messageHash = hashPersonalMessage(Buffer.from(message)) try { + message = isHexString(message) ? message : Web3.utils.utf8ToHex(message) this.executionContext.web3().eth.personal.sign(message, account, (error, signedData) => { cb(error, '0x' + messageHash.toString('hex'), signedData) }) diff --git a/apps/remix-ide/src/blockchain/providers/node.ts b/apps/remix-ide/src/blockchain/providers/node.ts index b65ee639b3..1dcf1b6c40 100644 --- a/apps/remix-ide/src/blockchain/providers/node.ts +++ b/apps/remix-ide/src/blockchain/providers/node.ts @@ -1,5 +1,5 @@ import Web3 from 'web3' -import { hashPersonalMessage } from '@ethereumjs/util' +import { hashPersonalMessage, isHexString } from '@ethereumjs/util' import { Personal } from 'web3-eth-personal' import { ExecutionContext } from '../execution-context' import Config from '../../config' @@ -46,6 +46,7 @@ export class NodeProvider { const messageHash = hashPersonalMessage(Buffer.from(message)) try { const personal = new Personal(this.executionContext.web3().currentProvider) + message = isHexString(message) ? message : Web3.utils.utf8ToHex(message) personal.sign(message, account, passphrase) .then(signedData => cb(undefined, '0x' + messageHash.toString('hex'), signedData)) .catch(error => cb(error, '0x' + messageHash.toString('hex'), undefined)) diff --git a/apps/remix-ide/src/blockchain/providers/vm.ts b/apps/remix-ide/src/blockchain/providers/vm.ts index 0ebe1370a2..da6731d696 100644 --- a/apps/remix-ide/src/blockchain/providers/vm.ts +++ b/apps/remix-ide/src/blockchain/providers/vm.ts @@ -1,6 +1,6 @@ import Web3, { FMT_BYTES, FMT_NUMBER, LegacySendAsyncProvider } from 'web3' import { fromWei, toBigInt } from 'web3-utils' -import { privateToAddress, hashPersonalMessage } from '@ethereumjs/util' +import { privateToAddress, hashPersonalMessage, isHexString } from '@ethereumjs/util' import { extend, JSONRPCRequestPayload, JSONRPCResponseCallback } from '@remix-project/remix-simulator' import { ExecutionContext } from '../execution-context' @@ -105,6 +105,7 @@ export class VMProvider { signMessage (message, account, _passphrase, cb) { const messageHash = hashPersonalMessage(Buffer.from(message)) + message = isHexString(message) ? message : Web3.utils.utf8ToHex(message) this.web3.eth.sign(message, account) .then(signedData => cb(null, '0x' + messageHash.toString('hex'), signedData)) .catch(error => cb(error))