如何使用cardano-rosetta和cardano-addresses构建cardano交易

如何解决如何使用cardano-rosetta和cardano-addresses构建cardano交易

我正在学习如何使用 cardano-rosetta 并且我想让 send-transaction-example.ts 脚本使用我事先获得的地址。这些地址是使用 cardano-addresses 工具导出的,然后我将其转换为 Uint8 数组。这是因为我们需要导出一批以后可能会用到的地址。

交易已构建并签署,似乎没有任何问题。服务器日志如下。但是,交易被拒绝。 API 响应不是很具有描述性,我只收到 500 错误,但服务器日志在下面。问题似乎出在这一行:

[53047783:cardano.node.Mempool:Info:38002] [2021-03-30 15:55:43.90 UTC] fromList [("tx",Object (fromList [("txid",String "txid: TxId {_unTxId = \"831f0e898a7d6653149bf2f6fc6ea7b482deb04f49251a1edd612051f42617b2\"}")])),("kind",String "TraceMempoolRejectedTx"),("mempoolSize",Object (fromList [("numTxs",Number 0.0),("bytes",Number 0.0)])),("err",Object (fromList [("kind",String "InvalidWitnessesUTXOW"),("invalidWitnesses",Array [String "VKey (VerKeyEd25519DSIGN (PublicKey \"\\158\\238W\\128\\184$:E\\231\\FSa\\152I$\\EM\\b\\134\\CAN\\140\\157N\\154\\238r\\EOT\\173\\204\\172c4cr\"))"])]))]

我不知道为什么证人无效。有人可以帮忙吗?

{"level":30,"time":1617119743744,"pid":106,"hostname":"530477839db5","reqId":1392,"msg":"[constructionCombine] Request received to sign a transaction","v":1}
{"level":30,"time":1617119743745,"msg":"[buildTransaction] About to signed a transaction with 1 signatures","msg":"[getWitnessesForTransaction] Extracting witnesses from signatures","msg":"[getWitnessesForTransaction] 1 witnesses were extracted to sign transaction","msg":"[buildTransaction] Instantiating transaction body from unsigned transaction bytes","msg":"[buildTransaction] Creating transaction using transaction body and extracted witnesses","signedTransaction":"83a400818258204bc397faa17b5f7972cfd6acf2729eb950b5756c8ea2f704ec8ef11d8a3718fb000181825839000c6d3e4ad14b5ac97656fe56cae3d46e4474af25f6f4d25268b8a168474ac229ab36f3ebb93da86e068f35f5a64bcc0e4ed40cc295fca2df1a389fd980021a02faf080031a015b291ba100818258209eee5780b8243a45e71c61984924190886188c9d4e9aee7204adccac633463725840b2e842c390b4142c46e9d08dd5fc366cb37fc960ab48bdeb083134d79858928775e8304f8c25a5cd5d531f9fd7579188fdb659a27e8f418c12a6aada0fda7600f6","msg":"[constructionCombine] About to return signed transaction","time":1617119743747,"res":{"statusCode":200},"responseTime":3.006010055541992,"msg":"request completed","time":1617119743887,"reqId":1393,"req":{"method":"POST","url":"/construction/submit","hostname":"35.214.159.230:8080","remoteAddress":"84.247.50.48","remotePort":55196},"msg":"incoming request","time":1617119743888,"msg":"[constructionSubmit] About to submit 83a400818258204bc397faa17b5f7972cfd6acf2729eb950b5756c8ea2f704ec8ef11d8a3718fb000181825839000c6d3e4ad14b5ac97656fe56cae3d46e4474af25f6f4d25268b8a168474ac229ab36f3ebb93da86e068f35f5a64bcc0e4ed40cc295fca2df1a389fd980021a02faf080031a015b291ba100818258209eee5780b8243a45e71c61984924190886188c9d4e9aee7204adccac633463725840b2e842c390b4142c46e9d08dd5fc366cb37fc960ab48bdeb083134d79858928775e8304f8c25a5cd5d531f9fd7579188fdb659a27e8f418c12a6aada0fda7600f6","v":1}
[53047783:cardano.node.Mempool:Info:38002] [2021-03-30 15:55:43.90 UTC] fromList [("tx",Array [String "VKey (VerKeyEd25519DSIGN (PublicKey \"\\158\\238W\\128\\184$:E\\231\\FSa\\152I$\\EM\\b\\134\\CAN\\140\\157N\\154\\238r\\EOT\\173\\204\\172c4cr\"))"])]))]
{"level":50,"time":1617119743909,"shortMessage":"Command Failed with exit code 1: /usr/local/bin/cardano-cli transaction submit --tx-file /tmp/6edd9e54-ea83-420c-b5b8-c0c2ea722dc6 --testnet-magic 1097911063","command":"/usr/local/bin/cardano-cli transaction submit --tx-file /tmp/6edd9e54-ea83-420c-b5b8-c0c2ea722dc6 --testnet-magic 1097911063","exitCode":1,"stdout":"","stderr":"Shelley command Failed: transaction submit  Error: Error while submitting tx: ApplyTxError [LedgerFailure (UtxowFailure (InvalidWitnessesUTXOW [VKey (VerKeyEd25519DSIGN (PublicKey \"\\158\\238W\\128\\184$:E\\231\\FSa\\152I$\\EM\\b\\134\\CAN\\140\\157N\\154\\238r\\EOT\\173\\204\\172c4cr\"))]))]","Failed":true,"timedOut":false,"isCanceled":false,"killed":false,"msg":"[submitTransaction] Command Failed","stack":"Error: Command Failed with exit code 1: /usr/local/bin/cardano-cli transaction submit --tx-file /tmp/6edd9e54-ea83-420c-b5b8-c0c2ea722dc6 --testnet-magic 1097911063\nShelley command Failed: transaction submit  Error: Error while submitting tx: ApplyTxError [LedgerFailure (UtxowFailure (InvalidWitnessesUTXOW [VKey (VerKeyEd25519DSIGN (PublicKey \"\\158\\238W\\128\\184$:E\\231\\FSa\\152I$\\EM\\b\\134\\CAN\\140\\157N\\154\\238r\\EOT\\173\\204\\172c4cr\"))]))]\n    at makeError (/cardano-rosetta-server/node_modules/execa/lib/error.js:59:11)\n    at handlePromise (/cardano-rosetta-server/node_modules/execa/index.js:114:26)\n    at runMicrotasks (<anonymous>)\n    at processticksAndRejections (internal/process/task_queues.js:93:5)","type":"Error","v":1}
{"level":50,"time":1617119743910,"msg":"Shelley command Failed: transaction submit  Error: Error while submitting tx: ApplyTxError [LedgerFailure (UtxowFailure (InvalidWitnessesUTXOW [VKey (VerKeyEd25519DSIGN (PublicKey \"\\158\\238W\\128\\184$:E\\231\\FSa\\152I$\\EM\\b\\134\\CAN\\140\\157N\\154\\238r\\EOT\\173\\204\\172c4cr\"))]))]","stack":"Error: Shelley command Failed: transaction submit  Error: Error while submitting tx: ApplyTxError [LedgerFailure (UtxowFailure (InvalidWitnessesUTXOW [VKey (VerKeyEd25519DSIGN (PublicKey \"\\158\\238W\\128\\184$:E\\231\\FSa\\152I$\\EM\\b\\134\\CAN\\140\\157N\\154\\238r\\EOT\\173\\204\\172c4cr\"))]))]\n    at Object.<anonymous> (/cardano-rosetta-server/dist/src/server/utils/cardano/cli/cardanonode-cli.js:60:31)\n    at Generator.throw (<anonymous>)\n    at rejected (/cardano-rosetta-server/dist/src/server/utils/cardano/cli/cardanonode-cli.js:6:65)\n    at runMicrotasks (<anonymous>)\n    at processticksAndRejections (internal/process/task_queues.js:93:5)","code":5006,"retriable":true,"details":{"message":"Shelley command Failed: transaction submit  Error: Error while submitting tx: ApplyTxError [LedgerFailure (UtxowFailure (InvalidWitnessesUTXOW [VKey (VerKeyEd25519DSIGN (PublicKey \"\\158\\238W\\128\\184$:E\\231\\FSa\\152I$\\EM\\b\\134\\CAN\\140\\157N\\154\\238r\\EOT\\173\\204\\172c4cr\"))]))]"},"msg":"[errorHandler] An error ocurred and will be sent as response","stack":"Error: Error when sending the transaction\n    at Object.exports.buildApiError (/cardano-rosetta-server/dist/src/server/utils/errors.js:86:56)\n    at Object.sendTransactionError (/cardano-rosetta-server/dist/src/server/utils/errors.js:108:51)\n    at /cardano-rosetta-server/dist/src/server/controllers/construction-controller.js:170:46\n    at Generator.throw (<anonymous>)\n    at rejected (/cardano-rosetta-server/dist/src/server/controllers/construction-controller.js:6:65)","time":1617119743911,"res":{"statusCode":500},"responseTime":23.158724784851074,"v":1}

