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

Download history 285/week @ 2024-05-05 466/week @ 2024-05-12 796/week @ 2024-05-19 674/week @ 2024-05-26 1017/week @ 2024-06-02 838/week @ 2024-06-09 460/week @ 2024-06-16 1068/week @ 2024-06-23 662/week @ 2024-06-30 662/week @ 2024-07-07 1004/week @ 2024-07-14 726/week @ 2024-07-21 878/week @ 2024-07-28 625/week @ 2024-08-04 852/week @ 2024-08-11 1141/week @ 2024-08-18

3,595 每月下载量
10 个crate中使用 (3个直接使用)

Apache-2.0

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