Объект TransactionReceipt не имеет атрибута «адрес». домовой/Инфура
Я пытаюсь развернуть 2 контракта в сети kovan. Я поместил свой идентификатор проекта infura в .env и выбрал
kovan
сеть в настройках инфуры.
export WEB3_INFURA_PROJECT_ID=fdbedef24314c02a9e0d394aeeeee
Я следую учебнику, и это сценарий, который я запускаю:
def deploy_token_farm_and_dapp_token(front_end_update=False):
account = get_account()
dapp_token = DappToken.deploy({"from": account})
print("dapp_token",dapp_token)
token_farm = TokenFarm.deploy(
#Probably this is causing error
dapp_token.address,
{"from": account},
publish_source=config["networks"][network.show_active()]["verify"],
)
tx = dapp_token.transfer(
token_farm.address, dapp_token.totalSupply() - KEPT_BALANCE, {"from": account}
)
tx.wait(1)
# dapp_token, weth_token, fau_token/dai
weth_token = get_contract("weth_token")
fau_token = get_contract("fau_token")
dict_of_allowed_tokens = {
dapp_token: get_contract("dai_usd_price_feed"),
fau_token: get_contract("dai_usd_price_feed"),
weth_token: get_contract("eth_usd_price_feed"),
}
add_allowed_tokens(token_farm, dict_of_allowed_tokens, account)
if front_end_update:
update_front_end()
return token_farm, dapp_token
def add_allowed_tokens(token_farm, dict_of_allowed_tokens, account):
for token in dict_of_allowed_tokens:
add_tx = token_farm.addAllowedTokens(token.address, {"from": account})
add_tx.wait(1)
set_tx = token_farm.setPriceFeedContract(
token.address, dict_of_allowed_tokens[token], {"from": account}
)
set_tx.wait(1)
return token_farm
Когда я бегу
brownie run scripts/deploy.py --network kovan
Я получаю эту ошибку:
File "./scripts/deploy.py", line 27, in deploy_token_farm_and_dapp_token
dapp_token.address,
AttributeError: 'TransactionReceipt' object has no attribute 'address'
Похоже на
deploy_token_farm_and_dapp_token
Вероятно, эти строки вызывают ошибку:
token_farm = TokenFarm.deploy(
#Probably this is causing error
dapp_token.address,
{"from": account},
publish_source=config["networks"][network.show_active()]["verify"],
)
tx = dapp_token.transfer(
token_farm.address, dapp_token.totalSupply() - KEPT_BALANCE, {"from":account}
dapp_token.address,
а также
token_farm.address
Итак, я напечатал
print("dapp_token",dapp_token)
и он распечатывает адрес. Поэтому вместо этого я использовал
dapp_token
а также
token_farm
. Но на этот раз я получаю эту ошибку:
raise ValueError(f"API request failed with: {data['result']}")
ValueError: API request failed with: Invalid API Key