コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }