Beispiel #1
0
        private List <TransactionAtom> GetTransactionByRangeBlocks(long startBlockId, long endBlockId)
        {
            List <TransactionAtom> transferContractList = new List <TransactionAtom>();

            long startPosition = 1;
            long endPosition   = 1600000;
            long step          = 100;

            long currentPosition = startBlockId;

            while (currentPosition <= endBlockId)
            {
                long currentStartPosition = currentPosition;
                long currentEndPosition   = currentStartPosition + step;

                var blocklimit = new BlockLimit
                {
                    StartNum = currentStartPosition,
                    EndNum   = currentEndPosition
                };
                BlockList qqqq = _walletClient.GetBlockByLimitNext(blocklimit);

                foreach (Block block1 in qqqq.Block)
                {
                    foreach (Transaction transaction in block1.Transactions)
                    {
                        foreach (Transaction.Types.Contract contract1 in transaction.RawData.Contract)
                        {
                            if (contract1.Type == Transaction.Types.Contract.Types.ContractType.TransferContract)
                            {
                                ByteString       parameterValue   = contract1.Parameter.Value;
                                TransferContract transferContract =
                                    TransferContract.Parser.ParseFrom(parameterValue.ToByteArray());

                                TronAddress     fromAccount = new TronAddress(transferContract.OwnerAddress.ToByteArray());
                                TronAddress     toAccount   = new TronAddress(transferContract.ToAddress.ToByteArray());
                                TransactionAtom ta          = new TransactionAtom(transferContract.OwnerAddress.ToByteArray(), transferContract.ToAddress.ToByteArray(),
                                                                                  transferContract.Amount,
                                                                                  transaction.RawData);

                                transferContractList.Add(ta);
                            }
                        }
                    }
                }

                currentPosition = currentEndPosition;
            }

            return(transferContractList);
        }
Beispiel #2
0
        //    [DataRow("TMy3cNNSZHY5d6F39BUbwUExJR93QDpGeh", StringType.Base58, TypeNet.Main)]
        public void DockerConnectTest(string addressBase58, StringType stringType, TypeNet typeNet)
        {
            //  ProtocolConfiguration protocolConfiguration = new ProtocolConfiguration(typeNet, "172.17.0.2", 50051);
            // ProtocolConfiguration protocolConfiguration = new ProtocolConfiguration(typeNet);
            //  ProtocolConfiguration protocolConfiguration = new ProtocolConfiguration(typeNet, "10.0.75.1", 50041);
            ProtocolConfiguration protocolConfiguration = new ProtocolConfiguration(typeNet, "10.0.75.1", 50051);

            //  ProtocolConfiguration protocolConfiguration = new ProtocolConfiguration(typeNet, "18.184.238.21", 50051);


            Wallet.WalletClient walletClient = new Latoken.CurrencyProvider.Protocol.Tron.Grpc.Api.Wallet.WalletClient(protocolConfiguration.Channel);
            NodeList            listNodes    = walletClient.ListNodes(new EmptyMessage());


            CurrencyProvider.Protocol.Tron.CurrencyProvider currencyProvider = new CurrencyProvider.Protocol.Tron.CurrencyProvider(protocolConfiguration);

            var rr  = BitConverter.GetBytes(152948);
            var ddd = rr.ToHexString2();

            BytesMessage numberMessa = new BytesMessage();

            numberMessa.Value = Google.Protobuf.ByteString.CopyFrom(ddd.FromHexToByteArray2());
            var dd = walletClient.GetBlockById(numberMessa);


            var block = walletClient.GetNowBlock(new EmptyMessage());

            //    long balance = currencyProvider.balanceByAddress(addressBase58);
            //   Console.WriteLine($"{addressBase58}:{balance}");
            //  Assert.IsTrue(balance > 0);
            List <TransactionAtom> transferContractList = new List <TransactionAtom>();

            int startPosition   = 1;
            int endPosition     = 1600000;
            int step            = 100;
            int currentPosition = startPosition;

            while (currentPosition <= endPosition)
            {
                int currentStartPosition = currentPosition;
                int currentEndPosition   = currentStartPosition + step;

                var blocklimit = new BlockLimit();
                blocklimit.StartNum = currentStartPosition;
                blocklimit.EndNum   = currentEndPosition;
                BlockList qqqq = walletClient.GetBlockByLimitNext(blocklimit);

                foreach (Block block1 in qqqq.Block)
                {
                    foreach (Transaction transaction in block1.Transactions)
                    {
                        foreach (Transaction.Types.Contract contract1 in transaction.RawData.Contract)
                        {
                            if (contract1.Type == Transaction.Types.Contract.Types.ContractType.TransferContract)
                            {
                                ByteString       parameterValue   = contract1.Parameter.Value;
                                TransferContract transferContract = TransferContract.Parser.ParseFrom(parameterValue.ToByteArray());

                                TronAddress     fromAccount = new TronAddress(transferContract.OwnerAddress.ToByteArray());
                                TronAddress     toAccount   = new TronAddress(transferContract.ToAddress.ToByteArray());
                                TransactionAtom ta          = new TransactionAtom(fromAccount, toAccount, transferContract.Amount, new TransactionHelper().GetTransactionHash(transaction));

                                transferContractList.Add(ta);
                            }
                        }
                    }
                }

                currentPosition = currentEndPosition;
            }

            //          var eeede = qqqq.Block[0].Transactions[0];
            //        var contract = eeede.RawData.Contract[0].Parameter;
        }