diff --git a/apps/remix-ide-e2e/src/tests/signingMessage.test.ts b/apps/remix-ide-e2e/src/tests/signingMessage.test.ts index 517a19191e..913851fa38 100644 --- a/apps/remix-ide-e2e/src/tests/signingMessage.test.ts +++ b/apps/remix-ide-e2e/src/tests/signingMessage.test.ts @@ -23,6 +23,8 @@ module.exports = { console.log('signature', signature) browser.assert.ok(typeof hash.value === 'string', 'type of hash.value must be String') browser.assert.ok(typeof signature.value === 'string', 'type of signature.value must be String') + // we check here that the input is strictly "test message" + browser.assert.equal(signature.value, '0xaa8873317ebf3f34fbcc0eab3e9808d851352674c28a3d6b88dc84db6e10fc183a45bcec983a105964a13b54f18e43eceae29d982bf379826fb7ecfe0d42c6ba1b', 'signature should be tied to the input "test message"') }) .addFile('signMassage.sol', sources[0]['signMassage.sol']) .openFile('signMassage.sol') diff --git a/libs/remix-ui/run-tab/src/lib/components/account.tsx b/libs/remix-ui/run-tab/src/lib/components/account.tsx index 9d34294026..f8a74a1a34 100644 --- a/libs/remix-ui/run-tab/src/lib/components/account.tsx +++ b/libs/remix-ui/run-tab/src/lib/components/account.tsx @@ -1,5 +1,5 @@ // eslint-disable-next-line no-use-before-define -import React, { useEffect, useState } from 'react' +import React, { useEffect, useState, useRef } from 'react' import { CopyToClipboard } from '@remix-ui/clipboard' import { AccountProps } from '../types' import { PassphrasePrompt } from './passphrase' @@ -11,7 +11,7 @@ export function AccountUI (props: AccountProps) { classList: '', title: '' }) - const [message, setMessage] = useState('') + const messageRef = useRef('') useEffect(() => { if (!selectedAccount && accounts.length > 0) props.setAccount(accounts[0]) @@ -79,7 +79,7 @@ export function AccountUI (props: AccountProps) { setPassphrase={props.setPassphrase} />, 'OK', () => { props.modal('Sign a message', signMessagePrompt(), 'OK', () => { - props.signMessageWithAddress(selectedAccount, message, signedMessagePrompt, props.passphrase) + props.signMessageWithAddress(selectedAccount, messageRef.current, signedMessagePrompt, props.passphrase) props.setPassphrase('') }, 'Cancel', null) }, 'Cancel', () => { @@ -88,7 +88,7 @@ export function AccountUI (props: AccountProps) { } props.modal('Sign a message', signMessagePrompt(), 'OK', () => { - props.signMessageWithAddress(selectedAccount, message, signedMessagePrompt) + props.signMessageWithAddress(selectedAccount, messageRef.current, signedMessagePrompt) }, 'Cancel', null) } @@ -101,7 +101,7 @@ export function AccountUI (props: AccountProps) { } const handleMessageInput = (e) => { - setMessage(e.target.value) + messageRef.current = e.target.value } const passphraseCreationPrompt = () => { @@ -128,7 +128,7 @@ export function AccountUI (props: AccountProps) { rows={4} cols={50} onInput={handleMessageInput} - defaultValue={message} + defaultValue={messageRef.current} >