예제 #1
0
 public static JToken ToJson(this StackItem item)
 {
     return item switch
     {
         Neo.VM.Types.Boolean _ => item.GetBoolean(),
         Neo.VM.Types.Buffer buffer => buffer.GetSpan().ToHexString(),
         Neo.VM.Types.ByteString byteString => byteString.GetSpan().ToHexString(),
         Neo.VM.Types.Integer @int => @int.GetInteger().ToString(),
         // Neo.VM.Types.InteropInterface _ => MakeVariable("InteropInterface"),
         Neo.VM.Types.Map map => MapToJson(map),
         Neo.VM.Types.Null _ => new JValue((object?)null),
         // Neo.VM.Types.Pointer _ => MakeVariable("Pointer"),
         Neo.VM.Types.Array array => new JArray(array.Select(i => i.ToJson())),
         _ => throw new NotSupportedException(),
     };
예제 #2
0
 static JToken StackItemToJson(StackItem item, string?typeHint)
 {
     return(typeHint switch
     {
         "Boolean" => item.GetBoolean().ToString(),
         "Integer" => item.GetBigInteger().ToString(),
         "String" => item.GetString(),
         _ => item switch
         {
             Neo.VM.Types.Boolean _ => item.GetBoolean().ToString(),
             Neo.VM.Types.ByteArray _ => $"{item.GetBigInteger().ToHexString()} ({item.GetString()})",
             Neo.VM.Types.Integer _ => item.GetBigInteger().ToString(),
             Neo.VM.Types.Array array => new JArray(array.Select(i => StackItemToJson(i, null))),
             _ => throw new NotSupportedException(item.GetType().Name),
         }
     });
예제 #3
0
        public static JToken ToJson(this StackItem item, string typeHint = "")
        {
            var stringRep = item.ToStringRep(typeHint);

            return(stringRep != null
                ? (JToken)stringRep
                : item switch
            {
                Neo.VM.Types.Boolean _ => item.GetBoolean(),
                // Neo.VM.Types.Buffer buffer => "Buffer",
                Neo.VM.Types.ByteString byteString => byteString.GetSpan().ToHexString(),
                Neo.VM.Types.Integer @int => @int.GetInteger().ToString(),
                // Neo.VM.Types.InteropInterface _ => MakeVariable("InteropInterface"),
                // Neo.VM.Types.Map _ => MakeVariable("Map"),
                Neo.VM.Types.Null _ => new JValue((object?)null),
                // Neo.VM.Types.Pointer _ => MakeVariable("Pointer"),
                Neo.VM.Types.Array array => new JArray(array.Select(i => i.ToJson())),
                _ => throw new NotSupportedException(),
            });