//------------------------------------------------------------------------------ /* Copyright (c) 2011-2013, OpenCoin, Inc. */ //============================================================================== LedgerFormats::LedgerFormats () : SharedSingleton (SingletonLifetime::persistAfterCreation) { add ("AccountRoot", ltACCOUNT_ROOT) << SOElement (sfAccount, SOE_REQUIRED) << SOElement (sfSequence, SOE_REQUIRED) << SOElement (sfBalance, SOE_REQUIRED) << SOElement (sfOwnerCount, SOE_REQUIRED) << SOElement (sfPreviousTxnID, SOE_REQUIRED) << SOElement (sfPreviousTxnLgrSeq, SOE_REQUIRED) << SOElement (sfRegularKey, SOE_OPTIONAL) << SOElement (sfEmailHash, SOE_OPTIONAL) << SOElement (sfWalletLocator, SOE_OPTIONAL) << SOElement (sfWalletSize, SOE_OPTIONAL) << SOElement (sfMessageKey, SOE_OPTIONAL) << SOElement (sfTransferRate, SOE_OPTIONAL) << SOElement (sfDomain, SOE_OPTIONAL) ; add ("Contract", ltCONTRACT) << SOElement (sfAccount, SOE_REQUIRED) << SOElement (sfBalance, SOE_REQUIRED) << SOElement (sfPreviousTxnID, SOE_REQUIRED) << SOElement (sfPreviousTxnLgrSeq, SOE_REQUIRED) << SOElement (sfIssuer, SOE_REQUIRED) << SOElement (sfOwner, SOE_REQUIRED) << SOElement (sfExpiration, SOE_REQUIRED) << SOElement (sfBondAmount, SOE_REQUIRED) << SOElement (sfCreateCode, SOE_OPTIONAL) << SOElement (sfFundCode, SOE_OPTIONAL) << SOElement (sfRemoveCode, SOE_OPTIONAL) << SOElement (sfExpireCode, SOE_OPTIONAL) ; add ("DirectoryNode", ltDIR_NODE) << SOElement (sfOwner, SOE_OPTIONAL) // for owner directories << SOElement (sfTakerPaysCurrency, SOE_OPTIONAL) // for order book directories << SOElement (sfTakerPaysIssuer, SOE_OPTIONAL) // for order book directories << SOElement (sfTakerGetsCurrency, SOE_OPTIONAL) // for order book directories << SOElement (sfTakerGetsIssuer, SOE_OPTIONAL) // for order book directories << SOElement (sfExchangeRate, SOE_OPTIONAL) // for order book directories << SOElement (sfIndexes, SOE_REQUIRED) << SOElement (sfRootIndex, SOE_REQUIRED) << SOElement (sfIndexNext, SOE_OPTIONAL) << SOElement (sfIndexPrevious, SOE_OPTIONAL) ; add ("GeneratorMap", ltGENERATOR_MAP) << SOElement (sfGenerator, SOE_REQUIRED) ; add ("Nickname", ltNICKNAME) << SOElement (sfAccount, SOE_REQUIRED) << SOElement (sfMinimumOffer, SOE_OPTIONAL) ; add ("Offer", ltOFFER) << SOElement (sfAccount, SOE_REQUIRED) << SOElement (sfSequence, SOE_REQUIRED) << SOElement (sfTakerPays, SOE_REQUIRED) << SOElement (sfTakerGets, SOE_REQUIRED) << SOElement (sfBookDirectory, SOE_REQUIRED) << SOElement (sfBookNode, SOE_REQUIRED) << SOElement (sfOwnerNode, SOE_REQUIRED) << SOElement (sfPreviousTxnID, SOE_REQUIRED) << SOElement (sfPreviousTxnLgrSeq, SOE_REQUIRED) << SOElement (sfExpiration, SOE_OPTIONAL) ; add ("RippleState", ltRIPPLE_STATE) << SOElement (sfBalance, SOE_REQUIRED) << SOElement (sfLowLimit, SOE_REQUIRED) << SOElement (sfHighLimit, SOE_REQUIRED) << SOElement (sfPreviousTxnID, SOE_REQUIRED) << SOElement (sfPreviousTxnLgrSeq, SOE_REQUIRED) << SOElement (sfLowNode, SOE_OPTIONAL) << SOElement (sfLowQualityIn, SOE_OPTIONAL) << SOElement (sfLowQualityOut, SOE_OPTIONAL) << SOElement (sfHighNode, SOE_OPTIONAL) << SOElement (sfHighQualityIn, SOE_OPTIONAL) << SOElement (sfHighQualityOut, SOE_OPTIONAL) ; add ("LedgerHashes", ltLEDGER_HASHES) << SOElement (sfFirstLedgerSequence, SOE_OPTIONAL) // Remove if we do a ledger restart << SOElement (sfLastLedgerSequence, SOE_OPTIONAL) << SOElement (sfHashes, SOE_REQUIRED) ; add ("EnabledFeatures", ltFEATURES) << SOElement (sfFeatures, SOE_REQUIRED) ; add ("FeeSettings", ltFEE_SETTINGS) << SOElement (sfBaseFee, SOE_REQUIRED) << SOElement (sfReferenceFeeUnits, SOE_REQUIRED) << SOElement (sfReserveBase, SOE_REQUIRED) << SOElement (sfReserveIncrement, SOE_REQUIRED) ; } LedgerFormats* LedgerFormats::createInstance () { return new LedgerFormats; } void LedgerFormats::addCommonFields (Item& item) { item << SOElement(sfLedgerIndex, SOE_OPTIONAL) << SOElement(sfLedgerEntryType, SOE_REQUIRED) << SOElement(sfFlags, SOE_REQUIRED) ; }