【发布时间】:2022-10-15 14:09:18
【问题描述】:
到目前为止,我是专家,但更像是一种爱好。 Brownie 中的部署脚本存在问题。运行脚本时,我得到一个简单的 ValueError: Expecting value: line 1 column 1 (char 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)
【问题讨论】:
-
请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如它目前所写的那样,很难准确地说出你在问什么。
-
也许首先使用
print()(和print(type(...))、print(len(...))等)来查看代码的哪一部分被执行以及你在变量中真正拥有什么。它被称为"print debuging",它有助于查看代码真正在做什么。