public ConsumerSession Decode(RlpStream rlpStream, RlpBehaviors rlpBehaviors = RlpBehaviors.None) { rlpStream.ReadSequenceLength(); Keccak id = rlpStream.DecodeKeccak(); Keccak depositId = rlpStream.DecodeKeccak(); Keccak dataAssetId = rlpStream.DecodeKeccak(); Address consumerAddress = rlpStream.DecodeAddress(); PublicKey consumerNodeId = new PublicKey(rlpStream.DecodeByteArray()); Address providerAddress = rlpStream.DecodeAddress(); PublicKey providerNodeId = new PublicKey(rlpStream.DecodeByteArray()); SessionState state = (SessionState)rlpStream.DecodeInt(); uint startUnitsFromProvider = rlpStream.DecodeUInt(); uint startUnitsFromConsumer = rlpStream.DecodeUInt(); ulong startTimestamp = rlpStream.DecodeUlong(); ulong finishTimestamp = rlpStream.DecodeUlong(); uint consumedUnits = rlpStream.DecodeUInt(); uint unpaidUnits = rlpStream.DecodeUInt(); uint paidUnits = rlpStream.DecodeUInt(); uint settledUnits = rlpStream.DecodeUInt(); uint consumedUnitsFromProvider = rlpStream.DecodeUInt(); DataAvailability dataAvailability = (DataAvailability)rlpStream.DecodeInt(); return(new ConsumerSession(id, depositId, dataAssetId, consumerAddress, consumerNodeId, providerAddress, providerNodeId, state, startUnitsFromProvider, startUnitsFromConsumer, startTimestamp, finishTimestamp, consumedUnits, unpaidUnits, paidUnits, settledUnits, consumedUnitsFromProvider, dataAvailability)); }
public void SendDataAvailability(Keccak depositId, DataAvailability dataAvailability) { if (Logger.IsTrace) { Logger.Trace($"{Session.RemoteNodeId} NDM sending: dataavailability"); } Send(new DataAvailabilityMessage(depositId, dataAvailability)); }
private void Test(DataAssetUnitType unitType, uint depositedUnits, long consumedUnits, uint startTimestamp, ulong nowSeconds, DataAvailability availability) { var dataAvailability = _validator.GetAvailability(unitType, depositedUnits, consumedUnits, startTimestamp, nowSeconds); dataAvailability.Should().Be(availability); }
public DataAvailabilityMessage Deserialize(byte[] bytes) { RlpStream context = bytes.AsRlpStream(); context.ReadSequenceLength(); Keccak? depositId = context.DecodeKeccak(); DataAvailability reason = (DataAvailability)context.DecodeInt(); return(new DataAvailabilityMessage(depositId, reason)); }
public async Task SetDataAvailabilityAsync(Keccak depositId, DataAvailability dataAvailability) { var session = _sessionService.GetActive(depositId); if (session is null) { return; } if (_logger.IsInfo) { _logger.Info($"Setting data availability: '{dataAvailability}', for deposit: '{depositId}', session: {session.Id}."); } session.SetDataAvailability(dataAvailability); await _sessionRepository.UpdateAsync(session); await _consumerNotifier.SendDataAvailabilityChangedAsync(depositId, session.Id, dataAvailability); }
public DataAvailabilityMessage(Keccak depositId, DataAvailability dataAvailability) { DepositId = depositId; DataAvailability = dataAvailability; }
public Task SetDataAvailabilityAsync(Keccak depositId, DataAvailability dataAvailability) => _dataConsumerService.SetDataAvailabilityAsync(depositId, dataAvailability);
public Task SendDataAvailabilityChangedAsync(Keccak depositId, Keccak sessionId, DataAvailability availability) => _notifier.NotifyAsync(new Notification("data_availability_changed", new { depositId, sessionId, availability = availability.ToString() }));
public void PopulateFromJson(JObject jsonObject) { m_god = (God)Serialization.JsonTokenValue <int>(jsonObject, "god", 0); m_availability = (DataAvailability)Serialization.JsonTokenValue <int>(jsonObject, "availability", 0); }
private void TestTime(uint depositedUnits, uint startTimestamp, ulong nowSeconds, DataAvailability availability) => Test(DataAssetUnitType.Time, depositedUnits, 0, startTimestamp, nowSeconds, availability);
private void TestUnits(uint depositedUnits, long consumedUnits, DataAvailability availability) => Test(DataAssetUnitType.Unit, depositedUnits, consumedUnits, 0, 0, availability);
public void PopulateFromJson(JObject jsonObject) { m_companion = Serialization.JsonTokenIdValue <CompanionDefinition>(jsonObject, "companion"); m_availability = (DataAvailability)Serialization.JsonTokenValue <int>(jsonObject, "availability", 0); }
public void PopulateFromJson(JObject jsonObject) { m_fight = Serialization.JsonTokenIdValue <FightDefinition>(jsonObject, "fight"); m_availability = (DataAvailability)Serialization.JsonTokenValue <int>(jsonObject, "availability", 0); }
public void PopulateFromJson(JObject jsonObject) { m_squad = Serialization.JsonTokenIdValue <SquadDefinition>(jsonObject, "squad"); m_availability = (DataAvailability)Serialization.JsonTokenValue <int>(jsonObject, "availability", 0); }