Solidity
VRF2 createSubscription() 幫助
我對 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 中完成的