我正在尝试从我的web3应用程序连接到我的testrpc实例,但我似乎无法连接。下面的代码应该返回testrpc链中所有帐户的数组。
代码:
Web3 = require('web3')
web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
console.log(web3.eth.accounts);
它返回对象以下和对象intelliJ内的currentprovider对象如下。
它似乎打印出我认为的对象:
Accounts {
eth:
Eth {
currentProvider: [Getter/Setter],
_requestManager: RequestManager { provider: [Object], providers: [Object], subscriptions: {} },
givenProvider: null,
providers:
{ WebsocketProvider: [Function: WebsocketProvider],
HttpProvider: [Function: HttpProvider],
IpcProvider: [Function: IpcProvider] },
_provider: HttpProvider { host: 'http://localhost:8545', timeout: 0, connected: false },
setProvider: [Function],
BatchRequest: [Function: bound Batch],
extend:
{ [Function: ex]
formatters: [Object],
utils: [Object],
Method: [Function: Method] },
clearSubscriptions: [Function],
getProtocolVersion: { [Function: send] request: [Function: bound ], call: 'eth_protocolVersion' },
getCoinbase: { [Function: send] request: [Function: bound ], call: 'eth_coinbase' },
isMining: { [Function: send] request: [Function: bound ], call: 'eth_mining' },
getHashrate: { [Function: send] request: [Function: bound ], call: 'eth_hashrate' },
isSyncing: { [Function: send] request: [Function: bound ], call: 'eth_syncing' },
getGasPrice: { [Function: send] request: [Function: bound ], call: 'eth_gasPrice' },
getAccounts: { [Function: send] request: [Function: bound ], call: 'eth_accounts' },
getBlockNumber: { [Function: send] request: [Function: bound ], call: 'eth_blockNumber' },
getBalance: { [Function: send] request: [Function: bound ], call: 'eth_getBalance' },
getStorageAt: { [Function: send] request: [Function: bound ], call: 'eth_getStorageAt' },
getCode: { [Function: send] request: [Function: bound ], call: 'eth_getCode' },
getBlock: { [Function: send] request: [Function: bound ], call: [Function: blockCall] },
getUncle: { [Function: send] request: [Function: bound ], call: [Function: uncleCall] },
getCompilers: { [Function: send] request: [Function: bound ], call: 'eth_getCompilers' },
getBlockTransactionCount:
{ [Function: send]
request: [Function: bound ],
call: [Function: getBlockTransactionCountCall] },
getBlockUncleCount:
{ [Function: send]
request: [Function: bound ],
call: [Function: uncleCountCall] },
getTransaction:
{ [Function: send]
request: [Function: bound ],
call: 'eth_getTransactionByHash' },
getTransactionFromBlock:
{ [Function: send]
request: [Function: bound ],
call: [Function: transactionFromBlockCall] },
getTransactionReceipt:
{ [Function: send]
request: [Function: bound ],
call: 'eth_getTransactionReceipt' },
getTransactionCount: { [Function: send] request: [Function: bound ], call: 'eth_getTransactionCount' },
call: { [Function: send] request: [Function: bound ], call: 'eth_call' },
estimateGas: { [Function: send] request: [Function: bound ], call: 'eth_estimateGas' },
sendSignedTransaction: { [Function: send] request: [Function: bound ], call: 'eth_sendRawTransaction' },
signTransaction: { [Function: send] request: [Function: bound ], call: 'eth_signTransaction' },
sendTransaction: { [Function: send] request: [Function: bound ], call: 'eth_sendTransaction' },
sign: { [Function: send] request: [Function: bound ], call: 'eth_sign' },
compile: { solidity: [Object], lll: [Object], serpent: [Object] },
submitWork: { [Function: send] request: [Function: bound ], call: 'eth_submitWork' },
getWork: { [Function: send] request: [Function: bound ], call: 'eth_getWork' },
getPastLogs: { [Function: send] request: [Function: bound ], call: 'eth_getLogs' },
subscribe: { [Function] call: undefined },
net:
Net {
currentProvider: [Getter/Setter],
_requestManager: [Object],
givenProvider: null,
providers: [Object],
_provider: [Object],
setProvider: [Function],
BatchRequest: [Function: bound Batch],
extend: [Object],
getId: [Object],
isListening: [Object],
getPeerCount: [Object],
getNetworkType: [Function: bound getNetworkType] },
accounts: [Circular],
personal:
Personal {
currentProvider: [Getter/Setter],
_requestManager: [Object],
givenProvider: null,
providers: [Object],
_provider: [Object],
setProvider: [Function],
BatchRequest: [Function: bound Batch],
extend: [Object],
getAccounts: [Object],
newAccount: [Object],
unlockAccount: [Object],
sendTransaction: [Object],
lockAccount: [Object],
importRawKey: [Object],
sign: [Object],
ecRecover: [Object],
net: [Object] },
Contract: [Function: Contract],
Iban:
{ [Function: Iban]
toAddress: [Function],
toIban: [Function],
fromAddress: [Function],
fromBban: [Function],
createIndirect: [Function],
isValid: [Function] },
abi: ABICoder { _types: [Array] } },
wallet:
Wallet {
length: 0,
_accounts: [Circular],
defaultKeyName: 'web3js_wallet' } }
答案 0 :(得分:0)
您的连接正在工作。
要返回一组帐户,请使用web3.eth.getAccounts()
而不是web3.eth.accounts
。
上面的代码应类似于...
Web3 = require('web3')
web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
web3.eth.getAccounts().then(accounts => console.log(accounts));
给你类似的东西
[ '0x09e67e758381Fb878b9B1dCB91f2D5a62E00035a',
'0x1BaABCa410a88564aC2BD9b8570D21b6e898C4C3',
'0x8bfF74332C52065d2CC46f96c191aCDeec1AFEF2',
'0x19070EaC7D68a710A5843Ee8cA3de258024da3Cb',
'0x909394eA6feA0aDba05f093Ae43782e42b462F56',
'0x63527Ef51b17830d6F597686C366A1995fd31bb2',
'0xf476D31fAD8605d9D9D7b557C5117Bbe102935bc',
'0xA64ba4e9d332106181A073E6eD20F876D6e28856',
'0x126533F5FC78E355Fc35476Ae1392D338366D229',
'0x291c17c0901FC9143D0DC43E1455E20D26342377' ]