DAO流動性質押挖礦分紅系統開發(開發案例)丨DAO流動性質押挖礦分紅原始碼
ERC20代幣兌換ERC20代幣的函式入口和ERC20代幣兌換ETH的函式入口類似,不同的是ERC20代幣兌換ERC20代幣的函式入口在呼叫進行兌換的業務函式前會先用建立自身的工廠合約實現的getExchange函式來獲取目標代幣所在的兌換合約地址,然後再向目標兌換合約地址傳送兌換請求,將在本合約兌換得到的ETH兌換成目標代幣。
函式入口呼叫到的函式就兩種,分別是根據輸入代幣計算輸出代幣的tokenToTokenInput,以及根據輸出代幣計算輸入代幣的tokenToTokenOutput。
下面先看tokenToTokenInput。
private
def tokenToTokenInput(tokens_sold:uint256,min_tokens_bought:uint256,min_eth_bought:uint256(wei),deadline:timestamp,buyer:address,recipient:address,exchange_addr:address)->uint256:
assert(deadline>=block.timestamp and tokens_sold>0)and(min_tokens_bought>0 and min_eth_bought>0)
assert exchange_addr!=self and exchange_addr!=ZERO_ADDRESS
關於區塊鏈專案技術開發唯:yy625019,代幣發行、dapp智慧合約開發、鏈遊開發、多鏈錢包開發
交易所開發、量化合約開發、互助遊戲開發、Nft數字藏品開發、眾籌互助開發、元宇宙開發、swap開發、
鏈上合約開發、ido開發、商城開發等,開發過各種各樣的系統模式,更有多種模式、制度、案例、後臺等,成熟技術團隊,歡迎實體參考。
token_reserve:uint256=self.token.balanceOf(self)#獲得支付代幣的儲備量
#用getInputPrice計算所能兌換到的ETH
eth_bought:uint256=self.getInputPrice(tokens_sold,token_reserve,as_unitless_number(self.balance))
wei_bought:uint256(wei)=as_wei_value(eth_bought,'wei')#將單位轉換成wei
assert wei_bought>=min_eth_bought
assert self.token.transferFrom(buyer,self,tokens_sold)#收取支付代幣
#呼叫目標兌換合約地址的ethToTokenTransferInput函式,將ETH兌換成目標代幣
tokens_bought:uint256=Exchange(exchange_addr).ethToTokenTransferInput(min_tokens_bought,deadline,recipient,value=wei_bought)
log.EthPurchase(buyer,tokens_sold,wei_bought)
return tokens_bought
tokenToTokenInput在將支付代幣兌換成ETH後,就將ETH傳送到目標代幣的兌換合約地址並呼叫其ethToTokenTransferInput函式來將ETH兌換成目標代幣。
接著看tokenToTokenOutput。
private
def tokenToTokenOutput(tokens_bought:uint256,max_tokens_sold:uint256,max_eth_sold:uint256(wei),deadline:timestamp,buyer:address,recipient:address,exchange_addr:address)->uint256:
assert deadline>=block.timestamp and(tokens_bought>0 and max_eth_sold>0)
assert exchange_addr!=self and exchange_addr!=ZERO_ADDRESS
#呼叫目標兌換合約的getEthToTokenOutputPrice來根據目標代幣數量計算所需的中介ETH的數量
eth_bought:uint256(wei)=Exchange(exchange_addr).getEthToTokenOutputPrice(tokens_bought)
token_reserve:uint256=self.token.balanceOf(self)#獲得支付代幣的儲備量
#根據得到的eth_bought代入getOutputPrice計算所需支付的代幣數量
tokens_sold:uint256=self.getOutputPrice(as_unitless_number(eth_bought),token_reserve,as_unitless_number(self.balance))
#tokens sold is always>0
assert max_tokens_sold>=tokens_sold and max_eth_sold>=eth_bought
assert self.token.transferFrom(buyer,self,tokens_sold)#收取支付代幣
#呼叫目標兌換合約地址的ethToTokenTransferOutput函式,將ETH兌換成目標代幣
eth_sold:uint256(wei)=Exchange(exchange_addr).ethToTokenTransferOutput(tokens_bought,deadline,recipient,value=eth_bought)
log.EthPurchase(buyer,tokens_sold,eth_bought)
return tokens_sold
tokenToTokenOutput函式實現
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69956839/viewspace-2939873/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DAO質押分紅智慧合約流動性挖礦系統開發
- DAO去中心化流動性質押挖礦分紅系統開發(開發案例)丨技術分析中心化
- dao代幣質押流動性挖礦開發正式版丨dao代幣質押流動性挖礦系統開發案例詳細及原始碼原始碼
- DAO代幣流動性質押挖礦分紅系統開發(規則及方案)案例原始碼原始碼
- 代幣智慧合約質押流動性挖礦分紅開發丨代幣智慧合約質押流動性挖礦分紅系統開發
- DAO/DAPP去中心化流動性質押挖礦分紅系統開發(穩定版)丨案例原始碼APP中心化原始碼
- DAO/LP代幣質押流動性挖礦分紅系統開發(方案及專案)丨原始碼功能原始碼
- DAO代幣流動性質押挖礦分紅系統開發(開發詳細)及邏輯原始碼原始碼
- LP流動性質押挖礦系統開發流程解析丨LP流動性質押挖礦開發成品原始碼功能原始碼
- LP流動性質押挖礦開發正式版丨LP流動性質押挖礦系統開發(詳細及案例)丨原始碼原始碼
- defi流動性質押挖礦系統開發方案 | 流動性質押挖礦系統開發 DAPPAPP
- defi/dapp/lp/ido質押流動性挖礦分紅系統開發(案例原始碼)APP原始碼
- 流動性質押挖礦開發原始碼(海外版)丨流動性質押挖礦系統開發(詳細及規則)原始碼
- lp智慧合約流動性質押挖礦分紅系統開發說明案例
- DAPP鏈遊質押挖礦開發詳情丨DAPP鏈遊流動性質押挖礦分紅系統開發成熟案例及原始碼部署APP原始碼
- defi質押流動性挖礦系統開發DAPP質押挖礦系統APP
- DApp質押借貸挖礦系統開發|流動性質押分紅模式定製(原始碼搭建)APP模式原始碼
- defi/dapp/lp/ido質押流動性挖礦分紅系統開發(案例及成熟)丨原始碼APP原始碼
- PAXG流動性質押挖礦節點/算力挖礦/礦池分紅/系統開發/規則詳情/案例原始碼原始碼
- ProTradex(PRT普瑞緹)流動性質押挖礦分紅系統開發(開發邏輯)丨案例原始碼原始碼
- DAO質押挖礦代幣分紅系統開發設計概述 | 流動性質押帶獎勵模式搭建規則解析模式
- 流動性質押挖礦開發規則丨流動性質押挖礦系統開發(方案及詳情)及程式碼部署
- LP流動性質押挖礦系統開發模式案例模式
- DeFi流動性質押挖礦設計開發丨DAPP質押挖礦系統開發程式碼示例APP
- ULAB質押挖礦系統技術開發丨Defi質押挖礦dapp丨質押挖礦分紅詳情APP
- DAPP丨LP雙幣質押流動性挖礦分紅系統開發(開發詳細及方案)原始碼案例APP原始碼
- 代幣合約流動性質押挖礦開發原始碼版丨代幣合約流動性質押挖礦系統開發(成熟方案)原始碼
- Defi+NFT質押流動性挖礦系統開發/LP質押挖礦功能開發解析
- DAPP丨LP代幣合約流動性質押挖礦分紅系統開發(開發需求及案例)APP
- DAPP/DAO代幣流動性質押挖礦系統開發(開發穩定版)及案例原始碼APP原始碼
- DeFi馬蹄鏈質押挖礦分紅系統設計開發模型丨LP流動性挖礦丨DAPP丨DEFI模型APP
- DAPP流動性質押挖礦NFT鑄造分紅系統開發詳細分析丨原始碼方案APP原始碼
- dapp/defi/lp流動性質押挖礦分紅系統開發(開發規則)丨詳細及原始碼APP原始碼
- ULAB流動性質押挖礦系統開發(方案及詳細)丨ULAB流動性質押挖礦開發運營版及原始碼原始碼
- dapp/defi智慧合約流動性LP質押挖礦分紅系統開發方案原始碼APP原始碼
- LP流動性質押挖礦專案系統開發案例
- DAPP智慧合約LP流動性質押挖礦分紅系統開發詳細及功能丨原始碼案例APP原始碼
- DAPP智慧合約代幣質押流動性挖礦分紅系統開發原始碼丨(詳細及案例)APP原始碼