亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

Flutter TON交互庫(kù)鴻蒙化適配:橋接方案與踩坑實(shí)踐

Flutter TON交互庫(kù)鴻蒙化適配:橋接方案與踩坑實(shí)踐 最近我接手了一個(gè)比較有意思的適配任務(wù)把一個(gè) Flutter 生態(tài)里常用的 TON 鏈上交互庫(kù) ton_dart 搬到鴻蒙應(yīng)用里還要在實(shí)際場(chǎng)景中跑通資產(chǎn)查詢、轉(zhuǎn)賬還有 TON 治理投票的鏈路。ton_dart 這個(gè)庫(kù)在 Dart 世界里算是 TON 相關(guān)功能最全的三方庫(kù)之一錢(qián)包、Jetton、NFT、合約交互都有覆蓋可它畢竟是跑在標(biāo)準(zhǔn) Dart VM 上的到了鴻蒙原生環(huán)境里網(wǎng)絡(luò)請(qǐng)求、密鑰生成、消息簽名這些底子都得重新對(duì)接。這篇文章就是把我在模擬項(xiàng)目里真實(shí)趟過(guò)的鴻蒙化路徑、改造成本、關(guān)鍵代碼和踩坑點(diǎn)完整寫(xiě)出來(lái)適合要在鴻蒙上做 Web3 錢(qián)包、鏈上治理工具或者資產(chǎn)看板的開(kāi)發(fā)者直接參考。這套適配的核心思路不是把 ton_dart 重寫(xiě)一遍而是做一層“能力替換層”。鴻蒙側(cè)沒(méi)有 Dart VM 對(duì)原生插件的那套自動(dòng)綁定但 Flutter 工程可以通過(guò) MethodChannel/Pigeon 和鴻蒙原生代碼通信所以我們可以把 ton_dart 依賴(lài)原生能力的部分抽出來(lái)在鴻蒙側(cè)用系統(tǒng)級(jí)的 Crypto 和網(wǎng)絡(luò)能力補(bǔ)上把純 Dart 的協(xié)議邏輯保留下來(lái)。這樣既保住了 ton_dart 里成熟的 TON 消息構(gòu)造、BOC 序列化、地址解析邏輯又讓它在鴻蒙上真正跑得動(dòng)。下面我從方案選型開(kāi)始一步步拆。1. 項(xiàng)目背景與適配思路拆解1.1 ton_dart 到底解決了什么問(wèn)題如果你對(duì) TON 鏈上開(kāi)發(fā)有了解就知道這個(gè)生態(tài)里最成熟的開(kāi)發(fā)生態(tài)其實(shí)是 TypeScript其次有 Python SDKDart 這邊能用的完整客戶端庫(kù)并不多。ton_dart 是這個(gè)生態(tài)里少有的全能型選擇它支持從助記詞生成、HD 錢(qián)包派生到賬戶余額查詢、Jetton 代幣解析、NFT 列表查詢?cè)俚綐?gòu)造并發(fā)送各種類(lèi)型的 TON 消息甚至能對(duì)接鏈上治理相關(guān)的提案數(shù)據(jù)和投票消息。對(duì)于 Flutter 團(tuán)隊(duì)來(lái)說(shuō)要在同一套代碼里同時(shí)覆蓋 iOS、Android 和鴻蒙把業(yè)務(wù)邏輯寫(xiě)在 Dart 層是最舒服的。ton_dart 的存在意味著合約編解碼、地址轉(zhuǎn)換這些純邏輯可以全部復(fù)用不需要在每個(gè)平臺(tái)上各自寫(xiě)一套 TON 協(xié)議的實(shí)現(xiàn)。我在這次適配里最看重的是它的“消息構(gòu)造”能力。TON 的鏈上操作本質(zhì)上是把一筆交易或一條消息編碼成二進(jìn)制格式然后廣播到網(wǎng)絡(luò)里去。這個(gè)過(guò)程涉及斷言Cell、引用Ref、BOC 字節(jié)流、TL-B 序列化規(guī)則手動(dòng)實(shí)現(xiàn)一遍很容易出錯(cuò)。ton_dart 把這套東西封裝成了比較干凈的 API我們只需要傳遞業(yè)務(wù)參數(shù)就能得到打包好的消息體。所以適配的第一原則出現(xiàn)了凡是不依賴(lài)平臺(tái)的純 Dart 邏輯原樣保留凡是依賴(lài)平臺(tái)的堅(jiān)決替換。1.2 鴻蒙平臺(tái)對(duì) Flutter 插件的真實(shí)限制鴻蒙應(yīng)用目前走的 Flutter 集成路徑和傳統(tǒng) Android/iOS 有一個(gè)關(guān)鍵差別Dart 側(cè)不能直接調(diào)用常見(jiàn)的原生插件自動(dòng)生成的膠水代碼因?yàn)轼櫭傻?Flutter 引擎對(duì)外提供的通道是拍平過(guò)的平臺(tái)通道。也就是說(shuō)你在 Android 上常用的MethodChannel、EventChannel、Pigeon這些機(jī)制在鴻蒙上同樣存在只是對(duì)端的實(shí)現(xiàn)語(yǔ)言變成了 ArkTS不再是 JVM 或 Objective-C。ton_dart 原樣跑在鴻蒙上的最大阻礙有三個(gè)。第一是網(wǎng)絡(luò)庫(kù)ton_dart 默認(rèn)用的 Darthttp包在鴻蒙上雖然能發(fā)請(qǐng)求但在長(zhǎng)連接、證書(shū)校驗(yàn)和連接池復(fù)用這些環(huán)節(jié)上和鴻蒙系統(tǒng)網(wǎng)絡(luò)棧有兼容差異遇到復(fù)雜鏈上響應(yīng)時(shí)容易出奇怪現(xiàn)象。第二是安全隨機(jī)數(shù)和密鑰管理助記詞、私鑰這種東西如果只存在 Dart 側(cè)的內(nèi)存里對(duì)錢(qián)包應(yīng)用來(lái)說(shuō)是不及格的。第三是簽名算法TON 鏈上主要用 Ed25519 做消息簽名鴻蒙系統(tǒng)的密鑰管理與加解密框架原生支持這個(gè)算法這給了我們用系統(tǒng)能力替代純 Dart 實(shí)現(xiàn)的絕佳條件。1.3 三方適配方案選型對(duì)比我在正式動(dòng)手前對(duì)比過(guò)三條路線。第一是全量重寫(xiě)在鴻蒙側(cè)用 ArkTS 直接實(shí)現(xiàn) TON 錢(qián)包和治理邏輯好處是沒(méi)有跨語(yǔ)言的橋接損耗但壞處是工作量大而且要重新處理地址、BOC、Jetton 元數(shù)據(jù)這些繁瑣協(xié)議維護(hù)成本極高。第二是純 Flutter 層硬跑直接把 ton_dart 放進(jìn)工程只在鴻蒙側(cè)補(bǔ)網(wǎng)絡(luò)權(quán)限這條路最快但只適合簡(jiǎn)單查詢一旦涉及簽名和安全的密鑰存儲(chǔ)就基本應(yīng)用不了。第三是橋接式適配保留 ton_dart 的協(xié)議層把密鑰生成、簽名、網(wǎng)絡(luò)請(qǐng)求、安全存儲(chǔ)這四類(lèi)能力橋接到鴻蒙原生實(shí)現(xiàn)。我選了第三種理由很直接它能最大程度復(fù)用 ton_dart 里成熟的純 Dart 邏輯又把最需要平臺(tái)能力的地方交給了鴻蒙系統(tǒng)框架。橋接的代碼量其實(shí)不多核心就是幾個(gè)方法通道和一套參數(shù)約定。相比之下全量重寫(xiě)的風(fēng)險(xiǎn)高且收益低而純 Flutter 硬跑又扛不住真實(shí)錢(qián)包業(yè)務(wù)對(duì)安全性的要求。適配完成后的整體架構(gòu)可以簡(jiǎn)單概括為Dart 側(cè)跑協(xié)議鴻蒙側(cè)跑系統(tǒng)能力中間過(guò)橋傳二進(jìn)制。2. 前期準(zhǔn)備與工程改造要點(diǎn)2.1 基線工程與依賴(lài)落地我在模擬項(xiàng)目里用的基線是鴻蒙系統(tǒng)當(dāng)前主流的 Flutter 混合工程結(jié)構(gòu)也就是在鴻蒙原生工程里掛一個(gè) Flutter 模塊Flutter 側(cè)保持標(biāo)準(zhǔn)的 pub 依賴(lài)管理。ton_dart 目前發(fā)布在 pub 倉(cāng)庫(kù)上直接在pubspec.yaml里聲明依賴(lài)就能拉下來(lái)。不過(guò)要注意版本收斂問(wèn)題ton_dart 對(duì) Dart SDK 版本有要求如果你項(xiàng)目的 Flutter SDK 太老要先升級(jí) Flutter 版本再跑依賴(lài)解析。另外要提醒一點(diǎn)因?yàn)?ton_dart 會(huì)間接依賴(lài)一些常見(jiàn)的 Dart 包在部分網(wǎng)絡(luò)環(huán)境下依賴(lài)?yán)?huì)比較慢建議提前把 pub 源的鏡像地址配好或者把整包離線緩存下來(lái)。工程落地時(shí)還要在鴻蒙側(cè)的模塊描述文件里把網(wǎng)絡(luò)權(quán)限加上否則后續(xù)所有鏈上請(qǐng)求都會(huì)被系統(tǒng)直接攔截而且這個(gè)權(quán)限要在真機(jī)調(diào)試前就確認(rèn)不然排查起來(lái)很容易繞彎路。2.2 依賴(lài)模塊的裁剪與適配工作量對(duì)照拿到 ton_dart 源碼后我沒(méi)有急著改代碼而是先把它經(jīng)歷的功能模塊摸了一遍用表格把“哪些可以直接用”“哪些需要替換”理清楚。這個(gè)動(dòng)作能幫助團(tuán)隊(duì)快速估算工時(shí)也避免在適配過(guò)程中釜底抽薪改動(dòng)核心模型。模塊ton_dart 原實(shí)現(xiàn)鴻蒙側(cè)問(wèn)題點(diǎn)適配方式地址解析與格式化純 Dart 邏輯無(wú)明顯問(wèn)題原樣保留BOC Cell 序列化/反序列化純 Dart 實(shí)現(xiàn)大數(shù)據(jù)量下性能一般但功能正確保留長(zhǎng)消息可在原生側(cè)拼接BIP39 助記詞Dart 隨機(jī)源與詞表隨機(jī)源安全性不夠鴻蒙原生生成并返回Dart 復(fù)用詞表私鑰與助記詞存儲(chǔ)內(nèi)存對(duì)象沒(méi)有系統(tǒng)級(jí)安全存儲(chǔ)鴻蒙 KeyStore 能力橋接Ed25519 簽名Dart 或依賴(lài)包實(shí)現(xiàn)需要與鴻蒙密鑰庫(kù)打通鴻蒙 Crypto 框架簽名網(wǎng)絡(luò)請(qǐng)求 Toncenter APIDart http連接池、證書(shū)鏈、網(wǎng)絡(luò)策略差異鴻蒙原生網(wǎng)絡(luò)棧接管這個(gè)表還有一個(gè)隱藏作用就是團(tuán)隊(duì)里如果有人想先做一部分可以照著表格劃分任務(wù)邊界。比如“地址解析”和“BOC 序列化”這兩塊完全不依賴(lài)平臺(tái)誰(shuí)都可以先做而“簽名”和“安全存儲(chǔ)”必須和鴻蒙側(cè)一起聯(lián)調(diào)應(yīng)該安排到后期集中攻堅(jiān)。2.3 權(quán)限聲明與安全存儲(chǔ)設(shè)計(jì)在鴻蒙工程里網(wǎng)絡(luò)權(quán)限需要在前臺(tái)模塊的配置文件中顯式聲明。如果你在調(diào)試時(shí)所有鏈上請(qǐng)求都報(bào)系統(tǒng)錯(cuò)誤第一件事就是檢查這個(gè)權(quán)限是否已經(jīng)添加。除了網(wǎng)絡(luò)權(quán)限錢(qián)包類(lèi)的應(yīng)用還在乎一個(gè)底線問(wèn)題助記詞不能被普通內(nèi)存持有太久。ton_dart 原生的做法是讓助記詞和私鑰以 Dart 對(duì)象形式存在這在普通 App 里問(wèn)題不大但在鏈上資產(chǎn)管理的場(chǎng)景里風(fēng)險(xiǎn)偏高。我的處理是把助記詞的生成和私鑰的加載都收口到鴻蒙原生側(cè)交給系統(tǒng)安全能力托管Dart 側(cè)只保留一個(gè)不落盤(pán)的會(huì)話句柄。簽名時(shí)由鴻蒙側(cè)根據(jù)句柄找到密鑰材料在系統(tǒng)安全環(huán)境內(nèi)完成簽名Dart 側(cè)只拿到簽名結(jié)果。這樣即使 Dart 層被攻擊私鑰材料也不會(huì)暴露完整。當(dāng)然這增加了一層橋接代碼但值得。3. 核心適配步驟與代碼實(shí)現(xiàn)3.1 用 Pigeon 建立穩(wěn)定的橋接通道如果方法通道的調(diào)用參數(shù)只有三五個(gè)少得可憐的數(shù)量用 MethodChannel 手寫(xiě)沒(méi)有問(wèn)題。但 ton_dart 橋上涉及的參數(shù)會(huì)包括助記詞、簽名輸入、交易消息、網(wǎng)絡(luò)返回體類(lèi)型復(fù)雜且數(shù)量多這時(shí)候我建議直接用官方推薦的橋接代碼生成工具 Pigeon把接口定義成類(lèi)型安全的 Dart 抽象類(lèi)再自動(dòng)生成鴻蒙側(cè)的存根代碼。這樣無(wú)論是 Dart 側(cè)還是 ArkTS 側(cè)都變得可控得多不用手寫(xiě)一長(zhǎng)串字符串類(lèi)型的 method 名和參數(shù)字典。一個(gè)容易被忽略的點(diǎn)是TON 的業(yè)務(wù)數(shù)據(jù)大量是二進(jìn)制格式比如打包好的 BOC 字節(jié)流不是普通 UTF-8 字符串。所以橋接協(xié)議我建議設(shè)計(jì)成以Uint8List為主、String為輔Dart 側(cè)的Uint8List到 ArkTS 側(cè)的Uint8Array有現(xiàn)成的轉(zhuǎn)換規(guī)則但一定要避免中間過(guò)程隱式轉(zhuǎn)成字符串又轉(zhuǎn)回來(lái)的“假二進(jìn)制”操作否則任何一次轉(zhuǎn)碼失誤都會(huì)導(dǎo)致 BOC 數(shù)據(jù)錯(cuò)位最終在鏈上解析成一個(gè)完全不同的消息。3.2 BIP39 助記詞與密鑰生成的鴻蒙化實(shí)現(xiàn)TON 的錢(qián)包助記詞遵循 BIP39 標(biāo)準(zhǔn)詞匯表生成流程是先用安全隨機(jī)源取 128/256 位熵加校驗(yàn)位后映射成 12/24 個(gè)單詞。ton_dart 里已經(jīng)有一整套詞表文件和校驗(yàn)算法這部分純 Dart 不需要?jiǎng)?。真正要換的是“安全隨機(jī)源”這一環(huán)因?yàn)?Dart 側(cè)的隨機(jī)源強(qiáng)度在不同平臺(tái)上表現(xiàn)不一致而生成助記詞是資產(chǎn)安全的第一步必須用系統(tǒng)級(jí)安全隨機(jī)數(shù)。在鴻蒙側(cè)實(shí)現(xiàn)時(shí)我用的是一個(gè)非常樸素的流程生成隨機(jī)熵 - 傳給 Dart 側(cè)的 ton_dart 詞表邏輯做校驗(yàn)位補(bǔ)齊和單詞映射。Dart 側(cè)拿到的是原始熵字節(jié)也就是 16 個(gè)或 32 個(gè)隨機(jī)數(shù)然后調(diào)用 ton_dart 里現(xiàn)成的recoverFromMnemonic和generateMnemonic相似的內(nèi)部邏輯。這里要注意不要用 Dart 側(cè)自己生成的隨機(jī)數(shù)去生成助記詞否則即使詞表邏輯對(duì)隨機(jī)源強(qiáng)度也不過(guò)關(guān)。為了保險(xiǎn)我在鴻蒙側(cè)還加了一次最小熵校驗(yàn)如果系統(tǒng)返回值全零或者固定模式就直接拒絕繼續(xù)。3.3 Ed25519 簽名鏈路的橋接與驗(yàn)簽TON 鏈上簽名用的是 Ed25519 算法而且簽名對(duì)象通常不是普通的可讀文本而是“消息 Cell 的哈?!?。在 ton_dart 的調(diào)用鏈里業(yè)務(wù)方會(huì)先構(gòu)造一個(gè) Cell取出它的哈希值再對(duì)該哈希做 Ed25519 簽名最后把簽名塞回消息的外層結(jié)構(gòu)中。鴻蒙側(cè)做簽名時(shí)我選擇把密鑰材料托管在系統(tǒng)安全能力里Dart 側(cè)只傳一個(gè)“密鑰句柄”和“待簽名數(shù)據(jù)哈?!?。ArkTS 側(cè)收到請(qǐng)求后調(diào)用系統(tǒng)框架的 Ed25519 簽名接口返回 64 字節(jié)的簽名結(jié)果。這里特別容易出錯(cuò)的是字節(jié)序和哈希長(zhǎng)度Ed25519 簽名輸入必須是 32 字節(jié)的原文哈希如果你不小心把哈希轉(zhuǎn)成了字符串再轉(zhuǎn)回二進(jìn)制長(zhǎng)度和內(nèi)容都可能變。簽名結(jié)果也要原樣傳給 Dart 側(cè)不能經(jīng)過(guò) JSON 序列化丟精度。為了驗(yàn)證橋接后的簽名是否可靠我在本地做了雙端驗(yàn)簽Dart 側(cè)用同一個(gè) Elliptic 曲線算法庫(kù)驗(yàn)一遍簽名鴻蒙側(cè)再驗(yàn)一遍兩邊結(jié)果必須一致。這個(gè)測(cè)試看起來(lái)簡(jiǎn)單卻能提前避免很多上鏈后“簽名無(wú)效”的悲慘事故。3.4 網(wǎng)絡(luò)層接管與消息廣播ton_dart 默認(rèn)的網(wǎng)絡(luò)請(qǐng)求能力在普通 Flutter 工程里是夠用的但在鴻蒙化之后我更建議把網(wǎng)絡(luò)請(qǐng)求也統(tǒng)一收口到鴻蒙原生側(cè)來(lái)做。原因有幾點(diǎn)鴻蒙系統(tǒng)網(wǎng)絡(luò)棧更擅長(zhǎng)處理系統(tǒng)級(jí)證書(shū)策略鏈上接口經(jīng)常返回較大的 JSON 數(shù)據(jù)原生側(cè)解析效率更好最重要的一點(diǎn)是TON 網(wǎng)關(guān)接口要求 POST 二進(jìn)制 BOC 數(shù)據(jù)內(nèi)容類(lèi)型和長(zhǎng)度控制得非常嚴(yán)格原生側(cè)更容易確保請(qǐng)求頭的準(zhǔn)確組裝。我在鴻蒙側(cè)封裝了一個(gè)通用的請(qǐng)求方法專(zhuān)門(mén)負(fù)責(zé)和 TON 生態(tài) HTTP API 網(wǎng)關(guān)打交道的 POST/GET 調(diào)用。Dart 側(cè)需要發(fā)交易時(shí)傳入已經(jīng)在 Dart 層構(gòu)造好的 BOC 字節(jié)流鴻蒙側(cè)追加 API Key如果有和 Content-Type發(fā)起網(wǎng)絡(luò)請(qǐng)求后把響應(yīng)字節(jié)原樣返回 Dart。這樣 Dart 側(cè)保持對(duì) ton_dart API 的調(diào)用習(xí)慣原生側(cè)掌控連接生命周期和錯(cuò)誤重試。實(shí)測(cè)下來(lái)這種拆分比 Dart 直連穩(wěn)定得多尤其在弱網(wǎng)切換場(chǎng)景下表現(xiàn)差距尤為明顯。4. 資產(chǎn)掌控實(shí)戰(zhàn)查詢、轉(zhuǎn)賬與代幣識(shí)別4.1 地址解析與余額查詢資產(chǎn)操作的第一步是余額查詢。TON 的地址有兩種表示友好地址和非友好地址。日常用戶看到的是以EQ或UQ開(kāi)頭的友好地址但內(nèi)部編碼和合約間通信有時(shí)需要非友好形式。ton_dart 自帶地址類(lèi)的解析和轉(zhuǎn)換這部分完全可以直接保留。余額查詢走的是 TON 生態(tài)通用的 HTTP API 網(wǎng)關(guān)請(qǐng)求參數(shù)是地址返回結(jié)果里有一個(gè)balance字段單位是 nanoTON也就是 10 的 9 次方分之一 TON。換算關(guān)系并不復(fù)雜但要提醒的是TON 的精度是 9 位小數(shù)很多新手會(huì)把 nanoTON 當(dāng)成 18 位精度來(lái)處理導(dǎo)致展示金額差出 10 的 9 次方倍這在資產(chǎn)展示場(chǎng)景里是非常嚴(yán)重的低級(jí)錯(cuò)誤。我在橋接層里順手加了一個(gè)保留 9 位精度的小數(shù)格式化工具避免上游返回的字符串在 JavaScript 或 ArkTS 的浮點(diǎn)轉(zhuǎn)換里丟精度。鏈上余額查詢還有個(gè)細(xì)節(jié)剛部署的錢(qián)包合約和已經(jīng)收過(guò)資產(chǎn)的錢(qián)包初始狀態(tài)不一樣。未激活的錢(qián)包地址在部分網(wǎng)關(guān)接口上會(huì)返回空余額或者空交易列表這種情況會(huì)在 UI 上表現(xiàn)為“查不到資產(chǎn)”其實(shí)是合約尚未激活。正確的做法是把它當(dāng)作余額為 0 處理并提供“首次轉(zhuǎn)入激活”的提示。4.2 Jetton 代幣與錢(qián)包內(nèi)資產(chǎn)識(shí)別除了原生 TON 幣鏈上資產(chǎn)里更多的是 Jetton 代幣你可以把它理解為 TON 生態(tài)里的可替換代幣標(biāo)準(zhǔn)。ton_dart 提供了 Jetton 相關(guān)的錢(qián)包和元數(shù)據(jù)解析邏輯拿到一個(gè) Jetton 錢(qián)包地址后可以向鏈上合約發(fā)起一個(gè)只讀查詢拿到它的余額和掛在元數(shù)據(jù)里的代幣符號(hào)、精度和小數(shù)位數(shù)。這里最容易踩坑的是元數(shù)據(jù)格式。Jetton 的元數(shù)據(jù)可能是鏈上全量存儲(chǔ)也可能只是一個(gè)指向中心化服務(wù)器的鏈接即 off-chain metadata。如果元數(shù)據(jù)是 off-chain 的那么解析時(shí)要額外發(fā)一次 HTTP 請(qǐng)求去拉取 JSON而且這個(gè)請(qǐng)求在鴻蒙環(huán)境下同樣要走網(wǎng)絡(luò)權(quán)限和證書(shū)棧。我建議把元數(shù)據(jù)解析單獨(dú)封裝成一個(gè)可以容錯(cuò)的模塊拿到必要字段就展示拿不到就顯示默認(rèn)占位符而不是讓整個(gè)資產(chǎn)列表因某一個(gè)代幣元數(shù)據(jù)異常而卡死。在資產(chǎn)列表中我還把所有代幣的余額統(tǒng)一轉(zhuǎn)換成以 TON 為單位的字符串來(lái)展示內(nèi)部用整數(shù)類(lèi)型保留精度。浮點(diǎn)型在跨語(yǔ)言橋接里真的不能碰哪怕一次毫秒級(jí)的精度偏差在資產(chǎn)核對(duì)時(shí)都會(huì)變成可信度災(zāi)難。4.3 轉(zhuǎn)賬消息構(gòu)造與廣播在 ton_dart 里構(gòu)造一筆 TON 轉(zhuǎn)賬本質(zhì)上是構(gòu)造一條內(nèi)部消息指定接收地址、轉(zhuǎn)賬金額、附加備注再把它塞進(jìn)發(fā)送方錢(qián)包合約的 outgoing message 中整個(gè)消息經(jīng)過(guò)簽名和打包變成一個(gè)可以被網(wǎng)關(guān)接受的 BOC。這段邏輯屬于 ton_dart 的精華適配時(shí)完全保留我做的只是把簽名和網(wǎng)絡(luò)廣播兩個(gè)環(huán)節(jié)替換成鴻蒙能力。一筆轉(zhuǎn)賬消息的完整調(diào)用鏈大致是// 構(gòu)造內(nèi)部消息 final internalMsg InternalMessage( dest: destAddress, value: TonCoins.fromNano(amountNano), body: TextMessageBody(text: memo), ); // 用錢(qián)包合約邏輯添加簽名 final wallet WalletV5(secretKey: secretKey); final externalMessage await wallet.createTransferMessage( messages: [internalMsg], seqno: seqno, ); // 序列化為 BOC final boc externalMessage.toBoc();拿到boc字節(jié)后Dart 側(cè)通過(guò)橋接層把它交給鴻蒙原生由原生側(cè)以 POST 方式廣播到 TON 網(wǎng)關(guān)接口提交成功后網(wǎng)關(guān)會(huì)返回交易哈希。注意TON 的交易廣播是“異步確認(rèn)”的接口返回哈希只代表網(wǎng)絡(luò)接受了這個(gè)包不代表交易已經(jīng)上鏈UI 層面必須區(qū)分“已廣播”和“已上鏈”兩種狀態(tài)否則用戶會(huì)誤以為轉(zhuǎn)賬一定成功。5. TON 治理實(shí)戰(zhàn)精密提案與鏈上投票5.1 從技術(shù)視角理解 TON 鏈上治理說(shuō)到 TON 治理很多人第一反應(yīng)是“和現(xiàn)實(shí)世界里的投票有什么關(guān)系”。其實(shí)鏈上治理完全是一個(gè)技術(shù)流程網(wǎng)絡(luò)的重要參數(shù)、協(xié)議升級(jí)、提案的執(zhí)行都由一組智能合約定義持幣者或驗(yàn)證者通過(guò)向這些合約發(fā)送特定編碼的消息來(lái)表達(dá)自己的態(tài)度。對(duì)普通用戶來(lái)說(shuō)參與治理的動(dòng)作往往就是“對(duì)某個(gè)提案投一票”而這一票本質(zhì)上是一條結(jié)構(gòu)嚴(yán)格的消息。這套機(jī)制天然符合“鴻蒙級(jí)鏈上專(zhuān)家”的主題。一個(gè)真正有用的鴻蒙錢(qián)包不應(yīng)該只做轉(zhuǎn)賬還應(yīng)該讓用戶在手機(jī)端直接讀取提案、構(gòu)造投票消息、完成簽名和鏈上提交。ton_dart 對(duì)這部分的支持主要集中在 Cell 構(gòu)造和消息簽名上而治理提案的讀取則依賴(lài)鏈上數(shù)據(jù)接口和合約狀態(tài)解析。5.2 提案讀取與狀態(tài)解析讀取治理提案時(shí)一般有兩個(gè)數(shù)據(jù)來(lái)源一是鏈上合約存儲(chǔ)的提案數(shù)據(jù)二是索引服務(wù)整理的提案列表。前者更原始后者更友好。我的做法是在 Dart 側(cè)用 ton_dart 的合約調(diào)用封裝請(qǐng)求鏈上提案狀態(tài)再把返回的 Cell 數(shù)據(jù)映射成結(jié)構(gòu)化的提案對(duì)象。提案對(duì)象至少包含提案編號(hào)、提案哈希、經(jīng)過(guò)時(shí)間、投票狀態(tài)、相關(guān)合約地址這些字段。解析過(guò)程中最容易出問(wèn)題的是“提案編號(hào)”和“提案哈希”的類(lèi)型處理。它們可能是大整數(shù)或者二進(jìn)制哈希跨語(yǔ)言傳輸時(shí)如果走 JSON 字符串接口一定要明確規(guī)定編碼格式我用的是小端十六進(jìn)制字符串統(tǒng)一表示兩端各自解析避免出現(xiàn)“0x 到底要不要帶”之類(lèi)的低級(jí)分叉。另外提案投票窗口是有時(shí)間限制的鏈上判斷是否在窗口內(nèi)完全依賴(lài)時(shí)間戳。時(shí)區(qū)換算這類(lèi)問(wèn)題在鴻蒙原生側(cè)有時(shí)會(huì)受系統(tǒng)時(shí)區(qū)設(shè)置影響我建議統(tǒng)一使用 UTC 時(shí)間戳在 Dart 側(cè)做窗口判斷不要在原生側(cè)依賴(lài)本地時(shí)區(qū)字符串。5.3 投票消息構(gòu)造與簽名上鏈投票消息的構(gòu)造邏輯可以概括成三步把投票意向編碼進(jìn)一個(gè) Cell用簽名密鑰對(duì)該 Cell 的哈希做 Ed25519 簽名再把簽名和消息主體一起打包成外發(fā)消息。ton_dart 里已經(jīng)提供了通用的 Cell 構(gòu)造方法我們只需要按具體治理提案的規(guī)范填字段。為了節(jié)省你們查文檔的時(shí)間我整理了一個(gè)通用的投票流程偽代碼// 填入投票目標(biāo)合約地址 final targetAddress Address.parse(proposalContractAddress); // 構(gòu)造投同意票的行為體 final voteCell beginCell() .storeUint(voteOptionCode, 32) // 投票選項(xiàng)編碼 .storeUint(proposalId, 64) // 提案編號(hào) .storeAddress(walletAddress) // 投票人地址 .endCell(); // 用錢(qián)包簽名并在外層包裝 final signedCell await signCell(voteCell); final externalMessage await wallet.createTransferMessage( messages: [ InternalMessage( dest: targetAddress, value: TonCoins.fromNano(voteFeeNano), body: signedCell, ), ], seqno: seqno, );這里有個(gè)實(shí)戰(zhàn)心得提案合約往往對(duì)消息體有嚴(yán)格格式要求任何字段順序錯(cuò)位都可能導(dǎo)致鏈上解析失敗而鏈上錯(cuò)誤往往不會(huì)給出明確的“字段錯(cuò)位”提示只會(huì)顯示一個(gè)通用的失敗狀態(tài)。所以務(wù)必在公司內(nèi)部側(cè)提供一個(gè)“解碼回顯”的調(diào)試工具把構(gòu)造好的消息再?gòu)?BOC 反解回字段文本肉眼確認(rèn)沒(méi)有問(wèn)題再?gòu)V播。我在模擬項(xiàng)目里就是靠這個(gè)工具定位了好幾處字段順序的問(wèn)題。投票上鏈之后還可以通過(guò)提案合約的只讀接口查詢投票結(jié)果權(quán)重。這個(gè)過(guò)程同樣可以封裝成鴻蒙應(yīng)用里的一個(gè)獨(dú)立模塊用戶投完票立刻能看到當(dāng)前累計(jì)結(jié)果體驗(yàn)會(huì)比單純的廣播返回好很多。這種“簽名-提交-回讀”的閉環(huán)才是把一個(gè)普通錢(qián)包升級(jí)成鏈上治理工具的關(guān)鍵。6. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄6.1 高頻問(wèn)題速查表適配過(guò)程中踩過(guò)的坑五花八門(mén)我整理了一個(gè)高頻問(wèn)題對(duì)照表如果你在實(shí)操中也遇到類(lèi)似現(xiàn)象可以直接照著查。現(xiàn)象根因解決辦法依賴(lài)解析失敗ton_dart 版本與本地 Dart SDK 不匹配先升級(jí) Flutter/Dart 基線再重新 pub get廣播 BOC 時(shí)報(bào)數(shù)據(jù)無(wú)效跨語(yǔ)言傳二進(jìn)制時(shí)被轉(zhuǎn)成字符串丟字節(jié)橋接層全程使用字節(jié)數(shù)組禁止中間字符串化簽名結(jié)果驗(yàn)簽失敗簽名輸入不是 32 字節(jié)原始哈希檢查取哈希流程確認(rèn)結(jié)果是 Uint8List(32)余額顯示差 10^9 倍精度單位誤當(dāng) 18 位處理統(tǒng)一按 nanoTON 解析保留 9 位小數(shù)助記詞生成后無(wú)法導(dǎo)入隨機(jī)熵沒(méi)有通過(guò)安全隨機(jī)源產(chǎn)生固定使用鴻蒙原生隨機(jī)數(shù)為熵源提案投票一直失敗消息字段順序或類(lèi)型編碼不一致構(gòu)造后先解碼回顯再用測(cè)試網(wǎng)驗(yàn)證網(wǎng)絡(luò)請(qǐng)求偶發(fā)超時(shí)Dart http 連接池與鴻蒙網(wǎng)絡(luò)棧兼容問(wèn)題改由鴻蒙原生網(wǎng)絡(luò)棧統(tǒng)一發(fā)起網(wǎng)絡(luò)請(qǐng)求這張表在我的適配筆記里作用非常大相當(dāng)于一份速查清單每次聯(lián)調(diào)出現(xiàn)異常時(shí)我基本都先用這個(gè)清單排除掉最基礎(chǔ)的問(wèn)題再深入到具體的協(xié)議細(xì)節(jié)里。6.2 三條值得記住的避坑經(jīng)驗(yàn)第一不要試圖在 Flutter 的 isolate 里直接消費(fèi) ton_dart 的完整 BOC 解析能力去處理超大的鏈上消息。Dart isolate 的線程模型和鴻蒙側(cè)的原生線程調(diào)度方式存在差異大對(duì)象在 isolate 間復(fù)制時(shí)會(huì)有不可控的延遲和內(nèi)存峰值。對(duì)于消息構(gòu)造、簽名這類(lèi)高頻且對(duì)延遲敏感的操作盡量保持在主 Isolate 或者原生側(cè)完成不要為了“不卡 UI”而盲目丟給后臺(tái) isolate。第二字節(jié)序問(wèn)題比想象中更陰險(xiǎn)。TON Cell 里很多字段按位存儲(chǔ)跨語(yǔ)言讀取時(shí)Bit 的排列順序和字節(jié)序不是同一個(gè)概念。我第一次適配時(shí)只檢查了字節(jié)數(shù)組的長(zhǎng)度沒(méi)有檢查位級(jí)序列化邊界結(jié)果在真實(shí)提案數(shù)據(jù)解析時(shí)多讀了一個(gè) Bit導(dǎo)致整個(gè)后續(xù)字段錯(cuò)位。排查了將近一晚上最后是拿一個(gè)已知正確結(jié)構(gòu)的 Cell 做了逐 Bit 對(duì)照才找到問(wèn)題。建議所有字段編解碼測(cè)試都準(zhǔn)備一個(gè)“黃金樣例”用已知輸入輸出對(duì)來(lái)驗(yàn)證。第三測(cè)試網(wǎng)絡(luò)和主網(wǎng)絡(luò)的數(shù)據(jù)要嚴(yán)格隔離。鴻蒙應(yīng)用如果同時(shí)支持測(cè)試網(wǎng)和主網(wǎng)最容易出現(xiàn)的問(wèn)題是簽名消息在測(cè)試網(wǎng)驗(yàn)證通過(guò)切到主網(wǎng)環(huán)境就因?yàn)楹霞s版本不一致直接失敗。我在配置里把網(wǎng)關(guān)地址、合約版本、網(wǎng)絡(luò)代號(hào)全部做成了運(yùn)行時(shí)參數(shù)并且給每一個(gè)資產(chǎn)信息和投票入口都打上網(wǎng)絡(luò)標(biāo)記從源頭上避免用戶誤操作。我個(gè)人實(shí)際用下來(lái)的感受是鴻蒙化 ton_dart 這件事最難的地方不在 TON 協(xié)議本身而在于你對(duì)兩個(gè)生態(tài)各自邊界是否足夠清楚。誰(shuí)負(fù)責(zé)純邏輯誰(shuí)負(fù)責(zé)系統(tǒng)能力邊界一旦劃清了工作量大頭就只剩橋接層的聯(lián)調(diào)。最后再分享一個(gè)小技巧適配完成后先做最小閉環(huán)驗(yàn)證從“生成助記詞 - 本地簽名 - 構(gòu)造消息 - 廣播測(cè)試網(wǎng) - 回讀確認(rèn)”五步走通再往錢(qián)包頁(yè)面、治理模塊、資產(chǎn)列表這些功能上鋪開(kāi)。比一上來(lái)就接一堆特性要穩(wěn)妥得多排查問(wèn)題時(shí)也能把變量壓縮到可控范圍。后續(xù)如果你想在這個(gè)基礎(chǔ)上擴(kuò)展可以考慮接入去中心化交易所的聚合跳轉(zhuǎn)、多簽錢(qián)包或者更深度的 Jetton 跨合約交互這些在 ton_dart 的協(xié)議層里都已經(jīng)鋪好了地基。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
十八禁啪啪视频| 丝袜制服字幕在线| 日本欧美韩国国产在线| 亚洲色鬼| 啊啊啊好爽快点啊啊啊嗯嗯| 97激情97激情| 大地资源在线观看中文第二页| 国产色图乱伦| 亚洲 无码 偷拍| 啊啊啊啊免费视频| 色臀AV| 久久久久九九九九九| 风骚少妇视频中文字幕| 国产又长又大又粗的视频| baiduhicn.com。| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 色欲av一区二区三区蜜芽| 欧美亚洲图片| 特级特黄一级毛片免费| 国产树林里野战在线看| 国产精品网站www| 色网色网色网色网色网色| 亚洲精品黄码久久久久| 色狠狠一区二区三区香蕉| 91操操操操| 操操操五月天婷婷丁香影院| 亚洲激情在线| hd成人一区二区在线| 又大又长又粗又爽又黄| 日韩午夜精品一区二区三区电影| 美女裸体无遮挡永久免费观看网站| 精品中文字幕一区二区| 久9re热视频这里只有精品| 婷婷丁香五月综合| 国产一区二区a毛片| 精品无码一区二区三区色欲| 久久精品超碰| 日本精品加勒比海一区| 国产高清在线自在拍69| 黄片免费日韩| 中文字幕在线免费观看2| 日韩中文字幕熟妇人妻| 亚洲第一精品在线视频| 天天亚洲| 蜜臀网址在线| 亚洲日产专区婷婷| 屌逼传媒| 国产日韩欧美三级片 | 国产熟女二区| 艹少妇网站| 亚洲 欧美 第一页| 国产一区二区欧美日本| 亚洲一二三四区机械| 国产精品操| 超碰99热中文字幕| 夜色五月天| 另类小说五月天| 蜜桃无码AV一区二区| 一级AV性爱| 久久久久久久久久久久九| 色婷婷五月综合| 精品少妇99| 欧美成人AⅤ大片在线观看| 大香蕉综合久久| 精品无码久久久久久国产浪潮| 射丝袜高跟鞋99| 人人操人人干xxx| 美国美女AV在线| 色逼综合| 欧美日韩青操| 啪啪啪综合网| 国产欧美日本亚洲精品 | 久操高青| 97色婷| 亚洲性爱乱操x| 精品人妻久久久久一区二区三区| 簧片免费看视频| 亚洲色图美腿丝袜| 婷婷激情五月天小说网| 国产精品久久久久9999小说| 91黑丝少妇| 国产成年女人免费视频播放a| 蜜臀色乳| 亚洲色图久久精品蜜| 日韩一级性爱无码| 成人青青草原伊人| 韩国国产欧美情侣视频在线| 嗯嗯啊啊视频在线看| 人人做天天爱| 97天天操| 久99在线免费观看视频| 亚洲人码13| 粉嫩国产精品久久粉嫩| 欧美传媒| 欧美天天在线| 久久视频少妇美女| 一直超碰| 综合网久久| 亚洲男人天堂2019| 狠狠穞A片一區二區三區| 嗯啊视频免费在线观看| 免费看黄片现成| 久久久久久九九九| 欧美性性性| 夫妻AV网站| 丝袜av一区二区三区| 理论久久婷婷网 8| 色哟哟国产精品免费网址| 97碰在线视频| 色五91| 91麻豆va国产精品| 午夜精品视频777| 久久久精品无码亚免费| av无码精品久久久久| 一本精品日本在线视频精品| 亚洲蜜乳av| 熟女这里只有精品6| 日韩熟女操逼| 大色综合网| 男人的天堂一区三区| 国产乱婷婷精品二区三区| 亚州综合色| 国产精品美女久久久久久网站| 夜夜爽爽爽| 家庭乱伦国产| 91社操逼| 九九热精品| 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 天天看精品动漫视频一区| 2023天天操夜夜操| 中国一区二区亚洲人妻| 五月丁香综合网| 一区中文字幕二区日韩| 91女优在线观看 | 久久人人爽人人爽人人片Ⅴ| 日韩精品99999| 嗯……啊…嗯嗯…啊…好舒服| 亚洲综合在线高清| 中文字幕欧美日韩三级| 日韩9999| 欧美视频一区二区三区| 免费观看国产不卡av| 大香蕉国产中文自拍| 久久久久国产| 精品国产一区探花在线观看| 1禁看欧美黄片免费看| 95精品在线| 亚洲自拍青操视频| 操逼天美3区| 国产伦精品一区二区三区视频女| 蜜臀av网址| 日韩欧无码一区二区三区免费不卡| 欧美性爱中文字幕无线码| 九九AV| 97视频在线视频| 沈阳熟女高潮对白视频| 少妇无码太爽| 麻豆三极片| 亚洲无码色| 啊啊啊男女| 日韩一级特黄av毛片| 色鬼在线综合| 北约熟女超碰| 天天超级碰碰碰| 无套内射性感少妇视频| 99色色网| 九七超碰人人乐| 碰碰在线视频| 中文字幕一区二区免费在线| 欧美天天影院| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 人人妻人人色一区二区三区| 青青青操| 婷婷亚洲综合| 午夜亚洲国产理论秋霞| 日韩性色| 中国少妇啪啪视频| 中文精品少妇天堂| 久久久久久久78| www99热| 波多野结衣之双飞调教在线播放 | 久久五月天婷婷丁香中文字幕| 精品无人区麻豆乱码1区2区图片| 久久综合女优| 亚洲精品久| 日韩少妇一区二区三区| 免费国产电影一区二区| 国产精品国产精品国产| 四虎精品永久在线观看| 97亚洲欧美日韩| 国产乱码久久| 爱爱动态试试看6 0秒| 天天躁日日躁AAAXX| 人人摸人人干人人拍97| 日韩国产乱子伦App| yiqicaoav| 欧美色图91| 老鸭窝在线视频播放| 国产精品视频| 国产欧美日韩臀| 蜜桃久久久久久| 久久人妻丝袜一区二区三| 亚洲AV无码国产成人| 欧美1区二区三区公司| 丁香色狠狠色综合久久小说| 久久免费少妇| 超清中文乱码字幕| 91老熟女| 国产v片在线免费观看| 国产午夜精品在线观看| 精品国产乱码久久久久久网站入口| 96精品一区| 欧美色图97| 久久9精品网站| 中文字幕精品乱码| 国产精品3| 日日日日做夜夜夜夜做无码97| 热的中文 热的有码 热的国产| 激情欧美日韩女同久久| 欧美日韩亚洲五月天婷婷| 神马午夜久久久| 91性高| 亚欧洲一区二区视频| 人妻 欧美亚洲| KK色在线影院| 日日骚中文字幕| 麻豆美女丝袜人妻中文| 为用户提供免费看黄网址在线观看| 国产一区二区三区免费视频在性观看| 亚洲伊人a线观看视频| 乱伦1色页| 99re公开精品免费视频| 六六久久日韩不卡| 大香蕉99热| 欧美日韩天堂| 久久午夜神马| 26uuu成人影片| 成年人一级黄色毛片大全在线观看| 99天堂网| 97精品国产精品免费观看| 中文字幕av一区二区三区人妻少妇| 殴美色网| 青娱乐国产盛宴视频| 亚洲四虎熟女精品| 九九久久一区二区三区| 91色亚洲| 乱伦AVxx| 99热99re超碰精品| 97操综合| 国产无码高清操逼视频| 熟妇在线视频一区二区| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | www.99中文字幕| 狠狠激情综合狠狠操中文字幕| 久久综合99| 欧美天天综| 亚洲综合色图欧美| 久综合国内精品自在自线| 秋霞曰韩R级| 999狠狠综合| 日日噜噜夜夜久久亚洲一区二区| 国产乱子伦一区二区三区在线观看| 极品销魂美女一区二区| 97人人射| 欧美在线干| 少妇久久久久久| 日本高清_区二区三区| 欧美久久草熟女| 91蜜臀人妻中文字幕在线| 天天射天天| 久久免费精彩视频| 亚洲高清在线se| 日本中文熟女视频| 国产欧美伊人| 欧综合网| 日韩中文字幕视频在线观看| 欧美大片一区二区三区| 国产亚洲性生活视频播放| 噜噜噜狠狠色综合| 国产精品69久久久久久久| 国产精品亚洲无码| 97bbn| 综合av社区| 欧美精品成人亚洲| 欧美96精品在线| 欧美视频边做饭边橾| 97国产天堂岛| 欧美色视频在线| 超碰性爱97| 精品高潮| 日本免费不卡二区| 最新亚洲人成网站在线影院| 欧美亚洲第1页| 亚洲日韩国产精品| 91在线限制级| 岛国在线免费视频| 欧美在线中M| 日韩免费看黄片| 桃色人妻在线视频| 日韩亚洲精品一区二区| 91影视亚洲| 久久久久久久国产a∨| 国产久久久久影院老熟女| 日韩在线一区二区| 91国产丝袜美女| 国产 v乱码一区二| 91爱| 99在线观看无大码| 另类专区在线观看| 91精品国产一区三一| 91N欧美| 伊人热综合| 96AV久久久| 熟女这里只有精品6| 日韩精品99久久久久久中文字幕 | 厕所偷拍在线| 亚洲免费在线探花| 超碰天天去日穴| 精品超碰中文在线| 综合五月婷婷亚洲一区| 蜜桃传媒视频第一区入口在线看| 中文字幕大片三级狠狠干| 精品无码久久久久久久杏吧| 亚洲区限制级| 99啪啪视频| 绯色一区二区三区不卡少妇 | 天天色天天干天天爱| 久久久久久久9最新免费视频观看| 久久一区二区三区入口| 96精品久久| 久久天天躁日日躁狠狠躁| 成人八戒网站| 操逼网站网站| 欧美桃色网| 蜜桃久久久久久久| 日韩九区| 国内毛片国产专区二| 成人性交午夜免费片| 久久精品免费| av天堂手机版追回 | 国产欧美精品日韩区二区麻豆天美| 操逼操2| 91无摭挡| 97日视频| 熟女天天干| 亚洲欧美精品福利在线| 国产精品无码久久久久2025| 九九九九九精品视频| 日本久久综合| 中美日韩毛片| 亚洲中文字幕97久久精品少妇| heyZO天然素人无码AⅤ专区| 九九九精品美女| 99精品人人爽| 国产美女精品| 一本正道久久熟女| 久久麻豆一区二区| 综合色图亚洲欧美| 九九色综合| 亚洲国产奇米影视久久| av在线不卡一区二区三区| 欧亚日韩一区在线| 久久久偷拍| 97在线欧| 亚洲人综合| 99只有精品| 亚洲限制级在线| 大奶啊啊好爽| 精品视频日日夜夜| 嗯嗯啊操我| 色婷婷电影网| 天天操夜夜操| 91neishe| 天美麻豆精品视频99| av凤凰久久久| 人妻少妇av在线观看| 日本性爱网址| 亚洲无线码一区国产欧美国| 天堂中文日本在线观看| 亚洲激情在线| 草b在线 | 免费岛国一级片| 精品亚洲天堂| 久久久久久久唑| 精品少妇高潮久久| 成人性交午夜免费片| 中文字幕无码不卡啪啪| 老鸭窝在线视频播放| 国产精品一区二区后入| 色九九综合AV| 美女黄页网站| 久久久96| 乱伦一二三| 午夜舔阴达高潮视频免费看| 亚洲无码太久| 蜜乳性色无码专日粉嫩骚逼AV| 久久国产免费激情视频| 在线看片国产精品每日更新| 777奇米影视777四色| 中文字幕在线日亚洲9| 五月丁香激情综合| 久久婷婷一区二| 亚洲熟妇无码一区二区三区| 九九九影院| 国产熟女自拍| 精品少妇999| 国产乱伦性爱区| 日本视频在线观看污污污| 中文字幕一区日韩精| 综合熟女| 亚洲欧洲无码一区夜| 亚洲se电影| 国产精品乱码久久| 国产一进一出视频网站| 久久久久久久人妻| 国产丰满熟夫69mpp| 色97综合中文字幕| 亚洲男人综合| 国产小u女在线观看| 国产亚洲人妻综合日韩 久久| 欧美亚男人的天堂| 极品出轨视频网站| 手机在线A片| 免费精品99| 伊人久久大香线综合无码| 亚洲综合草草| 韩日色费| 亚洲丝袜二区| 大香蕉青青9| 色吧 综合| 久久‘黄片视频| ,国产乱人伦精品一区二区三区| 97精品在线| 狠狠操狠狠操操| 午夜精品久久久久久久99蜜桃一| 91大神电影天堂| 久草电影网| 日韩性爱1级片视频| 五月丁香六月激情| 亚洲综合 欧美| 1000部熟女视频在线观看| 国内精品久久久久影院亚洲| 成人在线视频一区| 日本视频在线中文字幕| 91chinese在线| 超碰伊人在线| 国产精品女生av| 国产女人高潮视频| 久久久78| a网站免费观看| 九九人妻| 国产尤物AV尤物在线观看不卡| 欧美熟妇人体| 久久专区| 国产av白丝| 欧美天堂在线| 玖玖婷婷五月天| 97jingpin| 国产东北女人在线视频| 久噜噜| 成人97人人超碰人人| 久久久一区二区三区四曲免费听| 国产sv美女内射| a在线观看| 久久久久久99999国产精品| 美女极品一区二区三区| 骚逼自拍99| 亚洲最新av无码成人精品区| 青青草字幕AV| 一级特级aaaa毛片免费观看 | 欧美激情区| www.婷婷| 亚州综合| 久久久婷婷| 免费αV在线视频| 亚洲精品天天影视综合网| 操一操摸一摸| 嗯嗯啊好大| 精品久久久久久中文| 校园春色宗合网| 精品亚洲国产成人av网站| 天天操美美| 国产剧情AV不卡在线观看| 亚洲国产中文字幕| 青青草日韩无码| 亚洲人妻久久| 激情综合av| 玖玖资源综合在线视频| 四虎精品永久在线观看| 色婷婷aV一区二区三区麻豆综合| 日韩无码精品综合久久| 熟妇国产免费一区| 久热伊人| 日韩欧美午夜一区二区| 97在线资源| 综合色色网| 97久久超碰| 亚洲综合性网址| 欧美专区日本专区| 亚洲高清自拍| 欧美日本天堂| 97av在线视频| 免费黄色片。| 欧美碰碰综合色| 美女大乳久久久久久久女人18| 变态乱伦伪娘灌肠一区二区| 暴力av在线| 午夜天堂网| 人人做人人妻人人夜视频| 久久久久久综合久久伊人蜜月| 欧美最婬乱婬爆婬性视频| 色哟哟511老熟女| 久久 精品| 国产噜噜噜噜噜久久久久久久久| 这里只有精品视频| 精品一啪| 性爱乱伦视频免费| 欧美黄业| 一本色道久久综合亚洲二区三区| 成人色女网| 欧美一级色| 韩国一级婬片A片无码天美| 欧美色97| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 97超碰中文| 91熟女熟妇视频网站| 啪啪免费| 欧美gv在线观看| 91中文字幕制服丝袜免费视频| 中文字幕-区二区三区四区视频中国| 亚洲熟女av日韩熟女| 中字幕人妻一区二区三区| 亚洲一区二区中文字幕| 亚洲 欧美 综合 91| 中文字幕版| 99在线免费视频| 日日碰狠狠添天天爽超| 日韩在线性爱免费视频| 精品国产Av无码久久久亚洲| 天天综合网~91| 综合情欲网| 国产噜噜噜噜噜久久久久久久久| 操美女人妻| 大香蕉伊利av| 亚洲熟妇图片| 97久精品| 江都AV在线| 97超碰69| 中文字幕一区二区三区蜜臀| 夜夜爽爽爽| 天天干,夜夜爽| 91精品久久久久久综合五月天| 91精品无码人妻系列| 高清成年美女黄网站免费大全| 高清国产无码av| 毛片久久| 久久久久久久九九九九九九| A级国产欧美激情在线| 丁香九月婷婷| 亚洲成a人v欧美综合天堂下载| suv精产一二三区| 精品视频久久| 性爱视频无打码在线观看| 国产狂喷潮在线精品| 久久AV无码AV| 五月天久久综合网| 久久久久久国产手机AV| Blackedraw视频一区二区| 婷婷午夜成人色中色| 精品在线观看视频在线| 亚洲成人综合在线| av天天在线观看| 97色插| 欧美精品久久96人妻无码| 操b网站亚洲无码| 亚洲日韩熟女人妻高清在线| 精品少妇一区二区三区| 欧美色图电影| 牛牛AV人人夜夜澡人人爽| 日韩人妻一区二区| 人人操人人摸人人看人人干| 无码日韩网站| 九九热免费国产视频婷婷伊人五月 | 干少妇视频| 91被操| 蜜乳性色无码专日粉嫩骚逼AV| 91人妻Pr| 在线天堂999| 黄片www视频免费| 久久午夜色播影院免费高清| 性老妇一区二区三区| 欧美页片| 国产成人免费观看在线视频| 亚欧洲一区二区视频| 欧美一级A片不卡视频。| 一区二区 电影 亚洲| 超碰色男人操熟女| 91久久久久久久| 欧美成人一区二区三区在线播放| 欧美男人的天堂| 一区二区三区 丝袜 高跟 美腿| 久热91| 中日韩免费看男女操逼大全| www.高清无码诱惑一区.com| 粉嫩在线一区二区懂色| 91bbb| 国产精品久久久久久久久久久久久久久久 | 岛国在线免费视频| 999九九九九国产动| 97爱爱爱综合| 新久久AV| 成年无码动漫av片无尽在线| 乱子伦一区二区三区国产精品| 久久老子无码午夜伦不卡| 91久久婷婷| 97精品综合久久网| 九九热免费国产视频婷婷伊人 | 国产一区二区久久| 18精品一区| 国产高潮AA片免费看| 日本人妻中文字幕精品| 九九热三级片| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 成熟熟女国产精品一区二区| 九九九九久久久| 黄色一级视| 26UUU欧美激情一区二区| 翔田千里AV无码秘 三区| 国产丝袜一区二区三区| 综合久久99亚洲人妻中文在线| 中文字暮97| 激情五月综合网| 99久久婷婷| 免费看一级a性色生活片久久无| 大香蕉黄色一级片免费看| 国产日韩精品suv| 啪啪视频免费在线观看| 97超碰超碰| 中文字幕蜜乳av| 国产在线观看一区二区三区| 国产精品白领在线观看 | 婷婷五月天补不补| 青青爽| 97爱爱影院| 丝袜av一区二区三区| 欧美天堂亚洲电影院一区在线播放| 99热导航| 蜜臀久久精品久久久久视频| 九七人妻在线| 欧美综合天堂| 国产中出内射一区二区| 欧美亚洲一级在线观看| 大香蕉一线视频| 久久久久久久人妻| 亚洲淫乱骚妇AV| 人人澡人人澡人人| 啪啪综合网| 无码av永久免费专区网站| 超碰91在线| 日韩人妻网站| 激情国产乱伦Av| 九色PORNY9l原创自拍| 日日碰狠狠添天天爽超| 乱操乱伦AV| 婷婷天堂站| 日韩天天综合| 夜夜影视四色| 亚洲无码精品AV久久久| 精品综合久久久久久97| 久久一区无码| 亚洲一区中文字幕一区| 激情 欧美 亚洲 小说| 欧姜老司机| 激情五月天校园春色网| 国产夜夜操| 久久婷婷六月综合| 大香蕉免费乱伦视频| 精品人妻夜夜草| 人人操,人人插| 91情色| 18禁免费视频| 日韩成人电影AV| 五月天春色激情网| 国产精品一二三| 天天看精品动漫视频一区| 最新国产亚洲精品精品国产亚洲综合| 狼人综合婷婷激情四射 | 亚洲一级特黄大片在线播放91| 中文久久爆乳| 人妻少妇三级| 国产精品九九九| 欧美麻豆成人同性GⅤ在线| 久久久人体| 无码男人天堂| 丁香五月影院| 久久精品国产亚洲5555| 啪一啪免费视频| 欧美亚洲影视| 留下AⅤ黄色片| 操逼网站网站| 婷婷探花久久精品一区| 亚洲色人妻综合| 性做久久久久久久| 中文字幕天堂在线| 熟女精品一区二区在线观看| 国产无马av| 100啪啪视频大全| 亚洲 欧美 日韩另类 麻豆| 亚洲欧洲另类| 日韩在线一区二区| 免费视频一二三区| 日韩精品9区| 色婷婷影院| 天天躁日日躁AAAAXXXX国产 | 夜夜爽33333| 亚州操逼图| 91综合色噜噜| 久久久久99精品成人片蜜臀| 91精品91久久久久77777俄罗斯老妇姓x| 蜜臀AV成人精品蜜臀AV久久| 人妻日日干| 51久久夜色精品国产麻豆| 抽插亚洲无码| 呻吟 欧美 日本 中出| 午夜精品久久久久| 97天天爽| 91大胆欧美| 欧美午夜精品久久久久久3D| 日韩精品黄片免费观看| 一区二区三区黄色片a| 国产女同在线观看视频| 少妇熟女一区二区三区| 国产人妻久久精品一区二区三区| 少妇色综合| 97干天天| 亚洲日韩久久精品一区| 亚州色图欧美| 九九av| 国产吹潮女在线观看| 丰满人妻一区二区中文| 中文在线视频| 中文字幕第二页| 国产尤物在线三区| 亚洲色图91| 亚洲熟伦熟妇AV无码春色| 亚洲 暴爽 AV人人爽日日碰| 91亚洲色图| 东京热视频网| 色噜噜人妻丝袜a∨先锋影 | 黄色高清无码无码破解免费暗网| 在线视频免费播放一区| 夜夜嗨绯色| 久久久涩| 午夜性生活av免费在线看| 好淫网一二三视区| 神马午夜久久久| 97视频在线视频| 超碰在线一区二区三区| 伊人五月天婷婷| 熟女突然公开看18禁影片| 热久久精品| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 另类图片五月| 97超碰久| 欧美一区二区三区不卡高清视频| 成人av福利在线观看| 欧美一区二区亚洲天堂| 国产男女无套97| 中文有码9| 久久91精品国产9丨久久分亭| 婷婷五月天色| 日韩熟女操逼| 夜色五月天| 欧美日韩亚洲少妇寂寞影院正在播放 | 99e久久国产精品| 久热9| 超碰视97中文| 国产日韩区| 哈哈操电影| 天天插天天操| 玖日综合网| 国产AV久久野战精品| 人妻天天爽| 国语少妇精| 天天爽天天操啊啊啊| 日韩成人大片一区二区| 欧美线天码中字| 日韩成人精品中文字幕| 大香蕉伊人网| 中文字幕一区二区三区视频播放| 五月天偷拍| 涩涩久久精品| 日韩猛交| 午夜黄色免费在线观看| 一区 欧美 日韩 麻豆| 亚洲人妻久久久| 啪啪AV导航| 97超碰逼| 精品国模无码| 大香蕉伊人色偷偷在线| 久久久久久久久久久久久久久久9| 国产精品国产精品国产| 裸体美女免费看网站青草| 欧美亚洲国产日本在线,久久精品国产| 97资源久久| 综合色图区| 欧美另类天堂| 久久久久久久精| 日本色婷婷| 玖玖爱在线视频免费观看| 欧美日韩亚洲五月天婷婷| 国产一区在线观看无码AV| 一区二区三区男人的天堂| 天天干天天拍| 熟女精品va中文字幕| 三四中文字幕| 射丝袜大香蕉| 欧洲综合视频| 美中日韩无码| 老司机午夜精品视频| 亚洲中字慕不卡| 男人的天堂在线2| 人妻99p| 国产操逼视频在线观看| 成人一二三区| 大香蕉啪啪啪啪在线| 久久久人体| 亚洲aV性爱| 2019天天干天天操| 国产精品嫩草影院午夜两性| 大香蕉人妻久久| 天天干1区2区在线| 九九九九九九成人| 久久精品天美| 欧美黑人与女人91~| 精品成人动漫一区二区| 久久男人的天堂| 青青草日韩免费观看高清在线| 九九性视频| 福利视频一区二区微拍| 老司机午夜精品视频| 天天影视综合色| 在线小视频| 91麻豆天美国产| 亚洲情色一区综合| 欧美午夜色妇色鬼| 国产农村妇女精品1区二区| 混色激情av| 亚洲美女精品| 九久9热| 99re这里只有精品3| 日韩AV中文字幕电影| 啊啊啊好湿久久| 亚洲激情天堂网| 日韩色女精品| 欧美视频一区二区三区| 无套后入双马尾| 精品人妻一二三| 欧亚无码视频| 中文字幕一区电影在线观看| 人妻精品一区二区在线| 五月天婷婷影院| 久久偷拍人| 自拍第一页| 久久久久九九九九| 人妻无一区二区三区| 久久精品国产亚洲AV片多多| 激情啪啪拍91| 五月天春色激情网| 中文字幕免费看| 天天澡天天爽日日AV| 国产精品婬乱一级毛片彝族| 亚洲天堂99| 97看操| 天堂成人网| 美女一区二区国产精品| 丰满人妻一区二区三区在线| 日韩天天本| 96精品久久久久久久久久| 免费一级性爱久久| 国产欧美第五页| 久久综合久色欧美综合狠狠 | 一二三四视频中文字幕在线看| 91小视频| 久久香蕉超碰97国产精品 | 人人手机欧洲亚洲国产人妻| 日本五区不卡| 国产精品自拍xxxx| 中文字幕88av在线| 97香蕉网| 久久天天摸| 男人的天堂VA| 在线观看日韩av不卡| 亚洲国产精品久久久男人的天堂| 亚洲欧美999| 激情看片网站| 久9爱经典视频| 久久精品国产亚洲AV嘿嘿| 亚洲色9| 性色AV蜜色av色欲av| 欧美 亚洲 制服 精品| 久久αⅴ| 91 国产丝袜在线放观看| 国产9区| 97超碰色屌| 十八禁av无码免费网站APP| 日韩中文字幕av在线播放| CCYY草草影院地址入口| 少妇天堂网络| 黄色欧美性爱视频| 久久成人东京热人妻| 一区二区日韩欧美久久| 曰韩中文人妻视频| 台湾大香蕉99热| 欧美性爱视频免费一区一A| 大香蕉2017| 麻豆久久视频在线地址| 欧美一区二区三区互相| 欧美激情亚洲情色| 久久综合五月天| 激情 欧美 亚洲 小说| 天天综合网合集91| 中文字幕二区日韩天堂| 美女午夜福利免费视频| 天久久久噜噜噜久久国产精品爽爽 | 99久久婷婷| 国产亚洲精品久久久久小| 亚洲青青草| 亚洲日韩肥臀视频在线观看| 国产一区二区a毛片| 国产精品乱码久久久| 久久久久久久久久久久黄色| 91丨九色丨43老版熟女| 午夜福利无毒不卡| 国产老女人久久毛| 欧美亚洲天天| 综合激情一一91| 欧美老妇综合网| 中文字幕av色| 久久九九99| 国产成人精品日本视频| 在线欧美69V免费观看视频| 色牛aV| 超碰免费97| 久久久久久久97| 麻豆91熟妇人妻中文字幕茄子| 亚洲综合大片| 蜜桃臀一区二区aV | 超碰人妻久久| 啊啊啊啊啊啊好多水| 九九热re99re6在线精品| 日逼97| 九九九九九九九| 天天看天天日天天操| 午夜经典| 91精品国产长腿丝袜美女| WWW4虎| 日本三级久| 清清一区二区三区四区不卡视频| 大稥蕉免费视频这里只有精品| 国产原创自拍| 男人的天堂2018东京热啪啪啪| 99欧美| 这里是精品| 黄资源| 亚洲国产福利视频| 亚洲综合伊人无码久久| 女人久久久| 国产日韩色综合| 无码日韩网站| 德国一二三不卡| 国产丸一视频| 91美女视频| 八人操人人摸人人看| AV九九| 大香蕉男人的天堂| 东京太热男人的天堂久久久| 国产兽交视频在线播放| 天天干夜夜一操| 99精品在线| 色麻豆AV| 日韩无码一级黄色av片| 亚洲精品aa久久伊人| 国产精品久久9| 九七超碰人人乐| 太久视频| 熟女中出视频| 日韩精品-原创伙伴| 一级性爱啪啪视频| 日本熟妇熟色97一本在线观看| 人人摸人人舔一区二区| 一二三四视频中文字幕在线看| 好吊妞转入那个网| 欧美草草高清日韩视频| 亚洲色 国产 欧美 日韩| 97香蕉人人乳| 亚洲国产美女久久久久| 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 亚洲 欧美 中文 日韩超碰| 亚洲 无码 有码 中文字幕| 成人自拍三级在线观看| 熟妇人妻一区二区| 三级日韩一区二区三区| 欧洲无码一区二区| 国产精品乱码久久| 激情一区二区三区在线观看| 欲色综合| 97精品国产97久久久久久| 91亚洲最新在线| 色情综合网| 久久大黄片| 国产精品高潮久久AV| 国产 亚洲 丝袜 制服| 人妻少妇精品无码专区二区密桃| 久久综合99| 伊人网免费视频| 青青伊人加勒比海| aⅴ日韩成人电影av在线免费看av大全| 中文日韩欧美熟| 超碰av在线| a男人的天堂久久一级A毛片| 免费成人在线熟妇网| 亚洲欧美日韩夜夜| 91欧洲国产成人久久精品网站| 亚洲色图美腿丝袜| 天天天天操| 综合 欧美 亚洲 日本| 老熟乱一区二区三区四区| 欧美熟爽综合| 女人喷水视频在线观看| 爱爱啊啊啊| 久久久久96| 中出789在线视频| 亚洲第一综合| 国产无马视频| 亚洲中文字幕熟女| 久久精品无码熟妇一区二区三区视频导航| 中文字幕av色| 抽插无码高清一区| 欧美探花网| 天天色图| 国产精品96久久久久久| 欧美日韩国产精品久久色婷婷| 中文字幕乱碼在线| 熟妇熟女亚洲天堂网| 青青草天天亲夜夜操网| 精品国产人成在线| 欧美精品一区二区少妇免费A片 | 中文字幕av乱伦| 日韩欧美中文日韩欧美色| 国产精品一区二区亚洲人成毛片 | 大香网站| 粉嫩av在线一区二区| 午夜无码精品免费看性色| 99老司机精品视频在线观看| 曰韩人妻中文字幕在线| 国产精品人妻无码久久久互動交流| 蜜臀久久99精品久久久久久成人小说| 99re这里| 久久久久斤小| 无码人妻毛片丰满熟妇精品区| 老鸭窝日丰县女人| 亚洲中文sv| 97碰碰色| 在线观看亚洲成人精品| 操日韩第| 欧美黄色大香蕉一区二区| 免费强奸av| www.色五月| 中文字幕亚洲欧美在线不卡| 99www.bibizy香蕉资源国产一区二区三区高清 | 97在线视频免费看| 日本一区不卡| 中文字幕一区二区三区四区在线视频| 无码精品久久| 曰韩av中文字幕专区| 麻豆60秒| 无码久| 天天综合中文字幕 91| 亚洲av综合伊人久久| 国产树林里野战在线看| 久热色情精品| 国产精品色| 国产兽交视频在线播放| 日本三级韩国三级99| 999久久久国产精品| 操操逼视频| 日本三级中国三级99人妇网站| 少妇六月天| 黄骗免费网站| 丁香五月影院| 91精品久久久久久久久久| 五月婷亚洲精品天堂| 亚洲aV性爱| 亚洲蜜臀视频精品久久| 乱伦熟妇一区二区| 九久9精品| A一级色女| 日日操丁香五月天| 江都AV在线| 欧美黑人熟妇精品91| 无码视频黄色网战| 亚州欧美总和| 综合久久久久久久综合网| 天天享受天天看| 东北毛片| 熟妇熟女亚洲天堂网| 久热伊人| 五月激情综合网| 快灬快灬 一下爽蜜桃在线观看| 天天干人妇| 超碰天天去日穴| 爱我干综合| 麻豆AV一区二区天美传媒| 丁香六月啪啪| 黑人综合网| 九一亚洲国产免费| 色欲久久久久综合网| 欧美激情片一区二区| av在线一区二区三区| 91亚洲丝袜熟女| 女优视频第10页| 立川理惠被中出无码| 精品一区二区三区四区外站| 欧美顶级黄色大片免费| 四虎884| 婷婷国产精品九区| 精品人妻av在线播放| 91日韩网站| 天天碰操中国年青熟妇| 亚洲日韩国产欧美综合v| 欧美激情内射| 男人久久精品| 九九亚洲| 精品一区二区成人| 久久免费少妇| 日本天堂在线播放| 东京太热久久久| 天天色播亚洲综合网站| 日韩成人性日韩成人性爱视频在线免费观看 | 国产夜夜操| 国产激情视频在线观看| 先锋影音av先锋一区| 91欧美色| 91激情国产| 日本新免费二区三区| 99爱久久视频频| 六月色婷婷| 免费看日产一区二区三区| 国产无码久久高清| 91老熟妇| 日本男人天堂| 麻豆91熟妇人妻中文字幕茄子 | 9久热这里只有精品| 青青草依人大香蕉| 2020天天色综合| 天天综合站| 欧美肥臀在线| 新91视频.cmp| 久操国产在线|