5

Ethereum Alarm Clock:

Schedule Contract Function Calls An ethereum contract that facilitates scheduling function calls for a specified block in the future. Function calls can be scheduled to be executed against any contract Scheduling can be done by contracts or ethereum account holders. Fully contained within the ethereum network.

[Q] How could I use Ethereum Alarm Clock (mainly Scheduler.sol contract) on a private ethereum network? Manually I have tried to compile contracts/* libraries/* files that located inside source code using Solidity Browser, but I face with following errors that I was not able to fix.

On CallLib.sol file

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));
               ^------------------------^

On 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)(
                   ^-------------------------^

Thank you for your valuable time and help.

  • 1
    What version of the solc compiler are you using? The current master branch is likely only going to compile under 0.3.6. – Piper Merriam Jan 9 '17 at 17:22
  • Ah that was the problem, I was using Solidity Browser's default compiler version, which was 0.4.8. I changed compiler to 0.3.5 as you recommended and it compiled. Solidity Browser frozens or takes around 10 minutes to complete compiling due to size of the code (I pasted all contracts into same file and compiling all together), may it be more efficient to deploy the contract code using geth? @PiperMerriam. Is there any way I can make this question answered? – alper Jan 9 '17 at 19:10
  • Solditiy Browser seems unable to deploy and mine the Ethereum Alarm Clock Contract, due to getting overloaded and frozen. – alper Jan 9 '17 at 19:36
  • 1
    The alarm system of contracts is not a simple one so this does not surprise me. If memory serves it uses around 10 libraries and 4 contracts which have a complex linking hierarchy. Sometime in the very near future (1-2 months) I'll be getting the library back up-to-date and deployable again using populus. – Piper Merriam Jan 11 '17 at 15:37
  • 1
    I wrote a very simple way to schedule calls to contracts (Chronos). The code is public so you could give a try. I am still testing it but is running on Rinkeby already in case you want to try it. You will find the info here – Jaime Apr 6 '18 at 13:16
1

The version you linked (0.7.0) was released in the 31st of January, 2016. At that time, the latest Solidity release was 0.2.1 (30th of January, 2016).

If you switch your compiler version to that Solidity release on the Remix IDE, the contract will compile just fine. You can find a working ETHFiddle snippet here.

Keep in mind that the Ethereum Alarm Clock contract is useless in private networks as it relies on external parties (humans) to be rewarded in Ether to actually actuate the alarm.

0

It got easier to deploy EAC on any network, including local network.

Solution

In existing or new NPM project run:

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

Then when you have running network, run:

npx eac-deploy-contracts

This is using new @ethereum-alarm-clock/lib.

Resources

If you would like to see full tutorial, please see:

Text tutorial: https://github.com/ethereum-alarm-clock/ethereum-alarm-clock/wiki/Integration-using-EAC-JavaScript-library

Video tutorial: https://youtu.be/DY0QYDQG4lw

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.