Estoy tratando de obtener el último bloque del servidor RPC público de la red Avalanche. Logré enviar llamadas JSON-RPC a su servidor y obtuve una respuesta. El problema es cómo decodificar la respuesta y dar sentido a los datos devueltos.
Aquí están mis intentos
<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script> <script> jQuery.ajax({ url: "https://api.avax.network/ext/bc/C/rpc", type: "post", data: JSON.stringify({ "jsonrpc": "2.0", "id": 65, "method": "eth_getBlockByNumber", "params": ["latest", false] }), contentType: "application/json; charset=utf-8", dataType : "json", success : function (data) { console.log((data.result.gasUsed)) console.log(data); }, error : function (xhr, status, errorThrown) { console.log(xhr); } }); </script>Mi problema ahora es que cada vez que intento decodificar cada valor del objeto de respuesta, falla. Intenté usar el convertidor de código hexadecimal a cadena, pero no funciona. Aquí está el fragmento de código que he probado:
function hex2a(hex) { var str = ''; for (var i = 0; i < hex.length; i += 2) { var v = parseInt(hex.substr(i, 2), 16); if (v) str += String.fromCharCode(v); } return str;}
Esto no devuelve una cadena legible. Y estoy atascado en un proyecto paralelo. ¿Alguien me puede ayudar?
Puede usar la función nativa parseInt() para convertir números hexadecimales a su forma decimal.
Ejemplo: parseInt(0x1c6500) devuelve 1860864 .