Skip to content

chaincode-labs/solidity-staking

Repository files navigation

用 solidity实现的一个简单质押合约,具体业务需求:

1、分四个池⼦,质押时间分别为30天,90天,180天和360天,年率化分别为30%,50%,90%,130% 2、质押:⽤户可以选择任⼀池⼦质押,到期后才可以取回本⾦。 3、奖励:⽤户质押后,按质押时间可以获取相应⽐例的奖励。奖励不是实时发放,⽽是项⽬⽅每⽉设定⼀次结算 时间,⽤户只能领取结算时间之前的所有奖励。 4、领奖,⽤户随时都可以领取上次结算奖励(最近⼀次结算时的奖励)。 5、赎回,质押结束后,⽤户可以赎回本⾦。 6、升级质押池,⽤户质押过程中可以升级为更⻓时间的质押池,升级时,先结算当前池⼦奖励,再计算新池⼦奖 励。 7、重新开仓。⽤户质押结束后可不取回本⾦,重新选择⼀个池⼦进⾏质押。 8、记录每个池⼦的质押总数量 9、记录所有正在参与质押的(本⾦或者奖励任意⼀个不为0)的⽤户。 10、紧急提币,紧急提币情况下,放弃奖励,只提取本⾦。 11、暂停功能,管理员可以暂停质押,重新开仓库和升级(所有涉及到⼊⾦操作),不可暂停紧急提币,退出,领 奖。 12、查询接⼝,可以查询任⼀⽤户的当前可领取奖励(最近⼀次结算),所有⽤户的可领取奖励(便于奖励发 放)。查询当前区块任⼀⽤户的所有奖励(可领取的 + 未结算的),当前区块所有⽤户的所有奖励。查询将来某⼀ 区块(结算时间)的⽤户奖励(可领取的 + 未结算的)。 获取所有⽤户的质押信息。

其它需求:

1、采⽤代理/实现模式(可升级) 2、使⽤单元测试对每个外部接⼝做测试。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published