DAO去中心化流動性質押挖礦分紅系統開發(開發案例)丨技術分析

xiaofufu發表於2023-03-15

  tokenToEthSwapInput和tokenToEthTransferInput都呼叫了函式tokenToEthInput進行ETH的兌換,區別是ETH的接收者不同,tokenToEthSwapOutput和tokenToEthTransferOutput的結構與前兩者類似,不同的是輸入換成了eth_bought,也就是想要兌換的ETH的目標數量,並且呼叫的函式是tokenToEthOutput。


  因此接下來我們需要分析tokenToEthInput和tokenToEthOutput。


  

  private


  def tokenToEthInput(tokens_sold:uint256,min_eth:uint256(wei),deadline:timestamp,buyer:address,recipient:address)->uint256(wei):


  #判斷輸入資料的合理性,且當前時間還沒超過限定的時間戳


  assert deadline>=block.timestamp and(tokens_sold>0 and min_eth>0)


  #獲取當前兌換合約對應代幣的儲備量


關於區塊鏈專案技術開發唯:MrsFu123,代幣發行、dapp智慧合約開發、鏈遊開發、多鏈錢包開發


  交易所開發、量化合約開發、互助遊戲開發、Nft數字藏品開發、眾籌互助開發、元宇宙開發、swap開發、


  鏈上合約開發、ido開發、商城開發等,開發過各種各樣的系統模式,更有多種模式、制度、案例、後臺等,成熟技術團隊,歡迎實體參考。




  token_reserve:uint256=self.token.balanceOf(self)


  #呼叫getInputPrice函式獲取可以兌換到的eth數量(as_unitless_number用於去除wei單位)


  eth_bought:uint256=self.getInputPrice(tokens_sold,token_reserve,as_unitless_number(self.balance))


  #呼叫as_wei_value函式將單位轉換成wei


  wei_bought:uint256(wei)=as_wei_value(eth_bought,'wei')


  assert wei_bought>=min_eth#兌換的eth不能低於設定最小值


  send(recipient,wei_bought)#呼叫send函式向recipient轉移兌換得到的eth


  #呼叫代幣合約的transferFrom函式從購買者收取應當支付的代幣


  assert self.token.transferFrom(buyer,self,tokens_sold)


  log.EthPurchase(buyer,tokens_sold,wei_bought)#日誌


  return wei_bought


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

相關文章