Go-Ethereum使用
使用 go-ethereum/ethclient
等待交易
在 ethers.js 中,可以等待使用
wait()
.ethclient
從go-ethereum
作為包使用時有沒有辦法做到這一點?我想在繼續程序之前等待結果。
創建了這個函式來輪詢客戶端的交易,返回一個只有在交易被確認後才解除阻塞的通道(並通過通道發送所述交易)
// Returns a channel that blocks until the transaction is confirmed func waitTxConfirmed(ctx context.Context, c *ethclient.Client, hash common.Hash) <-chan *types.Transaction { ch := make(chan *types.Transaction) go func() { for { tx, pending, _ := c.TransactionByHash(ctx, hash) if !pending { ch <- tx } time.Sleep(time.Millisecond * 500) } }() return ch }