원시 트랜잭션을 디코딩하는 방법은 무엇입니까?
3 대답
- 투표
-
- 2020-05-28
Taquito는
parse()
패키지의@taquito/local-forging
메소드를 사용하여 위조 된 바이트를 구문 분석 할 수 있습니다.TypeDocs는 여기 에 있습니다. 단위 테스트 여기 .
서명 된 트랜잭션 디코딩 구현 :
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
tezos-codec
바이너리를 사용하여이를 디코딩 할 수 있습니다.수익
{ "branch": "BKiXcfN1ZTXnNNbTWSRArSWzVFc6om7radWq5mTqGX6rY4P2Uhe", "내용": [{ "종류": "거래", "source": "tz1YU2zoyCkXPKEA4jknSpCpMs7yUndVNe3S","fee": "1520", "카운터": "2622173","gas_limit": "10500","storage_limit": "300", "금액": "300000", "대상": "tz2FwBnXhuXvPAUcr1aF3uX84Z6JELxrdYxD"}], "서명": "sighZMqWz5G8drK1VTsmTnQBFEQ9kxQQxL88NFh8UaqDEJ3R3mzgR3g81azadZ9saPwsWga3kEPsyfbzrXm6ueuDvx3pQ5Q9"}
tezos-codec
에 대한 자세한 내용은 설명서 (tezos-codecman -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
)-
당신의 생명의 은인을 토마스.tezos-codec과 같은 NPM 라이브러리가 있는지 아십니까?TOMASSSS you life saver. Any idea if there's an NPM library like tezos-codec?
- 0
- 2020-05-28
- coder123
-
상태가 무엇인지 잘 모르겠지만 https://www.npmjs.com/package/@nomadic-labs/tezos-codec을 사용해 볼 수 있습니다.I'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
RPC 엔드 포인트
/chains/main/blocks/head/helpers/parse/operations
를 사용하면됩니다.예 :
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' } } )
@taquito를 사용하여 거래를 만들고 서명합니다. 하지만 전송하기 전에 다른 블록 체인에 대해 일반적으로 수행하는 것처럼 목적지 주소,금액 등을 확인하기 위해 디코딩하고 싶습니다.
방법을 잘 모르겠지만 ED25519 서명 키를 사용하여 요청에 서명했습니다. 서명은 성공적이었고 대가로받은 sbyte는
<부호> 008f1d96e2783258ff663f03dacfe946c026a5d194c73d1987b3da73fadea7d46c008cb5baedee4dc3ec261dfcf57a9600bb0a8e26c0f00bdd85a0018452ac02e0a712000153957451d3cc83a71e26b65ea2391a1b16713d2d009595facf847a72b4c3fe231c0e4185e68e9b2875aa3c639382c86bcf0af23699f47fe66a6550ade936a5b59d5919ad20703885750314e0c368b277de39e7d10a 코드>
일부 기사를 읽었지만이를 수행하는 정확한 방법을 찾을 수 없었고 시도한 것이 정확히 원하는 결과를 얻지 못했습니다. 즉,트랜잭션을 디코딩하는 방법을 모르거나 내 sbyte가 잘못된. 누구든지 Javascript/Typescript 라이브러리를 사용하여이 원시 트랜잭션을 디코딩하는 방법에 대해 설명해 주시겠습니까?
fromAddress
toAddress
금액
등 및 서명 된 거래가 올바른지 여부. 이것은 테스트 넷용입니다.