브라우니로 테스트 넷에 배포

Dec 12 2020

Brownie와 함께 kovan 테스트 넷에 코드를 배포하려고합니다. 그러나 계정 액세스 오류가 계속 발생합니다. 실행중인 명령은 다음과 같습니다.

brownie run scripts/deploy_price_consumer_v3.py --network kovan

다음은 오류입니다.

Running 'scripts/deploy_price_consumer_v3.py::main'...
  File "brownie/_cli/run.py", line 49, in main
    return_value = run(args["<filename>"], method_name=args["<function>"] or "main")
  File "brownie/project/scripts.py", line 66, in run
    return getattr(module, method_name)(*args, **kwargs)
  File "./scripts/deploy_price_consumer_v3.py", line 7, in main
    print(accounts[0])
  File "brownie/network/account.py", line 103, in __getitem__
    return self._accounts[key]

하지만 실행 brownie accounts list하면 계정이 생깁니다.

brownie accounts list
Brownie v1.11.12 - Python development framework for Ethereum

Found 1 account:
 └─0: 0x643315C9Be056cDEA171F4e7b2222a4ddaB9F88D
patrick@iMac: [~/code/chainlink-mix] $ 

추가 정보

또한 구성 변경을 시도했습니다.

networks:
  default: kovan
  kovan:
    cmd_settings:
      mnemonic: ${MNEMONIC}
    host: ${KOVAN_RPC_URL}

일부 환경 변수 사용

그리고 나는 이 비슷한 질문 의 지침을 따랐 지만 여전히 문제가 발생했습니다.

답변

1 Macarse Dec 14 2020 at 00:11

실행 후 :

brownie accounts new <id>

그리고 계정에 고유 한 ID를 부여하면 개인 키를 입력해야합니다. 그런 다음 배포 스크립트에서 계정을로드하고 계정의 암호를 입력해야합니다. 따라서라는 계약 PriceFeed.sol0있고 배포 스크립트 의 계정 ID를 제공하면 다음과 같이 표시됩니다.

from brownie import PriceFeed, accounts


def main():
    dev = accounts.load('0')
    return PriceFeed.deploy({'from': dev})

다음은 yearn.finance의 예입니다. https://github.com/iearn-finance/yearn-vaults/pull/125