1

enter image description here

And have a problem with web3js on testrpc, I can't create and set an instance of web3. Terminal said that web3 is undefined. (ref error) Also when I try to execute methods in my contract for example

var e = Mycontract.deployed();

I also have undefined and when try

console.log(e.address);

I've installed web3js

  • node js -version 6~
  • npm version 3~
  • also ill installed pudding, truffle

Do i need to install something else? or reinstall?

truffle(development)> Art.at(Art.address) TruffleContract {  
constructor:     { [Function: TruffleContract]
     _static_methods: 
      { setProvider: [Function: setProvider],
        new: [Function: new],
        at: [Function: at],
        deployed: [Function: deployed],
        defaults: [Function: defaults],
        hasNetwork: [Function: hasNetwork],
        isDeployed: [Function: isDeployed],
        detectNetwork: [Function: detectNetwork],
        setNetwork: [Function: setNetwork],
        resetAddress: [Function: resetAddress],
        link: [Function: link],
        clone: [Function: clone],
        addProp: [Function: addProp],
        toJSON: [Function: toJSON] },
     _properties: 
      { contract_name: [Object],
        abi: [Object],
        network: [Function: network],
        networks: [Function: networks],
        address: [Object],
        links: [Function: links],
        events: [Function: events],
        binary: [Function: binary],
        unlinked_binary: [Object],
        schema_version: [Function: schema_version],
        updated_at: [Function: updated_at] },
     _property_values: {},
     _json: 
      { contract_name: 'Art',
        default_network: undefined,
        abi: [Object],
        unlinked_binary: '0x606060405234610000575b6101d9806100196000396000f300606060405263ffffffff60e060020a6000350416637183616c811461003a57806376dbd1081461008f578063faf924cf146100f4575b610000565b346100005761008d600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284375094965061011395505050505050565b005b34610000576100e2600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284375094965061012395505050505050565b60408051918252519081900360200190f35b34610000576100e26101a7565b60408051918252519081900360200190f35b61011c81610123565b6000555b50565b60006002826000604051602001526040518082805190602001908083835b602083106101605780518252601f199092019160209182019101610141565b51815160209384036101000a600019018019909216911617905260405191909301945091925050808303816000866161da5a03f1156100005750506040515190505b919050565b600054815600a165627a7a723058205af3325408f62f5b64135ac0e2eac3d1632e79f925249e4ce52266a8f02becdc0029',
        networks: [Object],
        schema_version: '0.0.5',
        updated_at: 1490993477853 },
     setProvider: [Function: bound setProvider],
     new: [Function: bound new],
     at: [Function: bound at],
     deployed: [Function: bound deployed],
     defaults: [Function: bound defaults],
     hasNetwork: [Function: bound hasNetwork],
     isDeployed: [Function: bound isDeployed],
     detectNetwork: [Function: bound detectNetwork],
     setNetwork: [Function: bound setNetwork],
     resetAddress: [Function: bound resetAddress],
     link: [Function: bound link],
     clone: [Function: bound clone],
     addProp: [Function: bound addProp],
     toJSON: [Function: bound toJSON],
     web3: 
      Web3 {
        _requestManager: [Object],
        currentProvider: [Object],
        eth: [Object],
        db: [Object],
        shh: [Object],
        net: [Object],
        personal: [Object],
        bzz: [Object],
        settings: [Object],
        version: [Object],
        providers: [Object],
        _extend: [Object] },
     class_defaults: 
      { from: '0x32f2e046d626c285bf6e60002dd4761209a5d8d2',
        gas: 4712388,
        gasPrice: 100000000000 },
     currentProvider: HttpProvider { host: 'http://localhost:8545', timeout: 0 },
     network_id: '1490993444046' },   abi:     [ { constant: false,
       inputs: [Object],
       name: 'notarize',
       outputs: [],
       payable: false,
       type: 'function' },
     { constant: true,
       inputs: [Object],
       name: 'calculateProof',
       outputs: [Object],
       payable: false,
       type: 'function' },
     { constant: true,
       inputs: [],
       name: 'proof',
       outputs: [Object],
       payable: false,
       type: 'function' } ],   contract:     Contract {
     _eth: 
      Eth {
        _requestManager: [Object],
        getBalance: [Object],
        getStorageAt: [Object],
        getCode: [Object],
        getBlock: [Object],
        getUncle: [Object],
        getCompilers: [Object],
        getBlockTransactionCount: [Object],
        getBlockUncleCount: [Object],
        getTransaction: [Object],
        getTransactionFromBlock: [Object],
        getTransactionReceipt: [Object],
        getTransactionCount: [Object],
        call: [Object],
        estimateGas: [Object],
        sendRawTransaction: [Object],
        sendTransaction: [Object],
        sign: [Object],
        compile: [Object],
        submitWork: [Object],
        getWork: [Object],
        coinbase: [Getter],
        getCoinbase: [Object],
        mining: [Getter],
        getMining: [Object],
        hashrate: [Getter],
        getHashrate: [Object],
        syncing: [Getter],
        getSyncing: [Object],
        gasPrice: [Getter],
        getGasPrice: [Object],
        accounts: [Getter],
        getAccounts: [Object],
        blockNumber: [Getter],
        getBlockNumber: [Object],
        protocolVersion: [Getter],
        getProtocolVersion: [Object],
        iban: [Object],
        sendIBANTransaction: [Function: bound transfer] },
     transactionHash: null,
     address: '0x732e24b2de90ec2e009748a6bf2d379ed1eee072',
     abi: [ [Object], [Object], [Object] ],
     notarize: 
      { [Function: bound ]
        request: [Function: bound ],
        call: [Function: bound ],
        sendTransaction: [Function: bound ],
        estimateGas: [Function: bound ],
        getData: [Function: bound ],
        string: [Circular] },
     calculateProof: 
      { [Function: bound ]
        request: [Function: bound ],
        call: [Function: bound ],
        sendTransaction: [Function: bound ],
        estimateGas: [Function: bound ],
        getData: [Function: bound ],
        string: [Circular] },
     proof: 
      { [Function: bound ]
        request: [Function: bound ],
        call: [Function: bound ],
        sendTransaction: [Function: bound ],
        estimateGas: [Function: bound ],
        getData: [Function: bound ],
        '': [Circular] },
     allEvents: [Function: bound ] },   notarize:     { [Function]
     call: [Function],
     sendTransaction: [Function],
     request: [Function: bound ],
     estimateGas: [Function] },   calculateProof:     { [Function]
     call: [Function],
     sendTransaction: [Function],
     request: [Function: bound ],
     estimateGas: [Function] },   proof:     { [Function]
     call: [Function],
     sendTransaction: [Function],
     request: [Function: bound ],
     estimateGas: [Function] },   sendTransaction: [Function],   send: [Function],   allEvents: [Function: bound ],   address:
'0x732e24b2de90ec2e009748a6bf2d379ed1eee072',   transactionHash: null
} 
truffle(development)>  
(To exit, press ^C again or type .exit)
truffle(development)> var e=Art.deployed 
undefined
truffle(development)> console.log(e.address) 
undefined 
undefined'
0

