如何解决 Thirdweb Python SDK Goerli TestNet 中的 Gas Price 问题

问题描述 投票:0回答:1

我正在使用 Thirdweb Python SDK API。下面的代码有时可以工作,有时会引发天然气价格问题。我认为这可能是一个网络问题,因为它有时会起作用并生成 NFT,但并非总是如此。

当我遇到错误时,它与汽油价格有关。但在 Thirdweb API 中并没有出现 Gasprice 参数或类似的东西。

有什么想法吗?

代码:

    sqlcol="SELECT ID,(SELECT contrato FROM colecciones WHERE ID=idcolec) AS contratonft FROM solicitudcert WHERE ID='" + idsolicitud + "' LIMIT 0, 1"
    mycursor.execute(sqlcol)
    misolicitud = mycursor.fetchone()
    if(misolicitud):
        contratonft_aux=str(misolicitud[1])
        contratonft=contratonft_aux.replace('"','')
        sdk = ThirdwebSDK.from_private_key(PRIVATE_KEY, NETWORK)
        NFT_COLLECTION_ADDRESS = contratonft
        nft_collection = sdk.get_nft_collection(NFT_COLLECTION_ADDRESS)
        urlarchivoarr=imagencert.split("/")
        urlarchivostr=str(urlarchivoarr[1]);
        urlarchivoimg="https://files.avfenixrecords.com/" + urlarchivostr
        # You can pass in any address here to mint the NFT to
        tx = nft_collection.mint(NFTMetadataInput.from_json({
            "name": nombrecert,
            "description": descripcert,
            "image": urlarchivoimg
        }))
        idnft=tx.id
        return jsonify({'status':'OK','IDNFT':idnft})
    else:
        return jsonify({'status':'ERROR','IDNFT':"NULL"})

错误:

[2022-11-15 19:54:21,628] ERROR in app: Exception on /api/contracts/v1/mintnft [POST]
Traceback (most recent call last):
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/flask/app.py", line 2525, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/flask/app.py", line 1822, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/flask_cors/extension.py", line 165, in wrapped_function
    return cors_after_request(app.make_response(f(*args, **kwargs)))
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/flask/app.py", line 1820, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/flask/app.py", line 1796, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
  File "app.py", line 1851, in mintnft
    tx = nft_collection.mint(NFTMetadataInput.from_json({
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/thirdweb/contracts/nft_collection.py", line 135, in mint
    return self.mint_to(self._contract_wrapper.get_signer_address(), metadata)
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/thirdweb/contracts/nft_collection.py", line 166, in mint_to
    receipt = self._contract_wrapper.send_transaction("mint_to", [to, uri])
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/thirdweb/core/classes/contract_wrapper.py", line 113, in send_transaction
    tx = getattr(self._contract_abi, fn).build_transaction(
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/thirdweb/abi/token_erc721.py", line 1638, in build_transaction
    return self._underlying_method(to, uri).buildTransaction(
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/web3/contract.py", line 1079, in buildTransaction
    return build_transaction_for_function(
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/web3/contract.py", line 1648, in build_transaction_for_function
    prepared_transaction = fill_transaction_defaults(web3, prepared_transaction)
  File "cytoolz/functoolz.pyx", line 249, in cytoolz.functoolz.curry.__call__
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/web3/_utils/transactions.py", line 114, in fill_transaction_defaults
    default_val = default_getter(web3, transaction)
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/web3/_utils/transactions.py", line 60, in <lambda>
    'gas': lambda web3, tx: web3.eth.estimate_gas(tx),
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/web3/eth.py", line 825, in estimate_gas
    return self._estimate_gas(transaction, block_identifier)
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/web3/module.py", line 57, in caller
    result = w3.manager.request_blocking(method_str,
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/web3/manager.py", line 198, in request_blocking
    return self.formatted_response(response,
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/web3/manager.py", line 171, in formatted_response
    raise ValueError(response["error"])
ValueError: {'code': -32000, 'message': 'err: max fee per gas less than block base fee: address 0x98E0463643b28E24223d2B5EF19E78A9AF031505, maxFeePerGas: 70565183066 baseFee: 77047968359 (supplied gas 22141296)'}

我尝试将合约配置修改到thirdweb仪表板中,但没有成功。

python sdk thirdweb
1个回答
0
投票

您在哪个网络上看到此问题?我们可以在 SDK 中添加手动覆盖 Gas 限制的方法。

© www.soinside.com 2019 - 2024. All rights reserved.