Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Sign in
issue
issue
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 23
    • Issues 23
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar

新注册的用户请输入邮箱并保存,随后登录邮箱激活账号。后续可直接使用邮箱登录!

  • chainmaker
  • issueissue
  • Issues
  • #389

Closed
Open
Opened Sep 18, 2022 by Zelin Ning@Lingle

chainmaker/utils/evm_utils.py的小问题

chainmaker/utils/evm_utils.py文件中: input_values.append(int(value) if 'int' in key else value) 如果参数是uint256[]类型会报错。 int() 不能对数组进行

def calc_evm_method_params(method: str, params: list) -> tuple:
    """
    转换EVM合约方法及参数
    :param method: 合约方法
    :param params: 参数列表 eg. [{"uint256": "10000"}, {"address": "0xa166c92f4c8118905ad984919dc683a7bdb295c1"}]
    :return: 转换后的方法及参数
    """
    input_types, input_values = [], []
    for item in params:
        for key, value in item.items():
            input_types.append(key)
            input_values.append(int(value) if 'int' in key else value)
    
    sig = '%s(%s)' % (method, ','.join(input_types))
    method_id = keccak_256_encrypt(sig)[:8]
    data = method_id + encode_abi(tuple(input_types), tuple(input_values)).hex()
    return method_id, dict(data=data)
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: chainmaker/issue#389

Copyright © 2021 ChainMaker Org. All Rights Reserved. 长安链 版权所有。