星火燎原6星評(píng)價(jià)
2023-02-07 10:36:54
以太坊錢包轉(zhuǎn)賬失敗怎么辦?ETH錢包轉(zhuǎn)賬失敗是怎么回事?
在開始正式轉(zhuǎn)賬之前,請(qǐng)確保你已經(jīng)升級(jí)至 imToken 2.0 版本。事實(shí)上,部分的轉(zhuǎn)賬問題,完全是可以通過產(chǎn)品升級(jí)來(lái)避免的。
當(dāng)你看到一筆交易,在 imToken 上顯示轉(zhuǎn)賬失敗的時(shí)候,通常是由以下三種原因造成的:
1. Out of gas I Gas 不足
2. Bad instruction I 指令錯(cuò)誤
3. Reverted I 回退
而且轉(zhuǎn)賬支付的礦工費(fèi)不會(huì)回退至你的錢包,原因當(dāng)然不是因?yàn)?imToken「獨(dú)吞」了這筆費(fèi)用,具體原因請(qǐng)你往下看。
在 Etherscan 中查詢到的信息
在了解為什么會(huì)出現(xiàn) Gas 不足的情況之前,我們先來(lái)回顧一下什么是 Gas。
打個(gè)通俗易懂的比喻吧。就像你開車必須要有汽油一樣,你在以太坊上轉(zhuǎn)賬也需要有 Gas。開車 ≈ 轉(zhuǎn)賬,汽油 ≈ Gas。如果你要從 A 地驅(qū)車前往 B 地,按照實(shí)時(shí)的交通情況,你需要消耗 200 升汽油。但你為這次行程只準(zhǔn)備了 150 升汽油,那是否能到達(dá) B 地呢?在現(xiàn)實(shí)生活中,大家肯定都知道,你一定是到不了的。同時(shí)雖然你沒到達(dá) B 地,但是你的汽油卻已經(jīng)消耗了。
那么回到區(qū)塊鏈的世界,也是同樣的道理。如果你要進(jìn)行一筆轉(zhuǎn)賬,就要為這筆轉(zhuǎn)賬設(shè)置一個(gè) Gas。如果你設(shè)置的過低,就會(huì)出現(xiàn)「汽車」沒到達(dá)目的地就沒「油」的情況,即交易失敗。失敗原因就是 out of gas(汽油不足)。同時(shí),又因?yàn)榈V工們已經(jīng)進(jìn)行了打包的操作,但在打包過程中發(fā)現(xiàn) Gas 不足,導(dǎo)致這筆交易打包失敗了。礦工費(fèi)仍然會(huì)被扣除,但這些礦工費(fèi)都是由礦工們收取的,imToken 并不收你一分錢。
如何避免這種問題呢?別擔(dān)心,imToken 2.0 版本會(huì)為你設(shè)置合理的 Gas 值,讓你的交易被順利打包。當(dāng)然你也可以選擇自定義設(shè)置,但請(qǐng)注意,如果設(shè)置不當(dāng)?shù)脑捑蜁?huì)損失礦工費(fèi)哦。
Bad instruction 字面意思是「指令錯(cuò)誤」。出現(xiàn)這種提示的原因,大概率是因?yàn)橹悄芎霞s的代碼本身就存在邏輯問題,從而導(dǎo)致合約在執(zhí)行的過程中,出現(xiàn)「指令錯(cuò)誤」。這就像一臺(tái)壞了的機(jī)器,你輸入一個(gè)指令,機(jī)器是不能正常運(yùn)作的。這時(shí)候,我們?cè)撜艺l(shuí)解決呢?當(dāng)然是智能合約的創(chuàng)建方,去修復(fù)這臺(tái)「壞了的機(jī)器」。另外轉(zhuǎn)賬的礦工費(fèi)仍然會(huì)被礦工收走。
以太坊上包含兩類賬戶,普通賬戶和合約賬戶。普通賬戶是由用戶通過私鑰控制,而合約賬戶是由部署在以太坊上的智能合約控制。
那么 reverted 是什么情況呢?reverted 其實(shí)是一個(gè)函數(shù),用于立即中止合約的執(zhí)行,并且把狀態(tài)回滾。雖然是智能合約,比一般的合約更「聰明」,但是有些合約在執(zhí)行的過程中還是會(huì)「犯錯(cuò)」的。
這聽起來(lái)是不是過于抽象,讓我們打個(gè)簡(jiǎn)單的比方。出現(xiàn) reverted 的一種可能情況:你的合約規(guī)定,當(dāng)你輸入一塊錢,你可以得到一杯喜茶。但是這個(gè)合約并沒有檢查庫(kù)存里是否有足夠的喜茶。當(dāng)?shù)昀餂]有喜茶庫(kù)存的時(shí)候,后面來(lái)的人,即使它輸入一塊錢,也不能得到喜茶。這時(shí)候,你原本的函數(shù) - 即輸入一塊錢就會(huì)得到一杯喜茶的函數(shù)就會(huì)失敗,它會(huì)發(fā)出錯(cuò)誤的信息并回滾到當(dāng)前的交易狀態(tài)。
看到這里,想必大家也已經(jīng)明白了,出現(xiàn) bad instruction 和 reverted,都是因?yàn)橹悄芎霞s的問題,所以建議大家直接去找合約的創(chuàng)建者,也就是項(xiàng)目方。
以上就是以太坊錢包轉(zhuǎn)賬失敗是怎么回事?ETH錢包轉(zhuǎn)賬失敗的原因的詳細(xì)內(nèi)容,更多關(guān)于ETH錢包的資料請(qǐng)關(guān)注幣界網(wǎng)其它相關(guān)文章!