7*24快訊怎樣通過E...

怎樣通過Etherscan 驗證智能合約

網絡被稱為去中心化的3個英特智能程序網,它可以在鏈上的任何一個智能鏈上部署一個人的智能鏈與智能鏈,就是你在上面運行的任何一個智能鏈上的聯繫人。如果希望和合同是任何人都可以購買的,任何人都可以創建一個區塊源鏈,然後通過網絡驗證工具,而不是通過UI 驗證來進行交易。進行。

Etherscan 是一個永遠區塊鏈的區塊鏈瀏覽器,這些區塊鏈的區塊瀏覽器,包括以太坊,包括Arbitrum,Optimism 和其他很多類似的東西。最近這個通過Etherscan 讀取智能合約

在上篇文章中,你可以通過掃描上篇的智能合約和我們在其他文章中進行驗證。

驗證實體Solidity 文件

我們首先需要部署智能合約,然後進入Remix IDE。然後進入“Counter.sol”的新文件。複製粘貼下面的代碼:

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

contract Counter {
    uint256 internal counter;
    function increment() external {
        unchecked {
            ++counter;
        }
    }

    function getCurrent() external view returns(uint256) {
        return counter;
    }
}

在部署時,我們使用的Solidity 編譯器是哪個版本,並且在合同代碼中最重要的“SPDX-License-Identifier”中必須先聲明的許可證類型。

因為在合約文件中標註了“^0.8.0”,所以這個合約可以被稱為我們的任何版本號為0.8.0和0.9.0之間的solidity編譯器,這樣就包含多個版本的0.8.0 ,0.8.1,0.8.2 等。

在“Solidity Compiler”下,選擇Solidity的編譯器版本(可以是任何0.8的版本),點擊“Compile Counter.sol”。在這個例子中,我們會使用0.8.7的版本。

為Counter 合約使用Remix Solidity 編譯器

在成功編譯之後,“Deploy & Runactions”下面,在“Transvironment”的鏈接菜單中,選擇“Injected Provider – Metamask”,它會自動將你的Metamask 到Remix IDE。在這之後,你就可以在錢包中選擇你要部署的區塊鍊網絡。

我們合約部署到Rinkeby 中,因此我們需要在Metamask 中選擇“Rinkeby 測試網絡”。在部署的時候需要使用Rinkeby 的ETH,你可以在 鍊鍊表在獲取的時候,注意獲取一些在中。選擇在Ethereum Rinkeby 網絡。

在Remix 上切換到注入的提供程序

最後,“部署”按鈕,然後我們可能需要等待15 次元的交易界面。點擊就可以通過UI。我們為更多人和我們的智能合約,提供了一種方式。

現在,可以通過交易哈希或者合約地址在Etherscan 上看到我們剛部署的合約。在Etherscan 上使用它。

Etherscan 上的驗證和發布按鈕

點擊“驗證並發布”這個藍色的鏈接,下面這個頁面會出現。

驗證和發布源代碼

在第一個輸入菜單中輸入你的契約,並沒有自動跳出的話。在Compiler Type 的下拉菜單中,選擇“Solidity (Single File)”。下一個,“Compiler Version”的菜單會直接出現,這裡需要選擇使用編譯器選擇編譯這個合約實例編譯,在中是0.8.7。 ,在Open Source License Type”最後的下拉菜單中,在Solidity文件中的“SPDX-License-Identifier”中在我們的打標示例中是MIT。點擊繼續,進入到下一個頁面。

向Etherscan 輸入Solidity 合約代碼

將合約的這個源代碼複製到“Enter the Solidity Contract Code below”輸入框下,過人機測試,點擊“Verify and Publish”的藍色按鈕。你應該在“Contract”上會看到有一個綠色的對勾,驗證成功的合同,然後現在就可以代替你。

查看已驗證的合約源代碼

“Read Contract”按鈕,你應該可以調用“getCurrent”函數,然後counter這個變量的值,現在點擊是默認值0。

在Etherscan 上讀取getCurrent 函數

點擊“Write Contract”按鈕,你應該可以把你的錢包連接到Etherscan 網站上,調用“increment”函數。在點擊按鈕以後,MetaMask 會彈出網絡,對交易簽名(注意你需要使用Rinkeby 網絡)。在你之後的交易被成功寫入區塊,你就可以再次回到“Read Contact”區域,然後再次調用“getCurrent”函數,會發現現在的計數器變量變成了1。

寫入Etherscan 上的增量函數

多個使用Flatener插件完成Solidity文件的驗證

