數字貨幣交易所開發(案例)丨數字貨幣交易所繫統開發(JAVA/PHP開發)及原始碼
拆分後的交易計算
交易是否能夠結束的關鍵計算在SwapMath.computeSwapStep中完成,這裡計算了交易是否能在目標價格範圍內結束,以及消耗的tokenIn和得到的tokenOut.這裡摘取此函式部分程式碼進行分析(這裡僅摘取exactIn時的程式碼):
function computeSwapStep(
uint160 sqrtRatioCurrentX96,
uint160 sqrtRatioTargetX96,
uint128 liquidity,
int256 amountRemaining,
uint24 feePips
)
internal
pure
returns(
uint160 sqrtRatioNextX96,
uint256 amountIn,
uint256 amountOut,
uint256 feeAmount
)
{
//判斷交易的方向,即價格降低或升高
bool zeroForOne=sqrtRatioCurrentX96>=sqrtRatioTargetX96;
//判斷是否指定了精確的tokenIn數量
bool exactIn=amountRemaining>=0;
...
if(exactIn){
//先將tokenIn的餘額扣除掉最大所需的手續費
uint256 amountRemainingLessFee=FullMath.mulDiv(uint256(amountRemaining),1e6-feePips,1e6);
//透過公式計算出到達目標價所需要的tokenIn數量,這裡對x token和y token計算的公式是不一樣的
amountIn=zeroForOne
?SqrtPriceMath.getAmount0Delta(sqrtRatioTargetX96,sqrtRatioCurrentX96,liquidity,true)
:SqrtPriceMath.getAmount1Delta(sqrtRatioCurrentX96,sqrtRatioTargetX96,liquidity,true);
//判斷餘額是否充足,如果充足,那麼這次交易可以到達目標交易價格,否則需要計算出當前tokenIn能到達的目標交易價
if(amountRemainingLessFee>=amountIn)sqrtRatioNextX96=sqrtRatioTargetX96;
else
//當餘額不充足的時候計算能夠到達的目標交易價
sqrtRatioNextX96=SqrtPriceMath.getNextSqrtPriceFromInput(
sqrtRatioCurrentX96,
liquidity,
amountRemainingLessFee,
zeroForOne
);
}else{
...
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69956839/viewspace-2936859/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 數字貨幣交易所開發方案丨數字貨幣交易所繫統開發(正式版)丨數字貨幣交易所開發原始碼原始碼
- 數字貨幣交易所開發正式版丨數字貨幣交易所繫統開發(開發詳情)及案例原始碼原始碼
- 數字貨幣交易所開發詳情丨數字貨幣交易所繫統開發(詳細及邏輯)丨數字貨幣交易所原始碼原始碼
- 數字貨幣交易所開發(海外版)丨數字貨幣交易所繫統開發(swap交易所開發案例)
- 數字貨幣交易所繫統開發(海外版)丨數字貨幣交易所開發(原始碼版)原始碼
- 數字貨幣交易所錢包系統開發(開發說明)丨數字貨幣錢包交易所繫統開發(原始碼詳細)原始碼
- 現貨期權期貨數字貨幣秒合約交易所繫統開發(開發案例及原始碼)原始碼
- 數字貨幣交易所APP開發原始碼案例分析APP原始碼
- 數字資產貨幣交易所繫統組成 | 數字資產貨幣交易所繫統開發解決方案
- 數字貨幣交易所繫統技術開發方案
- 多幣種錢包系統開發,數字貨幣交易所繫統開發
- 深圳數字區塊鏈交易所繫統軟體開發,數字貨幣交易所開發區塊鏈
- 數字貨幣交易所繫統開發,去中化交易系統開發
- 數字資產BTC幣幣交易所開發期貨槓桿交易所開發
- 免費開源數字貨幣交易所、免費開源數字貨幣交易系統、Java開源數字貨幣交易所 、Java開源數字貨幣交易系統Java
- 數字貨幣場外交易所開發
- 數字貨幣交易所繫統開發技術原始碼丨區塊鏈去中心化交易所繫統開發(成熟技術)原始碼區塊鏈中心化
- 數字貨幣交易所開發解決方案
- 數字貨幣合約量化系統開發(案例詳細)丨數字貨幣合約量化成熟原始碼開發原始碼
- 深入分析:海外版數字貨幣交易所繫統開發(多語言)及案例原始碼原始碼
- 數字貨幣swap去中心化博餅交易所繫統開發/(成熟原始碼)中心化原始碼
- 數字貨幣交易系統開發、數字貨幣交易平臺開發、 虛擬數字貨幣交易平臺開發、區塊鏈數字貨幣交易系統開發區塊鏈
- 數字貨幣交易所開發方案,場外幣幣交易平臺搭建原始碼原始碼
- 數字貨幣交易所開發_源中瑞虛擬幣開發技術
- 數字資產法幣交易所開發幣幣交易系統開發
- 數字貨幣交易所開發,區塊鏈軟體開發公司區塊鏈
- 數字貨幣去中心化交易所繫統開發|原始碼搭建|案例詳情|專案測試中心化原始碼
- 深圳數字貨幣交易系統原始碼開發,區塊鏈虛擬幣交易所搭建原始碼區塊鏈
- 區塊鏈幣幣撮合交易所開發數字資產法幣交易所開發區塊鏈
- 區塊鏈應用開發方案|數字貨幣交易所繫統開發(架構設計與原始碼演示)區塊鏈架構原始碼
- 數字貨幣量化合約/合約量化系統開發(開發策略)及案例原始碼原始碼
- 數字貨幣期貨合約交易系統開發,自動對衝量化交易所開發
- 幣圈數字貨幣現貨合約秒合約交易所繫統開發功能模式分析介紹模式
- 數字貨幣交易系統開發 數字貨幣交易軟體搭建
- 數字資產幣幣|場外|期貨合約交易所軟體開發
- 現貨期權期貨交易所開發(詳情)丨現貨期權期貨交易所繫統開發(PHP/JAVA開發)PHPJava
- 免費數字貨幣交易系統、java免費數字貨幣交易系統、免費數字資產交易系統、數字貨幣交易所開源Java
- 現貨期權交易所開發案例原始碼丨現貨期權交易所繫統開發(海外版)原始碼