konoha icon indicating copy to clipboard operation
konoha copied to clipboard

ODHack: Suggest and implement an alternative function for staking curve

Open ondrejsojka opened this issue 1 year ago • 10 comments

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.

ondrejsojka avatar May 22 '24 16:05 ondrejsojka

Can u handle this

Oshioke-Salaki avatar May 22 '24 16:05 Oshioke-Salaki

@Oshioke-Salaki Refer to CONTRIBUTING.md on how to claim a complex task, thanks

ondrejsojka avatar May 22 '24 16:05 ondrejsojka

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.

0xibs avatar May 23 '24 02:05 0xibs

i will like to jump on it

vibenedict avatar May 23 '24 02:05 vibenedict

@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?

ondrejsojka avatar May 23 '24 09:05 ondrejsojka

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 avatar May 28 '24 11:05 KeneePatel

@KeneePatel Okay, thanks, looks great, assigned you! Good luck and don't hesitate to reach out regarding Cairo

ondrejsojka avatar May 28 '24 11:05 ondrejsojka

@KeneePatel No PR from you, unassigning you, okay?

ondrejsojka avatar Jun 03 '24 08:06 ondrejsojka

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.

scobi7 avatar Jul 15 '24 07:07 scobi7

accidentally closed, finished but needs review

scobi7 avatar Jul 22 '24 15:07 scobi7