最适用的ESDT价格设置方式是什么?

问题描述 投票:0回答:1

我正在 MultiversX 区块链上制作一个 dapp。它有一个功能,用户可以通过使用 EGLD 支付来购买我的 ESDT。

#[endpoint]
#[payable("EGLD")]  
fn purchase(&self, amount: BigUint){
    require!(amount >= 1000, "Purchase minimum 10 ACCEL");
    require!(amount <= 10000, "Maximum purchase limit is 10000 ACCEL")
    let caller = self.blockchain().get_caller();
    self.send().direct_esdt(&caller, &ACCEL-0fe2ec, &amount);  
    // self.send().direct_egld(&owner, )
}

我想应用一些逻辑来为我的 ESDT 设定价格。一种方法是硬编码,但我想让它变得现实。我想使用 coinmarket,这样它就可以获取 EGLD 的美元价格,并且在

purchase()
中,我将根据 coinmarket 提供的价值计算我的代币的价格。我可以使用 Rust 获取 coinmarket 的价值吗?如果是的话怎么办?如果没有,请给我提供一些相关的参考资料。 如果除了coinmarket之外还有其他方法请提及。

blockchain multiversx coinmarketcap
1个回答
1
投票

您基本上是在尝试获取信息以进行连锁经营。因此,智能合约应该与某些链上源交互以获取该特定信息。您无法从智能合约内部访问 API,因为区块链是一个封闭的环境。

价格通常从其他可以公开您需要的数据的智能合约中获取,例如:

  1. 调用其当前价格视图/端点的相关货币对(例如 EGLD-USDC 货币对合约)
  2. 智能合约预言机,专门用于链上监控 不同的现实世界数据
© www.soinside.com 2019 - 2024. All rights reserved.