@aeternity/aepp-calldata
Version:
Aeternity data serialization library
36 lines (35 loc) • 1.61 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _rlp = _interopRequireDefault(require("rlp"));
var _BaseSerializer = _interopRequireDefault(require("./BaseSerializer.cjs"));
var _BytecodeSerializer = _interopRequireDefault(require("./BytecodeSerializer.cjs"));
var _IntSerializer = _interopRequireDefault(require("./IntSerializer.cjs"));
var _int2ByteArray = require("../utils/int2ByteArray.cjs");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
class ContractBytecodeSerializer extends _BaseSerializer.default {
constructor(globalSerializer) {
super();
this._bytecodeSerializer = new _BytecodeSerializer.default(globalSerializer);
this._intSerializer = new _IntSerializer.default();
}
deserializeStream(data) {
const buffer = new Uint8Array(data);
const [fateInt, remainder] = this._intSerializer.deserializeStream(buffer.slice(1));
const overallSize = Number(fateInt);
const decoded = _rlp.default.decode(remainder.slice(0, overallSize));
const stringEncoder = new TextDecoder();
return [{
tag: (0, _int2ByteArray.byteArray2Int)(decoded[0]),
vsn: (0, _int2ByteArray.byteArray2Int)(decoded[1]),
sourceHash: (0, _int2ByteArray.byteArray2Hex)(decoded[2]),
aevmTypeInfo: decoded[3],
bytecode: this._bytecodeSerializer.deserialize(decoded[4]),
compilerVersion: stringEncoder.decode(decoded[5]),
payable: Boolean(decoded[6][0])
}, remainder.slice(overallSize)];
}
}
var _default = exports.default = ContractBytecodeSerializer;