最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

DAPP馬蹄鏈智能合約系統(tǒng)丨DAPP馬蹄鏈智能合約系統(tǒng)開發(fā)(案例)丨DAPP馬蹄鏈開發(fā)源碼

2023-03-09 10:35 作者:bili_33032327742  | 我要投稿

  智能合約(或稱加密合約)是一種計算機程序,在一定條件下直接自動控制雙方的數(shù)字資產(chǎn)轉(zhuǎn)移。智能合約的工作方式與傳統(tǒng)合約相同,同時也自動執(zhí)行合約。


智能合約是完全按照其創(chuàng)建者的設(shè)置(編碼,編程)執(zhí)行的程序。就像傳統(tǒng)合同可由法律強制執(zhí)行一樣,智能合同可由代碼強制執(zhí)行。


  代碼逐行解讀


  確定的使用的Solidity版本


  pragma solidity=0.5.16;


  這兩行導(dǎo)入了該合約必須實現(xiàn)的接口IUniswapV2ERC20.sol和一個防溢出的數(shù)學(xué)工具庫SafeMath。一個合約實現(xiàn)的接口代表了它的基本功能;防溢出數(shù)學(xué)工具庫應(yīng)用很常見,主要是因為數(shù)值是可以無限大的,但是存儲位數(shù)是有限的。例如最大256位,因此最大的無符號整數(shù)就是是2**256-1。再大就會溢出,這時就會得到預(yù)期外的結(jié)果。


另外,因為在Solidity中,應(yīng)用最多的是無符號整數(shù),如果減法得到了負(fù)數(shù),根據(jù)二進制的表示法,結(jié)果會被認(rèn)為成另一個無符號整數(shù)。在早期的智能合約中,存在溢出漏洞或者得到負(fù)值而遭受損失的情況。當(dāng)前編寫的智能合約一般都會防范這種問題的發(fā)生,使用SafeMath工具庫是最常見的預(yù)防手段。注意,該庫里只有加、減和乘三種計算,沒有除法。因為除法不會有溢出;如果被零除,Solidity語言本身會報錯重置整個交易,不需要額外處理。


  import"./interfaces/IUniswapV2ERC20.sol";


  import"./libraries/SafeMath.sol";


  定義了該合約必須實現(xiàn)導(dǎo)入的IUniswapV2ERC20接口。該接口是由標(biāo)準(zhǔn)ERC20接口加上自定義的線下簽名消息支持接口組成,所以UniswapV2ERC20也是一個ERC20代幣合約。最后一個花括號是作用域開始。開發(fā)需求I59案例2oo7詳細(xì)3O69


  contract UniswapV2ERC20 is IUniswapV2ERC20{


  代表在uint256(uint是它的同名)類型上使用SafeMath庫。Solidity中庫函數(shù)在指定調(diào)用實例時(例如本例中的.sub等)和Rust語言中的結(jié)構(gòu)體的方法類似,實例自動作為庫函數(shù)中的第一個參數(shù)。


  using SafeMath for uint256;


  這三行代碼定義了ERC20代幣的三個對外狀態(tài)變量(代幣元數(shù)據(jù)):名稱,符號和精度。這里的精度就是小數(shù)點位數(shù)。注意,由于該合約為交易對合約的父合約,而交易對合約是可以創(chuàng)建無數(shù)個的,所以這無數(shù)個交易對合約中的ERC20代幣的名稱、符號和精度都一樣。我們平常在交易所中看到的只是ERC20代幣的符號,從這里可以看出,符號是可以重復(fù)的,并不是唯一確定的。代幣之間根本區(qū)別是合約地址,這個是唯一的,不同的地址就是不同的代幣,哪怕合約代碼完全一樣。


  //token名稱,案例及模式:yy625019


  string public constant name="Uniswap V2";


  //token縮寫


  string public constant symbol="UNI-V2";


  //token精度


  uint8 public constant decimals=18;


  記錄代幣發(fā)行總量的狀態(tài)變量。為什么是訪問權(quán)限是public的呢?主要是利用編譯器的自動構(gòu)造同名函數(shù)功能來實現(xiàn)相應(yīng)接口。


  uint256 public totalSupply;


  用一個map記錄每個地址的代幣余額


  mapping(address=>uint256)public balanceOf;


DAPP馬蹄鏈智能合約系統(tǒng)丨DAPP馬蹄鏈智能合約系統(tǒng)開發(fā)(案例)丨DAPP馬蹄鏈開發(fā)源碼的評論 (共 條)

分享到微博請遵守國家法律
江北区| 吉隆县| 依安县| 泰州市| 庆安县| 镇赉县| 浦北县| 阿克苏市| 烟台市| 股票| 冷水江市| 富顺县| 玉山县| 银川市| 石城县| 凤冈县| 和硕县| 和静县| 奇台县| 长治县| 叶城县| 大关县| 娱乐| 灵寿县| 泰顺县| 吉林市| 奈曼旗| 高平市| 应城市| 蒙自县| 运城市| 上杭县| 通渭县| 东港市| 广丰县| 富裕县| 新宁县| 砚山县| 英山县| 平南县| 长白|