首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用铸造厂的强制发送命令来提交事务,必须对其进行身份验证

无法使用铸造厂的强制发送命令来提交事务,必须对其进行身份验证
EN

Ethereum用户
提问于 2022-10-11 21:14:04
回答 1查看 319关注 0票数 3

我无法提交交易到Chainlink VRFv2Coordinator供电的合同使用cast send。撞错了-

代码语言:javascript
复制
(code: -32000, message: Must be authenticated!, data: None)

命令

代码语言:javascript
复制
cast send 0xee8e59DBc30fA2B23B64CEE4dC9ca02a1415B363 --private-key <private-key> "requestRandomWords()" --rpc-url https://eth-goerli.alchemyapi.io/v2/<API-KEY>

有什么想法?

EN

回答 1

Ethereum用户

回答已采纳

发布于 2022-10-11 22:19:36

摘要-此特定错误

对于这个特定的问题,它与RPC_URL的权限有关。您需要修复它,更新它,或者使用不同的方法。Must be authenticated是来自rpc的错误代码,而不是智能协议。

摘要-比您想象的更多的信息,

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

更多信息

即使你克服了这一切,你还是会遇到这样的情况:

代码语言:javascript
复制
MustBeSubOwner

或者是一个通用的回复,永远!

您使用的s_subscriptionId3960,它由address 0x8fa510072009e71cfd447169ab5a84cac394f58a拥有。所以你需要用那个地址给requestRandomWords打电话。

但是,您的合同属于0xE72a5579B8dF4bC9F4EF42F8619427AE1Fe6759F,因此需要由您的地址调用它。这是不可能从两个地址调用一个函数的,因此这个函数将始终恢复!

信息太多了

我怎么找到订阅Id的?

因为您的订阅Id是一个immutable变量,这意味着它存储在契约的字节代码中,而不是存储。您可以查看原始合同创造的末尾来查看契约创建事务。在调用数据的末尾,通常存储构造函数参数。如果我们将其弹出到cast中,您将很容易地看到所有普通的东西,比如key散列79d3d8832d904592c0bf9818b621522c988bb8b0c05cdc3b15aea1b6e8db0c15和链接令牌地址326C977E6efc84E512bB9C30f76E30c160eD06F,以及接近尾端的这个无害的小f78

代码语言:javascript
复制
cast --to-base f78 dec

我们得到了3960

我们可以查看合同上那个subId的所有者,也可以直接跳到vrf.chain.link站点为该subId。

票数 2
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/137317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档