Example #1
0
        public void WriteBytes(BinaryWriter writer)
        {
            writer.Write(SenderPublicKey);
            writer.WriteAsset(Asset.Id);
            writer.WriteAsset(FeeAsset.Id);
            writer.WriteLong(Timestamp.ToLong());
            writer.WriteLong(Asset.AmountToLong(Amount));
            writer.WriteLong(FeeAsset.AmountToLong(Fee));

            if (Recipient.StartsWith("alias", StringComparison.Ordinal))
            {
                var chainId = Recipient[6];
                var name    = Recipient.Substring(8);

                writer.Write((byte)2);
                writer.Write(chainId);

                writer.WriteShort(name.Length);
                writer.Write(Encoding.UTF8.GetBytes(name));
            }
            else
            {
                writer.Write(Recipient.FromBase58());
            }
            writer.WriteShort(Attachment.Length);
            writer.Write(Attachment);
        }
Example #2
0
        public override DictionaryObject GetJson()
        {
            var result = new DictionaryObject
            {
                { "type", (byte)TransactionType.Transfer },
                { "senderPublicKey", SenderPublicKey.ToBase58() },
                { "recipient", Recipient },
                { "amount", Asset.AmountToLong(Amount) },
                { "assetId", Asset.IdOrNull },
                { "fee", FeeAsset.AmountToLong(Fee) },
                { "feeAsset", FeeAsset.IdOrNull },  // legacy v0.11.1 compat
                { "feeAssetId", FeeAsset.IdOrNull },
                { "timestamp", Timestamp.ToLong() },
                { "attachment", Attachment.ToBase58() }
            };

            if (Version > 1)
            {
                result.Add("version", Version);
            }

            if (Sender != null)
            {
                result.Add("sender", Sender);
            }

            return(result);
        }
Example #3
0
        public override Dictionary <string, object> GetJson()
        {
            var result = new Dictionary <string, object>
            {
                { "type", TransactionType.Transfer },
                { "senderPublicKey", SenderPublicKey.ToBase58() },
                { "recipient", Recipient },
                { "amount", Asset.AmountToLong(Amount) },
                { "assetId", Asset.IdOrNull },
                { "fee", FeeAsset.AmountToLong(Fee) },
                { "feeAssetId", FeeAsset.IdOrNull },
                { "timestamp", Timestamp.ToLong() },
                { "attachment", Attachment.ToBase58() }
            };

            if (Version > 1)
            {
                result.Add("version", Version);
            }
            return(result);
        }
Example #4
0
 public override byte[] GetBody()
 {
     using (var stream = new MemoryStream())
         using (var writer = new BinaryWriter(stream))
         {
             writer.Write(TransactionType.Transfer);
             if (Version == 2)
             {
                 writer.Write(Version);
             }
             writer.Write(SenderPublicKey);
             writer.WriteAsset(Asset.Id);
             writer.WriteAsset(FeeAsset.Id);
             writer.WriteLong(Timestamp.ToLong());
             writer.WriteLong(Asset.AmountToLong(Amount));
             writer.WriteLong(FeeAsset.AmountToLong(Fee));
             writer.Write(Recipient.FromBase58());
             writer.WriteShort(Attachment.Length);
             writer.Write(Attachment);
             return(stream.ToArray());
         }
 }
        public override byte[] GetBody()
        {
            var stream = new MemoryStream();
            var writer = new BinaryWriter(stream);

            writer.Write(TransactionType.Transfer);

            if (Version > 1)
            {
                writer.WriteByte(Version);
            }

            writer.Write(SenderPublicKey);
            writer.WriteAsset(Asset.Id);
            writer.WriteAsset(FeeAsset.Id);
            writer.WriteLong(Timestamp.ToLong());
            writer.WriteLong(Asset.AmountToLong(Amount));
            writer.WriteLong(FeeAsset.AmountToLong(Fee));

            if (Recipient.StartsWith("alias", StringComparison.Ordinal))
            {
                var chainId = Recipient[6];
                var name    = Recipient.Substring(8);

                writer.Write((byte)2);
                writer.Write(chainId);

                writer.WriteShort(name.Length);
                writer.Write(Encoding.UTF8.GetBytes(name));
            }
            else
            {
                writer.Write(Recipient.FromBase58());
            }
            writer.WriteShort(Attachment.Length);
            writer.Write(Attachment);

            return(stream.ToArray());
        }