Cómo usar tokens ERC20 personalizados para pagos [cerrado]

Actualmente estoy implementando un Ethereum Blockchain privado. También creé un contrato inteligente de Token ERC20 personalizado. Quiero saber cómo usar este token personalizado en lugar de ether para otro contrato inteligente relacionado con la compra y venta de productos. El propósito es que una vez que el comprador quiera comprar algún artículo, debería poder realizar un pago en términos de token personalizado, digamos my_token y una vez que se extrae la transacción, el número deseado de my_tokens debe agregarse a la cuenta del vendedor y el mismo número debe eliminarse de la cuenta del comprador.

Hola. Esta pregunta ha sido marcada por un par de personas por ser demasiado amplia. Probablemente necesitará ser más específico con su pregunta para obtener buenas respuestas.

Respuestas (1)

Lograr esto debería ser bastante sencillo. Tienes tu contrato de token en la dirección 0x0A con todo el saldo asignado a ti, el emisor.

Digamos que alguien le compra tokens, por lo que los transfiere a la Cuenta 0x0B.

Ahora, 0x0B quiere interactuar con el contrato X que tiene una función que acepta tus tokens en lugar de ether.

La función de este contrato primero obtendría una instancia de su contrato de token haciendoToken yourToken = Token(0x0A);

Ahora que tiene una referencia a su contrato de fichas, tendría que transferir fichas del saldo del comprador a su propio saldo utilizando la transferFrom(buyer, this, someAmount);función.

Si esa llamada tiene éxito, puede asumir con seguridad que los tokens ahora están en posesión del contrato de mercado.

Tenga en cuenta que para que lo anterior funcione, primero, el comprador debe aprobar esa asignación al contrato de mercado para permitirle restar tokens del comprador.

La interfaz completa para el estándar de token ERC20 se puede encontrar aquí: theethereum.wiki/w/index.php/ERC20_Token_Standard Probablemente desee usar la función de transferencia, no la transferenciaDe como pablocruiz55 menciona anteriormente: transferir (dirección a, uint tokens)