精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

如何使用Truffle L2 Box橋接區(qū)塊鏈網(wǎng)絡(luò)

譯文
區(qū)塊鏈
構(gòu)建L1和L2之間互操作的dApp可能很困難。人們需要了解如何使用Optimism Bridge的Truffle Box作為連接以太坊和Optimism的簡單方法。

譯者 | 李睿

審校 | 孫淑娟

眾所周知,許多區(qū)塊鏈都存在可擴(kuò)展性和擁塞問題。這些問題有廣泛的影響,從交易時間變慢,到交易費用增加,以及用戶體驗下降。

一種解決方案是使用L2(第二層)區(qū)塊鏈?zhǔn)筗eb3成為多鏈。以太坊L2(例如Optimism、Arbitrum和Polygon)構(gòu)建在以太坊網(wǎng)絡(luò)之上,但比以太坊更快,更便宜。然而,作為一種權(quán)衡,它們通常不如以太坊安全。這就是L2處理日常用戶活動,同時仍然依賴以太坊L1作為安全、去中心化結(jié)算和數(shù)據(jù)可用性層的幕后基礎(chǔ)的原因。  

這是一個很好的解決方案,僅以太坊上就有許多L2,每個L2都是一個獨立的網(wǎng)絡(luò),有自己的細(xì)微差別和體驗。構(gòu)建和使用在這些網(wǎng)絡(luò)和以太坊L1之間互操作和移動的dApp可能是乏味和困難的,而且對用戶和開發(fā)人員來說也是糟糕的體驗。

現(xiàn)在需要的是Web3成為一種多鏈體驗,消費者不需要知道他們使用的是哪條區(qū)塊鏈(坦率地說不在乎),開發(fā)者可以依賴任何最支持他們dApp需求的網(wǎng)絡(luò)。通過轉(zhuǎn)移到區(qū)塊鏈的多鏈互聯(lián)網(wǎng),Web3為每個參與者提供了更好的體驗。  

不幸的是,允許dApp在區(qū)塊鏈之間移動是一項艱巨的技術(shù)挑戰(zhàn)。本文將研究一種解決方案——使用Infura RPC端點和Truffle Box進(jìn)行構(gòu)建,并無縫地橋接這些網(wǎng)絡(luò)。具體來說, 將使用Optimism Bridge的Truffle Box在以太坊Goerli測試網(wǎng)上創(chuàng)建一個項目,并連接到Optimism Goerli。  

使用Infura和Truffle Boxes運行多鏈dApp

Truffle Boxes

作為示例解決方案的核心,將依賴于來自ConsenSys的“快捷”樣板文件(例如合約、庫、模塊,甚至是功能齊全的dApp),企業(yè)可以使用它們來構(gòu)建自己的dApp。對于多鏈解決方案,它們構(gòu)建在許多L2網(wǎng)絡(luò)的Infura RPC節(jié)點之上。

如上所述,特別依賴Optimism Bridge的Truffle Box。Truffle Box包含L1和L2與Optimism Bridge交互所需的所有合約,以及一組用于在層之間部署、調(diào)用函數(shù)和傳遞消息/值的遷移。它甚至有一個輔助腳本,可以完成需要的所有操作。只需要打開Truffle Box就能得到需要的一切! Truffle Box包括:

  • 通過Optimism Bridge發(fā)送消息的L1合約。
  • 從以太坊向OptimismBridge發(fā)送消息的遷移。
  • 通過Optimism Bridge發(fā)送消息的L2合約。  
  • 從OptimismBridge向以太坊發(fā)送消息的遷移。
  • 自動編譯契約、運行遷移和發(fā)送消息的腳本。  
  • 通過Optimism Bridge自動發(fā)送ETH和DAO的腳本。

注:橋接(Bridge)是一種工具,允許獨立的區(qū)塊鏈彼此通信,并發(fā)送令牌、NFT等。

先決條件

在開始之前,需要具備以下先決條件:

  • Node.js及其包管理器NPM。

使用以下終端命令驗證已經(jīng)安裝了Node.js:  

node -v && npm -v
  • Infura帳戶  
  • MetaMask賬戶  
  • 基本了解JavaScript和Solidity  

