问题标签 [chainlink]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ethereum - 如何用其他合约为 Chainlink 智能合约注资?
我正在尝试用 LINK 代币为智能合约提供资金。我收到一个错误“VM错误:revert。revert交易已恢复到初始状态。注意:如果您发送值,则调用的函数应该是应付的,并且您发送的值应该小于您当前的余额。调试交易到获取更多信息。” 我的代码很简单:
Solidity 编译器 0.6.12。我究竟做错了什么?我怎样才能让它工作?
ethereum - Chainlink 核心适配器路径问题:httpGet uint256 从 treasury.gov API 返回 0
我正在尝试使用 Chainlink 连接到 API,以从下面请求中的 URL 获取 uint。问题是,每次“音量”值回到 0 时。我感觉问题是以下两件事之一:
- oracle 不喜欢访问数组。我试过“data[0]”和“data.0”。两者都适用于文档页面上的jsonPath 。
- API 返回的是字符串而不是数字(因为数字是用引号括起来的)。我也尝试了 bytes32 工作,只返回 0x0。其他 StackOverflow 帖子也显示预言机将字符串数字读取为数字。
以下代码片段是对 Chainlink 文档中显示的“重新混合部署”代码所做的唯一更改: https ://docs.chain.link/docs/make-a-http-get-request 。
这些合约正在通过 Remix/Metamask 部署在 Kovan 上,并有大量的链接为合约提供资金。我可能做错了什么?
solidity - 如何使用具有不同编译指示/编译器版本的导入来开发和编译安全帽?
安全帽不支持 https 导入。使用 npm 安装 openzeppelin 和 chainlink 并使用 @openzeppelin/@chainlink 后,我们会遇到编译指示/编译器版本问题,即使在 hardhat.config.js 中使用不同的编译器版本,甚至覆盖。您如何使用安全帽和这些导入进行开发和编译?
chainlink - 在 Brownie 中分叉主网时如何处理链链接请求?
从 brownie chainlink-mix 来看,为什么 PriceFeed 在 mainnet-fork 上运行良好,而 ApiConsumer 在同一个网络上不能满足请求?价格是否缓存在聚合器上?
chainlink - 任何人都知道为什么 Chainlink 的 PriceFeed 以“int”类型返回价格值,而价格应该始终 >= 0?
在 PriceFeed 中获取最新价格的代码是:
请注意,在函数getThePrice
、行int price
中,为什么 Chainlinkint
在价格上使用类型?为什么不直接uint
打字?是否有可能从 Chainlink PriceFeed 获得负价格?
solidity - Chainlink VRF:错误编码参数:错误:无效的 BigNumber 字符串
我正在尝试使用 Chainlink VRF 获得一个随机数,所以您好,请逐步遵循此演示:https ://www.youtube.com/watch?v=JqZWariqh5s
这是我在 Remix 上复制的内容:
当我单击getRandomNumber时,我总是收到此错误: 错误编码参数:错误:无效的 BigNumber 字符串(argument="value",value="",code=INVALID_ARGUMENT,version=bignumber/5.0.8)
并且使用fulfillRandomness,我得到这个错误: 错误编码参数:错误:无效的arrayify值(argument =“value”,value =“”,code = INVALID_ARGUMENT,version = bytes / 5.0.5)
solidity - 动态资助 Chainlink VRF
我试图了解 Chainlink VRF 如何集成到 Solidity 合约中,例如在这个随机生成的 NFT 教程中:https ://blog.chain.link/random-numbers-nft-erc721/
我的问题是关于预言机的实际资金。在 Chainlink VRF 文档中,会显示此警告:“除非您部署的合约有足够的 LINK 来支付,否则请求随机性将失败。了解如何获取测试网 LINK 并为您的合约提供资金。” 举例说明如何使用 metamask 和 Remix 为 VRF 合约提供资金。
但是,我不确定这将如何大规模运作。如果你有一个非常受欢迎的 NFT“工厂”,每天/小时/分钟可能会有很多请求,你是否只是希望提前运行这个 VRF 合约的资金以避免上述警告(似乎成本不会微不足道/难以预测)?
或者,如果您希望您的 NFT 消费者为其提供资金,您是否必须构建一些将 Ether 转换为 Link 然后将其发送到 oracle 合约的逻辑?(或者让他们去购买 Link 代币?)
我可能以错误的方式看待这个问题,但是文档中似乎没有很好地描述可伸缩性,并且仅从测试/测试网络的角度来看。谢谢你。
solidity - Chainlink VRF:无法获得随机数组
我正在尝试编辑此演示:https ://www.youtube.com/watch?v= JqZWariqh5s 以获取带有随机数的数组。
我收到此错误: contracts/RandomNumbers.sol:33:24: TypeError: Type bytes32 is not implicitly convertible to expected type uint256. draw[i] = getRandomNumber(userProvidedSeed); ^-------------------^
我究竟做错了什么 ?
chainlink - 对非合约账户的函数调用测试错误
在使用测试助手测试我们的 VRF getRandomNumber(s) 时,我们不断收到 Error: Transaction reverted: function call to a non-contract account at:
require(LINK.balanceOf(address(this)) > fee, "没有足够的 LINK 来初始化函数调用");
LINK 似乎在这里正确使用。非合约账户的含义/问题是什么?
对同一 RandomNumberConsumer 对象的其他测试是成功的。