比特幣行情 比特幣行情
Ctrl+D 比特幣行情
ads
首頁 > 波場 > Info

ETH:scaffold-eth 挑戰:實現鎖定機制和資金撤回(Part2)

Author:

Time:1900/1/1 0:00:00

譯文出自:登鏈翻譯計劃

譯者:翻譯小組

校對:Tiny熊

正如我們之前所說,這個合約的最終目標是實現一個質押dApp,當滿足一些條件,用戶就可以質押ETH。如果沒有達到這些條件,用戶可以撤回他們的ETH。

這些條件是:

至少向質押合約質押1個ETH

在deadline(30秒)內達到1個ETH的質押閾值

需要掌握的重要概念

調用外部合約-區塊鏈上的每個合約都像一個公共的RESTAPI。如果合約被聲明為public或external,你可以從web3app或直接從另一個合約調用它們。

函數修改器(FunctionModifier)-修改器是可以在函數調用之前和/或之后運行的代碼。它們可以用來限制訪問,驗證輸入,或防范重入性攻擊。

錯誤處理-錯誤處理很重要,因為它可以還原智能合約的狀態,并通知用戶還原的原因。你可以把這種還原比作數據庫的rollback。

Scam Sniffer:某地址在遭受網絡釣魚攻擊后因未撤銷授權共損失83stETH:金色財經報道,據Scam Sniffer監測,一名受害者疑似在遭受網絡釣魚攻擊后因未撤銷授權而損失了兩次$stETH。最初,他損失52stETH,然后在3小時前將31stETH轉移到同一個錢包。[2023/9/4 13:15:36]

發送ETH-Solidity有本地方法可以將ETH從一個合約轉賬到另一個合約/地址。

練習實現

聲明一個deadline,它是區塊時間延后30秒

創建一個publictimeLeft()函數,用于返回剩余時間,直到時間到deadline為止

創建一個修改器(Modifier),用于檢查外部合約是否已經完成

創建一個修改器(Modifier),用于動態檢查deadline是否到了

只允許用戶在時間沒到deadline且沒有執行外部合約的情況下質押ETH

Etherscan將于10月5日棄用測試網Rinkeby和Ropsten的瀏覽器:金色財經報道,以太坊瀏覽器Etherscan發推表示,測試網Rinkeby和Ropsten的瀏覽器將于2022年10月5日棄用,在可預見的未來,對應將被設置為只讀狀態,最終將被淘汰。建議開發人員遷移合約并在Goerli或Sepolia上部署新合約。

此前報道,以太坊Kiln測試網將于本周關閉,Ropsten和Rinkeby測試網也將于2022年第四季度和2023年第二季度分別關閉。[2022/9/13 13:25:38]

只有當時間沒有到deadline且balances沒有達到閥值,用戶才可以撤回資金

創建一個execute()方法,將資金從質押合約轉移到外部合約并執行另一個合約外部函數

當你在本地測試合約是一定要注意:區塊鏈的狀態只有在區塊被打包時才會更新。區塊編號和區塊時間都只有在交易完成后才會更新。這意味著timeLeft()只有在交易完成后才會更新。如果你想模擬真實場景,可以改變Hardhat配置來模擬區塊自動挖礦。如果你想了解更多,請看mining-mode文檔。

提供加密交易的Banxso將在南非推出新交易所,受FSCA監管:2月20日消息,Banxso.com宣布推出一個新的南非交易所。該交易所計劃于2022年4月1日啟動。Banxso還計劃在年底前在另外3個國家開展業務。預計所有交易所都將受到全面監管:

- 南非的Banxso將受到FSCA的監管。

- 歐盟國家的Banxso將受到CySec的監管。

- 阿聯酋的Banxso將受到DFSA的監管。

- 英國的Banxso將受到FCA的監管。

