1 Star 0 Fork 0

Zarror/pier-client-ethereum

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
consumer.go 1.29 KB
一键复制 编辑 原始数据 按行查看 历史
package main
import (
"fmt"
)
func (c *Client) StartConsumer() error {
loop := func(interchainCh chan *BrokerThrowInterchainEvent, receiptCh chan *BrokerThrowReceiptEvent) {
for {
select {
case interchainEv := <-interchainCh:
ibtp, err := c.Convert2IBTP(interchainEv, int64(c.config.Ether.TimeoutHeight))
if err != nil {
logger.Warn("convert to IBTP", "src", interchainEv.SrcFullID, "dst", interchainEv.DstFullID, "idx", interchainEv.Index, "err", err.Error())
continue
}
c.eventC <- ibtp
case receiptEv := <-receiptCh:
ibtp, err := c.Convert2Receipt(receiptEv)
if err != nil {
logger.Warn("convert to IBTP", "src", receiptEv.SrcFullID, "dst", receiptEv.DstFullID, "idx", receiptEv.Index, "err", err.Error())
continue
}
c.eventC <- ibtp
case <-c.ctx.Done():
return
}
}
}
interchainCh := make(chan *BrokerThrowInterchainEvent, 1024)
receiptCh := make(chan *BrokerThrowReceiptEvent, 1024)
_, err := c.session.Contract.WatchThrowInterchainEvent(nil, interchainCh)
if err != nil {
return fmt.Errorf("watch event: %s", err)
}
_, err = c.session.Contract.WatchThrowReceiptEvent(nil, receiptCh)
if err != nil {
return fmt.Errorf("watch event: %s", err)
}
go loop(interchainCh, receiptCh)
logger.Info("Consumer started")
return nil
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/zarror-wang/pier-client-ethereum.git
[email protected]:zarror-wang/pier-client-ethereum.git
zarror-wang
pier-client-ethereum
pier-client-ethereum
master

搜索帮助