Solidity

如何在私有乙太坊網路上部署乙太坊鬧鐘合約?

  • January 22, 2019

乙太坊鬧鐘

調度合約函式呼叫 一種乙太坊合約,有助於在未來調度指定區塊的函式呼叫。可以安排函式呼叫針對任何合約執行調度可以由合約或乙太坊賬戶持有人完成。完全包含在乙太坊網路中。

$$ Q $$我如何Ethereum Alarm Clock在私有乙太坊網路上使用(主要是 Scheduler.sol 合約)?我嘗試使用 Solidity 瀏覽器手動編譯位於原始碼中的契約/* 庫/* 文件,但我遇到了以下我無法修復的錯誤。 在 CallLib.sol 文件中

Untitled:474:25: Error: Fallback function cannot return values.
   function () returns (bool) {
                       ^----^
Untitled:394:16: Error: Explicit type conversion not allowed.
       return State(CallLib.state(call));
              ^------------------------^

在 SchedulerLib.Sol 上:

Untitled:191:20: Error: Member "value" not found or not visible after argument-dependent lookup in function (address,uint256,uint8,address,bytes4,bytes memory,uint256,uint256,uint16,uint256,uint256) returns (contract FutureBlockCall) - did you forget the "payable" modifier?
       var call = (new FutureBlockCall).value(callConfig.endowment)(
                  ^-------------------------^

感謝您寶貴的時間和幫助。

您連結的版本(0.7.0)於 2016 年 1 月 31 日發布。當時,最新的 Solidity 版本是 0.2.1(2016 年 1 月 30 日)。

如果您將編譯器版本切換到 Remix IDE 上的 Solidity 版本,合約將編譯得很好。您可以在此處找到有效的 ETHFiddle 片段

請記住,乙太坊鬧鐘合約在私有網路中是無用的,因為它依賴於外部各方(人類)在乙太坊中獲得獎勵來實際啟動警報

在任何網路(包括本地網路)上部署 EAC 變得更加容易。

解決方案

在現有或新的 NPM 項目中執行:

npm i --save @ethereum-alarm-clock/lib

然後當你執行網路時,執行:

npx eac-deploy-contracts

這是使用新的 @ethereum-alarm-clock/lib

資源

如果您想查看完整的教程,請參閱:

文字教程:https ://github.com/ethereum-alarm-clock/ethereum-alarm-clock/wiki/Integration-using-EAC-JavaScript-library

影片教程:https ://youtu.be/DY0QYDQG4lw

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