【问题标题】:How to subscribe to the event "incoming transaction successful"?如何订阅“进账成功”事件?
【发布时间】:2020-11-21 21:13:57
【问题描述】:

如何订阅“交易成功”事件。也就是说,我想知道以太币已经到了我的钱包里。如何使用订阅来做到这一点。我什么都不懂。

package main

import (
  "context"
  "github.com/ethereum/go-ethereum"
  "github.com/ethereum/go-ethereum/common"
  "github.com/ethereum/go-ethereum/core/types"
  "github.com/ethereum/go-ethereum/ethclient"
  "log"
)

func main() {
  client, err := ethclient.Dial("wss://mainnet.infura.io/ws/v3/XXXXXXXXXXXXXXXX")
  if err != nil {
    log.Fatal(err)
  }

  accs := map[string]string{
"0x92321477416e93Ea452f16015e2F2a13B3BDe8B7":"12e2cc06fb999fa29306f10db6b366e61a4946b9527286a0c56640c94cebd950",
  }

  keys := make([]common.Address, 0, len(accs))
  for k := range accs {
    keys = append(keys, common.HexToAddress(k))
  }

  var ch = make(chan types.Log)
  sub, err := client.SubscribeFilterLogs(context.Background(), ethereum.FilterQuery{
    BlockHash: nil,
    FromBlock: nil,
    ToBlock:   nil,
    Addresses: keys,
    Topics:    nil,
  }, ch)
  if err != nil {
    log.Fatal(err)
  }
  defer sub.Unsubscribe()

  for l := range ch {
    // ???
  }
}

请帮帮我。我在哪里可以找到示例?

enter image description here

【问题讨论】:

  • 你见过this吗?
  • 我只需要关于 INCOMING (RECEIVE) Txns 的通知。不传出,不挂起,不代币。我不知道交易哈希。

标签: go go-ethereum


【解决方案1】:

我正在查看infura.io's API documentation,但没有发现他们有支付端点。您在上面链接的image 是他们用于电子邮件通知的 UI 选项,与 API 无关。为了订阅一个动作,它必须在他们结束时启动。您必须为他们提供回调以在该操作发生时执行。您的回调会发出警报,但他们会在触发(支付)发生时调用它。他们有地方进入 webhook 吗?如果是这样,这将是您的订阅。

虽然此选项可能不是订阅,但可能的解决方法是轮询 getBalance 端点并将结果与​​之前的结果进行比较,如果有增加,请提醒您。

【讨论】:

    【解决方案2】:

    我的解决方案

    sub, err := client.SubscribeNewHead(context.Background(), ch)
    

    获取块

    b, err := client.BlockByNumber(context.Background(), l.Number)
    

    检查所有交易

     for _, tx := range b.Transactions() {
           msg, err := tx.AsMessage(types.NewEIP155Signer(tx.ChainId()))
       }
    

    在 msg.To() 地址)))

    【讨论】:

      猜你喜欢
      • 2016-01-22
      • 1970-01-01
      • 2013-11-03
      • 2011-02-24
      • 1970-01-01
      • 1970-01-01
      • 2022-06-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多