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/JTx.h>
6
7#include <xrpl/basics/base_uint.h>
8#include <xrpl/basics/strHex.h>
9#include <xrpl/json/json_value.h>
10#include <xrpl/protocol/STAmount.h>
11
12#include <cstdint>
13#include <initializer_list>
14#include <string>
15#include <vector>
16
17namespace xrpl::test::jtx::token {
18
22json::Value
23mint(jtx::Account const& account, std::uint32_t tokenTaxon = 0);
24
29{
30private:
32
33public:
34 explicit XferFee(std::uint16_t fee) : xferFee_(fee)
35 {
36 }
37
38 void
39 operator()(Env&, JTx& jtx) const;
40};
41
45class Issuer
46{
47private:
49
50public:
51 explicit Issuer(jtx::Account const& issue) : issuer_(issue.human())
52 {
53 }
54
55 void
56 operator()(Env&, JTx& jtx) const;
57};
58
62class Uri
63{
64private:
66
67public:
68 explicit Uri(std::string const& u) : uri_(strHex(u))
69 {
70 }
71
72 void
73 operator()(Env&, JTx& jtx) const;
74};
75
79class Amount
80{
81private:
83
84public:
85 explicit Amount(STAmount const amount) : amount_(amount)
86 {
87 }
88
89 void
90 operator()(Env&, JTx& jtx) const;
91};
92
98 jtx::Env const& env,
99 jtx::Account const& account,
100 std::uint32_t nftokenTaxon,
101 std::uint16_t flags = 0,
102 std::uint16_t xferFee = 0);
103
108getID(
109 jtx::Env const& env,
110 jtx::Account const& account,
111 std::uint32_t tokenTaxon,
112 std::uint32_t nftSeq,
113 std::uint16_t flags = 0,
114 std::uint16_t xferFee = 0);
115
120burn(jtx::Account const& account, uint256 const& nftokenID);
121
126createOffer(jtx::Account const& account, uint256 const& nftokenID, STAmount const& amount);
127
131class Owner
132{
133private:
135
136public:
137 explicit Owner(jtx::Account const& ownedBy) : owner_(ownedBy.human())
138 {
139 }
140
141 void
142 operator()(Env&, JTx& jtx) const;
143};
144
149{
150private:
152
153public:
154 explicit Expiration(std::uint32_t const& expires) : expires_(expires)
155 {
156 }
157
158 void
159 operator()(Env&, JTx& jtx) const;
160};
161
166{
167private:
169
170public:
171 explicit Destination(jtx::Account const& dest) : dest_(dest.human())
172 {
173 }
174
175 void
176 operator()(Env&, JTx& jtx) const;
177};
178
183cancelOffer(jtx::Account const& account, std::initializer_list<uint256> const& nftokenOffers = {});
184
186cancelOffer(jtx::Account const& account, std::vector<uint256> const& nftokenOffers);
187
192{
193private:
195
196public:
197 explicit RootIndex(uint256 const& index) : rootIndex_(to_string(index))
198 {
199 }
200
201 void
202 operator()(Env&, JTx& jtx) const;
203};
204
209acceptBuyOffer(jtx::Account const& account, uint256 const& offerIndex);
210
215acceptSellOffer(jtx::Account const& account, uint256 const& offerIndex);
216
222 jtx::Account const& account,
223 uint256 const& buyOfferIndex,
224 uint256 const& sellOfferIndex);
225
230{
231private:
233
234public:
235 explicit BrokerFee(STAmount const fee) : brokerFee_(fee)
236 {
237 }
238
239 void
240 operator()(Env&, JTx& jtx) const;
241};
242
247setMinter(jtx::Account const& account, jtx::Account const& minter);
248
253clearMinter(jtx::Account const& account);
254
259modify(jtx::Account const& account, uint256 const& nftokenID);
260
261} // namespace xrpl::test::jtx::token
Represents a JSON value.
Definition json_value.h:117
Immutable cryptographic account descriptor.
Definition jtx/Account.h:21
A transaction testing environment.
Definition Env.h:161
void operator()(Env &, JTx &jtx) const
Definition token.cpp:51
Amount(STAmount const amount)
Definition token.h:85
STAmount const amount_
Definition token.h:82
void operator()(Env &, JTx &jtx) const
Definition token.cpp:193
BrokerFee(STAmount const fee)
Definition token.h:235
Destination(jtx::Account const &dest)
Definition token.h:171
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:154
Issuer(jtx::Account const &issue)
Definition token.h:51
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:137
void operator()(Env &, JTx &jtx) const
Definition token.cpp:153
RootIndex(uint256 const &index)
Definition token.h:197
void operator()(Env &, JTx &jtx) const
Definition token.cpp:45
Uri(std::string const &u)
Definition token.h:68
void operator()(Env &, JTx &jtx) const
Definition token.cpp:33
XferFee(std::uint16_t fee)
Definition token.h:34
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:13
std::string to_string(BaseUInt< Bits, Tag > const &a)
Definition base_uint.h:651
BaseUInt< 256 > uint256
Definition base_uint.h:580
Execution context for applying a JSON transaction.
Definition JTx.h:27