示例#1
0
        public Task HandleAsync(Block block, TransactionResult transactionResult, LogEvent logEvent)
        {
            var eventData = new ExtraTokenListModified();

            eventData.MergeFrom(logEvent);
            var blockIndex = new BlockIndex
            {
                BlockHash   = block.GetHash(),
                BlockHeight = block.Height
            };

            if (eventData.SymbolListToPayTxSizeFee == null)
            {
                return(Task.CompletedTask);
            }
            var newTokenInfoList = new List <AvailableTokenInfoInCache>();

            foreach (var tokenInfo in eventData.SymbolListToPayTxSizeFee.SymbolsToPayTxSizeFee)
            {
                newTokenInfoList.Add(new AvailableTokenInfoInCache
                {
                    TokenSymbol      = tokenInfo.TokenSymbol,
                    AddedTokenWeight = tokenInfo.AddedTokenWeight,
                    BaseTokenWeight  = tokenInfo.BaseTokenWeight
                });
            }

            _symbolListToPayTxFeeService.SetExtraAcceptedTokenInfoToForkCache(blockIndex, newTokenInfoList);
            return(Task.CompletedTask);
        }
        public async Task ProcessAsync(Block block, TransactionResult transactionResult, LogEvent logEvent)
        {
            var eventData = new ExtraTokenListModified();

            eventData.MergeFrom(logEvent);
            if (eventData.SymbolListToPayTxSizeFee == null)
            {
                return;
            }

            var transactionSizeFeeSymbols = new TransactionSizeFeeSymbols();

            foreach (var symbolToPayTxSizeFee in eventData.SymbolListToPayTxSizeFee.SymbolsToPayTxSizeFee)
            {
                transactionSizeFeeSymbols.TransactionSizeFeeSymbolList.Add(new TransactionSizeFeeSymbol
                {
                    TokenSymbol      = symbolToPayTxSizeFee.TokenSymbol,
                    AddedTokenWeight = symbolToPayTxSizeFee.AddedTokenWeight,
                    BaseTokenWeight  = symbolToPayTxSizeFee.BaseTokenWeight
                });
            }

            await _transactionSizeFeeSymbolsProvider.SetTransactionSizeFeeSymbolsAsync(new BlockIndex
            {
                BlockHash   = block.GetHash(),
                BlockHeight = block.Height
            }, transactionSizeFeeSymbols);
        }