NFT: при попытке запустить скрипты create_collectibles выдается ошибка выполнения, возвращенная: это из учебника Патрика Коллинза на Youtube.
Ниже приведен фрагмент сценария: Использование Брауни в коде VS Ошибка: «Оценка газа не удалась: 'выполнение возвращено'. Эта транзакция, скорее всего, будет отменена. Если вы хотите транслировать, вы должны установить лимит газа вручную».
from brownie import AdvancedCollectible, accounts, config
from scripts.helpful_scripts import get_breed
import time
STATIC_SEED = 123
def main():
dev = accounts.add(config["wallets"]["from_key"])
advanced_collectible = AdvancedCollectible[len(AdvancedCollectible) - 1]
transaction = advanced_collectible.createCollectible(
STATIC_SEED, "None", {"from": dev, "gas_limit": 50000}
)
print("Waiting on second transaction...")
# wait for the 2nd transaction
transaction.wait(1)
time.sleep(35)
requestId = transaction.events["requestedCollectible"]["requestId"]
token_id = advanced_collectible.requestIdToTokenId(requestId)
breed = get_breed(advanced_collectible.tokenIdToBreed(token_id))
print("Dog breed of tokenId {} is {}".format(token_id, breed))
2 ответа
Я была такая же проблема. Но Патрик прав, у меня не было токенов Link внутри моего недавно созданного контракта в сети Rinkeby... Поэтому я закомментировал большинство строк кода в create_collectible.py, чтобы еще раз импортировать и применить функцию fund_advanced_collectible(). по моему контракту:
from helpfulscripts import fund_advanced_collectible
def main():
dev=accounts.add(config['wallets']['from_key'])
advanced_collectible= AdvancedCollectible[len(AdvancedCollectible)-1]
# transaction=advanced_collectible.createCollectible(STATIC_SEED,"None", {"from": dev})
# transaction.wait(1)
# time.sleep(35)
# requestID=transaction.events["requestedCollectible"]["requestID"]
# tokenID=advanced_collectible.requestIDToTokenID(requestID)
# breed=get_breed(advanced_collectible.tokenIDToBreed(tokenID))
# print('Dog breed of {} is {}.'.format(tokenID, breed))
fund_advanced_collectible(advanced_collectible)
Напоминаем определение функции fund_advanced_collectible из helpscripts.py:
def fund_advanced_collectible(nft_contract):
dev=accounts.add(config['wallets']['from_key'])
link_token=interface.LinkTokenInterface(config['networks'][network.show_active()]['link_token'])
link_token.transfer(nft_contract, 100000000000000000,{"from":dev})
Как только транзакция была подтверждена, я мог проверить в https://rinkeby.etherscan.io/address , что мой контракт имеет ссылку 0,1, и поэтому при повторном выполнении вашего кода ошибка исчезла...
Я думаю, что здесь уже был дан ответ . Подводя итог, у вас, вероятно, ошибка версии vrf_coordinator. Попробуйте значения ринкеби из официальной документации .