Contract-Invocation

使用 C 編寫的程序呼叫乙太坊智能合約的視圖函式

  • December 26, 2021

我的嘗試是呼叫一個視圖函式來使用 C 程序從區塊鏈上的合約中檢索一些數據。我確實有契約的界面。

我認為我需要執行兩件事才能完成此任務:

  • 首先,程序需要連接到執行 EVM 的節點。通常使用 Metamask 和 web3.js 很容易。即使在這種情況下,我也不認為這很容易。是否可以在不使用 Metamask 的情況下連接到節點?你會怎麼做?您認為這項任務最大的問題是什麼?
  • 其次,我需要創建一個原始交易以發送到節點,原始交易是指真正的原始交易。無論如何,一旦我建立了聯繫,這應該不是不可能的。由於我只需要呼叫一個函式,因此我正在考慮使用 remix 或 truffle 進行一次呼叫,然後檢查發送的數據並嘗試複製從 C 程序打開的連接。你認為有可能做這樣的事情嗎?哪一部分在你看來是不可能的?

當然我也問你是否知道任何項目或任何人做過類似的事情,即使是其他語言,如果你發布它,我將非常感激。

我覺得可以參考原生dapp。我們可以將 golang 程式碼綁定到智能合約然後呼叫它

https://github.com/ethereum/go-ethereum/wiki/Native-DApps:-Go-bindings-to-Ethereum-contracts

是否有一個 c++ 庫來編碼 abi

您需要將流操作更改為char *內容。

有關如何編碼 args 的資訊https://docs.soliditylang.org/en/v0.5.3/abi-spec.html

所以你需要一個節點提供者和一些服務來簽署 tx 而無需輸入程式碼。我用ethsigner

引用自:https://ethereum.stackexchange.com/questions/57103