Chainlink
無法使用代工廠的 cast send 命令送出交易
我無法使用
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站點。