阿凡達泰山眾籌開發系統丨阿凡達泰山眾籌系統開發(詳情版)丨阿凡達泰山眾籌原始碼開發

xiaofufu發表於2023-02-22

  瞭解了線上電商和線下購物的短板,線上線下結合是新的銷售通路,而這個新的銷售通路就是新零售模式。在網際網路工具快速發展的時期,要以網際網路為依託,透過運用大資料、人工智慧等先進技術手段,對商品的生產、流通與銷售過程進行升級改造,進而重塑業態結構與生態圈,並對線上服務、線下體驗以及現代物流進行深度融合,一是讓商家生產消費者喜歡的商品,二是讓消費者更容易找到自己喜歡的商品,實現線上考察、線下體驗,線上線下購買。商家和消費者更有效的連結就是新零售模式。


  ERC20約定了一個代幣合約需要實現的介面:


  //介面標準


  contract ERC20{


  function totalSupply()constant returns(uint totalSupply);//總髮行量


  function balanceOf(address _owner)constant returns(uint balance);


  //代幣分發(注意,這個只有合約的Creator可以呼叫)I35 Develop 7O98 software O7I8


  function transfer(address _to,uint _value)returns(bool success);


  //這裡是擁有者和擁有者之間的代幣轉移


  function transferFrom(address _from,address _to,uint _value)returns(bool success);


  function approve(address _spender,uint _value)returns(bool success);


  function allowance(address _owner,address _spender)constant returns(uint remaining);


  event Transfer(address indexed _from,address indexed _to,uint _value);


  event Approval(address indexed _owner,address indexed _spender,uint _value);


  //Token資訊


  string public constant name="4FunCoin";


  string public constant symbol="4FC";


  uint8 public constant decimals=18;//token的精度,大部分都是18


  }


  上面的程式碼是一個標準的ERC20標準的程式碼,規範給出了框架,我們只需要實現相應的函式就好了,這裡給出函式說明。


  介面函式說明


  函式的形參是區域性有效,所以前面使用下劃線,與其他的變數區別開來.如_owner.


  totalSupply()函式返回這個Token的總髮行量;


  balanceOf()查詢某個地址的Token數量,結合mapping實現


  transfer()owner使用這個進行傳送代幣


  transferFrom()token的所有者用來傳送token


  allowance()控制代幣的交易,如可交易賬號及資產,控制Token的流通


  approve()允許使用者可花費的代幣數;


  事件函式說明


  這裡兩個Event是重點,事件,可以被前端js程式碼捕獲到並進行相應的處理:


  event Transfer()Token的轉賬事件


  event Approval()允許事件


  ERC20代幣合約實現


  理解了上面的函式,下面的程式碼,就實現了Token合約的函式填充


  pragma solidity^0.4.16;


  interface tokenRecipient{function receiveApproval(address _from,uint256 _value,address _token,bytes _extraData)public;}//token的接受者這裡宣告介面,將會在我們的ABI裡


  contract TokenERC20{


  /*********Token的屬性說明************/


  string public name=4FunCoin;


  string public symbol=4FC;


  uint8 public decimals=18;//18是建議的預設值


  uint256 public totalSupply;//發行量


  //建立對映地址對應了uint'便是他的餘額


  mapping(address=>uint256)public balanceOf;


  //地址對應餘額


  mapping(address=>mapping(address=>uint256))public allowance;


  //事件,用來通知客戶端Token交易發生


  event Transfer(address indexed from,address indexed to,uint256 value);


  //事件,用來通知客戶端代幣被消耗(這裡就不是轉移,是token用了就沒了)


  event Burn(address indexed from,uint256 value);


  //這裡是建構函式,例項建立時候執行


  function TokenERC20(uint256 initialSupply,string tokenName,string tokenSymbol)public{


  totalSupply=initialSupply*10**uint256(decimals);//這裡確定了總髮行量


  balanceOf[msg.sender]=totalSupply;//這裡就比較重要,這裡相當於實現了,把token全部給合約的Creator


  name=tokenName;


  symbol=tokenSymbol;


  }


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

相關文章