首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BlockCypher发送事务

BlockCypher发送事务
EN

Stack Overflow用户
提问于 2018-05-27 18:00:09
回答 1查看 573关注 0票数 1

我正在尝试在下面的文档中实现BlockCypher Ethereum:https://www.blockcypher.com/dev/ethereum/#transaction-api

我使用的是Test /beth/test,而不是/eth/main

我成功地创建了两个地址,并打电话给水龙头,用大约1000000000000000000魏来填充一个地址。

但是我似乎无法发送一个有效的事务…以下是所有(测试)信息:

地址1

代码语言:javascript
复制
{
"private": "42eb005cbebd33f55b821864fcdc0755876317345ac9d8ad2bf94d734f78395f",
"public": "04c7238abb2e99c50ef3e4fabe21dbf2701f9dc60de24b40e743e84745984957ba7059a3e0b38c226b3580a95ed0e154fba407d089f5c02f90aa5797ead7fc190e",
"address": "7a9373010ce86d8fcd7dd46588d351cddabe7ce8"

}

地址2

代码语言:javascript
复制
{
"private": "4a62456df43b89244d349948008064cfe1279ef3a632823f30b371ac54f879a1",
"public": "046c01b338e3c5224aa70fa302fefa5c9767d0f79aa16327e703d01924e894809460b22ab52974706543682d8e16063fd6cbd302b052762a3be5d7720efc4d2fa9",
"address": "73befec27510c64c303d82191eaf276a94603090"

}

地址2包含1000000000000000000魏,我正在尝试发送1200000000000000魏到地址1。

我使用New Transaction方法,我发送如下:

代码语言:javascript
复制
{"inputs":[{"addresses": ["73befec27510c64c303d82191eaf276a94603090"]}],"outputs":[{"addresses": ["7a9373010ce86d8fcd7dd46588d351cddabe7ce8"], "value": 1200000000000000}]}

我得到了这样的回应:

代码语言:javascript
复制
{
"tx": {
    "block_height": -1,
    "block_index": 0,
    "hash": "4e875a673e59f0b2d16123659b3a72a8d818a7cb832c5ed1a4bbf8f5b0a4ee87",
    "addresses": [
        "73befec27510c64c303d82191eaf276a94603090"
    ],
    "total": 1200000000000000,
    "fees": 21000000000000,
    "size": 43,
    "gas_limit": 21000,
    "gas_price": 1000000000,
    "received": "2018-05-27T13:51:23.247159854Z",
    "ver": 0,
    "double_spend": false,
    "vin_sz": 1,
    "vout_sz": 1,
    "inputs": [
        {
            "sequence": 0,
            "addresses": [
                "73befec27510c64c303d82191eaf276a94603090"
            ]
        }
    ],
    "outputs": [
        {
            "value": 1200000000000000,
            "addresses": [
                "7a9373010ce86d8fcd7dd46588d351cddabe7ce8"
            ]
        }
    ]
},
"tosign": [
    "8b765bd6c2065f612eb00aa55c50759049779cff50151395aefc5a3dafa5cc10"
]

}

然后,我使用签名器和来自的ToSign以及地址2的十六进制编码的私钥:

代码语言:javascript
复制
signer 8b765bd6c2065f612eb00aa55c50759049779cff50151395aefc5a3dafa5cc10 34613632343536646634336238393234346433343939343830303830363463666531323739656633613633323832336633306233373161633534663837396131

我得到了这个签名:

代码语言:javascript
复制
30440220644db87755b0a8620e7e52bd64977c79350c0989afd587090be13a8f76efbf3a0220463eb6351c839b086f5874f6a125ec4723fb30eb26a6a831600cb4d3034cd9d3

然后我尝试使用BlockCypher的发送事务方法,下面是我的请求:

代码语言:javascript
复制
{
"tx": {
    "block_height": -1,
    "block_index": 0,
    "hash": "4e875a673e59f0b2d16123659b3a72a8d818a7cb832c5ed1a4bbf8f5b0a4ee87",
    "addresses": [
        "73befec27510c64c303d82191eaf276a94603090"
    ],
    "total": 1200000000000000,
    "fees": 21000000000000,
    "size": 43,
    "gas_limit": 21000,
    "gas_price": 1000000000,
    "received": "2018-05-27T13:51:23.247159854Z",
    "ver": 0,
    "double_spend": false,
    "vin_sz": 1,
    "vout_sz": 1,
    "inputs": [
        {
            "sequence": 0,
            "addresses": [
                "73befec27510c64c303d82191eaf276a94603090"
            ]
        }
    ],
    "outputs": [
        {
            "value": 1200000000000000,
            "addresses": [
                "7a9373010ce86d8fcd7dd46588d351cddabe7ce8"
            ]
        }
    ]
},
"tosign": [
    "8b765bd6c2065f612eb00aa55c50759049779cff50151395aefc5a3dafa5cc10"
],
"pubkeys": ["046c01b338e3c5224aa70fa302fefa5c9767d0f79aa16327e703d01924e894809460b22ab52974706543682d8e16063fd6cbd302b052762a3be5d7720efc4d2fa9"],
"signatures": ["30440220644db87755b0a8620e7e52bd64977c79350c0989afd587090be13a8f76efbf3a0220463eb6351c839b086f5874f6a125ec4723fb30eb26a6a831600cb4d3034cd9d3"]

}

我得到了这个错误:

代码语言:javascript
复制
"Address 0xF6A14d976c86bDbe050cA9426aD491d750be33B1 computed from signature differs from provided one 73befec27510c64c303d82191eaf276a94603090."

知道我做错什么了吗?

我已经试过几件事了,在网上读了几个类似的问题,但还是没有运气。

我还尝试了BlockCypher的原始事务处理方法,但也没有成功。

我不清楚它是什么意思“原始十六进制编码的事务”,我试图发送我发送到New Transaction的十六进制编码输入:

代码语言:javascript
复制
{"inputs":[{"addresses": ["73befec27510c64c303d82191eaf276a94603090"]}],"outputs":[{"addresses": ["7a9373010ce86d8fcd7dd46588d351cddabe7ce8"], "value": 1200000000000000}]}

所以我把这个发给https://api.blockcypher.com/v1/beth/test/txs/push?token=[mytoken]

代码语言:javascript
复制
{"tx":"22696E70757473223A5B7B22616464726573736573223A205B2237336265666563323735313063363463333033643832313931656166323736613934363033303930225D7D5D2C226F757470757473223A5B7B22616464726573736573223A205B2237613933373330313063653836643866636437646434363538386433353163646461626537636538225D2C202276616C7565223A20313230303030303030303030303030307D5D"}

但我知道错误是:

代码语言:javascript
复制
“rlp: expected input list for types.TxData”.

拜托,任何帮助都是非常感谢的!

EN

回答 1

Stack Overflow用户

发布于 2018-11-11 19:39:31

您传递给签名者工具的私钥是不正确的。由于地址2是示例中的发件人,所以您应该使用它的私钥,即4a62456df43b89244d349948008064cfe1279ef3a632823f30b371ac54f879a1.。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50554997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档