20 #include <ripple/protocol/impl/STVar.h>
22 #include <ripple/basics/contract.h>
23 #include <ripple/protocol/STAccount.h>
24 #include <ripple/protocol/STAmount.h>
25 #include <ripple/protocol/STArray.h>
26 #include <ripple/protocol/STBase.h>
27 #include <ripple/protocol/STBitString.h>
28 #include <ripple/protocol/STBlob.h>
29 #include <ripple/protocol/STCurrency.h>
30 #include <ripple/protocol/STInteger.h>
31 #include <ripple/protocol/STIssue.h>
32 #include <ripple/protocol/STObject.h>
33 #include <ripple/protocol/STPathSet.h>
34 #include <ripple/protocol/STVector256.h>
35 #include <ripple/protocol/STXChainBridge.h>
36 #include <ripple/protocol/XChainAttestations.h>
53 if (other.
p_ !=
nullptr)
110 :
STVar(STI_NOTPRESENT, name)
117 Throw<std::runtime_error>(
"Maximum nesting depth of STVar exceeded");
118 switch (name.fieldType)
121 construct<STBase>(name);
124 construct<STUInt8>(sit, name);
127 construct<STUInt16>(sit, name);
130 construct<STUInt32>(sit, name);
133 construct<STUInt64>(sit, name);
136 construct<STAmount>(sit, name);
139 construct<STUInt128>(sit, name);
142 construct<STUInt160>(sit, name);
145 construct<STUInt256>(sit, name);
148 construct<STVector256>(sit, name);
151 construct<STBlob>(sit, name);
154 construct<STAccount>(sit, name);
157 construct<STPathSet>(sit, name);
160 construct<STObject>(sit, name, depth);
163 construct<STArray>(sit, name, depth);
166 construct<STIssue>(sit, name);
168 case STI_XCHAIN_BRIDGE:
169 construct<STXChainBridge>(sit, name);
172 construct<STCurrency>(sit, name);
175 Throw<std::runtime_error>(
"Unknown object type");
181 assert((
id == STI_NOTPRESENT) || (
id == name.fieldType));
185 construct<STBase>(name);
188 construct<STUInt8>(name);
191 construct<STUInt16>(name);
194 construct<STUInt32>(name);
197 construct<STUInt64>(name);
200 construct<STAmount>(name);
203 construct<STUInt128>(name);
206 construct<STUInt160>(name);
209 construct<STUInt256>(name);
212 construct<STVector256>(name);
215 construct<STBlob>(name);
218 construct<STAccount>(name);
221 construct<STPathSet>(name);
224 construct<STObject>(name);
227 construct<STArray>(name);
230 construct<STIssue>(name);
232 case STI_XCHAIN_BRIDGE:
233 construct<STXChainBridge>(name);
236 construct<STCurrency>(name);
239 Throw<std::runtime_error>(
"Unknown object type");