交易汇率Canister(XRC)

交易汇率 Canister(Exchange Rate Canister ,简称 XRC )是一个强大的工具,能够为各种应用和业务提供关键的汇率信息。


XRC,你是谁?

如果你是第一次听说 XRC ,那么你可能会有些困惑。你可能会问:“ 这个 XRC 到底是什么?” 好问题。

简单来说,XRC 是一个在 uzr34 系统子网上运行的 Canister ,它的主要任务是给请求的 Canister 提供汇率信息。这就像是一个全天候的汇率咨询顾问,无论你是想查找 BTC/ICP ,ICP/USD 还是 USD/EUR 的汇率,它都能为你提供服务。并且,你可以指定一个特定的时间,获取那个时间点的汇率。如果你没有指定时间戳,那么它将为你提供当前的汇率。

XRC 构成了一个链上的汇率预言机,这对 DeFi 应用非常有用,但也可以为任何需要汇率信息的应用增加价值。

NNS 里负责铸造 Cycles 的 Canister 将使用 XRC 来获取最新的 ICP/XDR 汇率,这对于 ICP 转换为周期非常必要。


XRC,我如何使用你?

“ 这个 XRC 听起来非常酷,但我怎么使用它呢?” 使用 XRC 非常简单。

首先,你需要知道 XRC 的 ID ,它是 uf6dk-hyaaa-aaaaq-qaaaq-cai 。然后,你可以向 XRC 发送一个请求,这个请求包含一个基础资产,一个报价资产,以及一个可选的时间戳。

type GetExchangeRateRequest = record {
   base_asset: Asset;
   quote_asset: Asset;
   timestamp: opt nat64;
};

在你发送请求后,XRC 将会回复你一个结果。这个结果可能是一个成功的汇率,也可能是一个错误信息。

type GetExchangeRateResult = variant {
   Ok: ExchangeRate;
   Err: ExchangeRateError;
};

这里需要注意的是,你的请求必须包含足够的周期(Cycles),否则 XRC 会返回一个错误。实际上,每次调用的成本取决于你请求的资产类型和 XRC 内部汇率缓存的状态。


XRC,你是怎么工作的?

现在,你可能对 XRC 的工作原理感到好奇。毕竟,知道一个事物是如何运作的,才能更好地利用它,对吧?

在接收到你的请求后,XRC 会开始工作。它会查询所有支持的交易所,获取你请求的加密货币资产相对于 USDT 的汇率。然后,它会计算出一个汇率,并将这个汇率存入缓存,以便下次使用。

如果你请求的是一个加密货币/加密货币的基础-报价对,那么 XRC 会从查询到的 B/USDT 和 Q/USDT 的汇率中派生出 B/Q 的汇率。

除了查询交易所,XRC 还会自动从外汇数据提供商那里获取外汇汇率,以及查询多个稳定币的汇率,以推导出 USD/USDT 的汇率。

如果请求成功,那么响应除了汇率外,还包含一些元数据,这些数据可以帮助你确定接收到的汇率的可信度。