[Blockchain] Eintritt in die Welt von web3 - Benzinkosten

        Gaseinheiten werden verwendet, um den Rechenaufwand zu messen, der für die Ausführung von Transaktionen auf Ethereum erforderlich ist. Da für jede Transaktion einige Rechenressourcen erforderlich sind, ist eine Gebühr erforderlich, die normalerweise als Gasgebühr oder Transaktionsgebühr bezeichnet wird.

        Gasgebühren werden in Ether oder ETH, der Heimatwährung von Ethereum, bezahlt. Die Benzinkosten werden vor und nach dem London-Upgrade etwas anders berechnet. 

        Hinweis: Wenn jemand "Gas" sagt, meint er normalerweise "Gasgebühren", nicht die Einheit selbst. Für die Zwecke dieses Tutorials sind wir jedoch technisch korrekt und sagen „Gas“, wenn wir uns auf Einheiten beziehen, und „Gasgebühren“, wenn wir uns auf Gebühren in Ether beziehen.

1. Warum gibt es Gas?

        Gas trägt dazu bei, das Ethereum-Netzwerk sicher zu halten. Durch die Erhebung einer Gebühr für jede im Netzwerk durchgeführte Berechnung werden schlechte Akteure daran gehindert, das Netzwerk zu spammen.

        Um versehentliche oder böswillige Endlosschleifen in Smart Contracts zu vermeiden, die dazu führen würden, dass alle Ethereum-Knoten für immer hängen bleiben, legt das Gaslimit einer Transaktion eine Grenze dafür fest, wie viel Berechnung eine Transaktion verwenden kann.

2. Berechnungsmethode für Gas

Gwei steht für Giga-Wei und entspricht 1.000.000.000 (10^9) Wei. Wei ist die kleinste Stückelung der ETH. 1 ETH = 10^18 Wei.

    Gasgebühr = Gaspreis * die Menge an Gas, die verbraucht werden muss

    2.1. Die Methode zur Ermittlung des Gaspreises kann über Ether erzielt werden


import {  getProvider } from '@wagmi/core'

export const getGasPrice = async () => {
    const providers = getProvider()
    const result = await providers.getGasPrice()
    console.log('getGasPrice...', getGasPrice)
    return result.toString()
}

 2.2 Wie man die Menge des verbrauchten Gases erhält (der wichtigste Faktor, der das Gas beeinflusst, ist der Einheitspreis des Gases)


import {  getProvider } from '@wagmi/core'

/**
 *
 * @param factor 需要多少个gas
 * @returns
 */
export const estimateGasNumber = async (factor: number) => {
    const provider = getProvider()
    const gasPrice = await provider.getGasPrice()
    const data = formatFixed(gasPrice.mul(factor), 18)
    // 统一保留6位。
    return data.slice(0, 8)
}

// 预判eth注册的gas费用
export const estimateEthRegisterGasFee = async () => {
    const registerCount = 169869
    const commitCount = 46255
    const totalCount = registerCount + commitCount
    const data = await estimateGasNumber(totalCount)
    return data
}

// 预判bnb普通注册费用
export const estimateRegisterBnbGasFee = async () => {
    const registryCount = 293767
    const commitCount = 44027
    const totalCount = commitCount + registryCount
    const data = await estimateGasNumber(totalCount)
    return data
}

// 预判bnb礼品卡注册费用
export const estimateRegisterBnbAndPointGasFee = async () => {
    const registerCount = 304505
    const commitCount = 44027
    const totalCount = commitCount + registerCount
    const data = await estimateGasNumber(totalCount)
    return data
}

ENS-Browser:                

https://testnet.bscscan.com/tx/0x48187736a21e19bc1d274002b3b557745695bf80e520ee0ea6b373e681c94809

Hinweis (die Gasmenge, die durch jeden Vorgang des Vertrags verbraucht wird, bleibt im Wesentlichen unverändert, ETH ist ein Beispiel):

     1. Die für Commit erforderliche Gasmenge: 46255

     2. Die für die Registrierung erforderliche Gasmenge: 169869

     3. Die für die Zulassung erforderliche Gasmenge: 46339

     4. Die für die Umwandlung erforderliche Gasmenge: 27966

Guess you like

Origin blog.csdn.net/qq_23334071/article/details/130179745