我如何使用Go连接到已经部署的智能合约?



我是一名崭露头角的区块链开发人员,我一直在使用Go来深入研究事物,因为这是我最熟悉的语言。

我现在陷入了僵局,希望能得到一些帮助。

几乎所有我看过的关于使用Go使用智能合约的教程都涉及到使用geth将Solidity源代码编译成它的ABI和二进制形式,然后生成一个带有绑定到合约的. Go文件,用于部署和其他操作。

当使用我自己创建的合约时,这很好,但是我如何与已经部署的第三方合约(例如Cryptokitties)进行接口呢?基本上,在我可能无法访问契约源代码以生成绑定的情况下。

通过Cryptozombies课程,使用Solidity我只需要定义所需合约的接口,但Go似乎没有那么简单。

您可以手动将ABI文件从Etherscan保存到本地工作区以生成绑定。

例如,您可以从这个CryptoKitties合约中复制ABI。只要合约经过验证,您就可以随时获得abi。

注意:

  • Solidity是唯一不需要ABI的语言,因为它是EVM(以太坊虚拟机)合约开发的母语。
  • 您也可以使用Etherscan API以编程方式检索ABI。但我认为,在大多数情况下,我们不需要走那么远。

阅读更多:https://geth.ethereum.org/docs/dapp/native-bindings