问题标签 [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.
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”;| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^
错误:无法加载项目
python - M1 Mac:运行 Brownie Python
尝试运行brownie
但遇到以下问题:
加载未签名的库时出错.cpython-39-darwin.so
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 的部署函数。不幸的是,它没有任何区别。
我已经用尽了部署功能的所有可能性,并且没有得到进一步的调试信息。有没有人遇到过类似的问题,或者知道如何进一步调试?任何帮助将非常感激!
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,以及与教程相关的所有内容(我之前没有任何用于编码的东西)。
然后,复制了所有步骤,直到原始帖子问题,一切正常......不知道问题是如何真正解决的有点令人沮丧,但确实如此。
python - AttributeError:部分初始化的模块“cytoolz”没有属性“update_signature_registry”(很可能是由于循环导入)
我正在尝试在我的系统上运行 eth-brownie,但我从 cytoolz 收到此错误。我尝试安装 cython、cytoolz 和 eth brownie,但是当我尝试运行 brownie 时,我一直收到以下错误
谁能帮帮我?谢谢
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
以下是来自终端的错误消息:
solidity - 无法将 Uniswap V2 外围设备作为包添加到布朗尼
我正在按照 Brownie 的文档将包添加到我的 Solidity 项目中。我必须添加Uniswap/v2-core
和Uniswap/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
问题是我可以以某种方式强制布朗尼识别有效版本还是有任何其他方法来解决这个问题?