Pregunta rápida: ¿puede una función enviar múltiples tokens?

Y con la pregunta quiero decir si puedo enviar un par de ERC20 diferentes o digamos incluso 1 ERC20 + alguna cantidad de éter en una función.

Respuestas (1)

Puede hacer ambas cosas mediante el uso de un contrato inteligente. La limitación con la que se encontrará aquí es la cantidad de gas que se utiliza para esta transacción.

Si desea enviar muchos tokens ERC20, usaría el siguiente código en su contrato inteligente:

ERC20Interface(ERC20Token0).transfer(to_address, value);
ERC20Interface(ERC20Token1).transfer(to_address, value);
ERC20Interface(ERC20Token2).transfer(to_address, value);

Si desea transferir un token ERC20 y Ether, haría lo siguiente:

ERC20Interface(ERC20Token0).transfer(to_address, value);
to_address.transfer(value);

Hay otro código que debe insertarse en el contrato inteligente, pero esas son las piezas críticas.

Hago exactamente lo que dijiste, pero sigo recibiendo el siguiente error en Remix al enviar la transacción: imgur.com/a/k1dMOqr
¿Estás enviando ETH o un token?
1 ficha y una cierta cantidad de éter
Intente comentar cada línea para ver dónde se produce el error. Intente enviar ETH primero, y luego, si eso funciona, sabrá que es el token el que está fallando. Nota: para que esa transacción funcione, debe haber enviado ETH al contrato inteligente. No puede tirar de su billetera. Por lo tanto, ya debería haber enviado ETH al contrato inicialmente.
Seguí lo que dijiste y resultó que mi interfaz ERC20 tenía un pequeño error. Lo tenía como function transfer(address _to, uint256 _value) returns (bool success);y eliminar la declaración de devolución resolvió el problema. Gracias por tu ayuda.
Alegra oírlo.