#quadratic #contributions #calculations #random #matching #cap #funding

bin+lib pluralistic-rs

一个用于二次资金计算的Rust包

2个不稳定版本

0.2.0 2024年2月5日
0.1.0 2024年1月23日

#13 in #quadratic

MIT许可证

13KB
220 代码行

pluralistic-rs

概述

pluralistic-rs库是一个Rust包,提供基于一系列贡献计算二次资金分配的功能。库中包括生成随机贡献、管理贡献和应用二次资金公式以分配匹配资金池的健壮实现。

功能

  • 二次资金计算:使用calculate_linear_qf函数计算资金分配。
  • 匹配放大:放大匹配以饱和一轮。
  • 匹配上限策略:使用MatchingCapStrategy应用不同的上限策略(CapRedistribute)。
  • 随机贡献生成:使用实现了ContributionRandom特质生成随机贡献。

安装

pluralistic-rs添加到您的Cargo.toml依赖项中

[dependencies]
pluralistic-rs = "0.1.0"

用法

  1. 定义贡献:贡献由Contribution结构体表示,其中包含发送者、接收者和金额详细信息。

  2. 计算分配:使用calculate_linear_qf根据贡献、匹配资金池和提供的选项计算二次资金分配。

  3. 应用上限策略:利用MatchingCapStrategy定义在必要时如何上限或重新分配贡献。

  4. 生成随机贡献:使用Random特质生成用于测试和模拟目的的随机贡献。

示例

use pluralistic_rs::{Contribution, calculate_linear_qf, LinearQfOptions, Random};

fn main() {
    // Generate random contributions
    let contributions = vec![Contribution::rnd(), Contribution::rnd(), ...];

    // Define options for quadratic funding calculation
    let options = LinearQfOptions {
        matching_cap_amount: Some(1000.0),
        matching_cap_strategy: MatchingCapStrategy::Cap,
        ..Default::default()
    };

    // Calculate distributions
    let distributions = calculate_linear_qf(contributions, 5000.0, options);

    // Process distributions...
}

测试

库中包含一个tests模块,包含测试用例以确保功能按预期工作。

依赖项

  • rand:用于生成随机贡献和其他随机相关功能。

许可证

MIT

依赖项

~9–19MB
~272K SLoC