ECO.DAO is a Coding Project for the module "Introduction to Blockchain Technology".
Please, see the whitepaper and the pitch deck for more information.
The contract is ready to be deployed, however, it is very lengthy (see Room for imporevements).
Straightforward deployment via import of the ECO.DAO sol contract, compiling it, and deploying it.
Requires Node.js and NPM
- Initialize: run
$ npm install -g truffle
and then$ truffle init
- Compile: run
$ npm install @openzeppelin/contracts
and then$ truffle compile
- Deploy: run
$ truffle develop
and thentruffle(develop)> deploy
We mainly follow the established ERC-1155 token standard. We do not override functionalities besides overrides that are required by Solidity for improved interoperability (e.g., interface improvements).
For security reasons, we further make use of the code from the OpenZeppelin repository, which contains tested and constantly updated smart contract standards. Additionally, we make use of OpenZeppelin Libraries for increased security when adding custom functionalities which require computations and counters.
Specifically, we make use of
The ECO.DAO contract is currently very long, almost exceeding the byte size limit of 24576 bytes that was proposed in EIP-170 and introduced by the Spurious Dragon Ethereum Update.
Removal of error strings enabled us to comply with the byte size limit. However, further steps need to be taken to reduce the contract size, for example by following common guidlines for optimization.