web3.toAscii (hash de transacción) para web3js versión 1

Cuando usé web3.toAsciirecibí el siguiente error:

ingrese la descripción de la imagen aquí

Creo que la razón es mi versión web3, es decir'1.0.0-beta.34'

Si es así, ¿hay algún comando alternativo para web3 versión 1 para el siguiente comando?

transaction = web3.eth.getTransaction('0x0c485e0f155f7f216d06e70ef85b684392c9b190c2f7c0af67ec1b56d6945498')
input = web3.toAscii(transaction.input)
console.log(input)

También usé el siguiente comando:

web3.utils.hexToAscii(0x0c485e0f155f7f216d06e70ef85b684392c9b190c2f7c0af67ec1b56d6945498)

Sin embargo, recibo el siguiente error:

ingrese la descripción de la imagen aquí

Eso significa que su entrada no puede ser un hash de transacción.

Respuestas (2)

El equivalente debería ser web3.utils.hexToAscii

web3.utils.hexToAscii('0x4920686176652031303021');
> "I have 100!"
Gracias, ya probé esto, sin embargo, su entrada no puede ser un hash de transacción. Lo expliqué en mi pregunta.
@sas Te estás perdiendo "alrededor de tu parámetro web3.utils.hexToAscii("0x0c485e0f155f7f216d06e70ef85b684392c9b190c2f7c0af67ec1b56d6945498"). En cualquier caso, no tiene mucho sentido usarlo hexToAsciicon un hash de transacción o un archivo transaction.input. Estaba destinado a usarse en algunos campos que fueron generados por asciiToHexlike block.extraData. Si desea analizar una entrada de transacción, necesita el contrato abi y usar una biblioteca como ethereumjs-abi para leer los valores de los parámetros de la llamada.
Tienes razón, sin embargo, esta vez, la salida no es la esperada: '\fH^\u000f\u0015_!m\u0006ç\u000eø[hCɱÂ÷À¯gì\u001bVÖT'" . Porque de acuerdo con esta respuesta: ethereum .stackexchange.com/questions/11144/… Quiero decodificar datos de transacciones para que sean legibles.
Sí funciona en el enlace porque fue generado por toHex(equivalente al de hoy asciiToHex). No funciona en su caso porque es una llamada de función sin formato. Como dije, necesitará el contrato ABI y un analizador ABI para extraer información de los parámetros de la llamada.

Como menciona Ismael, tienes que usar hexToAsciicon web3@^1.0

Pero parece que lo estás usando en el transaction.hashy no en eltransaction.input

EDITAR: ejemplo:

Enviar transacción:

const Tx = require('ethereumjs-tx');
const web3 = require('web3');
const data = web3.utils.toHex('Hello world!');
const rawTx = {
    nonce: web3.utils.toHex(nonce),
    gasPrice: web3.utils.toHex(gasPrice),
    gasLimit: web3.utils.toHex(gasCost),
    to: '0x0000000000000000000000000000000000000000',
    value: '0x00',
    data,
};
const privateKeyWithoutZero = privateKey.startsWith('0x') ? privateKey.slice(2, privateKey.length) : privateKey;
const privateKeyBuffer = new Buffer(privateKeyWithoutZero, 'hex');
const transaction = new Tx(rawTx);
transaction.sign(privateKeyBuffer);

const serializedTx = transaction.serialize();

web3.eth.sendSignedTransaction('0x' + serializedTx.toString('hex'))
    .on('transactionHash', (txHash) => {
        console.log('Transaction hash', txHash);
})
    .on('receipt', (receipt) => {
        console.log('Transaction sent with sucess. debug:', receipt);
});

Luego, getTransaction:

web3.eth.getTransaction('<TRANSACTION-HASH>')
        .then((transaction) => {
          const inputData = Web3.utils.hexToAscii(transaction.input);
          console.log(inputData); // Hello world!
        });
¿podría mencionar un ejemplo para la transacción. entrada? Me refiero a usar web3.utils.hexToAscii. Gracias.
Ejemplo agregado arriba
Gracias. Ahora es legible. Voy a instalar un analizador abi como este: github.com/ethereumjs/ethereumjs-abi para decodificar los datos tx.
Depende de cuál sea su objetivo, pero si solo desea leer los datos de entrada, no necesita usar ethereum-abi, actualicé mi ejemplo con un script de trabajo simple
Gracias. De hecho, tengo la intención de obtener datos de Tx usando HTML y JavaScript. Creé un repositorio de github aquí: github.com/s1241/GUI-for-Smart-Contract su contrato inteligente se probó con éxito, sin embargo, html y javascript no están completos. ¿Está interesado en echar un vistazo a su archivo HTML?
Solo tiene que implementar lo que le envié arriba :) Después parece que no quiere usar la transacción. entrada sino un contrato inteligente en su caso ...