據介紹,Banxso提供外匯(包括外匯期權)、股票、指數、大宗商品和加密貨幣交易。交易者可以選擇幾個交易平臺,包括Banxso X、MT4、MT5和一個移動應用程序平臺。Banxso集團還在塞舌爾、毛里求斯和圣文森特和格林納丁斯獲得了許可證。(Finance Magnates)[2022/2/21 10:04:39]

合約代碼更新

//SPDX-License-Identifier:MITpragmasolidity^0

分析 | 以太坊主流交易所24H交易量保持穩定 ?Grayscale相關持倉量呈增長趨勢 ?:據 TokenGazer 數據分析顯示,截止至 10 月 31日 11 時,以太坊價格為$182.39,總市值為$19,764.65M,主流交易所24H交易量仍然保持較高水平,當前交易量約為$119.74M,保持穩定;近期以太坊對比特幣匯率平穩波動;基本面方面,以太坊鏈上交易量、新增地址增速、鏈上DApp交易量、算力保持相對穩定;以太坊 30 天開發者指數約為 2.24;以太坊與 BTC 180 天關聯度有一定上行趨勢,30 天 ROI 有一定回調;據TokenGazer官網六道數據顯示,Grayscale以太坊持倉量近期呈現上升趨勢;ERC20 代幣總市值約為以太坊總市值的 62.05%。[2019/10/31]