步驟1:創(chuàng)建用于訪問網(wǎng)絡(luò)的Infura帳戶  

在完成先決條件后,登錄Infura網(wǎng)站(或注冊新帳戶)。

在成功注冊之后,頁面重定向到Infura儀表板,在那里可以創(chuàng)建一個新的API密鑰,如下圖所示:

點擊“Create a New Key”按鈕,填寫所需信息。  

在創(chuàng)建API密鑰后,項目ID將顯示在儀表板的API key部分下面,如下面所示。復(fù)制并保存在某個地方,將在本教程的后面用到它。

步驟2:設(shè)置和安裝  

接下來,將設(shè)置Truffle Optimism Bridge Box。可以使用以下命令在選擇的任何目錄中運行unbox命令。

npx truffle unbox optimism-bridge <DIRECTORY_NAME>

用選擇的目錄名替換<DIRECTORY_NAME>。或者,可以全局安裝Truffle并運行unbox命令。

npm install -g truffle
truffle unbox optimism-bridge <DIRECTORY_NAME>

該命令應(yīng)該下載并運行npminstall作為unbox過程的一部分。

現(xiàn)在,運行以下命令將目錄更改為剛剛創(chuàng)建的新目錄。

cd truffle-bridge-demo

注:truffle-bridge-demo是創(chuàng)建的目錄的名稱。  

應(yīng)該得到類似于下面所示的結(jié)果。

.dotenv npm包已經(jīng)安裝,但是需要在開箱后創(chuàng)建的.env文件中添加一些信息。truulu -config.ovm.js文件期望在.env文件中存在一個GOERLI_MNEMONIC值,用于在以太坊Goerli和Optimism Goerli測試網(wǎng)上運行命令,并期望INFURA_KEY連接到網(wǎng)絡(luò)。

GOERLI_MNEMONIC="<your-wallet-mnemonic>"
INFURA_KEY="<your-infura-key>"

將<your-infura-key>替換為之前從Infura儀表板中獲得的信息。【注意:永遠(yuǎn)不要與任何人分享私鑰(助記符),并妥善保管】。將<your-wallet-mnemonic>替換為助記符,如下所示:

要從Metamask中檢索助記符,單擊Metamask上所示的圖標(biāo)。

接下來,單擊Export Private Key按鈕復(fù)制助記符。

Git忽略了這個項目中的.env文件,以幫助保護(hù)私有數(shù)據(jù)。避免將私鑰泄露給GitHub是一個很好的安全實踐。

步驟3:使用Truffle L2 Boxes橋接

當(dāng)打開項目的盒子時,創(chuàng)建了項目的所有必要合同和腳本。在下一步中,我們將詳細(xì)介紹各個合約和遷移,以理解橋接和交互是如何在網(wǎng)絡(luò)之間發(fā)生的。

合約contract/ethereum/GreeterL1.sol展示了如何通過Optimism bridge將消息從L1發(fā)送到L2。

//SPDX-License-Identifier: Unlicense
// This contract runs on L1, and controls a Greeter on L2.
pragma solidity ^0.8.0;
import { ICrossDomainMessenger } from
"@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger.sol";
contract GreeterL1 {
address crossDomainMessengerAddr = 0x5086d1eEF304eb5284A0f6720f79403b4e9bE294;
address greeterL2Addr = 0xC0836cCc8FBa87637e782Dde6e6572aD624fb984;
function setGreeting(string calldata _greeting) public {
bytes memory message;
message = abi.encodeWithSignature("setGreeting(string)",
_greeting);
ICrossDomainMessenger(crossDomainMessengerAddr).sendMessage(
greeterL2Addr,
message,
1000000 // within the free gas limit amount
);
} // function setGreeting
} // contract GreeterL1

遷移migrations/3_set_L2_greeting.js使用上面的合約從以太坊發(fā)送消息給optimistic。

