Я хочу преобразовать буфер node JS в шестнадцатеричную строку. Очевидно, что я сначала погуглил, но ни одно из предложенных решений не сработало.
Например, в этот вопрос комментарий под принятым ответом говорит, что вы должны сделать это так:
let signature4 = Buffer.from(signature3.r, 'hex') + Buffer.from(signature3.s, 'hex') + Buffer.from(signature3.v, 'hex');
Но это дает:
TypeError [ERR_INVALID_ARG_TYPE]: The "value" argument must not be of type number. Received type number
Если я go для фактического ответа, который говорит мне сделать это так:
let signature4 = signature3.r.toString('hex') + signature3.s.toString('hex') + signature3.v.toString('hex');
Я получаю эту ошибку :
RangeError: toString() radix argument must be between 2 and 36
Если я последую совету, приведенному в сообщении об ошибке, и введу число 16 следующим образом:
let signature4 = signature3.r.toString(16) + signature3.s.toString(16) + signature3.v.toString(16);
Я получу это сообщение об ошибке:
TypeError [ERR_UNKNOWN_ENCODING]: Unknown encoding: 16
Если я вместо этого передам 16 как строку:
let signature4 = signature3.r.toString('16') + signature3.s.toString('16') + signature3.v.toString('16');
Я получу то же сообщение об ошибке:
TypeError [ERR_UNKNOWN_ENCODING]: Unknown encoding: 16
Так каков текущий способ сделать это?
Я использую Node v10.18.1.