0

web3s.py

from web3 import Web3
import json

url = 'https://kovan.infura.io/v3/NODE'
web3 = Web3(Web3.HTTPProvider(url))

abi = json.loads('[{"ABI"}]')
Raw_ADDRESS = MY_ADDRESS 
address = web3.toChecksumAddress(Raw_ADDRESS) 
contract = web3.eth.contract(address=address,abi=ABI)
default_GasPrice = '5'

def firstMethod(Address1,publicKey,privateKey,GasPrice = default_GasPrice ) :

    Address1 = web3.toChecksumAddress(Address1) 
    publicKey = web3.toChecksumAddress(publicKey) 

    if web3.isConnected()  :    
        nonce = web3.eth.get_transaction_count(publicKey) 
        transaction = contract.functions.firstMethod(Address1).buildTransaction({
            'from': publicKey , 
            'gasPrice': web3.toWei(GasPrice, 'gwei'),
            'nonce': nonce ,
            })
...

web3s.py で address1 と address2 を定義すると、コードはうまく機能しますが、インポート後に別のファイル (Django-Rest ビューから) で firstMethod() を呼び出して同じ引数を渡すと、次のように返されます。

File "venv/lib/python3.8/site-packages/eth_utils/conversions.py", line 159, in hexstr_if_str
    raise ValueError(
ValueError: when sending a str, it must be a hex string. Got: "'0x6e...32'"

示されているように、私はetherscanではなくinfuraを使用しています

問題はどこだ ?

4

0 に答える 0