Python零基础批量mint以太铭文,小白也能快速上手运行属于自己的铭文脚本
从零开始教你如何构建一个属于自己的python环境并进行链上交互,本教程以windows为例
python下载
进入python官网中下载这个安装包然后安装

https://www.python.org/downloads/windows/
配置环境变量
打开命令提示框(cmd) **,**在命令提示框(cmd)中输入 :
path=%path%;C:\Python
其中需要注意的是:C:\Python 是上一步中选择python的安装目录,此处是默认安装目录
安装IDE
这里我推荐pycharm,pycharm对于python的支持是最到位的
建议初学者安装pycharm熟悉python后再使用别的解释器
PyCharm 下载地址 :
https://www.jetbrains.com/pycharm/download/?section=windows
下载的话建议选择下面那个社区版本,社区版本的功能完全够用,上面的专业版本需要付费

以上教程节选自,感兴趣的朋友可以继续通过菜鸟教程学习:
https://www.runoob.com/python/python-install.html
创建工作台
打开pycharm后,点击左上角的File后选择New project按钮
按默认选项点击右下角的create按钮,创建全新的工作台

安装web3.py库
创建好工作台之后,点击左下角的terminal按钮或者使用Alt+F12快捷键调出命令行

在命令行中输入命令 pip install web3.py 按回车运行命令,安装web3.py库

至此准备工作就已经完成一大半了!如果你能坚持到这一步的话,距离成功就很近了!
复制脚本代码
将main.py文件中原始的字符全部删除,将下面代码复制进入main.py文件中
from web3 import Web3
import binascii
import hashlib
import requests
import time
# 连接到以太坊节点
w3 = Web3(Web3.HTTPProvider('https://eth-mainnet.g.alchemy.com/v2/iOtHuKsPGcs0Ybp8M7CNnhTijM6qdcjI'))
# API端点URL
api_url = "https://api.ethscriptions.com/api/ethscriptions/exists/"
# 检查是否连接成功
if not w3.is_connected():
print("错误:未能连接到以太坊节点")
exit()
# 设置发送方的地址和私钥
sender_address = "填需要批量铭文的地址"
private_key = "填对应地址的私钥"
# 设置接收方地址
receiver_address = "填需要批量铭文的地址"
def str_to_hex(input_string):
hex_representation = binascii.hexlify(input_string.encode()).decode()
return hex_representation
# 编码你想要传递的语言信息
n = 0
m = 0
nonce1 = w3.eth.get_transaction_count(sender_address)
while n < 200: # 运行次数
num = 15620 + n # 遍历开始铭文编号
language_info = 'data:,{"p":"erc-20","op":"mint","tick":"swap","id":"'+ str(num) +'","amt":"1000"}'
print(language_info)
byte_data = language_info.encode('utf8')
sha256_hash = hashlib.sha256(byte_data).hexdigest()
full_url = api_url + sha256_hash
response = requests.get(full_url)
if response.status_code == 200:
data = response.json()
if data['result']:
print("SHA-256哈希存在 \n")
n = n + 1
else:
hex_string = str_to_hex(language_info)
nonce = nonce1 + m
m = m + 1
# 构建交易
gas_price = w3.to_wei('12.5', 'gwei') # 设置 gas price
gas_limit = 50000 # 固定 gas limit
print("nonce:", nonce)
time.sleep(2)
n = n + 1
transaction = {
'nonce': nonce,
'to': receiver_address,
'value': 0, # 这里是0,因为我们只发送数据而不转账金额
'gas': gas_limit,
'gasPrice': gas_price,
'data': hex_string, # 将编码后的语言信息作为input数据
}
# 签署交易
signed_txn = w3.eth.account.sign_transaction(transaction, private_key)
# 发送交易
tx_hash = w3.eth.send_raw_transaction(signed_txn.rawTransaction)
print(f"交易已发送 \n")
else:
print("请求失败")
break
调整代码细节
这个时候需要调整的地方有大概五处,分别对应的是用什么地址打代币铭文,打多少张代币铭文,代币铭文编号从哪里开始,打哪一种代币铭文,使用多少gas打铭文
用什么地址打代币铭文:

打多少张代币铭文和代币铭文编号从哪里开始:

打哪一种代币铭文:

使用多少gas打铭文:

附以太坊网络gas查询链接:
https://etherscan.io/gastracker
运行代码
当将上述五点全部设置好了就可以运行代码批量打铭文了
点击上方运行按钮运行

程序运行成功如下图所示

错误:未能链接到以太坊节点
解决方案一:关闭VPN后尝试重新运行
解决方案二:尝试更换RPC节点
打开chainlist之后随便选择一个替换掉代码里的RPC节点,一个不行就多换几个,公共的rpc一般都不太好用
代码里的节点是我使用Alchemy自行申请的,但是用的人多的话可能会到达请求上限,感兴趣的小伙伴可以自己申请一个

后续等大家尝试运行之后,反馈相关报错问题之后再更新
