如何调用Chainlink价格喂价的getLatestPrice函数及常规配置问题
Chainlink价格喂价开发相关问题解答
是否需要将所有代码都编写在PriceConsumerV3合约中?
不需要。PriceConsumerV3只是Chainlink官方提供的最小实现示例,仅封装了基础的喂价读取逻辑,你完全可以根据自己的业务需要拆分代码结构,不需要强制把所有业务代码都写在该示例合约内。
是否可以通过继承的方式访问喂价数值?
可以,这也是官方推荐的实现方式之一。你可以将PriceConsumerV3作为基础父合约,在自己的业务合约中直接继承它,即可直接调用父合约中封装好的喂价读取方法,无需重复编写喂价初始化、数据读取、精度处理的相关逻辑。
常规的部署配置方式是什么?
即便你将PriceConsumerV3合约和自己的业务合约放在同一文件中,也不需要同时部署两个合约,常规部署流程按你的实现方式分为两类:
- 继承实现场景:仅需要部署你自己的业务合约即可,部署时传入对应链上喂价合约的地址作为构造参数即可,父合约PriceConsumerV3的逻辑会被自动编译进你部署的业务合约字节码中,不需要额外单独部署PriceConsumerV3
- 跨合约调用场景:你可以先单独部署PriceConsumerV3合约(部署时传入对应喂价地址),再将部署完成的PriceConsumerV3合约地址传入你的业务合约,在业务合约中通过接口调用的方式读取喂价数值
生产环境优先推荐使用继承实现的方式,既可以减少跨合约调用产生的额外gas消耗,也能降低多合约管理的复杂度。
内容的提问来源于stack exchange,提问作者Clint Oka
相关产品推荐
相关产品推荐

