como modificar el contrato

Tengo un token creado en un contrato inteligente. la dirección del contrato es 0x1fa1a89f72c1011122e62261bb962b123ac40a76

He intentado transferir el token varias veces y recibo el siguiente error. ¡Advertencia! Error encontrado durante la ejecución del contrato [Instrucción incorrecta]

https://etherscan.io/tx/0x7d7571080d6469a558847c075283d30ef197ca69ba8761242ec469a44521e248

el código fuente del contrato inteligente es

contract FRPoint {
    /* Public variables of the token */
    string public standard = 'Token 0.1';
    string public name;
    string public symbol;
    uint8 public decimals;
    uint256 public initialSupply;

    /* This creates an array with all balances */
    mapping (address => uint256) public balanceOf;
    mapping (address => mapping (address => uint256)) public allowance;


    /* Initializes contract with initial supply tokens to the creator of the contract */
    function FRPoint() {

         initialSupply = 90000000000000000000;
         name ="FRP$";
        decimals = 9;
         symbol = "FRP";

        balanceOf[msg.sender] = initialSupply;              // Give the creator all initial tokens
        uint256 totalSupply = initialSupply;                        // Update total supply

    }

    /* Send coins */
    function transfer(address _to, uint256 _value) {
        if (balanceOf[msg.sender] < _value) throw;           // Check if the sender has enough
        if (balanceOf[_to] + _value < balanceOf[_to]) throw; // Check for overflows
        balanceOf[msg.sender] -= _value;                     // Subtract from the sender
        balanceOf[_to] += _value;                            // Add the same to the recipient

    }







    /* This unnamed function is called whenever someone tries to send ether to it */
    function () {
        throw;     // Prevents accidental sending of ether
    }
}

Perdí éter como gas mientras realizaba la transacción y es posible recuperarlo.

Hola. Sería una buena idea probar su contrato en la red de prueba antes de enviarlo a la red principal. De esa manera, puede minimizar cualquier pérdida de éter.
No, no es posible "recuperar" el éter gastado en gas; el punto del costo es limitar la cantidad de cómputo y almacenamiento utilizado (para evitar sobrecargar la red). Incluso cuando las transacciones no funcionan como se esperaba, aún consumen recursos de la red Ethereum. Brindar a las personas una forma de obtener un reembolso por el éter gastado en gasolina anularía el propósito de tener un precio en la gasolina en primer lugar.

Respuestas (1)

En esta transacción , y en las otras fallidas recientes, está intentando llamar al approve()método, que el contrato no implementa. Por eso está fallando.

Este no es un token ERC20, por lo que solo necesita llamar transfer(), como en esta transacción exitosa .

¿Hay algún remedio para incorporar la aprobación en el contrato para que pueda aprobar la transferencia de intercambio?
¿Cuáles son todos los demás factores necesarios para considerar el token como erc20?
La descripción del ERC20 está aquí . Hay muchas implementaciones "estándar" que la gente usa, por ejemplo, el token de OpenZeppelin .