in qldbdriver/session.go [38:55]
func (session *session) execute(ctx context.Context, fn func(txn Transaction) (interface{}, error)) (interface{}, *txnError) {
txn, err := session.startTransaction(ctx)
if err != nil {
return nil, session.wrapError(ctx, err, "")
}
result, err := fn(&transactionExecutor{ctx, txn})
if err != nil {
return nil, session.wrapError(ctx, err, *txn.id)
}
err = txn.commit(ctx)
if err != nil {
return nil, session.wrapError(ctx, err, *txn.id)
}
return result, nil
}