forked from ethereum-alarm-clock/ethereum-alarm-clock
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
34 changed files
with
391 additions
and
406 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,24 +1,21 @@ | ||
TODOs | ||
----- | ||
|
||
- Update tests to truffle | ||
- There are 21 tests. [8/21] but two are client tests so... [8/19] | ||
- Theres a bug in the validateEndowment / computeEndowment function | ||
that is causing 6 tests to fail, it needs to be figured out | ||
- Alarm Client needs to be updated, maybe re-written in javascript / typescript so that we can compile it for browsers | ||
- Some clean up needs to happen in the contracts so the passed args are more organized. | ||
- Events are added to the contract so that the client can retrieve them / watch them to act accordingly. | ||
|
||
0.9.0 (WIP) | ||
----------- | ||
|
||
Added: | ||
- Full rewrite of all contracts to modern solidity syntax. [70%][still finding bugs] | ||
- Full rewrite of all contracts to modern solidity syntax. [90%][done - but still refining] | ||
- Integrate Truffle framework. [100%][rewriting tests] | ||
- Port test suite from Populus to Truffle. [5/21] | ||
- Port test suite from Populus to Truffle. [done - but still refining] | ||
- New API for Schedulers [100%][need further tests] | ||
- (Add String Pool) [Needs discussion] | ||
- Use Zeppelin SafeMath.sol for consistency instead of custom MathLib.sol (Some function in MathLib.sol retained) | ||
Removed: | ||
- Digger.sol removed due to `EIP 150`_ making it obsolete. [done] | ||
- All stack depth checking also obsolete due to `EIP150` removed. [done] | ||
- SafeSendLib.sol removed due to Solidity keyword `transfer` and ``send` making it obsolete. [done] | ||
- SafeSendLib.sol removed due to Solidity keyword `transfer` and `send` making it obsolete. [done] |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,20 +1,33 @@ | ||
# Ethereum Alarm Clock | ||
|
||
[WIP - development in progress to get the EAC working.] | ||
|
||
[![Join the chat at https://gitter.im/pipermerriam/ethereum-alarm-clock](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/pipermerriam/ethereum-alarm-clock?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) | ||
|
||
Source code for the [Ethereum Alarm Clock service](http://www.ethereum-alarm-clock.com/) | ||
|
||
WIP - development in progress to get the EAC working. Please join the Gitter chat for active updates. | ||
|
||
## What is the EAC (Ethereum Alarm Clock) | ||
|
||
The Ethereum Alarm Clock is a smart contract protocol for scheduling Ethereum transactions to be executed in the future. It allows any address to set the gas, value and bytecode parameters of a custom transaction and gives _pretty_ good guarantees that the transaction will be executed during a desired window. The EAC is agnostic to callers so can be used by both users and other smart contracts. | ||
|
||
Additionally the EAC faciliates the execution of this pool of scheduled transactions through a command-line client. The EAC daemon continuously runs and searches for transactions which are scheduled to be executed soon then claims and executes them. Part of the design goal is to design incentives for people to run the EAC daemon for some sort of profit. | ||
|
||
## Running the tests | ||
|
||
_Tests are in the process of being ported over to ES6 JavaScript._ | ||
_Tests have been ported to JavaScript and can now be run using the Truffle Suite_ | ||
|
||
Originally the test suite was written in Python using the Populus framework, these still exist for reference under the tests/ directory. However, we have ported over the suite to use the Truffle framework since this may be more familiar to developers who know the JavaScript Ethereum tooling. These tests can be found in the test/ directory but be warned - this repo is in active development and many of the tests are likely to start breaking. If you would like to fix or contribute a test please open an issue or contribute a pull request. | ||
|
||
Make sure you're using node v8.0.0, truffle v4.0.0 and testrpc v6.0.1. | ||
|
||
Start testrpc in a terminal window by running `testrpc`. | ||
|
||
In another terminal run `truffle test` at the root of the directory. | ||
|
||
Status : Just two tests... | ||
Between each instance of running the tests it is advised to rebuild your build/ folder, as this may lead to bugs if not done. You can do this by running the command `rm -rf build/` and then running `truffle compile`, `truffle migrate` and `truffle test`. | ||
|
||
In progress ES6 test suite can be found in the test/ directory. Original Populus tests can be found in the tests/ directory. | ||
## Documentation | ||
|
||
To run the test suite make sure you have a testrpc running and truffle v4.0.0 installed. | ||
Currently there exists some documentation in the docs/ directory, but I make no guarantees that anything in there is up-to-date. Part of the work of the revitalization effort is to produce more in-line documentation in the code. To be safe, always refer to the documentation in the code as the final say as changes are migrating from the codebase back out into the docs currently. | ||
|
||
Run `truffle test` at the root of the directory. | ||
We host developer documentation via Doxitiy on github pages. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.