0

我的 NFT 令牌元数据在 URL 中。我想获取 json 格式的 url 内容,然后转换为可用于制作 NFT 令牌的对象。

下面是我的智能联系人的一部分,它显示了一个动态生成元数据 URL 的功能。我在另一个函数中调用它并获取当前令牌 URI。之后,我将此 url 传递给 get_token_metadata 以获取 URL json 数据。我测试了 http、reqwest、curl 等不同的库。但是我无法成功,因为这些库需要一个“异步”功能,我不知道如何在智能合约上开发它。

pub fn get_token_url(&mut self) -> String {
    let s1 = "url".to_string();
    let s2 = self.counter.to_string();
    let s3 = format!("{}{}.json", s1, s2);
    println!("{}", s3.to_string());
    return s3.to_string();
}


pub fn get_token_metadata(url: String) {
   // how do I develop this functions?
}

显然,如何获取 URL json 数据,以及如何转换为 json 和对象?

4

1 回答 1

1

不幸的是,答案是“你不能”。链上程序无法访问外部世界,因此您不能在程序中使用Http或使用类似的东西Reqwest。这允许链就账本的状态达成共识——如果每个节点都必须查询外部世界,那么几乎不可能达成共识。

要解决您的问题,您必须重新考虑您的解决方案,可能会将数据从链下获取并将其传递给您的程序。

于 2021-09-22T09:54:47.390 回答