# python零基础批量mint以太铭文 **Published by:** [pikpika](https://paragraph.com/@pikpika/) **Published on:** 2023-09-05 **URL:** https://paragraph.com/@pikpika/python-mint ## Content Python零基础批量mint以太铭文,小白也能快速上手运行属于自己的铭文脚本 从零开始教你如何构建一个属于自己的python环境并进行链上交互,本教程以windows为例1、搭建python运行环境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.html2、配置pycharm创建工作台打开pycharm后,点击左上角的File后选择New project按钮 按默认选项点击右下角的create按钮,创建全新的工作台进入到这个代码页面,即为创建成功安装web3.py库创建好工作台之后,点击左下角的terminal按钮或者使用Alt+F12快捷键调出命令行在命令行中输入命令 pip install web3.py 按回车运行命令,安装web3.py库安装的时候如果报错可以尝试断开VPN后重新运行命令至此准备工作就已经完成一大半了!如果你能坚持到这一步的话,距离成功就很近了!3、运行批量铸造铭文代码复制脚本代码将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打铭文 用什么地址打代币铭文:需要填地址和私钥,推荐使用新地址运行打多少张代币铭文和代币铭文编号从哪里开始:其中200是张数,15620是编号(以太铭文的编号一般是1-21000)根据自己的需求修改数字打哪一种代币铭文:以swap代币铭文为例,如果想打其他的代币铭文在双引号内修改使用多少gas打铭文:以12.5为例,具体gas需要根据以太坊网络适时调整附以太坊网络gas查询链接: https://etherscan.io/gastracker运行代码当将上述五点全部设置好了就可以运行代码批量打铭文了 点击上方运行按钮运行程序运行成功如下图所示4、相关报错问题解决方案错误:未能链接到以太坊节点解决方案一:关闭VPN后尝试重新运行 解决方案二:尝试更换RPC节点 https://chainlist.org/ 打开chainlist之后随便选择一个替换掉代码里的RPC节点,一个不行就多换几个,公共的rpc一般都不太好用 代码里的节点是我使用Alchemy自行申请的,但是用的人多的话可能会到达请求上限,感兴趣的小伙伴可以自己申请一个 https://www.alchemy.com/后续等大家尝试运行之后,反馈相关报错问题之后再更新 ## Publication Information - [pikpika](https://paragraph.com/@pikpika/): Publication homepage - [All Posts](https://paragraph.com/@pikpika/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@pikpika): Subscribe to updates - [Twitter](https://twitter.com/pikpika6): Follow on Twitter