After being introduced to blockchain technology through mining ether, I really wanted to create a contract that would be able to divide the rewards between me and my family members. This has been a long time goal for me and I am very glad to have been able to see it through!
What it does
Payroll system for employees and partners.
A mining farm's payout is deposited to the contract's address.
At a given time, proceeds are divided amongst the employees.
Employees then have the opportunity to withdraw their respective share.
Administrative tools have been included in order to On and Off-board employees or partners. Security controls have also been put in place in order for the administrator to lock and reconfigure accounts in the event of an account compromise.
How I built it
Challenges I ran into
Solidity has certainly been a challenge to overcome. I am very thankful for all the brilliant minds at ETH SF for lending a helping hand. The time feature was certainly a challenge. As I was not working with off-chain calls, an accurate representation of time was not directly available. Time in the contract is inferred through the approximate time it takes to create a new block. Although not entirely accurate, it seemed to be a fitting measure of time for those who are working so closely with them. This measure also mitigates the impending end of UNIX time.
Accomplishments that I'm proud of..
This is my first large Solidity project and the work of my very first hackathon! I had a great time and am really happy with how the contract turned out. It certainly is in a development stage but I do believe a fully fleshed out version is within reach.
What I learned
I learned a lot about Solidity and the unique ways to solve it's restrictions. I do hope to learn how to structure my contracts more elegantly to strengthen my use of Solidity best practices. Unfortunately, I did not have time to implement external contracts or APIs, but I believe working solely in Solidity strengthened my understanding of the language and the structure of smart contracts as a whole. I'm looking forward to refining my contract as I learn more.
What's next for Ether Miner Payroll System
I do hope to implement Kyber in order to allow for employees to choose the payout token of their liking! I will hopefully deploy an audited version and proof-read version of this project onto the live Ethereum network for my own personal use.