Skip to main content

xrpl_wasm_stdlib/
sfield.rs

1#![allow(non_upper_case_globals)]
2
3use crate::core::ledger_objects::LedgerObjectFieldGetter;
4use crate::core::ledger_objects::array_object::{Array, Object};
5use crate::core::types::account_id::AccountID;
6use crate::core::types::amount::Amount;
7use crate::core::types::blob::StandardBlob;
8use crate::core::types::currency::Currency;
9use crate::core::types::issue::Issue;
10
11use crate::core::types::uint::{Hash128, Hash160, Hash192, Hash256};
12use core::marker::PhantomData;
13
14/// A type-safe wrapper for XRPL serialized field codes.
15///
16/// This struct encodes both the field code and the expected type as const generics,
17/// allowing the compiler to automatically infer the correct type when calling `get_field`.
18///
19/// # Example
20///
21/// ```rust,no_run
22/// use xrpl_wasm_stdlib::core::ledger_objects::ledger_object;
23/// use xrpl_wasm_stdlib::sfield;
24///
25/// // Type is automatically inferred from the SField constant
26/// let flags = ledger_object::get_field(0, sfield::Flags).unwrap();  // u32
27/// let balance = ledger_object::get_field(0, sfield::Balance).unwrap();  // u64
28/// ```
29#[derive(Copy, Clone)]
30pub struct SField<T: LedgerObjectFieldGetter, const CODE: i32> {
31    _phantom: PhantomData<T>,
32}
33
34impl<T: LedgerObjectFieldGetter, const CODE: i32> SField<T, CODE> {
35    /// Creates a new SField constant.
36    ///
37    /// This is a const function that can be used to initialize SField constants.
38    pub const fn new() -> Self {
39        SField {
40            _phantom: PhantomData,
41        }
42    }
43}
44
45impl<T: LedgerObjectFieldGetter, const CODE: i32> From<SField<T, CODE>> for i32 {
46    fn from(_: SField<T, CODE>) -> Self {
47        CODE
48    }
49}
50
51impl<T: LedgerObjectFieldGetter, const CODE: i32> Default for SField<T, CODE> {
52    fn default() -> Self {
53        Self::new()
54    }
55}
56
57pub const Invalid: SField<u8, -1> = SField::new();
58pub const Generic: SField<u8, 0> = SField::new();
59pub const hash: SField<u8, -1> = SField::new();
60pub const index: SField<u8, 0> = SField::new();
61
62// Placeholder SField constants for array and object types
63// These types don't have FieldGetter implementations but are represented as SField<u8, CODE>
64pub const LedgerEntryType: SField<u16, 65537> = SField::new();
65pub const TransactionType: SField<u16, 65538> = SField::new();
66pub const SignerWeight: SField<u16, 65539> = SField::new();
67pub const TransferFee: SField<u16, 65540> = SField::new();
68pub const TradingFee: SField<u16, 65541> = SField::new();
69pub const DiscountedFee: SField<u16, 65542> = SField::new();
70pub const Version: SField<u16, 65552> = SField::new();
71pub const HookStateChangeCount: SField<u16, 65553> = SField::new();
72pub const HookEmitCount: SField<u16, 65554> = SField::new();
73pub const HookExecutionIndex: SField<u16, 65555> = SField::new();
74pub const HookApiVersion: SField<u16, 65556> = SField::new();
75pub const LedgerFixType: SField<u16, 65557> = SField::new();
76pub const ManagementFeeRate: SField<u16, 65558> = SField::new();
77pub const NetworkID: SField<u32, 131073> = SField::new();
78pub const Flags: SField<u32, 131074> = SField::new();
79pub const SourceTag: SField<u32, 131075> = SField::new();
80pub const Sequence: SField<u32, 131076> = SField::new();
81pub const PreviousTxnLgrSeq: SField<u32, 131077> = SField::new();
82pub const LedgerSequence: SField<u32, 131078> = SField::new();
83pub const CloseTime: SField<u32, 131079> = SField::new();
84pub const ParentCloseTime: SField<u32, 131080> = SField::new();
85pub const SigningTime: SField<u32, 131081> = SField::new();
86pub const Expiration: SField<u32, 131082> = SField::new();
87pub const TransferRate: SField<u32, 131083> = SField::new();
88pub const WalletSize: SField<u32, 131084> = SField::new();
89pub const OwnerCount: SField<u32, 131085> = SField::new();
90pub const DestinationTag: SField<u32, 131086> = SField::new();
91pub const LastUpdateTime: SField<u32, 131087> = SField::new();
92pub const HighQualityIn: SField<u32, 131088> = SField::new();
93pub const HighQualityOut: SField<u32, 131089> = SField::new();
94pub const LowQualityIn: SField<u32, 131090> = SField::new();
95pub const LowQualityOut: SField<u32, 131091> = SField::new();
96pub const QualityIn: SField<u32, 131092> = SField::new();
97pub const QualityOut: SField<u32, 131093> = SField::new();
98pub const StampEscrow: SField<u32, 131094> = SField::new();
99pub const BondAmount: SField<u32, 131095> = SField::new();
100pub const LoadFee: SField<u32, 131096> = SField::new();
101pub const OfferSequence: SField<u32, 131097> = SField::new();
102pub const FirstLedgerSequence: SField<u32, 131098> = SField::new();
103pub const LastLedgerSequence: SField<u32, 131099> = SField::new();
104pub const TransactionIndex: SField<u32, 131100> = SField::new();
105pub const OperationLimit: SField<u32, 131101> = SField::new();
106pub const ReferenceFeeUnits: SField<u32, 131102> = SField::new();
107pub const ReserveBase: SField<u32, 131103> = SField::new();
108pub const ReserveIncrement: SField<u32, 131104> = SField::new();
109pub const SetFlag: SField<u32, 131105> = SField::new();
110pub const ClearFlag: SField<u32, 131106> = SField::new();
111pub const SignerQuorum: SField<u32, 131107> = SField::new();
112pub const CancelAfter: SField<u32, 131108> = SField::new();
113pub const FinishAfter: SField<u32, 131109> = SField::new();
114pub const SignerListID: SField<u32, 131110> = SField::new();
115pub const SettleDelay: SField<u32, 131111> = SField::new();
116pub const TicketCount: SField<u32, 131112> = SField::new();
117pub const TicketSequence: SField<u32, 131113> = SField::new();
118pub const NFTokenTaxon: SField<u32, 131114> = SField::new();
119pub const MintedNFTokens: SField<u32, 131115> = SField::new();
120pub const BurnedNFTokens: SField<u32, 131116> = SField::new();
121pub const HookStateCount: SField<u32, 131117> = SField::new();
122pub const EmitGeneration: SField<u32, 131118> = SField::new();
123pub const VoteWeight: SField<u32, 131120> = SField::new();
124pub const FirstNFTokenSequence: SField<u32, 131122> = SField::new();
125pub const OracleDocumentID: SField<u32, 131123> = SField::new();
126pub const PermissionValue: SField<u32, 131124> = SField::new();
127pub const MutableFlags: SField<u32, 131125> = SField::new();
128pub const StartDate: SField<u32, 131126> = SField::new();
129pub const PaymentInterval: SField<u32, 131127> = SField::new();
130pub const GracePeriod: SField<u32, 131128> = SField::new();
131pub const PreviousPaymentDueDate: SField<u32, 131129> = SField::new();
132pub const NextPaymentDueDate: SField<u32, 131130> = SField::new();
133pub const PaymentRemaining: SField<u32, 131131> = SField::new();
134pub const PaymentTotal: SField<u32, 131132> = SField::new();
135pub const LoanSequence: SField<u32, 131133> = SField::new();
136pub const CoverRateMinimum: SField<u32, 131134> = SField::new();
137pub const CoverRateLiquidation: SField<u32, 131135> = SField::new();
138pub const OverpaymentFee: SField<u32, 131136> = SField::new();
139pub const InterestRate: SField<u32, 131137> = SField::new();
140pub const LateInterestRate: SField<u32, 131138> = SField::new();
141pub const CloseInterestRate: SField<u32, 131139> = SField::new();
142pub const OverpaymentInterestRate: SField<u32, 131140> = SField::new();
143pub const ExtensionComputeLimit: SField<u32, 131141> = SField::new();
144pub const ExtensionSizeLimit: SField<u32, 131142> = SField::new();
145pub const GasPrice: SField<u32, 131143> = SField::new();
146pub const ComputationAllowance: SField<u32, 131144> = SField::new();
147pub const GasUsed: SField<u32, 131145> = SField::new();
148pub const IndexNext: SField<u64, 196609> = SField::new();
149pub const IndexPrevious: SField<u64, 196610> = SField::new();
150pub const BookNode: SField<u64, 196611> = SField::new();
151pub const OwnerNode: SField<u64, 196612> = SField::new();
152pub const BaseFee: SField<u64, 196613> = SField::new();
153pub const ExchangeRate: SField<u64, 196614> = SField::new();
154pub const LowNode: SField<u64, 196615> = SField::new();
155pub const HighNode: SField<u64, 196616> = SField::new();
156pub const DestinationNode: SField<u64, 196617> = SField::new();
157pub const Cookie: SField<u64, 196618> = SField::new();
158pub const ServerVersion: SField<u64, 196619> = SField::new();
159pub const NFTokenOfferNode: SField<u64, 196620> = SField::new();
160pub const EmitBurden: SField<u64, 196621> = SField::new();
161pub const HookOn: SField<u64, 196624> = SField::new();
162pub const HookInstructionCount: SField<u64, 196625> = SField::new();
163pub const HookReturnCode: SField<u64, 196626> = SField::new();
164pub const ReferenceCount: SField<u64, 196627> = SField::new();
165pub const XChainClaimID: SField<u64, 196628> = SField::new();
166pub const XChainAccountCreateCount: SField<u64, 196629> = SField::new();
167pub const XChainAccountClaimCount: SField<u64, 196630> = SField::new();
168pub const AssetPrice: SField<u64, 196631> = SField::new();
169pub const MaximumAmount: SField<u64, 196632> = SField::new();
170pub const OutstandingAmount: SField<u64, 196633> = SField::new();
171pub const MPTAmount: SField<u64, 196634> = SField::new();
172pub const IssuerNode: SField<u64, 196635> = SField::new();
173pub const SubjectNode: SField<u64, 196636> = SField::new();
174pub const LockedAmount: SField<u64, 196637> = SField::new();
175pub const VaultNode: SField<u64, 196638> = SField::new();
176pub const LoanBrokerNode: SField<u64, 196639> = SField::new();
177pub const EmailHash: SField<Hash128, 262145> = SField::new();
178pub const LedgerHash: SField<Hash256, 327681> = SField::new();
179pub const ParentHash: SField<Hash256, 327682> = SField::new();
180pub const TransactionHash: SField<Hash256, 327683> = SField::new();
181pub const AccountHash: SField<Hash256, 327684> = SField::new();
182pub const PreviousTxnID: SField<Hash256, 327685> = SField::new();
183pub const LedgerIndex: SField<Hash256, 327686> = SField::new();
184pub const WalletLocator: SField<Hash256, 327687> = SField::new();
185pub const RootIndex: SField<Hash256, 327688> = SField::new();
186pub const AccountTxnID: SField<Hash256, 327689> = SField::new();
187pub const NFTokenID: SField<Hash256, 327690> = SField::new();
188pub const EmitParentTxnID: SField<Hash256, 327691> = SField::new();
189pub const EmitNonce: SField<Hash256, 327692> = SField::new();
190pub const EmitHookHash: SField<Hash256, 327693> = SField::new();
191pub const AMMID: SField<Hash256, 327694> = SField::new();
192pub const BookDirectory: SField<Hash256, 327696> = SField::new();
193pub const InvoiceID: SField<Hash256, 327697> = SField::new();
194pub const Nickname: SField<Hash256, 327698> = SField::new();
195pub const Amendment: SField<Hash256, 327699> = SField::new();
196pub const Digest: SField<Hash256, 327701> = SField::new();
197pub const Channel: SField<Hash256, 327702> = SField::new();
198pub const ConsensusHash: SField<Hash256, 327703> = SField::new();
199pub const CheckID: SField<Hash256, 327704> = SField::new();
200pub const ValidatedHash: SField<Hash256, 327705> = SField::new();
201pub const PreviousPageMin: SField<Hash256, 327706> = SField::new();
202pub const NextPageMin: SField<Hash256, 327707> = SField::new();
203pub const NFTokenBuyOffer: SField<Hash256, 327708> = SField::new();
204pub const NFTokenSellOffer: SField<Hash256, 327709> = SField::new();
205pub const HookStateKey: SField<Hash256, 327710> = SField::new();
206pub const HookHash: SField<Hash256, 327711> = SField::new();
207pub const HookNamespace: SField<Hash256, 327712> = SField::new();
208pub const HookSetTxnID: SField<Hash256, 327713> = SField::new();
209pub const DomainID: SField<Hash256, 327714> = SField::new();
210pub const VaultID: SField<Hash256, 327715> = SField::new();
211pub const ParentBatchID: SField<Hash256, 327716> = SField::new();
212pub const LoanBrokerID: SField<Hash256, 327717> = SField::new();
213pub const LoanID: SField<Hash256, 327718> = SField::new();
214pub const Amount: SField<Amount, 393217> = SField::new();
215pub const Balance: SField<Amount, 393218> = SField::new();
216pub const LimitAmount: SField<Amount, 393219> = SField::new();
217pub const TakerPays: SField<Amount, 393220> = SField::new();
218pub const TakerGets: SField<Amount, 393221> = SField::new();
219pub const LowLimit: SField<Amount, 393222> = SField::new();
220pub const HighLimit: SField<Amount, 393223> = SField::new();
221pub const Fee: SField<Amount, 393224> = SField::new();
222pub const SendMax: SField<Amount, 393225> = SField::new();
223pub const DeliverMin: SField<Amount, 393226> = SField::new();
224pub const Amount2: SField<Amount, 393227> = SField::new();
225pub const BidMin: SField<Amount, 393228> = SField::new();
226pub const BidMax: SField<Amount, 393229> = SField::new();
227pub const MinimumOffer: SField<Amount, 393232> = SField::new();
228pub const RippleEscrow: SField<Amount, 393233> = SField::new();
229pub const DeliveredAmount: SField<Amount, 393234> = SField::new();
230pub const NFTokenBrokerFee: SField<Amount, 393235> = SField::new();
231pub const BaseFeeDrops: SField<Amount, 393238> = SField::new();
232pub const ReserveBaseDrops: SField<Amount, 393239> = SField::new();
233pub const ReserveIncrementDrops: SField<Amount, 393240> = SField::new();
234pub const LPTokenOut: SField<Amount, 393241> = SField::new();
235pub const LPTokenIn: SField<Amount, 393242> = SField::new();
236pub const EPrice: SField<Amount, 393243> = SField::new();
237pub const Price: SField<Amount, 393244> = SField::new();
238pub const SignatureReward: SField<Amount, 393245> = SField::new();
239pub const MinAccountCreateAmount: SField<Amount, 393246> = SField::new();
240pub const LPTokenBalance: SField<Amount, 393247> = SField::new();
241pub const PublicKey: SField<StandardBlob, 458753> = SField::new();
242pub const MessageKey: SField<StandardBlob, 458754> = SField::new();
243pub const SigningPubKey: SField<StandardBlob, 458755> = SField::new();
244pub const TxnSignature: SField<StandardBlob, 458756> = SField::new();
245pub const URI: SField<StandardBlob, 458757> = SField::new();
246pub const Signature: SField<StandardBlob, 458758> = SField::new();
247pub const Domain: SField<StandardBlob, 458759> = SField::new();
248pub const FundCode: SField<StandardBlob, 458760> = SField::new();
249pub const RemoveCode: SField<StandardBlob, 458761> = SField::new();
250pub const ExpireCode: SField<StandardBlob, 458762> = SField::new();
251pub const CreateCode: SField<StandardBlob, 458763> = SField::new();
252pub const MemoType: SField<StandardBlob, 458764> = SField::new();
253pub const MemoData: SField<StandardBlob, 458765> = SField::new();
254pub const MemoFormat: SField<StandardBlob, 458766> = SField::new();
255pub const Fulfillment: SField<StandardBlob, 458768> = SField::new();
256pub const Condition: SField<StandardBlob, 458769> = SField::new();
257pub const MasterSignature: SField<StandardBlob, 458770> = SField::new();
258pub const UNLModifyValidator: SField<StandardBlob, 458771> = SField::new();
259pub const ValidatorToDisable: SField<StandardBlob, 458772> = SField::new();
260pub const ValidatorToReEnable: SField<StandardBlob, 458773> = SField::new();
261pub const HookStateData: SField<StandardBlob, 458774> = SField::new();
262pub const HookReturnString: SField<StandardBlob, 458775> = SField::new();
263pub const HookParameterName: SField<StandardBlob, 458776> = SField::new();
264pub const HookParameterValue: SField<StandardBlob, 458777> = SField::new();
265pub const DIDDocument: SField<StandardBlob, 458778> = SField::new();
266pub const Data: SField<StandardBlob, 458779> = SField::new();
267pub const AssetClass: SField<StandardBlob, 458780> = SField::new();
268pub const Provider: SField<StandardBlob, 458781> = SField::new();
269pub const MPTokenMetadata: SField<StandardBlob, 458782> = SField::new();
270pub const CredentialType: SField<StandardBlob, 458783> = SField::new();
271pub const FinishFunction: SField<StandardBlob, 458784> = SField::new();
272pub const Account: SField<AccountID, 524289> = SField::new();
273pub const Owner: SField<AccountID, 524290> = SField::new();
274pub const Destination: SField<AccountID, 524291> = SField::new();
275pub const Issuer: SField<AccountID, 524292> = SField::new();
276pub const Authorize: SField<AccountID, 524293> = SField::new();
277pub const Unauthorize: SField<AccountID, 524294> = SField::new();
278pub const RegularKey: SField<AccountID, 524296> = SField::new();
279pub const NFTokenMinter: SField<AccountID, 524297> = SField::new();
280pub const EmitCallback: SField<AccountID, 524298> = SField::new();
281pub const Holder: SField<AccountID, 524299> = SField::new();
282pub const Delegate: SField<AccountID, 524300> = SField::new();
283pub const HookAccount: SField<AccountID, 524304> = SField::new();
284pub const OtherChainSource: SField<AccountID, 524306> = SField::new();
285pub const OtherChainDestination: SField<AccountID, 524307> = SField::new();
286pub const AttestationSignerAccount: SField<AccountID, 524308> = SField::new();
287pub const AttestationRewardAccount: SField<AccountID, 524309> = SField::new();
288pub const LockingChainDoor: SField<AccountID, 524310> = SField::new();
289pub const IssuingChainDoor: SField<AccountID, 524311> = SField::new();
290pub const Subject: SField<AccountID, 524312> = SField::new();
291pub const Borrower: SField<AccountID, 524313> = SField::new();
292pub const Counterparty: SField<AccountID, 524314> = SField::new();
293pub const Number: SField<u8, 589825> = SField::new();
294pub const AssetsAvailable: SField<u8, 589826> = SField::new();
295pub const AssetsMaximum: SField<u8, 589827> = SField::new();
296pub const AssetsTotal: SField<u8, 589828> = SField::new();
297pub const LossUnrealized: SField<u8, 589829> = SField::new();
298pub const DebtTotal: SField<u8, 589830> = SField::new();
299pub const DebtMaximum: SField<u8, 589831> = SField::new();
300pub const CoverAvailable: SField<u8, 589832> = SField::new();
301pub const LoanOriginationFee: SField<u8, 589833> = SField::new();
302pub const LoanServiceFee: SField<u8, 589834> = SField::new();
303pub const LatePaymentFee: SField<u8, 589835> = SField::new();
304pub const ClosePaymentFee: SField<u8, 589836> = SField::new();
305pub const PrincipalOutstanding: SField<u8, 589837> = SField::new();
306pub const PrincipalRequested: SField<u8, 589838> = SField::new();
307pub const TotalValueOutstanding: SField<u8, 589839> = SField::new();
308pub const PeriodicPayment: SField<u8, 589840> = SField::new();
309pub const ManagementFeeOutstanding: SField<u8, 589841> = SField::new();
310pub const LoanScale: SField<u8, 655361> = SField::new();
311pub const WasmReturnCode: SField<u8, 655362> = SField::new();
312pub const TransactionMetaData: SField<Object, 917506> = SField::new();
313pub const CreatedNode: SField<Object, 917507> = SField::new();
314pub const DeletedNode: SField<Object, 917508> = SField::new();
315pub const ModifiedNode: SField<Object, 917509> = SField::new();
316pub const PreviousFields: SField<Object, 917510> = SField::new();
317pub const FinalFields: SField<Object, 917511> = SField::new();
318pub const NewFields: SField<Object, 917512> = SField::new();
319pub const TemplateEntry: SField<Object, 917513> = SField::new();
320pub const Memo: SField<Object, 917514> = SField::new();
321pub const SignerEntry: SField<Object, 917515> = SField::new();
322pub const NFToken: SField<Object, 917516> = SField::new();
323pub const EmitDetails: SField<Object, 917517> = SField::new();
324pub const Hook: SField<Object, 917518> = SField::new();
325pub const Permission: SField<Object, 917519> = SField::new();
326pub const Signer: SField<Object, 917520> = SField::new();
327pub const Majority: SField<Object, 917522> = SField::new();
328pub const DisabledValidator: SField<Object, 917523> = SField::new();
329pub const EmittedTxn: SField<Object, 917524> = SField::new();
330pub const HookExecution: SField<Object, 917525> = SField::new();
331pub const HookDefinition: SField<Object, 917526> = SField::new();
332pub const HookParameter: SField<Object, 917527> = SField::new();
333pub const HookGrant: SField<Object, 917528> = SField::new();
334pub const VoteEntry: SField<Object, 917529> = SField::new();
335pub const AuctionSlot: SField<Object, 917530> = SField::new();
336pub const AuthAccount: SField<Object, 917531> = SField::new();
337pub const XChainClaimProofSig: SField<Object, 917532> = SField::new();
338pub const XChainCreateAccountProofSig: SField<Object, 917533> = SField::new();
339pub const XChainClaimAttestationCollectionElement: SField<Object, 917534> = SField::new();
340pub const XChainCreateAccountAttestationCollectionElement: SField<Object, 917535> = SField::new();
341pub const PriceData: SField<Object, 917536> = SField::new();
342pub const Credential: SField<Object, 917537> = SField::new();
343pub const RawTransaction: SField<Object, 917538> = SField::new();
344pub const BatchSigner: SField<Object, 917539> = SField::new();
345pub const Book: SField<Object, 917540> = SField::new();
346pub const CounterpartySignature: SField<Object, 917541> = SField::new();
347pub const Signers: SField<Array, 983043> = SField::new();
348pub const SignerEntries: SField<Array, 983044> = SField::new();
349pub const Template: SField<Array, 983045> = SField::new();
350pub const Necessary: SField<Array, 983046> = SField::new();
351pub const Sufficient: SField<Array, 983047> = SField::new();
352pub const AffectedNodes: SField<Array, 983048> = SField::new();
353pub const Memos: SField<Array, 983049> = SField::new();
354pub const NFTokens: SField<Array, 983050> = SField::new();
355pub const Hooks: SField<Array, 983051> = SField::new();
356pub const VoteSlots: SField<Array, 983052> = SField::new();
357pub const AdditionalBooks: SField<Array, 983053> = SField::new();
358pub const Majorities: SField<Array, 983056> = SField::new();
359pub const DisabledValidators: SField<Array, 983057> = SField::new();
360pub const HookExecutions: SField<Array, 983058> = SField::new();
361pub const HookParameters: SField<Array, 983059> = SField::new();
362pub const HookGrants: SField<Array, 983060> = SField::new();
363pub const XChainClaimAttestations: SField<Array, 983061> = SField::new();
364pub const XChainCreateAccountAttestations: SField<Array, 983062> = SField::new();
365pub const PriceDataSeries: SField<Array, 983064> = SField::new();
366pub const AuthAccounts: SField<Array, 983065> = SField::new();
367pub const AuthorizeCredentials: SField<Array, 983066> = SField::new();
368pub const UnauthorizeCredentials: SField<Array, 983067> = SField::new();
369pub const AcceptedCredentials: SField<Array, 983068> = SField::new();
370pub const Permissions: SField<Array, 983069> = SField::new();
371pub const RawTransactions: SField<Array, 983070> = SField::new();
372pub const BatchSigners: SField<Array, 983071> = SField::new();
373pub const CloseResolution: SField<u8, 1048577> = SField::new();
374pub const Method: SField<u8, 1048578> = SField::new();
375pub const TransactionResult: SField<u8, 1048579> = SField::new();
376pub const Scale: SField<u8, 1048580> = SField::new();
377pub const AssetScale: SField<u8, 1048581> = SField::new();
378pub const TickSize: SField<u8, 1048592> = SField::new();
379pub const UNLModifyDisabling: SField<u8, 1048593> = SField::new();
380pub const HookResult: SField<u8, 1048594> = SField::new();
381pub const WasLockingChainSend: SField<u8, 1048595> = SField::new();
382pub const WithdrawalPolicy: SField<u8, 1048596> = SField::new();
383pub const TakerPaysCurrency: SField<Hash160, 1114113> = SField::new();
384pub const TakerPaysIssuer: SField<Hash160, 1114114> = SField::new();
385pub const TakerGetsCurrency: SField<Hash160, 1114115> = SField::new();
386pub const TakerGetsIssuer: SField<Hash160, 1114116> = SField::new();
387pub const Paths: SField<u8, 1179649> = SField::new();
388pub const Indexes: SField<u8, 1245185> = SField::new();
389pub const Hashes: SField<u8, 1245186> = SField::new();
390pub const Amendments: SField<u8, 1245187> = SField::new();
391pub const NFTokenOffers: SField<u8, 1245188> = SField::new();
392pub const CredentialIDs: SField<u8, 1245189> = SField::new();
393pub const MPTokenIssuanceID: SField<Hash192, 1376257> = SField::new();
394pub const ShareMPTID: SField<Hash192, 1376258> = SField::new();
395pub const LockingChainIssue: SField<Issue, 1572865> = SField::new();
396pub const IssuingChainIssue: SField<Issue, 1572866> = SField::new();
397pub const Asset: SField<Issue, 1572867> = SField::new();
398pub const Asset2: SField<Issue, 1572868> = SField::new();
399pub const XChainBridge: SField<u8, 1638401> = SField::new();
400pub const BaseAsset: SField<Currency, 1703937> = SField::new();
401pub const QuoteAsset: SField<Currency, 1703938> = SField::new();
402pub const Transaction: SField<u8, 655425793> = SField::new();
403pub const LedgerEntry: SField<u8, 655491329> = SField::new();
404pub const Validation: SField<u8, 655556865> = SField::new();
405pub const Metadata: SField<u8, 655622401> = SField::new();