当前位置: 首页 > 知识库问答 >
问题:

如何存储合同地址

伍溪叠
2023-03-14

我已经使用web3j和ganache创建了一个投票Dapp,但它们的问题很小。我决定在每次新的选举开始时部署一个投票合同,并且将有一个管理员来控制合同的部署以及选举的开始和结束。因此,在部署投票合约时,只有管理员才能获得合约合约地址。我如何将地址发送给普通公民,以便他们可以调用智能合约。我曾想过将合同地址存储在一个普通的数据库中,但如果数据库被入侵或破坏,整个dapp就会崩溃。web3j中是否有任何功能可以在区块链本身中存储字符串?附:我看到了web3j。dbputString函数,但我不知道如何使用它。

private String deployContract(Web3j web3j, Credentials credentials) throws Exception {
        return Election.deploy(web3j, credentials,GAS_PRICE,GAS_LIMIT).send().getContractAddress();
    }

这是合同部署部分。

共有1个答案

甘骞尧
2023-03-14

一种常见的设计模式称为工厂。您可以有一个部署其他合约的智能合约。这将生成一个用户可见的事件。请参阅Uniswap工厂。

或者,您可以让契约构造函数evit一个emit,并由用户前端捕获。

 类似资料:
  • 我已在登录时在本地存储中设置了身份验证令牌,并在注销时将其清除。注销后,如果用户尝试再次登录,则从缓存中获取旧的身份验证令牌,而不是新设置的值。如何在清除本地存储时清除缓存。我在应用程序中使用angular 2。 登录: 注销:

  • 我有两个组件Display.jsx和DisplayList.jsx。组件协同工作以显示本地存储中的值。问题在于DisplayList.JSX handleEdit()方法切片。 Github项目 我的想法: 我在这个论坛上问如何删除本地存储值,得到了这个答案,没有解释:堆栈溢出问题 它可以工作,但现在我需要做类似的切片来编辑旧的存储值并用新的存储值替换。但是我不知道怎么做。 总结:在方法handl

  • 我有一个关于字典存储的问题。 我在读Trie数据结构,到目前为止,我已经读到它作为前缀树工作得很好。但是,我来到Trie-DS是为了看看它是否能有效地减少通过同一个单词形成的字母排列的存储。 对于ex:单词“ant”、“tan”和NAT有相同的字母,但根据Trie的说法,它继续为这些单词创建两个独立的路径。我可以理解Trie是用来存储前缀和减少冗余的。但有人能帮我减少这里的冗余吗。我想的一种方法是

  • 我正在尝试在谷歌云上迁移我的rails应用程序。我已将活动存储与地面军事系统上创建的存储桶连接起来。我上传了bucket中的文件夹“storage”,但应用程序中的所有图像都有404错误。 如何正确迁移GCS中的本地存储文件夹? 谢谢你的建议

  • 我是一名学习密码学的学生。在网上搜索之后,我仍然找不到问题的答案。我想知道如何为电子商务网站安全地存储会话ID。如果可能的话,怎么可能?请用外行的话解释一下。期待您的回答。 干杯

  • 问题内容: 目前,我正在使用一项服务来执行操作,即从服务器检索数据,然后将数据存储在服务器本身上。 取而代之的是,我想将数据放入本地存储中,而不是将其存储在服务器上。我该怎么做呢? 问题答案: 这是我存储和检索到本地存储的代码的一部分。我使用广播事件来保存和恢复模型中的值。