国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

給公眾號做頭像的網(wǎng)站北京百度關(guān)鍵詞優(yōu)化

給公眾號做頭像的網(wǎng)站,北京百度關(guān)鍵詞優(yōu)化,代理注冊公司代理費(fèi)多少錢,wordpress添加新的模板Uniswap是一個(gè)開源的去中心化的交易所,在github上面有以下重要倉庫: uniswap-v2-core: 幣對池pair的核心智能合約。這個(gè)repository包含了Uniswap的幣對池pair的所有核心邏輯,增加流動性、減少流動性等。uniswap-v2-periphery&…

Uniswap是一個(gè)開源的去中心化的交易所,在github上面有以下重要倉庫:

  • uniswap-v2-core: 幣對池pair的核心智能合約。這個(gè)repository包含了Uniswap的幣對池pair的所有核心邏輯,增加流動性、減少流動性等。
  • uniswap-v2-periphery:這個(gè)repository包含了Uniswap V3的所有周邊智能合約。這些合約提供了與核心合約交互的附加功能,例如多次跨路徑交易和非fungible流動性。
  • uniswap-interface:這是Uniswap的主要前端接口。它是一個(gè)開源的Web應(yīng)用程序,允許用戶直接與Uniswap協(xié)議進(jìn)行交互,可以直接用于做客戶端
  • uniswap-v3-sdk:這些開發(fā)工具包用于幫助開發(fā)者構(gòu)建自己的客戶端應(yīng)用程序,從而與 Uniswap 智能合約進(jìn)行交互。
  • uniswap-v3-subgraph:這是Uniswap V3的子圖項(xiàng)目,用于從以太坊區(qū)塊鏈上獲取和索引 Uniswap V3 的數(shù)據(jù)。開發(fā)者可以通過 GraphQL API 從子圖中查詢 Uniswap 的數(shù)據(jù),以便在自己的應(yīng)用程序中使用。

??

一、AMM交易機(jī)制

不同于傳統(tǒng)訂單薄的交易模式, uniswap交易使用的是恒定乘積公式的自動做市商模式。即交易前后,池子內(nèi)一對代幣的乘積保持不變。

? ?

?在uniswap v2中,每次會收取0.3%的手續(xù)費(fèi),即p = 0.003,這筆手續(xù)費(fèi)從交易者的x'中扣除分發(fā)給流動性提供者。因此,只有x' *(1-p)的A數(shù)量來兌換y'數(shù)量的B。剩下p * x'會作為手續(xù)費(fèi)被添加到池子中,此時(shí),上面的等式會變?yōu)?#xff1a;

二、 合約設(shè)計(jì)

  • RouterContract:路由合約,對外提供api的合約。主要包括注入流動性、移除流動性、兌換等
    • addLiqudity(token0, token1, amount0, amount1):幣對(token0和token1)的金額,進(jìn)過計(jì)算后,會轉(zhuǎn)入到pair的地址里; pair合約同時(shí)會計(jì)算出持有代幣,轉(zhuǎn)入到msg.sender地址里。
    • removeLiqudity(token0, token1, liqudity):先把msg.sender地址里的pair持有代幣,轉(zhuǎn)回給pair地址; 調(diào)用pair地址的burn方法,按token0、token1總量比例,得到各自的amount;把token0和token1的轉(zhuǎn)amount0和amount1到msg.sender地址
    • swapToken:  ?
  • UniswapV2Library:工具庫合約,主要提供根據(jù)factory地址計(jì)算池地址、幣對token總量等
  • UniswapV2Factory:幣對工廠合約,主要在合約內(nèi)運(yùn)行時(shí),部署若干新的UniswapPair合約實(shí)例,并得到地址
  • UniswapPair:幣對的ERC20代幣合約。每個(gè)部署實(shí)例,都對應(yīng)1個(gè)幣對;幣對供應(yīng)量增加,它會mint增加總量;反之,會burn減少總量

? ?

三、SDK設(shè)計(jì)

Uniswap SDK 是一個(gè)同構(gòu) (Isomorphic) 的庫,既可以在客戶端使用也可以在服務(wù)端使用。SDK不能代表用戶執(zhí)行或發(fā)送交易,它提供了實(shí)用的類和函數(shù),幫助計(jì)算出安全地與 Uniswap 交互所需要的數(shù)據(jù)。

  • Token:用于構(gòu)建token實(shí)例
  • Pair:獲取Pair相關(guān)信息
  • Route:創(chuàng)建交易路徑。 前端計(jì)算得出,比如[token0, token1],是可以直接作為交易路徑;還是要因?yàn)闆]有這個(gè)幣對池,要用[token0, token2], [token2, token0]作交易路徑
  • Trade:構(gòu)建交易,且用于計(jì)算出交易的數(shù)據(jù),比如期望交易輸出
  • Percent/Fraction: 百分比、有理數(shù)等, 都是數(shù)字類抽象,幫助計(jì)算的
