问题标签 [dapp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
66 浏览

blockchain - 我们可以在不公开提供字节码的情况下部署智能合约吗?

我正在学习 dapp 和区块链,每次我们部署智能合约时,都可以在 polyscan/etherscan 上看到字节码。我们可以隐藏吗?意味着在不提供字节码的情况下部署智能合约?

0 投票
0 回答
145 浏览

blockchain - 防止生成的 NFT 的特征狙击

过去几周我一直在努力解决的问题:

我正在创建一个 NFT 集合,你可以在我的 d-app 上创建一个 NFT。图像文件将存储在 pinata 上。我不希望人们能够访问像 ipfs://FOLDER_CIT/[token_ID].png 这样的 URL,并且能够在 NFT 图像被铸造之前看到它。大多数在线解决方案要么不讨论这个问题,要么只是采取一次公开所有NFT 的方法,但我只想公开每个 NFT 的铸造。

我意识到我不能在前端有某种“秘密”URL,因为前端代码是完全可见/可修改的,而且我也不能在智能合约中真正做到这一点,因为智能合约(一旦验证),在 Etherscan 上可见。

我能想出的最佳解决方案如下:

一开始不要上传任何东西到 IPFS,但是有一个像 ipfs://FOLDER_CID/[token_OD] 这样的方案

当地址成功铸造 NFT 时,获取该令牌 ID,并将其发送到 node.js 服务器。node.js 服务器然后将通过 pinata npm 模块将相应的图像上传到正确的 ipfs://FOLDER_CIT/[token_ID].png。它还将上传正确的元数据。

这似乎很好,但问题是我希望能够逐步验证。2 向 REST API 发送请求的人实际上是令牌的合法所有者,并且他们发送到我的服务器的令牌 ID 实际上已经被铸造了。我不希望某个随机的人向我的服务器发送 POST 请求说“嘿,显示 ID 为 623 的令牌图像,谢谢!”。

有没有办法通过某种 API 来检查他们发送的交易 ID?还是我想太多了?

非常感谢你!

0 投票
1 回答
43 浏览

solidity - 如何将我的智能合约连接到我的本地测试网络?

我正在尝试完成这个 20 分钟的 Dapp 教程。https://www.youtube.com/watch?v=KkZ6iYnSDRw

我更新了 html 文件以包含合约 ABI 和合约地址,然后去 remix 以在我的 ganache 测试节点上部署我的合约。

在此处输入图像描述

一旦 ganache 启动并运行,我在 remix 的部署界面的下拉列表中选择 web 3 提供程序,它会提示我这个。

在此处输入图像描述

我编辑本地 ip 以匹配我的 ganache 7545。但是一旦我这样做,它就会变回注入的 web 3,现在我无法选择我的任何松露地址。

0 投票
1 回答
16 浏览

dapp - `dapp-build:使用链接库构建` | 为什么我会得到这个?

我有一个 dapptools 项目,当我运行时,我dapp test在测试发生之前得到以下信息:

但是,我有另一个项目没有发生这种情况。这似乎需要很多时间。

这是怎么回事?

0 投票
1 回答
21 浏览

dapp - 如何在 dapptools 中测试单个功能?

我有一个我正在尝试使用dapptools测试的功能列表,但我只想测试一个。我该如何做到这一点?

0 投票
0 回答
23 浏览

cryptography - 如何在区块链中保存隐藏数据?映射?

当我使用映射存储数据时,如果我不知道密钥(_secretToken),我将无法在我的 dapp 中获取数据。

如果合约没有提供 map 的对象键列表,你是拿不到的。

映射是存储隐藏数据的好方法还是有更好的选择?

0 投票
0 回答
162 浏览

reactjs - 从以太坊的智能合约中获取 require() 消息错误

我开始学习 Solidity 以及如何在 Dapp 中与智能合约交互,我想知道如何在我的 Dapp 中记录/处理合约中的错误。

例如,在 Dapp 中我有一个按钮,当你点击它时,它会在合约中运行一个函数,我有require()一个特定的消息:“等待 15m”,基本上,用户每 15 次只能点击一次该按钮分钟。

如果用户已经单击了按钮,则按钮交互在 try/catch 中触发,因此下一次将捕获错误。我的问题是我在控制台中遇到的错误(调试),它就像:

它只是一个包含这串代码的字符串,没有指定的错误消息require()是触发错误的东西。这是Rinkeby 的交易。

所以,我想,在未来,我可以在我的合同中包含许多功能,其中包含许多require()不同的消息。如何处理这些错误并在 UI 中向用户显示有价值的信息?是否有任何功能可以帮助获取正确的消息?

我正在使用:Ethers - React

提前感谢您的帮助!

0 投票
0 回答
32 浏览

javascript - 在运行 truffle migrate 它给了我这个错误

松露迁移它给了我这个错误 eroor

我无法迁移合同。这是我的工作: truffle init truffle compile truffle migrate

0 投票
1 回答
44 浏览

javascript - 如何根据“数量”变量重复函数多次

我正在构建一个 DApp,但用户输入元数据和图像来铸造 NFT。

这一切都很好,但我想添加一个数量函数,它实际上将他们输入的 NFT 的# of NFT 最小为 1,最大为 100。

现在我有数量作为状态变量

我有一个按钮,按下时连接到函数 {onMintPressed}

现在数量只是此代码的输入

我对此并不陌生,但理想情况下,在一个完美的简单编码世界中,该函数看起来像这样

我知道这不起作用,本身也不是一个函数,但这只是解释我想要做的最简单的方法

任何帮助表示赞赏,谢谢!

0 投票
1 回答
74 浏览

python - 如何通过打字稿中的布朗尼运行 python 脚本?

我正在开发一个可靠的智能合约,我正在通过一个 python 代码部署它,我通过命令行运行 brownie。此外,我正在开发一个带有打字稿的前端 dApp 来进行交互并部署这些合约。使用 useDApp 可以让我与已经部署的合约进行交互,但我仍然没有弄清楚如何通过前端部署这些合约。

简而言之,“deploy.py”代码有一个部署solidity代码的函数,它将一些变量传递给合约的构造函数。它工作正常。

在应用程序(打字稿)的前端,我有一个用户可以填写的表单,然后当他们单击“发送”按钮时,这些字段会变成变量。我现在需要的只是将这些变量传递给“deploy.py”文件,这样它就可以将它们转换为solidity 构造函数,当然,还可以通过brownie 部署合约。


更新:

发现更简单的方法是忘记 python 部分并直接使用 ethers.js ContractFactory 部署合约。直到现在才解决它,但在我的路上。