private async _sendExecute()

in src/Transaction.ts [130:161]


    private async _sendExecute(statement: string, parameters: any[]): Promise<ExecuteStatementResult> {
        await this._hashLock.acquire();
        try {
            let statementHash: QldbHash = QldbHash.toQldbHash(statement);

            const valueHolderList: ValueHolder[] = parameters.map((param: any) => {
                let ionBinary: Uint8Array;
                try {
                    ionBinary = dumpBinary(param);
                } catch(e) {
                    e.message = `Failed to convert parameter ${String(param)} to Ion Binary: ${e.message}`;
                    throw e;
                }
                statementHash = statementHash.dot(QldbHash.toQldbHash(ionBinary));
                const valueHolder: ValueHolder = {
                    IonBinary: ionBinary
                };
                return valueHolder;
            });

            this._txnHash = this._txnHash.dot(statementHash);

            const result: ExecuteStatementResult = await this._communicator.executeStatement(
                this._txnId,
                statement,
                valueHolderList
            );
            return result;
        } finally {
            this._hashLock.release();
        }
    }