国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Web3 solidity訂單池操作

這篇具有很好參考價值的文章主要介紹了Web3 solidity訂單池操作。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前面一篇文章因為一些原因 被設(shè)為了進自己可見 需要的朋友可以私信我
Web3 solidity訂單池操作,大數(shù)據(jù),人工智能
之前 我們編寫的程序上來看 交易所無非是一個代幣的托管上 只是它會更加專業(yè)
本文 我們繼續(xù)來看交易所的一個功能 叫游泳池

例如 我們 100grToken 兌換 1ETH
前提 我們的代幣已經(jīng)能被估值了
例如 你想用人民幣對美元 中間他們之間的匯率是要規(guī)定好的
但我們這里 本身就是一個模擬環(huán)境
我們直接去操作也不太合理
所以 我們這里直接開發(fā)一個游泳池功能 或者叫訂單池

我們可以自己去創(chuàng)建訂單 例如 小明發(fā)布一個 你們誰愿意用 100grToken 換 1 ETH啊
我們未完成的訂單就會在我們游泳池中 如果有人覺得合適 點了這個確定 后臺就會操作 將他和發(fā)布這個訂單的人相應(yīng)的數(shù)據(jù)扣除 完成這個訂單
但也可能 某某發(fā)布了 但因為匯率變化 覺得之前發(fā)的這個不太合適了 也可以取消

這里 我們需要創(chuàng)建三個函數(shù)
makeOrder 創(chuàng)建訂單
cancelOrder 取消訂單
fillorder 填充訂單

還是標準流程 啟動我們的ganache環(huán)境
Web3 solidity訂單池操作,大數(shù)據(jù),人工智能
然后 我們這邊還有個問題 我們不能很好的查到用戶的 token數(shù)量
那么 我們需要在Exchange.sol中 加一個balanceof 函數(shù) 我們指定查詢tokens 下 對應(yīng)地址 下對應(yīng)用戶的值
返回一個uint256數(shù)字類型的值
然后 設(shè)置了 public函數(shù)作用域是公共的 view設(shè)置他只是讀取我們區(qū)塊鏈上的信息
Web3 solidity訂單池操作,大數(shù)據(jù),人工智能
然后 我們?nèi)魏斡唵?都需要包含以下幾個信息
id 這是數(shù)據(jù)結(jié)構(gòu)最基本的東西 要有id才能標記和刪除訂單
創(chuàng)建訂單的用戶 因為 肯定在界面展示時也需要進行權(quán)限判斷 要是當(dāng)前用戶 才能對訂單進行刪除和管理
再就是 用什么 代幣 去 兌換另一種代幣
時間 存儲訂單的創(chuàng)建時間

這些成員必須是要有的
我們要梳理正思想 我們沒有服務(wù)器 沒有數(shù)據(jù)庫 所以 你生命在鏈上的數(shù)據(jù)結(jié)構(gòu) 它就是數(shù)據(jù)存儲
然后 我們在交易所 Exchange.sol 合約中聲明一個這樣的訂單結(jié)構(gòu)體

 //訂單結(jié)構(gòu)體
 struct _Order{
     uint256 id;
     address user;
     
     address tokenGet;
     uint256 amountGet;

     address tokenGive;
     uint256 amountGive;

     uint256 timestamp;
 }

這里 我們 的數(shù)據(jù)結(jié)構(gòu) 就和上面的 對應(yīng)上了 兩種token的數(shù)量和地址 id 用戶地址 時間搓
Web3 solidity訂單池操作,大數(shù)據(jù),人工智能
但是 這種形式 顯然只支持我們創(chuàng)建一個訂單
如果要創(chuàng)建多個 這種方法肯定要加碼

比較簡答的方式 自然就是用一個_Order類型的數(shù)組

_Order[] orderlist;

但這里 為了方便通過id查詢 我選擇直接

mapping(uint256=> _Order) public orders;

定義一個mapping對象屬性 然后 鍵是一個uint256數(shù)字類型 對應(yīng)訂單id 然后 值 是一個_Order對象
Web3 solidity訂單池操作,大數(shù)據(jù),人工智能
學(xué)過js的朋友應(yīng)該都會明白二者之前的差異
數(shù)組的是這樣

[1,2,3]

而我們現(xiàn)在用的對象形式的是這樣的

{
    0: 1,
    1: 2,
    2: 3
}

但無非 我們對象的鍵 我們用的是訂單的id
我們就可以通過 對象[訂單id] 這種形式去找到他

然后 我們再在下面創(chuàng)建一個

uint256 public orderCount;

