private async Task ProcessCashIn(ProcessEthCoinEventCommand queueMessage, IEventPublisher eventPublisher) { if (queueMessage.CoinEventType != CoinEventType.CashinCompleted) { return; } var bcnCreds = await _bcnClientCredentialsRepository.GetByAssetAddressAsync(queueMessage.FromAddress); var asset = await _assetsServiceWithCache.TryGetAssetAsync(bcnCreds.AssetId); var amount = EthServiceHelpers.ConvertFromContract(queueMessage.Amount, asset.MultiplierPower, asset.Accuracy); Guid.TryParse(bcnCreds.ClientId, out var clientId); await HandleCashInOperation(asset, amount, clientId, bcnCreds.Address, queueMessage.TransactionHash, eventPublisher, createPendingActions : true); }
private async Task <bool> ProcessCashIn(CoinEvent queueMessage) { if (queueMessage.CoinEventType != CoinEventType.CashinCompleted) { return(true); } var bcnCreds = await _bcnClientCredentialsRepository.GetByAssetAddressAsync(queueMessage.FromAddress); var asset = await _assetsService.TryGetAssetAsync(bcnCreds.AssetId); var amount = EthServiceHelpers.ConvertFromContract(queueMessage.Amount, asset.MultiplierPower, asset.Accuracy); await HandleCashInOperation(asset, (double)amount, bcnCreds.ClientId, bcnCreds.Address, queueMessage.TransactionHash); return(true); }
private async Task ProcessHotWalletCashin(ProcessHotWalletErc20EventCommand queueMessage, IEventPublisher eventPublisher) { var bcnCreds = await _bcnClientCredentialsRepository.GetByAssetAddressAsync(queueMessage.FromAddress); string tokenAddress = queueMessage.TokenAddress; var token = await _assetsService.Erc20TokenGetByAddressAsync(tokenAddress); if (token == null) { _log.Error(new Exception($"Skipping cashin. Unsupported Erc 20 token - {tokenAddress}"), context: queueMessage); return; } var asset = await _assetsServiceWithCache.TryGetAssetAsync(token.AssetId); var amount = EthServiceHelpers.ConvertFromContract(queueMessage.Amount, asset.MultiplierPower, asset.Accuracy); Guid.TryParse(bcnCreds.ClientId, out var clientId); await HandleCashInOperation(asset, amount, clientId, bcnCreds.Address, queueMessage.TransactionHash, eventPublisher); }