Пример #1
0
 public static InventoryPayload DecodeInventoryPayload(BinaryReader reader)
 {
     return new InventoryPayload
     (
         InventoryVectors: reader.ReadList(() => DecodeInventoryVector(reader))
     );
 }
Пример #2
0
 public static AddressPayload DecodeAddressPayload(BinaryReader reader)
 {
     return new AddressPayload
     (
         NetworkAddresses: reader.ReadList(() => DecodeNetworkAddressWithTime(reader))
     );
 }
Пример #3
0
 public static Block DecodeBlock(BinaryReader reader, UInt256 blockHash = null)
 {
     return new Block
     (
         header: DecodeBlockHeader(reader, blockHash),
         transactions: reader.ReadList(() => DecodeTransaction(reader))
     );
 }
Пример #4
0
 public static GetBlocksPayload DecodeGetBlocksPayload(BinaryReader reader)
 {
     return new GetBlocksPayload
     (
         Version: reader.ReadUInt32(),
         BlockLocatorHashes: reader.ReadList(() => reader.ReadUInt256()),
         HashStop: reader.ReadUInt256()
     );
 }
Пример #5
0
 public void Read(BinaryReader reader)
 {
     NumberOfPeels = reader.ReadInt32();
     PerformedFirstPeel = reader.ReadBoolean();
     AvgTimeBetweenPeels = reader.ReadInt32();
     NumberOfDumps = reader.ReadInt32();
     AvgTimeBetweenDumps = reader.ReadInt32();
     IsWinner = reader.ReadBoolean();
     RawGameData = reader.ReadList<GameMoveDataPoint>();
 }
Пример #6
0
        public void Read(BinaryReader reader)
        {
            PacketType = (PacketType)reader.ReadByte();
            Sender = reader.ReadString();
            Recipients = reader.ReadList();

            var type = DataPacket.PacketTypeMap[PacketType];

            if (type == null)
            {
                Data = null;
            }
            else if (type == typeof(string))
            {
                Data = reader.ReadString();
            }
            else
            {
                var binaryData = Activator.CreateInstance(type);

                var hasInstance = reader.ReadBoolean();

                if (!hasInstance)
                {
                    return;
                }

                try
                {
                    ((IBinarySerializable) binaryData).Read(reader);

                    Data = binaryData;
                }
                catch
                {
            #if DEBUG
                    throw;
            #endif
                    Debug.WriteLine(string.Format("Deserialization failed on PacketType {0}", PacketType.ToString()));
                }

            }
        }
        public bool TryGetBlockUnmintedTxes(UInt256 blockHash, out IImmutableList<UnmintedTx> unmintedTxes)
        {
            CheckTransaction();

            byte[] unmintedTxesBytes;
            if (this.txn.TryGet(blockUnmintedTxesTableId, DbEncoder.EncodeUInt256(blockHash), out unmintedTxesBytes))
            {
                using (var stream = new MemoryStream(unmintedTxesBytes))
                using (var reader = new BinaryReader(stream))
                {
                    unmintedTxes = ImmutableList.CreateRange(reader.ReadList(() => DataEncoder.DecodeUnmintedTx(reader)));
                }

                return true;
            }
            else
            {
                unmintedTxes = null;
                return false;
            }
        }
        public bool TryGetBlockSpentTxes(int blockIndex, out BlockSpentTxes spentTxes)
        {
            CheckTransaction();

            byte[] spentTxesBytes;
            if (this.txn.TryGet(blockSpentTxesTableId, DbEncoder.EncodeInt32(blockIndex), out spentTxesBytes))
            {
                using (var stream = new MemoryStream(spentTxesBytes))
                using (var reader = new BinaryReader(stream))
                {
                    spentTxes = BlockSpentTxes.CreateRange(reader.ReadList(() => DataEncoder.DecodeSpentTx(reader)));
                }

                return true;
            }
            else
            {
                spentTxes = null;
                return false;
            }
        }
Пример #9
0
 public void Read(BinaryReader reader)
 {
     _GameData = reader.ReadList<GameData>();
 }
Пример #10
0
 public void Read(BinaryReader reader)
 {
     Friends = reader.ReadList<Friend>();
 }
Пример #11
0
 public static UnmintedTx DecodeUnmintedTx(BinaryReader reader)
 {
     return new UnmintedTx(
         txHash: reader.ReadUInt256(),
         prevOutputTxKeys: reader.ReadList(() => DecodeTxLookupKey(reader))
     );
 }
Пример #12
0
 public static Transaction DecodeTransaction(BinaryReader reader, UInt256 txHash = null)
 {
     return new Transaction
     (
         version: reader.ReadUInt32(),
         inputs: reader.ReadList(() => DecodeTxInput(reader)),
         outputs: reader.ReadList(() => DecodeTxOutput(reader)),
         lockTime: reader.ReadUInt32(),
         hash: txHash
     );
 }
Пример #13
0
        private async Task<CacheResponse> GetItemsFromCache(SourceProvider source)
        {
            var filename = GetFileName(GetCacheFile(source));

            if (await _storage.Local.FileExistsAsync(filename))
            {
                var items = new List<ReaderItem>();
                using (var file = await _storage.Local.OpenFileForReadAsync(filename))
                {
                    using (var reader = new BinaryReader(file))
                    {
                        try
                        {
                            items = reader.ReadList<ReaderItem>();
                        }
                        catch
                        {
                        }
                    }
                }

                var expired = CacheHasExpired(source);

                return new CacheResponse(items ?? new List<ReaderItem>(), expired);
            }

            return new CacheResponse(new List<ReaderItem>(), false);
        }
Пример #14
0
 public void Read(BinaryReader reader)
 {
     GameHost = reader.ReadString();
     GameMoves = reader.ReadList<GameMoveDataPoint>();
     Winner = reader.ReadString();
     GameDuration = reader.ReadInt32();
     GameStartTime = reader.ReadDateTime();
     PlayerDictionary = reader.ReadPlayerDictionary<PlayerGameStats>();
 }