xrpld
Loading...
Searching...
No Matches
token.h
1#pragma once
2
3#include <test/jtx/Account.h>
4#include <test/jtx/Env.h>
5#include <test/jtx/owners.h>
6
7#include <xrpl/basics/strHex.h>
8
9#include <initializer_list>
10
11namespace xrpl::test::jtx::token {
12
14json::Value
15mint(jtx::Account const& account, std::uint32_t tokenTaxon = 0);
16
19{
20private:
22
23public:
24 explicit XferFee(std::uint16_t fee) : xferFee_(fee)
25 {
26 }
27
28 void
29 operator()(Env&, JTx& jtx) const;
30};
31
33class Issuer
34{
35private:
37
38public:
39 explicit Issuer(jtx::Account const& issue) : issuer_(issue.human())
40 {
41 }
42
43 void
44 operator()(Env&, JTx& jtx) const;
45};
46
48class Uri
49{
50private:
52
53public:
54 explicit Uri(std::string const& u) : uri_(strHex(u))
55 {
56 }
57
58 void
59 operator()(Env&, JTx& jtx) const;
60};
61
63class Amount
64{
65private:
67
68public:
69 explicit Amount(STAmount const amount) : amount_(amount)
70 {
71 }
72
73 void
74 operator()(Env&, JTx& jtx) const;
75};
76
80 jtx::Env const& env,
81 jtx::Account const& account,
82 std::uint32_t nftokenTaxon,
83 std::uint16_t flags = 0,
84 std::uint16_t xferFee = 0);
85
88getID(
89 jtx::Env const& env,
90 jtx::Account const& account,
91 std::uint32_t tokenTaxon,
92 std::uint32_t nftSeq,
93 std::uint16_t flags = 0,
94 std::uint16_t xferFee = 0);
95
98burn(jtx::Account const& account, uint256 const& nftokenID);
99
102createOffer(jtx::Account const& account, uint256 const& nftokenID, STAmount const& amount);
103
105class Owner
106{
107private:
109
110public:
111 explicit Owner(jtx::Account const& ownedBy) : owner_(ownedBy.human())
112 {
113 }
114
115 void
116 operator()(Env&, JTx& jtx) const;
117};
118
121{
122private:
124
125public:
126 explicit Expiration(std::uint32_t const& expires) : expires_(expires)
127 {
128 }
129
130 void
131 operator()(Env&, JTx& jtx) const;
132};
133
136{
137private:
139
140public:
141 explicit Destination(jtx::Account const& dest) : dest_(dest.human())
142 {
143 }
144
145 void
146 operator()(Env&, JTx& jtx) const;
147};
148
151cancelOffer(jtx::Account const& account, std::initializer_list<uint256> const& nftokenOffers = {});
152
154cancelOffer(jtx::Account const& account, std::vector<uint256> const& nftokenOffers);
155
158{
159private:
161
162public:
163 explicit RootIndex(uint256 const& index) : rootIndex_(to_string(index))
164 {
165 }
166
167 void
168 operator()(Env&, JTx& jtx) const;
169};
170
173acceptBuyOffer(jtx::Account const& account, uint256 const& offerIndex);
174
177acceptSellOffer(jtx::Account const& account, uint256 const& offerIndex);
178
182 jtx::Account const& account,
183 uint256 const& buyOfferIndex,
184 uint256 const& sellOfferIndex);
185
188{
189private:
191
192public:
193 explicit BrokerFee(STAmount const fee) : brokerFee_(fee)
194 {
195 }
196
197 void
198 operator()(Env&, JTx& jtx) const;
199};
200
203setMinter(jtx::Account const& account, jtx::Account const& minter);
204
207clearMinter(jtx::Account const& account);
208
211modify(jtx::Account const& account, uint256 const& nftokenID);
212
213} // namespace xrpl::test::jtx::token
Represents a JSON value.
Definition json_value.h:130
Immutable cryptographic account descriptor.
Definition jtx/Account.h:17
A transaction testing environment.
Definition Env.h:143
void operator()(Env &, JTx &jtx) const
Definition token.cpp:51
Amount(STAmount const amount)
Definition token.h:69
STAmount const amount_
Definition token.h:66
void operator()(Env &, JTx &jtx) const
Definition token.cpp:193
BrokerFee(STAmount const fee)
Definition token.h:193
Destination(jtx::Account const &dest)
Definition token.h:141
void operator()(Env &, JTx &jtx) const
Definition token.cpp:119
void operator()(Env &, JTx &jtx) const
Definition token.cpp:113
Expiration(std::uint32_t const &expires)
Definition token.h:126
Issuer(jtx::Account const &issue)
Definition token.h:39
void operator()(Env &, JTx &jtx) const
Definition token.cpp:39
void operator()(Env &, JTx &jtx) const
Definition token.cpp:107
Owner(jtx::Account const &ownedBy)
Definition token.h:111
void operator()(Env &, JTx &jtx) const
Definition token.cpp:153
RootIndex(uint256 const &index)
Definition token.h:163
void operator()(Env &, JTx &jtx) const
Definition token.cpp:45
Uri(std::string const &u)
Definition token.h:54
void operator()(Env &, JTx &jtx) const
Definition token.cpp:33
XferFee(std::uint16_t fee)
Definition token.h:24
json::Value clearMinter(jtx::Account const &account)
Clear any authorized minter from an account root.
Definition token.cpp:207
uint256 getID(jtx::Env const &env, jtx::Account const &issuer, std::uint32_t nfTokenTaxon, std::uint32_t nftSeq, std::uint16_t flags, std::uint16_t xferFee)
Get the NFTokenID for a particular nftSequence.
Definition token.cpp:70
json::Value brokerOffers(jtx::Account const &account, uint256 const &buyOfferIndex, uint256 const &sellOfferIndex)
Broker two NFToken offers.
Definition token.cpp:179
json::Value mint(jtx::Account const &account, std::uint32_t nfTokenTaxon)
Mint an NFToken.
Definition token.cpp:23
json::Value cancelOffer(jtx::Account const &account, std::initializer_list< uint256 > const &nftokenOffers)
Cancel NFTokenOffers.
Definition token.cpp:141
json::Value createOffer(jtx::Account const &account, uint256 const &nftokenID, STAmount const &amount)
Create an NFTokenOffer.
Definition token.cpp:96
json::Value acceptBuyOffer(jtx::Account const &account, uint256 const &offerIndex)
Accept an NFToken buy offer.
Definition token.cpp:159
json::Value acceptSellOffer(jtx::Account const &account, uint256 const &offerIndex)
Accept an NFToken sell offer.
Definition token.cpp:169
json::Value modify(jtx::Account const &account, uint256 const &nftokenID)
Modify an NFToken.
Definition token.cpp:213
json::Value setMinter(jtx::Account const &account, jtx::Account const &minter)
Set the authorized minter on an account root.
Definition token.cpp:199
json::Value burn(jtx::Account const &account, uint256 const &nftokenID)
Burn an NFToken.
Definition token.cpp:86
uint256 getNextID(jtx::Env const &env, jtx::Account const &issuer, std::uint32_t nfTokenTaxon, std::uint16_t flags, std::uint16_t xferFee)
Get the next NFTokenID that will be issued.
Definition token.cpp:57
std::string strHex(FwdIt begin, FwdIt end)
Definition strHex.h:10
std::string to_string(BaseUInt< Bits, Tag > const &a)
Definition base_uint.h:633
BaseUInt< 256 > uint256
Definition base_uint.h:562
Execution context for applying a JSON transaction.
Definition JTx.h:23