我无法提交交易到Chainlink VRFv2Coordinator供电的合同使用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>有什么想法?
发布于 2022-10-11 22:19:36
对于这个特定的问题,它与RPC_URL的权限有关。您需要修复它,更新它,或者使用不同的方法。Must be authenticated是来自rpc的错误代码,而不是智能协议。
但是,您需要使用您拥有的subId重新部署此契约。
即使你克服了这一切,你还是会遇到这样的情况:
MustBeSubOwner或者是一个通用的回复,永远!
您使用的s_subscriptionId是3960,它由address 0x8fa510072009e71cfd447169ab5a84cac394f58a拥有。所以你需要用那个地址给requestRandomWords打电话。
但是,您的合同属于0xE72a5579B8dF4bC9F4EF42F8619427AE1Fe6759F,因此需要由您的地址调用它。这是不可能从两个地址调用一个函数的,因此这个函数将始终恢复!
因为您的订阅Id是一个immutable变量,这意味着它存储在契约的字节代码中,而不是存储。您可以查看原始合同创造的末尾来查看契约创建事务。在调用数据的末尾,通常存储构造函数参数。如果我们将其弹出到cast中,您将很容易地看到所有普通的东西,比如key散列79d3d8832d904592c0bf9818b621522c988bb8b0c05cdc3b15aea1b6e8db0c15和链接令牌地址326C977E6efc84E512bB9C30f76E30c160eD06F,以及接近尾端的这个无害的小f78:
cast --to-base f78 dec我们得到了3960。
我们可以查看合同上那个subId的所有者,也可以直接跳到vrf.chain.link站点为该subId。
https://ethereum.stackexchange.com/questions/137317
复制相似问题