日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

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

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

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

關(guān)于ERC20也許你經(jīng)??吹紼RC20和代幣一同出現(xiàn), ERC20是以太坊定義的一個(gè)代幣標(biāo)準(zhǔn)。
要求我們?cè)趯?shí)現(xiàn)代幣的時(shí)候必須要遵守的協(xié)議,如指定代幣名稱、總量、實(shí)現(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);??
  • }??
  • 簡(jiǎn)單說明一下:
    name : 代幣名稱
    symbol: 代幣符號(hào)
    decimals: 代幣小數(shù)點(diǎn)位數(shù),代幣的最小單位, 18表示我們可以擁有 .0000000000000000001單位個(gè)代幣。
    totalSupply() : 發(fā)行代幣總量。
    balanceOf(): 查看對(duì)應(yīng)賬號(hào)的代幣余額。
    transfer(): 實(shí)現(xiàn)代幣交易,用于給用戶發(fā)送代幣(從我們的賬戶里)。
    transferFrom(): 實(shí)現(xiàn)代幣用戶之間的交易。
    allowance(): 控制代幣的交易,如可交易賬號(hào)及資產(chǎn)。
    approve(): 允許用戶可花費(fèi)的代幣數(shù)。基本介紹完畢,現(xiàn)在你的電腦上至少有chrome,火狐或者opera瀏覽器中的一個(gè),然后在以上瀏覽器中安裝MetaMask插件這樣我們就可以在任何系統(tǒng)和平臺(tái)上進(jìn)行以太坊的開發(fā)了

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

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

    當(dāng)你獲取到測(cè)試以太坊后,我們就可以進(jìn)行代幣開發(fā)了。我們?cè)?span style="background-color:transparent;color:rgb(62,62,62);float:none;font-size:16px;font-style:normal;font-variant:normal;font-weight:400;letter-spacing:normal;text-align:left;text-decoration:none;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;">Remix Solidity IDE上開發(fā),Remix Solidity IDE同樣,是一個(gè)網(wǎng)頁(yè)開發(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?是建議的默認(rèn)值??
  • ????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;??
  • ????}??
  • }??
  • 然后點(diǎn)擊右邊的RUN,進(jìn)行設(shè)置:在TokenERC20下面的那一行,第一個(gè)數(shù)字是代幣的數(shù)量,第二個(gè)字符是代幣的名稱,第三個(gè)字符是代幣的符號(hào)。上面的Account是你以太坊的錢包地址,Environment選擇Rinkeby。然后create一下就懷孕,啊不,是發(fā)幣了。

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

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

    總結(jié)

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

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

    主站蜘蛛池模板: 天天爽天天操 | 禁网站在线观看免费视频 | 欧美系列一区二区 | 色婷婷国产精品 | 中日韩精品一区二区三区 | 国产视频精品一区二区三区 | 国产做爰xxxⅹ久久久精华液 | 日本成人小视频 | 免费看av网 | 手机天堂网 | 日韩av电影中文字幕 | 香蕉人妻av久久久久天天 | 中国农村一级片 | 伊人66 | 日韩视频精品在线 | 久久密桃 | 强行无套内谢大学生初次 | 亚洲一区二区三区久久 | 午夜激情福利在线 | 久久久久久久免费 | 91玉足脚交嫩脚丫在线播放 | 久久久久久久久黄色 | 久草资源福利 | www.xxxx国产| 中国女人内谢69xxxx免费视频 | av黄色在线观看 | 人妻精品无码一区二区三区 | 五月天亚洲综合 | 欧美精品乱码99久久蜜桃 | 日本一区二区在线视频 | 国产精品一区二区6 | 浓精喷进老师黑色丝袜在线观看 | 秋霞毛片 | 欧美日韩久久精品 | 久久久久亚洲av成人网人人软件 | 日本吃奶摸下激烈网站动漫 | 国产网址在线观看 | 成人羞羞免费 | 欧美美女一级片 | 日韩男人的天堂 | 成人三级黄色 | 国产中文字幕一区 | 狠狠入 | 999精品国产 | 超碰97在线人人 | 双女主黄文 | 黄色网www | 国产黄色一区二区三区 | 成在人线av| 一起艹在线观看 | 国产一区二区三区四区视频 | 美日韩丰满少妇在线观看 | 神马午夜国产 | 亚洲精选一区二区 | 天天干网站 | 日韩成人福利视频 | 欧美亚洲激情 | 黄色成年人 | 爱插视频| 伊人久久爱 | 久久久久久久国产视频 | 国产亚洲精品电影 | 国产一级在线观看视频 | 一区二区三区四区免费 | 视频一二三区 | 疯狂做爰的爽文多肉小说王爷 | 精品一二三四 | 91麻豆精品国产91久久久久久久久 | 一区二区成人在线 | 久久尤物视频 | 精品国产一区二区三 | 亚洲妇熟xx妇色黄蜜桃 | 在线观看xxxx | 日韩欧美一区二区视频 | 黄色福利网站 | 毛片在线播放视频 | 亚洲一区二区视频在线 | 熟女高潮一区二区三区视频 | 免费观看的av | 成人三级黄色片 | 日美韩一区二区三区 | 国产精品第13页 | 激情视频在线播放 | 91精品国产视频 | 涩涩网站在线 | 九色蝌蚪porny | 中文字幕色哟哟 | 91video | 天天天天操 | 国产精品日日摸天天碰 | 亚洲黄色免费网站 | 岛国片在线免费观看 | 播放黄色一级片 | 吃奶摸下的激烈视频 | 久久国内精品 | www.99爱| 国产91成人 | 姑娘第5集在线观看免费 | 日本日皮视频 |