The IsValidSignatureMessageAsync no result return and when debug the result is hanging there
Code Snippet:
Dim message = "Signature here"
Dim privateKey = "55f53ebab4292f10dffec8463cbd38041e3dc127fedbba566a6693903223c356"
Dim account = New Account(privateKey)
Dim signerAddress = account.Address
Dim signe = New EthereumMessageSigner()
'original signature
Dim Signature = signe.EncodeUTF8AndSign(message, New EthECKey(privateKey))
'check can be recover the address
Dim recoveredAddress = signe.EncodeUTF8AndEcRecover(message, Signature)
'hard code the create2FactoryAddress & factoryCallData
Dim create2FactoryAddress = "0xBf07a0Df119Ca234634588fbDb5625594E2a5BCA"
Dim factoryCallData = "0x49c81579000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000010000000000000000000000004836a472ab1dd406ecb8d0f933a985541ee3921f0000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000007a7f00000000000000000000000000000000000000000000000000000000000000017f7f0f292b79d9ce101861526459da50f62368077ae24affe97b792bf4bdd2e171553d602d80604d3d3981f3363d3d373d3d3d363d732a2b85eb1054d6f0c6c2e37da05ed3e5fea684ef5af43d82803e903d91602b57fd5bf300000000000000000000000000000000000000000000000000000000000000000000000002246171d1c9000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000004836a472ab1dd406ecb8d0f933a985541ee3921f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000942f9ce5d9a33a82f88d233aeb3292e6802303480000000000000000000000000000000000000000000000000014c3c6ef1cdc01000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000042f2eaaebf45fc0340eb55f11c52a30e2ca7f48539d0a1f1cdc240482210326494545def903e8ed4441bd5438109abe950f1f79baf032f184728ba2d4161dea32e1b0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
Dim client As IClient = New RpcClient(New Uri("https://eth.llamarpc.com"))
Dim ethApi = New EthApiContractService(client)
'Build ERC 6492 signature
Dim signatureERC6492 = ethApi.SignatureValidationPredeployContractERC6492.BuildSignature(create2FactoryAddress, factoryCallData.HexToByteArray(), Signature.HexToByteArray())
'check is the ERC6492 Signature
Dim isSignatureValidERC6492 As Boolean = ethApi.SignatureValidationPredeployContractERC6492.IsERC6492Signature(signatureERC6492)
If isSignatureValidERC6492 Then
'check validate signature
result = ethApi.SignatureValidationPredeployContractERC6492.IsValidSignatureMessageAsync(signerAddress, Encoding.UTF8.GetBytes(message), signatureERC6492).Result
End If
Steps to Reproduce:
Personal_Sign by using Coinbase Smart Wallet
- Using the signature to execute
IsValidSignatureMessageAsync in the project.
- Observe that the call to
IsValidSignatureMessageAsync does not return and hangs indefinitely.
Parameters For Reproduce
RPC using: infura mainnet / https://eth.llamarpc.com
wallet to sign signature : Coinbase Smart Wallet
sample sign
sign address: 0x364993488B61d392330a33035B2682877245B998
message: here is message for signature
signature: 0x000000000000000000000000ca11bde05977b3631167028862be2a173976ca110000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000001e482ad56cb0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000ba5ed0c6aa8c49038f819e587e2633c4a9f428a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e43ffba36f000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000406e3e2ca48ff1e915abe7a880a09d2391e99df126bfb1a85b525399c67f2ca0f108bac7464f0810c7e654d7d7c29c76aae7dd65f8dc7708b47a927a57e81d9b54000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000170000000000000000000000000000000000000000000000000000000000000001e12de607cf4a0394485fdd935ed9c5c1ca36f2aa8443e613447ef390f0bde33d3bfea64d5c9bd523eb8176a2fe97088a11dbcef5c1899258f335109b4c87b2fa0000000000000000000000000000000000000000000000000000000000000025f198086b2db17256731bc456673b96bcef23f51d1fbacdd7c4379ef65465572f1d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008a7b2274797065223a22776562617574686e2e676574222c226368616c6c656e6765223a22707456556c676e4e6442597a5a76506346567278776571645f62786f39613534706250634132664c4f6941222c226f726967696e223a2268747470733a2f2f6b6579732e636f696e626173652e636f6d222c2263726f73734f726967696e223a66616c73657d000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492
Expected Behavior:
The IsValidSignatureMessageAsync method should return true or false.
Actual Behavior:
The IsValidSignatureMessageAsync method hangs indefinitely and does not return anything.
Environment:
.NET version: net7.0
Nethereum version: 4.21.3
Possible Cause:
This issue might be related to network connectivity or issues with the blockchain node RPC.
Test Compare By Ether.js
var result = await window.web3.currentProvider.request({ method: "personal_sign", params: [web3.utils.utf8ToHex(msg.toString()), walletDetails.account] });
//to make sure not using back the same provider
const infuraProvider = new ethers.providers.JsonRpcProvider("https://eth.llamarpc.com");
const messageHash = ethers.utils.hashMessage(msg);
// hard code the sign offchain bytecode
const validateSigOffchainBytecode = "0x60806040523480156200001157600080fd5b50604051620007003803806200070083398101604081905262000034916200056f565b6000620000438484846200004f565b9050806000526001601ff35b600080846001600160a01b0316803b806020016040519081016040528181526000908060200190933c90507f6492649264926492649264926492649264926492649264926492649264926492620000a68462000451565b036200021f57600060608085806020019051810190620000c79190620005ce565b8651929550909350915060000362000192576000836001600160a01b031683604051620000f5919062000643565b6000604051808303816000865af19150503d806000811462000134576040519150601f19603f3d011682016040523d82523d6000602084013e62000139565b606091505b5050905080620001905760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b505b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90620001c4908b90869060040162000661565b602060405180830381865afa158015620001e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020891906200069d565b6001600160e01b031916149450505050506200044a565b805115620002b157604051630b135d3f60e11b808252906001600160a01b03871690631626ba7e9062000259908890889060040162000661565b602060405180830381865afa15801562000277573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029d91906200069d565b6001600160e01b031916149150506200044a565b8251604114620003195760405162461bcd60e51b815260206004820152603a6024820152600080516020620006e083398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e677468000000000000606482015260840162000187565b620003236200046b565b506020830151604080850151855186939260009185919081106200034b576200034b620006c9565b016020015160f81c9050601b81148015906200036b57508060ff16601c14155b15620003cf5760405162461bcd60e51b815260206004820152603b6024820152600080516020620006e083398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c75650000000000606482015260840162000187565b6040805160008152602081018083528a905260ff83169181019190915260608101849052608081018390526001600160a01b038a169060019060a0016020604051602081039080840390855afa1580156200042e573d6000803e3d6000fd5b505050602060405103516001600160a01b031614955050505050505b9392505050565b60006020825110156200046357600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b03811681146200049f57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620004d5578181015183820152602001620004bb565b50506000910152565b600082601f830112620004f057600080fd5b81516001600160401b03808211156200050d576200050d620004a2565b604051601f8301601f19908116603f01168101908282118183101715620005385762000538620004a2565b816040528381528660208588010111156200055257600080fd5b62000565846020830160208901620004b8565b9695505050505050565b6000806000606084860312156200058557600080fd5b8351620005928162000489565b6020850151604086015191945092506001600160401b03811115620005b657600080fd5b620005c486828701620004de565b9150509250925092565b600080600060608486031215620005e457600080fd5b8351620005f18162000489565b60208501519093506001600160401b03808211156200060f57600080fd5b6200061d87838801620004de565b935060408601519150808211156200063457600080fd5b50620005c486828701620004de565b6000825162000657818460208701620004b8565b9190910192915050565b828152604060208201526000825180604084015262000688816060850160208701620004b8565b601f01601f1916919091016060019392505050565b600060208284031215620006b057600080fd5b81516001600160e01b0319811681146200044a57600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572";
// validate the sign
const isValidSignature = '0x01' === await infuraProvider.call({
data: ethers.utils.concat([
validateSigOffchainBytecode,
(new ethers.utils.AbiCoder()).encode(['address', 'bytes32', 'bytes'], [walletDetails.account, messageHash, result])
])
})
console.log(isValidSignature);
The
IsValidSignatureMessageAsyncno result return and when debug the result is hanging thereCode Snippet:
Steps to Reproduce:
Personal_Signby using Coinbase Smart WalletIsValidSignatureMessageAsyncin the project.IsValidSignatureMessageAsyncdoes not return and hangs indefinitely.Parameters For Reproduce
RPC using: infura mainnet / https://eth.llamarpc.com
wallet to sign signature : Coinbase Smart Wallet
sample sign
sign address: 0x364993488B61d392330a33035B2682877245B998
message: here is message for signature
signature: 0x000000000000000000000000ca11bde05977b3631167028862be2a173976ca110000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000001e482ad56cb0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000ba5ed0c6aa8c49038f819e587e2633c4a9f428a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e43ffba36f000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000406e3e2ca48ff1e915abe7a880a09d2391e99df126bfb1a85b525399c67f2ca0f108bac7464f0810c7e654d7d7c29c76aae7dd65f8dc7708b47a927a57e81d9b54000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000170000000000000000000000000000000000000000000000000000000000000001e12de607cf4a0394485fdd935ed9c5c1ca36f2aa8443e613447ef390f0bde33d3bfea64d5c9bd523eb8176a2fe97088a11dbcef5c1899258f335109b4c87b2fa0000000000000000000000000000000000000000000000000000000000000025f198086b2db17256731bc456673b96bcef23f51d1fbacdd7c4379ef65465572f1d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008a7b2274797065223a22776562617574686e2e676574222c226368616c6c656e6765223a22707456556c676e4e6442597a5a76506346567278776571645f62786f39613534706250634132664c4f6941222c226f726967696e223a2268747470733a2f2f6b6579732e636f696e626173652e636f6d222c2263726f73734f726967696e223a66616c73657d000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492
Expected Behavior:
The
IsValidSignatureMessageAsyncmethod should returntrueorfalse.Actual Behavior:
The
IsValidSignatureMessageAsyncmethod hangs indefinitely and does not return anything.Environment:
.NET version: net7.0
Nethereum version: 4.21.3
Possible Cause:
This issue might be related to network connectivity or issues with the blockchain node RPC.
Test Compare By Ether.js