i'am trying to make a instance of my contract in js using web3, but when I use the function web3.eth.Contract(abi, address)
the result is not the expected(I take the ABI from remix).
this is the code:
const Web3 = require('web3');
const web3 = new Web3('https://ropsten.infura.io/v3/53da5774bc2d410c90cc1e4c19d84dc4');
const account1 = '0xA4767B3a3a8D23912045E551c41c4C559572Fb85';
const contractAddress = '0xf779b15371Db4Eb0dD0eA3FD6f869cf9f5229649';
const abi = [ABI from remix];
var contract = new web3.eth.Contract(abi, contractAddress);
console.log(contract);
The output does not contain the methods defined in ABI and isn't possible call them with contract.methods.myMethods....
.
This is the output:
AbstractContract {
providersModuleFactory: ProvidersModuleFactory {},
providerDetector: ProviderDetector {},
providerResolver:
ProviderResolver { providersModuleFactory: ProvidersModuleFactory {} },
givenProvider: null,
_currentProvider:
HttpProvider {
host:
'https://ropsten.infura.io/v3/53da5774bc2d410c90cc1e4c19d84dc4',
timeout: 0,
headers: undefined,
connected: true,
providersModuleFactory: ProvidersModuleFactory {},
agent: { httpsAgent: [Agent] } },
_defaultAccount: undefined,
_defaultBlock: 'latest',
_transactionBlockTimeout: 50,
_transactionConfirmationBlocks: 24,
_transactionPollingTimeout: 750,
_defaultGasPrice: undefined,
_defaultGas: undefined,
BatchRequest: [Function],
contractModuleFactory:
ContractModuleFactory {
utils:
{ randomHex: [Function: randomHex],
jsonInterfaceMethodToString: [Function: jsonInterfaceMethodToString],
hexToAscii: [Function: hexToAscii],
asciiToHex: [Function: asciiToHex],
getUnitValue: [Function: getUnitValue],
fromWei: [Function: fromWei],
toWei: [Function: toWei],
toChecksumAddress: [Function: toChecksumAddress],
keccak256: [Function],
sha3: [Function],
toDecimal: [Function: hexToNumber],
hexToNumber: [Function: hexToNumber],
fromDecimal: [Function: numberToHex],
numberToHex: [Function: numberToHex],
hexToString: [Function: hexToUtf8],
toUtf8: [Function: hexToUtf8],
stringToHex: [Function: utf8ToHex],
fromUtf8: [Function: utf8ToHex],
utf8ToHex: [Function: utf8ToHex],
toAscii: [Function: hexToAscii],
fromAscii: [Function: asciiToHex],
padLeft: [Function: leftPad],
padRight: [Function: rightPad],
getSignatureParameters: [Function: getSignatureParameters],
isAddress: [Function: isAddress],
isBN: [Function: isBN],
checkAddressChecksum: [Function: checkAddressChecksum],
toBN: [Function: toBN],
toHex: [Function: toHex],
hexToNumberString: [Function: hexToNumberString],
toTwosComplement: [Function: toTwosComplement],
isHex: [Function: isHex],
isHexStrict: [Function: isHexStrict],
isBloom: [Function: isBloom],
isTopic: [Function: isTopic],
bytesToHex: [Function: bytesToHex],
hexToBytes: [Function: hexToBytes],
soliditySha3: [Function: soliditySha3] },
formatters:
{ outputBigNumberFormatter: [Function: outputBigNumberFormatter],
isPredefinedBlockNumber: [Function: isPredefinedBlockNumber],
inputDefaultBlockNumberFormatter: [Function: inputDefaultBlockNumberFormatter],
inputBlockNumberFormatter: [Function: inputBlockNumberFormatter],
txInputFormatter: [Function: txInputFormatter],
inputCallFormatter: [Function: inputCallFormatter],
inputTransactionFormatter: [Function: inputTransactionFormatter],
inputSignFormatter: [Function: inputSignFormatter],
outputTransactionFormatter: [Function: outputTransactionFormatter],
outputTransactionReceiptFormatter: [Function: outputTransactionReceiptFormatter],
outputBlockFormatter: [Function: outputBlockFormatter],
inputLogFormatter: [Function: inputLogFormatter],
outputLogFormatter: [Function: outputLogFormatter],
inputPostFormatter: [Function: inputPostFormatter],
outputPostFormatter: [Function: outputPostFormatter],
inputAddressFormatter: [Function: inputAddressFormatter],
outputSyncingFormatter: [Function: outputSyncingFormatter] },
abiCoder: AbiCoder { utils: [Object], ethersAbiCoder: [AbiCoder] },
accounts:
Accounts {
providersModuleFactory: ProvidersModuleFactory {},
providerDetector: ProviderDetector {},
providerResolver: [ProviderResolver],
givenProvider: null,
_currentProvider: [HttpProvider],
_defaultAccount: undefined,
_defaultBlock: 'latest',
_transactionBlockTimeout: 50,
_transactionConfirmationBlocks: 24,
_transactionPollingTimeout: 750,
_defaultGasPrice: undefined,
_defaultGas: undefined,
BatchRequest: [Function],
methodFactory: [MethodFactory],
utils: [Object],
formatters: [Object],
wallet: [Wallet] },
methodModuleFactory:
ModuleFactory {
accounts: [Accounts],
subscriptionsFactory: [SubscriptionsFactory],
formatters: [Object],
utils: [Object] } },
abiCoder:
AbiCoder {
utils:
{ randomHex: [Function: randomHex],
jsonInterfaceMethodToString: [Function: jsonInterfaceMethodToString],
hexToAscii: [Function: hexToAscii],
asciiToHex: [Function: asciiToHex],
getUnitValue: [Function: getUnitValue],
fromWei: [Function: fromWei],
toWei: [Function: toWei],
toChecksumAddress: [Function: toChecksumAddress],
keccak256: [Function],
sha3: [Function],
toDecimal: [Function: hexToNumber],
hexToNumber: [Function: hexToNumber],
fromDecimal: [Function: numberToHex],
numberToHex: [Function: numberToHex],
hexToString: [Function: hexToUtf8],
toUtf8: [Function: hexToUtf8],
stringToHex: [Function: utf8ToHex],
fromUtf8: [Function: utf8ToHex],
utf8ToHex: [Function: utf8ToHex],
toAscii: [Function: hexToAscii],
fromAscii: [Function: asciiToHex],
padLeft: [Function: leftPad],
padRight: [Function: rightPad],
getSignatureParameters: [Function: getSignatureParameters],
isAddress: [Function: isAddress],
isBN: [Function: isBN],
checkAddressChecksum: [Function: checkAddressChecksum],
toBN: [Function: toBN],
toHex: [Function: toHex],
hexToNumberString: [Function: hexToNumberString],
toTwosComplement: [Function: toTwosComplement],
isHex: [Function: isHex],
isHexStrict: [Function: isHexStrict],
isBloom: [Function: isBloom],
isTopic: [Function: isTopic],
bytesToHex: [Function: bytesToHex],
hexToBytes: [Function: hexToBytes],
soliditySha3: [Function: soliditySha3] },
ethersAbiCoder: AbiCoder { coerceFunc: [Function] } },
utils:
{ randomHex: [Function: randomHex],
jsonInterfaceMethodToString: [Function: jsonInterfaceMethodToString],
hexToAscii: [Function: hexToAscii],
asciiToHex: [Function: asciiToHex],
getUnitValue: [Function: getUnitValue],
fromWei: [Function: fromWei],
toWei: [Function: toWei],
toChecksumAddress: [Function: toChecksumAddress],
keccak256: { [Function: sha3] _Hash: [Object] },
sha3: { [Function: sha3] _Hash: [Object] },
toDecimal: [Function: hexToNumber],
hexToNumber: [Function: hexToNumber],
fromDecimal: [Function: numberToHex],
numberToHex: [Function: numberToHex],
hexToString: [Function: hexToUtf8],
toUtf8: [Function: hexToUtf8],
stringToHex: [Function: utf8ToHex],
fromUtf8: [Function: utf8ToHex],
utf8ToHex: [Function: utf8ToHex],
toAscii: [Function: hexToAscii],
fromAscii: [Function: asciiToHex],
padLeft: [Function: leftPad],
padRight: [Function: rightPad],
getSignatureParameters: [Function: getSignatureParameters],
isAddress: [Function: isAddress],
isBN: [Function: isBN],
checkAddressChecksum: [Function: checkAddressChecksum],
toBN: [Function: toBN],
toHex: [Function: toHex],
hexToNumberString: [Function: hexToNumberString],
toTwosComplement: [Function: toTwosComplement],
isHex: [Function: isHex],
isHexStrict: [Function: isHexStrict],
isBloom: [Function: isBloom],
isTopic: [Function: isTopic],
bytesToHex: [Function: bytesToHex],
hexToBytes: [Function: hexToBytes],
soliditySha3: [Function: soliditySha3] },
formatters:
{ outputBigNumberFormatter: [Function: outputBigNumberFormatter],
isPredefinedBlockNumber: [Function: isPredefinedBlockNumber],
inputDefaultBlockNumberFormatter: [Function: inputDefaultBlockNumberFormatter],
inputBlockNumberFormatter: [Function: inputBlockNumberFormatter],
txInputFormatter: [Function: txInputFormatter],
inputCallFormatter: [Function: inputCallFormatter],
inputTransactionFormatter: [Function: inputTransactionFormatter],
inputSignFormatter: [Function: inputSignFormatter],
outputTransactionFormatter: [Function: outputTransactionFormatter],
outputTransactionReceiptFormatter: [Function: outputTransactionReceiptFormatter],
outputBlockFormatter: [Function: outputBlockFormatter],
inputLogFormatter: [Function: inputLogFormatter],
outputLogFormatter: [Function: outputLogFormatter],
inputPostFormatter: [Function: inputPostFormatter],
outputPostFormatter: [Function: outputPostFormatter],
inputAddressFormatter: [Function: inputAddressFormatter],
outputSyncingFormatter: [Function: outputSyncingFormatter] },
abiMapper:
AbiMapper {
utils:
{ randomHex: [Function: randomHex],
jsonInterfaceMethodToString: [Function: jsonInterfaceMethodToString],
hexToAscii: [Function: hexToAscii],
asciiToHex: [Function: asciiToHex],
getUnitValue: [Function: getUnitValue],
fromWei: [Function: fromWei],
toWei: [Function: toWei],
toChecksumAddress: [Function: toChecksumAddress],
keccak256: [Function],
sha3: [Function],
toDecimal: [Function: hexToNumber],
hexToNumber: [Function: hexToNumber],
fromDecimal: [Function: numberToHex],
numberToHex: [Function: numberToHex],
hexToString: [Function: hexToUtf8],
toUtf8: [Function: hexToUtf8],
stringToHex: [Function: utf8ToHex],
fromUtf8: [Function: utf8ToHex],
utf8ToHex: [Function: utf8ToHex],
toAscii: [Function: hexToAscii],
fromAscii: [Function: asciiToHex],
padLeft: [Function: leftPad],
padRight: [Function: rightPad],
getSignatureParameters: [Function: getSignatureParameters],
isAddress: [Function: isAddress],
isBN: [Function: isBN],
checkAddressChecksum: [Function: checkAddressChecksum],
toBN: [Function: toBN],
toHex: [Function: toHex],
hexToNumberString: [Function: hexToNumberString],
toTwosComplement: [Function: toTwosComplement],
isHex: [Function: isHex],
isHexStrict: [Function: isHexStrict],
isBloom: [Function: isBloom],
isTopic: [Function: isTopic],
bytesToHex: [Function: bytesToHex],
hexToBytes: [Function: hexToBytes],
soliditySha3: [Function: soliditySha3] },
abiCoder: AbiCoder { utils: [Object], ethersAbiCoder: [AbiCoder] },
contractModuleFactory:
ContractModuleFactory {
utils: [Object],
formatters: [Object],
abiCoder: [AbiCoder],
accounts: [Accounts],
methodModuleFactory: [ModuleFactory] } },
options: { address: '0xf779b15371Db4Eb0dD0eA3FD6f869cf9f5229649' },
PromiEvent: [Function: PromiEvent],
methodFactory:
MethodFactory {
accounts:
Accounts {
providersModuleFactory: ProvidersModuleFactory {},
providerDetector: ProviderDetector {},
providerResolver: [ProviderResolver],
givenProvider: null,
_currentProvider: [HttpProvider],
_defaultAccount: undefined,
_defaultBlock: 'latest',
_transactionBlockTimeout: 50,
_transactionConfirmationBlocks: 24,
_transactionPollingTimeout: 750,
_defaultGasPrice: undefined,
_defaultGas: undefined,
BatchRequest: [Function],
methodFactory: [MethodFactory],
utils: [Object],
formatters: [Object],
wallet: [Wallet] },
utils:
{ randomHex: [Function: randomHex],
jsonInterfaceMethodToString: [Function: jsonInterfaceMethodToString],
hexToAscii: [Function: hexToAscii],
asciiToHex: [Function: asciiToHex],
getUnitValue: [Function: getUnitValue],
fromWei: [Function: fromWei],
toWei: [Function: toWei],
toChecksumAddress: [Function: toChecksumAddress],
keccak256: [Function],
sha3: [Function],
toDecimal: [Function: hexToNumber],
hexToNumber: [Function: hexToNumber],
fromDecimal: [Function: numberToHex],
numberToHex: [Function: numberToHex],
hexToString: [Function: hexToUtf8],
toUtf8: [Function: hexToUtf8],
stringToHex: [Function: utf8ToHex],
fromUtf8: [Function: utf8ToHex],
utf8ToHex: [Function: utf8ToHex],
toAscii: [Function: hexToAscii],
fromAscii: [Function: asciiToHex],
padLeft: [Function: leftPad],
padRight: [Function: rightPad],
getSignatureParameters: [Function: getSignatureParameters],
isAddress: [Function: isAddress],
isBN: [Function: isBN],
checkAddressChecksum: [Function: checkAddressChecksum],
toBN: [Function: toBN],
toHex: [Function: toHex],
hexToNumberString: [Function: hexToNumberString],
toTwosComplement: [Function: toTwosComplement],
isHex: [Function: isHex],
isHexStrict: [Function: isHexStrict],
isBloom: [Function: isBloom],
isTopic: [Function: isTopic],
bytesToHex: [Function: bytesToHex],
hexToBytes: [Function: hexToBytes],
soliditySha3: [Function: soliditySha3] },
formatters:
{ outputBigNumberFormatter: [Function: outputBigNumberFormatter],
isPredefinedBlockNumber: [Function: isPredefinedBlockNumber],
inputDefaultBlockNumberFormatter: [Function: inputDefaultBlockNumberFormatter],
inputBlockNumberFormatter: [Function: inputBlockNumberFormatter],
txInputFormatter: [Function: txInputFormatter],
inputCallFormatter: [Function: inputCallFormatter],
inputTransactionFormatter: [Function: inputTransactionFormatter],
inputSignFormatter: [Function: inputSignFormatter],
outputTransactionFormatter: [Function: outputTransactionFormatter],
outputTransactionReceiptFormatter: [Function: outputTransactionReceiptFormatter],
outputBlockFormatter: [Function: outputBlockFormatter],
inputLogFormatter: [Function: inputLogFormatter],
outputLogFormatter: [Function: outputLogFormatter],
inputPostFormatter: [Function: inputPostFormatter],
outputPostFormatter: [Function: outputPostFormatter],
inputAddressFormatter: [Function: inputAddressFormatter],
outputSyncingFormatter: [Function: outputSyncingFormatter] },
contractModuleFactory:
ContractModuleFactory {
utils: [Object],
formatters: [Object],
abiCoder: [AbiCoder],
accounts: [Accounts],
methodModuleFactory: [ModuleFactory] },
methodModuleFactory:
ModuleFactory {
accounts: [Accounts],
subscriptionsFactory: [SubscriptionsFactory],
formatters: [Object],
utils: [Object] },
abiCoder: AbiCoder { utils: [Object], ethersAbiCoder: [AbiCoder] } },
abiModel: AbiModel { abi: { methods: [Object], events: {} } },
methods:
MethodsProxy {
contract: [Circular],
abiModel: AbiModel { abi: [Object] },
methodFactory:
MethodFactory {
accounts: [Accounts],
utils: [Object],
formatters: [Object],
contractModuleFactory: [ContractModuleFactory],
methodModuleFactory: [ModuleFactory],
abiCoder: [AbiCoder] },
methodEncoder: MethodEncoder { abiCoder: [AbiCoder] },
methodOptionsValidator: MethodOptionsValidator { utils: [Object] },
methodOptionsMapper:
MethodOptionsMapper { utils: [Object], formatters: [Object] },
PromiEvent: [Function: PromiEvent] },
events:
EventSubscriptionsProxy {
contract: [Circular],
eventSubscriptionFactory:
EventSubscriptionFactory { utils: [Object], formatters: [Object] },
abiModel: AbiModel { abi: [Object] },
eventOptionsMapper:
EventOptionsMapper {
formatters: [Object],
eventFilterEncoder: [EventFilterEncoder] },
eventLogDecoder: EventLogDecoder { abiCoder: [AbiCoder] },
allEventsLogDecoder: AllEventsLogDecoder { abiCoder: [AbiCoder] },
allEventsOptionsMapper:
AllEventsOptionsMapper {
formatters: [Object],
allEventsFilterEncoder: [AllEventsFilterEncoder] },
PromiEvent: [Function: PromiEvent] } }
I try also taking the ABI from json file, same problem.
Someone can help me?
Thanks 🙂
Best Answer
I solved it by downgrading to
web3.1.0.0-beta.37
. This is the latest release I could find which doesn't have this problem.