-1

我正在尝试与 Chainlink VRF 功能进行交互。

我有一个协调员合同,需要随机数才能从牌组中抽牌。Coordinator 调用实现 Chainlink 的 VRFConsumerBase 合约的随机数生成 Oracle。

我希望我的协调员/甲骨文使用用户为抽奖价格发送的以太币自动购买 LINK 代币,以便它始终可以向 VRF 功能提供所需的 LINK 费用,并且不需要人工手动充值合同关联。

有没有关于如何实现这一目标的工作示例/教程?我真的希望避免强迫我的合同用户自己购买 LINK。

谢谢!

4

1 回答 1

3

合约本身不能“自动将 LINK 转移给它”,因为要将 LINK 从一个帐户转移到另一个帐户,LINK 的所有者必须是签署交易的人,但是,还有其他一些方法可以实现您正在寻找的最终结果。

1 - 您可以通过编程方式在像 Uniswap 这样的 DEX 上进行交换,而不是直接转移,即https://docs.uniswap.org/protocol/V2/guides/smart-contract-integration/trading-from-a-smart -合同

2 - 如果您知道合约需要多少 LINK,您可以简单地预先为它提供资金,或者在它创建时。我猜这不是你的情况。

3 - 在区块链外部进行。即你可以运行一个进程,每隔一段时间用链接为合同提供资金,检查它是空的还是接近空的

4 - 您可以利用元交易让玩游戏的人不需要任何链接。请参阅此示例。请注意,这仍然使用我在最后一点提到的外部中继器

5 - 我见过一些例子,其他人只需支付前期费用以确保协调人合同有充足的 LINK 资金,然后他们根据需要手动充值,使用用户存入的 eth/funds 作为一种支付来抵消它们必须将 LINK 发送到合同。

于 2021-05-09T12:37:13.667 回答