UNPKG

2.19 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const client_common_1 = require("@neo-one/client-common");
4const contractParameter_1 = require("../contractParameter");
5const Serializable_1 = require("../Serializable");
6const utils_1 = require("../utils");
7class InvocationResultBase {
8 constructor({ state, gasConsumed, gasCost, stack }) {
9 this.serializeWire = Serializable_1.createSerializeWire(this.serializeWireBase.bind(this));
10 this.state = state;
11 this.gasConsumed = gasConsumed;
12 this.gasCost = gasCost;
13 this.stack = stack;
14 this.sizeExclusive = () => 0;
15 this.sizeInternal = client_common_1.utils.lazy(() => this.sizeExclusive() +
16 client_common_1.IOHelper.sizeOfUInt8 +
17 client_common_1.IOHelper.sizeOfFixed8 +
18 client_common_1.IOHelper.sizeOfFixed8 +
19 client_common_1.IOHelper.sizeOfArray(this.stack, (value) => value.size));
20 }
21 static deserializeInvocationResultWireBase(options) {
22 const { reader } = options;
23 const state = reader.readUInt8();
24 const gasConsumed = reader.readFixed8();
25 const gasCost = reader.readFixed8();
26 const stack = reader.readArray(() => contractParameter_1.deserializeContractParameterWireBase(options));
27 return {
28 state: client_common_1.assertVMState(state),
29 gasConsumed,
30 gasCost,
31 stack,
32 };
33 }
34 static deserializeWireBase(_options) {
35 throw new Error('Not Implemented');
36 }
37 static deserializeWire(options) {
38 return this.deserializeWireBase({
39 context: options.context,
40 reader: new utils_1.BinaryReader(options.buffer),
41 });
42 }
43 get size() {
44 return this.sizeInternal();
45 }
46 serializeWireBase(writer) {
47 writer.writeUInt8(this.state);
48 writer.writeFixed8(this.gasConsumed);
49 writer.writeFixed8(this.gasCost);
50 writer.writeArray(this.stack, (contractParameter) => contractParameter.serializeWireBase(writer));
51 }
52}
53exports.InvocationResultBase = InvocationResultBase;
54
55//# sourceMappingURL=InvocationResultBase.js.map