public int AddFieldHeader(Field f) { if (!f.IsSerialized()) { throw new InvalidOperationException(string.Format("Field {0} is a discardable field", f)); } byte[] n = f.Bytes; Add(n); return n.Length; }
public AffectedNode(StObject source) { fields = source.Fields; _field = Field; _nested = GetNested; }
public static int AsInteger(Field f, string s) { return Lookup[f].AsInteger(s); }
public static string AsString(Field f, Number i) { return Lookup[f].AsString(i.IntValue()); }
public static bool IsSymbolicField(Field field) { return Lookup.ContainsKey(field); }
public void Add(Field field, ISerializedType value) { AddFieldHeader(field); if (field.IsVlEncoded()) { AddLengthEncoded(value); } else { value.ToBytesSink(_sink); if (field.Type == Fields.Type.StObject) { AddFieldHeader(Field.ObjectEndMarker); } else if (field.Type == Fields.Type.StArray) { AddFieldHeader(Field.ArrayEndMarker); } } }
public static string GetName(Field f) { return Values.SingleOrDefault(q => q.Value == f).Key; }
public static byte[] AsBytes(Field field) { int name = field.Id; int type = field.Type.Id; var header = new List<byte>(3); if (type < 16) { if (name < 16) // Common type, common name. { header.Add((byte)((type << 4) | name)); } else { // Common type, uncommon name. header.Add((byte)(type << 4)); header.Add((byte)(name)); } } else if (name < 16) { // Uncommon type, common name. header.Add((byte)(name)); header.Add((byte)(type)); } else { // Uncommon type, uncommon name. header.Add(0); header.Add((byte)(type)); header.Add((byte)(name)); } var headerBytes = new byte[header.Count()]; for (int i = 0; i < header.Count; i++) { headerBytes[i] = header.ElementAt(i); } return headerBytes; }
static Field() { Values.Add("Generic", Generic); Values.Add("Invalid", Invalid); Values.Add("LedgerEntryType", LedgerEntryType); Values.Add("TransactionType", TransactionType); Values.Add("Flags", Flags); Values.Add("SourceTag", SourceTag); Values.Add("Sequence", Sequence); Values.Add("PreviousTxnLgrSeq", PreviousTxnLgrSeq); Values.Add("LedgerSequence", LedgerSequence); Values.Add("CloseTime", CloseTime); Values.Add("ParentCloseTime", ParentCloseTime); Values.Add("SigningTime", SigningTime); Values.Add("Expiration", Expiration); Values.Add("TransferRate", TransferRate); Values.Add("WalletSize", WalletSize); Values.Add("OwnerCount", OwnerCount); Values.Add("DestinationTag", DestinationTag); Values.Add("HighQualityIn", HighQualityIn); Values.Add("HighQualityOut", HighQualityOut); Values.Add("LowQualityIn", LowQualityIn); Values.Add("LowQualityOut", LowQualityOut); Values.Add("QualityIn", QualityIn); Values.Add("QualityOut", QualityOut); Values.Add("StampEscrow", StampEscrow); Values.Add("BondAmount", BondAmount); Values.Add("LoadFee", LoadFee); Values.Add("OfferSequence", OfferSequence); Values.Add("FirstLedgerSequence", FirstLedgerSequence); Values.Add("LastLedgerSequence", LastLedgerSequence); Values.Add("TransactionIndex", TransactionIndex); Values.Add("OperationLimit", OperationLimit); Values.Add("ReferenceFeeUnits", ReferenceFeeUnits); Values.Add("ReserveBase", ReserveBase); Values.Add("ReserveIncrement", ReserveIncrement); Values.Add("SetFlag", SetFlag); Values.Add("ClearFlag", ClearFlag); Values.Add("IndexNext", IndexNext); Values.Add("IndexPrevious", IndexPrevious); Values.Add("BookNode", BookNode); Values.Add("OwnerNode", OwnerNode); Values.Add("BaseFee", BaseFee); Values.Add("ExchangeRate", ExchangeRate); Values.Add("LowNode", LowNode); Values.Add("HighNode", HighNode); Values.Add("EmailHash", EmailHash); Values.Add("LedgerHash", LedgerHash); Values.Add("ParentHash", ParentHash); Values.Add("TransactionHash", TransactionHash); Values.Add("AccountHash", AccountHash); Values.Add("PreviousTxnID", PreviousTxnID); Values.Add("LedgerIndex", LedgerIndex); Values.Add("WalletLocator", WalletLocator); Values.Add("RootIndex", RootIndex); Values.Add("AccountTxnID", AccountTxnID); Values.Add("BookDirectory", BookDirectory); Values.Add("InvoiceID", InvoiceID); Values.Add("Nickname", Nickname); Values.Add("Feature", Feature); Values.Add("hash", hash); Values.Add("index", index); Values.Add("Amount", Amount); Values.Add("Balance", Balance); Values.Add("LimitAmount", LimitAmount); Values.Add("TakerPays", TakerPays); Values.Add("TakerGets", TakerGets); Values.Add("LowLimit", LowLimit); Values.Add("HighLimit", HighLimit); Values.Add("Fee", Fee); Values.Add("SendMax", SendMax); Values.Add("MinimumOffer", MinimumOffer); Values.Add("RippleEscrow", RippleEscrow); Values.Add("DeliveredAmount", DeliveredAmount); Values.Add("PublicKey", PublicKey); Values.Add("MessageKey", MessageKey); Values.Add("SigningPubKey", SigningPubKey); Values.Add("TxnSignature", TxnSignature); Values.Add("Generator", Generator); Values.Add("Signature", Signature); Values.Add("Domain", Domain); Values.Add("FundCode", FundCode); Values.Add("RemoveCode", RemoveCode); Values.Add("ExpireCode", ExpireCode); Values.Add("CreateCode", CreateCode); Values.Add("Account", Account); Values.Add("Owner", Owner); Values.Add("Destination", Destination); Values.Add("Issuer", Issuer); Values.Add("Target", Target); Values.Add("RegularKey", RegularKey); Values.Add("ObjectEndMarker", ObjectEndMarker); Values.Add("TransactionMetaData", TransactionMetaData); Values.Add("CreatedNode", CreatedNode); Values.Add("DeletedNode", DeletedNode); Values.Add("ModifiedNode", ModifiedNode); Values.Add("PreviousFields", PreviousFields); Values.Add("FinalFields", FinalFields); Values.Add("NewFields", NewFields); Values.Add("TemplateEntry", TemplateEntry); Values.Add("ArrayEndMarker", ArrayEndMarker); Values.Add("SigningAccounts", SigningAccounts); Values.Add("TxnSignatures", TxnSignatures); Values.Add("Signatures", Signatures); Values.Add("Template", Template); Values.Add("Necessary", Necessary); Values.Add("Sufficient", Sufficient); Values.Add("AffectedNodes", AffectedNodes); Values.Add("CloseResolution", CloseResolution); Values.Add("TemplateEntryType", TemplateEntryType); Values.Add("TransactionResult", TransactionResult); Values.Add("TakerPaysCurrency", TakerPaysCurrency); Values.Add("TakerPaysIssuer", TakerPaysIssuer); Values.Add("TakerGetsCurrency", TakerGetsCurrency); Values.Add("TakerGetsIssuer", TakerGetsIssuer); Values.Add("Paths", Paths); Values.Add("Indexes", Indexes); Values.Add("Hashes", Hashes); Values.Add("Features", Features); Values.Add("Transaction", Transaction); Values.Add("LedgerEntry", LedgerEntry); Values.Add("Validation", Validation); foreach (var value in Values) { if (ByCode.ContainsKey(value.Value._code)) { ByCode[value.Value._code] = value.Value; } else { ByCode.Add(value.Value._code, value.Value); } } var values = new Field[Values.Count]; Array.Copy(Values.Values.ToArray(), values, Values.Count); var sortedFields = new List<Field>(values); sortedFields.Sort(Comparator); for (int i = 0; i < values.Length; i++) { var av = values[i]; var lv = sortedFields.ElementAt(i); if (av._code != lv._code) { throw new ApplicationException("Field class declaration isn't presorted."); } } }
public static string AsString(Field f, int i) { return Lookup[f].AsString(i); }
protected void Put(Field f, Requirement r) { _requirementEnumMap.Add(f, r); }