xdr/Stellar-ledger.x in stellar-base-0.21.0 vs xdr/Stellar-ledger.x in stellar-base-0.22.0
- old
+ new
@@ -304,15 +304,69 @@
{
LedgerEntryChanges txChanges; // tx level changes if any
OperationMeta operations<>; // meta for each operation
};
+struct TransactionMetaV2
+{
+ LedgerEntryChanges txChangesBefore; // tx level changes before operations
+ // are applied if any
+ OperationMeta operations<>; // meta for each operation
+ LedgerEntryChanges txChangesAfter; // tx level changes after operations are
+ // applied if any
+};
+
// this is the meta produced when applying transactions
// it does not include pre-apply updates such as fees
union TransactionMeta switch (int v)
{
case 0:
OperationMeta operations<>;
case 1:
TransactionMetaV1 v1;
+case 2:
+ TransactionMetaV2 v2;
};
+
+// This struct groups together changes on a per transaction basis
+// note however that fees and transaction application are done in separate
+// phases
+struct TransactionResultMeta
+{
+ TransactionResultPair result;
+ LedgerEntryChanges feeProcessing;
+ TransactionMeta txApplyProcessing;
+};
+
+// this represents a single upgrade that was performed as part of a ledger
+// upgrade
+struct UpgradeEntryMeta
+{
+ LedgerUpgrade upgrade;
+ LedgerEntryChanges changes;
+};
+
+struct LedgerCloseMetaV0
+{
+ LedgerHeaderHistoryEntry ledgerHeader;
+ // NB: txSet is sorted in "Hash order"
+ TransactionSet txSet;
+
+ // NB: transactions are sorted in apply order here
+ // fees for all transactions are processed first
+ // followed by applying transactions
+ TransactionResultMeta txProcessing<>;
+
+ // upgrades are applied last
+ UpgradeEntryMeta upgradesProcessing<>;
+
+ // other misc information attached to the ledger close
+ SCPHistoryEntry scpInfo<>;
+};
+
+union LedgerCloseMeta switch (int v)
+{
+case 0:
+ LedgerCloseMetaV0 v0;
+};
+
}