日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

使用以太坊发布属于你自己的虚拟代币

發(fā)布時間:2025/3/21 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用以太坊发布属于你自己的虚拟代币 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
使用以太坊發(fā)布屬于你自己的虛擬代幣
2018年04月22日 10:54:32閱讀數(shù):98

本文從技術(shù)角度詳細介紹如何基于以太坊ERC20創(chuàng)建代幣的流程。

關(guān)于以太坊的編程語言Solidity的教學(xué)我就不做了(懶。。),Solidity教程在網(wǎng)上就能找到,我盡量做到,你們跟著我的魔鬼的步伐,一步一步就把代幣做出來。

關(guān)于ERC20也許你經(jīng)常看到ERC20和代幣一同出現(xiàn), ERC20是以太坊定義的一個代幣標準。
要求我們在實現(xiàn)代幣的時候必須要遵守的協(xié)議,如指定代幣名稱、總量、實現(xiàn)代幣交易函數(shù)等,只有支持了協(xié)議才能被以太坊錢包支持。
其接口如下:
[plain] view plaincopy
  • contract?ERC20Interface?{??
  • ??
  • ????string?public?constant?name?=?"Token?Name";??
  • ????string?public?constant?symbol?=?"SYM";??
  • ????uint8?public?constant?decimals?=?18;??//?18?is?the?most?common?number?of?decimal?places??
  • ??
  • ????function?totalSupply()?public?constant?returns?(uint);??
  • ????function?balanceOf(address?tokenOwner)?public?constant?returns?(uint?balance);??
  • ????function?allowance(address?tokenOwner,?address?spender)?public?constant?returns?(uint?remaining);??
  • ????function?transfer(address?to,?uint?tokens)?public?returns?(bool?success);??
  • ????function?approve(address?spender,?uint?tokens)?public?returns?(bool?success);??
  • ????function?transferFrom(address?from,?address?to,?uint?tokens)?public?returns?(bool?success);??
  • ??
  • ????event?Transfer(address?indexed?from,?address?indexed?to,?uint?tokens);??
  • ????event?Approval(address?indexed?tokenOwner,?address?indexed?spender,?uint?tokens);??
  • }??
  • 簡單說明一下:
    name : 代幣名稱
    symbol: 代幣符號
    decimals: 代幣小數(shù)點位數(shù),代幣的最小單位, 18表示我們可以擁有 .0000000000000000001單位個代幣。
    totalSupply() : 發(fā)行代幣總量。
    balanceOf(): 查看對應(yīng)賬號的代幣余額。
    transfer(): 實現(xiàn)代幣交易,用于給用戶發(fā)送代幣(從我們的賬戶里)。
    transferFrom(): 實現(xiàn)代幣用戶之間的交易。
    allowance(): 控制代幣的交易,如可交易賬號及資產(chǎn)。
    approve(): 允許用戶可花費的代幣數(shù)。基本介紹完畢,現(xiàn)在你的電腦上至少有chrome,火狐或者opera瀏覽器中的一個,然后在以上瀏覽器中安裝MetaMask插件這樣我們就可以在任何系統(tǒng)和平臺上進行以太坊的開發(fā)了

    其他那些怎么注冊怎么收好助記詞你們這么聰明,肯定懂。我猜你們不會直接用真以太坊代幣進行合約部署,所以我們先在以太坊官方給的測試以太坊中部署合約,上圖的Rinkeby測試網(wǎng)絡(luò),然后點擊BUY進入免費獲取測試以太坊的界面

    不過這里要免費獲取測試以太坊的方法比較奇怪,有三種,不過都是把你的以太坊錢包地址復(fù)制到推特或者臉譜或者google+中發(fā)布,然后在把帶有你以太坊錢包地址的消息的鏈接復(fù)制到Rinkeby的輸入框中,如果復(fù)制鏈接后網(wǎng)頁沒有變化,那就刷新一下頁面,然后就會看到funded的變化了,上圖就是我在推特發(fā)的錢包地址復(fù)制到Rinkeby獲取測試以太坊。

    當你獲取到測試以太坊后,我們就可以進行代幣開發(fā)了。我們在Remix Solidity IDE上開發(fā),Remix Solidity IDE同樣,是一個網(wǎng)頁開發(fā)非常方便,Remix Solidity IDE開發(fā)界面是這樣的:關(guān)于發(fā)代幣的代碼,直接復(fù)制一下代碼即可:[plain] view plaincopy
  • pragma?solidity?^0.4.16;??
  • interface?tokenRecipient?{?function?receiveApproval(address?_from,?uint256?_value,?address?_token,?bytes?_extraData)?public;?}??
  • ??
  • contract?TokenERC20?{??
  • ????string?public?name;??
  • ????string?public?symbol;??
  • ????uint8?public?decimals?=?18;??//?18?是建議的默認值??
  • ????uint256?public?totalSupply;??
  • ??
  • ????mapping?(address?=>?uint256)?public?balanceOf;??//???
  • ????mapping?(address?=>?mapping?(address?=>?uint256))?public?allowance;??
  • ??
  • ????event?Transfer(address?indexed?from,?address?indexed?to,?uint256?value);??
  • ??
  • ????event?Burn(address?indexed?from,?uint256?value);??
  • ??
  • ??
  • ????function?TokenERC20(uint256?initialSupply,?string?tokenName,?string?tokenSymbol)?public?{??
  • ????????totalSupply?=?initialSupply?*?10?**?uint256(decimals);??
  • ????????balanceOf[msg.sender]?=?totalSupply;??
  • ????????name?=?tokenName;??
  • ????????symbol?=?tokenSymbol;??
  • ????}??
  • ??
  • ??
  • ????function?_transfer(address?_from,?address?_to,?uint?_value)?internal?{??
  • ????????require(_to?!=?0x0);??
  • ????????require(balanceOf[_from]?>=?_value);??
  • ????????require(balanceOf[_to]?+?_value?>?balanceOf[_to]);??
  • ????????uint?previousBalances?=?balanceOf[_from]?+?balanceOf[_to];??
  • ????????balanceOf[_from]?-=?_value;??
  • ????????balanceOf[_to]?+=?_value;??
  • ????????Transfer(_from,?_to,?_value);??
  • ????????assert(balanceOf[_from]?+?balanceOf[_to]?==?previousBalances);??
  • ????}??
  • ??
  • ????function?transfer(address?_to,?uint256?_value)?public?{??
  • ????????_transfer(msg.sender,?_to,?_value);??
  • ????}??
  • ??
  • ????function?transferFrom(address?_from,?address?_to,?uint256?_value)?public?returns?(bool?success)?{??
  • ????????require(_value?<=?allowance[_from][msg.sender]);?????//?Check?allowance??
  • ????????allowance[_from][msg.sender]?-=?_value;??
  • ????????_transfer(_from,?_to,?_value);??
  • ????????return?true;??
  • ????}??
  • ??
  • ????function?approve(address?_spender,?uint256?_value)?public??
  • ????????returns?(bool?success)?{??
  • ????????allowance[msg.sender][_spender]?=?_value;??
  • ????????return?true;??
  • ????}??
  • ??
  • ????function?approveAndCall(address?_spender,?uint256?_value,?bytes?_extraData)?public?returns?(bool?success)?{??
  • ????????tokenRecipient?spender?=?tokenRecipient(_spender);??
  • ????????if?(approve(_spender,?_value))?{??
  • ????????????spender.receiveApproval(msg.sender,?_value,?this,?_extraData);??
  • ????????????return?true;??
  • ????????}??
  • ????}??
  • ??
  • ????function?burn(uint256?_value)?public?returns?(bool?success)?{??
  • ????????require(balanceOf[msg.sender]?>=?_value);??
  • ????????balanceOf[msg.sender]?-=?_value;??
  • ????????totalSupply?-=?_value;??
  • ????????Burn(msg.sender,?_value);??
  • ????????return?true;??
  • ????}??
  • ??
  • ????function?burnFrom(address?_from,?uint256?_value)?public?returns?(bool?success)?{??
  • ????????require(balanceOf[_from]?>=?_value);??
  • ????????require(_value?<=?allowance[_from][msg.sender]);??
  • ????????balanceOf[_from]?-=?_value;??
  • ????????allowance[_from][msg.sender]?-=?_value;??
  • ????????totalSupply?-=?_value;??
  • ????????Burn(_from,?_value);??
  • ????????return?true;??
  • ????}??
  • }??
  • 然后點擊右邊的RUN,進行設(shè)置:在TokenERC20下面的那一行,第一個數(shù)字是代幣的數(shù)量,第二個字符是代幣的名稱,第三個字符是代幣的符號。上面的Account是你以太坊的錢包地址,Environment選擇Rinkeby。然后create一下就懷孕,啊不,是發(fā)幣了。

    然后選submit提交即可。提交后,點開Metamask界面,切換到TOKENS,點添加合約,出現(xiàn)如下對話框:輸入合約地址,代幣符號和代幣小數(shù)點后面的位數(shù),默認18,填18就好。

    最后成功發(fā)布了你自己的代幣:

    總結(jié)

    以上是生活随笔為你收集整理的使用以太坊发布属于你自己的虚拟代币的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。