var Greeter = artifacts.require("GreeterL1");
/**
* Set L2 Greeting
* Run this migration on L1 to update the L1 greeting.
*/
module.exports = async function (deployer) {
console.log("Updating the L2 Greetings contract from L1!");
const instance = await Greeter.deployed();
const tx = await instance.setGreeting("Greetings from Truffle!");
console.log(`Greeter txn confirmed on L1! ${tx.receipt.transactionHash}`);
console.log(`Bridging message to L2 Greeter contract...`);
console.log(
`In about 1 minute, check the Greeter contract "read" function: https://goerli-optimism.etherscan.io/address/0xC0836cCc8FBa87637e782Dde6e6572aD624fb984#readContract`
);
};

接下來,contracts/optimism/GreeterL2.sol合約通過Optimism bridge向另一個方向(L2->L1)發(fā)送消息。

/SPDX-License-Identifier: Unlicense
// This contract runs on L2, and controls a Greeter on L1.
pragma solidity ^0.8.0;
import { ICrossDomainMessenger } from
"@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger.sol";
contract GreeterL2 {
address crossDomainMessengerAddr = 0x4200000000000000000000000000000000000007;
address greeterL1Addr = 0x7fA4D972bB15B71358da2D937E4A830A9084cf2e;
function setGreeting(string calldata _greeting) public {
bytes memory message;
message = abi.encodeWithSignature("setGreeting(string)",
_greeting);
ICrossDomainMessenger(crossDomainMessengerAddr).sendMessage(
greeterL1Addr,
message,
1000000 // irrelevant here
);
} // function setGreeting
} // contract GreeterL2

遷移migrations/4_set_L1_greeting.js使用上述合約將消息從Optimism發(fā)送到以太坊。

require("dotenv").config();
const sdk = require("@eth-optimism/sdk");
const ethers = require("ethers");
const Greeter = artifacts.require("GreeterL2");
const goerliMnemonic = process.env["GOERLI_MNEMONIC"];
const infuraKey = process.env["INFURA_KEY"];
const sleep = (milliseconds) => {
return new Promise((resolve) => setTimeout(resolve, milliseconds));
};
/**
* Set L1 Greeting
* Run this migration on L1 to update the L1 greeting.
*/
module.exports = async function (deployer) {
const newGreeting = "Greetings from Truffle!"; //<---- CHANGE THIS VALUE TO YOUR NAME!!!
const instance = await Greeter.deployed();
console.log("Updating the L1 Greetings contract from L2!");
const tx = await instance.setGreeting(newGreeting);
const txHash = tx.receipt.transactionHash;
console.log(`Greeter txn confirmed on L2! ${txHash}`);
console.log(
`Bridging message to L1 Greeter contract.\n This will take at least 1-5 min...`
);
// Set providers for Optimism sdk
const l1Provider = new ethers.providers.JsonRpcProvider(
"https://goerli.infura.io/v3/" + infuraKey
);
const l2Provider = new ethers.providers.JsonRpcProvider(
"https://optimism-goerli.infura.io/v3/" + infuraKey
);
// Connect an L1 signer
const wallet = ethers.Wallet.fromMnemonic(goerliMnemonic);
const l1Signer = wallet.connect(l1Provider);
// Initialize sdk messenger
const crossChainMessenger = new sdk.CrossChainMessenger({
l1ChainId: 5,
l2ChainId: 420,
l1SignerOrProvider: l1Signer,
l2SignerOrProvider: l2Provider,
});
let statusReady = false;
// Sleep for 1 min during L2 -> L1 bridging
await sleep(60000); // 60 seconds
// Poll the L1 msg status
while (!statusReady) {
let status = null;
status = await crossChainMessenger.getMessageStatus(txHash);
statusReady = status == sdk.MessageStatus.READY_FOR_RELAY;
if (!statusReady) {
console.log(
"Message not yet received on L1.\n Retrying in 10 seconds..."
);
await sleep(10000); // 10 seconds
}
}
console.log("Message received! Finalizing...");
// Open the message on L1
finalize = await crossChainMessenger.finalizeMessage(txHash);
console.log(
`Message finalized. Check the L1 Greeter contract "read" function: https://goerli.etherscan.io/address/0x7fA4D972bB15B71358da2D937E4A830A9084cf2e#readContract`
);
};

