欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

當(dāng)前位置:主頁(yè) > 區(qū)塊鏈 > 區(qū)塊鏈技術(shù) > 如何在TON Chain上創(chuàng)建NFT

從源碼角度看如何在TON Chain上創(chuàng)建一個(gè)NFT

2025-04-28 16:07:59 | 來(lái)源: | 作者:佚名
金國(guó)深入研究 TON 官方開(kāi)發(fā)文檔,感覺(jué)學(xué)習(xí)起來(lái)還是有些門(mén)檻,當(dāng)前的文檔內(nèi)容似乎更像是一個(gè)內(nèi)部開(kāi)發(fā)文檔,對(duì)新入門(mén)的開(kāi)發(fā)者來(lái)說(shuō)不太友好,因此試著以自己的學(xué)習(xí)軌跡,梳理一系列關(guān)于 TON Chain 項(xiàng)目開(kāi)發(fā)的文章,希望可以對(duì)大家快速入門(mén) TON DApp 開(kāi)發(fā)有一些幫助,

在 EVM 中開(kāi)發(fā) NFT 和在 TON Chain 上開(kāi)發(fā) NFT 有哪些不同

發(fā)行一個(gè) FT 或 NFT 對(duì)于 DApp 開(kāi)發(fā)者來(lái)說(shuō)通常是最基本的需求。因此我也以此作為學(xué)習(xí)入口。首先讓我們來(lái)了解以下在 EVM 技術(shù)棧中開(kāi)發(fā)一個(gè) NFT 和在 TON Chain 中的區(qū)別?;?EVM 的 NFT 通常會(huì)選擇繼承 ERC-721 的標(biāo)準(zhǔn)。所謂 NFT,指的是不可分割的加密資產(chǎn)類型,且每個(gè)資產(chǎn)具有唯一性,即存在某些專屬的特性。而 ERC-721 就是對(duì)這個(gè)類型的資產(chǎn)的一種通用的開(kāi)發(fā)范式。讓我們看一個(gè)常見(jiàn)的 ERC721 合約需要實(shí)現(xiàn)哪些函數(shù)以及記錄哪些信息。下圖是一個(gè) ERC721 接口??梢钥吹脚c FT 不同,在轉(zhuǎn)賬接口中需要輸入的是待轉(zhuǎn)賬的 tokenId 而非數(shù)量。這個(gè) tokenId 也是 NFT 資產(chǎn)唯一性最基本的體現(xiàn),當(dāng)然為了承載更多的屬性,通常會(huì)為每個(gè) tokenId 記錄一個(gè) metadata,這個(gè) metadata 是一個(gè)外部鏈接,保存了該 NFT 的其他可擴(kuò)展數(shù)據(jù),例如一張 PFP 圖片的鏈接,某些屬性名稱等。

P6yhmaC143.png

對(duì)于熟悉 Solidity 或者熟悉面向?qū)ο蟮拈_(kāi)發(fā)者來(lái)說(shuō),實(shí)現(xiàn)這樣一個(gè)智能合約是件容易的事,只要定義好合約中需要的數(shù)據(jù)類型,例如一些關(guān)鍵的映射關(guān)系 mapping,并根據(jù)所需功能開(kāi)發(fā)相應(yīng)的對(duì)這些數(shù)據(jù)的修改邏輯,即可實(shí)現(xiàn)一個(gè) NFT。

