private async Task ProcessBroadcastedCommitment(ICommitment commitment, ICoin spendingCoin) { var lastCommitment = await _commitmentRepository.GetLastCommitment(commitment.Multisig, commitment.AssetId, commitment.Type); if (lastCommitment.CommitmentId == commitment.CommitmentId) { await _logger.WriteInfoAsync("OffchainCommitmentMonitoringFunction", "ProcessBroadcastedCommitment", $"CommitmentId: {commitment.CommitmentId}", "Last commitment was broadcasted"); await _offchainService.CloseChannel(commitment); await _commitmentBroadcastRepository.InsertCommitmentBroadcast(commitment.CommitmentId, spendingCoin.Outpoint.Hash.ToString(), CommitmentBroadcastType.Valid, commitment.ClientAmount, commitment.HubAmount, commitment.ClientAmount, commitment.HubAmount, null); return; } await _logger.WriteWarningAsync("OffchainCommitmentMonitoringFunction", "ProcessBroadcastedCommitment", $"CommitmentId: {commitment.CommitmentId}", "Commitment is not last."); if (commitment.Type == CommitmentType.Client) { var assetSettings = await _offchainService.GetAssetSetting(commitment.AssetId); var hash = await _offchainService.SpendCommitmemtByMultisig(commitment, spendingCoin, !string.IsNullOrEmpty(assetSettings.ChangeWallet)?assetSettings.ChangeWallet : assetSettings.HotWallet); await _offchainService.CloseChannel(commitment); await _commitmentBroadcastRepository.InsertCommitmentBroadcast(commitment.CommitmentId, spendingCoin.Outpoint.Hash.ToString(), CommitmentBroadcastType.Revoked, commitment.ClientAmount, commitment.HubAmount, lastCommitment.ClientAmount, lastCommitment.HubAmount, hash); } else { await _slackNotifier.WarningAsync($"Hub commitment with id {commitment.CommitmentId} was broadcasted but it's not last"); } }
public async Task Process() { var maxAmount = new Money(_baseSettings.MaxExtraAmount, MoneyUnit.BTC); var extraAmounts = await _extraAmountRepository.GetData(); foreach (var extraAmount in extraAmounts) { if (extraAmount.Amount > maxAmount) { await _slackNotifier.WarningAsync($"Address [{extraAmount.Address}] already has [{extraAmount.Amount}] extra satoshi!"); } } }
public async Task Execute() { try { string hash = await _exchangeContractService.PingMainExchangeContract(); await _log.WriteInfoAsync("PingContractsJob", "Execute", "", $"MainExchange has been pinged trHash {hash}", DateTime.UtcNow); await _slackNotifier.WarningAsync($"Main Exchange conrtract was pinged {DateTime.UtcNow} - utc, {hash} - trHash"); } catch (Exception e) { await _log.WriteErrorAsync("PingContractsJob", "Execute", "", e, DateTime.UtcNow); } }