Brownie deploy-ValueError:应为值:第1行第1列(字符0)



到目前为止,我是一名专家,但更像是一种爱好。Brownie中的部署脚本出现问题。运行脚本时,我得到一个简单的ValueError:应为值:第1行第1列(字符0(。怀疑这可能与无法正确读取csv文件有关,但即使是与";硬币";变量硬编码,我得到同样的错误。我完全迷路了。

这是我的deploy.py代码和我得到的响应。任何提示都将不胜感激。

import os
from brownie import bullzeye, accounts
from brownie.convert import to_address
from brownie.network.gas.strategies import GasNowStrategy
from pathlib import Path
import requests
import pandas as pd
PROJECT_DIR = Path(__file__).parent.parent
CHAIN_ID = 1
TOKENS_LIST_URL = f"https://apiv5.paraswap.io/tokens/{CHAIN_ID}"

# Fetch the token list if it doesn't exist
tokens_fp = PROJECT_DIR.joinpath(f"data/tokens-chain-{CHAIN_ID}.csv")
if not tokens_fp.exists():
tokens_fp.parent.mkdir(parents=True, exist_ok=True)
tokens = requests.get(TOKENS_LIST_URL).json()["tokens"]
tokens_df = pd.DataFrame.from_records(tokens, index="address")
tokens_df.index = tokens_df.index.map(to_address)
tokens_df.to_csv(tokens_fp)
else:
tokens_df = pd.read_csv(tokens_fp, index_col="address")
# acct = accounts.load(1)
tx_params = {
"from": accounts.add(os.getenv("PRIVATE_KEY")),
"gas_price": GasNowStrategy("standard"),
}
# Helper functions
def get_token_addresses(*symbols):
"""Get a list of token addresses given their symbols"""
addresses = []
for symbol in symbols:
addr = tokens_df[tokens_df["symbol"] == symbol].index[0]
addresses.append(to_address(addr))
return addresses

def main():
coins = get_token_addresses("USDT", "WBTC", "WETH")
bullzeye.deploy(coins, tx_params)

我得到的回复是:

brownie run scripts/deploy.py --network goerli
Brownie v1.19.1 - Python development framework for Ethereum
BullzEyeProject is the active project.
Running 'scripts/deploy.py::main'...
File "brownie/_cli/run.py", line 51, in main
return_value, frame = run(
File "brownie/project/scripts.py", line 110, in run
return_value = f_locals[method_name](*args, **kwargs)
File "./scripts/deploy.py", line 46, in main
bullzeye.deploy(coins, tx_params)
File "brownie/network/contract.py", line 549, in __call__
return tx["from"].deploy(
File "brownie/network/account.py", line 510, in deploy
receipt, exc = self._make_transaction(
File "brownie/network/account.py", line 727, in _make_transaction
raise VirtualMachineError(e) from None
File "brownie/exceptions.py", line 93, in __init__
raise ValueError(str(exc)) from None
ValueError: Expecting value: line 1 column 1 (char 0)

基于我有限的理解,当您调用deploy((时,'gas_price'只支持整数。

帐户事务似乎确实支持gas策略对象,但我认为deploy((走的是另一条路。https://eth-brownie.readthedocs.io/en/v1.13.4/core-gas.html

对于deploy((,在brownie的account.py中调用_make_transaction((,该account.py需要gas_price的int(用Wei表示(。

这将起作用:bullzeye.deploy({'from': account, 'gas_price': 10000000})

最新更新