UNPKG

2.19 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const client_common_1 = require("@neo-one/client-common");
4const utils_1 = require("../utils");
5const TransactionBase_1 = require("./TransactionBase");
6const TransactionType_1 = require("./TransactionType");
7class ContractTransaction extends TransactionBase_1.TransactionBase(client_common_1.TransactionBaseModel) {
8 constructor({ version, attributes, inputs, outputs, scripts, hash }) {
9 super({
10 version,
11 type: TransactionType_1.TransactionType.Contract,
12 attributes,
13 inputs,
14 outputs,
15 scripts,
16 hash,
17 });
18 this.sizeExclusive = utils_1.utils.lazy(() => client_common_1.IOHelper.sizeOfUInt8);
19 if (this.version !== 0) {
20 throw new client_common_1.InvalidFormatError(`Expected version to be 0. Received: ${this.version}`);
21 }
22 }
23 static deserializeWireBase(options) {
24 const { type, version } = super.deserializeTransactionBaseStartWireBase(options);
25 if (type !== TransactionType_1.TransactionType.Contract) {
26 throw new client_common_1.InvalidFormatError(`Expected transaction type to be ${TransactionType_1.TransactionType.Contract}. Received: ${type}`);
27 }
28 const { attributes, inputs, outputs, scripts } = super.deserializeTransactionBaseEndWireBase(options);
29 return new this({
30 version,
31 attributes,
32 inputs,
33 outputs,
34 scripts,
35 });
36 }
37 clone({ scripts = this.scripts, attributes = this.attributes, inputs = this.inputs, outputs = this.outputs, }) {
38 return new this.constructor({
39 version: this.version,
40 attributes,
41 inputs,
42 outputs,
43 scripts,
44 });
45 }
46 async serializeJSON(context) {
47 const transactionBaseJSON = await super.serializeTransactionBaseJSON(context);
48 return Object.assign(Object.assign({}, transactionBaseJSON), { type: 'ContractTransaction' });
49 }
50}
51exports.ContractTransaction = ContractTransaction;
52
53//# sourceMappingURL=ContractTransaction.js.map