private static void CompareTransactionsData(RpcItem expectedData, RpcItem actualData)
        {
            if (expectedData == null && actualData == null)
            {
                return;
            }

            if (expectedData != null && actualData == null)
            {
                throw new ArgumentException("actual data is null");
            }

            if (expectedData is RpcValue expectedRpcValue &&
                actualData is RpcValue actualRpcValue)
            {
                Assert.Equal(expectedRpcValue.ToString(), actualRpcValue.ToString());
                return;
            }

            if (expectedData is RpcObject expectedRpcObject &&
                actualData is RpcObject actualRpcObject)
            {
                CompareTransactionsDataRpcObjects(expectedRpcObject, actualRpcObject);
                return;
            }


            throw new ArgumentException("can't compare transactions data");
        }
        private static void Serialize(StringBuilder builder, RpcItem item)
        {
            switch (item)
            {
            case RpcObject _:
                builder.Append("{");
                SerializeObjectItems(builder, item.ToObject());
                builder.Append("}");
                break;

            case RpcArray _:
                builder.Append("[");
                SerializeArrayItems(builder, item.ToArray());
                builder.Append("]");
                break;

            case null:
                builder.Append("\\0");
                break;

            default:
                builder.Append(Escape(item.ToString()));
                break;
            }
        }
예제 #3
0
            public List <ScoreApi> ConvertTo(RpcItem rpcItem)
            {
                var array     = rpcItem.ToArray();
                var scoreApis = new List <ScoreApi>(array.Size());

                for (var i = 0; i < array.Size(); i++)
                {
                    scoreApis.Add(new ScoreApi(array.Get(i).ToObject()));
                }
                return(scoreApis);
            }
 public SendingTransaction(TransactionData transactionData)
 {
     _version   = transactionData.Version;
     _from      = transactionData.From;
     _to        = transactionData.To;
     _value     = transactionData.Value;
     _stepLimit = transactionData.StepLimit;
     _timestamp = transactionData.Timestamp;
     _nid       = transactionData.Nid;
     _nonce     = transactionData.Nonce;
     _dataType  = transactionData.DataType;
     _data      = transactionData.Data;
 }
예제 #5
0
        private static List <Param> GetParams(RpcItem item)
        {
            var @params = new List <Param>();

            if (item != null)
            {
                foreach (var rpcItem in item.ToArray())
                {
                    var @object = (RpcObject)rpcItem;

                    @params.Add(new Param(@object));
                }
            }

            return(@params);
        }
예제 #6
0
 public PersonResponse ConvertTo(RpcItem @object)
 {
     return(new PersonResponse());
 }
예제 #7
0
 private static void PutTransactionPropertyToBuilder(RpcObject.Builder builder, string key, RpcItem item)
 {
     if (item != null)
     {
         builder.Put(key, item);
     }
 }
예제 #8
0
 public TransactionResult ConvertTo(RpcItem @object)
 {
     return(new TransactionResult(@object.ToObject()));
 }
예제 #9
0
            public Builder Params <T>(T @params)
            {
                _params = RpcItemCreator.Create(@params);

                return(this);
            }
예제 #10
0
 public Block ConvertTo(RpcItem @object)
 {
     return(new Block(@object.ToObject()));
 }
예제 #11
0
 public byte[] ConvertTo(RpcItem @object)
 {
     return(@object.ToByteArray());
 }
예제 #12
0
 public Bytes ConvertTo(RpcItem @object)
 {
     return(@object.ToBytes());
 }
예제 #13
0
 public string ConvertTo(RpcItem @object)
 {
     return(@object.ToString());
 }
예제 #14
0
 public bool ConvertTo(RpcItem @object)
 {
     return(@object.ToBoolean());
 }
예제 #15
0
 public BigInteger ConvertTo(RpcItem @object)
 {
     return(@object.ToInteger());
 }
예제 #16
0
 public ConfirmedTransaction ConvertTo(RpcItem @object)
 {
     return(new ConfirmedTransaction(@object.ToObject()));
 }
예제 #17
0
            public Builder Params(RpcItem @params)
            {
                _params = @params;

                return(this);
            }