Contract-Development
部署合約私鑰錯誤
我正在關注 levelup.gitconnected 題為“Python 程序員的 DApp 開發”的教程。網址是https://levelup.gitconnected.com/dapps-development-for-python-developers-f52b32b54f28。在本教程中有一個名為 deploy.py 的 python 文件,它看起來像
*deploy.py import json from web3 import Web3, HTTPProvider from web3.contract import ConciseContract # web3.py instance w3 = Web3(HTTPProvider("https://ropsten.infura.io/v3/<API key>")) print(w3.isConnected()) key="<Private Key here with 0x prefix>" acct = w3.eth.account.privateKeyToAccount(key) # compile your smart contract with truffle first truffleFile = json.load(open('./build/contracts/greeter.json')) abi = truffleFile['abi'] bytecode = truffleFile['bytecode'] contract= w3.eth.contract(bytecode=bytecode, abi=abi) #building transaction construct_txn = contract.constructor().buildTransaction({ 'from': acct.address, 'nonce': w3.eth.getTransactionCount(acct.address), 'gas': 1728712, 'gasPrice': w3.toWei('21', 'gwei')}) signed = acct.signTransaction(construct_txn) tx_hash=w3.eth.sendRawTransaction(signed.rawTransaction) print(tx_hash.hex()) tx_receipt = w3.eth.waitForTransactionReceipt(tx_hash) print("Contract Deployed At:", tx_receipt['contractAddress'])
在第 10 行 (key="<Private Key here with 0x prefix>") 當我輸入我的密鑰時,我使用 0x 前綴收到一條錯誤消息,如下所示:
ValueError:私鑰必須正好是 32 字節長,而不是 34 字節
我在沒有 0x 前綴的情況下嘗試了它,但出現錯誤:
ValueError:私鑰的長度必須正好為 32 字節,而不是 32 字節。
我錯過了什麼?先感謝您。
不久前我遇到了類似的問題。此錯誤很可能是由於在您應該使用 ETH 和 LINK 資助的錢包私鑰時意外使用 Infura“項目密碼”作為私鑰造成的。確保首先將測試 ETH 和 LINK 代幣放入錢包。
我在將私鑰與其他密鑰和地址混淆時遇到了這個問題。使用 MetaMask,可以在“帳戶詳細資訊 > 導出私鑰”下找到正確的私鑰。