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