【问题标题】:Decode Tendermint b64 encoded transactions in Golang在 Golang 中解码 Tendermint b64 编码的交易
【发布时间】:2023-01-30 14:46:18
【问题描述】:

我执行 Tendermint 请求 /unconfirmed_txs 来获取待处理的交易数据,我得到了一个 b64 编码的交易列表,如下所示:

CsQECpAECh8vZXRoZXJtaW50LmV2bS52MS5Nc2dFdGhlcmV1bVR4EuwDCqUDChovZXRoZXJtaW50LmV2bS52MS5MZWdhY3lUeBKGAwgCEg01MDc3OTQ2NTQxMzY0GPbZDCIqMHgxNDU4NjNFYjQyQ2Y2Mjg0N0E2Q2E3ODRlNjQxNkMxNjgyYjFiMkFlKhU0MDAwMDAwMDAwMDAwMDAwMDAwMDAy5AF/82q1AAAAAAAAAAAAAAAAAAAAAAAAAAAAfvEOe1XqTQ9Ynq8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAK5tNYq1CNfuvRh/6NqF6Zzkg6PtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMd7WUoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAFx/ilcNV47YTmP9+nse5y3q4a4jAAAAAAAAAAAAAAAA3XPeoQq8K/+ZxgiC7FsrgbsdxbI6AVZCIBX0RwQW5LaC1LZG0W5mHid2Dsx/8FQn0r9IhHrWBAVxSiBLOhtk5OAdcCGBHaLUHK8rKEpL1bgtBRYxG/if+UesIxpCMHhlZGRjOWMxMWVkY2Q1NTY4YWZlOWM0Y2ZmYWNjMmU4ZjBhMGNlNjFiMDczMDE4OTQ1NzEyZDMwNTU3ZDBjMTUw+j8uCiwvZXRoZXJtaW50LmV2bS52MS5FeHRlbnNpb25PcHRpb25zRXRoZXJldW1UeBImEiQKHgoHYmFzZWNybxITMTA1NjgxMjA3ODI5NTU5Mjk1MhD22Qw=

我如何在 Golang 中解码这些交易以获取所有交易数据(如果可能的话在 go-ethereum 的交易结构中)?

经过一些研究,我了解到我必须使用一些编解码器并将它们注册到 lib 的一些函数中,但我没有为我的用例找到一个好的代码示例,而且我真的不明白它是如何工作的。

我还尝试了库 github.com/calvinlauyh/cosmosutils 来解码交易,但我收到错误:“无法解析类型 URL /ethermint.evm.v1.MsgEthereumTx:tx 解析错误”

谢谢 !

【问题讨论】:

    标签: go tendermint


    【解决方案1】:

    交易数据以base64编码,检查下面的代码进行解码。

    const { sha256 } = require("@cosmjs/crypto")
    const { toHex} = require("@cosmjs/encoding")
    
    const base64EncodedTrx ="CpIBCo8BChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEm8KLWNvc21vczEyeHQ0eDQ5cDk2bjlhdzR1bWp3eXAzaHVjdDI3bndyMmc0cjZwMhItY29zbW9zMXV0MncwbTN4YTd6MnJ2bmR2MjNwdGh2OXFjN2hrc3g2dGtmOXVxGg8KBXVhdG9tEgYyNTAwMDASaQpRCkYKHy9jb3Ntb3MuY3J5cHRvLnNlY3AyNTZrMS5QdWJLZXkSIwohAyhu2k5/x5GSSsNDGaahT1pMDK7Yk65LnRJo81IH166REgQKAggBGKMdEhQKDgoFdWF0b20SBTczMzU1EIu9BBpAM6HTxgkO1dRiuVU3TD23MzfKcyWOxhM4VlZKulLmFy4dcbpkaauXeuOlptAl9sbRKGozVr0Z87VPT/LIQCBrDw==";
    
    const sha256v= sha256(Buffer.from(base64EncodedTrx,'base64'));
    const txHash = toHex(sha256v)
    
    //trx signature
    console.log(txHash)
    

    【讨论】:

      猜你喜欢
      • 2014-09-03
      • 1970-01-01
      • 2019-07-11
      • 1970-01-01
      • 2022-08-05
      • 2013-12-02
      • 2021-09-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多