c# signing not equal node.js signing
node.js produces correct result
I have code in node.js
import { Wallet, utils } from 'ethers'
const privateKey = '0xcd180f4628bf1fceb5ab9e2e22df38d6d1dee52667926c997c58a318890aa4ee'
const wallet = new Wallet(privateKey)
const body = '{"jsonrpc":"2.0","method":"eth_sendBundle","params":[{see above}],"id":1}'
const signature = wallet.address + ':' + wallet.signMessage(utils.id(body))
console.log(wallet.address)
console.log(utils.id(body))
console.log(wallet.signMessage(utils.id(body)))
and i get the result (correctly)
0xB0D23E7099C128fbeee8E097a776ED73d50c7656 0x311d6d3d0466023c1dc327266ba7294cc8ee18b2ab81b0de3ef97ee1af10ecb6
Promise { '0xad2b2e1352d4ebc7f870359feb3efd14f6f43f20002a20d1eada609d8f9b878f27606bee58c4403550555925e4b0ce48cb4653bbd077589da0e8a689b4ea9e161b' }
i am trying to sign in c#, keccack matches but no signature
i get result
0x9364eb479cda8fb4a70cae68233aa3b866d5c49366a701029e4f7b745ff1f0ac300e206e64061d43ca3a18b072c51575bcef559eb109f95b4743d68c8f6a79cd1c
C# code (library Nethereum)
var ecKey = new EthECKey("0xcd180f4628bf1fceb5ab9e2e22df38d6d1dee52667926c997c58a318890aa4ee");
var json = "{\"jsonrpc\":\"2.0\",\"method\":\"eth_sendBundle\",\"params\":[{see above}],\"id\":1}";
var keccack = Sha3Keccack.Current.CalculateHash(json).HexToByteArray();
var signer = new EthereumMessageSigner();
var hash = signer.Sign(keccack, ecKey);
Console.WriteLine(hash);