UNPKG

@mavrykdynamics/taquito

Version:

High level functionality that builds upon the other packages in the Mavryk Typescript Library Suite.

67 lines (66 loc) 2.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BatchOperation = void 0; const bignumber_js_1 = require("bignumber.js"); const rpc_batch_provider_1 = require("../batch/rpc-batch-provider"); const errors_1 = require("./errors"); const operations_1 = require("./operations"); const types_1 = require("./types"); class BatchOperation extends operations_1.Operation { constructor(hash, params, source, raw, results, context) { super(hash, raw, results, context); this.params = params; this.source = source; } sumProp(arr, prop) { return arr.reduce((prev, current) => { return prop in current ? Number(current[prop]) + prev : prev; }, 0); } getOriginatedContractAddresses() { const originationOpResults = this.results.filter((x) => x.kind === 'origination'); let addresses = []; for (const res of originationOpResults) { if (res.metadata.operation_result.originated_contracts) { addresses = [...addresses, ...res.metadata.operation_result.originated_contracts]; } } return addresses; } get status() { return (this.results .filter((result) => rpc_batch_provider_1.BATCH_KINDS.indexOf(result.kind) !== -1) .map((result) => { if ((0, types_1.hasMetadataWithResult)(result)) { const opResult = result.metadata.operation_result; return opResult.status; } else { return 'unknown'; } })[0] || 'unknown'); } get fee() { return this.sumProp(this.params, 'fee'); } get gasLimit() { return this.sumProp(this.params, 'gas_limit'); } get storageLimit() { return this.sumProp(this.params, 'storage_limit'); } get consumedGas() { bignumber_js_1.default.config({ DECIMAL_PLACES: 0, ROUNDING_MODE: bignumber_js_1.default.ROUND_UP }); return new bignumber_js_1.default(this.consumedMilliGas).dividedBy(1000).toString(); } get consumedMilliGas() { return String(this.sumProp((0, errors_1.flattenOperationResult)({ contents: this.results }), 'consumed_milligas')); } get storageDiff() { return String(this.sumProp((0, errors_1.flattenOperationResult)({ contents: this.results }), 'paid_storage_size_diff')); } get errors() { return (0, errors_1.flattenErrors)({ contents: this.results }); } } exports.BatchOperation = BatchOperation;