數(shù)字類型 只是單純記錄一下訂單的數(shù)量
Web3 solidity訂單池操作,大數(shù)據(jù),人工智能
然后 我們就可以在下面去寫這個
makeOrder了 創(chuàng)建訂單
但經(jīng)過前面幾篇 交易所的內(nèi)容 我想大家也養(yǎng)成了 事件記錄的好習(xí)慣
那么 這里 創(chuàng)建訂單 我們也需要記錄
我們定義一個事件

event Order(uint256 id,address user,address tokenGet,uint256 amountGet,address tokenGive,uint256 amountGive,uint256 timestamp);

Web3 solidity訂單池操作,大數(shù)據(jù),人工智能
然后 我們 編寫makeOrder函數(shù)

function makeOrder(address _tokenGet,uint256 _amountGet,address _tokenGive,uint256 _amountGive) public {
    orderCount = orderCount.add(1);
    orders[orderCount] = _Order(orderCount,msg.sender,_tokenGet,_amountGet,_tokenGive,_amountGive,block.timestamp);
    emit Order(orderCount,msg.sender,_tokenGet,_amountGet,_tokenGive,_amountGive,block.timestamp);
}

然后 我們這個參數(shù) 接受 兩種代幣的 地址和 數(shù)量 然后 我們獲取orderCount 將他加一 例如 我們第一次進來 他是0 我們將他加1 這樣 他就是1 然后 我們將當(dāng)前訂單復(fù)制 id就是orderCount
第二次進來 orderCount 是 1 加一 就成了2
然后 我們用戶還是通過msg.sender去拿 誰調(diào)用的拿誰
通過block.timestamp 獲取當(dāng)前時間的時間搓

將數(shù)據(jù)添加完之后 調(diào)用我們剛剛寫的Order 記錄一下訂單信息
好 這里 我們其實還不具備測試的條件 為了保證我們代碼沒問題 我們在終端執(zhí)行

truffle compile

Web3 solidity訂單池操作,大數(shù)據(jù),人工智能
好啊 沒什么語法問題 至于測試 等我將所有訂單操作都完成了 我們在做更多操作了文章來源地址http://www.zghlxwxcb.cn/news/detail-652385.html

