iotaledger / wasp

Node for IOTA Smart Contracts
Apache License 2.0
296 stars 147 forks source link

Error while calling smart contract method with web3 version 4+ #3392

Open beawareoftheg opened 5 months ago

beawareoftheg commented 5 months ago

Describe the bug Calling a smart contract function (not a view) from web3.js library version 4.x, using Metamask, raise the error "Params specify an EIP-1559 transaction but the current network does not support EIP-1559"

To Reproduce

  1. Deploy contract with a function to be called (for example, with Remix)
  2. Obtain the contract object from Metamask, with the web3.js library, inserting the correct information: const address = "0x....";<br> const abitext = 'abi....';<br> const abi = JSON.parse(abitext);<br> contractObject = new web3.eth.Contract(abi, address);
  3. Interact with the contract by calling the method using the web3.js library version 4.x try{ await contractObject.methods.methodName(parameters).send({ from: account, gas: '1000000', }); } catch (err) { console.log(err) }
  4. Read the console to see the error.

Expected behavior The call to the function should work with this code, as it works connecting Metamask to different blockchains. This code works properly with the ShimmerEVM Testnet using the web3.js library version 1.10.4, that is now deprecated.

Network and versioning

beawareoftheg commented 5 months ago

Another problem with smart contract deployment: the cancun evm is not working in the Shimmer evm Testnet when calling view functions that works with strings (e.g. returning string in a function). Instead the previous evm version, shangai, is working.

beawareoftheg commented 3 months ago

Update: the error is present even without the use of Metamask, but also connecting directly to the nodes via JSON-RPC url, with web3 libraries functions