public AccountId CreatedAccount() { AccountId destination = null; Hash256 destinationIndex = null; if (TransactionType == TransactionType.Payment && Meta.Has(Field.AffectedNodes)) { StArray affected = Meta[StArray.AffectedNodes]; foreach (var node in affected) { if (node.Has(StObject.CreatedNode)) { StObject created = node[StObject.CreatedNode]; if (StObject.LedgerEntryType(created) == LedgerEntryType.AccountRoot) { if (destination == null) { destination = Txn[AccountId.Destination]; destinationIndex = Hash256.AccountIdLedgerIndex(destination); } if (destinationIndex.Equals(created[Hash256.LedgerHash])) { return(destination); } } } } } return(null); }
/// <summary> /// 颜色值 /// 指定了当前颜色空间下各通道的取值。Value 的取值应 /// 符合"通道 1 通道 2 通道 3 ..."格式。此属性不出现时, /// 应采用 Index 属性从颜色空间的调色板中的取值。二者都不 /// 出现时,改颜色各通道的值全部为 0 /// /// 颜色表示: /// Gray - 通过一个通道来表明灰度值;例如 "#FF 255" /// /// RGB - 包含3个通道,一次是红、绿、蓝;例如 "#11 #22 #33"、"17 34 51" /// /// CMYK - 包含4个通道,依次是青、黄、品红、黑;例如 "#11 #22 #33 # 44"、"17 34 51 68" /// </summary> /// <param name="value"></param> /// <returns></returns> public CtColor SetValue(StArray value) { if (value == null) { Element.RemoveAttribute("Value"); return(this); } Element.SetAttribute("Value", value.ToString()); return(this); }
public void test_parsing_transaction_meta_with_STArray() { TransactionMeta meta = (TransactionMeta)StObject.FromJObject(JObject.Parse(this.metastring)); StArray nodes = meta[StArray.AffectedNodes]; // Some helper methods to get enum fields Assert.AreEqual(TransactionEngineResult.tesSUCCESS, meta.TransactionResult()); StObject firstAffected = nodes[0]; Assert.AreEqual( LedgerEntryType.AccountRoot, ((AccountRoot)firstAffected[StObject.ModifiedNode]).LedgerEntryType()); Assert.True(firstAffected.Has(StObject.ModifiedNode)); Assert.AreEqual(new UInt32((long)35), this.finalSequence(firstAffected)); Assert.AreEqual(new UInt32((long)177), this.finalSequence(nodes[1])); }
public IDictionary <AccountId, StObject> ModifiedRoots() { Dictionary <AccountId, StObject> accounts = null; if (Meta.Has(Field.AffectedNodes)) { accounts = new Dictionary <AccountId, StObject>(); StArray affected = Meta[StArray.AffectedNodes]; foreach (var node in affected) { if (node.Has(Field.ModifiedNode)) { var localNode = node[StObject.ModifiedNode]; if (StObject.LedgerEntryType(localNode) == LedgerEntryType.AccountRoot) { StObject finalFields = localNode[StObject.FinalFields]; AccountId key; if (finalFields != null) { key = finalFields[AccountId.Account]; accounts.Add(key, localNode); } else { // TODO why the hell is this commented out // key = initiatingAccount(); // Hash256 index = Hash256.accountIDLedgerIndex(key); // if (index.equals(node.get(Hash256.LedgerIndex))) { // accounts.put(key, node); // } } } } } } return(accounts); }
/// <summary> /// 颜色表示: /// Gray - 通过一个通道来表明灰度值;例如 "#FF 255" /// /// RGB - 包含3个通道,一次是红、绿、蓝;例如 "#11 #22 #33"、"17 34 51" /// /// CMYK - 包含4个通道,依次是青、黄、品红、黑;例如 "#11 #22 #33 # 44"、"17 34 51 68" /// /// </summary> /// <param name="xmlDocument"></param> /// <param name="color"></param> public ColorValue(XmlDocument xmlDocument, StArray color) : base(xmlDocument, "CV") { }
public new IEnumerator <AffectedNode> GetEnumerator() { StArray nodes = base[StArray.AffectedNodes]; return(new AffectedNodeEnumerator(nodes.GetEnumerator())); }