ERC721插件
ERC721协议
ERC721的标准接口
interface ERC721 {
// 返回指定地址的NFT余额,一个地址可能会拥有多个
function balanceOf(address _owner) external view returns (uint256);
// 根据指定的tokenId返回该NFT的拥有者地址
function ownerOf(uint256 _tokenId) external view returns (address);
// 安全的将指定的tokenId的NFT从_from地址转移到_to地址,并且还可以携带一些额外数据
function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable;
// 安全的将指定的tokenId的NFT从_from地址转移到_to地址,不能携带一些额外数据
function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable;
// 将指定的tokenId的NFT从_from地址转移到_to地址
function transferFrom(address _from, address _to, uint256 _tokenId) external payable;
// 授权某个地址_approved可以转移指定tokenId的NFT
function approve(address _approved, uint256 _tokenId) external payable;
// 授权或取消授权_operator地址可以管理调用者的所有NFT
function setApprovalForAll(address _operator, bool _approved) external;
// 返回指定tokenId的NFT被授权哪个地址可以进行转移
function getApproved(uint256 _tokenId) external view returns (address);
// _operator是否被授权管理_owner的所有NFT
function isApprovedForAll(address _owner, address _operator) external view returns (bool);
event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId);
event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId);
event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);
}
支持的插件大全
插件类型
| 插件名称 | 插件说明 |
---|---|---|
广告插件 | banner | banner图的管理 |
连接器 | connector | 基于低代码框架实现的app与官方api交互 |
内容插件 | content | 内容分类管理、内容管理和单页内容管理 |
地区插件 | district | 中国省市县乡的数据 |
文件插件 | file | 基于IPFS实现的文件上传下载 |
后台插件 | manager | 后台菜单管理、角色管理和管理员管理,实现RBAC鉴权 |
插件管理 | plugins | 对所有满足协议的插件进行管理 |
短信插件 | sms | 短信发送和记录查询,支持沙盒和阿里云短信 |
单点登录 | sso | 浏览器插件单点登录后,获取jwt |
用户插件 | user | 前台用户信息管理 |
Docker插件 | docker | Docker镜像、容器、网络和卷管理 |
钱包插件 | ETH | 实现以太坊节点交互的相关操作 |
钱包插件 | ERC20 | 实现ERC20协议交互的相关操作 |
钱包插件 | ERC721 | 实现ERC721协议交互的相关操作 |
钱包插件 | ERC115 | 实现ERC1155协议交互的相关操作 |
钱包插件 | ERC3525 | 实现ERC3525协议交互的相关操作 |
钱包插件 | TRON | 实现波场节点交互的相关操作 |
创建账户
请求URL: /erc721/account
请求方式: POST
请求参数:
参数名 | 类型 | 说明 | 是否必填 |
---|---|---|---|
userId | string | 用户ID | 是 |
请求示例:
{
"userId": 888
}
返回示例:
{
"msg": "success",
"code": 0,
"data": {
"private": "9c6e5621e90f928fc6054bf95554d19086bd00f97064c735442cdfa0d7c3510b",
"public": "03a02c7b45a9b244c5cd79d9a1d1061e49dca36e2c414a053fb41bae8152099435",
"address": "0xaf93670b61eed69f81a6e5db393d1d5d13b09eea"
}
}
获取账户列表
请求URL: /erc721/accounts
请求方式: GET
请求参数:
参数名 | 类型 | 说明 | 是否必填 |
---|---|---|---|
pageSize | string | 每页数量 | 是 |
pageNum | string | 页数 | 是 |
请求示例:
/erc721/accounts?pageSize=10&pageNum=1
返回示例:
{
"msg": "success",
"code": 0,
"data": {
"records": [
{
"userId": 21,
"privateKey": "",
"publicKey": "03748ea1b350b2eeb8de409303c6d3556843ed2cabe50eabb4132b5b5188429fcf",
"address": "0x8B665E3DF1ECBAC264cFEc3622Cb9049a62bD4e4",
"create_time": "2024-08-04 14:12:51",
"update_time": "2024-08-04 14:12:51"
}
],
"total": 1
}
}
发布合约
请求URL: /erc721/deploy
请求方式: POST
请求参数:
参数名 | 类型 | 说明 | 是否必填 |
---|---|---|---|
from | string | 操作用户地址 | 是 |
name | string | 代币名称 | 是 |
symbol | string | 代币符号 | 是 |
请求示例:
{
"from": "0x9999f79a9ae77b8454b7c73c9c06532ab4f2d1d9",
"name": "NFT 721",
"symbol": "777"
}
返回示例:
{
"msg": "success",
"code": 0,
"data": "0x1aa9f10cde8e8a812de0b82d9b6457b9d68c12b2fedb40efc60a1921d5628ba4"
}
铸造NFT
请求URL: /erc721/mint
请求方式: POST
请求参数:
参数名 | 类型 | 说明 | 是否必填 |
---|---|---|---|
from | string | 发起账户地址 | 是 |
to | string | 代币合约地址 | 是 |
account | string | 颁发给指定账户 | 是 |
tokenId | string | NFT ID | 是 |
tokenURI | string | 获取NFT相关元数据的URI | 是 |
请求示例:
{
"from": "0x9999f79a9ae77b8454b7c73c9c06532ab4f2d1d9",
"to": "0x34d42f9f770bcd711862ae6d5fb18db9d171aa20",
"tokenId": "666",
"account": "0x9999f79a9ae77b8454b7c73c9c06532ab4f2d1d9",
"tokenURI": "https://www.biwow.com"
}
返回示例:
{
"msg": "success",
"code": 0,
"data": "0xadbc5355d5ef083f2a11199ff63c98fe2ea947902665e0da62a7cfe6d3141642"
}
销毁指定NFT
请求URL: /erc721/burn
请求方式: POST
请求参数:
参数名 | 类型 | 说明 | 是否必填 |
---|---|---|---|
from | string | 发起账户地址 | 是 |
to | string | 代币合约地址 | 是 |
tokenId | string | NFT ID | 是 |
请求示例:
{
"from": "0x9999f79a9ae77b8454b7c73c9c06532ab4f2d1d9",
"to": "0x34d42f9f770bcd711862ae6d5fb18db9d171aa20",
"tokenId": "666"
}
返回示例:
{
"msg": "success",
"code": 0,
"data": "0xb22df0057aa71869d685bc800a2b39a2265c8a65dcb9a4dfb90ab8947a2bf6d5"
}
安全转移NFT归属
请求URL: /erc721/safeTransferFrom
请求方式: POST
请求参数:
参数名 | 类型 | 说明 | 是否必填 |
---|---|---|---|
from | string | 发起账户地址 | 是 |
to | string | 代币合约地址 | 是 |
sender | string | 发送方地址 | 是 |
receiver | string | 接收方地址 | 是 |
tokenId | string | NFT ID | 是 |
请求示例:
{
"from": "0x9999f79a9ae77b8454b7c73c9c06532ab4f2d1d9",
"to": "0x34d42f9f770bcd711862ae6d5fb18db9d171aa20",
"sender": "0x9999f79a9ae77b8454b7c73c9c06532ab4f2d1d9",
"receiver": "0x8B665E3DF1ECBAC264cFEc3622Cb9049a62bD4e4",
"tokenId": "666"
}
返回示例:
{
"msg": "success",
"code": 0,
"data": "0xd07e9c9d5ca1a16e10bdd0f8fc4a3da790bc28e0ce893db1827767408e31f501"
}
转移NFT归属
请求URL: /erc721/transferFrom
请求方式: POST
请求参数:
参数名 | 类型 | 说明 | 是否必填 |
---|---|---|---|
from | string | 发起账户地址 | 是 |
to | string | 代币合约地址 | 是 |
sender | string | 发送方地址 | 是 |
receiver | string | 接收方地址 | 是 |
tokenId | string | NFT ID | 是 |
请求示例:
{
"from": "0x8B665E3DF1ECBAC264cFEc3622Cb9049a62bD4e4",
"to": "0x34d42f9f770bcd711862ae6d5fb18db9d171aa20",
"sender": "0x8B665E3DF1ECBAC264cFEc3622Cb9049a62bD4e4",
"receiver": "0x9999f79a9ae77b8454b7c73c9c06532ab4f2d1d9",
"tokenId": "666"
}
返回示例:
{
"msg": "success",
"code": 0,
"data": "0x24777bb32d10d2318bf034e5e5a6bf07e7194c5aa33086841a5c44bca3a5065b"
}
授权操作人管理指定NFT
请求URL: /erc721/approve
请求方式: POST
请求参数:
参数名 | 类型 | 说明 | 是否必填 |
---|---|---|---|
from | string | 发起账户地址 | 是 |
to | string | 代币合约地址 | 是 |
operator | string | 操作人地址 | 是 |
tokenId | string | NFT ID | 是 |
请求示例:
{
"from": "0x9999f79a9ae77b8454b7c73c9c06532ab4f2d1d9",
"to": "0x34d42f9f770bcd711862ae6d5fb18db9d171aa20",
"operator": "0x8B665E3DF1ECBAC264cFEc3622Cb9049a62bD4e4",
"tokenId": "666"
}
注: 如果取消授权,只需operator
参数传"0x0000000000000000000000000000000000000000"
返回示例:
{
"msg": "success",
"code": 0,
"data": "0xa54e204b48c1bdb28111bee424bc45eea0d9be37b8241e5512504830d13c91ba"
}
授权/取消操作人管理自己所有NFT
请求URL: /erc721/setApprovalForAll
请求方式: POST
请求参数:
参数名 | 类型 | 说明 | 是否必填 |
---|---|---|---|
from | string | 发起账户地址 | 是 |
to | string | 代币合约地址 | 是 |
operator | string | 操作人 | 是 |
approved | string | 全部授权(yes)全部取消(no) | 是 |
请求示例:
{
"from": "0x9999f79a9ae77b8454b7c73c9c06532ab4f2d1d9",
"to": "0x34d42f9f770bcd711862ae6d5fb18db9d171aa20",
"operator": "0x8B665E3DF1ECBAC264cFEc3622Cb9049a62bD4e4",
"approved": "no"
}
返回示例:
{
"msg": "success",
"code": 0,
"data": "0x5ef5d23f63f0a3e0dde2f06ff6ee8be28ca004edf409ff6bae70b4c647fe10f7"
}
修改NFT的URI
请求URL: /erc721/setTokenURI
请求方式: POST
请求参数:
参数名 | 类型 | 说明 | 是否必填 |
---|---|---|---|
from | string | 发起账户地址 | 是 |
to | string | 代币合约地址 | 是 |
tokenId | string | NFT ID | 是 |
tokenURI | string | NFT 新URI | 是 |
请求示例:
{
"from": "0x9999f79a9ae77b8454b7c73c9c06532ab4f2d1d9",
"to": "0x34d42f9f770bcd711862ae6d5fb18db9d171aa20",
"tokenId": "666",
"tokenURI": "http://www.biwow.com/new"
}
返回示例:
{
"msg": "success",
"code": 0,
"data": "0x66f79e292e76073bea5d58ec877b7f628c92b935878902a254e0c53ffcb1a391"
}
查询账户下NFT数量
请求URL: /erc721/balanceOf
请求方式: POST
请求参数:
参数名 | 类型 | 说明 | 是否必填 |
---|---|---|---|
from | string | 发起账户地址 | 是 |
to | string | 代币合约地址 | 是 |
account | string | 账户地址 | 是 |
请求示例:
{
"from": "0x9999f79a9ae77b8454b7c73c9c06532ab4f2d1d9",
"to": "0x34d42f9f770bcd711862ae6d5fb18db9d171aa20",
"account": "0x9999f79a9ae77b8454b7c73c9c06532ab4f2d1d9"
}
返回示例:
{
"msg": "success",
"code": 0,
"data": 1
}
查询NFT ID对应的拥有者地址
请求URL: /erc721/ownerOf
请求方式: POST
请求参数:
参数名 | 类型 | 说明 | 是否必填 |
---|---|---|---|
from | string | 发起账户地址 | 是 |
to | string | 代币合约地址 | 是 |
tokenId | string | NFT ID | 是 |
请求示例:
{
"from": "0x9999f79a9ae77b8454b7c73c9c06532ab4f2d1d9",
"to": "0x34d42f9f770bcd711862ae6d5fb18db9d171aa20",
"tokenId": "666"
}
返回示例:
{
"msg": "success",
"code": 0,
"data": "0x9999f79A9Ae77b8454b7C73c9C06532ab4f2d1d9"
}
查询NFT ID对应的URI
请求URL: /erc721/tokenURI
请求方式: POST
请求参数:
参数名 | 类型 | 说明 | 是否必填 |
---|---|---|---|
from | string | 发起账户地址 | 是 |
to | string | 代币合约地址 | 是 |
tokenId | string | NFT ID | 是 |
请求示例:
{
"from": "0x9999f79a9ae77b8454b7c73c9c06532ab4f2d1d9",
"to": "0x34d42f9f770bcd711862ae6d5fb18db9d171aa20",
"tokenId": "666"
}
返回示例:
{
"msg": "success",
"code": 0,
"data": "https://www.biwow.com"
}
查询NFT ID被授权操作人地址
请求URL: /erc721/getApproved
请求方式: POST
请求参数:
参数名 | 类型 | 说明 | 是否必填 |
---|---|---|---|
from | string | 发起账户地址 | 是 |
to | string | 代币合约地址 | 是 |
tokenId | string | NFT ID | 是 |
请求示例:
{
"from": "0x9999f79a9ae77b8454b7c73c9c06532ab4f2d1d9",
"to": "0x34d42f9f770bcd711862ae6d5fb18db9d171aa20",
"tokenId": "666"
}
注: 批量授权操作,无法用该方法查询
返回示例:
{
"msg": "success",
"code": 0,
"data": "0x0000000000000000000000000000000000000000"
}
查询拥有者是否授权操作者管理所有NFT
请求URL: /erc721/isApprovedForAll
请求方式: POST
请求参数:
参数名 | 类型 | 说明 | 是否必填 |
---|---|---|---|
from | string | 发起账户地址 | 是 |
to | string | 代币合约地址 | 是 |
owner | string | NFT拥有者 | 是 |
operator | string | NFT操作者 | 是 |
请求示例:
{
"from": "0x9999f79a9ae77b8454b7c73c9c06532ab4f2d1d9",
"to": "0x34d42f9f770bcd711862ae6d5fb18db9d171aa20",
"owner": "0x9999f79a9ae77b8454b7c73c9c06532ab4f2d1d9",
"operator": "0x8B665E3DF1ECBAC264cFEc3622Cb9049a62bD4e4"
}
返回示例:
{
"msg": "success",
"code": 0,
"data": true
}