UNPKG

12.2 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const client_common_1 = require("@neo-one/client-common");
4const client_full_common_1 = require("@neo-one/client-full-common");
5const Contract_1 = require("../Contract");
6const errors_1 = require("../errors");
7const utils_1 = require("../utils");
8const TransactionBase_1 = require("./TransactionBase");
9const TransactionType_1 = require("./TransactionType");
10class PublishTransaction extends TransactionBase_1.TransactionBase(client_common_1.TransactionBaseModel) {
11 constructor({ version, attributes, inputs, outputs, scripts, hash, contract }) {
12 super({
13 version,
14 type: TransactionType_1.TransactionType.Publish,
15 attributes,
16 inputs,
17 outputs,
18 scripts,
19 hash,
20 });
21 this.sizeExclusive = utils_1.utils.lazy(() => client_common_1.IOHelper.sizeOfUInt8 +
22 Contract_1.sizeOfContract({
23 script: this.contract.script,
24 parameterList: this.contract.parameterList,
25 name: this.contract.name,
26 codeVersion: this.contract.codeVersion,
27 author: this.contract.author,
28 email: this.contract.email,
29 description: this.contract.description,
30 publishVersion: this.version,
31 }));
32 this.contract = contract;
33 if (this.version > 1) {
34 throw new client_common_1.InvalidFormatError(`Expected version to be greater than 1. Received: ${this.version}`);
35 }
36 }
37 static deserializeWireBase(options) {
38 const { type, version } = super.deserializeTransactionBaseStartWireBase(options);
39 if (type !== TransactionType_1.TransactionType.Publish) {
40 throw new client_common_1.InvalidFormatError(`Expected transaction type to be ${TransactionType_1.TransactionType.Publish}. Received: ${type}`);
41 }
42 const contract = Contract_1.deserializeContractWireBase(Object.assign({}, options, { publishVersion: version }));
43 const { attributes, inputs, outputs, scripts } = super.deserializeTransactionBaseEndWireBase(options);
44 return new this({
45 version,
46 attributes,
47 inputs,
48 outputs,
49 scripts,
50 contract,
51 });
52 }
53 clone({ scripts = this.scripts, attributes = this.attributes, inputs = this.inputs, outputs = this.outputs, }) {
54 return new this.constructor({
55 version: this.version,
56 attributes,
57 inputs,
58 outputs,
59 scripts,
60 contract: this.contract,
61 });
62 }
63 serializeExclusiveBase(writer) {
64 client_full_common_1.serializeContractWireBase({
65 contract: this.contract,
66 writer,
67 publishVersion: this.version,
68 });
69 }
70 async serializeJSON(context) {
71 const transactionBaseJSON = await super.serializeTransactionBaseJSON(context);
72 return Object.assign({}, transactionBaseJSON, { type: 'PublishTransaction', contract: this.contract.serializeJSON(context) });
73 }
74 async verify(_options) {
75 throw new errors_1.VerifyError('Publish transactions are obsolete');
76 }
77}
78exports.PublishTransaction = PublishTransaction;
79
80//# sourceMappingURL=data:application/json;charset=utf8;base64,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Q0FBQyxRQUFRO1NBQ3hCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxzQkFBc0IsQ0FBQyxNQUFvQjtRQUNoRCw4Q0FBeUIsQ0FBQztZQUN4QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsTUFBTTtZQUNOLGNBQWMsRUFBRSxJQUFJLENBQUMsT0FBTztTQUM3QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sS0FBSyxDQUFDLGFBQWEsQ0FBQyxPQUE2QjtRQUN0RCxNQUFNLG1CQUFtQixHQUFHLE1BQU0sS0FBSyxDQUFDLDRCQUE0QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTlFLHlCQUNLLG1CQUFtQixJQUN0QixJQUFJLEVBQUUsb0JBQW9CLEVBQzFCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFDOUM7SUFDSixDQUFDO0lBRU0sS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFrQztRQUNwRCxNQUFNLElBQUksb0JBQVcsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7Q0FDRjtBQTNHRCxnREEyR0MiLCJmaWxlIjoibmVvLW9uZS1ub2RlLWNvcmUvc3JjL3RyYW5zYWN0aW9uL1B1Ymxpc2hUcmFuc2FjdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJpbmFyeVdyaXRlcixcbiAgSW52YWxpZEZvcm1hdEVycm9yLFxuICBJT0hlbHBlcixcbiAgUHVibGlzaFRyYW5zYWN0aW9uSlNPTixcbiAgVHJhbnNhY3Rpb25CYXNlTW9kZWwsXG59IGZyb20gJ0BuZW8tb25lL2NsaWVudC1jb21tb24nO1xuaW1wb3J0IHsgc2VyaWFsaXplQ29udHJhY3RXaXJlQmFzZSB9IGZyb20gJ0BuZW8tb25lL2NsaWVudC1mdWxsLWNvbW1vbic7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciB9IGZyb20gJ0BuZW8tb25lL3V0aWxzJztcbmltcG9ydCB7IENvbnRyYWN0LCBkZXNlcmlhbGl6ZUNvbnRyYWN0V2lyZUJhc2UsIHNpemVPZkNvbnRyYWN0IH0gZnJvbSAnLi4vQ29udHJhY3QnO1xuaW1wb3J0IHsgVmVyaWZ5RXJyb3IgfSBmcm9tICcuLi9lcnJvcnMnO1xuaW1wb3J0IHsgRGVzZXJpYWxpemVXaXJlQmFzZU9wdGlvbnMsIFNlcmlhbGl6ZUpTT05Db250ZXh0IH0gZnJvbSAnLi4vU2VyaWFsaXphYmxlJztcbmltcG9ydCB7IHV0aWxzIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgVmVyaWZ5U2NyaXB0UmVzdWx0IH0gZnJvbSAnLi4vdm0nO1xuaW1wb3J0IHsgV2l0bmVzcyB9IGZyb20gJy4uL1dpdG5lc3MnO1xuaW1wb3J0IHsgQXR0cmlidXRlIH0gZnJvbSAnLi9hdHRyaWJ1dGUnO1xuaW1wb3J0IHsgSW5wdXQgfSBmcm9tICcuL0lucHV0JztcbmltcG9ydCB7IE91dHB1dCB9IGZyb20gJy4vT3V0cHV0JztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQmFzZSwgVHJhbnNhY3Rpb25CYXNlQWRkLCBUcmFuc2FjdGlvblZlcmlmeU9wdGlvbnMgfSBmcm9tICcuL1RyYW5zYWN0aW9uQmFzZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICcuL1RyYW5zYWN0aW9uVHlwZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVibGlzaFRyYW5zYWN0aW9uQWRkIGV4dGVuZHMgVHJhbnNhY3Rpb25CYXNlQWRkIHtcbiAgcmVhZG9ubHkgY29udHJhY3Q6IENvbnRyYWN0O1xufVxuXG5leHBvcnQgY2xhc3MgUHVibGlzaFRyYW5zYWN0aW9uIGV4dGVuZHMgVHJhbnNhY3Rpb25CYXNlPFxuICBUcmFuc2FjdGlvblR5cGUuUHVibGlzaCxcbiAgUHVibGlzaFRyYW5zYWN0aW9uSlNPTixcbiAgQ29uc3RydWN0b3I8VHJhbnNhY3Rpb25CYXNlTW9kZWw8VHJhbnNhY3Rpb25UeXBlLlB1Ymxpc2gsIEF0dHJpYnV0ZSwgSW5wdXQsIE91dHB1dCwgV2l0bmVzcz4+XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBuby1hbnlcbj4oVHJhbnNhY3Rpb25CYXNlTW9kZWwgYXMgYW55KSB7XG4gIHB1YmxpYyBzdGF0aWMgZGVzZXJpYWxpemVXaXJlQmFzZShvcHRpb25zOiBEZXNlcmlhbGl6ZVdpcmVCYXNlT3B0aW9ucyk6IFB1Ymxpc2hUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgeyB0eXBlLCB2ZXJzaW9uIH0gPSBzdXBlci5kZXNlcmlhbGl6ZVRyYW5zYWN0aW9uQmFzZVN0YXJ0V2lyZUJhc2Uob3B0aW9ucyk7XG5cbiAgICBpZiAodHlwZSAhPT0gVHJhbnNhY3Rpb25UeXBlLlB1Ymxpc2gpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkRm9ybWF0RXJyb3IoYEV4cGVjdGVkIHRyYW5zYWN0aW9uIHR5cGUgdG8gYmUgJHtUcmFuc2FjdGlvblR5cGUuUHVibGlzaH0uIFJlY2VpdmVkOiAke3R5cGV9YCk7XG4gICAgfVxuXG4gICAgY29uc3QgY29udHJhY3QgPSBkZXNlcmlhbGl6ZUNvbnRyYWN0V2lyZUJhc2Uoe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHB1Ymxpc2hWZXJzaW9uOiB2ZXJzaW9uLFxuICAgIH0pO1xuXG4gICAgY29uc3QgeyBhdHRyaWJ1dGVzLCBpbnB1dHMsIG91dHB1dHMsIHNjcmlwdHMgfSA9IHN1cGVyLmRlc2VyaWFsaXplVHJhbnNhY3Rpb25CYXNlRW5kV2lyZUJhc2Uob3B0aW9ucyk7XG5cbiAgICByZXR1cm4gbmV3IHRoaXMoe1xuICAgICAgdmVyc2lvbixcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgICBpbnB1dHMsXG4gICAgICBvdXRwdXRzLFxuICAgICAgc2NyaXB0cyxcbiAgICAgIGNvbnRyYWN0LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IGNvbnRyYWN0OiBDb250cmFjdDtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNpemVFeGNsdXNpdmU6ICgpID0+IG51bWJlciA9IHV0aWxzLmxhenkoXG4gICAgKCkgPT5cbiAgICAgIElPSGVscGVyLnNpemVPZlVJbnQ4ICtcbiAgICAgIHNpemVPZkNvbnRyYWN0KHtcbiAgICAgICAgc2NyaXB0OiB0aGlzLmNvbnRyYWN0LnNjcmlwdCxcbiAgICAgICAgcGFyYW1ldGVyTGlzdDogdGhpcy5jb250cmFjdC5wYXJhbWV0ZXJMaXN0LFxuICAgICAgICBuYW1lOiB0aGlzLmNvbnRyYWN0Lm5hbWUsXG4gICAgICAgIGNvZGVWZXJzaW9uOiB0aGlzLmNvbnRyYWN0LmNvZGVWZXJzaW9uLFxuICAgICAgICBhdXRob3I6IHRoaXMuY29udHJhY3QuYXV0aG9yLFxuICAgICAgICBlbWFpbDogdGhpcy5jb250cmFjdC5lbWFpbCxcbiAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuY29udHJhY3QuZGVzY3JpcHRpb24sXG4gICAgICAgIHB1Ymxpc2hWZXJzaW9uOiB0aGlzLnZlcnNpb24sXG4gICAgICB9KSxcbiAgKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoeyB2ZXJzaW9uLCBhdHRyaWJ1dGVzLCBpbnB1dHMsIG91dHB1dHMsIHNjcmlwdHMsIGhhc2gsIGNvbnRyYWN0IH06IFB1Ymxpc2hUcmFuc2FjdGlvbkFkZCkge1xuICAgIHN1cGVyKHtcbiAgICAgIHZlcnNpb24sXG4gICAgICB0eXBlOiBUcmFuc2FjdGlvblR5cGUuUHVibGlzaCxcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgICBpbnB1dHMsXG4gICAgICBvdXRwdXRzLFxuICAgICAgc2NyaXB0cyxcbiAgICAgIGhhc2gsXG4gICAgfSk7XG5cbiAgICB0aGlzLmNvbnRyYWN0ID0gY29udHJhY3Q7XG5cbiAgICBpZiAodGhpcy52ZXJzaW9uID4gMSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRGb3JtYXRFcnJvcihgRXhwZWN0ZWQgdmVyc2lvbiB0byBiZSBncmVhdGVyIHRoYW4gMS4gUmVjZWl2ZWQ6ICR7dGhpcy52ZXJzaW9ufWApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjbG9uZSh7XG4gICAgc2NyaXB0cyA9IHRoaXMuc2NyaXB0cyxcbiAgICBhdHRyaWJ1dGVzID0gdGhpcy5hdHRyaWJ1dGVzLFxuICAgIGlucHV0cyA9IHRoaXMuaW5wdXRzLFxuICAgIG91dHB1dHMgPSB0aGlzLm91dHB1dHMsXG4gIH06IHtcbiAgICByZWFkb25seSBzY3JpcHRzPzogcmVhZG9ubHkgV2l0bmVzc1tdO1xuICAgIHJlYWRvbmx5IGF0dHJpYnV0ZXM/OiByZWFkb25seSBBdHRyaWJ1dGVbXTtcbiAgICByZWFkb25seSBpbnB1dHM/OiByZWFkb25seSBJbnB1dFtdO1xuICAgIHJlYWRvbmx5IG91dHB1dHM/OiByZWFkb25seSBPdXRwdXRbXTtcbiAgfSk6IHRoaXMge1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBuby1hbnlcbiAgICByZXR1cm4gbmV3ICh0aGlzLmNvbnN0cnVjdG9yIGFzIGFueSkoe1xuICAgICAgdmVyc2lvbjogdGhpcy52ZXJzaW9uLFxuICAgICAgYXR0cmlidXRlcyxcbiAgICAgIGlucHV0cyxcbiAgICAgIG91dHB1dHMsXG4gICAgICBzY3JpcHRzLFxuICAgICAgY29udHJhY3Q6IHRoaXMuY29udHJhY3QsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc2VyaWFsaXplRXhjbHVzaXZlQmFzZSh3cml0ZXI6IEJpbmFyeVdyaXRlcik6IHZvaWQge1xuICAgIHNlcmlhbGl6ZUNvbnRyYWN0V2lyZUJhc2Uoe1xuICAgICAgY29udHJhY3Q6IHRoaXMuY29udHJhY3QsXG4gICAgICB3cml0ZXIsXG4gICAgICBwdWJsaXNoVmVyc2lvbjogdGhpcy52ZXJzaW9uLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHNlcmlhbGl6ZUpTT04oY29udGV4dDogU2VyaWFsaXplSlNPTkNvbnRleHQpOiBQcm9taXNlPFB1Ymxpc2hUcmFuc2FjdGlvbkpTT04+IHtcbiAgICBjb25zdCB0cmFuc2FjdGlvbkJhc2VKU09OID0gYXdhaXQgc3VwZXIuc2VyaWFsaXplVHJhbnNhY3Rpb25CYXNlSlNPTihjb250ZXh0KTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi50cmFuc2FjdGlvbkJhc2VKU09OLFxuICAgICAgdHlwZTogJ1B1Ymxpc2hUcmFuc2FjdGlvbicsXG4gICAgICBjb250cmFjdDogdGhpcy5jb250cmFjdC5zZXJpYWxpemVKU09OKGNvbnRleHQpLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdmVyaWZ5KF9vcHRpb25zOiBUcmFuc2FjdGlvblZlcmlmeU9wdGlvbnMpOiBQcm9taXNlPHJlYWRvbmx5IFZlcmlmeVNjcmlwdFJlc3VsdFtdPiB7XG4gICAgdGhyb3cgbmV3IFZlcmlmeUVycm9yKCdQdWJsaXNoIHRyYW5zYWN0aW9ucyBhcmUgb2Jzb2xldGUnKTtcbiAgfVxufVxuIl19