国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Mquant】9:python批量銘刻erc-20銘文

這篇具有很好參考價(jià)值的文章主要介紹了【Mquant】9:python批量銘刻erc-20銘文。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。


1. ETHS銘文

ETHS銘文是以太坊銘文協(xié)議Ethscriptions的代幣名稱(chēng)。Ethscriptions是一個(gè)基于以太坊的銘文協(xié)議,允許用戶(hù)在以太坊主網(wǎng)上刻入不同類(lèi)型的文件,并將其記錄到區(qū)塊中。ETHS作為Ethscriptions的第一個(gè)"概念幣",引起了人們的關(guān)注和熱議。

以太坊銘文協(xié)議Ethscriptions的特點(diǎn)包括:

  1. 使用交易調(diào)用數(shù)據(jù)在以太坊上創(chuàng)建和共享數(shù)字藏品的新協(xié)議[1]。
  2. 利用以太坊calldata進(jìn)行銘文創(chuàng)作,相比使用合約儲(chǔ)存更便宜、去中心化,并且能夠保證所有有效內(nèi)容的全球唯一性。
  3. 銘文的大小不能超過(guò)96KB。

ETHS銘文的鑄造方式相對(duì)簡(jiǎn)單,以下是一個(gè)示例的鑄造步驟:

  1. 復(fù)制代碼:data:,{“p”:“erc-20”,“op”:“mint”,“tick”:“eths”,“id”:“21000以?xún)?nèi)的任意數(shù)字”,“amt”:“1000”}。
  2. 將這串代碼進(jìn)行轉(zhuǎn)碼,轉(zhuǎn)為16進(jìn)制。
  3. 打開(kāi)錢(qián)包,向自己的地址轉(zhuǎn)入0ETH,并將轉(zhuǎn)碼獲得的16進(jìn)制填寫(xiě)。
  4. 確認(rèn)付款,完成代幣的鑄造。

需要注意的是,ETHS銘文的共識(shí)承認(rèn)只限于編號(hào)在21000以?xún)?nèi)的銘文,而且對(duì)于重復(fù)被打的編號(hào),只有最先被打的那張ETHS銘文會(huì)被承認(rèn)。

2.批量查詢(xún)是否被mint

首先安裝包:

pip install requests
import hashlib
import json

import requests
import threading


def query_content(content):
    content1 = "data:," + content
    sha256_hash = hashlib.sha256(content1.encode()).hexdigest()

    url = f"https://eth-script-indexer-eca25c4cf43b.herokuapp.com/api/ethscriptions/exists/{sha256_hash}"

    try:
        response = requests.get(url)

        if response.status_code == 200:
            result = response.json()
            if result['result']:
                # owner = result['ethscription']['current_owner']
                # creator = result['ethscription']['creator']
                # creation_timestamp = result['ethscription']['creation_timestamp']
                #
                # # 轉(zhuǎn)換時(shí)間格式為易讀形式
                # creation_timestamp = datetime.datetime.strptime(
                #     creation_timestamp, "%Y-%m-%dT%H:%M:%S.%fZ")
                #
                return -1
            else:
                # hex_content = binascii.hexlify(content.encode()).decode()
                # print(f"\n'{content}'的銘文內(nèi)容尚未被銘刻。")
                # print(f"該銘文文本(含data:,)的16進(jìn)制輸出為:{hex_content}")
                return json.loads(content)["id"]
        else:
            print(f"\n獲取'{content}'的數(shù)據(jù)失敗,請(qǐng)檢查你的輸入是否正確。")
    except requests.exceptions.RequestException as e:
        print(f"\n發(fā)送請(qǐng)求時(shí)遇到錯(cuò)誤: {e}")


def main(name, id_min, id_max):
    ids = []
    lock = threading.Lock()

    def process_content(name, id):
        content = '{"p":"erc-20","op":"mint","tick":"' + name + '","id":"' + str(number) + '","amt":"1000"}'
        id = query_content(content)
        with lock:
            ids.append(id)

    # 創(chuàng)建線程列表
    threads = []
    for number in range(id_min, id_max):
        thread = threading.Thread(target=process_content, args=(name, number,))
        threads.append(thread)
        thread.start()

        # 限制線程數(shù)量為20
        if len(threads) >= 20:
            # 等待前面的線程完成
            for t in threads:
                t.join()
            threads = []

    # 等待剩余線程完成
    for thread in threads:
        thread.join()

    # 過(guò)濾掉值為-1的元素
    ids = list(filter(lambda x: x != -1, ids))
    print("未打銘文列表:",ids)


