如何让智能合约自动购买LINK(或其他ERC20)代币



我正在尝试与Chainlink VRF函数进行交互。

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

我希望我的Coordinator/Oracle使用用户发送的以太币自动购买LINK代币,这样它就可以始终向VRF功能提供所需的LINK费用,并且不需要人工用LINK手动补足合同。

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

谢谢!

合同本身不能"自动将LINK转移到它",因为要将LINK从一个帐户转移到另一个帐户,LINK的所有者必须是签署交易的人,然而,还有一些其他方法可以实现您想要的最终结果。

1-您可以通过程序在类似Uniswap的DEX上进行交换,而不是直接转账,即https://docs.uniswap.org/protocol/V2/guides/smart-contract-integration/trading-from-a-smart-contract

2-如果你知道合同需要多少LINK,你可以提前或在创建时预先为其提供资金。我猜你不是这样的。

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

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

5-我见过一些例子,其他人只需支付预付费用,以确保协调员合同有足够的LINK资金,然后他们根据需要手动补足,使用用户存入的eth/资金作为一种付款,以抵消他们必须向合同发送LINK的情况。

最新更新