Solidity

VRF2 createSubscription() 幫助

  • April 6, 2022

我對 Solidity 和區塊鏈非常陌生,雖然有 Web 開發人員的背景,但我正在通過 freeCodeCamp.org 頻道關注這些技術的 Youtube 影片,其中 VRF v1 已實現。然後我將其更新到契約上的 VRF v2,我可以說我了解它的周期,並且它通過 Remix 和訂閱管理器執行良好。

儘管我對嘗試在 Rinkeby 測試網或與 Infura 端點分叉的 ganache-cli 上使用 Brownie(Python) 以程式方式實現它時有疑問

創建訂閱():

function createNewSubscription() private onlyOwner {
 // Create a subscription with a new subscription ID.
 address[] memory consumers = new address[](1);
 consumers[0] = address(this);
 s_subscriptionId = COORDINATOR.createSubscription();
 // Add this contract as a consumer of its own subscription.
 COORDINATOR.addConsumer(s_subscriptionId, consumers[0]);
}

使用上述功能通過我的合約創建訂閱時,它將合約地址設置為訂閱的管理員,而當我通過 Chainlink 網站上的訂閱管理器創建它時,它將我的 Metamask 帳戶設置為我想要的管理員.

有沒有辦法通過腳本獲得相同的?

VRFv2協調器合約在分配訂閱的所有者/管理員時使用msg.sender,因此您需要確保交易的簽名者是使用者錢包帳戶。您可以通過python 腳本查看它是如何在 brownie starter kit 中完成的

引用自:https://ethereum.stackexchange.com/questions/125461