永續合約交易所繫統開發(開發邏輯)丨永續合約系統開發(原始碼方案)

xiaofufu發表於2023-04-19

  智慧合約看上去就是一段計算機執行程式,滿足可準確自動執行即可。那麼為什麼用傳統的技術很難實現,而需要用區塊鏈技術等新技術呢?


  傳統技術即使透過軟體限制、效能最佳化等方法,也無法同時實現區塊鏈的以下特性:


  1、資料無法刪除、


  2、去中心化


  基於區塊鏈技術的智慧合約不僅可以發揮智慧合約在成本效率方面的優勢,而且可以避免惡意行為對合約正常執行的干擾。將智慧合約以數字化的形式寫入區塊鏈中,由區塊鏈技術的特性保障儲存、讀取、執行整個過程透明可跟蹤、不可攥改。同時,由區塊鏈自帶的共識演演算法構建出一套狀態機系統,使得智慧合約能夠高效地執行。


  關於區塊鏈專案技術開發唯:MrsFu123,代幣發行、dapp智慧合約開發、鏈遊開發、單雙幣質押、多鏈錢包開發、NFT盲盒遊戲、公鏈、鏈上游戲開發


  Uniswap博餅、交易所開發、量化合約開發、合約對沖、互助遊戲開發、Nft數字藏品開發、眾籌互助開發、元宇宙開發、swap開發、DAO智慧合約、


  夾子合約、鏈上合約開發、ido開發、商城開發等,開發過各種各樣的系統模式,更有多種模式、制度、案例、後臺等,成熟技術團隊,歡迎實體參考。


  步驟是:


  1、使用合約的ABI生成.go檔案介面


  2、使用以太坊節點連結初始化以太坊客戶端;


  3、以以太坊客戶端和uniswap_quoter合約地址為引數,例項化uniswap_quoter合約


  4、以uniswap_quoter物件為引數,例項化其對應的Raw物件rawCaller


  5、宣告一個空的輸出變數var out[]interface{}


  構造一個callOpts物件


  準備業務入參params


  6、呼叫rawCaller.Call(callOpts,out,params)


  7、方法呼叫後,結果會寫入out,而鏈上狀態沒有改變。


  client:=utils.GetChainClient()


  uniswap,_:=uniswap_factory.NewUniswapV3QuoterV2(common.HexToAddress(uniswapAddress),client)


  callOpt:=&bind.CallOpts{


  From:common.Address{},


  Context:context.Background(),


  }


  token1:=common.HexToAddress("0x...")


  token2=common.HexToAddress("0x...")


  fee:=big.NewInt(3000)


  amountIn:=utils.FloatStringToBigInt("1.00",18)


  sqrtPriceLimitX96:=big.NewInt(0)


  var out[]interface{}


  rawCaller:=&uniswap_factory.UniswapV3QuoterV2Raw{Contract:uniswap}


  err:=rawCaller.Call(callOpt,&out,"quoteExactInputSingle",


  uniswap_factory.IQuoterV2QuoteExactInputSingleParams{


  TokenIn:token1,


  TokenOut:token2,


  AmountIn:amountIn,


  Fee:fee,


  SqrtPriceLimitX96:sqrtPriceLimitX96,


  })


  if err!=nil{


  logger.GetLogger().Errorf("get currency last price error%s",err.Error())


  }else{


  fmt.Println("price get:",price)


  }


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69956839/viewspace-2946847/,如需轉載,請註明出處,否則將追究法律責任。

相關文章