Open beawareoftheg opened 3 months ago
Update: I tried with a wss connection. I ran a similar node but with a https connection. But the outcome it's still the same: when I try to call a normal function of the contract or subscribe to event, it gives me: "Unexpected server response: 429", that for what I understood, it's a Too Many Requests error.
The problem is not related to the use of tls.
Another update: the problem seems to be related to executing the nodejs app in the same node. I tried to run the nodejs app in another vm, connecting to the one running wasp. It seems that, by limiting the action's rates (e.g., only one subscription to the event at a time), the interactions works. But still, running it in the same node is not working, even by limiting the actions. Moreover, connecting to wss of public testnets, there are no errors and it is possible to perform all the actions together without problems
I cannot try with newer versions of web3 for the #3392 issue.
Describe the bug I use a ws connection from my Nodejs app, that uses web3 libraries. The connection via wss works properly with the public API of the IOTA evm testnet and I can interact with smart contracts and even listen to events. The problem is with a local wasp node and a private chain that I deployed. The connection is made with ws (and not wss) as the wasp node runs with HTTP (not HTTPS). With wscat I am able to get a response. The nodejs app initially connects with the web socket, and I can call view functions from a smart contract, but when I try to call a normal function (i.e. where I have to spend gas) or subscribe to events, the connection stops. Moreover, once I do that, with wscat I am not able anymore to connect to the web socket, and I get "error: Unexpected server response: 429". To get it working again I need to run "docker compose down" and then "docker compose up".
To Reproduce
Expected behavior The connection should not stop, as it is working without errors in public testnets.
Screenshots Screenshot of the error in my nodejs app (running on localhost:3000)
Network and versioning
Additional context The connection to the web socket from the nodejs app, is made with: web3 = new Web3(new Web3.providers.WebsocketProvider(ws://localhost/wasp/api/v1/chains/tst1pqsvlxmlvj9fkq6uuz0y48m6wucgdsqpt70ftmgzn95ase5wrjtqy7msdq4/evm/ws));