多商戶商城開發(功能)丨多商戶商城系統開發(開發方案)丨多商戶商城成品原始碼系統

xiaofufu發表於2023-02-25

  The blockchain mall creates a perfect integration platform of consumer shopping and blockchain technology,so that the advantages of blockchain technology can serve the actual transaction scenario of consumer shopping and help consumers realize the dream of value-added shopping.The model first uses the blockchain mall platform to leverage the trend of blockchain technology to help physical enterprises rapidly increase product sales,and at the same time,it also allows consumers to obtain substantial benefits in shopping.


  pragma solidity>=0.5.0;


  import'uniswap/v2-core/contracts/interfaces/IUniswapV2Pair.sol';


  import"./SafeMath.sol";


  library UniswapV2Library{


  using SafeMath for uint;


  //returns sorted token addresses,used to handle return values from pairs sorted in this order


  //


  function sortTokens(address tokenA,address tokenB)internal pure returns(address token0,address token1){


  require(tokenA!=tokenB,'UniswapV2Library:IDENTICAL_ADDRESSES');


  (token0,token1)=tokenA<tokenB?(tokenA,tokenB):(tokenB,tokenA);


  require(token0!=address(0),'UniswapV2Library:ZERO_ADDRESS');


  }


  //calculates the CREATE2 address for a pair without making any external calls


  //在不進行任何外部呼叫的情況下計算一對的CREATE2地址


  function pairFor(address factory,address tokenA,address tokenB)internal pure returns(address pair){


  (address token0,address token1)=sortTokens(tokenA,tokenB);


  pair=address(uint(keccak256(abi.encodePacked(


  hex'ff',


  factory,


  keccak256(abi.encodePacked(token0,token1)),


  hex'96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f'//init code hash


  ))));


  }


  //fetches and sorts the reserves for a pair


  //獲取並排序一對的儲備


  function getReserves(address factory,address tokenA,address tokenB)internal view returns(uint reserveA,uint reserveB){


  (address token0,)=sortTokens(tokenA,tokenB);


  (uint reserve0,uint reserve1,)=IUniswapV2Pair(pairFor(factory,tokenA,tokenB)).getReserves();


  (reserveA,reserveB)=tokenA==token0?(reserve0,reserve1):(reserve1,reserve0);


  }


  //given some amount of an asset and pair reserves,returns an equivalent amount of the other asset


  //給定一定數量的資產和配對準備金,返回等量的其他資產


  //BB/AA=B/A-->BB=AA*(B/A)


  function quote(uint amountA,uint reserveA,uint reserveB)internal pure returns(uint amountB){


  require(amountA>0,'UniswapV2Library:INSUFFICIENT_AMOUNT');


  require(reserveA>0&&reserveB>0,'UniswapV2Library:INSUFFICIENT_LIQUIDITY');


  amountB=amountA.mul(reserveB)/reserveA;


  }


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69956839/viewspace-2937011/,如需轉載,請註明出處,否則將追究法律責任。

相關文章