34 个主要重大版本发布
37.0.0 | 2024年7月18日 |
---|---|
36.0.0 | 2024年7月12日 |
35.0.0 | 2024年6月24日 |
34.0.0 | 2024年5月23日 |
0.0.0 | 2022年12月7日 |
#34 in #parity
3,595 每月下载量
在 10 个crate中使用 (3个直接使用)
2.5MB
49K SLoC
NIS 模块
提供一种非交互式的抵押变体。
许可证: Apache-2.0
lib.rs
:
非交互式抵押(NIS)模块
允许账户进行冻结拍卖,并作为回报获得无限期通货膨胀保护。
概述
锁定代币,至少与您提供的时间一样长,直到代币解锁,期间免受通货膨胀和中间奖励或兑换的干扰。
设计
每个 1..QueueCount
期的队列,以块(Period
)为单位给出。队列的大小限制在一个合理的范围内,MaxQueueLen
。一个带有 QueueCount
x u32
元素的辅助存储项,表示每个队列中的项目数量。
队列分为两部分。第一部分是基于出价大小的优先队列。第二部分是简单的先进先出队列(第二部分的大小由 FifoQueueLen
设置)。项目总是被添加到队列的开头,以便删除总是 O(1)(由于删除经常在单个加权函数(on_initialize
)下多次发生,而出价只在每个加权函数(place_bid
)下发生一次)。如果队列有优先级部分,则保持按出价大小排序,以便较小的出价在出价过大时脱落。
账户可能会将余额锁定在若干个 Period
的周期内,最多不超过 QueueCount
。该余额将被预留。为了避免碎片化,最低需达到 MinBid
。
在您的出价合并并收到收据之前,您可以立即撤回出价,并且资金不会被预留。
系统会尝试在任意时刻冻结有效总发行量(即考虑到现有收据)的目标比例。随着时间的推移,这一比例可能会通过治理逐步增加。
当代表未偿还收据的有效总发行量的比例低于 FrozenFraction
时,出价将从队列中取出并合并成收据,优先级最高的周期队列将被优先处理。如果队列中锁定的金额大于实现 FrozenFraction
所需的金额,则它将被分成多个出价并部分合并。
出价合并时,出价金额将从出价者处取出,并发放收据。收据记录了合并时出价与有效总发行量的比例。收据有两个独立的部分:一个“主要”的非同质化收据和一套可替代的“配对”代币。后者必须通过 Counterpart
特性项提供的会计功能。主要非同质化收据的所有权可以通过 nonfungible::Transfer
的实现转移。
可以通过调用 thaw
函数来减少记录的比例或完全删除收据,以换取适当比例的有效总发行量。这最早发生在收据发放后的队列周期后。调用必须由“主要”非同质化收据和相应数量的配对代币的所有者进行。
可以提供 NoCounterpart
作为配对代币系统的实现,在这种情况下,它们将在解冻逻辑中被完全忽略。
术语
- 有效总发行量:系统中所有余额的总发行量,等于活跃发行量加上所有未偿还收据的价值,减去
IgnoredIssuance
。
依赖项
~17–32MB
~546K SLoC