来自提交外部交易的 Cardano 钱包格式错误的 tx 负载

问题描述

我正在尝试使用 cardano-cli 端点从 cardano-wallet 提交已签名的 tx:https://localhost:8090/v2/proxy/transactions

签署的交易如下所示:

   txBody = {
        "type": "Tx MaryEra","description": "","cborHex": "83a400818258202d7928a59fcba5bf71c40fe6428a301ffda4d2fa681e5357051970436462b89400018282583900c0e88694ab569f42453eb950fb4ec14cb50f4d5d26ac83fdec2c505d818bcebf1df51c84239805b8a330d68fdbc3c047c12bb4c3172cb9391a002b335f825839003d2d9ceb1a47bc1b62b7498ca496b16a7b4bbcc6d97ede81ba8621ebd6d947875fcf4845ef3a5f08dd5522581cf6de7b9c065379cbb3754d1a001e8480021a00029361031a01672b7ea1008182582073dd733cc50d594cb89d3ac67287b02dae00982fc800e9c9c9d1bb282b56122558404d0cb4e4f1cc415ddcf546871f075d0ca6e0c2620cd784b06c21c9b86e4403cb7a115038487576dcb20e7820e9d0dc93ab2a737ed9d0a71a77bc1e12f7c4dd0ef6"
    }

我只是不知道如何使用 Content-Type application/octet-stream 将其传递给端点。 API 文档说有效载荷应该是:

string <binary>
Signed transaction message binary blob.

我为此使用了 javascript,并尝试直接传递 cborHex,使用 Buffer.from(txBody.cborHex).toString('base64') 和整个 json Buffer.from(JSON.stringify(txBody)).toString('base64'),但总是得到相同的响应:

{
  "code": "malformed_tx_payload","message": "I Couldn't verify that the payload has the c…node. Please check the format and try again."
}

我还从 swagger 规范中注意到端点支持 JSON 负载并查看 cardano-wallet 的源代码 here

newtype PostExternalTransactionData = PostExternalTransactionData
    { payload :: ByteString
    } deriving (Eq,Generic,Show)

我认为结构应该是这样的:

{
  "payload": ?// some binary blob here that I can't find. I've tried with: 
              // Buffer.from(txBody.cborHex).toString('base64') and 
              // Buffer.from(JSON.stringify(txBody)).toString('base64')
}

知道如何构建有效载荷并传递签名的 tx 吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...