getOfferIdFromResult method
Helper method that returns Offer ID for ManageOffer from TransactionResult Xdr. This is helpful when you need the ID of an offer to update it later.
Implementation
int? getOfferIdFromResult(int position) {
if (!this.success) {
return null;
}
XdrDataInputStream xdrInputStream =
XdrDataInputStream(base64Decode(this.resultXdr!));
XdrTransactionResult result;
try {
result = XdrTransactionResult.decode(xdrInputStream);
} catch (e) {
return null;
}
if (result.result.results[position] == null) {
return null;
}
XdrOperationType? disc =
(result.result.results[position] as XdrOperationResult)
.tr!
.discriminant;
if (disc != XdrOperationType.MANAGE_SELL_OFFER &&
disc != XdrOperationType.MANAGE_BUY_OFFER) {
return null;
}
if ((result.result.results[position] as XdrOperationResult?)
?.tr!
.manageOfferResult!
.success!
.offer!
.offer ==
null) {
return null;
}
return (result.result.results[position] as XdrOperationResult)
.tr!
.manageOfferResult!
.success!
.offer!
.offer!
.offerID
.uint64;
}