else{require(timeRemaining>0,"Deadlineisalreadyreached");}_;}/***functionexecute()publicstakeNotCompleteddeadlineReached(false){uint256contractBalance=address(this)

聲音 | Pascal Cagni:區塊鏈等新技術掀起了法國工業4.0革命:據21世紀經濟報道消息,法國商務投資署董事局主席、法國國際投資大使Pascal Cagni在接受采訪時表示,法國希望可以發揮其在創新和研發方面的優勢,吸引更多的中國科技公司研發中心落戶。目前,法國也為在當地投資研發中心的企業提供了一定的稅收優惠政策。他表示:“工業4.0革命在法國掀起了新的浪潮,在如人工智能、云計算和區塊鏈等新技術趨勢的推動下,我們也看到許多企業家和創業者投身于其中。在政府層面,法國也在創新和研發方面進行了大量的投入。”[2019/3/9]

/***}

為什么與練習1中的代碼不同?

我認為在這個實例中,變量openForWithdraw是不必要的。可以根據質押合約和外部合約的狀態直接判定是否可以撤回資金。

簡單起見,本例中withdraw函數不接受外部地址作為參數,只有質押者本人可以撤回資金。

我們已經將Solidity更新到0.8.4版本,Hardhat更新到2.6.1版本。有些scaffold-eth可能仍然依賴于舊版本的Solidity,我認為出于安全、優化和功能完整的考慮,使用最新的版本是很重要的。

回顧一下

函數修改器(FunctionModifiers):首先,你可以看到我們已經創建了兩個修改器。正如你已經從Solidity的例子中學到的,函數修改器是可以在一個函數調用之前或之后運行的代碼。在上面的例子中,我們添加了帶參數的函數修改器!

當你定義了一個函數修改器(FunctionModifiers)后,你可以在函數名稱后附加上修改器的名稱。如果修改器回退了,函數會在運行之前就回退!

stake()函數:與練習1相同。

timeLeft()函數:使用block.timestamp的值來計算剩余秒數。

withdraw()函數:在修改器通過后,檢查用戶是否有余額,如果沒有余額就返回。為了防止重入性攻擊,你應該在任何調用之前先修改合約的狀態。這就是為什么我們要把用戶的余額保存在一個變量中,并把用戶的余額更新為0。

execute()函數:在修改器通過后,調用外部合約complete()函數,并檢查一切是否成功。

現在用yarndeploy部署更新后的合約,并在本地進行測試,檢查一下:

在你進行交易的時候timeLeft是否在變化?

你能在時間到deadline之后質押ETH嗎?

如果合約被執行,能在deadline前或后撤回資金嗎?

即使質押金額沒有達到閥值,也可以執行合約嗎?

可以多次執行合約嗎?

https://www.youtube.com/watch?v=193ZeR17dtk

本翻譯由CellETF贊助支持。

來源:https://stermi.medium.com/how-to-write-your-first-decentralized-app-scaffold-eth-challenge-1-staking-dapp-b0b6a6f4d242

參考資料

登鏈翻譯計劃:https://github.com/lbc-team/Pioneer

翻譯小組:https://learnblockchain.cn/people/412

Tiny熊:https://learnblockchain.cn/people/15

調用外部合約:https://solidity-by-example.org/calling-contract/

函數修改器(FunctionModifier):https://solidity-by-example.org/function-modifier/

重入性攻擊:https://solidity-by-example.org/hacks/re-entrancy/

錯誤處理:https://solidity-by-example.org/error/

發送ETH:https://solidity-by-example.org/sending-ether/

mining-mode文檔:https://hardhat.org/hardhat-network/reference/#mining-modes

重入性攻擊:https://solidity-by-example.org/hacks/re-entrancy/

CellETF:https://celletf.io/?utm_souce=learnblockchain

免責聲明:作為區塊鏈信息平臺,本站所發布文章僅代表作者個人觀點,與鏈聞ChainNews立場無關。文章內的信息、意見等均僅供參考,并非作為或被視為實際投資建議。

本文來源于非小號媒體平臺:

登鏈社區

現已在非小號資訊平臺發布105篇作品,

非小號開放平臺歡迎幣圈作者入駐

入駐指南:

/apply_guide/

本文網址:

/news/10481471.html

免責聲明:

1.資訊內容不構成投資建議,投資者應獨立決策并自行承擔風險

2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表非小號的觀點或立場

上一篇:

比特幣進入牛市交叉點,BTC反彈迫在眉睫?

Tags:ETHTPSHTTSOLYFETH價格tps幣行情HTT價格sol幣最新利好消息

波場
中心化交易所:CEX的Q3業績遭遇滑鐵盧 DEX或將實現彎道超車

出品|白澤研究院 盡管最近加密市場如此火爆,但即便如此,作為加密交易所的交易份額競爭并不是那么容易.

1900/1/1 0:00:00
HTT:【獎勵發放】第三期理財活動結束及獎勵發放的公告

第三期理財活動結束及獎勵發放的公告作者AAXManager過去15分鐘內已更新尊敬的AAX用戶:AAX于2021年10月20日18:00至2021年11月2日18:00舉辦的“第三期理財活動.

1900/1/1 0:00:00
STR:Structure Finance (STF)

項目名稱:StructureFinance代幣名稱:STF項目介紹Structure.finance是一個集各類結構化金融產品于一體的平臺.

1900/1/1 0:00:00
Tap:比特幣 Taproot 升級在即:它的來源、內容與影響是什么?

吳說作者|袁奔本期編輯|ColinWu近期,比特幣將迎來自己的的一次重要的軟分叉升級Taproot,超過90%的礦工同意了這次升級,因此不太可能會出現SegWit升級時出現的社區分叉論戰.

1900/1/1 0:00:00
AUTO:跨鏈收益聚合器Autofarm上線OEC

對于DeFi參與者而言,資金安全和較高收益是十分重要的,一款好的收益聚合器產品不可或缺。近日,DeFi聚合挖礦協議——Autofarm將要上線部署OEC,作為BSC鏈上擁有最大機槍池的聚會挖礦項.

1900/1/1 0:00:00
KEX:BKEX Global 關于上線 GN 并開放充值功能的公告

尊敬的用戶:?????????????BKEXGlobal即將上線GN,詳情如下:上線交易對:GN/USDT幣種類型:ERC20充值功能開放時間:已開放交易功能開放時間:2021年11月12日1.

1900/1/1 0:00:00
ads