¿Cómo decodificar transacciones sin procesar?
3 respuestas
- votos
-
- 2020-05-28
Taquitopuede analizarbytesfalsificados usandoelmétodo
parse()
en elpaquete@taquito/local-forging
.Los TypeDocsestán aquí . Puede ver laspruebas unitarias aquí .
Implementaciónpara decodificar unatransacciónfirmada:
const { localForger } = require('@taquito/local-forging'); const sbytes = '008f1d96e2783258ff663f03dacfe946c026a5d194c73d1987b3da73fadea7d46c008cb5baedee4dc3ec261dfcf57a9600bb0a8e26c0f00bdd85a0018452ac02e0a712000153957451d3cc83a71e26b65ea2391a1b16713d2d009595facf847a72b4c3fe231c0e4185e68e9b2875aa3c639382c86bcf0af23699f47fe66a6550ade936a5b59d5919ad20703885750314e0c368b277de39e7d10a'; async function decode() { const unsignedPart = sbytes.substring(0, sbytes.length - 128); // Removing last 128 characters as that is the signature const decoded = await localForger.parse(unsignedPart); console.log(decoded); } decode();
Taquito can parse forged bytes using the
parse()
method in the@taquito/local-forging
package.TypeDocs are here. You can see the unit tests here.
Implementation to decode a signed transaction:
const { localForger } = require('@taquito/local-forging'); const sbytes = '008f1d96e2783258ff663f03dacfe946c026a5d194c73d1987b3da73fadea7d46c008cb5baedee4dc3ec261dfcf57a9600bb0a8e26c0f00bdd85a0018452ac02e0a712000153957451d3cc83a71e26b65ea2391a1b16713d2d009595facf847a72b4c3fe231c0e4185e68e9b2875aa3c639382c86bcf0af23699f47fe66a6550ade936a5b59d5919ad20703885750314e0c368b277de39e7d10a'; async function decode() { const unsignedPart = sbytes.substring(0, sbytes.length - 128); // Removing last 128 characters as that is the signature const decoded = await localForger.parse(unsignedPart); console.log(decoded); } decode();
-
- 2020-05-28
Puede usarelbinario
tezos-codec
para decodificaresto:tezos-codec decode 006-PsCARTHA.operation from 008f1d96e2783258ff663f03dacfe946c026a5d194c73d1987b3da73fadea7d46c008cb5baedee4dc3ec261dfcf57a9600bb0a8e26c0f00bdd85a0018452ac02e0a712000153957451d3cc83a71e26b65ea2391a1b16713d2d009595facf847a72b4c3fe231c0e4185e68e9b2875aa3c639382c86bcf0af23699f47fe66a6550ade936a5b59d5919ad20703885750314e0c368b277de39e7d10a
que rinde
{ "branch": "BKiXcfN1ZTXnNNbTWSRArSWzVFc6om7radWq5mTqGX6rY4P2Uhe", "contents": [ { "kind": "transaction", "source": "tz1YU2zoyCkXPKEA4jknSpCpMs7yUndVNe3S", "fee": "1520", "counter": "2622173", "gas_limit": "10500", "storage_limit": "300", "amount": "300000", "destination": "tz2FwBnXhuXvPAUcr1aF3uX84Z6JELxrdYxD" } ], "signature": "sighZMqWz5G8drK1VTsmTnQBFEQ9kxQQxL88NFh8UaqDEJ3R3mzgR3g81azadZ9saPwsWga3kEPsyfbzrXm6ueuDvx3pQ5Q9" }
Puede obtenermás detalles sobre
tezos-codec
en sumanual (tezos-codec man -v 3
)You can use the
tezos-codec
binary to decode this:tezos-codec decode 006-PsCARTHA.operation from 008f1d96e2783258ff663f03dacfe946c026a5d194c73d1987b3da73fadea7d46c008cb5baedee4dc3ec261dfcf57a9600bb0a8e26c0f00bdd85a0018452ac02e0a712000153957451d3cc83a71e26b65ea2391a1b16713d2d009595facf847a72b4c3fe231c0e4185e68e9b2875aa3c639382c86bcf0af23699f47fe66a6550ade936a5b59d5919ad20703885750314e0c368b277de39e7d10a
which yields
{ "branch": "BKiXcfN1ZTXnNNbTWSRArSWzVFc6om7radWq5mTqGX6rY4P2Uhe", "contents": [ { "kind": "transaction", "source": "tz1YU2zoyCkXPKEA4jknSpCpMs7yUndVNe3S", "fee": "1520", "counter": "2622173", "gas_limit": "10500", "storage_limit": "300", "amount": "300000", "destination": "tz2FwBnXhuXvPAUcr1aF3uX84Z6JELxrdYxD" } ], "signature": "sighZMqWz5G8drK1VTsmTnQBFEQ9kxQQxL88NFh8UaqDEJ3R3mzgR3g81azadZ9saPwsWga3kEPsyfbzrXm6ueuDvx3pQ5Q9" }
You can get more details about
tezos-codec
in its manual (tezos-codec man -v 3
)-
TOMASSSStu salvavidas.¿Algunaidea de si hay unabiblioteca NPM comotezos-codec?TOMASSSS you life saver. Any idea if there's an NPM library like tezos-codec?
- 0
- 2020-05-28
- coder123
-
Noestoy seguro de cuáles suestado,peropuedesprobar https://www.npmjs.com/package/@nomadic-labs/tezos-codecI'm not sure what is its status, but you can try https://www.npmjs.com/package/@nomadic-labs/tezos-codec
- 0
- 2020-05-28
- Tomáš Zemanovič
-
- 2020-06-02
Puede usarelpuntofinal de RPC:
/chains/main/blocks/head/helpers/parse/operations
para hacereso.Ejemplo:
await axios.post( `${nodeURL}/chains/main/blocks/head/helpers/parse/operations`, parseOperationBytesData, { headers: { 'Content-Type': 'application/json' } } )
You can use the RPC endpoint:
/chains/main/blocks/head/helpers/parse/operations
to do that.Example:
await axios.post( `${nodeURL}/chains/main/blocks/head/helpers/parse/operations`, parseOperationBytesData, { headers: { 'Content-Type': 'application/json' } } )
Estoy usando @taquitopara crear yfirmar unatransacción. Pero antes deenviarlo,quiero decodificarlopara verificarmi dirección de destino,cantidad,etc.,como lo haríanormalmente con otras cadenas debloques.
Noestoy seguro de cómo hacerlo,perofirmé una solicitud conmi clave defirma ED25519. Lafirmafueexitosa y los sbytes que obtuve a cambiofueron
008f1d96e2783258ff663f03dacfe946c026a5d194c73d1987b3da73fadea7d46c008cb5baedee4dc3ec261dfcf57a9600bb0a8e26c0f00bdd85a0018452ac02e0a712000153957451d3cc83a71e26b65ea2391a1b16713d2d009595facf847a72b4c3fe231c0e4185e68e9b2875aa3c639382c86bcf0af23699f47fe66a6550ade936a5b59d5919ad20703885750314e0c368b277de39e7d10a
Leí algunos artículosperonopudeencontrar unamaneraexacta de hacerlo y lo que sea queintenténoprodujoexactamente lo que quería,lo que significa queno sé cómo decodificar latransacción,omis sbytesestánincorrecto. ¿Alguienpuedeexplicar cómo decodificoestatransacción sinprocesar usando unabiblioteca Javascript/Typecriptpara obtener cosas como
fromAddress
toAddress
amount
etc. y simi transacciónfirmadaes correcta. Estoesparatestnet.