// swapExactETHForTokens
import { ChainId, Token, Fetcher, Pair, TokenAmount, Route, Trade, TradeType, Percent } from '@uniswap/sdk'
import { ethers } from 'ethers'
import 'dotenv/config'// 構(gòu)建client,包括provider、account
const rpcurl = `https://rinkeby.infura.io/v3/${process.env.INFURA_PROJECT_ID}`;
const provider = new ethers.providers.JsonRpcProvider(rpcurl);
const signer = new ethers.Wallet(process.env.PRIVATE_KEY);
const account = signer.connect(provider);// 構(gòu)建token0、token1
const WETH = new Token(ChainId.RINKEBY, '0xc778417E063141139Fce010982780140Aa0cD5Ab', 18);
const LINK = new Token(ChainId.RINKEBY, '0x01BE23585060835E02B77ef475b0Cc51aA1e0709', 18);const uniV2ABI = ['function swapExactETHForTokens(uint amountOutMin, address[] calldata path, \address to, uint deadline) external payable returns (uint[] memory amounts)'];
const uniswapContract = new ethers.Contract('0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D', uniV2ABI, account);
const run = async () => {// 獲取幣對池信息const pair = await Fetcher.fetchPairData(LINK, WETH, provider);// 構(gòu)建交易路徑const route = new Route([pair], WETH);console.log(route.midPrice.numerator.toString());console.log(route.midPrice.denominator.toString());console.log('WETH-LINK', route.midPrice.toSignificant(6));// 1 LINK = ??? WETHconsole.log(route.midPrice.invert().numerator.toString());console.log(route.midPrice.invert().denominator.toString());console.log('LINK-WETH', route.midPrice.invert().toSignificant(6));// 構(gòu)建交易const trade = new Trade(route, new TokenAmount(WETH, ethers.utils.parseEther('0.003')), TradeType.EXACT_INPUT);console.log(trade.executionPrice.toSignificant(6));const slippageTolerance = new Percent('50', '10000');const amountOutMin = trade.minimumAmountOut(slippageTolerance).raw;const path = [WETH.address, LINK.address];const to = '0x...' // PRIVATE_KEY's Address, 或者隨便一個(gè)地址用來接收const deadline = Math.floor(Date.now() / 1000) + 60 * 20 // 20 minutes from the current Unix timeconst value = trade.inputAmount.raw;console.log(value.toString())// 調(diào)用合約方法,進(jìn)行兌換交易const tx = await uniswapContract.swapExactETHForTokens(amountOutMin.toString(), path, to, deadline, {value: value.toString(),// maxFeePerGas: ethers.utils.parseUnits('2','gwei'),// maxPriorityFeePerGas: ethers.utils.parseUnits('2','gwei'),});console.log(`Transaction hash: ${tx.hash}`);const receipt = await tx.wait();console.log(receipt);}

http://aloenet.com.cn/news/38423.html

相關(guān)文章:

  • 智能建站cms管理系統(tǒng)百度推廣關(guān)鍵詞優(yōu)化
  • 重慶網(wǎng)站租賃空間國內(nèi)新聞最新消息今天
  • asp網(wǎng)站仿制公司官網(wǎng)開發(fā)制作
  • 同程網(wǎng) 網(wǎng)站模板國外網(wǎng)絡(luò)推廣
  • 怎么建立一個(gè)網(wǎng)站當(dāng)站長松原今日頭條新聞
  • dwcc2018怎么做網(wǎng)站十大跨界營銷案例
  • 在什么網(wǎng)站下載wordpress海外網(wǎng)絡(luò)推廣平臺
  • net公司網(wǎng)站開發(fā)框架源代碼什么是sem和seo
  • uc投放廣告網(wǎng)站要自己做嗎工具
  • 做英文企業(yè)網(wǎng)站百度關(guān)鍵詞優(yōu)化公司
  • wordpress同步到頭條號南昌seo搜索優(yōu)化
  • 新網(wǎng)站 不穩(wěn)定網(wǎng)頁設(shè)計(jì)素材網(wǎng)站
  • 哈爾濱建站服務(wù)網(wǎng)站開發(fā)百度廣告費(fèi)一般多少錢
  • 給網(wǎng)站添加百度地圖百度關(guān)鍵字優(yōu)化價(jià)格
  • 西安模板網(wǎng)站建站魔方優(yōu)化大師官網(wǎng)
  • 成都裝修網(wǎng)站制作價(jià)格游戲推廣對接平臺
  • 南陽建網(wǎng)站公司16種營銷模型
  • 提供網(wǎng)站建設(shè)備案沈陽網(wǎng)站關(guān)鍵詞優(yōu)化公司
  • 請問做網(wǎng)站怎么賺錢排名優(yōu)化軟件點(diǎn)擊
  • 北京網(wǎng)站建設(shè)在哪里天網(wǎng)站結(jié)構(gòu)有哪幾種
  • 房產(chǎn)備案登記信息查詢優(yōu)化大師網(wǎng)頁版
  • 做電商哪個(gè)設(shè)計(jì)網(wǎng)站比較好東莞最新消息今天
  • 微信公眾號是干什么用的紹興seo排名公司
  • 廣州建站方法南昌seo排名
  • 做網(wǎng)站跳轉(zhuǎn)怎么收費(fèi)網(wǎng)絡(luò)營銷軟件推廣
  • 詳情頁制作網(wǎng)站seo交互論壇
  • 建立一個(gè)小程序多少錢小紅書關(guān)鍵詞排名優(yōu)化
  • 去哪找人做網(wǎng)站seo技術(shù)網(wǎng)網(wǎng)
  • 人大網(wǎng)站建設(shè)方案湖南省人民政府
  • 機(jī)械類畢業(yè)設(shè)計(jì)代做網(wǎng)站推薦官網(wǎng)seo關(guān)鍵詞排名系統(tǒng)