1 | ;
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const client_common_1 = require("@neo-one/client-common");
|
4 | const client_full_common_1 = require("@neo-one/client-full-common");
|
5 | const Contract_1 = require("../Contract");
|
6 | const errors_1 = require("../errors");
|
7 | const utils_1 = require("../utils");
|
8 | const TransactionBase_1 = require("./TransactionBase");
|
9 | const TransactionType_1 = require("./TransactionType");
|
10 | class 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 | }
|
78 | exports.PublishTransaction = PublishTransaction;
|
79 |
|
80 | //# sourceMappingURL=data:application/json;charset=utf8;base64,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Q0FBQyxRQUFRO1NBQ3hCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxzQkFBc0IsQ0FBQyxNQUFvQjtRQUNoRCw4Q0FBeUIsQ0FBQztZQUN4QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsTUFBTTtZQUNOLGNBQWMsRUFBRSxJQUFJLENBQUMsT0FBTztTQUM3QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sS0FBSyxDQUFDLGFBQWEsQ0FBQyxPQUE2QjtRQUN0RCxNQUFNLG1CQUFtQixHQUFHLE1BQU0sS0FBSyxDQUFDLDRCQUE0QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTlFLHlCQUNLLG1CQUFtQixJQUN0QixJQUFJLEVBQUUsb0JBQW9CLEVBQzFCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFDOUM7SUFDSixDQUFDO0lBRU0sS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFrQztRQUNwRCxNQUFNLElBQUksb0JBQVcsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7Q0FDRjtBQTNHRCxnREEyR0MiLCJmaWxlIjoibmVvLW9uZS1ub2RlLWNvcmUvc3JjL3RyYW5zYWN0aW9uL1B1Ymxpc2hUcmFuc2FjdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJpbmFyeVdyaXRlcixcbiAgSW52YWxpZEZvcm1hdEVycm9yLFxuICBJT0hlbHBlcixcbiAgUHVibGlzaFRyYW5zYWN0aW9uSlNPTixcbiAgVHJhbnNhY3Rpb25CYXNlTW9kZWwsXG59IGZyb20gJ0BuZW8tb25lL2NsaWVudC1jb21tb24nO1xuaW1wb3J0IHsgc2VyaWFsaXplQ29udHJhY3RXaXJlQmFzZSB9IGZyb20gJ0BuZW8tb25lL2NsaWVudC1mdWxsLWNvbW1vbic7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciB9IGZyb20gJ0BuZW8tb25lL3V0aWxzJztcbmltcG9ydCB7IENvbnRyYWN0LCBkZXNlcmlhbGl6ZUNvbnRyYWN0V2lyZUJhc2UsIHNpemVPZkNvbnRyYWN0IH0gZnJvbSAnLi4vQ29udHJhY3QnO1xuaW1wb3J0IHsgVmVyaWZ5RXJyb3IgfSBmcm9tICcuLi9lcnJvcnMnO1xuaW1wb3J0IHsgRGVzZXJpYWxpemVXaXJlQmFzZU9wdGlvbnMsIFNlcmlhbGl6ZUpTT05Db250ZXh0IH0gZnJvbSAnLi4vU2VyaWFsaXphYmxlJztcbmltcG9ydCB7IHV0aWxzIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgVmVyaWZ5U2NyaXB0UmVzdWx0IH0gZnJvbSAnLi4vdm0nO1xuaW1wb3J0IHsgV2l0bmVzcyB9IGZyb20gJy4uL1dpdG5lc3MnO1xuaW1wb3J0IHsgQXR0cmlidXRlIH0gZnJvbSAnLi9hdHRyaWJ1dGUnO1xuaW1wb3J0IHsgSW5wdXQgfSBmcm9tICcuL0lucHV0JztcbmltcG9ydCB7IE91dHB1dCB9IGZyb20gJy4vT3V0cHV0JztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQmFzZSwgVHJhbnNhY3Rpb25CYXNlQWRkLCBUcmFuc2FjdGlvblZlcmlmeU9wdGlvbnMgfSBmcm9tICcuL1RyYW5zYWN0aW9uQmFzZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICcuL1RyYW5zYWN0aW9uVHlwZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVibGlzaFRyYW5zYWN0aW9uQWRkIGV4dGVuZHMgVHJhbnNhY3Rpb25CYXNlQWRkIHtcbiAgcmVhZG9ubHkgY29udHJhY3Q6IENvbnRyYWN0O1xufVxuXG5leHBvcnQgY2xhc3MgUHVibGlzaFRyYW5zYWN0aW9uIGV4dGVuZHMgVHJhbnNhY3Rpb25CYXNlPFxuICBUcmFuc2FjdGlvblR5cGUuUHVibGlzaCxcbiAgUHVibGlzaFRyYW5zYWN0aW9uSlNPTixcbiAgQ29uc3RydWN0b3I8VHJhbnNhY3Rpb25CYXNlTW9kZWw8VHJhbnNhY3Rpb25UeXBlLlB1Ymxpc2gsIEF0dHJpYnV0ZSwgSW5wdXQsIE91dHB1dCwgV2l0bmVzcz4+XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBuby1hbnlcbj4oVHJhbnNhY3Rpb25CYXNlTW9kZWwgYXMgYW55KSB7XG4gIHB1YmxpYyBzdGF0aWMgZGVzZXJpYWxpemVXaXJlQmFzZShvcHRpb25zOiBEZXNlcmlhbGl6ZVdpcmVCYXNlT3B0aW9ucyk6IFB1Ymxpc2hUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgeyB0eXBlLCB2ZXJzaW9uIH0gPSBzdXBlci5kZXNlcmlhbGl6ZVRyYW5zYWN0aW9uQmFzZVN0YXJ0V2lyZUJhc2Uob3B0aW9ucyk7XG5cbiAgICBpZiAodHlwZSAhPT0gVHJhbnNhY3Rpb25UeXBlLlB1Ymxpc2gpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkRm9ybWF0RXJyb3IoYEV4cGVjdGVkIHRyYW5zYWN0aW9uIHR5cGUgdG8gYmUgJHtUcmFuc2FjdGlvblR5cGUuUHVibGlzaH0uIFJlY2VpdmVkOiAke3R5cGV9YCk7XG4gICAgfVxuXG4gICAgY29uc3QgY29udHJhY3QgPSBkZXNlcmlhbGl6ZUNvbnRyYWN0V2lyZUJhc2Uoe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHB1Ymxpc2hWZXJzaW9uOiB2ZXJzaW9uLFxuICAgIH0pO1xuXG4gICAgY29uc3QgeyBhdHRyaWJ1dGVzLCBpbnB1dHMsIG91dHB1dHMsIHNjcmlwdHMgfSA9IHN1cGVyLmRlc2VyaWFsaXplVHJhbnNhY3Rpb25CYXNlRW5kV2lyZUJhc2Uob3B0aW9ucyk7XG5cbiAgICByZXR1cm4gbmV3IHRoaXMoe1xuICAgICAgdmVyc2lvbixcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgICBpbnB1dHMsXG4gICAgICBvdXRwdXRzLFxuICAgICAgc2NyaXB0cyxcbiAgICAgIGNvbnRyYWN0LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IGNvbnRyYWN0OiBDb250cmFjdDtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNpemVFeGNsdXNpdmU6ICgpID0+IG51bWJlciA9IHV0aWxzLmxhenkoXG4gICAgKCkgPT5cbiAgICAgIElPSGVscGVyLnNpemVPZlVJbnQ4ICtcbiAgICAgIHNpemVPZkNvbnRyYWN0KHtcbiAgICAgICAgc2NyaXB0OiB0aGlzLmNvbnRyYWN0LnNjcmlwdCxcbiAgICAgICAgcGFyYW1ldGVyTGlzdDogdGhpcy5jb250cmFjdC5wYXJhbWV0ZXJMaXN0LFxuICAgICAgICBuYW1lOiB0aGlzLmNvbnRyYWN0Lm5hbWUsXG4gICAgICAgIGNvZGVWZXJzaW9uOiB0aGlzLmNvbnRyYWN0LmNvZGVWZXJzaW9uLFxuICAgICAgICBhdXRob3I6IHRoaXMuY29udHJhY3QuYXV0aG9yLFxuICAgICAgICBlbWFpbDogdGhpcy5jb250cmFjdC5lbWFpbCxcbiAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuY29udHJhY3QuZGVzY3JpcHRpb24sXG4gICAgICAgIHB1Ymxpc2hWZXJzaW9uOiB0aGlzLnZlcnNpb24sXG4gICAgICB9KSxcbiAgKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoeyB2ZXJzaW9uLCBhdHRyaWJ1dGVzLCBpbnB1dHMsIG91dHB1dHMsIHNjcmlwdHMsIGhhc2gsIGNvbnRyYWN0IH06IFB1Ymxpc2hUcmFuc2FjdGlvbkFkZCkge1xuICAgIHN1cGVyKHtcbiAgICAgIHZlcnNpb24sXG4gICAgICB0eXBlOiBUcmFuc2FjdGlvblR5cGUuUHVibGlzaCxcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgICBpbnB1dHMsXG4gICAgICBvdXRwdXRzLFxuICAgICAgc2NyaXB0cyxcbiAgICAgIGhhc2gsXG4gICAgfSk7XG5cbiAgICB0aGlzLmNvbnRyYWN0ID0gY29udHJhY3Q7XG5cbiAgICBpZiAodGhpcy52ZXJzaW9uID4gMSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRGb3JtYXRFcnJvcihgRXhwZWN0ZWQgdmVyc2lvbiB0byBiZSBncmVhdGVyIHRoYW4gMS4gUmVjZWl2ZWQ6ICR7dGhpcy52ZXJzaW9ufWApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjbG9uZSh7XG4gICAgc2NyaXB0cyA9IHRoaXMuc2NyaXB0cyxcbiAgICBhdHRyaWJ1dGVzID0gdGhpcy5hdHRyaWJ1dGVzLFxuICAgIGlucHV0cyA9IHRoaXMuaW5wdXRzLFxuICAgIG91dHB1dHMgPSB0aGlzLm91dHB1dHMsXG4gIH06IHtcbiAgICByZWFkb25seSBzY3JpcHRzPzogcmVhZG9ubHkgV2l0bmVzc1tdO1xuICAgIHJlYWRvbmx5IGF0dHJpYnV0ZXM/OiByZWFkb25seSBBdHRyaWJ1dGVbXTtcbiAgICByZWFkb25seSBpbnB1dHM/OiByZWFkb25seSBJbnB1dFtdO1xuICAgIHJlYWRvbmx5IG91dHB1dHM/OiByZWFkb25seSBPdXRwdXRbXTtcbiAgfSk6IHRoaXMge1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBuby1hbnlcbiAgICByZXR1cm4gbmV3ICh0aGlzLmNvbnN0cnVjdG9yIGFzIGFueSkoe1xuICAgICAgdmVyc2lvbjogdGhpcy52ZXJzaW9uLFxuICAgICAgYXR0cmlidXRlcyxcbiAgICAgIGlucHV0cyxcbiAgICAgIG91dHB1dHMsXG4gICAgICBzY3JpcHRzLFxuICAgICAgY29udHJhY3Q6IHRoaXMuY29udHJhY3QsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc2VyaWFsaXplRXhjbHVzaXZlQmFzZSh3cml0ZXI6IEJpbmFyeVdyaXRlcik6IHZvaWQge1xuICAgIHNlcmlhbGl6ZUNvbnRyYWN0V2lyZUJhc2Uoe1xuICAgICAgY29udHJhY3Q6IHRoaXMuY29udHJhY3QsXG4gICAgICB3cml0ZXIsXG4gICAgICBwdWJsaXNoVmVyc2lvbjogdGhpcy52ZXJzaW9uLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHNlcmlhbGl6ZUpTT04oY29udGV4dDogU2VyaWFsaXplSlNPTkNvbnRleHQpOiBQcm9taXNlPFB1Ymxpc2hUcmFuc2FjdGlvbkpTT04+IHtcbiAgICBjb25zdCB0cmFuc2FjdGlvbkJhc2VKU09OID0gYXdhaXQgc3VwZXIuc2VyaWFsaXplVHJhbnNhY3Rpb25CYXNlSlNPTihjb250ZXh0KTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi50cmFuc2FjdGlvbkJhc2VKU09OLFxuICAgICAgdHlwZTogJ1B1Ymxpc2hUcmFuc2FjdGlvbicsXG4gICAgICBjb250cmFjdDogdGhpcy5jb250cmFjdC5zZXJpYWxpemVKU09OKGNvbnRleHQpLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdmVyaWZ5KF9vcHRpb25zOiBUcmFuc2FjdGlvblZlcmlmeU9wdGlvbnMpOiBQcm9taXNlPHJlYWRvbmx5IFZlcmlmeVNjcmlwdFJlc3VsdFtdPiB7XG4gICAgdGhyb3cgbmV3IFZlcmlmeUVycm9yKCdQdWJsaXNoIHRyYW5zYWN0aW9ucyBhcmUgb2Jzb2xldGUnKTtcbiAgfVxufVxuIl19
|