You have to either set up web3 manually, or use a framework that does.

Here's the code to do it manually, with testrpc listening at localhost:8545 (the default)

var Web3 = require('web3');
var web3 = new Web3(new Web3.providers.HttpProvider('http://localhost:8545'));
web3.isConnected() // should return true if it all worked.

Note that web3 must be installed locally (i.e. in your project's node_modules) That bit me when I was learning how to do this.

  • ty for answer. I have installed web3 in my ptoject(it is my fall to:) then paste your code in Node( i am new in JS , and paste it in truffle console too). But also cant call functions in my contract.(added foto) Please help:( – Vladimir Mar 30 '17 at 15:31
  • Did you run truffle init? From that screenshot, it doesn't look like a project directory that truffle would create. – Matthew Schmidt Mar 30 '17 at 17:35
  • yes. and also do npm init to install web3 localy – Vladimir Mar 31 '17 at 20:50
1

This how it works for the compiled contract with web3:

var source = 'contract demo {string public name = "Petros"; function changeName(string _newName){name = _newName; } }'; 
var compiled = web3.eth.compile.solidity(source);
var abi = compiled['<stdin>:demo'].info.abiDefinition;

Hope it help you.

0

First you can check which version of truffle you're using by typing:

$ truffer --version

truffle behaviors differently in v2.x and v3.x, in v3.x it doesn't resolve the deployed() Promise automatically, so if you want to register a contract instance, you can do:

> var poe = Art.at(Art.address)
> assert.ok(poe.address)      // "address" should be defined
> poe.notarize('Hello World') // try to call the contract function

Second, please make sure the contract name is the same with source code file name.

Hope this helps.

  • have version 3x and update quastion with your response. also undif;( – Vladimir Mar 31 '17 at 20:57
  • @Vladimir I've updated the code to be ran in the truffle console, take a look. – Yuanfei Zhu Apr 1 '17 at 3:55

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.