TransactionMetaSet::TransactionMetaSet (uint256 const& txid, std::uint32_t ledger, T const& data, CtorHelper) : mTransactionID (txid) , mLedger (ledger) , mNodes (sfAffectedNodes, 32) { SerialIter sit (make_Slice(data)); STObject obj(sit, sfMetadata); mResult = obj.getFieldU8 (sfTransactionResult); mIndex = obj.getFieldU32 (sfTransactionIndex); mNodes = * dynamic_cast<STArray*> (&obj.getField (sfAffectedNodes)); if (obj.isFieldPresent (sfDeliveredAmount)) setDeliveredAmount (obj.getFieldAmount (sfDeliveredAmount)); }
TxMeta::TxMeta (uint256 const& txid, std::uint32_t ledger, STObject const& obj, beast::Journal j) : mTransactionID (txid) , mLedger (ledger) , mNodes (obj.getFieldArray (sfAffectedNodes)) , j_ (j) { mResult = obj.getFieldU8 (sfTransactionResult); mIndex = obj.getFieldU32 (sfTransactionIndex); auto affectedNodes = dynamic_cast <STArray const*> (obj.peekAtPField (sfAffectedNodes)); assert (affectedNodes); if (affectedNodes) mNodes = *affectedNodes; if (obj.isFieldPresent (sfDeliveredAmount)) setDeliveredAmount (obj.getFieldAmount (sfDeliveredAmount)); }