首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法使用replayPastTransactionsFlowable java将“Web3j”事务日志添加到集合列表对象中?

无法使用replayPastTransactionsFlowable java将“Web3j”事务日志添加到集合列表对象中?
EN

Ethereum用户
提问于 2020-02-14 09:14:47
回答 1查看 323关注 0票数 0

我试图创建一个api,在其中我必须在json对象中提供事务日志,但是im无法将replayPastTransactionsFlowable的结果添加到集合对象中

代码语言:javascript
运行
复制
    @GetMapping("/test")
public List<Transaction> test() throws InterruptedException, ExecutionException, IOException {
    String address = "0xeedc155ae507fb0a9becae6315286183a23229b0";
    List<Transaction> transactions = new ArrayList<Transaction>();
    Web3j web3j = web3jConfig.initializeWeb3j();
    System.out.println("test Running.......");
    BigInteger block = web3j.ethBlockNumber().send().getBlockNumber();
    System.out.println("blockno:" + block.intValue());
    int block_no = block.intValue();


Flowable<Transaction> replyBlocks   = web3j.replayPastTransactionsFlowable(DefaultBlockParameterName.EARLIEST, DefaultBlockParameterName.LATEST);
replyBlocks.forEach(temp->{
    System.out.println("into replyBlocks");
    System.out.println(temp.getBlockNumber());
        transactions.add(temp); //It's an collection object,and value is not adding into it 
})  ;

    return transactions;
}

}我使用以下两个dep

代码语言:javascript
运行
复制
    <dependency>
        <groupId>org.web3j</groupId>
        <artifactId>core</artifactId>
        <version>4.5.5</version>
    </dependency>

    <dependency>
        <groupId>org.web3j</groupId>
        <artifactId>contracts</artifactId>
        <version>4.5.5</version>
    </dependency>
EN

回答 1

Ethereum用户

发布于 2020-02-14 16:50:48

尝尝这个

代码语言:javascript
运行
复制
import java.math.BigInteger;

import org.springframework.web.bind.annotation.*;
import org.web3j.protocol.Web3j;
import org.web3j.protocol.core.DefaultBlockParameterName;
import org.web3j.protocol.core.methods.response.Transaction;
import org.web3j.protocol.core.methods.response.Web3ClientVersion;
import org.web3j.protocol.http.HttpService;

import io.reactivex.Flowable;

@RestController
@RequestMapping("/api")
public class SimpleResource {

    @GetMapping("/transactions")
    public Flowable<Transaction> getTransactions() throws Exception {
        System.out.println("call transactions");
        Web3j web3j = Web3j.build(new HttpService());
        Web3ClientVersion web3ClientVersion = web3j.web3ClientVersion().send();
        String clientVersion = web3ClientVersion.getWeb3ClientVersion();
        System.out.println("clientVersion......." + clientVersion);
        BigInteger block = web3j.ethBlockNumber().send().getBlockNumber();
        System.out.println("blockno:" + block.intValue());
        Flowable<Transaction> transactions =  web3j.replayPastTransactionsFlowable(DefaultBlockParameterName.EARLIEST,
                DefaultBlockParameterName.LATEST).serialize();
        return  transactions;
    }
}
票数 1
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/79857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档