neo-convertor
Version:
A tool to convert neo smart contract data to human-readable one
56 lines (55 loc) • 1.89 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
class UintVariable {
constructor(bits) {
this.equals = (other) => {
let longer, shorter;
if (other.bits.length > this.bits.length) {
longer = other.bits;
shorter = this.bits;
}
else {
longer = this.bits;
shorter = other.bits;
}
return longer.every((bit, index) => bit === (shorter[index] || 0));
};
this.toString = () => {
var s = "";
for (var i = this.bits.length * 32 - 4; i >= 0; i -= 4)
s += ((this.bits[i >>> 5] >>> (i % 32)) & 0xf).toString(16);
return s;
};
if (typeof bits === 'number') {
if (bits <= 0 || bits % 32 !== 0) {
throw new RangeError();
}
this.bits = new Uint32Array(bits / 32);
}
else if (bits instanceof Uint8Array) {
if (bits.length === 0 || bits.length % 4 !== 0) {
throw new RangeError();
}
if (bits.byteOffset % 4 === 0) {
this.bits = new Uint32Array(bits.buffer, bits.byteOffset, bits.length / 4);
}
else {
var bits_new = new Uint8Array(bits);
this.bits = new Uint32Array(bits_new.buffer);
}
}
else if (bits instanceof Uint32Array) {
this.bits = bits;
}
else if (bits instanceof Array) {
if (bits.length === 0) {
throw new RangeError();
}
this.bits = new Uint32Array(bits);
}
else {
this.bits = new Uint32Array(0);
}
}
}
exports.UintVariable = UintVariable;