xrpld
Loading...
Searching...
No Matches
paychan.h
1#pragma once
2
3#include <test/jtx/Account.h>
4
5#include <xrpl/basics/Buffer.h>
6#include <xrpl/basics/Slice.h>
7#include <xrpl/basics/base_uint.h>
8#include <xrpl/basics/chrono.h>
9#include <xrpl/json/json_value.h>
10#include <xrpl/ledger/ReadView.h>
11#include <xrpl/protocol/AccountID.h>
12#include <xrpl/protocol/PublicKey.h>
13#include <xrpl/protocol/STAmount.h>
14#include <xrpl/protocol/SecretKey.h>
15
16#include <cstdint>
17#include <optional>
18
23
24json::Value
25create(
26 AccountID const& account,
27 AccountID const& to,
28 STAmount const& amount,
29 NetClock::duration const& settleDelay,
30 PublicKey const& pk,
31 std::optional<NetClock::time_point> const& cancelAfter = std::nullopt,
32 std::optional<std::uint32_t> const& dstTag = std::nullopt);
33
34inline json::Value
36 Account const& account,
37 Account const& to,
38 STAmount const& amount,
39 NetClock::duration const& settleDelay,
40 PublicKey const& pk,
41 std::optional<NetClock::time_point> const& cancelAfter = std::nullopt,
42 std::optional<std::uint32_t> const& dstTag = std::nullopt)
43{
44 return create(account.id(), to.id(), amount, settleDelay, pk, cancelAfter, dstTag);
45}
46
48fund(
49 AccountID const& account,
50 uint256 const& channel,
51 STAmount const& amount,
52 std::optional<NetClock::time_point> const& expiration = std::nullopt);
53
55claim(
56 AccountID const& account,
57 uint256 const& channel,
58 std::optional<STAmount> const& balance = std::nullopt,
59 std::optional<STAmount> const& amount = std::nullopt,
60 std::optional<Slice> const& signature = std::nullopt,
61 std::optional<PublicKey> const& pk = std::nullopt);
62
64channel(AccountID const& account, AccountID const& dst, std::uint32_t seqProxyValue);
65
66inline uint256
67channel(Account const& account, Account const& dst, std::uint32_t seqProxyValue)
68{
69 return channel(account.id(), dst.id(), seqProxyValue);
70}
71
73channelBalance(ReadView const& view, uint256 const& chan);
74
76channelAmount(ReadView const& view, uint256 const& chan);
77
78bool
79channelExists(ReadView const& view, uint256 const& chan);
80
83 PublicKey const& pk,
84 SecretKey const& sk,
85 uint256 const& channel,
86 STAmount const& authAmt);
87
88} // namespace xrpl::test::jtx::paychan
Represents a JSON value.
Definition json_value.h:117
Like std::vector<char> but better.
Definition Buffer.h:19
std::chrono::duration< rep, period > duration
Definition chrono.h:47
A public key.
Definition PublicKey.h:53
A view into a ledger.
Definition ReadView.h:41
A secret key.
Definition SecretKey.h:24
Immutable cryptographic account descriptor.
Definition jtx/Account.h:21
AccountID id() const
Returns the Account ID.
Paychan operations.
Definition paychan.cpp:28
json::Value fund(AccountID const &account, uint256 const &channel, STAmount const &amount, std::optional< NetClock::time_point > const &expiration)
Definition paychan.cpp:55
STAmount channelBalance(ReadView const &view, uint256 const &chan)
Definition paychan.cpp:104
json::Value create(AccountID const &account, AccountID const &to, STAmount const &amount, NetClock::duration const &settleDelay, PublicKey const &pk, std::optional< NetClock::time_point > const &cancelAfter, std::optional< std::uint32_t > const &dstTag)
Definition paychan.cpp:31
uint256 channel(AccountID const &account, AccountID const &dst, std::uint32_t seqProxyValue)
Definition paychan.cpp:96
json::Value claim(AccountID const &account, uint256 const &channel, std::optional< STAmount > const &balance, std::optional< STAmount > const &amount, std::optional< Slice > const &signature, std::optional< PublicKey > const &pk)
Definition paychan.cpp:72
STAmount channelAmount(ReadView const &view, uint256 const &chan)
Definition paychan.cpp:113
bool channelExists(ReadView const &view, uint256 const &chan)
Definition paychan.cpp:122
Buffer signClaimAuth(PublicKey const &pk, SecretKey const &sk, uint256 const &channel, STAmount const &authAmt)
Definition paychan.cpp:129
BaseUInt< 160, detail::AccountIDTag > AccountID
A 160-bit unsigned that uniquely identifies an account.
Definition AccountID.h:34
UInt256 uint256
Definition base_uint.h:586