@aeternity/aepp-sdk
Version:
SDK for the æternity blockchain
32 lines (30 loc) • 1.25 kB
JavaScript
import { Buffer as _Buffer } from "buffer";
import BigNumber from 'bignumber.js';
import { NoSerializerFoundError, TypeError } from './errors.js';
/**
* Convert string, number, or BigNumber to byte array
* @param val - value to convert
* @param big - enables force conversion to BigNumber
* @returns Buffer
* @category utils
* @deprecated use `Buffer.from(<string>)` or `Buffer.from(<number>.toString(16), 'hex')` instead
*/
// eslint-disable-next-line import/prefer-default-export
export function toBytes(val, big = false) {
// Encode a value to bytes.
// If the value is an int it will be encoded as bytes big endian
// Raises ValueError if the input is not an int or string
if (val == null) return _Buffer.from([]);
if (Number.isInteger(val) || BigNumber.isBigNumber(val) || big) {
if (!BigNumber.isBigNumber(val)) val = new BigNumber(val);
if (!val.isInteger()) throw new TypeError(`Unexpected not integer value: ${val.toFixed()}`);
let hexString = val.toString(16);
if (hexString.length % 2 === 1) hexString = `0${hexString}`;
return _Buffer.from(hexString, 'hex');
}
if (typeof val === 'string') {
return _Buffer.from(val);
}
throw new NoSerializerFoundError();
}
//# sourceMappingURL=bytes.js.map