有人能帮我理解这个错误吗。为了上下文。我有两个合同,一个会验证,另一个不会。当我试图将它们合并为一个合同时,我注意到了这一点。没有验证的合同是一个ERC1155。
我在brownie页面上看到,扁平oz文件可以很好地解决这个问题。我的问题是,你如何处理文件后,它的弗拉维斯特?我所有的进口品现在都是本地进口了吗?我以前没见过这个,所以我想还有别的办法。我试着在以太扫描时使用doesnt文件进行手动验证,但是它不起作用。我是否需要安装硬帽子或松露只是为了验证??不过,如果有人能更好地解释这件事,就会被接受。就像为什么单独部署和验证合同一样,但是当将它们合并成一个合同时,它就无法进行验证。
控制台日志:
运行脚本\部署_mintagram.py::main‘.交易发送: 0x375a0280837efd32bb920ce11939ef349c421f37b06ef22be4fc33c033c936ad天然气价格: 2.000000007微威气体限价: 2655526 Nonce: 252 Mint_A_Gram.constructor确认区块: 28260856燃气使用: 2414115 (90.91%) Mint_A_Gram部署在:0xa3C3F916448aB9C4D3CAFF8e8862f91344c36文件"C:\Users\ills\AppData\Local\Programs\Python\Python39\lib\site-packages\brownie_cli\run.py",行49,在主return_value中,frame = run(文件"C:\Users\ills\AppData\Local\Programs\Python\Python39\lib\site-packages\brownie\project\scripts.py",行103,在run return_value = f_locals方法_名字 File ".\scripts\deploy_mintagram.py“中,第20行在main deploy() File ".\scripts\deploy_mintagram.py”中,第7行在deploy = Mint_A_Gram.deploy( File =Mint_A_Gram.deploy)中在调用返回tx "C:\Users\ills\AppData\Local\Programs\Python\Python39\lib\site-packages\brownie\network\account.py",.deploy( File “从”.deploy)中,部署contract.publish_source(deployed_contract,silent=silent)文件行410,在"C:\Users\ills\AppData\Local\Programs\Python\Python39\lib\site-packages\brownie\network\contract.py",contract_info = self.get_verification_info() File contract_info第315行中,在get_verification_info build_json = self._project._build.get(name) File "C:\Users\ills\AppData\Local\Programs\Python\Python39\lib\site-packages\brownie\project\build.py",第124行中,在get返回self._interfaces钥匙 KeyError:
代码(导入和构造函数)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;
import "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";
import "@openzeppelin/contracts/utils/math/SafeMath.sol";
import "@openzeppelin/contracts/utils/Counters.sol";
import "@openzeppelin/contracts/access/Ownable.sol"; // for testings conveniece
import "@openzeppelin/contracts/security/ReentrancyGuard.sol";
import "@chainlink/contracts/src/v0.8/VRFConsumerBase.sol";
import "@chainlink/contracts/src/v0.8/interfaces/KeeperCompatibleInterface.sol";
contract Mint_A_Gram is
ERC1155,
Ownable,
VRFConsumerBase,
KeeperCompatibleInterface,
ReentrancyGuard
{
using SafeMath for uint256;
using Counters for Counters.Counter;
Counters.Counter private x_tokenIds;
string public x_tokenURI;
uint256 public x_mintCount;
bytes32 public x_keyHash;
uint256 public x_chainlinkFee;
uint256 public x_ticketFee;
uint256 public x_lastTimeStamp;
uint256 public x_interval;
address public x_theWinner;
address payable[] x_usersEntered;
lotteryState public x_lotteryState;
enum lotteryState {
OPEN,
Drawing_Winner
}
event enteredDraw(address indexed player);
event requestedDrawWinner(bytes32 indexed requestId);
event winnerChosen(address indexed player);
constructor(
address _vrfCoordinator,
address _linkToken,
bytes32 _keyHash,
uint256 _chainlinkFee,
uint256 _ticketFee,
uint256 _interval
) ERC1155(x_tokenURI) VRFConsumerBase(_vrfCoordinator, _linkToken) {
x_lastTimeStamp = block.timestamp;
x_keyHash = _keyHash;
x_chainlinkFee = _chainlinkFee;
x_ticketFee = _ticketFee;
x_interval = _interval;
x_theWinner = 0x0000000000000000000000000000000000000000;
x_lotteryState = lotteryState.OPEN;
}发布于 2021-11-10 04:01:37
通过升级到brownie 1.17来解决
https://ethereum.stackexchange.com/questions/113230
复制相似问题