欢迎光临散文网 会员登陆 & 注册

MT4/MT5交易所开发详情,MT4/MT5交易所系统开发(开发方案)丨源码部署

2023-04-05 10:29 作者:bili_53879993861  | 我要投稿

  数据作为新型生产要素,能为实体经济带来放大、叠加和倍增作用,是做强做优做大数字经济的关键。


  建立数据可信流通体系,增强数据的可用、可信、可流通、可追溯水平,是激活数据要素潜能、赋能实体经济的重要途径。区块链技术具有去中心化、共识机制、不可篡改、可以追溯、规则透明等特点。


  从本质上看,区块链是以分布式数据存储、点对点传输、共识机制、加密算法、开发功能唯:yy625019,智能合约等计算机技术集成创新而产生的分布式账本技术,是基于互联网的分布式数据库,具有去中心化、共识机制、不可篡改、可以追溯、规则透明等特点,


  _approve


  实现approve的核心函数为_approve函数,其代码如下:


  function _approve(


  address to,


  uint256 tokenId,


  bool approvalCheck


  )internal virtual{


  address owner=ownerOf(tokenId);


  if(approvalCheck&&_msgSenderERC721A()!=owner)


  if(!isApprovedForAll(owner,_msgSenderERC721A())){


  _revert(ApprovalCallerNotOwnerNorApproved.selector);


  }


  _tokenApprovals[tokenId].value=to;


  emit Approval(owner,to,tokenId);


  }


  其逻辑大致如下:


  查询待授权NFT的所有者


  进行资格审查,判断函数调用者是否有权进行授权


  设置_tokenApprovals映射,确定授权


  在资格审查方面,要求函数调用者满足以下条件:


  approvalCheck为false且函数调用者是NFT拥有者


  approvalCheck为true且函数调用者被授权控制NFT拥有者的所有NFT


  首先分析ownerOf函数,其定义如下:


  function ownerOf(uint256 tokenId)public view virtual override returns(address){


  return address(uint160(_packedOwnershipOf(tokenId)));


  function _packedOwnershipOf(uint256 tokenId)private view returns(uint256 packed){


  if(_startTokenId()<=tokenId){


  packed=_packedOwnerships[tokenId];


  if(packed&_BITMASK_BURNED==0){


  if(packed==0){


  if(tokenId>=_currentIndex)_revert(OwnerQueryForNonexistentToken.selector);


  for(;;){


  unchecked{


  packed=_packedOwnerships[--tokenId];


  }


  if(packed==0)continue;


  return packed;


  }


  }


  return packed;


  }


  }


  _revert(OwnerQueryForNonexistentToken.selector);


  }


MT4/MT5交易所开发详情,MT4/MT5交易所系统开发(开发方案)丨源码部署的评论 (共 条)

分享到微博请遵守国家法律