1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const client_common_1 = require("@neo-one/client-common");
|
4 | const utils_1 = require("../utils");
|
5 | const TransactionBase_1 = require("./TransactionBase");
|
6 | const TransactionType_1 = require("./TransactionType");
|
7 | class 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 | }
|
51 | exports.ContractTransaction = ContractTransaction;
|
52 |
|
53 |
|