首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在gnosis安全上添加委托?

如何在gnosis安全上添加委托?
EN

Ethereum用户
提问于 2022-09-13 14:11:11
回答 2查看 251关注 0票数 0

网站上的代码不适用于我:https://safe-docs.dev.gnosisdev.com/safe/docs/tutorial_发送_服务_设置_代表/

我试着这样做:

代码语言:javascript
运行
复制
import requests
import time
import sha3

SAFE_ADDRESS = '*'
OWNER_PRIVATE_KEY = '*'
DELEGATE_ADDRESS = '*'
TX_SERVICE_BASE_URL = 'https://safe-transaction.rinkeby.gnosis.io'

totp = int(time.time()) // 3600
hash_to_sign = sha3.keccak_256(text=DELEGATE_ADDRESS + str(totp))
account = Account.from_key(OWNER_PRIVATE_KEY)
signature = account.signHash(hash_to_sign)

add_payload = {
    "safe": SAFE_ADDRESS,
    "delegate": DELEGATE_ADDRESS,
    "signature": signature.signature.hex(),
    "label": "My new delegate2"
}

print(list_response.text)
print(list_response.status_code)

我知道这个错误:

代码语言:javascript
运行
复制
  File "test.py", line 11, in <module>
    hash_to_sign = sha3.keccak_256(text=DELEGATE_ADDRESS + str(totp))
TypeError: 'text' is an invalid keyword argument for sha3_224()
EN

回答 2

Ethereum用户

发布于 2022-10-30 04:13:09

正如错误提示的那样,sha3库中的keccack方法不接受kwarg text

教程 (更好的链接)声明您需要导入eth_account。这反过来又将eth_utils导入到底层的sha3库(可能是导入的库,也可能不是导入的库),后者会执行一些数据传递到代理中。

因此,简单的回答是将sha3替换为eth_account,并对hash_to_sign变量使用eth_account.keccak(text=...)

票数 0
EN

Ethereum用户

发布于 2023-03-01 22:09:45

我唯一能做的就是安全

https://github.com/5afe/safe-cli

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

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

复制
相关文章

相似问题

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