1

正如文档所述

get_esdt_balance(address: &ManagedAddress, token_id: &TokenIdentifier, nonce: u64) -> BigUint

将返回余额,但仅当地址与智能合约在同一个分片中时才有效?当地址确实位于不同的分片中时,是否有已知的替代方法或智能方法可以使此工作?

4

2 回答 2

1

如果不进行跨分片调用,就无法检索用户的余额。我也认为依赖用户有一定的余额是不好的做法,因为代币很容易转移,你不会从中获得任何安全性。

但是,如果您真的想这样做(无需依赖快照或类似机制),则必须在每个具有端点以检查用户余额并使用异步调用调用的分片上部署智能合约。

于 2022-01-19T14:35:24.497 回答
1

我相信目前没有办法做你想做的事。可能您应该改变您对此的看法,也许让用户将 ESDT 发送到您的合同,进行检查并将 ESDT 发回?

于 2022-01-14T15:38:14.457 回答