Chainlink

無法使用代工廠的 cast send 命令送出交易

  • October 11, 2022

我無法使用cast send. 擊中錯誤 -

(code: -32000, message: Must be authenticated!, data: None)

命令

cast send 0xee8e59DBc30fA2B23B64CEE4dC9ca02a1415B363 --private-key <private-key> "requestRandomWords()" --rpc-url https://eth-goerli.alchemyapi.io/v2/<API-KEY>

想法?

摘要 - 這個特定的錯誤

對於這個特定問題,它與您的 RPC_URL 的權限有關。您需要修復它、更新它或使用不同的。Must be authenticated是來自 rpc 而不是智能合約的錯誤程式碼。

摘要 - 比您想像的更多資訊

但是,您需要使用您擁有的 subId 重新部署此契約。

更多資訊

即使您確實克服了這一點,您仍然會遇到以下任何一種情況:

MustBeSubOwner

或者一個通用的恢復,總是!

s_subscriptionId您正在使用 is ,3960它由 address 擁有0x8fa510072009e71cfd447169ab5a84cac394f58a。所以你需要requestRandomWords用那個地址打電話。

但是,您的合約是由 擁有的0xE72a5579B8dF4bC9F4EF42F8619427AE1Fe6759F,因此需要由您的地址呼叫。這是不可能從兩個地址呼叫一個函式的,所以這個函式總是會恢復!

資訊量太大

我是如何找到訂閱 ID 的?

由於您的訂閱 ID 是一個immutable變數,這意味著它儲存在合約的字節碼中,而不是儲存中。您可以查看原始合約創建的結束以查看合約創建交易。在呼叫數據的末尾通常儲存建構子參數。如果我們將其彈出到演員表中,您將能夠輕鬆地看到所有正常的東西,例如 keyhash79d3d8832d904592c0bf9818b621522c988bb8b0c05cdc3b15aea1b6e8db0c15和連結令牌地址326C977E6efc84E512bB9C30f76E30c160eD06F,以及接近尾聲的這個無害的小東西:f78

cast --to-base f78 dec

我們得到3960.

我們可以查看合約中該 subId 的所有者,或者直接跳轉到該subId 的vrf.chain.link站點。

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