#nft #marketplaces #contract #collection #single #cw721 #swapping

cw721-marketplace-single-collection

单个集合合约的cw721 NFT交换市场

1 个不稳定版本

0.1.6 2024年6月13日
0.1.5 2024年5月17日

#10#cw721

Apache-2.0

140KB
3K SLoC

CW721单集合市场

允许在NFT集合上列出和提供。

索引

展开

实例化

名称 类型 描述
admin String(Address) 允许执行特权消息的地址
denom String 用于原生货币列表的代币符号
cw721 String(Address) 市场上允许的NFT集合
fee_percentage u64 百分比费用扣除,例如:1 = 1%

消息

创建

为特定的NFT创建一个出价或销售。每种类型的列表都有特定的注意事项,必须遵循以满足原始设计的用户体验。

  • 出价
    • 只能使用CW20代币
    • 用户必须给这个合约一个等于或大于出价数量的允许
  • 销售
    • 用户必须给这个合约转让权限
名称 类型 描述
id String 为列表创建的ID,不能是当前存在的ID
payment_token String(Address) 可选的cs20地址,如果为空则默认为aarch
token_id String NFT代币ID
expires 到期 列表将何时到期
price String(Uint128) 如果它是销售,则为其请求的金额,如果它是出价,则为出价金额
swap_type 交换类型 列表类型

完成

最终确定列表。执行此操作的权限取决于列表类型。

  • 销售
    • 买家必须触发此操作
    • 必须给这个合约一个等于或大于出价数量的允许
  • 出价
    • 卖家必须触发此操作
    • 必须给这个合约转让权限
名称 类型 描述
id String 列表ID

取消

取消列表,只能由列表创建者触发。

名称 类型 描述
id String 列表ID

更新

更新列表,只能由列表创建者触发。

名称 类型 描述
id String 列表ID
expires 到期 列表将何时到期
price String(Uint128) 如果它是销售,则为其请求的金额,如果它是出价,则为出价金额

UpdateConfig - 受权限控制

更新实例化时设置的合约配置。

名称 类型 描述
admin String(Address) 允许执行特权消息的地址
denom String 用于原生货币列表的代币符号
cw721 String(Address) 市场上允许的NFT集合
fee_percentage u64 百分比费用扣除,例如:1 = 1%

Withdraw - 受权限控制

通过销售费用从合约中提取获得的代币

名称 类型 描述
amount String(Number) 提取的金额
denom String 原生代币符号
payment_token 可选字符串(地址) 可选 cw20 地址以从其中提取

查询

列表

获取所有待定交换

名称 类型 描述
start_after 可选字符串 限制要开始后的 ID
limit 可选数字 限制要返回的交换数量

返回 ListResponse


GetTotal

计算总列表数,支持计算特定类型的列表,返回一个数字

名称 类型 描述
swap_type 可选 SwapType 交换类型过滤器

返回代表总交换数的数字


GetOffers

名称 类型 描述
page 可选数字 分页
limit 可选数字 限制结果数量

返回 PageResult 列表


GetListings

名称 类型 描述
page 可选数字 分页
limit 可选数字 限制结果数量

返回 PageResult 列表


ListingsOfToken

名称 类型 描述
token_id String NFT ID
swap_type 可选 SwapType 交换类型过滤器
page 可选数字 分页
limit 可选数字 限制结果数量

返回 PageResult 列表


SwapsOf

名称 类型 描述
地址 String(Address) 由特定地址创建的交换
swap_type 可选 SwapType 交换类型过滤器
page 可选数字 分页
limit 可选数字 限制结果数量

返回 PageResult 列表


SwapsByPrice

名称 类型 描述
min 可选字符串(数字) 返回的最小价格
max 可选字符串(数字) 返回的最高价格
swap_type 可选 SwapType 交换类型过滤器
page 可选数字 分页
limit 可选数字 限制结果数量

返回 PageResult 列表


SwapsByDenom

名称 类型 描述
payment_token 可选字符串(地址) 按 CW20 代币筛选
swap_type 可选 SwapType 交换类型过滤器
page 可选数字 分页
limit 可选数字 限制结果数量

返回 PageResult 列表


SwapsByPaymentType

名称 类型 描述
cw20 bool 筛选支付类型
swap_type 可选 SwapType 交换类型过滤器
page 可选数字 分页
limit 可选数字 限制结果数量

返回 PageResult 列表


详情

返回指定列表的详细信息

名称 类型 描述
id String 列表ID
结果
名称 类型 描述
creator String(Address) 列表创建者
payment_token 可选字符串(地址) 如果适用,Cw20 代币
token_id String NFT ID
expires 到期 列表过期日期
price String(Number) 提供的或请求的金额
swap_types 交换类型 列表类型

配置

查询合约的配置,返回

名称 类型 描述
admin String(Address) 允许执行特权消息的地址
denom String 用于原生货币列表的代币符号
cw721 String(Address) 市场上允许的NFT集合
fee_percentage u64 百分比费用扣除,例如:1 = 1%

分页结果

名称 类型 描述
swaps 数组 CW721Swap 查询结果
page 数字 当前页
total 数字 合约中现有总项数

列表响应

名称 类型 描述
swaps 字符串数组 交换 ID 列表

CW721Swap

名称 类型 描述
id String 列表ID
creator String(Address) 创建者地址
contract String(Address) NFT 集合
payment_token 可选字符串(地址) CW20 合约
token_id String NFT ID
expires 到期 列表过期日期
price String(Number) 请求或提供的金额
swap_type 交换类型 列表类型

到期

当某物可以过期时,内容可以是以下三种之一。 来源

AtHeight

当给定的高度大于或等于当前块高度时将过期

{
    "at_height": 10
}

AtTime

当给定的时间大于或等于当前块高度时将过期

{
  "at_time": "epoch number"
}

Never

永远不会过期

"never"

交换类型

表示正在进行的交易类型,可以是 Offer,即对某人的 NFT 的出价,也可以是 Sale,即出售拥有的 NFT 的列表

依赖关系

~4–6MB
~131K SLoC