问题反馈:Dapp的服务端和客户端开发需求
您好,
在开发我们的Dapp时,遇到了一些需要改进的查询功能,希望能够得到社区的支持与帮助。
我们的Dapp分为服务端和客户端。服务端在部署和运行时需要获取NFT,这些NFT中包含了Dapp运行时所需的信息,例如服务地址、质押的token数量以及解除质押的周期。
具体需求如下:
- 服务启动与停止:
- 在服务启动时,需要质押一个NFT和一定数量的token。
- 在服务停止前,需要先解除质押并取回NFT和token,才能停止服务。
- 如果在未解除质押的情况下停止服务,质押的token将会被罚没,并分配给质押周期内的用户。
- 客户端功能:
- 客户端需要查询这些NFT以获取所有的服务节点,并选择一个服务节点进行使用。
- 为此,需要查询出所有质押状态的NFT。
目前,我们通过listAssets(factoryAddress: "")可以查询出所有NFT,但还需要遍历每个NFT的质押状态,这不仅影响性能,而且涉及到分页处理更加复杂。因此,希望能够增加更多的查询方法,可以直接查询出质押状态的NFT。
请问ArcBlock client是否支持更多的自定义查询功能,以便更高效地满足我们的需求?
非常感谢!
5 条回复
想到解决方案是质押到一个地址,从这个地址查询NFT
https://beta.abtnetwork.io/explorer/txs/0733A9B311794A8224069EA614CEBD5E3B5A8532C3BAFCF641BAB8C8E97B91A8
不知如何质押到一个地址
知道错误原因了:应该是 to: aliceWallet.address
const stakeAssetAddress = await client.stake({ assets: [assetAddress], tokens: [token], to: aliceWallet.address, locked: false, message:'stake-test', wallet });
当asset解除质押后,listStates还是会查询出这条记录,无法把revokedAssets过滤掉:
现在仍然不知如何查询出,处于质押状态的某类NFT,通过这个方法实现去中心化的服务注册中心。