UNPKG

8 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({}, transactionBaseJSON, { type: 'ContractTransaction' });
49 }
50}
51exports.ContractTransaction = ContractTransaction;
52
53//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbnRyYWN0VHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwREFBcUg7QUFHckgsb0NBQWlDO0FBS2pDLHVEQUF3RTtBQUN4RSx1REFBb0Q7QUFJcEQsTUFBYSxtQkFBb0IsU0FBUSxpQ0FBZSxDQUt0RCxvQ0FBMkIsQ0FBQztJQXFCNUIsWUFBbUIsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBc0I7UUFDNUYsS0FBSyxDQUFDO1lBQ0osT0FBTztZQUNQLElBQUksRUFBRSxpQ0FBZSxDQUFDLFFBQVE7WUFDOUIsVUFBVTtZQUNWLE1BQU07WUFDTixPQUFPO1lBQ1AsT0FBTztZQUNQLElBQUk7U0FDTCxDQUFDLENBQUM7UUFYYyxrQkFBYSxHQUFpQixhQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLHdCQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7UUFhdEYsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLENBQUMsRUFBRTtZQUN0QixNQUFNLElBQUksa0NBQWtCLENBQUMsdUNBQXVDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1NBQ3JGO0lBQ0gsQ0FBQztJQWxDTSxNQUFNLENBQUMsbUJBQW1CLENBQUMsT0FBbUM7UUFDbkUsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsR0FBRyxLQUFLLENBQUMsdUNBQXVDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFakYsSUFBSSxJQUFJLEtBQUssaUNBQWUsQ0FBQyxRQUFRLEVBQUU7WUFDckMsTUFBTSxJQUFJLGtDQUFrQixDQUFDLG1DQUFtQyxpQ0FBZSxDQUFDLFFBQVEsZUFBZSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ2hIO1FBRUQsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV0RyxPQUFPLElBQUksSUFBSSxDQUFDO1lBQ2QsT0FBTztZQUNQLFVBQVU7WUFDVixNQUFNO1lBQ04sT0FBTztZQUNQLE9BQU87U0FDUixDQUFDLENBQUM7SUFDTCxDQUFDO0lBb0JNLEtBQUssQ0FBQyxFQUNYLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxFQUN0QixVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFDNUIsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQ3BCLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxHQU12QjtRQUVDLE9BQU8sSUFBSyxJQUFJLENBQUMsV0FBbUIsQ0FBQztZQUNuQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsVUFBVTtZQUNWLE1BQU07WUFDTixPQUFPO1lBQ1AsT0FBTztTQUNSLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxLQUFLLENBQUMsYUFBYSxDQUFDLE9BQTZCO1FBQ3RELE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxLQUFLLENBQUMsNEJBQTRCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFOUUseUJBQ0ssbUJBQW1CLElBQ3RCLElBQUksRUFBRSxxQkFBcUIsSUFDM0I7SUFDSixDQUFDO0NBQ0Y7QUF2RUQsa0RBdUVDIiwiZmlsZSI6Im5lby1vbmUtbm9kZS1jb3JlL3NyYy90cmFuc2FjdGlvbi9Db250cmFjdFRyYW5zYWN0aW9uLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udHJhY3RUcmFuc2FjdGlvbkpTT04sIEludmFsaWRGb3JtYXRFcnJvciwgSU9IZWxwZXIsIFRyYW5zYWN0aW9uQmFzZU1vZGVsIH0gZnJvbSAnQG5lby1vbmUvY2xpZW50LWNvbW1vbic7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciB9IGZyb20gJ0BuZW8tb25lL3V0aWxzJztcbmltcG9ydCB7IERlc2VyaWFsaXplV2lyZUJhc2VPcHRpb25zLCBTZXJpYWxpemVKU09OQ29udGV4dCB9IGZyb20gJy4uL1NlcmlhbGl6YWJsZSc7XG5pbXBvcnQgeyB1dGlscyB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IFdpdG5lc3MgfSBmcm9tICcuLi9XaXRuZXNzJztcbmltcG9ydCB7IEF0dHJpYnV0ZSB9IGZyb20gJy4vYXR0cmlidXRlJztcbmltcG9ydCB7IElucHV0IH0gZnJvbSAnLi9JbnB1dCc7XG5pbXBvcnQgeyBPdXRwdXQgfSBmcm9tICcuL091dHB1dCc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJhc2UsIFRyYW5zYWN0aW9uQmFzZUFkZCB9IGZyb20gJy4vVHJhbnNhY3Rpb25CYXNlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJy4vVHJhbnNhY3Rpb25UeXBlJztcblxuZXhwb3J0IHR5cGUgQ29udHJhY3RUcmFuc2FjdGlvbkFkZCA9IFRyYW5zYWN0aW9uQmFzZUFkZDtcblxuZXhwb3J0IGNsYXNzIENvbnRyYWN0VHJhbnNhY3Rpb24gZXh0ZW5kcyBUcmFuc2FjdGlvbkJhc2U8XG4gIFRyYW5zYWN0aW9uVHlwZS5Db250cmFjdCxcbiAgQ29udHJhY3RUcmFuc2FjdGlvbkpTT04sXG4gIENvbnN0cnVjdG9yPFRyYW5zYWN0aW9uQmFzZU1vZGVsPFRyYW5zYWN0aW9uVHlwZS5Db250cmFjdCwgQXR0cmlidXRlLCBJbnB1dCwgT3V0cHV0LCBXaXRuZXNzPj5cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lIG5vLWFueVxuPihUcmFuc2FjdGlvbkJhc2VNb2RlbCBhcyBhbnkpIHtcbiAgcHVibGljIHN0YXRpYyBkZXNlcmlhbGl6ZVdpcmVCYXNlKG9wdGlvbnM6IERlc2VyaWFsaXplV2lyZUJhc2VPcHRpb25zKTogQ29udHJhY3RUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgeyB0eXBlLCB2ZXJzaW9uIH0gPSBzdXBlci5kZXNlcmlhbGl6ZVRyYW5zYWN0aW9uQmFzZVN0YXJ0V2lyZUJhc2Uob3B0aW9ucyk7XG5cbiAgICBpZiAodHlwZSAhPT0gVHJhbnNhY3Rpb25UeXBlLkNvbnRyYWN0KSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEZvcm1hdEVycm9yKGBFeHBlY3RlZCB0cmFuc2FjdGlvbiB0eXBlIHRvIGJlICR7VHJhbnNhY3Rpb25UeXBlLkNvbnRyYWN0fS4gUmVjZWl2ZWQ6ICR7dHlwZX1gKTtcbiAgICB9XG5cbiAgICBjb25zdCB7IGF0dHJpYnV0ZXMsIGlucHV0cywgb3V0cHV0cywgc2NyaXB0cyB9ID0gc3VwZXIuZGVzZXJpYWxpemVUcmFuc2FjdGlvbkJhc2VFbmRXaXJlQmFzZShvcHRpb25zKTtcblxuICAgIHJldHVybiBuZXcgdGhpcyh7XG4gICAgICB2ZXJzaW9uLFxuICAgICAgYXR0cmlidXRlcyxcbiAgICAgIGlucHV0cyxcbiAgICAgIG91dHB1dHMsXG4gICAgICBzY3JpcHRzLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNpemVFeGNsdXNpdmU6ICgpID0+IG51bWJlciA9IHV0aWxzLmxhenkoKCkgPT4gSU9IZWxwZXIuc2l6ZU9mVUludDgpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcih7IHZlcnNpb24sIGF0dHJpYnV0ZXMsIGlucHV0cywgb3V0cHV0cywgc2NyaXB0cywgaGFzaCB9OiBUcmFuc2FjdGlvbkJhc2VBZGQpIHtcbiAgICBzdXBlcih7XG4gICAgICB2ZXJzaW9uLFxuICAgICAgdHlwZTogVHJhbnNhY3Rpb25UeXBlLkNvbnRyYWN0LFxuICAgICAgYXR0cmlidXRlcyxcbiAgICAgIGlucHV0cyxcbiAgICAgIG91dHB1dHMsXG4gICAgICBzY3JpcHRzLFxuICAgICAgaGFzaCxcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLnZlcnNpb24gIT09IDApIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkRm9ybWF0RXJyb3IoYEV4cGVjdGVkIHZlcnNpb24gdG8gYmUgMC4gUmVjZWl2ZWQ6ICR7dGhpcy52ZXJzaW9ufWApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjbG9uZSh7XG4gICAgc2NyaXB0cyA9IHRoaXMuc2NyaXB0cyxcbiAgICBhdHRyaWJ1dGVzID0gdGhpcy5hdHRyaWJ1dGVzLFxuICAgIGlucHV0cyA9IHRoaXMuaW5wdXRzLFxuICAgIG91dHB1dHMgPSB0aGlzLm91dHB1dHMsXG4gIH06IHtcbiAgICByZWFkb25seSBzY3JpcHRzPzogcmVhZG9ubHkgV2l0bmVzc1tdO1xuICAgIHJlYWRvbmx5IGF0dHJpYnV0ZXM/OiByZWFkb25seSBBdHRyaWJ1dGVbXTtcbiAgICByZWFkb25seSBpbnB1dHM/OiByZWFkb25seSBJbnB1dFtdO1xuICAgIHJlYWRvbmx5IG91dHB1dHM/OiByZWFkb25seSBPdXRwdXRbXTtcbiAgfSk6IHRoaXMge1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBuby1hbnlcbiAgICByZXR1cm4gbmV3ICh0aGlzLmNvbnN0cnVjdG9yIGFzIGFueSkoe1xuICAgICAgdmVyc2lvbjogdGhpcy52ZXJzaW9uLFxuICAgICAgYXR0cmlidXRlcyxcbiAgICAgIGlucHV0cyxcbiAgICAgIG91dHB1dHMsXG4gICAgICBzY3JpcHRzLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHNlcmlhbGl6ZUpTT04oY29udGV4dDogU2VyaWFsaXplSlNPTkNvbnRleHQpOiBQcm9taXNlPENvbnRyYWN0VHJhbnNhY3Rpb25KU09OPiB7XG4gICAgY29uc3QgdHJhbnNhY3Rpb25CYXNlSlNPTiA9IGF3YWl0IHN1cGVyLnNlcmlhbGl6ZVRyYW5zYWN0aW9uQmFzZUpTT04oY29udGV4dCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4udHJhbnNhY3Rpb25CYXNlSlNPTixcbiAgICAgIHR5cGU6ICdDb250cmFjdFRyYW5zYWN0aW9uJyxcbiAgICB9O1xuICB9XG59XG4iXX0=