public StackItem ToStackItem(ReferenceCounter referenceCounter) { return(new Struct(referenceCounter) { Name, new Array(referenceCounter, Groups.Select(p => p.ToStackItem(referenceCounter))), new Array(referenceCounter, SupportedStandards.Select(p => (StackItem)p)), Abi.ToStackItem(referenceCounter), new Array(referenceCounter, Permissions.Select(p => p.ToStackItem(referenceCounter))), Trusts.IsWildcard ? StackItem.Null : new Array(referenceCounter, Trusts.Select(p => (StackItem)p.ToArray())), Extra is null ? "null" : Extra.ToByteArray(false) });
/// <summary /// To json /// </summary> public JObject ToJson() { return(new JObject { ["groups"] = Groups.Select(u => u.ToJson()).ToArray(), ["supportedstandards"] = SupportedStandards.Select(u => new JString(u)).ToArray(), ["abi"] = Abi.ToJson(), ["permissions"] = Permissions.Select(p => p.ToJson()).ToArray(), ["trusts"] = Trusts.ToJson(), ["safemethods"] = SafeMethods.ToJson(), ["extra"] = Extra }); }
/// <summary /// To json /// </summary> public JObject ToJson() { var feature = new JObject(); feature["storage"] = Features.HasFlag(ContractFeatures.HasStorage); feature["payable"] = Features.HasFlag(ContractFeatures.Payable); var json = new JObject(); json["groups"] = new JArray(Groups.Select(u => u.ToJson()).ToArray()); json["features"] = feature; json["abi"] = Abi.ToJson(); json["permissions"] = Permissions.Select(p => p.ToJson()).ToArray(); json["trusts"] = Trusts.ToJson(); json["safeMethods"] = SafeMethods.ToJson(); return(json); }
/// <summary /// To json /// </summary> public JObject ToJson() { return(new JObject { ["groups"] = Groups.Select(u => u.ToJson()).ToArray(), ["features"] = new JObject { ["storage"] = Features.HasFlag(ContractFeatures.HasStorage), ["payable"] = Features.HasFlag(ContractFeatures.Payable) }, ["supportedstandards"] = SupportedStandards.Select(u => new JString(u)).ToArray(), ["abi"] = Abi.ToJson(), ["permissions"] = Permissions.Select(p => p.ToJson()).ToArray(), ["trusts"] = Trusts.ToJson(), ["safemethods"] = SafeMethods.ToJson(), ["extra"] = Extra }); }
// authoritative data is considered as coming from the AD directly // non authoritative is deducted data private void Link(GraphNode destination, HealthCheckTrustData trust, bool isAuthoritative) { //Trace.WriteLine("Linking " + Domain + " to " + destination.Domain); if (!Trusts.ContainsKey(destination.Domain)) { GraphEdge edge = new GraphEdge(this, destination, trust, isAuthoritative); Trusts[destination.Domain] = edge; edge = new GraphEdge(destination, this, GetReverseTrust(trust), false); destination.Trusts[this.Domain] = edge; } else if (isAuthoritative) { Trusts[destination.Domain].SetAuthorativeTrustData(trust); } else { //Trace.WriteLine("non authoritative data & trust already exists"); } }