剛才是在Etherscan 上的合同過程中,剛才的例子是在驗證單一的Solidity 文件,通常情況下我們要處理的不是因為單一的Solidity 文件,你在智能合同中經常會引入其他的合同、接口和庫。

讓我們使用Chainlink 的Price Feed Consumer 合約作為例子,創建一個新的Solidity 文件,名字叫“PriceFeedConsumer.sol”,下面的代碼是從 Chainlink 官方文檔中貼紙的:

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.7;
import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol";

contract PriceConsumerV3 {
    AggregatorV3Interface internal priceFeed;
    /**
     * Network: Rinkeby
     * Aggregator: ETH/USD
     * Address: 0x8A753747A1Fa494EC906cE90E9f37563A8AF630e
     */

    constructor() {
        priceFeed = 
AggregatorV3Interface(0x8A753747A1Fa494EC906cE90E9f37563A8AF630e);
    }

    /**
     * Returns the latest price
     */

    function getLatestPrice() public view returns (int) {
        (
            /*uint80 roundID*/,
            int price,
            /*uint startedAt*/,
            /*uint timeStamp*/,
            /*uint80 answeredInRound*/

        ) = priceFeed.latestRoundData();
        return price;
    }
}

“import “@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interfacesol”;”這一行意味著我們需要引入其他接口,一個智能合約,它會不是相關的函數,但是沒有實現的函數體。這些有兩個作用,第一個接口是被某個接口調用實現的函數,第二個函數是一個智能合約。在這個例子中,我們會使用調用函數到它的第二個作用,即調用Chainlink Aggregator 契約中的“latestRoundData”函數。

我們還是通過0.8.7 的Solidity 編譯器版本,License 還是使用MIT,我們可以從第一行中看到。

在成功部署之後,回到Remix IDE,找到“PriceFeedConsumer.sol”,點擊,然後點擊“Flatten”。

在Remix 上哪裡可以找到flatten

這個命令會生成一個新的文件“重命名PriceFeedConsumer_flat.sol”,這個文件把所有的導入都換成接口或者庫的代碼契約。

將flattener 擴展添加到Remix

可以注意一下Remix IDE 的一個頁面,會被自動查找方法。有一個將契約扁平化的點擊左下角的“擴展”(在“設置”按鈕之外,是一個電源插頭)然後點擊“Flattener”的綠色按鈕“Activate”。

在Remix 中查找插件管理器

然後,到Flattener 擴展頁面,點擊“Flatten PriceFeedConsumer.sol”按鈕。這個不會創建新的文件,而是將已經展平的源代碼複製到剪切板,以便我們注意到它可以粘貼到Etherscan 的驗證頁。

用任何方法來平息你的契約取決與你。

現在,當Etherscan 到的驗證頁面後,像操作我們一樣,選擇:

  • 對於編譯器類型——Solidity(單個文件)
  • 對於編譯器版本——v0.8.7+commit.e28d00a7
  • 對於開源許可證類型- MIT 許可證(MIT)

然後點擊“繼續”按鈕。

在下面的頁面,在文本框“輸入下面的Solidity Contract Code”中,粘貼“PriceFeedConsumer_flat.sol”文件。

完成人機驗證,然後點擊“驗證並發布”按鈕。

多個使用Etherscan 插件完成Solidity 文件的驗證

另外一種驗證包含多個Solidity 文件契約的方法是使用“Etherscan – Contract Verification”這個Remix IDE 插件。

我們已經在使用“PriceFeedConsumer.sol”合約,再次部署它。在此之後,在擴展中激活“Etherscan – Contract Verification”插件。

在Remix 上找到Etherscan 合約驗證插件

現在到Etherscan 然後註冊一個賬戶,在你的賬戶設置中,找到“API Keys”部分,生成一個免費的API key。

然後點擊返回Remix IDE,“Etherscan – Contract Verification”,將你的API Key 粘貼在這裡,點擊“Save API key”按鈕。

如何在Remix 上保存Etherscan API 密鑰

然後選擇你想要驗證的合同,提供合同地址,點擊“驗證合同”。好的,你的合同現在就已經在Etherscan 中被驗證了。

使用Etherscan 插件在Remix 上完成合約驗證

總結

在這篇文章中,我們學會瞭如何通過Remix 和Etherscan 以多種方法驗證智能合約。

您可以關注鏈家禽機資料和私信加入者社區,有大量關於智能合約開發的學習以及關於區塊鏈的話題!

Source Link

最受歡迎

繼續閱讀

長期持有者持有的比特幣(BTC)供應量達到最高水平

