首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在节点js中使用tronweb无限制地获取tron网络中合同的所有事件日志?

如何在节点js中使用tronweb无限制地获取tron网络中合同的所有事件日志?
EN

Stack Overflow用户
提问于 2020-09-13 21:59:23
回答 1查看 1.8K关注 0票数 0

如何在节点js中使用tronweb无限制地获取tron网络中合同的所有事件日志?或者是否需要任何中间件存储,如redis等?需要一次获取所有数据,然后才能加载dapp主页。dApp是在react js中创建的。和Trongrid api在单个请求中有200条记录的限制。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-20 00:24:10

您可以使用fingerprint (它的工作方式类似于continue token)

代码语言:javascript
复制
async getContractTransferEventsByUser(eventName, userId) {
        let result = [];
        let tronGrid = new TronGrid(this.tronWeb);
        try {
            let continueToken = '';
            while (true) {
                let res = await tronGrid.contract.getEvents(YOUR_CONTRACT_ADDRESS, {
                    only_confirmed: true,
                    event_name: eventName,
                    limit: 200,
                    fingerprint: continueToken,
                    order_by: "timestamp,asc",
                    min_timestamp: minTime, //remove if you don't need it
                    filters: { id: userId.toString() } //if you need to filter events by one or more values, for example, by user id (if this information is presented in event log), remove if you don't need it.
                });

                if (!res.success) {
                    console.warn("Can't get events for the contract");
                    break;
                }

                result = result.concat(res.data);

                if (typeof res.meta.fingerprint !== 'undefined') {
                    continueToken = res.meta.fingerprint;
                } else {
                    break;
                }
            }
        } catch (error) {
            console.error(error);
        } finally {
            return result;
        }
    },
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63871644

复制
相关文章

相似问题

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