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

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

區(qū)塊鏈dapp錢包系統(tǒng)開發(fā)(開發(fā)方案)丨dapp錢包系統(tǒng)開發(fā)(項目案例)及源碼邏輯

2023-06-10 15:42 作者:bili_36625761919  | 我要投稿

 去中心化存儲技術(shù)是一種新型存儲技術(shù),它改變了傳統(tǒng)的集中式存儲技術(shù),將數(shù)據(jù)從單一位置移到多個位置,這樣就消除了存儲數(shù)據(jù)的中心機(jī)構(gòu)或服務(wù)器的責(zé)任,增加了安全性和數(shù)據(jù)的有效存儲,確保用戶的數(shù)據(jù)安全性。


  去中心化存儲技術(shù)的結(jié)構(gòu)為去中心化節(jié)點網(wǎng)絡(luò),它采用分布式存儲方式來存儲數(shù)據(jù)并保護(hù)這些數(shù)據(jù)。


  智能合約的生命周期根據(jù)其運(yùn)行機(jī)制可概括為協(xié)商、開發(fā)、部署、運(yùn)維、學(xué)習(xí)和自毀六個階段,其中開發(fā)階段包括合約上鏈前的合約測試,學(xué)習(xí)階段包括智能合約的運(yùn)行反饋與合約更新等.圖2所示為智能合約的基礎(chǔ)架構(gòu)模型,模型自底向上由基礎(chǔ)設(shè)施層、合約層、運(yùn)維層、智能層、表現(xiàn)層和應(yīng)用層組成,


  基礎(chǔ)設(shè)施層:封裝了支持智能合約及其衍生應(yīng)用實現(xiàn)的所有基礎(chǔ)設(shè)施,包括分布式賬本及其關(guān)鍵技術(shù)、開發(fā)環(huán)境和可信數(shù)據(jù)源等,這些基礎(chǔ)設(shè)施的選擇將在一定程度上影響智能合約的設(shè)計模式和合約屬性.


  (bool success,bytes memory returndata)=_to.call(abi.encodeWithSelector(


  IERC721TokenReceiver(_to).onERC721Received.selector,


  msg.sender,


  _from,


  _tokenId,


  _data


  ));


  //判斷返回結(jié)果


  if(!success){


  revert("合約地址未實現(xiàn)IERC721TokenReceiver接囗");


  }else{


  bytes4 retval=abi.decode(returndata,(bytes4));


  return(retval==_ERC721_RECEIVED);


  }


  }


  //安全轉(zhuǎn)移token-公用內(nèi)部函數(shù)


  function _safeTransferFrom(address _from,address _to,uint256 _tokenId,bytes memory _data)internal virtual{


  _transferFrom(_from,_to,_tokenId);


  require(_checkOnERC721Received(_from,_to,_tokenId,_data),"合約地址未實現(xiàn)IERC721TokenReceiver接囗!");


  }


  function safeTransferFrom(address _from,address _to,uint256 _tokenId,bytes calldata data)external override payable{


  _safeTransferFrom(_from,_to,_tokenId,data);


  }


  function safeTransferFrom(address _from,address _to,uint256 _tokenId)external override payable{


  _safeTransferFrom(_from,_to,_tokenId,"");


  }


  ///轉(zhuǎn)移token


  function transferFrom(address _from,address _to,uint256 _tokenId)external override payable{


  //轉(zhuǎn)移token


  _transferFrom(_from,_to,_tokenId);


  }


  ///授權(quán)token


  function _approve(address _approved,uint256 _tokenId)internal{


  require(_approved!=msg.sender,;


  _tokenApproval[_tokenId]=_approved;


  }


  function approve(address _approved,uint256 _tokenId)ownerIsNotZeroAddress(_approved)external override payable{


  _approve(_approved,_tokenId);


  }


  function setApprovalForAll(address _operator,bool _approved)external override{


  require(_operator!=msg.sender,);


  //修改狀態(tài)變量


  _operatorApprovals[msg.sender][_operator]=_approved;


  //事件


  emit ApprovalForAll(msg.sender,_operator,_approved);


  }


  function _getApproved(uint256 _tokenId)internal view returns(address){


  //判斷tokenId的所有者是否存在


  require(_isExistTokenId(_tokenId),"tokenId不存在");


  return _tokenApproval[_tokenId];


  }


  ///


  function getApproved(uint256 _tokenId)external override view returns(address){


  return _getApproved(_tokenId);


  }


  function _isApprovedForAll(address _owner,address _operator)internal view returns(bool){


  return _operatorApprovals[_owner][_operator];


  }


  ///是否全部授權(quán),即_owner將自己所有的tokenId全部授權(quán)給_operator


  function isApprovedForAll(address _owner,address _operator)external override view returns(bool){


  return _isApprovedForAll(_owner,_operator);


  }


  //生成tokenId-公用函數(shù)


  function _mint(address _to,uint256 _tokenId)ownerIsNotZeroAddress(_to)internal virtual{


  require(!_isExistTokenId(_tokenId),"token已存在");


  //設(shè)置token的所有者


  _tokenOwner[_tokenId]=_to;


  //所有者擁有的token數(shù)量累加


  _ownerTokensCount[_to]=_ownerTokensCount[_to].add(1);


  //事件


  emit Transfer(address(0),_to,_tokenId);


  }


  //生成tokenId


  function mint(address _to,uint256 _tokenId)ownerIsNotZeroAddress(_to)external{


  _mint(_to,_tokenId);


  }


  //生成tokenId-


  function safeMint(address _to,uint256 _tokenId,bytes calldata _data)ownerIsNotZeroAddress(_to)external{


  _mint(_to,_tokenId);


  require(_checkOnERC721Received(address(0),_to,_tokenId,_data),"合約地址沒有實現(xiàn)ERC721Received接囗");


  }


區(qū)塊鏈dapp錢包系統(tǒng)開發(fā)(開發(fā)方案)丨dapp錢包系統(tǒng)開發(fā)(項目案例)及源碼邏輯的評論 (共 條)

分享到微博請遵守國家法律
丰宁| 平罗县| 寻乌县| 新民市| 九江县| 永新县| 福建省| 常州市| 太仆寺旗| 松江区| 河津市| 和平区| 嘉义县| 南昌县| 阳城县| 永靖县| 炉霍县| 金湖县| 大港区| 上高县| 北辰区| 霞浦县| 精河县| 荣昌县| 饶河县| 昆明市| 宁都县| 新乡县| 沁水县| 和林格尔县| 岱山县| 旬邑县| 临海市| 桐乡市| 盈江县| 灵石县| 清苑县| 武平县| 云浮市| 绥德县| 泽州县|