if __name__ == '__main__':
    id_min = int(input("請(qǐng)輸入查詢(xún)id范圍下限:"))
    id_max = int(input("請(qǐng)輸入查詢(xún)id范圍上限:"))
    name = input("輸入銘文名稱(chēng):")
    main(name, id_min, id_max)

【Mquant】9:python批量銘刻erc-20銘文,量化,python,區(qū)塊鏈,開(kāi)發(fā)語(yǔ)言

3. 批量mint

安裝web3包

pip install web3 eth_account
import hashlib
import threading
import time

from web3 import Web3, HTTPProvider
from eth_account import Account
import concurrent.futures
import requests
from eth_account.signers.local import LocalAccount
import binascii


def string_to_hex(string):
    return '0x' + binascii.hexlify(string.encode()).decode()


def query_domain(content):
    content_ = "data:," + content
    sha256_hash = hashlib.sha256(content_.encode()).hexdigest()

    url = f"https://eth-script-indexer-eca25c4cf43b.herokuapp.com/api/ethscriptions/exists/{sha256_hash}"

    try:
        response = requests.get(url)
        if response.status_code == 200:
            result = response.json()
            if result['result']:
                print(content, "不能被mint")
                return False
            else:
                print(content, "可以mint")
                return True
        else:
            print(f"\n獲取'{content}'的數(shù)據(jù)失敗,請(qǐng)檢查你的輸入是否正確。")
    except requests.exceptions.RequestException as e:
        print(f"\n發(fā)送請(qǐng)求時(shí)遇到錯(cuò)誤: {e}")


def mint_ethscriptions(w3, wallet, to_address, private_key, content):
    nonce = w3.eth.get_transaction_count(wallet.address)
    # 獲取當(dāng)前燃?xì)鈨r(jià)格
    gas_price = w3.eth.gas_price
    hex_data_URI = string_to_hex("data:," + content)
    tx = {
        'to': to_address,
        'value': w3.to_wei(0, 'ether'),  # 發(fā)送的以太幣數(shù)量
        'data': hex_data_URI,
        'nonce': nonce,
        'gas': 30000,  # 估算的燃?xì)饬?/span>
        'gasPrice': gas_price,
        'chainId': 1,  # 主網(wǎng)的鏈ID
    }
    # 使用私鑰進(jìn)行交易簽名
    # signed_transaction = w3.eth.account.sign_transaction(tx, private_key)
    # tx_hash = w3.eth.send_raw_transaction(signed_transaction.rawTransaction)
    # print(f'Transaction hash: {tx_hash.hex()}')
    #
    # tx_receipt = w3.eth.wait_for_transaction_receipt(tx_hash)
    # print(f'Transaction was confirmed in block {tx_receipt["blockNumber"]}')
    print('Done')


def main(private_key, name, id_min, id_max):
    w3 = Web3(HTTPProvider("https://rpc.ankr.com/eth"))
    wallet: LocalAccount = Account.from_key(private_key)
    count = 0  # 計(jì)數(shù)器
    count_lock = threading.Lock()  # 創(chuàng)建鎖對(duì)象

    def process_id(name, number):
        global count
        content = '{"p":"erc-20","op":"mint","tick":"' + name + '","id":"' + str(number) + '","amt":"1000"}'
        flag = query_domain(content)
        if flag:
            with count_lock:
                if count < 100:
                    mint_ethscriptions(w3, wallet, wallet.address, private_key, content)
                    count += 1

    with concurrent.futures.ThreadPoolExecutor() as executor:
        ids = range(id_min, id_max)
        names = [name] * len(ids)
        for i in range(0, len(ids), 20):
            batch_ids = ids[i:i + 20]
            batch_names = names[i:i + 20]
            executor.map(process_id, batch_names, batch_ids)
            time.sleep(10)  # 休息60秒


