@stellar/stellar-sdk
Version:
A library for working with the Stellar network, including communication with the Horizon and Soroban RPC servers.
63 lines (59 loc) • 2.56 kB
JavaScript
;
require('../node_modules/.pnpm/@stellar_js-xdr@4.0.0/node_modules/@stellar/js-xdr/src/int.js');
require('../node_modules/.pnpm/@stellar_js-xdr@4.0.0/node_modules/@stellar/js-xdr/src/hyper.js');
require('../node_modules/.pnpm/@stellar_js-xdr@4.0.0/node_modules/@stellar/js-xdr/src/unsigned-int.js');
require('../node_modules/.pnpm/@stellar_js-xdr@4.0.0/node_modules/@stellar/js-xdr/src/unsigned-hyper.js');
require('../node_modules/.pnpm/@stellar_js-xdr@4.0.0/node_modules/@stellar/js-xdr/src/xdr-type.js');
require('buffer');
var curr_generated = require('../base/generated/curr_generated.js');
require('@noble/hashes/sha2.js');
require('../base/signing.js');
require('../base/keypair.js');
require('base32.js');
require('../base/util/continued_fraction.js');
require('../base/util/bignumber.js');
require('../base/transaction_builder.js');
require('../base/muxed_account.js');
require('../base/scval.js');
require('../base/numbers/uint128.js');
require('../base/numbers/uint256.js');
require('../base/numbers/int128.js');
require('../base/numbers/int256.js');
var bad_response = require('./bad_response.js');
class TransactionFailedError extends bad_response.BadResponseError {
/**
* Returns the transaction- and operation-level result codes reported by
* Horizon, e.g. `{ transaction: "tx_failed", operations: ["op_underfunded"] }`.
*
* Horizon omits `operations` when the transaction failed a
* transaction-level check (e.g. `tx_bad_seq`) and no operations were
* evaluated; this accessor normalizes that to an empty array.
*
* @returns The `result_codes` object from the response's `extras`.
*/
getResultCodes() {
const { transaction, operations = [] } = this.extras().result_codes;
return { transaction, operations };
}
/**
* Decodes and returns the {@link xdr.TransactionResult} from the response's
* `extras.result_xdr`, providing structured access to per-operation results.
*
* @returns The decoded transaction result, or `null` if the response did not
* include a `result_xdr`.
* @throws If the server returned a `result_xdr` that is not valid base64-encoded
* {@link xdr.TransactionResult} XDR.
*/
getTransactionResult() {
const resultXdr = this.extras().result_xdr;
if (!resultXdr) {
return null;
}
return curr_generated.default.TransactionResult.fromXDR(resultXdr, "base64");
}
extras() {
return this.response.data.extras;
}
}
exports.TransactionFailedError = TransactionFailedError;
//# sourceMappingURL=transaction_failed.js.map