Closed bolom closed 5 months ago
Eth.rb
The signature generated for an address differs between Ruby and JavaScript.
Ruby code:
types = ['address'] values = ["0x0063046686E46Dc6F15918b61AE2B121458534a5"] encoded = Eth::Abi.encode(types, values, true) hashed = Eth::Util.keccak256(encoded) signed = wallet.personal_sign(hashed) # Signature: 0x9a720009e1982fb83e20ef8d4803b8ac15a8f060feb03325c55025ab7bf443b00e269bdc7af3ee2e481d80e35e98060ad745705f34d5455e1afd6ac4f298e3d01c
JavaScript code:
import { keccak256, encodePacked, stringToHex } from 'viem'; import { Operator } from './operator'; const operator = new Operator(); const encoded = encodePacked(['address'], ['0x0063046686E46Dc6F15918b61AE2B121458534a5']); let output = keccak256(encoded); const operatorSignature = await operator.signRawMessage(output); console.log(operatorSignature); // Signature: 0xd867d494b565e61480f88c3d3af58e097bef4e3562b4f6851c0d28deb0fcfc7b4934304da204225f6c3cd0561bb58d55c2f03f223edeb08bf7fbe193368c17c21c
Not sure why @q9f
It's matching only for uint256
Eth.rb
The signature generated for an address differs between Ruby and JavaScript.
Ruby code:
JavaScript code:
Not sure why @q9f