如何只查询出质押状态的NFT?
服务在启动前需要质押NFT和token,(NFT中包含服务节点信息),在停止服务前接触质押和token;客户端通过查询在质押状态的NFT获得可以提供服务的节点;
查询质押:
listStakes(params: PartialDeep<GraphQLClient.ListStakesParams>): Promise<GraphQLClient.ResponseListStakes>;
interface ListStakesParams {
addressFilter: GraphQLClient.AddressFilterInput;
assetFilter: GraphQLClient.AssetFilterInput;
timeFilter: GraphQLClient.TimeFilterInput;
paging: GraphQLClient.PageInput;
}
interface AddressFilterInput {
sender: string;
receiver: string;
direction: GraphQLClient.Direction;
}查询质押NFT信息:
const client = new Client(chainHost);
const address = '0x73AEAc8Be08298fD383152335A182E3e307Eb95a';
client.listStakes({ addressFilter: { receiver: address } }).then((res) => {
console.log(res);
});质押之后查询质押的NFT:
{
code: 'OK',
page: { cursor: '0', next: false, total: 1 },
stakes: [
{
address: 'zrjnkXu7ZGeiVHeZLBFKm6PxwKNo5DTgbruw',
assets: [Array],
genesisTime: '2024-07-27T08:28:43.566Z',
message: 'DID Mail Server Node Statk',
nonce: '',
receiver: '0x73AEAc8Be08298fD383152335A182E3e307Eb95a',
renaissanceTime: '2024-07-27T08:28:43.566Z',
revocable: true,
revokedAssets: [],
revokeWaitingPeriod: 0,
sender: '0x2B0512284Fd9B2582b704C00bc279741D98F3eE0',
slashers: [Array],
data: null,
revokedTokens: [],
tokens: [Array]
}
]
}解除质押后查询NFT信息:
{
code: 'OK',
page: { cursor: '0', next: false, total: 1 },
stakes: [
{
address: 'zrjnkXu7ZGeiVHeZLBFKm6PxwKNo5DTgbruw',
assets: [],
genesisTime: '2024-07-27T08:28:43.566Z',
message: 'DID Mail Server Node Statk',
nonce: '',
receiver: '0x73AEAc8Be08298fD383152335A182E3e307Eb95a',
renaissanceTime: '2024-07-27T09:17:18.233Z',
revocable: true,
revokedAssets: [Array],
revokeWaitingPeriod: 0,
sender: '0x2B0512284Fd9B2582b704C00bc279741D98F3eE0',
slashers: [Array],
data: null,
revokedTokens: [Array],
tokens: [Array]
}
]
}解除质押的NFT还在列表中,虽然可以看出是解除质押的,但是希望通过筛选条件不出现在列表中;
6 replies
期望
assets增加根据factory、state过滤;
🚀🚀🚀
没有太理解你这里想问的问题。关于 StakeStake 里面相关字段的解释:
0x73AEAc8Be08298fD383152335A182E3e307Eb95a 地址里会质押很多节点的NFT,NFT是不同的,那么返回的结果就是很多条记录,其中有已经解除质押的。我是想结果里去除 「解除质押状态」的NFT
z1WC8QAQFHGxVBNoe6Ziv7QoCWVyhxzBBoz 我是想将链做应用的注册中心,质押NFT服务注册,可以被应用客户端发现,解除NFT质押表示服务取消注册不再运行。listStakes查询出的数据包含了取消质押的NFT地址。虽然可以遍历查询结果过滤数据,但翻页将无法使用。
👏🏻👏🏻👏🏻