20 #include <ripple/basics/contract.h>
21 #include <ripple/conditions/Condition.h>
22 #include <ripple/conditions/Fulfillment.h>
23 #include <ripple/conditions/impl/PreimageSha256.h>
24 #include <ripple/conditions/impl/utils.h>
29 namespace cryptoconditions {
76 auto p = parsePreamble(s, ec);
81 if (!isPrimitive(p) || !isContextSpecific(p))
104 p = parsePreamble(s, ec);
109 if (!isPrimitive(p) || !isContextSpecific(p))
121 auto cost = parseInteger<std::uint32_t>(s, p.
length, ec);
146 return std::make_unique<Condition>(type, cost, std::move(b));
172 auto const p = parsePreamble(s, ec);
178 if (!isConstructed(p) || !isContextSpecific(p))
184 if (p.length > s.
size())
190 if (s.
size() > maxSerializedCondition)