UNPKG

@neo-one/node-blockchain-esnext-cjs

Version:

NEO•ONE NEO blockchain implementation.

30 lines (27 loc) 985 B
import { InvocationResult, InvocationResultError, InvocationResultSuccess, utils, VMState } from '@neo-one/client-core-esnext-cjs'; import { ExecuteScriptsResult } from '@neo-one/node-core-esnext-cjs'; export const wrapExecuteScripts = async (execute: (() => Promise<ExecuteScriptsResult>)): Promise<InvocationResult> => { try { const result = await execute(); if (result.state === VMState.Halt) { return new InvocationResultSuccess({ gasConsumed: result.gasConsumed, gasCost: result.gasCost, stack: result.stack, }); } return new InvocationResultError({ gasConsumed: result.gasConsumed, gasCost: result.gasCost, stack: result.stack, message: result.errorMessage === undefined ? 'Unknown Error' : result.errorMessage, }); } catch (error) { return new InvocationResultError({ gasConsumed: utils.ZERO, gasCost: utils.ZERO, stack: [], message: error.message, }); } };