UNPKG

4.81 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const client_common_1 = require("@neo-one/client-common");
4const InvocationResultBase_1 = require("./InvocationResultBase");
5class InvocationResultSuccess extends InvocationResultBase_1.InvocationResultBase {
6 static deserializeWireBase(options) {
7 const { state, gasConsumed, gasCost, stack } = super.deserializeInvocationResultWireBase(options);
8 if (state !== client_common_1.VMState.Halt) {
9 throw new client_common_1.InvalidFormatError(`Expected VMState state to be ${client_common_1.VMState.Halt}. Received: ${state}.`);
10 }
11 return new this({ gasConsumed, gasCost, stack });
12 }
13 constructor({ gasConsumed, gasCost, stack }) {
14 super({ state: client_common_1.VMState.Halt, gasConsumed, gasCost, stack });
15 }
16 serializeJSON(context) {
17 return {
18 state: client_common_1.VMState.Halt,
19 gas_consumed: client_common_1.JSONHelper.writeFixed8(this.gasConsumed),
20 gas_cost: client_common_1.JSONHelper.writeFixed8(this.gasCost),
21 stack: this.stack.map((value) => value.serializeJSON(context)),
22 };
23 }
24}
25exports.InvocationResultSuccess = InvocationResultSuccess;
26
27//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkludm9jYXRpb25SZXN1bHRTdWNjZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMERBQThHO0FBSTlHLGlFQUE4RDtBQVE5RCxNQUFhLHVCQUF3QixTQUFRLDJDQUFrQztJQUV0RSxNQUFNLENBQUMsbUJBQW1CLENBQUMsT0FBbUM7UUFDbkUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsRyxJQUFJLEtBQUssS0FBSyx1QkFBTyxDQUFDLElBQUksRUFBRTtZQUMxQixNQUFNLElBQUksa0NBQWtCLENBQUMsZ0NBQWdDLHVCQUFPLENBQUMsSUFBSSxlQUFlLEtBQUssR0FBRyxDQUFDLENBQUM7U0FDbkc7UUFFRCxPQUFPLElBQUksSUFBSSxDQUFDLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxZQUFtQixFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUE4QjtRQUM1RSxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsdUJBQU8sQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFTSxhQUFhLENBQUMsT0FBNkI7UUFDaEQsT0FBTztZQUNMLEtBQUssRUFBRSx1QkFBTyxDQUFDLElBQUk7WUFDbkIsWUFBWSxFQUFFLDBCQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDdEQsUUFBUSxFQUFFLDBCQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDOUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQy9ELENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF2QkQsMERBdUJDIiwiZmlsZSI6Im5lby1vbmUtbm9kZS1jb3JlL3NyYy9pbnZvY2F0aW9uUmVzdWx0L0ludm9jYXRpb25SZXN1bHRTdWNjZXNzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW52YWxpZEZvcm1hdEVycm9yLCBJbnZvY2F0aW9uUmVzdWx0U3VjY2Vzc0pTT04sIEpTT05IZWxwZXIsIFZNU3RhdGUgfSBmcm9tICdAbmVvLW9uZS9jbGllbnQtY29tbW9uJztcbmltcG9ydCB7IEJOIH0gZnJvbSAnYm4uanMnO1xuaW1wb3J0IHsgQ29udHJhY3RQYXJhbWV0ZXIgfSBmcm9tICcuLi9jb250cmFjdFBhcmFtZXRlcic7XG5pbXBvcnQgeyBEZXNlcmlhbGl6ZVdpcmVCYXNlT3B0aW9ucywgU2VyaWFsaXphYmxlSlNPTiwgU2VyaWFsaXplSlNPTkNvbnRleHQgfSBmcm9tICcuLi9TZXJpYWxpemFibGUnO1xuaW1wb3J0IHsgSW52b2NhdGlvblJlc3VsdEJhc2UgfSBmcm9tICcuL0ludm9jYXRpb25SZXN1bHRCYXNlJztcblxuZXhwb3J0IGludGVyZmFjZSBJbnZvY2F0aW9uUmVzdWx0U3VjY2Vzc0FkZCB7XG4gIHJlYWRvbmx5IGdhc0NvbnN1bWVkOiBCTjtcbiAgcmVhZG9ubHkgZ2FzQ29zdDogQk47XG4gIHJlYWRvbmx5IHN0YWNrOiByZWFkb25seSBDb250cmFjdFBhcmFtZXRlcltdO1xufVxuXG5leHBvcnQgY2xhc3MgSW52b2NhdGlvblJlc3VsdFN1Y2Nlc3MgZXh0ZW5kcyBJbnZvY2F0aW9uUmVzdWx0QmFzZTxWTVN0YXRlLkhhbHQ+XG4gIGltcGxlbWVudHMgU2VyaWFsaXphYmxlSlNPTjxJbnZvY2F0aW9uUmVzdWx0U3VjY2Vzc0pTT04+IHtcbiAgcHVibGljIHN0YXRpYyBkZXNlcmlhbGl6ZVdpcmVCYXNlKG9wdGlvbnM6IERlc2VyaWFsaXplV2lyZUJhc2VPcHRpb25zKTogSW52b2NhdGlvblJlc3VsdFN1Y2Nlc3Mge1xuICAgIGNvbnN0IHsgc3RhdGUsIGdhc0NvbnN1bWVkLCBnYXNDb3N0LCBzdGFjayB9ID0gc3VwZXIuZGVzZXJpYWxpemVJbnZvY2F0aW9uUmVzdWx0V2lyZUJhc2Uob3B0aW9ucyk7XG4gICAgaWYgKHN0YXRlICE9PSBWTVN0YXRlLkhhbHQpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkRm9ybWF0RXJyb3IoYEV4cGVjdGVkIFZNU3RhdGUgc3RhdGUgdG8gYmUgJHtWTVN0YXRlLkhhbHR9LiBSZWNlaXZlZDogJHtzdGF0ZX0uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyB0aGlzKHsgZ2FzQ29uc3VtZWQsIGdhc0Nvc3QsIHN0YWNrIH0pO1xuICB9XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHsgZ2FzQ29uc3VtZWQsIGdhc0Nvc3QsIHN0YWNrIH06IEludm9jYXRpb25SZXN1bHRTdWNjZXNzQWRkKSB7XG4gICAgc3VwZXIoeyBzdGF0ZTogVk1TdGF0ZS5IYWx0LCBnYXNDb25zdW1lZCwgZ2FzQ29zdCwgc3RhY2sgfSk7XG4gIH1cblxuICBwdWJsaWMgc2VyaWFsaXplSlNPTihjb250ZXh0OiBTZXJpYWxpemVKU09OQ29udGV4dCk6IEludm9jYXRpb25SZXN1bHRTdWNjZXNzSlNPTiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXRlOiBWTVN0YXRlLkhhbHQsXG4gICAgICBnYXNfY29uc3VtZWQ6IEpTT05IZWxwZXIud3JpdGVGaXhlZDgodGhpcy5nYXNDb25zdW1lZCksXG4gICAgICBnYXNfY29zdDogSlNPTkhlbHBlci53cml0ZUZpeGVkOCh0aGlzLmdhc0Nvc3QpLFxuICAgICAgc3RhY2s6IHRoaXMuc3RhY2subWFwKCh2YWx1ZSkgPT4gdmFsdWUuc2VyaWFsaXplSlNPTihjb250ZXh0KSksXG4gICAgfTtcbiAgfVxufVxuIl19