在腳本目錄中,還有g(shù)oerli_bridge_message.mjs和goerli_bridge_value.js來自動化編譯合約、運行遷移和發(fā)送消息的過程。

步驟4:完成Ethereum Goerli和Optimism Goerli之間的合約編譯、遷移和橋接

接下來,將把合約部署到Goerli。助手腳本促進(jìn)了Ethereum Goerli和Optimism Goerli之間的編譯、遷移和橋接消息。在這些網(wǎng)絡(luò)上,需要測試網(wǎng)ETH來使用它。還需要將Optimism插件添加到Infura帳戶。

接下來,將運行以下命令來啟動項目。

npm run deploy

下面是一個URL,用于在完成遷移后確認(rèn)(通過Etherscan)橋接消息。

在第四次遷移完成后,將提供一個通過Etherscan確認(rèn)橋接消息的鏈接。

步驟5:用塊資源管理器在Goerli測試網(wǎng)上驗證項目是否成功

已經(jīng)成功地設(shè)置、安裝、構(gòu)建、部署了前面打開的項目。接下來,將在Goerli Ethereum測試網(wǎng)上驗證該項目。

轉(zhuǎn)到Goerli Etherscan塊資源管理器,并粘貼txn地址

0xbcc1746a9ebbfcfb71665225c1a353a8c8dc9a1aa528a3babcb5b046d615a353,該地址在部署時在CLI上顯示。

??https://goerli-optimism.etherscan.io/tx/0xbcc1746a9ebbfcfb71665225c1a353a8c8dc9a1aa528a3babcb5b046d615a353??

結(jié)論

如果希望用戶和開發(fā)人員的體驗持續(xù)改善,那么多鏈Web3世界是至關(guān)重要的。為了實現(xiàn)這一點,需要讓dApp在區(qū)塊鏈之間快速無縫地通信。希望使用Optimism Bridge Truffle Box的例子能給一個相對簡單快速的入門方法。要了解更多信息,可以查看官方文檔。

原文標(biāo)題:??Using Truffle L2 Boxes to Bridge Blockchain Networks??,作者:John Vester

責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2022-08-26 14:58:43

區(qū)塊鏈比特幣架構(gòu)

2022-02-17 16:47:40

OpenharmonIPC通信鴻蒙

2015-01-20 13:19:52

OpenStack網(wǎng)絡(luò)層數(shù)據(jù)鏈路層

2019-07-30 08:28:44

VirtualBox橋接網(wǎng)絡(luò)

2019-03-11 08:00:00

區(qū)塊鏈區(qū)塊鏈技術(shù)管理網(wǎng)絡(luò)

2021-04-09 20:04:34

區(qū)塊鏈Go加密

2022-02-21 15:38:57

Openharmon操作系統(tǒng)鴻蒙

2022-06-22 09:14:23

事件打點HiSysEvent

2022-08-19 10:19:33

區(qū)塊鏈網(wǎng)絡(luò)安全

2022-04-12 14:37:26

區(qū)塊鏈橋區(qū)塊鏈貨幣

2018-09-12 23:43:06

2021-05-06 09:42:24

Truffle部署智能

2013-07-30 09:45:04

KVM虛擬化

2009-08-18 11:12:34

Ubuntu下Virt橋接網(wǎng)絡(luò)配置

2020-05-08 17:05:11

VMware網(wǎng)絡(luò)NAT

2022-01-10 10:56:37

區(qū)塊鏈技術(shù)比特幣

2018-10-24 19:51:38

區(qū)塊鏈網(wǎng)絡(luò)安全

2019-07-22 10:20:06

2021-10-20 19:14:30

緩存CacheCPU

2023-01-31 09:12:16

CPU芯片緩存
點贊
收藏

51CTO技術(shù)棧公眾號

