20 #include <ripple/rpc/impl/GRPCHelpers.h>
33 template <
class T,
class L>
43 if constexpr (std::is_integral_v<typename T::value_type>)
45 getProto()->set_value(from[field]);
50 getProto()->set_value(v.data(), v.size());
64 getProto()->set_value(
65 reinterpret_cast<const char*
>(data.data()), data.size());
79 for (
size_t i = 0; i < vec.
size(); ++i)
82 getProto()->set_value(elt.
data(), elt.
size());
96 getProto()->mutable_value()->set_address(
125 auto proto = getProto()->mutable_value();
126 proto->set_code(cur.data(), cur.size());
131 template <
class T,
class R>
135 R
const& populateProto,
144 for (
auto it = arr.begin(); it != arr.end(); ++it)
146 populateProto(*it, *getProto());
156 [&to]() {
return to.mutable_clear_flag(); }, from,
sfClearFlag);
164 [&to]() {
return to.mutable_domain(); }, from,
sfDomain);
172 [&to]() {
return to.mutable_email_hash(); }, from,
sfEmailHash);
180 [&to]() {
return to.mutable_message_key(); }, from,
sfMessageKey);
188 [&to]() {
return to.mutable_set_flag(); }, from,
sfSetFlag);
196 [&to]() {
return to.mutable_transfer_rate(); }, from,
sfTransferRate);
204 [&to]() {
return to.mutable_tick_size(); }, from,
sfTickSize);
212 [&to]() {
return to.mutable_expiration(); }, from,
sfExpiration);
220 [&to]() {
return to.mutable_offer_sequence(); }, from,
sfOfferSequence);
228 [&to]() {
return to.mutable_taker_gets(); }, from,
sfTakerGets);
236 [&to]() {
return to.mutable_taker_pays(); }, from,
sfTakerPays);
244 [&to]() {
return to.mutable_destination(); }, from,
sfDestination);
252 [&to]() {
return to.mutable_check_id(); }, from,
sfCheckID);
260 [&to]() {
return to.mutable_amount(); }, from,
sfAmount);
268 [&to]() {
return to.mutable_deliver_min(); }, from,
sfDeliverMin);
276 [&to]() {
return to.mutable_send_max(); }, from,
sfSendMax);
284 [&to]() {
return to.mutable_delivered_amount(); },
294 [&to]() {
return to.mutable_destination_tag(); },
304 [&to]() {
return to.mutable_invoice_id(); }, from,
sfInvoiceID);
312 [&to]() {
return to.mutable_authorize(); }, from,
sfAuthorize);
320 [&to]() {
return to.mutable_unauthorize(); }, from,
sfUnauthorize);
335 [&to]() {
return to.mutable_cancel_after(); }, from,
sfCancelAfter);
343 [&to]() {
return to.mutable_finish_after(); }, from,
sfFinishAfter);
351 [&to]() {
return to.mutable_condition(); }, from,
sfCondition);
359 [&to]() {
return to.mutable_fulfillment(); }, from,
sfFulfillment);
367 [&to]() {
return to.mutable_channel(); }, from,
sfPayChannel);
375 [&to]() {
return to.mutable_balance(); }, from,
sfBalance);
383 [&to]() {
return to.mutable_payment_channel_signature(); },
393 [&to]() {
return to.mutable_public_key(); }, from,
sfPublicKey);
401 [&to]() {
return to.mutable_settle_delay(); }, from,
sfSettleDelay);
409 [&to]() {
return to.mutable_regular_key(); }, from,
sfRegularKey);
417 [&to]() {
return to.mutable_signer_quorum(); }, from,
sfSignerQuorum);
425 [&to]() {
return to.mutable_count(); }, from,
sfTicketCount);
433 [&to]() {
return to.mutable_limit_amount(); }, from,
sfLimitAmount);
440 [&to]() {
return to.mutable_quality_in(); }, from,
sfQualityIn);
448 [&to]() {
return to.mutable_quality_out(); }, from,
sfQualityOut);
456 [&to]() {
return to.mutable_account(); }, from,
sfAccount);
474 [&to]() {
return to.mutable_signing_public_key(); },
484 [&to]() {
return to.mutable_transaction_signature(); },
494 [&to]() {
return to.mutable_flags(); }, from,
sfFlags);
502 [&to]() {
return to.mutable_ledger_sequence(); },
512 [&to]() {
return to.mutable_validator_to_disable(); },
522 [&to]() {
return to.mutable_validator_to_re_enable(); },
532 [&to]() {
return to.mutable_last_ledger_sequence(); },
542 [&to]() {
return to.mutable_source_tag(); }, from,
sfSourceTag);
550 [&to]() {
return to.mutable_account_transaction_id(); },
560 [&to]() {
return to.mutable_memo_data(); }, from,
sfMemoData);
568 [&to]() {
return to.mutable_memo_format(); }, from,
sfMemoFormat);
576 [&to]() {
return to.mutable_memo_type(); }, from,
sfMemoType);
584 [&to]() {
return to.mutable_sequence(); }, from,
sfSequence);
592 [&to]() {
return to.mutable_amendment(); }, from,
sfAmendment);
600 [&to]() {
return to.mutable_close_time(); }, from,
sfCloseTime);
608 [&to]() {
return to.mutable_signer_weight(); }, from,
sfSignerWeight);
616 [&to]() {
return to.add_amendments(); }, from,
sfAmendments);
624 [&to]() {
return to.mutable_owner_count(); }, from,
sfOwnerCount);
632 [&to]() {
return to.mutable_previous_transaction_id(); },
642 [&to]() {
return to.mutable_previous_transaction_ledger_sequence(); },
652 [&to]() {
return to.mutable_low_limit(); }, from,
sfLowLimit);
660 [&to]() {
return to.mutable_high_limit(); }, from,
sfHighLimit);
668 [&to]() {
return to.mutable_low_node(); }, from,
sfLowNode);
676 [&to]() {
return to.mutable_high_node(); }, from,
sfHighNode);
684 [&to]() {
return to.mutable_low_quality_in(); }, from,
sfLowQualityIn);
692 [&to]() {
return to.mutable_low_quality_out(); },
702 [&to]() {
return to.mutable_high_quality_in(); },
712 [&to]() {
return to.mutable_high_quality_out(); },
722 [&to]() {
return to.mutable_book_directory(); }, from,
sfBookDirectory);
730 [&to]() {
return to.mutable_book_node(); }, from,
sfBookNode);
738 [&to]() {
return to.mutable_owner_node(); }, from,
sfOwnerNode);
746 [&to]() {
return to.mutable_signer_list_id(); }, from,
sfSignerListID);
754 [&to]() {
return to.mutable_ticket_sequence(); },
778 [&to]() {
return to.mutable_root_index(); }, from,
sfRootIndex);
786 [&to]() {
return to.mutable_index_next(); }, from,
sfIndexNext);
794 [&to]() {
return to.mutable_index_previous(); }, from,
sfIndexPrevious);
802 [&to]() {
return to.mutable_taker_pays_currency(); },
812 [&to]() {
return to.mutable_taker_pays_issuer(); },
822 [&to]() {
return to.mutable_taker_gets_currency(); },
832 [&to]() {
return to.mutable_taker_gets_issuer(); },
842 [&to]() {
return to.mutable_destination_node(); },
852 [&to]() {
return to.mutable_base_fee(); }, from,
sfBaseFee);
860 [&to]() {
return to.mutable_reference_fee_units(); },
870 [&to]() {
return to.mutable_reserve_base(); }, from,
sfReserveBase);
878 [&to]() {
return to.mutable_reserve_increment(); },
888 [&to]() {
return to.add_signer_entries(); },
889 [](
auto& innerObj,
auto& innerProto) {
903 [&to]() {
return to.add_disabled_validators(); },
904 [](
auto& innerObj,
auto& innerProto) {
918 [&to]() {
return to.add_memos(); },
919 [](
auto& innerObj,
auto& innerProto) {
934 [&to]() {
return to.add_signers(); },
935 [](
auto& innerObj,
auto& innerProto) {
950 [&to]() {
return to.add_majorities(); },
951 [](
auto innerObj,
auto innerProto) {
966 org::xrpl::rpc::v1::TransactionResult::RESULT_TYPE_TEC);
971 org::xrpl::rpc::v1::TransactionResult::RESULT_TYPE_TEF);
976 org::xrpl::rpc::v1::TransactionResult::RESULT_TYPE_TEL);
981 org::xrpl::rpc::v1::TransactionResult::RESULT_TYPE_TEM);
986 org::xrpl::rpc::v1::TransactionResult::RESULT_TYPE_TER);
991 org::xrpl::rpc::v1::TransactionResult::RESULT_TYPE_TES);
1200 for (
auto it = pathset.
begin(); it < pathset.
end(); ++it)
1202 STPath const& path = *it;
1204 org::xrpl::rpc::v1::Payment_Path* protoPath = to.add_paths();
1206 for (
auto it2 = path.begin(); it2 != path.end(); ++it2)
1208 org::xrpl::rpc::v1::Payment_PathElement* protoElement =
1209 protoPath->add_elements();
1217 protoElement->mutable_currency()->set_name(
1223 protoElement->mutable_issuer()->set_address(
1230 protoElement->mutable_account()->set_address(
1522 org::xrpl::rpc::v1::AffectedNode& proto,
1528 proto.set_ledger_entry_type(
1529 org::xrpl::rpc::v1::LEDGER_ENTRY_TYPE_ACCOUNT_ROOT);
1532 proto.set_ledger_entry_type(
1533 org::xrpl::rpc::v1::LEDGER_ENTRY_TYPE_DIRECTORY_NODE);
1536 proto.set_ledger_entry_type(
1537 org::xrpl::rpc::v1::LEDGER_ENTRY_TYPE_RIPPLE_STATE);
1540 proto.set_ledger_entry_type(
1541 org::xrpl::rpc::v1::LEDGER_ENTRY_TYPE_SIGNER_LIST);
1544 proto.set_ledger_entry_type(
1545 org::xrpl::rpc::v1::LEDGER_ENTRY_TYPE_OFFER);
1548 proto.set_ledger_entry_type(
1549 org::xrpl::rpc::v1::LEDGER_ENTRY_TYPE_LEDGER_HASHES);
1552 proto.set_ledger_entry_type(
1553 org::xrpl::rpc::v1::LEDGER_ENTRY_TYPE_AMENDMENTS);
1556 proto.set_ledger_entry_type(
1557 org::xrpl::rpc::v1::LEDGER_ENTRY_TYPE_FEE_SETTINGS);
1560 proto.set_ledger_entry_type(
1561 org::xrpl::rpc::v1::LEDGER_ENTRY_TYPE_ESCROW);
1564 proto.set_ledger_entry_type(
1565 org::xrpl::rpc::v1::LEDGER_ENTRY_TYPE_PAY_CHANNEL);
1568 proto.set_ledger_entry_type(
1569 org::xrpl::rpc::v1::LEDGER_ENTRY_TYPE_CHECK);
1572 proto.set_ledger_entry_type(
1573 org::xrpl::rpc::v1::LEDGER_ENTRY_TYPE_DEPOSIT_PREAUTH);
1576 proto.set_ledger_entry_type(
1577 org::xrpl::rpc::v1::LEDGER_ENTRY_TYPE_NEGATIVE_UNL);
1580 proto.set_ledger_entry_type(
1581 org::xrpl::rpc::v1::LEDGER_ENTRY_TYPE_TICKET);
1650 convert(*getProto(), data, lgrType);
1678 to.set_transaction_index(from->getIndex());
1680 convert(*to.mutable_transaction_result(), from->getResultTER());
1681 to.mutable_transaction_result()->set_result(
1684 if (from->hasDeliveredAmount())
1685 convert(*to.mutable_delivered_amount(), from->getDeliveredAmount());
1687 STArray& nodes = from->getNodes();
1688 for (
auto it = nodes.
begin(); it != nodes.
end(); ++it)
1691 org::xrpl::rpc::v1::AffectedNode* node = to.add_affected_nodes();
1695 node->set_ledger_index(ledgerIndex.
data(), ledgerIndex.
size());
1706 return node->mutable_modified_node()
1707 ->mutable_final_fields();
1714 return node->mutable_modified_node()
1715 ->mutable_previous_fields();
1723 *node->mutable_modified_node(), obj);
1730 return node->mutable_created_node()->mutable_new_fields();
1740 return node->mutable_deleted_node()->mutable_final_fields();
1750 org::xrpl::rpc::v1::QueueData& to,
1755 to.set_txn_count(from.
size());
1759 boost::optional<std::uint32_t> lowestSeq;
1760 boost::optional<std::uint32_t> highestSeq;
1761 boost::optional<std::uint32_t> lowestTicket;
1762 boost::optional<std::uint32_t> highestTicket;
1763 bool anyAuthChanged =
false;
1766 for (
auto const& tx : from)
1768 org::xrpl::rpc::v1::QueuedTransaction& qt = *to.add_transactions();
1770 if (tx.seqProxy.isSeq())
1772 qt.mutable_sequence()->set_value(tx.seqProxy.value());
1775 lowestSeq = tx.seqProxy.value();
1776 highestSeq = tx.seqProxy.value();
1780 qt.mutable_ticket()->set_value(tx.seqProxy.value());
1783 lowestTicket = tx.seqProxy.value();
1784 highestTicket = tx.seqProxy.value();
1787 qt.set_fee_level(tx.feeLevel.fee());
1789 qt.mutable_last_ledger_sequence()->set_value(*tx.lastValid);
1791 qt.mutable_fee()->set_drops(tx.consequences.fee().drops());
1793 tx.consequences.potentialSpend() + tx.consequences.fee();
1794 qt.mutable_max_spend_drops()->set_drops(spend.drops());
1795 totalSpend += spend;
1796 bool const authChanged = tx.consequences.isBlocker();
1798 anyAuthChanged =
true;
1799 qt.set_auth_change(authChanged);
1803 to.set_sequence_count(seqCount);
1805 to.set_ticket_count(ticketCount);
1807 to.set_lowest_sequence(*lowestSeq);
1809 to.set_highest_sequence(*highestSeq);
1811 to.set_lowest_ticket(*lowestTicket);
1813 to.set_highest_ticket(*highestTicket);
1815 to.set_auth_change_queued(anyAuthChanged);
1816 to.mutable_max_spend_drops_total()->set_drops(totalSpend.
drops());
1822 org::xrpl::rpc::v1::Transaction& to,
1855 case TxType::ttPAYMENT:
1856 convert(*to.mutable_payment(), fromObj);
1858 case TxType::ttESCROW_CREATE:
1859 convert(*to.mutable_escrow_create(), fromObj);
1861 case TxType::ttESCROW_FINISH:
1862 convert(*to.mutable_escrow_finish(), fromObj);
1864 case TxType::ttACCOUNT_SET:
1865 convert(*to.mutable_account_set(), fromObj);
1867 case TxType::ttESCROW_CANCEL:
1868 convert(*to.mutable_escrow_cancel(), fromObj);
1870 case TxType::ttREGULAR_KEY_SET:
1871 convert(*to.mutable_set_regular_key(), fromObj);
1873 case TxType::ttOFFER_CREATE:
1874 convert(*to.mutable_offer_create(), fromObj);
1876 case TxType::ttOFFER_CANCEL:
1877 convert(*to.mutable_offer_cancel(), fromObj);
1879 case TxType::ttSIGNER_LIST_SET:
1880 convert(*to.mutable_signer_list_set(), fromObj);
1882 case TxType::ttPAYCHAN_CREATE:
1883 convert(*to.mutable_payment_channel_create(), fromObj);
1885 case TxType::ttPAYCHAN_FUND:
1886 convert(*to.mutable_payment_channel_fund(), fromObj);
1888 case TxType::ttPAYCHAN_CLAIM:
1889 convert(*to.mutable_payment_channel_claim(), fromObj);
1891 case TxType::ttCHECK_CREATE:
1892 convert(*to.mutable_check_create(), fromObj);
1894 case TxType::ttCHECK_CASH:
1895 convert(*to.mutable_check_cash(), fromObj);
1897 case TxType::ttCHECK_CANCEL:
1898 convert(*to.mutable_check_cancel(), fromObj);
1900 case TxType::ttDEPOSIT_PREAUTH:
1901 convert(*to.mutable_deposit_preauth(), fromObj);
1903 case TxType::ttTRUST_SET:
1904 convert(*to.mutable_trust_set(), fromObj);
1906 case TxType::ttACCOUNT_DELETE:
1907 convert(*to.mutable_account_delete(), fromObj);
1909 case TxType::ttTICKET_CREATE:
1910 convert(*to.mutable_ticket_create(), fromObj);
void populateTakerPaysCurrency(T &to, STObject const &from)
void populatePaymentChannelSignature(T &to, STObject const &from)
void populateIndexNext(T &to, STObject const &from)
const SF_U32 sfHighQualityIn(access, STI_UINT32, 16, "HighQualityIn")
void populateLowQualityOut(T &to, STObject const &from)
void populateProtoAmount(T const &getProto, STObject const &from, SF_Amount const &field)
const STBase & peekAtField(SField const &field) const
void populateDisabledValidators(T &to, STObject const &from)
const STArray & getFieldArray(SField const &field) const
const SF_Account sfRegularKey(access, STI_ACCOUNT, 8, "RegularKey")
const SF_U32 sfTicketCount(access, STI_UINT32, 40, "TicketCount")
void populatePublicKey(T &to, STObject const &from)
void populateTakerPaysIssuer(T &to, STObject const &from)
void populateBaseFee(T &to, STObject const &from)
virtual SerializedTypeID getSType() const
const SF_U64 sfIndexNext(access, STI_UINT64, 1, "IndexNext")
const SField sfPreviousFields(access, STI_OBJECT, 6, "PreviousFields")
void populateReserveBase(T &to, STObject const &from)
void populateProtoVLasString(T const &getProto, STObject const &from, SF_Blob const &field)
void populateAmount(T &to, STObject const &from)
void populateSourceTag(T &to, STObject const &from)
void populateExpiration(T &to, STObject const &from)
A field with a type known at compile time.
void populateSignerEntries(T &to, STObject const &from)
std::vector< STPath >::const_iterator end() const
const SF_U32 sfPreviousTxnLgrSeq(access, STI_UINT32, 5, "PreviousTxnLgrSeq", SField::sMD_DeleteFinal)
const SF_U32 sfQualityIn(access, STI_UINT32, 20, "QualityIn")
const SF_U16 sfLedgerEntryType(access, STI_UINT16, 1, "LedgerEntryType", SField::sMD_Never)
const SF_U256 sfLedgerIndex(access, STI_HASH256, 6, "LedgerIndex")
void populateSigners(T &to, STObject const &from)
const SField sfSigners(access, STI_ARRAY, 3, "Signers", SField::sMD_Default, SField::notSigning)
void populateTicketSequence(T &to, STObject const &from)
void populateValidatorToDisable(T &to, STObject const &from)
const STVector256 & getFieldV256(SField const &field) const
const SF_Blob sfMemoType(access, STI_VL, 12, "MemoType")
void populateMemoType(T &to, STObject const &from)
constexpr value_type drops() const
Returns the number of drops.
void populateHighLimit(T &to, STObject const &from)
const SF_Blob sfSigningPubKey(access, STI_VL, 3, "SigningPubKey")
void populateBookNode(T &to, STObject const &from)
void populateAccount(T &to, STObject const &from)
const SF_Amount sfDeliveredAmount(access, STI_AMOUNT, 18, "DeliveredAmount")
const SF_U32 sfSignerQuorum(access, STI_UINT32, 35, "SignerQuorum")
const SF_Blob sfMessageKey(access, STI_VL, 2, "MessageKey")
const SF_U32 sfSequence(access, STI_UINT32, 4, "Sequence")
const SF_Account sfAccount(access, STI_ACCOUNT, 1, "Account")
const SF_U32 sfFlags(access, STI_UINT32, 2, "Flags")
const SF_U160 sfTakerPaysIssuer(access, STI_HASH160, 2, "TakerPaysIssuer")
const SField sfNewFields(access, STI_OBJECT, 8, "NewFields")
void populateMemos(T &to, STObject const &from)
const SField sfMajorities(access, STI_ARRAY, 16, "Majorities")
std::string toBase58(AccountID const &v)
Convert AccountID to base58 checked string.
void populateLimitAmount(T &to, STObject const &from)
void populateFee(T &to, STObject const &from)
void populateProtoVec256(T const &getProto, STObject const &from, SF_Vec256 const &field)
const SF_Amount sfTakerPays(access, STI_AMOUNT, 4, "TakerPays")
std::string transToken(TER code)
void populateOwner(T &to, STObject const &from)
void populateClearFlag(T &to, STObject const &from)
void populateFields(T const &getProto, STObject &obj, SField const &field, uint16_t lgrType)
void populateFulfillment(T &to, STObject const &from)
const SF_Account sfUnauthorize(access, STI_ACCOUNT, 6, "Unauthorize")
void populateMajorities(T &to, STObject const &from)
void populateRootIndex(T &to, STObject const &from)
Currency const & getCurrency() const
void populateDomain(T &to, STObject const &from)
void populateTransactionSignature(T &to, STObject const &from)
void populateQualityIn(T &to, STObject const &from)
std::string to_string(ListDisposition disposition)
Blob getFieldVL(SField const &field) const
const SF_U64 sfOwnerNode(access, STI_UINT64, 4, "OwnerNode")
const SField sfSigner(access, STI_OBJECT, 16, "Signer")
void populateMessageKey(T &to, STObject const &from)
const SField sfDisabledValidators(access, STI_ARRAY, 17, "DisabledValidators")
const SF_U160 sfTakerGetsCurrency(access, STI_HASH160, 3, "TakerGetsCurrency")
const SF_U256 sfPayChannel(access, STI_HASH256, 22, "Channel")
void populateSettleDelay(T &to, STObject const &from)
const SF_Amount sfAmount(access, STI_AMOUNT, 1, "Amount")
const SField sfSignerEntries(access, STI_ARRAY, 4, "SignerEntries")
void populateValidatorToReEnable(T &to, STObject const &from)
uint160 getFieldH160(SField const &field) const
void populateLowQualityIn(T &to, STObject const &from)
const SF_U32 sfOwnerCount(access, STI_UINT32, 13, "OwnerCount")
void populateDeliverMin(T &to, STObject const &from)
const SField sfFinalFields(access, STI_OBJECT, 7, "FinalFields")
const SField sfModifiedNode(access, STI_OBJECT, 5, "ModifiedNode")
const SF_U32 sfReserveBase(access, STI_UINT32, 31, "ReserveBase")
const SF_Amount sfLimitAmount(access, STI_AMOUNT, 3, "LimitAmount")
const SF_Amount sfHighLimit(access, STI_AMOUNT, 7, "HighLimit")
void populateFlags(T &to, STObject const &from)
const SF_U32 sfFinishAfter(access, STI_UINT32, 37, "FinishAfter")
void populateCheckID(T &to, STObject const &from)
void populateCondition(T &to, STObject const &from)
const SF_Blob sfSignature(access, STI_VL, 6, "Signature", SField::sMD_Default, SField::notSigning)
void populateFirstLedgerSequence(T &to, STObject const &from)
void populateOfferSequence(T &to, STObject const &from)
void populateFinishAfter(T &to, STObject const &from)
const SF_U256 sfAccountTxnID(access, STI_HASH256, 9, "AccountTxnID")
void populatePreviousTransactionID(T &to, STObject const &from)
const SF_Amount sfLowLimit(access, STI_AMOUNT, 6, "LowLimit")
const SField sfMajority(access, STI_OBJECT, 18, "Majority")
constexpr static std::size_t size()
const SF_U32 sfDestinationTag(access, STI_UINT32, 14, "DestinationTag")
const SF_Blob sfMemoData(access, STI_VL, 13, "MemoData")
const SF_U64 sfIndexPrevious(access, STI_UINT64, 2, "IndexPrevious")
const SF_Blob sfFulfillment(access, STI_VL, 16, "Fulfillment")
const SF_U32 sfLastLedgerSequence(access, STI_UINT32, 27, "LastLedgerSequence")
void convert(org::xrpl::rpc::v1::TransactionResult &to, TER from)
void populateNewFields(T const &getProto, STObject &obj, uint16_t lgrType)
void populateDestinationTag(T &to, STObject const &from)
void populateHighQualityIn(T &to, STObject const &from)
const SF_Account sfOwner(access, STI_ACCOUNT, 2, "Owner")
const SF_U64 sfHighNode(access, STI_UINT64, 8, "HighNode")
void populateSignerQuorum(T &to, STObject const &from)
void populateProtoPrimitive(L const &getProto, STObject const &from, TypedField< T > const &field)
const SF_U256 sfBookDirectory(access, STI_HASH256, 16, "BookDirectory")
void populateDeliveredAmount(T &to, STObject const &from)
const SF_Amount sfSendMax(access, STI_AMOUNT, 9, "SendMax")
AccountID getAccountID(SField const &field) const
const SF_U256 sfAmendment(access, STI_HASH256, 19, "Amendment")
const SF_U32 sfSignerListID(access, STI_UINT32, 38, "SignerListID")
void setLedgerEntryType(org::xrpl::rpc::v1::AffectedNode &proto, std::uint16_t lgrType)
const SF_U64 sfDestinationNode(access, STI_UINT64, 9, "DestinationNode")
void populateProtoCurrency(T const &getProto, STObject const &from, SF_U160 const &field)
AccountID const & getIssuerID() const
AccountID const & getAccountID() const
const SF_Blob sfTxnSignature(access, STI_VL, 4, "TxnSignature", SField::sMD_Default, SField::notSigning)
const SF_U16 sfTransactionType(access, STI_UINT16, 2, "TransactionType")
void populatePreviousFields(T const &getProto, STObject &obj, uint16_t lgrType)
void populateTransferRate(T &to, STObject const &from)
const SF_U32 sfReferenceFeeUnits(access, STI_UINT32, 30, "ReferenceFeeUnits")
void populatePreviousTransactionLedgerSequence(T &to, STObject const &from)
const SField sfSignerEntry(access, STI_OBJECT, 11, "SignerEntry")
void populateReserveIncrement(T &to, STObject const &from)
void populateUnauthorize(T &to, STObject const &from)
const SF_U32 sfLowQualityOut(access, STI_UINT32, 19, "LowQualityOut")
void populateDestinationNode(T &to, STObject const &from)
void populateMemoFormat(T &to, STObject const &from)
const SField sfCreatedNode(access, STI_OBJECT, 3, "CreatedNode")
void populateCancelAfter(T &to, STObject const &from)
const SF_U32 sfSourceTag(access, STI_UINT32, 3, "SourceTag")
std::vector< STPath >::const_iterator begin() const
const SF_Vec256 sfIndexes(access, STI_VECTOR256, 1, "Indexes", SField::sMD_Never)
std::uint16_t getFieldU16(SField const &field) const
void populateTakerPays(T &to, STObject const &from)
const SF_U32 sfExpiration(access, STI_UINT32, 10, "Expiration")
const SF_U32 sfFirstLedgerSequence(access, STI_UINT32, 26, "FirstLedgerSequence")
const SF_Amount sfFee(access, STI_AMOUNT, 8, "Fee")
void populateChannel(T &to, STObject const &from)
const SF_U32 sfQualityOut(access, STI_UINT32, 21, "QualityOut")
void populateAmendment(T &to, STObject const &from)
void populateProtoAccount(T const &getProto, STObject const &from, SF_Account const &field)
void populateDestination(T &to, STObject const &from)
void populateBalance(T &to, STObject const &from)
void populateTakerGets(T &to, STObject const &from)
SField const & getFName() const
const SF_Blob sfValidatorToReEnable(access, STI_VL, 21, "ValidatorToReEnable")
const SF_U32 sfTicketSequence(access, STI_UINT32, 41, "TicketSequence")
const SField sfMemo(access, STI_OBJECT, 10, "Memo")
const SF_Vec256 sfHashes(access, STI_VECTOR256, 2, "Hashes")
void populateCloseTime(T &to, STObject const &from)
void populateTakerGetsIssuer(T &to, STObject const &from)
void populateSendMax(T &to, STObject const &from)
const SF_Blob sfPublicKey(access, STI_VL, 1, "PublicKey")
void populateSignerWeight(T &to, STObject const &from)
const SF_U16 sfSignerWeight(access, STI_UINT16, 3, "SignerWeight")
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
void populateLastLedgerSequence(T &to, STObject const &from)
void populateSetFlag(T &to, STObject const &from)
void populateAuthorize(T &to, STObject const &from)
const SF_U32 sfLowQualityIn(access, STI_UINT32, 18, "LowQualityIn")
const SF_Amount sfBalance(access, STI_AMOUNT, 2, "Balance")
const SF_U160 sfTakerPaysCurrency(access, STI_HASH160, 1, "TakerPaysCurrency")
const SF_Amount sfDeliverMin(access, STI_AMOUNT, 10, "DeliverMin")
const SF_U32 sfOfferSequence(access, STI_UINT32, 25, "OfferSequence")
void populateSequence(T &to, STObject const &from)
STBase & getField(SField const &field)
void populateIndexes(T &to, STObject const &from)
const SF_U32 sfReserveIncrement(access, STI_UINT32, 32, "ReserveIncrement")
bool isFieldPresent(SField const &field) const
void populateSignerListID(T &to, STObject const &from)
void populateHighQualityOut(T &to, STObject const &from)
void populateFinalFields(T const &getProto, STObject &obj, uint16_t lgrType)
void populateIndexPrevious(T &to, STObject const &from)
const SF_U32 sfClearFlag(access, STI_UINT32, 34, "ClearFlag")
const SF_Blob sfCondition(access, STI_VL, 17, "Condition")
const SField sfPaths(access, STI_PATHSET, 1, "Paths")
const SF_U32 sfCloseTime(access, STI_UINT32, 7, "CloseTime")
const SField sfMemos(access, STI_ARRAY, 9, "Memos")
void populateMemoData(T &to, STObject const &from)
const SF_U32 sfSettleDelay(access, STI_UINT32, 39, "SettleDelay")
void populateInvoiceID(T &to, STObject const &from)
const SF_Amount sfTakerGets(access, STI_AMOUNT, 5, "TakerGets")
const SF_Account sfDestination(access, STI_ACCOUNT, 3, "Destination")
const SF_U256 sfCheckID(access, STI_HASH256, 24, "CheckID")
const SF_U256 sfRootIndex(access, STI_HASH256, 8, "RootIndex", SField::sMD_Always)
const SF_U32 sfTransferRate(access, STI_UINT32, 11, "TransferRate")
const SF_Blob sfValidatorToDisable(access, STI_VL, 20, "ValidatorToDisable")
void populateHighNode(T &to, STObject const &from)
const SF_U64 sfLowNode(access, STI_UINT64, 7, "LowNode")
void populateLowNode(T &to, STObject const &from)
@ ltDIR_NODE
Directory node.
void populateProtoArray(T const &getProto, R const &populateProto, STObject const &from, SField const &outerField, SField const &innerField)
const SF_Vec256 sfAmendments(access, STI_VECTOR256, 3, "Amendments")
const SF_U64 sfBookNode(access, STI_UINT64, 3, "BookNode")
void populateSigningPublicKey(T &to, STObject const &from)
void populateBookDirectory(T &to, STObject const &from)
const SF_U64 sfBaseFee(access, STI_UINT64, 5, "BaseFee")
void populateAccountTransactionID(T &to, STObject const &from)
void populateTicketCount(T &to, STObject const &from)
const SF_Account sfAuthorize(access, STI_ACCOUNT, 5, "Authorize")
const SField sfDeletedNode(access, STI_OBJECT, 4, "DeletedNode")
void populateReferenceFeeUnits(T &to, STObject const &from)
void populateOwnerCount(T &to, STObject const &from)
void populateLowLimit(T &to, STObject const &from)
void populateRegularKey(T &to, STObject const &from)
STPathSet const & getFieldPathSet(SField const &field) const
void populateHashes(T &to, STObject const &from)
void populateTakerGetsCurrency(T &to, STObject const &from)
void populateAmendments(T &to, STObject const &from)
const SF_U32 sfHighQualityOut(access, STI_UINT32, 17, "HighQualityOut")
STAmount const & getFieldAmount(SField const &field) const
const SF_U256 sfPreviousTxnID(access, STI_HASH256, 5, "PreviousTxnID", SField::sMD_DeleteFinal)
const SF_U32 sfCancelAfter(access, STI_UINT32, 36, "CancelAfter")
bool isTemMalformed(TER x)
const SF_U128 sfEmailHash(access, STI_HASH128, 1, "EmailHash")
const SF_U32 sfSetFlag(access, STI_UINT32, 33, "SetFlag")
void populateOwnerNode(T &to, STObject const &from)
const SF_U8 sfTickSize(access, STI_UINT8, 16, "TickSize")
const SF_Blob sfMemoFormat(access, STI_VL, 14, "MemoFormat")
const SF_U256 sfInvoiceID(access, STI_HASH256, 17, "InvoiceID")
void populateEmailHash(T &to, STObject const &from)
uint256 getFieldH256(SField const &field) const
const SField sfDisabledValidator(access, STI_OBJECT, 19, "DisabledValidator")
const SF_U160 sfTakerGetsIssuer(access, STI_HASH160, 4, "TakerGetsIssuer")
void populateTickSize(T &to, STObject const &from)
void populateQualityOut(T &to, STObject const &from)
const SF_Blob sfDomain(access, STI_VL, 7, "Domain")