问题标签 [brownie]

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 投票
1 回答
938 浏览

chainlink - v0.8 AggregatorV3Interface.sol ,它在@chainlink/contracts 中可用?

当我将版本更改为 0.8 时出现错误,但在 0.6 上工作正常,我如何查看最新版本?,我尝试从 npm install @chainlink/contracts --save 下载,但仅适用于模拟模式。

这是我的回购: https ://github.com/irwingtello/lottery

正在编译合约... Solc 版本:0.8.9 优化器:已启用运行:200 EVM 版本:Istanbul CompilerError:solc 返回以下错误:

ParserError:找不到源“C:/Users/irwin/.brownie/packages/smartcontractkit/chainlink-brownie-contracts@1.1.1/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol”:找不到文件。--> 合约/Lottery.sol:4:1: | 4 | 导入“@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol”;| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^

错误:无法加载项目

0 投票
1 回答
167 浏览

python - M1 Mac:运行 Brownie Python

尝试运行brownie但遇到以下问题:

加载未签名的库时出错.cpython-39-darwin.so

0 投票
0 回答
141 浏览

ethereum - 尝试使用 brownie 框架将标准 OpenZeppelin ERC777 合约部署到 ganache-cli 时出错

我正在熟悉使用 brownie 框架和solidity 的智能合约开发。一开始,我使用brownie console部署一些标准的 OpenZeppelin 代币合约。

我通过直接从他们的文档中复制代码并调整导入以使用布朗尼来做到这一点,就像在这个页面中一样:https ://docs.openzeppelin.com/contracts/3.x/erc777

它适用于 ERC20 和 ERC721 合约。然而,ERC777 总是被还原并给我一个没有错误消息的事务,其中没有一个跟踪方法起作用,因为它们不是为部署事务实现的。

ERC777 令牌的代码(不工作)

ERC20 代币代码(工作中)

布朗尼控制台中的输出

我还尝试在默认令牌运营商的列表中输入一个有效地址(部署的运营商合同),该地址作为第二个参数传递给 GLDToken 的部署函数。不幸的是,它没有任何区别。

我已经用尽了部署功能的所有可能性,并且没有得到进一步的调试信息。有没有人遇到过类似的问题,或者知道如何进一步调试?任何帮助将非常感激!

0 投票
1 回答
420 浏览

typescript - 使用带有 @usedapp 和 @ethersproject/contracts 的智能合约的奇怪错误

您好,我正在尝试使用基于 Solidity 制定的合同,并使用 React 和 typescript 在我的前端部署 brownie。还使用了 usedapp 框架,正如这里的文档所说,为了与合约功能交互,我应该创建一个新合约,提供地址和 ABI。这是我的代码:

错误发生useContractFunctionerc20Contract

VScode 错误

这是完整的错误信息

它说类型不兼容,但它们实际上完全相同,有人知道发生了什么吗?

0 投票
2 回答
649 浏览

python - Python 找不到布朗尼文件

我正在关注关于 Solidity 和 Python 的教程(供参考https://www.youtube.com/watch?v=M576WGiDBdQ&t=5447s)。

我正处于安装 Python 和 Brownie 并通过 VSCode 运行的阶段,但是当我询问 Brownie 的版本时,我收到了以下通知 brownie --version INFO: Could not find files for the given pattern(s). Brownie v1.17.1 - Python development framework for Ethereum

当我尝试在名为 deploy.py ( ) 的文件上运行一个非常基本的脚本时def main(): print ("hello!"),结果如下:

我已经尝试从 Python 卸载并重新安装到 Brownie,更改了 Brownie 文件的位置,但由于我的知识非常有限(完全是初学者),我现在陷入困境。

更新我再次重新安装了 Python 和 pipx 和 brownie,现在消息略有不同,但仍然没有运行 deploy.py 的脚本。脚本是:

当前的错误消息是:

目录图片:文件位置截图

任何帮助将不胜感激 :)

在尝试了所有建议后,我最终只能通过卸载和删除每个程序和相关文件来使其工作。卸载 Python,从我的计算机中删除所有与 Python 相关的文件,对 VSCode 执行相同操作,删除所有 npm 包、yarn、solc,以及与教程相关的所有内容(我之前没有任何用于编码的东西)。

然后,复制了所有步骤,直到原始帖子问题,一切正常......不知道问题是如何真正解决的有点令人沮丧,但确实如此。

0 投票
4 回答
802 浏览

python - solidity - brownie compile - 状态 404 从 GitHub 获取包版本

我在想这个问题与版本的版本有关,但是在使用了所有导入包的最后一个版本后,我遇到了同样的问题。

有人可以帮我弄这个吗?

当我午餐 - 布朗尼编译时,我遇到了这个问题。附上屏幕

在此处输入图像描述


编辑


谢谢你的提示 - 在我的 brownie-cofing.yaml 下面

已解决 已安装的安全智能合约开发库。建立在经过社区审查的代码的坚实基础之上。

$ npm install @openzeppelin/contracts

0 投票
1 回答
697 浏览

blockchain - ERC20:转账金额超过限额 带有巧克力蛋糕和 NFT 的智能合约

您好,我有两个智能合约,一个是 ERC1155 合约,它从 Moralis IPFS 服务器铸造一个 NFT,另一个是 ERC20 代币。我希望用户能够使用 ERC20 代币支付铸造的 NFT,但我收到transferfrom()函数错误:brownie.exceptions.VirtualMachineError:revert:ERC20:转账金额超过限额。我做了一些研究,但到目前为止没有任何帮助。

来自终端的错误

这是我的 ERC1155 合约

这是ERC20合约

这是测试脚本

任何帮助表示赞赏,我是否应该支付 minPomobot() 函数?

0 投票
0 回答
78 浏览

python - AttributeError:部分初始化的模块“cytoolz”没有属性“update_signature_registry”(很可能是由于循环导入)

我正在尝试在我的系统上运行 eth-brownie,但我从 cytoolz 收到此错误。我尝试安装 cython、cytoolz 和 eth brownie,但是当我尝试运行 brownie 时,我一直收到以下错误

谁能帮帮我?谢谢

0 投票
0 回答
104 浏览

ethereum - Brownie 类方法 Contract.from_abi() 为 info() 函数创建命名空间错误

我有想要加载的现有外部合同:
contract = Contract.from_abi(contract_name, address, abi_json)

Contract info() 函数与 brownie.network.contract 类创建命名空间冲突。如果我尝试执行contract.info(),那么它会返回“None”,但它应该返回值为“You will find what you need in info1().”的字符串文本。合同的其他功能工作正常。有没有办法摆脱命名空间错误并执行contract.info()?

链接到 Brownie Contract.from_abi() 文档:https ://eth-brownie.readthedocs.io/en/stable/api-network.html?highlight=from_abi#Contract.from_abi

以下是来自终端的错误消息:

0 投票
1 回答
157 浏览

solidity - 无法将 Uniswap V2 外围设备作为包添加到布朗尼

我正在按照 Brownie 的文档将包添加到我的 Solidity 项目中。我必须添加Uniswap/v2-coreUniswap/v2-periphery。为了做到这一点,我在终端中调用了以下几行:

这个工作正常,它安装了包

但是,当我调用以下行时,我收到了ValueError: Invalid version for this package. Available versions are: 1.0.0-beta.0奇怪的错误,因为在 Github上有@1.1.0-beta.0版本而不是1.0.0-beta.0

问题是我可以以某种方式强制布朗尼识别有效版本还是有任何其他方法来解决这个问题?