Come decodificare una transazione grezza?
3 risposta
- voti
-
- 2020-05-28
Taquitopuò analizzarei byte contraffatti utilizzandoilmetodo
parse()
nelpacchetto@taquito/local-forging
.I TypeDoc sono qui . Puoi vederegli unittest qui .
Implementazioneper decodificare unatransazionefirmata:
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
Puoi usareilbinario
tezos-codec
per decodificare questo:tezos-codec decode 006-PsCARTHA.operation from 008f1d96e2783258ff663f03dacfe946c026a5d194c73d1987b3da73fadea7d46c008cb5baedee4dc3ec261dfcf57a9600bb0a8e26c0f00bdd85a0018452ac02e0a712000153957451d3cc83a71e26b65ea2391a1b16713d2d009595facf847a72b4c3fe231c0e4185e68e9b2875aa3c639382c86bcf0af23699f47fe66a6550ade936a5b59d5919ad20703885750314e0c368b277de39e7d10a
cheproduce
{ "branch": "BKiXcfN1ZTXnNNbTWSRArSWzVFc6om7radWq5mTqGX6rY4P2Uhe", "contents": [ { "kind": "transaction", "source": "tz1YU2zoyCkXPKEA4jknSpCpMs7yUndVNe3S", "fee": "1520", "counter": "2622173", "gas_limit": "10500", "storage_limit": "300", "amount": "300000", "destination": "tz2FwBnXhuXvPAUcr1aF3uX84Z6JELxrdYxD" } ], "signature": "sighZMqWz5G8drK1VTsmTnQBFEQ9kxQQxL88NFh8UaqDEJ3R3mzgR3g81azadZ9saPwsWga3kEPsyfbzrXm6ueuDvx3pQ5Q9" }
Puoi otteneremaggiori dettagli su
tezos-codec
nel suomanuale (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 salva la vita.Qualcheidea seesiste una libreria NPM cometezos-codec?TOMASSSS you life saver. Any idea if there's an NPM library like tezos-codec?
- 0
- 2020-05-28
- coder123
-
Non sono sicuro di quale siail suo stato,mapuoiprovare 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
Puoi utilizzare l'endpoint RPC:
/chains/main/blocks/head/helpers/parse/operations
perfarlo.Esempio:
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' } } )
Utilizzo @taquitoper crearee firmare unatransazione. Maprima diinviarlo,voglio decodificarloper controllareilmioindirizzo di destinazione,l'importoecc. Comefarestinormalmenteper altriblockchain.
Non sono sicuro di comefarlo,ma hofirmato una richiesta utilizzando lamia chiave difirma ED25519. Lafirma è andata abuonfine egli sbyte che ho ricevutoin cambio sono stati
008f1d96e2783258ff663f03dacfe946c026a5d194c73d1987b3da73fadea7d46c008cb5baedee4dc3ec261dfcf57a9600bb0a8e26c0f00bdd85a0018452ac02e0a712000153957451d3cc83a71e26b65ea2391a1b16713d2d009595facf847a72b4c3fe231c0e4185e68e9b2875aa3c639382c86bcf0af23699f47fe66a6550ade936a5b59d5919ad20703885750314e0c368b277de39e7d10a
Ho letto alcuni articolimanon sono riuscito atrovare unmodoesattoperfarloe qualunque cosa abbiaprovatonon haprodottoesattamente quello che volevo,il che significa chenon so come decodificare latransazione,oppurei mieibyte sono sbagliato. Qualcunopuò spiegare comefaccio a decodificare questatransazionegrezza utilizzando una libreria Javascript/Typescriptper ottenere cose come
fromAddress
toAddress
amount
ecc.e se lamiatransazionefirmata è corretta. Questo èpertestnet.