Skip to main content

xrpl_wasm_stdlib/
sfield.rs

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