Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Sign in
sdk-python
sdk-python
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1
    • Issues 1
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Package Registry
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar

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

  • chainmaker
  • sdk-pythonsdk-python
  • Issues
  • #1

Closed (moved)
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)
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: chainmaker/sdk-python#1

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