if __name__ == '__main__':
    private_key = input("請(qǐng)輸入錢(qián)包私鑰:")
    name = input("請(qǐng)輸入要mint的銘文名字:")
    id_min = int(input("請(qǐng)輸入銘文編號(hào)下限:"))
    id_max = int(input("請(qǐng)輸入銘文編號(hào)上限:"))
    main(private_key, name, id_min, id_max)

【Mquant】9:python批量銘刻erc-20銘文,量化,python,區(qū)塊鏈,開(kāi)發(fā)語(yǔ)言

有問(wèn)題歡迎私聊,可+量化交易~裙,領(lǐng)取量化交易資料文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-760114.html

到了這里,關(guān)于【Mquant】9:python批量銘刻erc-20銘文的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Eth Of Erc20 And Erc721

    Eth Of Erc20 And Erc721

    public,可以修飾變量和函數(shù), 被修飾的函數(shù)或變量可以被任何合約調(diào)用(或訪問(wèn)),默認(rèn)的變量和函數(shù)使用該屬性。 private,可以修飾變量和函數(shù),被修飾者只能被當(dāng)前合約內(nèi)部的代碼所調(diào)用(或訪問(wèn)),不能被外部合約調(diào)用或繼承它的子合約調(diào)用(或訪問(wèn))。 extermal,只能修飾函數(shù)

    2024年02月15日
    瀏覽(45)
  • WuBit:聚合BRC20資產(chǎn)交易,續(xù)寫(xiě)銘文市場(chǎng)新浪潮

    2023年的數(shù)字貨幣領(lǐng)域見(jiàn)證了重大的創(chuàng)新,尤其是比特幣Ordinals協(xié)議的推出,它為銘文賽道帶來(lái)了新的生命力。這一協(xié)議的核心在于將比特幣分割為更小的單位——聰,并在每個(gè)聰上嵌入獨(dú)特信息,從而創(chuàng)建了一種新穎的非同質(zhì)化資產(chǎn)。BRC20等應(yīng)用的出現(xiàn),利用這一平臺(tái)在比特

    2024年02月04日
    瀏覽(18)
  • 以太坊數(shù)字資產(chǎn)的發(fā)行和流通:以太坊上的數(shù)字資產(chǎn)定義、ERC 20代幣合約標(biāo)準(zhǔn)、ERC 20標(biāo)準(zhǔn)接口、ERC 721代幣合約標(biāo)準(zhǔn)、

    以太坊設(shè)計(jì)的目標(biāo)就是讓各種數(shù)字資產(chǎn)能以智能合約的形式運(yùn)行在以太坊虛擬機(jī)上。目前,眾多智能合約中最廣泛應(yīng)用的是代幣合約(Token Contract)。是負(fù)責(zé)管理賬戶(hù)以及其擁有的代幣的智能合約,實(shí)質(zhì)可以理解為一張賬戶(hù)地址和對(duì)應(yīng)賬戶(hù)代幣余額的映射表。 即:代幣可以被

    2023年04月11日
    瀏覽(25)
  • Python量化投資——金融數(shù)據(jù)最佳實(shí)踐: 使用qteasy+tushare搭建本地金融數(shù)據(jù)倉(cāng)庫(kù)并定期批量更新【附源碼】

    Python量化投資——金融數(shù)據(jù)最佳實(shí)踐: 使用qteasy+tushare搭建本地金融數(shù)據(jù)倉(cāng)庫(kù)并定期批量更新【附源碼】

    做量化投資或者對(duì)量化交易感興趣的朋友應(yīng)該都需要用到大量的金融數(shù)據(jù),例如股票價(jià)格,基金凈值、上市公司技術(shù)指標(biāo)和財(cái)務(wù)指標(biāo)等等。但是,如何有效、可靠地獲取金融數(shù)據(jù),并且有效地使用,卻是一個(gè)令人頭疼的問(wèn)題。在這篇文章中,我想跟大家交流我的使用心得,分

    2024年02月04日
    瀏覽(21)
  • 查看ERC20的精度

    查看ERC20的精度

    ? ? Erc20的精度decimals,范圍為0~18,可以在對(duì)應(yīng)的區(qū)塊鏈瀏覽器explorer里查看,如圖(1)所示。下面,介紹查看 ETH鏈上的ERC20: 0xdac17f958d2ee523a2206206994597c13d831ec7的decimals。 ? ? 比如,0x0000000000004946c0e9f43f4dee607b0ef1fa1c的精度為0; 0xf650c3d88d12db855b8bf7d11be6c55a4e07dcc9的精度為8。 ? ?

    2024年02月15日
    瀏覽(14)
  • ERC20合約入門(mén)

    ERC20合約入門(mén)

    這篇文章會(huì)手把手的教你開(kāi)發(fā)智能合約的基本流程,帶你快速入門(mén)智能合約的開(kāi)發(fā)。這篇文章假設(shè)你了解區(qū)塊鏈的基礎(chǔ)知識(shí),有一定的開(kāi)發(fā)經(jīng)驗(yàn),如果不懂的可以私信我,我發(fā)給你一些資料。 智能合約的開(kāi)發(fā)流程是 智能合約最簡(jiǎn)單的開(kāi)發(fā)方式是用 Remix 在線編輯程序開(kāi)發(fā),這

    2024年02月03日
    瀏覽(29)
  • 什么是ERC20?

    什么是ERC20?

    ERC20 是以太坊區(qū)塊鏈上最常見(jiàn)的代幣標(biāo)準(zhǔn)之一。它是以太坊上智能合約的一種協(xié)議,定義了一套規(guī)則和接口,使得在以太坊網(wǎng)絡(luò)上創(chuàng)建和管理代幣變得更加簡(jiǎn)單和標(biāo)準(zhǔn)化。 ERC20 代幣標(biāo)準(zhǔn)定義了一組功能和方法,以便代幣合約可以與其他合約和錢(qián)包進(jìn)行交互。根據(jù) ERC20 標(biāo)準(zhǔn),

    2024年02月13日
    瀏覽(21)
  • 區(qū)塊鏈 | ERC721 標(biāo)準(zhǔn)

    目錄 正文 1? ERC721 接口 事件 方法 2? ERC165 接口 3? 可選實(shí)現(xiàn)接口:ERC721Metadata 4? 可選實(shí)現(xiàn)接口:ERC721Enumerable 補(bǔ)充說(shuō)明 1? NTF IDs 2? 與 ERC-20 的兼容性 3? 交易、挖礦、銷(xiāo)毀 ?? 原文: 剖析非同質(zhì)化代幣 ERC721 標(biāo)準(zhǔn) ?? 寫(xiě)在前面: 本文屬搬運(yùn)博客,自己留存學(xué)習(xí)。 ERC721 作為

    2024年04月28日
    瀏覽(22)
  • 以太坊的演變:EIP、ERC 概念以及革命性的 ERC20、ERC721 和 ERC115 標(biāo)準(zhǔn)

    以太坊改進(jìn)提案(EIP)代表了以太坊區(qū)塊鏈內(nèi)協(xié)作進(jìn)步的頂峰。它們是技術(shù)文章或提案,描述對(duì)以太坊網(wǎng)絡(luò)的建議更改或增強(qiáng)。 這些文檔經(jīng)過(guò)精心制作,呈現(xiàn)了新的功能、流程或環(huán)境,在任何形式的采用或?qū)嵤┲岸夹枰鐓^(qū)的審查。 至關(guān)重要的是要認(rèn)識(shí)到改進(jìn)提案的概念

    2024年04月11日
    瀏覽(28)
  • 智能合約 之 ERC-20介紹

    智能合約 之 ERC-20介紹

    ERC20 全稱(chēng)為 Ethereum Request for Comment 20 ,是一種 智能合約標(biāo)準(zhǔn) ,用于以太坊網(wǎng)絡(luò)上的代幣發(fā)行 姊妹篇 - 如何部署ERC20 代幣化資產(chǎn),例如:USDT 是一種以美元為背書(shū)的ERC20代幣,每個(gè)USDT代幣都代表著1美元的價(jià)值,用戶(hù)可以隨時(shí)兌換成等值的美元 去中心化加以所,許多去中心化交

    2024年04月15日
    瀏覽(31)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包