python零基础批量mint以太铭文

Python零基础批量mint以太铭文,小白也能快速上手运行属于自己的铭文脚本

从零开始教你如何构建一个属于自己的python环境并进行链上交互,本教程以windows为例

1、搭建python运行环境

  • python下载

进入python官网中下载这个安装包然后安装

post image

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

2、配置pycharm

  • 创建工作台

打开pycharm后,点击左上角的File后选择New project按钮

按默认选项点击右下角的create按钮,创建全新的工作台

进入到这个代码页面,即为创建成功
进入到这个代码页面,即为创建成功
  • 安装web3.py库

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

post image

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

安装的时候如果报错可以尝试断开VPN后重新运行命令
安装的时候如果报错可以尝试断开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)根据自己的需求修改数字
其中200是张数,15620是编号(以太铭文的编号一般是1-21000)根据自己的需求修改数字

打哪一种代币铭文:

以swap代币铭文为例,如果想打其他的代币铭文在双引号内修改
以swap代币铭文为例,如果想打其他的代币铭文在双引号内修改

使用多少gas打铭文:

以12.5为例,具体gas需要根据以太坊网络适时调整
以12.5为例,具体gas需要根据以太坊网络适时调整

附以太坊网络gas查询链接:

https://etherscan.io/gastracker

  • 运行代码

当将上述五点全部设置好了就可以运行代码批量打铭文了

点击上方运行按钮运行

post image

程序运行成功如下图所示

post image

4、相关报错问题解决方案

  • 错误:未能链接到以太坊节点

解决方案一:关闭VPN后尝试重新运行

解决方案二:尝试更换RPC节点

https://chainlist.org/

打开chainlist之后随便选择一个替换掉代码里的RPC节点,一个不行就多换几个,公共的rpc一般都不太好用

代码里的节点是我使用Alchemy自行申请的,但是用的人多的话可能会到达请求上限,感兴趣的小伙伴可以自己申请一个

https://www.alchemy.com/

post image

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