您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“使用Python創建ERC20的方法”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“使用Python創建ERC20的方法”這篇文章吧。
ERC20的意思是“以太坊請求注釋20”。征求意見是社會團體進行同行評審的一種方式。以太坊通過讓人們創造想法并讓其他人對它們進行評論來改善生態系統。
ERC20,是由Fabian Vogelsteller和Vitalik Buterin創建的第20個以太坊評論請求。
該評論請求為在以太坊平臺上創建“令牌”提供了一種方法,該令牌是所有令牌遵循的標準,因此平臺和工程師可以輕松使用它們,而無需重做。
ERC20中的每一個都遵循相同的模式,并且具有執行基本相同功能的相同功能列表。他們之中有一些是:
transfer:在所有者之間轉移令牌。
balanceOf:如何查看一個地址有多少令牌。
transferFrom:允許非所有者將令牌從一個地址移動到另一個地址。
approve:批準合同以調用該transferFrom功能。
它們是一種合約,跟蹤區塊鏈上每個地址具有多少個價值單位,同時ERC20又代表代幣的智能合約。
ERC20令牌的一些示例是LINK,AAVE,USDT和DAI。您會注意到,某些令牌(例如LINK令牌)實際上是ERC20的更高級形式。LINK,尤其是ERC677,它增加了一些額外的功能與工作的預言,但它仍然是向后兼容ERC20s并擁有其所有功能。
另一個流行的令牌標準是ERC777,它在ERC20上進行了一些不錯的生活質量改進,并且與ERC20向后兼容。
ERC20的作用以及他們的目的是什么?
1.治理
治理令牌是允許用戶在協議的未來中投票和持有股份的令牌。治理令牌的一些示例是UNI,AAVE和CRV。令牌可以“放入”平臺中,并用于投票和提議新的方向以供協議收聽。
2.保護網絡
通常,網絡或協議采用多塊鏈,并且協議的整體安全性不應與單個基礎區塊鏈聯系在一起。協議通常需要使用對協議更有意義的基礎資產進行商業交易。它將資產與與網絡無關的其他資產的市場波動性分開。
如果它是基礎鏈,那么如果基礎市場波動變得更糟,則網絡的安全性可能會降低。
3.合成資產和穩定幣
如果您有某種形式的價格信息,則可以通過某種抵押支持輕松地制造合成資產。這是獲得和交易不在區塊鏈生態系統中的資產的好方法。這正是Synthetix協議的工作原理,將Chainlink的價格信息與SNX抵押的抵押品相結合,使DeFi(去中心化金融)投資者能夠接觸到傳統金融世界。
同理,穩定幣也是合成資產,只是它們代表美元等“穩定”資產。Tether,USDC和Dai是穩定幣的示例。
4.其他
當提出關于制作ERC20代幣的想法時,創意是您的唯一限制。我們已經看到了一些協議,這些協議使用ERC20作為基礎抵押資產進行抵押,提供獎勵以鼓勵使用協議(請參閱收益農業),圍繞代幣創造經濟等等。
讓我們從克隆此示例存儲庫并安裝eth-brownie開始,我們假設您已經安裝了Python,Brownie是致力于簡化智能合約部署的Python框架。
git clone https://github.com/PatrickAlphaC/erc20-brownie cd erc20-brownie pip install eth-brownie
contracts文件夾中有兩個合同:
EasyToken.sol
TokenERC20.sol
這TokenERC20是一個示例,我們可以自己編寫整個合同,因為我們要做的就是確保實現適當的功能。
另外,更簡單的方法是使用OpenZeppelin軟件包。這樣可以抽象出大多數功能,并允許我們使用Solidity的繼承關系來使我們的合同“繼承”我們需要實現的所有功能!我們要做的就是給令牌命名,符號和初始供應。
pragma solidity ^0.6.0; import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; contract EasyToken is ERC20 { constructor() public ERC20("EasyToken", "EzT") { _mint(msg.sender, 1000000000000000000000000); } }
在此示例中,我們EasyToken用符號象征令牌,EzT初始供應量為100萬。您可能會問,為什么它不是的最初供應1000000000000000000000000。好吧,Solidity不適用于小數,因此我們實際上將18個額外的零指定為小數,因此我們可以與令牌的小數部分進行交互。
一旦創建了令牌合約,我們就可以創建一個腳本將其部署到區塊鏈中:
from brownie import accounts, config, EasyToken, EasyToken from scripts.helpful_scripts import get_account def main(): account = get_account() erc20 = EasyToken.deploy({"from": account})
Brownie允許我們取消合同本身,我們可以在主合同中調用該函數:
EasyToken.deploy({"from": account})
這會將其部署到任何與Brownie連接的區塊鏈上。您會注意到,對于每筆交易,我們還需要account與之關聯。我們account從get_account職能中得到了回報。我們現在可以忽略這一點。
默認情況下,此軟件包設置為部署到本地ganache區塊鏈,您將需要兩個環境變量:
export WEB3_INFURA_PROJECT_ID='aaa5aa5a5a5a55555aaa555a5a5555a`# export PRIVATE_KEY='asdfasdfasdfasdfasdfasdfasdfas'
您WEB3_INFURA_PROJECT_ID是Infura中的項目ID 。Infura是我們連接到區塊鏈的一種方式,并且具有免費層供我們使用。您還需要將自己設置PRIVATE_KEY為環境變量。您可以從MetaMask中獲取私鑰。
您可以通過從MetaMask導出私鑰并將其添加0x到開頭來獲取私鑰。
設置環境變量后,您還需要獲取一些Testnet Kovan ETH。
然后,您可以運行deploy腳本:
brownie run scripts/2_deploy_easy_token.sol
您將看到類似以下的輸出:
Running 'scripts/2_deploy_easy_token.py::main'... Transaction sent: 0x223af315917c07956243ed0915a3b142a5697ad6e497adeae3e3ad886f37b37a Gas price: 3.0 gwei Gas limit: 792680 Nonce: 3653 EasyToken.constructor confirmed - Block: 24760550 Gas used: 720619 (90.91%) EasyToken deployed at: 0x8922C8e8534e10A0B42c072eA0e94A80Cb2E0985
然后,我們可以獲取該地址并將其放入Kovan Etherscan,您將在其中看到您的令牌!
您要做的最后一件事就是獲取該地址并將其添加到您的MetaMask中。您可以單擊MetaMask中的“添加令牌”按鈕,轉到custom token,然后在Kovan網絡上添加您的合同地址,您應該在那里看到令牌。
恭喜你!您已經部署了第一個ERC20令牌!
以上是“使用Python創建ERC20的方法”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。