首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于Python的DDEX Api问题..。签ETH交易?

关于Python的DDEX Api问题..。签ETH交易?
EN

Ethereum用户
提问于 2019-09-25 00:45:29
回答 1查看 121关注 0票数 0

在为DDEX api签名时有问题.我正试图在python中完成这个任务,由于某种原因,我的签名被两个字符删除了。下面是我在文档中使用私钥和UTC时间戳的代码。

代码语言:javascript
复制
import web3
from eth_keys import keys
from web3.auto import w3
from eth_utils import decode_hex
from eth_account.messages import encode_defunct
private_key_0 = "0xe4abcbf75d38cf61c4fde0ade1148f90376616f5233b7c1fef2a78c5992a9a50"


# Testing the Auth function...
epoch_time = "1524088776656"
message = "HYDRO-AUTHENTICATION@1524088776656"

message_bytes = ''.join(hex(ord(c)) for c in message)
message_hex = b'{message_bytes}'.hex()


priv_key_bytes = decode_hex(private_key_0)
priv_key = keys.PrivateKey(priv_key_bytes)
pub_key = priv_key.public_key

public_address_0 = pub_key.to_checksum_address()
print("PUBLIC KEY: " + public_address_0)
print("PRIVATE KEY: " +private_key_0)

# print("Message hex: " +message_hex)
msg = encode_defunct(text=message.rstrip())
signed_message = w3.eth.account.sign_message(msg,private_key=private_key_0)


print("SIGNED MESSAGE")
print(signed_message)
sig = signed_message['signature']

# test should be:
# 0x603efd7241bfb6c61f4330facee0f7027d98e030ef241ad03a372638c317859a50620dacee177b771ce05812770a637c4c7395da0042c94250f86fb52472f93500 
# but is: 
# 0x603efd7241bfb6c61f4330facee0f7027d98e030ef241ad03a372638c317859a50620dacee177b771ce05812770a637c4c7395da0042c94250f86fb52472f9351b
test = str(sig.hex())

header = str(public_address_0) + "#" + message + "#" + test 

print(header)

我之所以来到这里,是因为我在尝试使用自己的私钥时,从DDEX中得到了一个“未经授权”的错误。我想这和签名函数有关,但我想不出.有什么想法吗?

EN

回答 1

Ethereum用户

回答已采纳

发布于 2019-09-25 02:16:32

Ethereum期望签名(最后一个字节)的v组件为27或28,而不是0或1。您只需在最后一个字节中添加27 (0x1b)即可。

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

https://ethereum.stackexchange.com/questions/76223

复制
相关文章

相似问题

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