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); }
// [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; }