В настоящее время у меня есть сгенерированный 64-байтовый открытый ключ, который был восстановлен из транзакции Ethereum.
Как преобразовать этот ключ в 33-байтовый сжатый открытый ключ? Проблема, с которой я сталкиваюсь, кажется довольно тривиальной, но я не могу найти решение! В настоящее время я работаю с javascript.
Любая помощь будет принята с благодарностью.
Есть пакет с подходящими функциями, здесь ->pubkey/eth-crypto
Видеть:
Код сжатия ниже. (Скопировать + вставить из этого файла.)
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));
}
гепарды
Ричард Хоррокс