1#include <xrpl/protocol/STXChainBridge.h>
3#include <xrpl/basics/contract.h>
4#include <xrpl/json/json_value.h>
5#include <xrpl/protocol/AccountID.h>
6#include <xrpl/protocol/Issue.h>
7#include <xrpl/protocol/SField.h>
8#include <xrpl/protocol/STAccount.h>
9#include <xrpl/protocol/STBase.h>
10#include <xrpl/protocol/STObject.h>
11#include <xrpl/protocol/Serializer.h>
12#include <xrpl/protocol/jss.h>
33 Issue const& srcChainIssue,
35 Issue const& dstChainIssue)
62 "STXChainBridge can only be specified with a 'object' Json value");
66 static auto const kBridgeJson =
68 for (
auto it = v.
begin(); it != v.
end(); ++it)
71 if (!kBridgeJson.isMember(name))
80 json::Value const& lockingChainDoorStr = v[jss::LockingChainDoor];
82 json::Value const& issuingChainDoorStr = v[jss::IssuingChainDoor];
144 "{{ {} = {}, {} = {}, {} = {}, {} = {} }}",
145 sfLockingChainDoor.getName(),
147 sfLockingChainIssue.getName(),
149 sfIssuingChainDoor.getName(),
151 sfIssuingChainIssue.getName(),
169 return STI_XCHAIN_BRIDGE;
176 return (v !=
nullptr) && (*v == *
this);
201 return emplace(n, buf, std::move(*
this));
const_iterator begin() const
const_iterator end() const
std::string asString() const
Returns the unquoted string value.
A currency issued by an account.
A type which can be exported to a well known binary format.
static STBase * emplace(std::size_t n, void *buf, T &&val)
static std::unique_ptr< STXChainBridge > construct(SerialIter &, SField const &name)
STIssue issuingChainIssue_
std::string getText() const override
STAccount issuingChainDoor_
AccountID const & issuingChainDoor() const
STBase * move(std::size_t n, void *buf) override
STAccount lockingChainDoor_
json::Value getJson(JsonOptions) const override
void add(Serializer &s) const override
AccountID const & lockingChainDoor() const
STIssue lockingChainIssue_
bool isDefault() const override
STBase * copy(std::size_t n, void *buf) const override
bool isEquivalent(STBase const &t) const override
SerializedTypeID getSType() const override
Issue const & issuingChainIssue() const
STObject toSTObject() const
Issue const & lockingChainIssue() const
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Issue issueFromJson(json::Value const &v)
std::optional< AccountID > parseBase58(std::string const &s)
Parse AccountID from checked, base58 string.
BaseUInt< 160, detail::AccountIDTag > AccountID
A 160-bit unsigned that uniquely identifies an account.
XRPL_NO_SANITIZE_ADDRESS void Throw(Args &&... args)
Note, should be treated as flags that can be | and &.