0

I get the following error message: Getting Error:VM Exception while processing transaction: revert', 'code': -32000 I am connected to Ganache. Here is my code:

import json
from web3 import Web3
ganache_url = "HTTP://127.0.0.1:7545"
web3 = Web3(Web3.HTTPProvider(ganache_url))
web3.eth.defaultAccount = web3.eth.accounts[0]
abi = json.loads('[{"constant":false,"inputs":[{"name":"_greeting","type":"string"}],"name":"setGreeting","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"greet","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"greeting","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"}]')
bytecode = "608060405234801561001057600080fd5b50600436106100415760003560e01c8063a413686214610046578063cfae321714610101578063ef690cc014610184575b600080fd5b6100ff6004803603602081101561005c57600080fd5b810190808035906020019064010000000081111561007957600080fd5b82018360208201111561008b57600080fd5b803590602001918460018302840111640100000000831117156100ad57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610207565b005b610109610221565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561014957808201518184015260208101905061012e565b50505050905090810190601f1680156101765780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61018c6102c3565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101cc5780820151818401526020810190506101b1565b50505050905090810190601f1680156101f95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b806000908051906020019061021d929190610361565b5050565b606060008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156102b95780601f1061028e576101008083540402835291602001916102b9565b820191906000526020600020905b81548152906001019060200180831161029c57829003601f168201915b5050505050905090565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103595780601f1061032e57610100808354040283529160200191610359565b820191906000526020600020905b81548152906001019060200180831161033c57829003601f168201915b505050505081565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106103a257805160ff19168380011785556103d0565b828001600101855582156103d0579182015b828111156103cf5782518255916020019190600101906103b4565b5b5090506103dd91906103e1565b5090565b61040391905b808211156103ff5760008160009055506001016103e7565b5090565b9056fea165627a7a72305820715b80cf94752eff03321ef662bbb7b4bc5d4b91ecdf692a31c3d23ecf73afc50029"
Greeter = web3.eth.contract(abi=abi,bytecode=bytecode)
tx_hash=Greeter.constructor().transact()

This is my Solidity contract:

pragma solidity ^0.4.21;
contract Greeter {
    string public greeting;
    function Greeter () public {
        greeting ="Hello";
    }
    function setGreeting (string _greeting ) public {
        greeting = _greeting;
    }
    function greet()view public returns (string){
        return greeting;
    }
}

The last statement: tx_hash=Greeter.constructor().transact() doesn't compile.

What am I doing wrong? Thank you in advance :)

Edit: Added a ")" at web3 = Web3(Web3.HTTPProvider(ganache_url)) according to Majd TL's suggestion.

  • are you missing a ")" after web3 = Web3(Web3.HTTPProvider(ganache_url) ? – Majd TL Jun 21 at 14:31
  • Yes I do. Edited it :) However, in my original code it is there, so apparently I deleted it while copying – JonathanB Jun 24 at 9:58
0

ok I figured it out: My solidity code had some problems. Using this one compiling with 0.5.7 worked.

   pragma solidity ^0.5.0;

    contract MessageContract{
        string private message = "Hello World";

        function getMessage() public view returns(string memory){
           return message;
        }

        function setMessage(string memory newMessage ) public {
           message = newMessage;
        }
    }

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.