區塊鏈交易所繫統開發(海外版)丨區塊鏈交易所繫統開發(開發案例及原始碼)
交易預計算
當使用者和 uniswap 前端進行互動時,前端需要預先計算出使用者輸入 token 能夠預期得到的 token 數量。
這個功能在 uniswap v2 有非常簡單的實現,只需要查詢處合約中兩個代幣的餘額就可以完成預計算。
但是在 v3 版本中,由於交易的計算需要使用合約內的 tick 資訊,預計算只能由 uniswap v3 pool 合約來完成,但是 pool 合約中的計算函式都是會更改合約狀態的 external 函式,那麼如何把這個函式當作 view/pure 函式來使用呢?uniswap v3 periphery 倉庫中給出了一個非常 tricky 的實現,程式碼在 contracts/lens/Quoter.sol 中:
function quoteExactInputSingle(
address tokenIn,
address tokenOut,
uint24 fee,
uint256 amountIn,
uint160 sqrtPriceLimitX96
) public override returns (uint256 amountOut) {
bool zeroForOne = tokenIn < tokenOut;
try
getPool(tokenIn, tokenOut, fee).swap( // 呼叫 pool 合約的 swap 介面來模擬一次真實的交易
address(this), // address(0) might cause issues with some tokens
zeroForOne,
amountIn.toInt256(),
sqrtPriceLimitX96 == 0
? (zeroForOne ? TickMath.MIN_SQRT_RATIO + 1 : TickMath.MAX_SQRT_RATIO - 1)
: sqrtPriceLimitX96,
abi.encodePacked(tokenIn, fee, tokenOut)
)
{} catch (bytes memory reason) {
return parseRevertReason(reason);
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69956839/viewspace-2936921/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 上海區塊鏈系統開發/區塊鏈交易所繫統開發區塊鏈
- 區塊鏈交易所開發運營版丨區塊鏈交易所繫統開發(詳細案例)及邏輯方案丨原始碼區塊鏈原始碼
- 區塊鏈交易所繫統開發方案區塊鏈
- 促進區塊鏈交易所繫統開發技術概念丨區塊鏈交易所原始碼系統開發部署方案區塊鏈原始碼
- 區塊鏈交易所繫統開發技術搭建區塊鏈
- 區塊鏈交易所開發公司 | 交易所繫統開發搭建上線區塊鏈
- 區塊鏈交易所繫統開發搭建原理介紹區塊鏈
- 數字貨幣交易所繫統開發技術原始碼丨區塊鏈去中心化交易所繫統開發(成熟技術)原始碼區塊鏈中心化
- 交易所開發(海外版)丨交易所繫統開發(Python)丨 交易所繫統原始碼功能Python原始碼
- 交易所開發(海外版)/交易所繫統開發(案例詳細)/交易所繫統原始碼及demo原始碼
- 區塊鏈交易所開發,公鏈系統開發區塊鏈
- 區塊鏈合約交易所繫統開發,量化交易系統定製開發區塊鏈
- about區塊鏈交易所繫統開發講解(技術方案)區塊鏈
- 如何搭建區塊鏈交易所?交易所繫統開發搭建注意事項區塊鏈
- DAPP區塊鏈商城開發(多語言)丨DAPP區塊鏈商城系統開發(海外版)及案例原始碼APP區塊鏈原始碼
- 區塊鏈資產交易所開發區塊鏈應用系統研發區塊鏈
- 深圳數字區塊鏈交易所繫統軟體開發,數字貨幣交易所開發區塊鏈
- 區塊鏈技術開發 區塊鏈錢包交易所開發區塊鏈
- 深度解析:交易所繫統開發(海外版)交易所繫統開發(多語言)交易所開發(原始碼部署)原始碼
- 區塊鏈交易所開發跨鏈交易系統開發公鏈搭建區塊鏈
- 區塊鏈遊戲系統開發(Gamefi鏈遊開發案例)丨Gamefi鏈遊系統開發詳細及原始碼區塊鏈遊戲GAM原始碼
- 交易所開發(海外版)丨交易所繫統開發(Demo)交易所專案系統開發(原始碼定製)原始碼
- 區塊鏈交易所開發的組成部分 | 區塊鏈交易所開發模式系統搭建講解區塊鏈模式
- 交易所開發(海外版)丨交易所繫統開發(多語言)丨交易所成熟原始碼版原始碼
- 區塊鏈系統開發解決方案,交易所開發區塊鏈
- 交易所繫統丨交易所繫統開發(上線版)丨交易所開發詳細原始碼部署原始碼
- 淺談區塊鏈swap交易所繫統開發功能技術講解區塊鏈
- 區塊鏈投票系統開發方案,區塊鏈投票系統開發原始碼區塊鏈原始碼
- 區塊鏈交易所開發方案整理(原始碼示例)區塊鏈原始碼
- 交易所繫統開發(海外版)
- 現貨期權交易所開發案例原始碼丨現貨期權交易所繫統開發(海外版)原始碼
- 數字資產交易所開發區塊鏈公有鏈開發區塊鏈
- 區塊鏈交易所繫統軟體開發-使用的好處是什麼?區塊鏈
- 區塊鏈合約交易所繫統開發,量化交易軟體好不好區塊鏈
- 區塊鏈商城開發正式版丨區塊鏈商城系統開發技術原理丨區塊鏈商城原始碼平臺區塊鏈原始碼
- 區塊鏈數字藏品開發原理丨區塊鏈數字藏品系統開發(技術詳細)及原始碼案例區塊鏈原始碼
- 區塊鏈應用技術開發 區塊鏈數字資產交易所開發區塊鏈
- swap交易所繫統(原始碼)丨swap交易所繫統開發(去中心化交易所開發詳細)原始碼中心化