6 个版本
0.2.4 | 2022年11月17日 |
---|---|
0.2.3 | 2022年10月28日 |
0.1.0 | 2022年10月4日 |
#11 in #auction
92KB
2K SLoC
奖励中心
一个程序,用于在 NFT 成功销售后,将 spl 代币作为奖励支付给买家和卖家。
定义
奖励中心 - 一个 Metaplex 拍卖行的装饰器,它拥有用于支付和管理奖励规则的代币库。它也是注册在拍卖行程序中的拍卖师代表。
奖励 - 从奖励中心代币库中支付一定数量的代币给买家和卖家,作为 NFT 销售的回报。
奖励规则 - 目前有两个配置选项,奖励中心的管理者可以调整以支付销售奖励。它们是卖家奖励支付基数和支付除数。
支付除数 - 从销售金额中分割的金额,这将决定支付给买家和卖家的代币数量。例如,除数为 2 将支付销售金额的一半作为代币。确保购买和奖励代币使用相同的位数以确保数学正确。
卖家奖励支付基数 - 发送给卖家的奖励比率。其余的奖励由买家获得。例如,5,000 基数点将导致买家和卖家平分奖励。
方法
拍卖行的管理者可以创建一个与拍卖行一起使用的奖励中心,以便在拍卖行促成销售时分配代币。
奖励中心是拍卖行程序的拍卖行拍卖师代表。
针对拍卖行的上市、出价和购买指令将通过奖励中心程序进行代理,以便它们可以增加奖励。为上市和出价初始化账户,以跟踪执行与拍卖行销售所需的信息。
奖励中心的管理者可以根据 NFT 与 Metaplex 集合的关联来控制哪些 NFT 接收奖励。可奖励集合是控制 NFT 奖励资格的链上记录。
通过拍卖行代理功能,奖励中心PDA被赋予对列表和出价的权限,确保任何取消请求都通过奖励中心程序进行状态变更的记录。
说明
创建奖励中心
拍卖行的权限创建奖励中心并设置奖励规则。
更新奖励中心
具有奖励中心的拍卖行权限调整其配置(例如:收藏预言机、奖励规则)。
创建列表
用户通过奖励中心程序出售NFT。这会导致对拍卖行“销售”指令的CPI调用。生成一个列表记录以跟踪销售订单。
取消列表
用户取消其列表,导致对拍卖行的“取消”CPI调用,并在列表上保存取消时间。
更新列表
列表所有者调整NFT的销售价格。
创建出价
用户对NFT出价,导致对拍卖行的“public_bid”CPI调用,并为奖励中心创建出价账户。出价金额从用户的钱包中扣除并放入其托管账户。
取消出价
用户取消其出价,导致对拍卖行的“取消”CPI调用,并在出价上保存取消时间。出价金额从用户的托管账户中扣除并转回用户钱包。
执行销售
通过拍卖行权限的CPI调用“execute_sale”促进NFT的销售,并根据拍卖行权限配置的奖励规则向买家和卖家分配奖励。
测试
为了运行程序规范,执行以下操作
$ cd program
$ ./build.sh
$ ./test.sh
依赖项
~24–36MB
~630K SLoC