#reward #center #token #seller #offers #nft #buyer

mtly-reward-center

使用 spl 代币奖励 NFT 的买家和卖家

2 个版本

0.2.8 2023年5月6日
0.2.6 2023年5月2日

#20 in #center

AGPL-3.0

105KB
2K SLoC

Motley Labs 奖励中心 (rwdD3F6CgoCAoVaxcitXAeWRjQdiGc5AVABKCpQSMfd)

是 Holaplex 奖励中心 的分支,允许 Motley Labs 快速迭代新功能。

此分支部署在 rwdD3F6CgoCAoVaxcitXAeWRjQdiGc5AVABKCpQSMfd 并可供公众使用。

mtly-reward-center 基于 mtly-auction-house 构建。

在 crates.io 上有可用的 crate: Crate

在 NPM 上有可用的 TypeScript API: NPM

链上二进制验证

验证链上二进制步骤

cd program
anchor verify rwdD3F6CgoCAoVaxcitXAeWRjQdiGc5AVABKCpQSMfd

奖励中心

一个程序,在成功出售 NFT 后,允许以 spl 代币作为奖励支付给买家和卖家。

定义

奖励中心 - Metaplex 拍卖屋的装饰器,拥有用于支付和管理奖励规则的代币金库。它也是注册在拍卖屋程序中的拍卖师代表。

奖励 - 从奖励中心金库支付一定数量的代币给买家和卖家作为 NFT 销售的奖励。

奖励规则 - 目前有 2 个配置选项,奖励中心的管理员可以调整以奖励支付销售。它们是卖家奖励支付基准点和支付除数。

支付除数 - 从销售金额中除以的金额,这将产生支付给买家和卖家的代币数量。例如,除数为 2 将支付销售金额的一半作为代币。确保购买和奖励代币使用相同的位数非常重要,以确保数学正确。

卖家奖励支付基数 - 发送给卖家的奖励比例。其余的奖励归买家所有。例如,5,000个基数将导致买家和卖家平分奖励。

方法

拍卖行的权限可以创建一个与其配套的奖励中心,以便在拍卖行促成销售时分配代币。

奖励中心是拍卖行计划的拍卖行的代表。

旨在拍卖行的上市、出价和购买指令将通过奖励中心程序代理,以便它们可以添加奖励。为上市和出价创建账户以跟踪执行拍卖行销售所需的信息。

奖励中心的权限可以根据NFT与Metaplex Collection的关联来控制哪些NFT获得奖励。可奖励的集合是规定NFT获得奖励资格的链上记录。

通过拍卖行代表的拍卖行功能,奖励中心PDA被赋予对上市和出价的控制权,确保任何取消请求都通过奖励中心程序进行状态变更的记录。

指令

创建奖励中心

拍卖行的权限创建一个奖励中心并设置奖励规则。

更新奖励中心

具有奖励中心的拍卖行的权限调整其配置(例如,集合预言机、奖励规则)。

提取奖励中心资金

奖励中心的权限可以提取存储在奖励中心金库中的代币。

创建上市

用户通过奖励中心程序出售NFT。这会导致调用拍卖行的sale指令的CPI调用。生成上市记录以跟踪销售订单。

取消上市

用户取消上市,导致调用拍卖行的cancel CPI调用并在上市上保存取消时间。

更新上市

上市的所有者调整NFT的销售价格。

购买上市

通过调用拍卖行的depositpublic_buyexecute_sale指令分别促进NFT的销售,无需创建出价账户。然后根据拍卖行权限配置的奖励规则分配给买家和卖家奖励。

创建出价

用户对NFT进行出价,导致调用拍卖行的public_bid CPI调用并创建奖励中心的出价账户。出价金额从用户的钱包中扣除并放入其托管账户。

取消出价

用户取消出价,导致调用拍卖行的cancel CPI调用并在出价上保存取消时间。出价金额从用户的托管账户中扣除并转回用户的钱包。

接受出价

通过调用拍卖行的sellexecute_sale指令分别促进NFT的销售,无需卖家创建上市账户并允许“接受”未决出价。然后根据拍卖行权限配置的奖励规则分配给买家和卖家奖励。

测试

为了运行程序规范,执行以下操作

$ cd program
$ ./build.sh
$ ./test.sh

依赖关系

~40MB
~692K SLoC