Ether
API 呼叫應該在 Solidity 後端還是 Javascript 前端?
我對區塊鏈開發相當陌生。當 API 中的條件為真時,我想在我的合約中呼叫一個函式。我應該在我的合約中還是在我的前端呼叫這個 API?
如果您的情況發生在您的智能合約中,例如您已經達到一定數量的眾籌訂閱者,您可以使用外部監視器(例如使用 node.js 守護程序)跟踪您的智能合約**
EVENTS
的活動** 。當事件在你的合約中被觸發時,它會被守護程序檢測到,進而觸發你的預程式程式碼/腳本的執行。**Ethers.io**有一個很棒的智能合約庫,你可以用它來建構你的守護程序。如果您需要**
method
在外部事件發生時(例如,使用者登錄您的網站)呼叫您的智能合約,它就像使用Web3.js庫的合約方法一樣簡單。**以下是如何在乙太坊合約上呼叫方法的片段(來自基於 JS 的 API 伺服器):
const Web3 = require('web3') const web3 = new Web3('https://mainnet.infura.io') function myFunction(myParam) { var contractAddress = '<ENTER-YOUR-CONTRACT-ADDRESS-HERE>' var contractABI = [<ENTER-YOUR-ABI-HERE>] var contract = new web3.eth.Contract(contractABI, contractAddress) var callData = contract.methods.<CONTRACT-FUNCTION>(myParam).call() callData.then(function(result) { console.log(result) }) } myFunction(<MY-PARAM>)