Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error: Contract fails due to solidity gas limit. #288

Open
avatar-lavventura opened this issue Apr 29, 2017 · 3 comments
Open

Error: Contract fails due to solidity gas limit. #288

avatar-lavventura opened this issue Apr 29, 2017 · 3 comments

Comments

@avatar-lavventura
Copy link

avatar-lavventura commented Apr 29, 2017

  • platform darwin -- Python 2.7.12, pytest-3.0.2, py-1.4.31, pluggy-0.3.1
  • plugins: populus==2.0.1
  • OS: Mac OS X

[Q] How could I increase my solidity compiler's gas limit due to this error, or another gas limit that populus reads from?

in estimate_gas -> does it exceed gas limit? When I remove some function inside my contract the error gets fixed. I guess there is a gas limit for populus to deploy the contract, is it possible to extend it? If yes how?

Error:

========================================== FAILURES ==========================================
________________________________________ test_receipt ________________________________________

web3 = <web3.main.Web3 object at 0x1061af2d0>
accounts = ['0x82A978B3f5962A5b0957d9ee9eEf472EE55B42F1', '0x7d577a597B2742b498Cb5Cf0C26cDCD726d39E6e', '0xDCEceAF3fc5C0a63d195d6...1d7585Bd0577402861E5', '0x13cBB8D99C6C4e0f2728C7d72606e78A29C4E224', '0x77dB2BEBBA79Db42a978F896968f4afCE746ea1F', ...]
chain = <populus.chain.tester.TesterChain object at 0x105489b50>

    def test_receipt(web3, accounts, chain): #{
        web3._requestManager = web3.manager
        global blkArrayIndex;
        global runTime;
>       my_contract, _   = chain.provider.get_or_deploy_contract('eBlocBroker');

tests/test.py:39:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/Library/Python/2.7/site-packages/populus/contracts/provider.py:143: in get_or_deploy_contract
    deploy_kwargs=deploy_kwargs,
/Library/Python/2.7/site-packages/populus/contracts/provider.py:121: in deploy_contract
    kwargs=deploy_kwargs,
/Library/Python/2.7/site-packages/web3/contract.py:311: in deploy
    txn_hash = cls.web3.eth.sendTransaction(deploy_transaction)
/Library/Python/2.7/site-packages/web3/eth.py:216: in sendTransaction
    get_buffered_gas_estimate(self.web3, transaction),
/Library/Python/2.7/site-packages/web3/utils/transactions.py:28: in get_buffered_gas_estimate
    gas_estimate = web3.eth.estimateGas(gas_estimate_transaction)
/Library/Python/2.7/site-packages/web3/eth.py:263: in estimateGas
    [transaction],
/Library/Python/2.7/site-packages/web3/manager.py:93: in request_blocking
    response = self._make_request(method, params)
/Library/Python/2.7/site-packages/web3/manager.py:76: in _make_request
    return request_func(method, params)
/Library/Python/2.7/site-packages/web3/middleware/attrdict.py:20: in middleware
    response = make_request(method, params)
/Library/Python/2.7/site-packages/web3/middleware/formatting.py:23: in middleware
    response = make_request(method, formatted_params)
/Library/Python/2.7/site-packages/web3/middleware/formatting.py:25: in middleware
    response = make_request(method, params)
/Library/Python/2.7/site-packages/web3/middleware/exception_handling.py:20: in middleware
    return make_request(method, params)
/Library/Python/2.7/site-packages/web3/providers/tester.py:86: in middleware
    return make_request(method, params)
/Library/Python/2.7/site-packages/web3/providers/tester.py:115: in make_request
    response = rpc_fn(*params)
/Library/Python/2.7/site-packages/testrpc/rpc.py:138: in eth_estimateGas
    return self.client.estimate_gas(**formatted_transaction)
/Library/Python/2.7/site-packages/testrpc/client/client.py:253: in estimate_gas
    txn_hash = self.send_transaction(*args, **kwargs)
/Library/Python/2.7/site-packages/testrpc/client/client.py:263: in send_transaction
    self._send_transaction(*args, **kwargs)
/Library/Python/2.7/site-packages/testrpc/client/client.py:58: in inner
    return client_method(self, *args, **kwargs)
/Library/Python/2.7/site-packages/testrpc/client/utils.py:104: in inner
    return fn(*bytes_args, **bytes_kwargs)
/Library/Python/2.7/site-packages/testrpc/client/client.py:225: in _send_transaction
    output = self.evm.send(sender=sender, to=to, value=value, evmdata=data)
/Library/Python/2.7/site-packages/ethereum/tester.py:338: in send
    return self._send(*args, **kwargs)["output"]
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <ethereum.tester.state object at 0x1061af590>
sender = '\x04HR\xb2\xa6p\xad\xe5@~x\xfb(c\xc5\x1d\xe9\xfc\xb9eB\xa0q\x86\xfe:\xed\xa6\xbb\x8a\x11m'
to = '', value = 0
evmdata = "```@R4\x15a\x00\x0fW`\x00\x80\xfd[C`\x00\x81\x90UP3`\x01`\x00a\x01\x00\n\x81T\x81s\xff\xff\xff\xff\xff\xff\xff\xff\xf...c3V[P\x90V[\x90V\x00\xa1ebzzr0X Ks\x04pt'-\x02$\\\xbf\x86\x9c\x0f\xf8\xfa\xbf\x97\xda\xb8/\xd6X\xc8|\xadp\xc6JQpC\x00)"
funid = None, abi = None, profiling = 0

    def _send(self, sender, to, value, evmdata='', funid=None, abi=None,  # pylint: disable=too-many-arguments
              profiling=0):
        # pylint: disable=too-many-locals

        if funid is not None or abi is not None:
            raise Exception(
                'Send with funid+abi is deprecated. Please use the abi_contract mechanism'
            )

        start_time = time.time()
        gas_used = self.block.gas_used

        sendnonce = self.block.get_nonce(privtoaddr(sender))
        transaction = transactions.Transaction(sendnonce, gas_price, gas_limit, to, value, evmdata)
        self.last_tx = transaction
        transaction.sign(sender)
        recorder = None

        if profiling > 1:
            recorder = LogRecorder(
                disable_other_handlers=True,
                log_config=TRACE_LVL_MAP[3],
            )

        try:
            (success, output) = processblock.apply_transaction(self.block, transaction)

            if not success:
>               raise TransactionFailed()
E               TransactionFailed

/Library/Python/2.7/site-packages/ethereum/tester.py:296: TransactionFailed
------------------------------------- Captured log call --------------------------------------
rpc.py                     129 INFO     eth_blockNumber
============================ 1 failed, 4 warnings in 1.41 seconds ============================

@mandarvaze
Copy link
Contributor

mandarvaze commented Feb 23, 2018

I too am getting same final error.
Did you find the solution ?

@avatar-lavventura
Copy link
Author

No Sir :( @mandarvaze

@avatar-lavventura
Copy link
Author

I am still having same error, when size of my smart contract increases ; it always crashes with this message.

@avatar-lavventura avatar-lavventura changed the title Error: pylint: disable=too-many-locals in eth_estimateGas Error: Contract fails due to solidity compiler's gas limit. May 18, 2018
@avatar-lavventura avatar-lavventura changed the title Error: Contract fails due to solidity compiler's gas limit. Error: Contract fails due to solidity gas limit. May 18, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants