Entonces puedo interactuar con una función dentro de un contrato inteligente. También sé que para hacer la transacción necesito algo como esto:
const contractObj = new web3.eth.Contract(abi, contractAddress)
const transaction= await contractObj .methods.NameofTheMethod(x).send({from:myAddress,gasLimit:value})
Mi pregunta es: ¿cuál es el siguiente paso? Porque puse myAddress pero debo firmar esto antes de enviar la transacción ¿no?
De lo contrario, ¿cómo podrá tomar la tarifa del gas?
Puede pasar la clave privada de myAddress a la instancia web3 utilizando el método wallet.add() ( docs ). Luego, Web3 firma la transacción antes de enviarla a un nodo público.
Durante el desarrollo local, la mayoría de los emuladores de nodos (como Ganache y Hardhat) contienen claves privadas para las direcciones generadas. Entonces, en este caso, la transacción se firma en el nodo de desarrollo y no es necesario que la firme con su instancia web3 local.