Comment décoder la transaction brute?
3 réponses
- votes
-
- 2020-05-28
Taquitopeut analyser les octetsforgés à l'aide de laméthode
parse()
dans le@taquito/local-forging
package.Lestypedocs sont ici . Vouspouvez voir lestests de l'unité ici .
implémentationpour décoder unetransaction signée:
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
Vouspouvez utiliser lebinaire
tezos-codec
pour décoder ceci:tezos-codec decode 006-PsCARTHA.operation from 008f1d96e2783258ff663f03dacfe946c026a5d194c73d1987b3da73fadea7d46c008cb5baedee4dc3ec261dfcf57a9600bb0a8e26c0f00bdd85a0018452ac02e0a712000153957451d3cc83a71e26b65ea2391a1b16713d2d009595facf847a72b4c3fe231c0e4185e68e9b2875aa3c639382c86bcf0af23699f47fe66a6550ade936a5b59d5919ad20703885750314e0c368b277de39e7d10a
qui donne
{ "branch": "BKiXcfN1ZTXnNNbTWSRArSWzVFc6om7radWq5mTqGX6rY4P2Uhe", "contents": [ { "kind": "transaction", "source": "tz1YU2zoyCkXPKEA4jknSpCpMs7yUndVNe3S", "fee": "1520", "counter": "2622173", "gas_limit": "10500", "storage_limit": "300", "amount": "300000", "destination": "tz2FwBnXhuXvPAUcr1aF3uX84Z6JELxrdYxD" } ], "signature": "sighZMqWz5G8drK1VTsmTnQBFEQ9kxQQxL88NFh8UaqDEJ3R3mzgR3g81azadZ9saPwsWga3kEPsyfbzrXm6ueuDvx3pQ5Q9" }
Vouspouvez obtenirplus de détails sur
tezos-codec
dans sonmanuel (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
)-
Tomasses vous sauveur de vie.Avez-vous uneidée s'il y a unebibliothèque NPM comme Tezos-codec?TOMASSSS you life saver. Any idea if there's an NPM library like tezos-codec?
- 0
- 2020-05-28
- coder123
-
Jene saispas quelest son statut,mais vouspouvezessayer 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
Vouspouvez utiliser lepoint d'extrémité RPC:
/Chaînes/Main/Blocs/Tête/Aide/Pays/Opérations
Pour cefaire.Exemple:
Await Axios.post ( `$ {nœudl}/chaînes/principaux/blocs/tête/aides/parsais/opérations`, ParsopérationBytesData, { Headers: { 'Type de contenu': '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' } } )
J'utilise @taquitopour construireet signer unetransaction. Mais avant de l'envoyer,je veux le décoderpour vérifiermon adresse de destination,la quantité,etc. comme si vous leferieznormalementpour d'autres chaques deblocage.
Vousne savezpas comment lefaire,maisj'ai signé une demande avecma clé de signature ED25519. La signature a été réussieet les Sbytes quej'ai reçus étaient
008f1d96e2783258ff663f03dacfe946c026a5d194c73d1987b3da73fadea7d46c008cb5baedee4dc3ec261dfcf57a9600bb0a8e26c0f00bdd85a0018452ac02e0a712000153957451d3cc83a71e26b65ea2391a1b16713d2d009595facf847a72b4c3fe231c0e4185e68e9b2875aa3c639382c86bcf0af23699f47fe66a6550ade936a5b59d5919ad20703885750314e0c368b277de39e7d10a
J'ai lu àtravers des articles,maisje n'aipastrouvé demoyenexact de lefaireet tout ce quej'aiessayéne cédezpasexactement ce queje voulais,ce qui signifie queje ne saispas comment décoder latransaction,oumes Sbytes sontmal. Quelqu'unpeut-ilexpliquer commentpuis-je décoder cettetransactionbrute à l'aide d'unebibliothèque JavaScript/TypeScriptpour obtenir destrucs comme
deaddress
TOADDRESS
montant
etc. Et simatransaction signéeest correcte. Ceciestpour Testnet.