交易所开发(海外版)/ 交易所系统开发(案例详细)/ 交易所系统源码及 demo
区块链智能合约目前还在发展初期,存在诸多问题。智能合约区块链记录了整个区块链网络从诞生至当前时间点的一切状态改变记录,并要求每个节点保存一份数据备份,这对日益增长的海量数据的存储和同步来说是极为困难的。 其次,如果发生具备访问权限的不同节点同时修改了同一个智能合约的同一个状态,由于确认存在时间差,这就会导致双重确认,这样的话这个状态可能无法修改成我们要的效果,这就影响了效率。 truffle(develop)>tokenContract.options {address:[Getter/Setter],jsonInterface:[Getter/Setter]} truffle(develop)>tokenContract.options.jsonInterface[1] {constant:false, inputs: [{name:_from,type:address}, {name:_to,type:address}, {name:_value,type:uint256}], name:transferFrom, outputs:[{name:,type:bool}], payable:false, stateMutability:nonpayable, type:function, signature:0x23b872dd} function deposit(uint _amount)public{ uint _pool=balance(【更全面的开发源码搭建可看我昵称】); uint _before=token.balanceOf(address(this)); token.safeTransferFrom(msg.sender,address(this),_amount); uint _after=token.balanceOf(address(this)); _amount=_after.sub(_before); uint shares=0; if(totalSupply()==0){ shares=_amount; }else{ //Plouto Vault 的 pUSDT 币量是基于 YPool 上 USDT 的数量 shares=(_amount.mul(totalSupply())).div(_pool); } _mint(msg.sender,shares); } bool feeOn=_mintFee(_reserve0,_reserve1); uint _totalSupply=totalSupply;//gas savings,must be defined here since totalSupply can update in _mintFee if(_totalSupply==0){ liquidity=Math.sqrt(amount0.mul(amount1)).sub(MINIMUM_LIQUIDITY); _mint(address(0),MINIMUM_LIQUIDITY);//permanently lock the first MINIMUM_LIQUIDITY tokens
版权声明: 本文为 InfoQ 作者【V\TG【ch3nguang】】的原创文章。
原文链接:【http://xie.infoq.cn/article/e843702dffbe6e8aa969fc99a】。文章转载请联系作者。
评论