ODHack: Suggest and implement an alternative function for staking curve
Research staking curves of various protocol and select one staking curve and implement it in staking.cairo
Expected skill level: experienced Cairo and/or smart contract developer. This is a complex task.
Definition of Done
The Cairo code works as expected, has nearly full test coverage, is reasonably documented (docstrings or similar suffice) and readable.
Can u handle this
@Oshioke-Salaki Refer to CONTRIBUTING.md on how to claim a complex task, thanks
I would like to take this task.
- I will need two working days for research and 1 working day for implementation.
- I am a fullstack engineer and I have vast experience building on both ethereum and starknet. I have also deployed a couple of profile to the mainnet and contributed to a number of core projects in the ecosystem.
- I have the following skills relevant for this task: Cairo, Solidity.
i will like to jump on it
@princeibs @vibenedict @Oshioke-Salaki I'm missing details on how specifically you are planning on handling this task. Where would you look for staking curves? Which ones do you have in mind?
Hello @tensojka,
I will try to tackle this issue. Just a short introduction about myself. I am a grad student with a bit of experience in open source contribution. I am more inclined towards having backend tasks because I enjoy its complexities and I just like playing with data.
Here is how I will try to tackle this issue.
- I will first try to come up with some options for the curve, make those curve functions in the desmos graphing calculator.
- I will then present it to the team, get it approved, and start working on the implementation of the curve.
- After the implementation of its logic with manual testing, I will then write necessary tests for the function.
Note: I am not that comfortable with Cairo lang, so I will be relying on help at times with the implementation and test part, so please help out with that when in need.
@KeneePatel Okay, thanks, looks great, assigned you! Good luck and don't hesitate to reach out regarding Cairo
@KeneePatel No PR from you, unassigning you, okay?
New Staking Curve that implements linear decay. Allows for you to create a lock that sets the staking amount and time you will lock it for (create_lock(amount, lock_time). Basically queries when you do so and keeps track of locked amount and lock creation time. Then if you call get_balance_of, it applies linear decay formula which to calculate your current amount at this time stamp.
IMPORTANT:
by changing the functions like set_staking_curve, it affected almost all other test files that used these functions like test_treasury.
Not sure what we must do about this, since both curves are different.
accidentally closed, finished but needs review