到了這里,關(guān)于Web3 solidity訂單池操作的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 區(qū)塊鏈web3智能合約Solidity學(xué)習(xí)資源整理

    Solidity 是一門面向合約的、為實現(xiàn)智能合約而創(chuàng)建的高級編程語言。這門語言受到了 C++,Python 和 Javascript 語言的影響,設(shè)計的目的是能在以太坊虛擬機(EVM)上運行。 Solidity中文官方文檔: https://solidity-cn.readthedocs.io/zh/develop/ https://learnblockchain.cn/docs/solidity/index.html 在線rem

    2024年03月19日
    瀏覽(30)
  • 歡迎來到Web3.0的世界:Solidity智能合約安全漏洞分析

    歡迎來到Web3.0的世界:Solidity智能合約安全漏洞分析

    智能合約是運行在區(qū)塊鏈網(wǎng)絡(luò)中的一段程序,經(jīng)由多方機構(gòu)自動執(zhí)行預(yù)先設(shè)定的邏輯,程序執(zhí)行后,網(wǎng)絡(luò)上的最終狀態(tài)將不可改變。智能合約本質(zhì)上是傳統(tǒng)合約的數(shù)字版本,由去中心化的計算機網(wǎng)絡(luò)執(zhí)行,而不是由政府或銀行等中央集權(quán)機構(gòu)執(zhí)行。智能合約程序可以用Solidi

    2024年02月03日
    瀏覽(26)
  • Python編程入門基礎(chǔ)及高級技能、Web開發(fā)、數(shù)據(jù)分析和機器學(xué)習(xí)與人工智能

    Python編程入門基礎(chǔ)及高級技能、Web開發(fā)、數(shù)據(jù)分析和機器學(xué)習(xí)與人工智能

    安裝 Python 環(huán)境,選擇一個 IDE,如 PyCharm、VSCode等。 安裝 Python 環(huán)境是使用 Python 進行編程的第一步。Python 官網(wǎng)提供了 Windows、Linux 和 macOS 等主流操作系統(tǒng)的安裝包,可以前往官網(wǎng)下載對應(yīng)版本的 Python 并進行安裝。 在安裝完 Python 后,需要使用 pip 工具對常用的第三方庫進行

    2024年02月09日
    瀏覽(94)
  • 操作系統(tǒng)、人工智能、芯片和其它

    操作系統(tǒng)、人工智能、芯片和其它

    最近出差一段時間,聽到一些事,看到一些事,說點個人觀感。有些話可能不好聽,還希望不要被平臺和諧。 從一位現(xiàn)在微軟工作的前同事處得來的消息,微軟下一代操作系統(tǒng)Windows 12將深度集成AI,如果再加上的它的Office全家桶,微軟系人工智能將全面霸屏桌面計算市場,結(jié)

    2024年02月15日
    瀏覽(15)
  • 文心一言人工智能使用教程和操作方法

    文心一言 人工智能使用教程和操作方法 文心一言是一款由百度研發(fā)的基于人工智能技術(shù)的語言模型,它能夠幫助人們回答各種各樣的問題,同時還可以協(xié)助完成文本創(chuàng)作、智能辦公、智能家居控制等多種任務(wù)。下面是文心一言的使用教程,希望能夠幫助您更好地使用這款神

    2024年02月08日
    瀏覽(31)
  • web3 React dapp項目通過事件從區(qū)塊鏈中拿到 已取消 已完成 和所有的訂單數(shù)據(jù) 并存入redux中

    web3 React dapp項目通過事件從區(qū)塊鏈中拿到 已取消 已完成 和所有的訂單數(shù)據(jù) 并存入redux中

    好 上文web3通過antd 在React dapp中構(gòu)建訂單組件基本結(jié)構(gòu)我們算是把一個基本的訂單組件展示做出來了 然后 我們繼續(xù) 起一下環(huán)境先 ganache 終端運行 MetaMask 登錄一下 然后 打開項目 發(fā)布一下合約 然后 運行一下 測試腳本 轉(zhuǎn)入交易所 ETH和grToken 還創(chuàng)建兩個訂單 然后 運行起 dapp項

    2024年02月05日
    瀏覽(36)
  • 人工智能大數(shù)據(jù)專業(yè)最好的大學(xué) - 人工智能大數(shù)據(jù)云計算三者關(guān)系

    人工智能大數(shù)據(jù)專業(yè)最好的大學(xué) - 人工智能大數(shù)據(jù)云計算三者關(guān)系

    了解大數(shù)據(jù)與人工智能的區(qū)別與聯(lián)系,首先我們從認知和理解大數(shù)據(jù)和人工智能的概念開始。 1、大數(shù)據(jù) 大數(shù)據(jù)是物聯(lián)網(wǎng)、Web系統(tǒng)和信息系統(tǒng)發(fā)展的綜合結(jié)果,其中物聯(lián)網(wǎng)的影響最大,所以大數(shù)據(jù)也可以說是物聯(lián)網(wǎng)發(fā)展的必然結(jié)果。大數(shù)據(jù)相關(guān)的技術(shù)緊緊圍繞數(shù)據(jù)展開,包括

    2023年04月21日
    瀏覽(24)
  • web3教學(xué)-Solidity 入門上手

    web3教學(xué)-Solidity 入門上手

    步驟大綱 1.Nodejs 2.Solidity編譯器,作為npm依賴包 3.Visual Studio Code編譯語法的突出顯示 4.為開發(fā)人員構(gòu)建的以太坊客戶端ethereumjs-testrpc npm install -g solc 然后通過 solcjs-v查看版本 使用vs code進行智能合約的編寫 我們打開vs code然后在里面搜索插件Solidity,然后安裝 可以在vs終端輸入

    2024年02月03日
    瀏覽(18)
  • 人工智能在物流數(shù)據(jù)分析中的應(yīng)用:基于人工智能的物流智能監(jiān)控與分析

    作者:禪與計算機程序設(shè)計藝術(shù) 引言 1.1. 背景介紹 隨著全球經(jīng)濟的快速發(fā)展和物流行業(yè)的不斷壯大,對物流管理的效率與質(zhì)量的要求也越來越高。傳統(tǒng)的物流管理手段已經(jīng)難以滿足現(xiàn)代物流行業(yè)的需要,人工智能技術(shù)在物流管理中的應(yīng)用顯得尤為重要。 1.2. 文章目的 本文旨

    2024年02月08日
    瀏覽(23)
  • WEB3之路(一)-- solidity學(xué)習(xí)筆記

    數(shù)值類型(Value Type) :包括布爾型,整數(shù)型等等,這類變量賦值時候直接傳遞數(shù)值。 引用類型(Reference Type) :包括數(shù)組和結(jié)構(gòu)體,這類變量占空間大,賦值時候直接傳遞地址(類似指針)。 映射類型(Mapping Type) :? Solidity 里的哈希表。 函數(shù)類型(Function Type) : Solidity 文檔里把函

    2024年02月02日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包