@okxweb3/coin-base
Version:
A base package for @ok/coin-*
62 lines • 1.81 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.unpadBuffer = exports.stripZeros = exports.setLengthRight = exports.setLengthLeft = exports.zeros = exports.assertIsBuffer = void 0;
const assertIsBuffer = function (input) {
if (!Buffer.isBuffer(input)) {
const msg = `This method only supports Buffer but input was: ${input}`;
throw new Error(msg);
}
};
exports.assertIsBuffer = assertIsBuffer;
const zeros = function (bytes) {
return Buffer.allocUnsafe(bytes).fill(0);
};
exports.zeros = zeros;
const setLength = function (msg, length, right) {
const buf = (0, exports.zeros)(length);
if (right) {
if (msg.length < length) {
msg.copy(buf);
return buf;
}
return msg.slice(0, length);
}
else {
if (msg.length < length) {
msg.copy(buf, length - msg.length);
return buf;
}
return msg.slice(-length);
}
};
const setLengthLeft = function (msg, length) {
if (!Buffer.isBuffer(msg)) {
msg = Buffer.from(msg);
}
return setLength(msg, length, false);
};
exports.setLengthLeft = setLengthLeft;
const setLengthRight = function (msg, length) {
if (!Buffer.isBuffer(msg)) {
msg = Buffer.from(msg);
}
return setLength(msg, length, true);
};
exports.setLengthRight = setLengthRight;
const stripZeros = function (a) {
let first = a[0];
while (a.length > 0 && first.toString() === '0') {
a = a.slice(1);
first = a[0];
}
return a;
};
exports.stripZeros = stripZeros;
const unpadBuffer = function (a) {
if (!Buffer.isBuffer(a)) {
a = Buffer.from(a);
}
return (0, exports.stripZeros)(a);
};
exports.unpadBuffer = unpadBuffer;
//# sourceMappingURL=util.js.map