亚洲视频免费在线| 麻豆9191精品国产| 日韩av中文在线| 成人免费观看cn| 高清国产福利在线观看| 久久成人羞羞网站| 国模极品一区二区三区| 91成人精品一区二区| 91成人精品在线| 欧美色精品天天在线观看视频| 欧洲xxxxx| 欧美婷婷久久五月精品三区| 韩国一区二区在线观看| 69av视频在线播放| 男人操女人的视频网站| 精品国产欧美日韩| 精品国产一区二区三区久久影院| 激情视频综合网| av中文字幕在线看| 综合久久久久久| 欧美三日本三级少妇三99| a级片在线免费看| 日韩电影一区二区三区| 97国产精品视频人人做人人爱| 5566中文字幕| av资源久久| 日韩精品在线观看一区| 国产人妻精品午夜福利免费| 欧美特黄色片| 欧美日韩在线影院| 日本国产中文字幕| 九七电影韩国女主播在线观看| 久久综合狠狠综合久久激情| 国产精品免费一区二区三区四区 | 91黄色免费观看| 国产高清av在线播放| 国产最新在线| 中文字幕一区二区三区不卡 | 亚洲aa中文字幕| 怡红院男人天堂| 日韩影院免费视频| 日韩免费av片在线观看| 日产精品久久久久| 极品尤物久久久av免费看| 久久影院在线观看| 中文字幕av播放| 一个色综合网| 欧美另类极品videosbest最新版本| 久久久国产一级片| 精品日韩免费| 中文字幕亚洲情99在线| 婷婷综合在线视频| 日韩欧美在线中字| 日韩亚洲第一页| 特一级黄色录像| 99久久99久久精品国产片果冰| 日韩视频―中文字幕| 男人av资源站| 欧美aa国产视频| 久久久久久久爱| 日本在线视频免费观看| 性久久久久久| 国产精品久久久久久久久久三级| 特级西西444www大胆免费看| 男人的j进女人的j一区| 成人黄色中文字幕| 国产精品无码一区二区桃花视频| 国产一区二区免费视频| 国产激情一区二区三区在线观看| 免费观看a视频| 91日韩一区二区三区| 精品乱码一区二区三区| 国产视频网站在线| 日韩一区中文字幕| 成人污网站在线观看| 国产偷倩在线播放| 色综合久久久网| 色一情一区二区三区| 久久久久久亚洲精品美女| 日韩视频123| 免费a级黄色片| 日韩1区2区| 欧美精品做受xxx性少妇| 日本视频免费在线| 日韩高清不卡一区二区三区| 亚洲自拍偷拍色图| 天堂在线一二区| 中文字幕亚洲欧美在线不卡| 成人免费观看在线| 欧美日韩视频免费观看| 日韩视频免费直播| 国产精品高清无码在线观看| 久久久久亚洲| 欧美一级大片在线观看| 国产日韩av网站| 女同久久另类69精品国产| 91精品成人| 欧美综合激情网| av中文在线观看| 欧美国产日韩一二三区| 国产爆乳无码一区二区麻豆| 婷婷综合六月| 精品欧美乱码久久久久久| av网站免费在线看| 欧美日韩三区| 国产美女直播视频一区| 无码精品一区二区三区在线 | av成人免费网站| 久久久噜噜噜久久狠狠50岁| 亚洲一区二区三区久久| 国产经典自拍视频在线观看| 亚洲宅男天堂在线观看无病毒| 可以免费在线看黄的网站| 中文字幕久久精品一区二区| 中文字幕日韩av综合精品| 少妇一级淫片免费放中国| 国产一区二区三区精品视频| 先锋在线资源一区二区三区| 国产高清中文字幕在线| 日韩一级二级三级精品视频| 国产福利在线导航| 久久综合婷婷| 麻豆成人在线播放| 黑人极品ⅴideos精品欧美棵| 欧美麻豆精品久久久久久| 日本aaa视频| 亚洲精品色图| 国产精品播放| 色呦呦在线看| 日韩一区二区三区四区| 性爱在线免费视频| 日韩主播视频在线| 国产精品99久久久久久久女警| 欧美做受高潮电影o| 黄色av网站免费在线观看| 亚洲男同性恋视频| 亚洲免费av一区| 久久一级电影| 国产日韩欧美日韩| 香蕉视频在线免费看| 欧美这里有精品| 国产小视频自拍| 丝袜诱惑制服诱惑色一区在线观看 | 激情中国色综合| 夜夜躁日日躁狠狠久久88av| 99久热在线精品996热是什么| 成人av在线一区二区| 日韩精品 欧美| 日本午夜精品| 国产成人av网| 免费大片黄在线| 91精品啪在线观看国产60岁| 色婷婷在线视频观看| 国产精品自产自拍| 黄色污污在线观看| 在线播放一区二区精品视频| 久久人人爽人人爽人人片av高请| 欧美天堂在线视频| 午夜一区二区三区在线观看| 免费成人深夜夜行p站| 亚洲免费综合| 欧美一区二区影视| 久久久国产精品网站| 久久久黄色av| 人妻偷人精品一区二区三区| 欧美日韩在线一区| 亚洲熟女少妇一区二区| 国产精品中文欧美| 被灌满精子的波多野结衣| 欧美日韩一本| 国产精品美女久久久久av超清| a√资源在线| 日韩视频一区二区在线观看| 在线观看国产亚洲| 国产亚洲女人久久久久毛片| 五月天激情播播| 在线日韩电影| 亚洲国产精品综合| 色悠久久久久综合先锋影音下载| 午夜精品久久久99热福利| 欧美孕妇性xxxⅹ精品hd| 欧美色图片你懂的| 69xx绿帽三人行| 久久综合九色综合欧美就去吻| 亚洲va在线va天堂va偷拍| 狠狠88综合久久久久综合网| 蜜桃91精品入口| 国产欧美视频在线| 7777kkkk成人观看| 麻豆传媒在线完整视频| 欧美一级理论性理论a| 国产成人在线观看网站| 国产精品丝袜一区| 黄色免费看视频| 久久99国产精品免费网站| 九色自拍视频在线观看| 欧美国产一区二区三区激情无套| av资源一区二区| 成人在线观看免费播放| 久久久久久久久久久亚洲| 午夜在线视频播放| 日韩av影院在线观看| 99久久精品免费看国产交换| 91电影在线观看| 国产午夜福利一区二区| 亚洲欧洲韩国日本视频| 91成人破解版| 成人黄色网址在线观看| 免费av不卡在线| 视频一区二区国产| 欧美一级视频在线播放| 小说区亚洲自拍另类图片专区| 精品国产福利| 免费看日产一区二区三区| 国产精品电影观看| 国产va在线视频| 久久久久久久久久婷婷| 看黄网站在线| zzijzzij亚洲日本成熟少妇| 色播色播色播色播色播在线 | 欧美精品a∨在线观看不卡| 日韩一区二区三区四区五区六区| 在线观看国产精品视频| 色婷婷激情综合| 手机看片久久久| 午夜亚洲福利老司机| 久久久久久久久97| 亚洲精品一二三四区| 在线免费看av网站| 国产精品美女久久久久久久久| 精品无码一区二区三区| 91一区二区三区在线播放| 日本一区二区免费视频| 国产高清精品网站| 手机看片国产精品| 国产精品一级片在线观看| 日本美女视频一区| 精品影视av免费| 亚洲天堂av一区二区| 蜜臀久久99精品久久久久宅男| 久久精品网站视频| 手机精品视频在线观看| 日韩视频在线免费看| 久久婷婷久久| 手机看片福利盒子久久| 日韩va亚洲va欧美va久久| 欧美三级理论片| 麻豆精品国产传媒mv男同| 在线观看亚洲色图| 美女mm1313爽爽久久久蜜臀| www.99r| 国产一区在线不卡| 女女调教被c哭捆绑喷水百合| 成人午夜av在线| 又黄又爽的网站| 久久日一线二线三线suv| 精品人妻互换一区二区三区| 国产欧美一区二区三区鸳鸯浴 | 亚洲国产日韩av| 日韩欧美不卡视频| 欧美视频不卡中文| 波多野结衣一区二区三区四区| 欧美视频一区二区在线观看| 国产精品伦理一区| 精品美女一区二区| 秋霞av在线| 少妇精69xxtheporn| 国产在线看片| 91精品国产乱码久久久久久蜜臀 | 亚洲第一导航| 亚洲精品电影| 久久久久久久午夜| 日韩有码一区二区三区| 超碰在线资源站| eeuss影院一区二区三区| 四虎影成人精品a片| 综合色天天鬼久久鬼色| 免费在线不卡视频| 欧美日韩免费视频| 亚洲h视频在线观看| 亚洲女人被黑人巨大进入al| 免费av在线| 欧美在线视频观看| 91精品一久久香蕉国产线看观看| 国产精品美女xx| 91一区二区三区四区| 婷婷无套内射影院| 美美哒免费高清在线观看视频一区二区| 国产又黄又嫩又滑又白| 久久久精品影视| 激情五月少妇a| 在线亚洲一区二区| 99久久亚洲精品日本无码| 亚洲精品国产精品国产自| 91精彩视频在线观看| 性欧美办公室18xxxxhd| 少妇高潮一区二区三区99| 精品国产一区二区三区四区精华| 色综合久久一区二区三区| 黄色a级片免费看| 欧美aaaaaa午夜精品| 免费看91视频| 中文字幕一区二区三区色视频| 日韩在线视频免费播放| 欧美一区二区福利在线| 欧美日韩伦理片| 97激碰免费视频| 精品中文在线| 亚洲精品自在在线观看| 蜜乳av另类精品一区二区| www.四虎精品| 国产精品麻豆视频| 久久亚洲国产成人| 国产乱理伦片a级在线观看| 久久99精品国产99久久6尤物| 国产极品一区| 欧美精品欧美精品系列c| 亚洲区一区二| 91丨porny丨九色| 综合久久给合久久狠狠狠97色 | 欧美一区二区视频17c| 亚洲第一区色| 国产乱淫av麻豆国产免费| 亚洲欧美一区二区三区极速播放 | 成人av网站在线播放| 日韩av一卡二卡| caoprom在线| 国产高清自拍99| 狠狠干综合网| 亚洲成a人片在线www| 综合婷婷亚洲小说| 国产又粗又猛又爽又黄91| 自拍偷拍亚洲在线| 成人免费在线观看视频| 欧美日韩精品不卡| 麻豆久久精品| 精品无人区无码乱码毛片国产| 欧美日韩国产页| 欧美日韩在线精品一区二区三区激情综| 97人人模人人爽人人喊中文字| 国产区精品视频在线观看豆花| 国产美女主播在线| 成人网在线播放| 国产成人无码精品久在线观看 | 成年在线电影| 国产精品久久久久7777婷婷| 成人系列视频| gogogo高清免费观看在线视频| 国产女主播视频一区二区| 国产美女www爽爽爽| 中文字幕日韩在线播放| 欧美天堂一区| 天天做天天躁天天躁| 成人av手机在线观看| 国产香蕉视频在线| 亚洲男人的天堂网站| 成人激情视屏| 在线成人av电影| 国产成a人亚洲| 在线观看中文字幕视频| 亚洲美女性视频| 成人国产一区二区三区精品麻豆| 青春草在线视频免费观看| 国产精品一级在线| 久久久久久久久久影院| 国产亚洲精品日韩| 91麻豆精品| 日韩精品 欧美| 欧美国产成人精品| 99精品久久久久久中文字幕| 欧美国产日韩xxxxx| 妖精一区二区三区精品视频| 91极品尤物在线播放国产| 亚洲女爱视频在线| 天堂中文网在线| 国产精品美女在线| 欧美在线日韩| 538国产视频| 欧美久久久久久蜜桃| 欧美卡一卡二| 五月天久久狠狠| 粉嫩av亚洲一区二区图片| 国产伦精品一区二区三区视频我| 久久综合久中文字幕青草| 免费看成人人体视频| 五月婷婷六月合| 午夜一区二区三区视频| 五月婷婷在线视频| 国精产品一区二区| 久久成人羞羞网站| 国产成人无码一区二区三区在线| 色七七影院综合| 全国精品免费看| 日本中文字幕在线不卡| 一本久久精品一区二区| 尤物yw193can在线观看| 日本一区不卡| 成a人片亚洲日本久久| 国产精品国产三级国产aⅴ| 清纯唯美日韩制服另类|