根據Glassnode 的估計,比特幣的長期持有者(LTH)目前擁有1452 萬枚BTC,創歷史新高,只剩下25% 留給短期持...

抓住Web3 遊戲的先發優勢:成功策略

Web3和區塊鏈技術的出現徹底改變了遊戲行業,為開發者和企業家提供了前所未有的機遇。 Web3 遊戲的去中心化性質為創新遊戲貨幣化模式、玩家所有權和社區參與打...

現在讀

$COOKIE, the Cookie3 Mark...

Tallinn, Estonia, March 26th, 2024...

長期持有者持有的比特幣(BTC)供應量達到最高水平...

根據Glassnode 的估計,比特幣的長期持有者(LTH)目前擁有1452 萬枚BTC,創歷史新高,只剩下25% 留給短期持有者和投機者。 儘管BTC 的價格在過去一個月中保持相對平穩,範圍在約29,000 美元至31,000 美元之間,但人們還是開始瘋狂囤積。 ...

Caldera 宣布與Espresso Syste...

Caldera 開發人員可以利用Espresso Sequence...

抓住Web3 遊戲的先發優勢:成功策略

Web3和區塊鏈技術的出現徹底改變了遊戲行業,為開發者和企業家提供了前所未有的機遇。 Web3 遊戲的去中心化性質為創新遊戲貨幣化模式、玩家所有權和社區參與打開了大門。對於那些尋求利用Web3 遊戲巨大潛力的人來說,確保先發優勢至關重要。 了解Web3 遊戲生態系統在深入研究Web3 遊戲之前,有...

Taapsee Pannu 推出NFT 平台,介紹...

企業家貢獻者表達的意見是他們自己的。 您正在閱讀《企業家印度》,這是企業家媒體的國際特許經營刊物。 女演員Taapsee Pannu 最近推出了“taapseeclub.com”,這是她自己的非同質代...

比特幣(BTC) 地址休眠超過11 年,轉移310...

經過11 年多的閒置之後,一個包含3100 萬美元BTC 的休眠比特幣地址最近突然活躍起來。 2023年7月22日,地址 轉入 將其全部餘額轉移到新地址。 早期BTC 地址復活 比特幣自2009 年以來就已經存在,因此存在多年來不活躍的休眠地址,其中包含大量BTC。這種加密貨幣的一些早期採用者能夠...

加密貨幣死了嗎?當今加密貨幣的現狀

您之前可能聽說過加密貨幣正在消亡(或比特幣已消亡)。在這篇文章中,我們將研究加密貨幣的狀態,並嘗試回答這個問題:加密貨幣現在已經死了嗎? 在我們開始之前,我們想澄清一下,本文指的是最廣泛意義上的“加密貨幣行業”; 在裡面 網絡3 感覺。該定義包括加密資產市場; 但它還包括其他非財務用例。 隨著近來加...

Chancer 可能成為體育和社交博彩領域的下一個...

加密貨幣 隨著企業財報季節的繼續,本週股市表現好壞參半。在Ne...

以太坊(ETH) 創下兩個月來CEX 流入最高紀錄...

過去一周,以太坊(ETH)流入中心化交易所(CEX)的資金量創下了過去兩個月來的最高水平。這些重大的資產變動表明ETH 的價格可能會下跌。 CoinGecko 數據顯示,第二大加密貨幣的價格一直在小幅下跌,過去一周價值下跌了2.5%。截至撰寫本文時,以太幣易手價格為1,892.65 美元,過去24...

新的DeFi 法案有“不可行的義務”

加密貨幣創新委員會表示,新的反洗錢法案沒有為DeFi 中的非法金融...

幣安大幅削減成本,瑞波幣為美國銀行和加密貨幣風險投...

美國證券交易委員會(SEC)對加密貨幣公司的打擊似乎嚴重影響了幣安的業務。據報導,在過去幾週內,該加密貨幣交易所解雇了1,000 多名員工,並削減了一些福利。 幣安表示,“當前的市場環境和監管環境”導致利潤下降,這表明可能正在進行更多削減。一位發言人告訴Cointelegraph,該公司將考慮縮減“...

Automata 雙週更新:第48 期| 通過自動...

迎接新的季度意味著設定我們的意圖並為團隊規劃下一步的行動。幕後醞釀的一切——合作、產品功能和營銷發布——很難抑制我們的興奮。我們一開始就在1RPC(2 個備受期待的第2 層主網)上添加了對Linea 和Base 的支持。科技載體更新頁腳以顯示界面版本平滑的用戶體驗 USDC CCTP 支持 關於仲裁...