Actualmente tengo una clave pública de 64 bytes generada que se recuperó de una transacción de Ethereum.
¿Cómo convierto esta clave en una clave pública comprimida de 33 bytes? ¡El problema que tengo parece bastante trivial, pero por mi vida no puedo encontrar una solución! Actualmente estoy trabajando con javascript.
Cualquier ayuda sería muy apreciada.
Hay un paquete que contiene funciones adecuadas, aquí ->pubkey/eth-crypto
Ver:
El código de compresión está debajo. (Copiar + pegar de este archivo).
var _secp256k = require('secp256k1');
function compress(startsWith04) {
// add trailing 04 if not done before
var testBuffer = Buffer.from(startsWith04, 'hex');
if (testBuffer.length === 64) startsWith04 = '04' + startsWith04;
return (0, _util.uint8ArrayToHex)((0, _secp256k.publicKeyConvert)((0, _util.hexToUnit8Array)(startsWith04), true));
}
guepardo
Richard Horrocks