解决方法

要使用 send-transaction-example.tscardano-address 执行发送交易,只需为您希望花费的 UTXO 生成正确的私钥,然后使用此私钥编辑 .ts 脚本即可.

从助记词中,做:

$ cat phrase.prv
exercise club noble adult miracle awkward problem olympic puppy private goddess piano fatal fashion vacuum

$ cardano-address key from-recovery-phrase Shelley < phrase.prv | tee root.xsk
root_xsk1hqzfzrgskgnpwskxxrv5khs7ess82ecy8za9l5ef7e0afd2849p3zryje8chk39nxtva0sww5me3pzkej4rvd5cae3q3v8eu7556n6pdrp4fdu8nsglynpmcppxxvfdyzdz5gfq3fefjepxhvqspmuyvmvqg8983

$ cardano-address key child 1852H/1815H/0H/0/0 < root.xsk | tee utxo.prv
addr_xsk1ppxa0t64fwwgclj6wa7u228d2ux06dkmx27zhc6eessgmj2849pn8k40xgjk5cd7jaw377gg558tlt5kgkfsnyr00mzqkxtfg5qn00wd8t99f5a37drp8k04ggj2rfkjx60y708m34n6udptx0hrdykllv9n5zcs

其中 1852H/1815H/0H/0/0 对应于您希望从中花费的所需密钥对/UTXO。

然后,运行

$ cardano-address key inspect < utxo.prv                                                                                     
{
    "chain_code": "cd3aca54d3b1f34613d9f54224a1a6d2369e4f3cfb8d67ae342b33ee3692dffb","key_type": "private","extended_key": "084dd7af554b9c8c7e5a777dc528ed570cfd36db32bc2be359cc208dc947a94333daaf32256a61be975d1f7908a50ebfae96459309906f7ec40b1969450137bd"
}

并将 PRIVATE_KEY 中的 send-transaction-example.ts 替换为上面的 extended_key 值:

const PRIVATE_KEY =
  "084dd7af554b9c8c7e5a777dc528ed570cfd36db32bc2be359cc208dc947a94333daaf32256a61be975d1f7908a50ebfae96459309906f7ec40b1969450137bd";

并运行脚本。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?