然而在 TON Chain 中這一切變的不太相同,造成不同的核心原因有兩個(gè):

  • 在 TON 中數(shù)據(jù)的存儲(chǔ)是基于 Cell 實(shí)現(xiàn)的,而同一個(gè)賬戶的 Cell 通過(guò)有向無(wú)環(huán)圖來(lái)實(shí)現(xiàn)。這樣就導(dǎo)致需要之久化存儲(chǔ)的數(shù)據(jù)不能無(wú)邊界的增長(zhǎng)下去,因?yàn)橐粋€(gè)有向無(wú)環(huán)圖來(lái)說(shuō),數(shù)據(jù)深度決定的查詢成本,當(dāng)深度無(wú)限延伸之后,有可能造成查詢成本過(guò)高,從而導(dǎo)致合約陷入死鎖問(wèn)題。

  • 為了追求高并發(fā)性能,TON 舍棄了串行執(zhí)行的架構(gòu),轉(zhuǎn)而采用了一個(gè)專為并行而生的開(kāi)發(fā)范式,Actor 模型,來(lái)重構(gòu)執(zhí)行環(huán)境。這就造成了一個(gè)影響,智能合約之間只能通過(guò)發(fā)送所謂內(nèi)部消息的方式異步調(diào)用,注意無(wú)論是狀態(tài)修改類型或只讀類型的調(diào)用都需要遵循這個(gè)原則,除此之外,也需要仔細(xì)考慮異步調(diào)用若失敗,如何處理數(shù)據(jù)回滾的問(wèn)題。

    當(dāng)然關(guān)于技術(shù)上其他不同點(diǎn)在上一篇文章中有過(guò)詳細(xì)的論述,本篇文章希望可以聚焦在智能合約開(kāi)發(fā)上,所以不展開(kāi)討論。上述兩條設(shè)計(jì)原則讓 TON 中智能合約開(kāi)發(fā)與 EVM 產(chǎn)生了很大區(qū)別。在開(kāi)始的論述中,我們知道一個(gè) NFT 合約中需要定義一些映射關(guān)系,也就是 mapping,來(lái)保存 NFT 相關(guān)的數(shù)據(jù)。其中最重要的就是 owners,這個(gè) mapping 存儲(chǔ)了某個(gè) tokenID 對(duì)應(yīng)的 NFT 的所有者地址的映射關(guān)系,決定了 NFT 的所有權(quán),轉(zhuǎn)賬就是對(duì)該所有權(quán)的修改。由于理論上這是一個(gè)可以無(wú)邊界的數(shù)據(jù)結(jié)構(gòu),需要盡量避免。因此官方推薦以是否存在無(wú)邊界數(shù)據(jù)結(jié)構(gòu)作為分片的標(biāo)準(zhǔn)。即當(dāng)有類似的數(shù)據(jù)存儲(chǔ)需求時(shí),通過(guò)主從合約的范式來(lái)替代,通過(guò)創(chuàng)建子合約的方式來(lái)管理每個(gè) key 對(duì)應(yīng)的數(shù)據(jù)。并通過(guò)主合約管理全局參數(shù),或幫助處理子合約之間的內(nèi)部信息交互。

    這也就意味著在 TON 中的 NFT 也需要采用類似的架構(gòu)來(lái)設(shè)計(jì),每個(gè) NFT 都是一個(gè)獨(dú)立的子合約,保存了諸如所有者地址,metadata 等專屬數(shù)據(jù),并通過(guò)一個(gè)主合約來(lái)管理全局?jǐn)?shù)據(jù),例如 NFT name,symbol,總供應(yīng)量等。

    在明確了架構(gòu)后,接下來(lái)就需要解決核心功能的需求了,由于采用了這個(gè)主從合約的方式,因此就需要明確哪些功能由主合約承載,哪些功能由子合約承載,并且兩者之間通過(guò)什么內(nèi)部信息溝通,同時(shí)當(dāng)出現(xiàn)執(zhí)行錯(cuò)誤時(shí),如何回滾之前的數(shù)據(jù)。通常情況下,在開(kāi)發(fā)復(fù)雜的大型項(xiàng)目之前,通過(guò)一個(gè)類圖并明確彼此之間的信息流,并仔細(xì)思考內(nèi)部調(diào)用失敗后的回滾邏輯是必要的,當(dāng)然上述 NFT 開(kāi)發(fā)雖然簡(jiǎn)單,但也可以做類似驗(yàn)證。

    9Ztfcz93Zz.png

    從源碼學(xué)習(xí)開(kāi)發(fā) TON 智能合約

    TON 選擇了設(shè)計(jì)一種類 C 語(yǔ)言的、靜態(tài)類型語(yǔ)言,名為 Func 來(lái)作為智能合約開(kāi)發(fā)語(yǔ)言,那么接下來(lái)就讓我們從源碼來(lái)學(xué)習(xí)如何開(kāi)發(fā) TON 智能合約,我選擇了 TON 官方文檔中的 NFT 示例來(lái)進(jìn)行介紹,感興趣的小伙伴可以自行去查閱。在這個(gè) case 中實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的 TON NFT 例。讓我們看下合約結(jié)構(gòu),共分為兩個(gè)功能合約以及三個(gè)必要的庫(kù)。

    kDAvnWDXv9.png

    這兩個(gè)主要的功能合約即按照上述的原則進(jìn)行設(shè)計(jì),首先讓我們來(lái)看下主合約 nft-collection 的代碼:

    J5p9hzzlMr.png

    這引入了第一個(gè)知識(shí)點(diǎn),如何在 TON 智能合約中持久化存儲(chǔ)數(shù)據(jù),我們知道在 Solidity 中數(shù)據(jù)的持久化存儲(chǔ)是由 EVM 根據(jù)參數(shù)的類型自動(dòng)處理的,通常情況下,智能合約的狀態(tài)變量將在執(zhí)行結(jié)束后根據(jù)最新值自動(dòng)被持久化存儲(chǔ),開(kāi)發(fā)者并不需要考慮這個(gè)過(guò)程。但在 Func 中情況并不如此,開(kāi)發(fā)者需要自己來(lái)實(shí)現(xiàn)相應(yīng)的處理邏輯,這個(gè)情況有點(diǎn)類似于 C 和 C++ 需要考慮 GC 的過(guò)程,但其他新的開(kāi)發(fā)語(yǔ)言通常將這部分邏輯自動(dòng)化處理。我們來(lái)看下代碼,首先引入一些需要的庫(kù),然后看到第一個(gè)函數(shù) load_data 用于讀取被持久化存儲(chǔ)的數(shù)據(jù),其邏輯為首先通過(guò) get_data 返回持久化合約存儲(chǔ) cell,注意這是由標(biāo)準(zhǔn)庫(kù) stdlib.fc 實(shí)現(xiàn)的,通常情況下可以將其中的一些函數(shù)視為系統(tǒng)函數(shù)來(lái)使用。

    該函數(shù)的返回值類型為 cell,這是 TVM 中的 cell 類型。在之前的介紹中,我們已經(jīng)知道 TON 區(qū)塊鏈中的所有持久數(shù)據(jù)都存儲(chǔ)在 cell 樹(shù)中。每個(gè) cell 最多有 1023 位任意數(shù)據(jù)和最多四個(gè)對(duì)其他 cell 的引用。cell 在基于堆棧的 TVM 中用作內(nèi)存。cell 中保存的是緊編碼后的數(shù)據(jù),要想獲取其中具體的明文數(shù)據(jù),需要將 cell 轉(zhuǎn)換為被稱為 slice 的類型。cell 可以通過(guò) begin_parse 函數(shù)轉(zhuǎn)換成為 slice 類型,然后可以通過(guò)從 slice 加載數(shù)據(jù)位和對(duì)其他 cell 的引用來(lái)獲得 cell 中的數(shù)據(jù)。注意 15 行代碼中的這種調(diào)用方法是一個(gè) func 中的語(yǔ)法糖,可以直接調(diào)用第一個(gè)函數(shù)的返回值的第二個(gè)函數(shù)。并在最后按照數(shù)據(jù)持久化順序依次加載相應(yīng)的數(shù)據(jù)。注意這個(gè)過(guò)程和 solidity 不同,并不是根據(jù) hashmap 調(diào)用,所以這個(gè)調(diào)用順序不能亂。

    在 save_data 函數(shù)中,邏輯與之類似,只不過(guò)這是一個(gè)反向的過(guò)程,這就引入了下一個(gè)知識(shí)點(diǎn),一個(gè)新的類型 builder,這是 cell 構(gòu)建器的類型。數(shù)據(jù)位和對(duì)其他 cell 的引用可以存儲(chǔ)在構(gòu)建器中,然后構(gòu)建器可以最終化為新 cell。首先通過(guò)標(biāo)準(zhǔn)函數(shù) begin_cell 創(chuàng)建一個(gè) builder,并依次通過(guò) store 相關(guān)函數(shù)存儲(chǔ)相關(guān)函數(shù),注意上文中調(diào)用順序與此處存儲(chǔ)順序需要保持一致。最后通過(guò) end_cell 完成新 cell 構(gòu)建,這時(shí)該 cell 被管理在內(nèi)存中,最后通過(guò)最外層的 set_data,就可以完成對(duì)該 cell 的持久化存儲(chǔ)。

    p1926pA9lg.png

    接下來(lái)讓我們來(lái)看下業(yè)務(wù)相關(guān)函數(shù),首先需要先介紹下一個(gè)知識(shí)點(diǎn),如何通過(guò)合約創(chuàng)建一個(gè)新的合約,這在剛剛介紹的主從架構(gòu)中將被經(jīng)常用到。我們知道在 TON 中,智能合約之間的調(diào)用是通過(guò)發(fā)送內(nèi)部消息的方式來(lái)實(shí)現(xiàn)的。這是通過(guò)一個(gè)名為 send_raw_message 來(lái)實(shí)現(xiàn)的,注意第一個(gè)參數(shù)是 message 編碼后的 cell,第二個(gè)參數(shù)是標(biāo)識(shí)位,用于表明該交易的執(zhí)行方式的區(qū)別,在 TON 中設(shè)置了不同的內(nèi)部消息發(fā)送的執(zhí)行方式,目前有 3 種消息 Modes 和 3 種消息 Flags。可以將單一 Mode 與多個(gè)(也許沒(méi)有)標(biāo)志組合以獲得所需的 mode。組合只是意味著將它們值的和填入即可。下面給出了 Modes 和 Flags 的描述表格:

    z76GSc3O4S.png

    那么讓我們來(lái)看第一個(gè)主要函數(shù),deploy_nft_item,顧名思義,這是一個(gè)用于創(chuàng)建或者說(shuō)鑄造新 NFT 實(shí)例的函數(shù),經(jīng)過(guò)一番操作編碼一個(gè) msg 后,通過(guò) send_raw_message 發(fā)送該內(nèi)部合約,并選擇了 flag 1 的發(fā)送標(biāo)識(shí)位,僅將編碼中指定的 fee 作為本次執(zhí)行的 gas fee。經(jīng)過(guò)上文的介紹我們很容易意識(shí)到,這個(gè)編碼規(guī)則應(yīng)該是對(duì)應(yīng)創(chuàng)建一個(gè)新的智能合約的方式。那讓我們來(lái)看看具體是怎么實(shí)現(xiàn)的。

    讓我們直接看 51 行,上面兩個(gè)函數(shù)是用于生成 message 所需信息的輔助函數(shù),因此我們后面再來(lái)看,這是一個(gè)用于創(chuàng)建智能合約的內(nèi)部消息的編碼過(guò)程,中間的一些數(shù)字其實(shí)也是一些標(biāo)識(shí)位,用于說(shuō)明該內(nèi)部消息的需求,這里要引入下一個(gè)知識(shí)點(diǎn),TON 選擇了一種名為 TL-B 的二進(jìn)制語(yǔ)言來(lái)描述消息的執(zhí)行方式,并且根據(jù)設(shè)置不同的標(biāo)記位來(lái)實(shí)現(xiàn)某些特定功能的內(nèi)部消息,最容易想到的兩個(gè)使用場(chǎng)景,新合約創(chuàng)建和已部署合約函數(shù)調(diào)用。而 51 行的這種方式即對(duì)應(yīng)了前者,創(chuàng)建一個(gè)新的 nft item 合約,而這主要是通過(guò) 55,56,57 三行指定的。首先 55 行這一大串?dāng)?shù)字是一系列標(biāo)識(shí)位,注意 store_uint 的第一個(gè)入?yún)⑹菙?shù)值,第二個(gè)是位長(zhǎng),其中決定了該內(nèi)部消息是合約創(chuàng)建的是后三個(gè)標(biāo)記位,以及相應(yīng)二進(jìn)制值位為 111(十進(jìn)制即為 4+2+1),其中前兩個(gè)表示該消息將附帶 StateInit 數(shù)據(jù),這個(gè)數(shù)據(jù)即為新合約的源碼,以及初始化所需的數(shù)據(jù)。而后一個(gè)標(biāo)記位表示內(nèi)部消息附載,即希望執(zhí)行相關(guān)邏輯以及需要的參數(shù)。因此你會(huì)看到在第 66 行代碼并沒(méi)有設(shè)置該三位數(shù)據(jù),則表明的是一次對(duì)已部署合約的函數(shù)調(diào)用。具體的編碼規(guī)則在這里查看。

    那么 StateInit 的編碼規(guī)則即對(duì)應(yīng)了 49 行代碼,通過(guò) calculate_nft_item_state_init 計(jì)算,注意 stateinit 數(shù)據(jù)的編碼也遵循了一種既定的 TL-B 編碼規(guī)則,除了一些標(biāo)記位之外,主要涉及到兩部分新合約 code 和以及初始化 data。data 的編碼順序需要與新合約指定的持久化 cell 的存儲(chǔ)順序保持一致。在 36 行可以看到,初始化數(shù)據(jù)有 item_index,即類似與 ERC721 中的 tokenId,以及由標(biāo)準(zhǔn)函數(shù) my_address 返回的當(dāng)前合約地址,即為 collection_address,這個(gè)數(shù)據(jù)的順序與 nft-item 中的聲明保持一致。

    接下來(lái)一個(gè)知識(shí)點(diǎn)就是在 TON 中,所有未生成的智能合約而可以預(yù)先計(jì)算其生成后的地址,這點(diǎn)與 Solidity 中的 create2 函數(shù)類似,在 TON 中新地址的生成由兩部分組成,workchain 標(biāo)識(shí)位與 stateinit 的哈希值拼接而成,前者在之前的介紹中我們已經(jīng)知道是為了相應(yīng) TON 無(wú)限分片架構(gòu)而需要被指定的,當(dāng)前為統(tǒng)一值。由標(biāo)準(zhǔn)函數(shù) workchain 獲得。后者由標(biāo)準(zhǔn)函數(shù) cell_hash 獲得。因此回到該例子,calculate_nft_item_address 即為預(yù)先計(jì)算新合約地址的函數(shù)。并將生成值在第 53 行編碼到 message 中,作為該內(nèi)部消息的接收地址。而 nft_content 則對(duì)應(yīng)了對(duì)被創(chuàng)建合約的初始化調(diào)用,具體的實(shí)現(xiàn)在下一篇文章中介紹。

    至于 send_royalty_params,則需要是對(duì)某只讀請(qǐng)求的內(nèi)部消息的相應(yīng),在之前的介紹中,我們特意強(qiáng)調(diào)了在 TON 中內(nèi)部消息不光包含可能會(huì)修改數(shù)據(jù)的操作,只讀操作也需要通過(guò)這種方式實(shí)現(xiàn),因此該合約即為此類操作,首先值得注意的是 67 行表示響應(yīng)該請(qǐng)求后對(duì)請(qǐng)求者回調(diào)函數(shù)的標(biāo)記,記下來(lái)即為返回的數(shù)據(jù),分別是請(qǐng)求的 item index,以及相應(yīng)的 royalty 數(shù)據(jù)。 

    接下來(lái)讓我們引入下一個(gè)知識(shí)點(diǎn),TON 中智能合約只有兩個(gè)統(tǒng)一的入口,名為 recv_internal 和 recv_external,其中前者為所有內(nèi)部消息的統(tǒng)一調(diào)用入口,后者為所有外部消息的統(tǒng)一調(diào)用入口,開(kāi)發(fā)者需要在函數(shù)內(nèi)部根據(jù)需求,采用類似 switch 的方式根據(jù) message 指定的不同標(biāo)記位來(lái)響應(yīng)不同的請(qǐng)求,這里的標(biāo)記位即為上述 67 行的回調(diào)函數(shù)標(biāo)記?;氐皆摾樱紫葘?duì) message 進(jìn)行空位檢查,通過(guò)后分別解析 message 中的信息,首先在 83 行解析獲得 sender_address,該參數(shù)將用于后續(xù)的權(quán)限檢查,注意這里的~操作符,屬于另一個(gè)語(yǔ)法糖。這里先不展開(kāi)將。接下來(lái)解析 op 操作標(biāo)記位,而后根據(jù)不同的標(biāo)記位,分別處理相應(yīng)請(qǐng)求。其中即根據(jù)某些邏輯分別調(diào)用了上述的函數(shù)。例如響應(yīng)對(duì) royalty 參數(shù)的請(qǐng)求,或鑄造新的 nft,并自增全局 index。 

    接下來(lái)一個(gè)知識(shí)點(diǎn)對(duì)應(yīng)了 108 行,想必大家通過(guò)命名也可以知道該函數(shù)的處理邏輯,與 Solidity 中的 require 函數(shù)類似,F(xiàn)unc 中通過(guò)標(biāo)準(zhǔn)函數(shù) throw_unless 來(lái)拋出異常,第一個(gè)入?yún)殄e(cuò)誤碼,第二個(gè)是檢查位布爾值,若位 false 則拋出異常,并附帶該錯(cuò)誤碼。而在這行中通過(guò) equal_slices 來(lái)判斷上面解析到的 sender_address 是否等于該合約持久化存儲(chǔ)的 owner_address,做權(quán)限判斷。

    Xg1dKPk83l.png

    最后為了使代碼結(jié)構(gòu)更清晰,開(kāi)始閑了一系列幫助獲取持久化信息的輔助函數(shù),在這里就不展開(kāi)介紹了,開(kāi)發(fā)者可以參考這種結(jié)構(gòu)來(lái)開(kāi)發(fā)自己的智能合約。

    3DukH2og9o.png

    TON 生態(tài)的 DApp 開(kāi)發(fā)實(shí)在是件有趣的事情,與 EVM 的開(kāi)發(fā)范式有很大差異,因此我會(huì)通過(guò)一系列文章來(lái)介紹如何在 TON Chain 中開(kāi)發(fā) DApp。

    聲明:文章內(nèi)容不代表本站觀點(diǎn)及立場(chǎng),不構(gòu)成本平臺(tái)任何投資建議。本文內(nèi)容僅供參考,風(fēng)險(xiǎn)自擔(dān)!
    Tag:NFT   Chain   ton  

    你可能感興趣的文章

    幣圈快訊

    • 昨日建倉(cāng)20倍BTC多單巨鯨現(xiàn)已盈利近502萬(wàn)美元

      2025-06-10 06:00
      金色財(cái)經(jīng)報(bào)道,據(jù)Hypurrscan數(shù)據(jù),昨日建倉(cāng)20倍BTC多單巨鯨現(xiàn)已盈利近502萬(wàn)美元(5,019,339美元),倉(cāng)位價(jià)值2.19億美元。
    • 美國(guó)眾議院議長(zhǎng)約翰遜:我認(rèn)為特朗普和馬斯克會(huì)和解

      2025-06-10 05:50
      金色財(cái)經(jīng)報(bào)道,美國(guó)眾議院議長(zhǎng)約翰遜表示,我認(rèn)為特朗普和馬斯克會(huì)和解。
    • 美檢方指控Evita創(chuàng)始人IuriiGugnin洗錢(qián)5億美元并涉助俄獲取敏感技術(shù)

      2025-06-10 05:50
      金色財(cái)經(jīng)報(bào)道,據(jù)英國(guó)金融時(shí)報(bào),美國(guó)檢方以逃避制裁及違反出口管制罪起訴加密貨幣支付公司Evita的創(chuàng)始人IuriiGugnin,指控其洗錢(qián)超5億美元并協(xié)助俄羅斯獲取敏感技術(shù)。布魯克林聯(lián)邦法院公布的法庭文件顯示,Gugnin周一被指控犯有電信和銀行欺詐、洗錢(qián)和其他罪行。司法部稱其在紐約被捕并提審。檢方指控Gugnin利用其公司為境外客戶支付敏感電子產(chǎn)品,其中包含受出口管制的美國(guó)設(shè)計(jì)的服務(wù)器,并通過(guò)洗錢(qián)為俄羅斯國(guó)家原子能公司(Rosatom)采購(gòu)零部件。
    • 美債收益率普遍跌超3個(gè)基點(diǎn),略微回吐非農(nóng)日的漲幅

      2025-06-10 05:28
      金色財(cái)經(jīng)報(bào)道,周一(6月9日)紐約尾盤(pán),美國(guó)10年期基準(zhǔn)國(guó)債收益率下跌3.18個(gè)基點(diǎn),報(bào)4.4738%,日內(nèi)交投于4.5156%-4.4678%區(qū)間,北京時(shí)間20:56漲穿6月6日發(fā)布美國(guó)非農(nóng)就業(yè)報(bào)告之后出現(xiàn)的當(dāng)天頂部4.5116%。兩年期美債收益率跌3.32個(gè)基點(diǎn),報(bào)4.0034%,日內(nèi)交投于4.0325%-3.9909%區(qū)間,非農(nóng)日也曾漲至4.0407%。
    • ETH突破2600美元

      2025-06-10 05:28
      金色財(cái)經(jīng)報(bào)道,行情顯示,ETH突破2600美元,現(xiàn)報(bào)2610.15美元,24小時(shí)漲幅達(dá)到3.93%,行情波動(dòng)較大,請(qǐng)做好風(fēng)險(xiǎn)控制。
    • 查看更多