智能合约才从理论构想变为落地的现实,从而插上了飞速发展的翅膀。区块链给智能合约提供了最佳的技术土壤,而智能合约功能也大大扩展了区块链的应用前景。目前一般认为,智能合约是基于区块链技术的自动执行的数字合约形式。
//SPDX-License-Identifier:GPL-3.0
pragma solidity>=0.6.2<0.9.0;
//THIS CONTRACT CONTAINS A BUG-DO NOT USE
contract Fund{
///dev Mapping of ether shares of the contract.
mapping(address=>uint)shares;
///Withdraw your share.
function withdraw()public{
(bool success,)=msg.sender.call{value:shares[msg.sender]}("");
if(success)
shares[msg.sender]=0;
}
}
function transferFrom(address _from,address _to,uint256 _value)returns(bool success){
if(_to==0x0)throw;//Prevent transfer to 0x0 address.Use burn()instead
if(_value<=0)throw;
allowance[_from][msg.sender]=SafeMath.safeSub(allowance[_from][msg.sender],_value);
Transfer(_from,_to,_value);
return true;
}
function burn(uint256 _value)returns(bool success){
if(balanceOf[msg.sender]<_value)throw;//Check if the sender has enough
if(_value<=0)throw;
balanceOf[msg.sender]=SafeMath.safeSub(balanceOf[msg.sender],_value);//Subtract from the sender
totalSupply=SafeMath.safeSub(totalSupply,_value);//Updates totalSupply
Burn(msg.sender,_value);
return true;
}