普瑞緹Protradex系統開發/DAPP合約鏈上/質押挖礦分紅/案例詳細/詳情規則/原始碼版
區塊鏈技術一般用於構建交易系統,而且要保證交易的資訊真實可信,可追蹤且不可篡改。
每一次交易的資訊被確認後儲存在一個區塊中,區塊資訊透過雜湊技術加密,以保證資訊不被篡改。這些區塊按時間順序構成鏈條。
每個節點都保有完整的區塊鏈資訊,I35開閥7O98案例O7I8 個別節點的資訊損壞,不會對區塊鏈資訊產生影響。這種資訊記錄方式被稱作分散式賬本。
區塊鏈技術就是一種資料庫技術,V++++mrsfu123 每個區塊就像一個硬碟,把資訊全部儲存下來,再透過密碼學技術進行加密,這些被儲存起來的資料是不能被篡改的。
區塊鏈是一種特殊的分散式資料庫,任何伺服器都可以成為區塊鏈中的一個節點,且節點之間是平等的,無中心化,區塊鏈中的資料是經過加密儲存,已經儲存的資料無法修改,可以保證資料的準確性。
將代幣path[0],轉入到交易對,數量為amounts[0]。轉入代幣後,進行真正的swap操作:
function _swap(uint[]memory amounts,address[]memory path,address _to)internal virtual{
for(uint i;i<path.length-1;i++){
(address input,address output)=(path<i>,path[i+1]);
(address token0,)=UniswapV2Library.sortTokens(input,output);
uint amountOut=amounts[i+1];
(uint amount0Out,uint amount1Out)=input==token0?(uint(0),amountOut):(amountOut,uint(0));
address to=i<path.length-2?UniswapV2Library.pairFor(factory,output,path[i+2]):_to;
IUniswapV2Pair(UniswapV2Library.pairFor(factory,input,output)).swap(
amount0Out,amount1Out,to,new bytes(0)
);
}
}
原理比較簡單,針對每一條路徑,呼叫交易對的swap操作。
Core邏輯
Core邏輯實現了單個交易對的邏輯。透過UniswapV2Factory可以建立一個個Pair(交易池)。每個具體實現邏輯在UniswapV2Pair中。
mint
每個交易對建立流動性。
function mint(address to)external lock returns(uint liquidity){
因為在呼叫mint函式之前,在addLiquidity函式已經完成了轉賬,所以,從這個函式的角度,兩種代幣數量的計算方式如下:
uint balance0=IERC20(token0).balanceOf(address(this));
uint balance1=IERC20(token1).balanceOf(address(this));
uint amount0=balance0.sub(_reserve0);
uint amount1=balance1.sub(_reserve1);
當前的balance是當前的reserve加上注入的流動性的代幣數量。
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
}else{
liquidity=Math.min(amount0.mul(_totalSupply)/_reserve0,amount1.mul(_totalSupply)/_reserve1);
}
_mint(to,liquidity);
流動性liquidity的計算方式在第一次提供流動性時和其他時候稍稍不同。第一次提供流動性的計算公式如下:
liquidity=sqrt(x0*y0)-min
其中min是10^3。也就是說,第一次提供流動性是有最小流動性要求的。其他提供流動性的計算公式如下:
liquidity=min((x0/reserve0totalsupply),(y0/reserve1totalsupply))
也就說,按照注入的流動性和當前的reserve的佔比一致。
burn
burn函式用在抽取流動性。burn邏輯和mint邏輯類似。
function burn(address to)external lock returns(uint amount0,uint amount1){
3.swap
swap函式實現兩種代幣的兌換。
function swap(uint amount0Out,uint amount1Out,address to,bytes calldata data)external lock{
一個交易池的swap操作支援兩個方向的兌換,可以從TokenA換到TokenB,或者TokenB換到TokenA。
if(amount0Out>0)_safeTransfer(_token0,to,amount0Out);//optimistically transfer tokens
if(amount1Out>0)_safeTransfer(_token1,to,amount1Out);//optimistically transfer tokens
因為在swapExactTokensForTokens的getAmountOut函式已經確定兌換處的金額。所以,先直接轉賬。
在不做swap之前,balance應該和reserve相等的。透過balance和reserve的差值,可以反推出輸入的代幣數量:
uint amount0In=balance0>_reserve0-amount0Out?balance0-(_reserve0-amount0Out):0;
uint amount1In=balance1>_reserve1-amount1Out?balance1-(_reserve1-amount1Out):0;
確保反推的輸入代幣數量不小於零。
require(amount0In>0||amount1In>0,‘UniswapV2:INSUFFICIENT_INPUT_AMOUNT’);
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69956839/viewspace-2953228/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ProTradex普瑞緹/流動性質押挖礦/智慧合約開發/案例詳細/方案規則/原始碼說明原始碼
- ProTradex普瑞緹智慧合約流動性質押挖礦分紅系統開發(開發詳細)丨成熟原始碼原始碼
- ProTradex普瑞緹PRT質押系統開發/ProTradex普瑞緹智慧合約案例搭建
- 普瑞緹Protradex合約鏈上分紅系統開發
- 普瑞緹ProTradex質押挖礦模式軟體開發詳情方案模式
- dapp/lp/defi代幣合約質押挖礦分紅系統開發詳細及規則丨原始碼案例APP原始碼
- ProTradex普瑞緹PRT質押挖礦系統開發技術詳細丨穩定版
- ProTradex(PRT普瑞緹)流動性質押挖礦分紅系統開發(開發邏輯)丨案例原始碼原始碼
- ProTradex(PRT)普瑞緹挖礦系統開發詳情技術
- DAPP 智慧合約NFT鏈上質押挖礦系統開發詳情APP
- DAPP鏈上合約質押挖礦分紅開發原理丨DAPP鏈上合約質押挖礦分紅系統開發邏輯及方案APP
- BSC智慧鏈DAPP質押挖礦分紅系統開發詳情APP
- DAPP/LP代幣合約流動性質押挖礦分紅系統開發(規則及詳細)原始碼部署APP原始碼
- DAPP鏈遊質押挖礦開發詳情丨DAPP鏈遊流動性質押挖礦分紅系統開發成熟案例及原始碼部署APP原始碼
- IDO/DAPP代幣合約質押挖礦分紅系統開發(詳情方案)APP
- Solidity技術丨PRT普瑞緹ProTradex系統技術開發丨質押挖礦開發詳情Solid
- DAPP智慧合約理財質押挖礦分紅系統開發詳細需求及原始碼部署APP原始碼
- PtahDao普塔道/ProTradex普瑞緹流動性質押挖礦系統開發玩法及規則丨原始碼功能原始碼
- DAPP智慧合約代幣質押流動性挖礦分紅系統開發原始碼丨(詳細及案例)APP原始碼
- DAPP智慧合約LP流動性質押挖礦分紅系統開發詳細及功能丨原始碼案例APP原始碼
- 索拉迪SolaRoad/質押挖礦/算力挖礦分紅/合約開發/玩法規則/詳細邏輯/原始碼案例原始碼
- DAPP質押挖礦分紅系統開發|DAPP合約APP
- protradex普瑞緹鏈上挖礦系統開發技術方案
- 普瑞緹PRT質押分紅系統DAPP開發搭建APP
- 普瑞緹PRT質押合約幣挖礦系統開發技術
- dapp/defi/lp流動性質押挖礦分紅系統開發(開發規則)丨詳細及原始碼APP原始碼
- DAPP智慧合約LP質押分紅系統開發原始碼詳情方案APP原始碼
- 質押挖礦dapp系統開發詳情(原始碼搭建)現成案例APP原始碼
- 能合約DAPP鏈上質押挖礦分紅系統開發實現技術案例APP
- PAXG流動性質押挖礦節點/算力挖礦/礦池分紅/系統開發/規則詳情/案例原始碼原始碼
- ULAB質押挖礦系統技術開發丨Defi質押挖礦dapp丨質押挖礦分紅詳情APP
- BSC鏈代幣合約質押挖礦分紅模式系統開發詳情丨 DApp 技術棧模式APP
- swp質押挖礦dapp系統開發詳情(原始碼搭建)APP原始碼
- DApp錢包OP鏈智慧合約質押挖礦系統開發(原始碼)技術詳情搭建APP原始碼
- LP丨DAPP智慧合約質押挖礦分紅系統開發詳細方案及邏輯APP
- dapp鏈上挖礦系統開發|規則詳情|方案模式APP模式
- DAPP眾籌互助質押挖礦分紅系統開發(開發規則)丨DAPP眾籌互助挖礦分紅原始碼APP原始碼
- IPPswap孵化器/質押挖礦/算力分紅/系統開發/案例詳細/規則玩法/原始碼說明原始碼