<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    狼愛上貍

    我胡漢三又回來了

    #

    如何審計一個智能合約

    https://cloud.tencent.com/developer/article/1522230

    posted @ 2019-12-26 15:37 狼愛上貍 閱讀(112) | 評論 (0)編輯 收藏

    如何調用以太坊智能合約

    https://www.cnblogs.com/KRDecad3/p/11745568.html

    posted @ 2019-12-26 15:31 狼愛上貍 閱讀(226) | 評論 (0)編輯 收藏

    私鑰生成錢包助記詞的流程

    https://www.cnblogs.com/hankal/p/9472920.html

    posted @ 2019-12-24 10:02 狼愛上貍 閱讀(636) | 評論 (0)編輯 收藏

    BIP39錢包助記詞規范

    https://www.jianshu.com/p/d5bac6d36dc6

    posted @ 2019-12-24 10:01 狼愛上貍 閱讀(508) | 評論 (0)編輯 收藏

    remix

    https://remix.ethereum.org/
    http://remix.hubwiz.com/
    https://ethereum.github.io/

    posted @ 2019-12-22 00:27 狼愛上貍 閱讀(97) | 評論 (0)編輯 收藏

    Web3與智能合約交互實戰

    最新內容會更新在主站深入淺出區塊鏈社區
    原文鏈接:Web3與智能合約交互實戰

    寫在前面

    在最初學習以太坊的時候,很多人都是自己創建以太坊節點后,使用geth與之交互。這種使用命令行交互的方法雖然讓很多程序員感到興奮(黑客帝國的既視感?),但不可能指望普通用戶通過命令行使用Dapp。因此,我們需要一種友好的方式(比如一個web頁面)來與智能合約交互,于是問題的答案就是web3.js

    Web3.js

    Web3.js是以太坊官方的Javascript API,可以幫助智能合約開發者使用HTTP或者IPC與本地的或者遠程的以太坊節點交互。實際上就是一個庫的集合,主要包括下面幾個庫:

    • web3-eth用來與以太坊區塊鏈和智能合約交互
    • web3-shh用來控制whisper協議與p2p通信以及廣播
    • web3-bzz用來與swarm協議交互
    • web3-utils包含了一些Dapp開發有用的功能

    Web3與geth通信使用的是 JSON-RPC ,這是一種輕量級的RPC(Remote Procedure Call)協議,整個通信的模型可以抽象為下圖。

    Web3 Communication Model

    搭建測試鏈

    在開發初期,我們并沒有必要使用真實的公鏈,為了開發效率,一般選擇在本地搭建測試鏈。在本文我們選擇的Ganache(在此之前使用的是testrpc,Ganache屬于它的升級版),一個圖形化測試軟件(也有命令行版本),可以一鍵在本地搭建以太坊區塊鏈測試環境,并且將區塊鏈的狀態通過圖形界面顯示出來,Ganache的運行界面如下圖所示。

    Ganache

    從圖中可以看到Ganache會默認創建10個賬戶,監聽地址是http://127.0.0.1:7545,可以實時看到Current BlockGas PriceGas Limit等信息。

    創建智能合約

    目前以太坊官方全力支持的智能合約開發環境是Remix IDE,我們在合約編輯頁面編寫如下代碼:

    pragma solidity ^0.4.21;  contract InfoContract {         string fName;    uint age;        function setInfo(string _fName, uint _age) public {        fName = _fName;        age = _age;    }        function getInfo() public constant returns (string, uint) {        return (fName, age);    }    }

    代碼很簡單,就是簡單的給nameage變量賦值與讀取,接下來切換到 run 的 tab 下,將Environment切換成Web3 Provider,并輸入我們的測試鏈的地址http://127.0.0.1:7545,這里對這三個選項做一簡單說明:

    • Javascript VM:簡單的Javascript虛擬機環境,純粹練習智能合約編寫的時候可以選擇
    • Injected Web3:連接到嵌入到頁面的Web3,比如連接到MetaMask
    • Web3 Provider:連接到自定義的節點,如私有的測試網絡。

    如果連接成功,那么在下面的Account的選項會默認選擇 Ganache 創建的第一個賬戶地址。接下來我們點擊Create就會將我們的智能合約部署到我們的測試網中。接下來 Remix 的頁面不要關閉,在后面編寫前端代碼時還要用到合約的地址以及ABI信息。

    安裝Web3

    在這之前,先在終端創建我們的項目:

    > mkdir info > cd info

    接下來使用 node.js 的包管理工具 npm 初始化項目,創建package.json 文件,其中保存了項目需要的相關依賴環境。

    > npm init

    一路按回車直到項目創建完成。最后,運行下面命令安裝web.js:

    > npm install web3

    注意: 在實際安裝過程中我發現web3在安裝完成后并沒有 /node_modules/web3/dist/we3.min.js 文件,這個問題在 issue#1041中有體現,但官方好像一直沒解決。不過可以在這里下載所需的文件,解壓后將dist文件夾的內容拷貝到 /node_modules/web3路徑下。

    創建 UI

    在項目目錄下創建index.html,在這里我們將創建基礎的 UI,功能包括nameage的輸入框,以及一個按鈕,這些將通過 jQuery 實現:

    <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <meta http-equiv="X-UA-Compatible" content="ie=edge">     <title>Document</title>      <link rel="stylesheet" type="text/css" href="main.css">      <script src="./node_modules/web3/dist/web3.min.js"></script>  </head> <body>     <div class="container">          <h1>Info Contract</h1>          <h2 id="info"></h2>          <label for="name" class="col-lg-2 control-label">Name</label>         <input id="name" type="text">          <label for="name" class="col-lg-2 control-label">Age</label>         <input id="age" type="text">          <button id="button">Update Info</button>       </div>      <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>      <script>        // Our future code here..     </script>  </body> </html>

    接下來需要編寫main.css文件設定基本的樣式:

    body {     background-color:#F0F0F0;     padding: 2em;     font-family: 'Raleway','Source Sans Pro', 'Arial'; } .container {     width: 50%;     margin: 0 auto; } label {     display:block;     margin-bottom:10px; } input {     padding:10px;     width: 50%;     margin-bottom: 1em; } button {     margin: 2em 0;     padding: 1em 4em;     display:block; }  #info {     padding:1em;     background-color:#fff;     margin: 1em 0; }

    使用Web3與智能合約交互

    UI 創建好之后,在<script>標簽中間編寫web.js的代碼與智能合約交互。首先創建web3實例,并與我們的測試環境連接:

    <script>     if (typeof web3 !== 'undefined') {         web3 = new Web3(web3.currentProvider);     } else {         // set the provider you want from Web3.providers         web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:7545"));     } </script>

    這段代碼是web3.js Github提供的樣例,意思是如果web3已經被定義,那么就可以直接當作我們的 provider 使用。如果沒有定義,則我們手動指定 provider。

    這里可能會存在疑問:為什么 web3 會被事先定義呢?實際上,如果你使用類似 MetaMask(一個 Chrome 上的插件,迷你型以太坊錢包)這樣的軟件,provider 就會被自動植入。

    在上面代碼的基礎上,接下來設置默認的以太坊賬戶:

    web3.eth.defaultAccount = web3.eth.accounts[0];

    在上文中我們使用 Ganache 已經創建了 10 個賬戶了,這里我們選擇第一個賬戶當作默認賬戶。

    接下來需要讓我們的web3知道我們的合約是什么樣的,這里需要用到合約的 ABI(Application Binary Interface)ABI可以使我們調用合約的函數,并且從合約中獲取數據。

    在上文中我們已經在 Remix 中創建了我們的合約,這時重新回到 Remix,在 Compile 的 tab 下我們點擊Details 出現的頁面中我們可以拷貝合約的ABI,如下圖所示。

    將其復制到代碼中:

    var infoContract = web3.eth.contract(PASTE ABI HERE!);

    接下來轉到 run 的tab,拷貝合約的地址,將其復制到下面的代碼中:

    var info = InfoContract.at('PASTE CONTRACT ADDRESS HERE');

    完成這些我們就可以調用合約中的函數了,下面我們使用 jQuery 與我們的合約進行交互:

    info.getInfo(function(error, result){     if(!error)         {             $("#info").html(result[0]+' ('+result[1]+' years old)');             console.log(result);         }     else         console.error(error); });  $("#button").click(function() {     info.setInfo($("#name").val(), $("#age").val()); });

    以上的代碼就簡單地實現了對合約中兩個函數的調用,分別讀取和顯示nameage變量。

    到此我們就完成了全部的代碼,完整代碼可以在 InfoContract 中找到。在瀏覽器中打開index.html測試效果如下圖(輸入名字和年齡后刷新)。

    本文的作者是蓋蓋,他的微信公眾號: chainlab

    參考文獻

    ☛ 深入淺出區塊鏈 - 系統學習區塊鏈,打造最好的區塊鏈技術博客。

    posted @ 2019-12-21 14:46 狼愛上貍 閱讀(185) | 評論 (0)編輯 收藏

    GitHub項目、代碼搜索、使用等技巧

    https://blog.csdn.net/xiaomu_347/article/details/80729892

    posted @ 2019-12-21 10:14 狼愛上貍 閱讀(129) | 評論 (0)編輯 收藏

    如何在 GitHub 上找到你要的代碼?

    GitHub 在開源世界的受歡迎程度自不必多言。再加上前陣子,GitHub 官方又搞了個大新聞:私有倉庫改為免費使用,這在原來可是需要真金白銀的買的。可見微軟收購后,依然沒有改變 GitHub 的定位,甚至還更進一步。

    花開兩朵,各表一枝。我們今天想要聊的并不是 GitHub 多么厲害,而是你怎么能把 GitHub 用得很厲害

    你在 GitHub 上搜索代碼時,是怎么樣操作的呢?是不是就像這樣,直接在搜索框里輸入要檢索的內容,然后不斷在列表里翻頁找自己需要的內容?

    或者是簡單篩選下,在左側加個語言的過濾項。

    再或者改變一下列表的排序方式

    這就是「全部」了嗎?

    一般的系統檢索功能,都會有一個「高級搜索」的功能。需要在另外的界面里展開,進行二次搜索之類的。 GitHub 有沒有類似的呢?

    答案是肯定的。做為一個為萬千工程師提供服務的網站,不僅要有,而且還要技術范兒。

    如果我們自己開發一個類似的應用,會怎樣實現呢?

    帶著思路,咱們一起來看看,GitHub 是怎樣做的。

    這里我們假設正要學習 Spring Cloud,要找一個 Spring Cloud 的 Demo 參考練手。

    1. 明確搜索倉庫標題、倉庫描述、README

    GitHub 提供了便捷的搜索方式,可以限定只搜索倉庫的標題、或者描述、README等。

    以Spring Cloud 為例,一般一個倉庫,大概是這樣的

    其中,紅色箭頭指的兩個地方,分別是倉庫的名稱和描述。咱們可以直接限定關鍵字只查特定的地方。比如咱們只想查找倉庫名稱包含 spring cloud 的倉庫,可以使用語法

    in:name 關鍵詞

    如果想查找描述的內容,可以使用這樣的方式:

    in:descripton 關鍵詞

    這里就是搜索上面項目描述的內容。

    一般項目,都會有個README文件,如果要查該文件包含特定關鍵詞的話,我想你猜到了

    in:readme 關鍵詞

    2. 明確搜索 star、fork 數大于多少的

    一個項目 star 數的多少,一般代表該項目有受歡迎程度。雖然現在也有垃圾項目刷 star ,但畢竟是少數, star 依然是個不錯的衡量標準。

    stars:> 數字 關鍵字。

    比如咱們要找 star 數大于 3000 的Spring Cloud 倉庫,就可以這樣

    stars:>3000 spring cloud

    如果不加 >= 的話,是要精確找 star 數等于具體數字的,這個一般有點困難。

    如果要找在指定數字區間的話,使用

    stars: 10..20 關鍵詞

    fork 數同理,將上面的 stars 換成fork,其它語法相同

    3. 明確搜索倉庫大小的

    比如你只想看個簡單的 Demo,不想找特別復雜的且占用磁盤空間較多的,可以在搜索的時候直接限定倉庫的size

    使用方式:

    size:>=5000 關鍵詞

    這里注意下,這個數字代表K, 5000代表著5M。

    4. 明確倉庫是否還在更新維護

    我們在確認是否要使用一些開源產品,框架的時候,是否繼續維護是很重要的一點。如果已經過時沒人維護的東西,踩了坑就不好辦了。而在 GitHub 上找項目的時候,不再需要每個都點到項目里看看最近 push 的時間,直接在搜索框即可完成。

    元旦剛過,比如咱們要找臨近年底依然在勤快更新的項目,就可以直接指定更新時間在哪個時間前或后的

    通過這樣一條搜索pushed:>2019-01-03 spring cloud

    咱們就找到了1月3號之后,還在更新的項目。

    你是想找指定時間之前或之后創建的倉庫也是可以的,把pushed改成created就行。

    5. 明確搜索倉庫的 LICENSE

    咱們經常使用開源軟件,一定都知道,開源軟件也是分不同的「門派」不同的LICENSE。開源不等于一切免費,不同的許可證要求也大不相同。 2018年就出現了 Facebook 修改 React 的許可協議導致各個公司紛紛修改自己的代碼,尋找替換的框架。

    例如咱們要找協議是最為寬松的 Apache License 2 的代碼,可以這樣

    license:apache-2.0 spring cloud

    其它協議就把 apache-2.0 替換一下即可,比如換成mit之類的。

    6. 明確搜索倉庫的語言

    比如咱們就找 Java 的庫, 除了像上面在左側點擊選擇之外,還可以在搜索中過濾。像這樣:

    language:java 關鍵詞

    7.明確搜索某個人或組織的倉庫

    比如咱們想在 GitHub 上找一下某個大神是不是提交了新的功能,就可以指定其名稱后搜索,例如咱們看下 Josh Long 有沒有提交新的 Spring Cloud 的代碼,可以這樣使用

    user:joshlong

    組合使用一下,把 Java 項目過濾出來,多個查詢之間「空格」分隔即可。

    user:joshlong language:java

    找某個組織的代碼話,可以這樣:

    org:spring-cloud

    就可以列出具體org 的倉庫。



    作者:西安北大青鳥
    鏈接:https://www.jianshu.com/p/74ae16db62af
    來源:簡書
    著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

    posted @ 2019-12-20 16:49 狼愛上貍 閱讀(169) | 評論 (0)編輯 收藏

    github新手使用指南

    https://blog.csdn.net/Hanani_Jia/article/details/77950594源博客地址

    首先,我先對GitHub來一個簡單的介紹,GitHub有一個很強大的功能就是,你在服務器上邊可以創建一個庫(稍后會介紹怎么創建),寫代碼是一件很重的任務,尤其是很多人完成一個很大的項目的時候,就十分的復雜,一群人一起來寫某個項目,大家完成的時間,完成的進度都是不相同的,你寫一點我寫一點,甚至可能你今天寫的出現了錯誤,影響到了我昨天寫的代碼,最后怎么才能將大家的代碼輕松的匯總起來,又怎么在匯總所有人的代碼之后發現錯誤等等一系列問題。這樣我們就用到了GitHub這個軟件。我們在GitHub服務器上有一個主倉庫,這里用來儲存你的所有代碼,如果不付費的話是所有人都可以看的,如果你不想讓別人看到你的代碼,可以選擇付費倉庫。我們創建了主倉庫之后,就可以在電腦上創建分支,之后你就可以在電腦上完成自己的代碼,寫完之后直接同步在電腦的分支,當你認為可以上傳的自己的主倉庫時,就可以申請更新,當通過審核的時候,你代碼就出現在了自己的主倉庫中,這樣全世界的程序員都可以查看你的代碼。全世界現在已經有300萬的注冊用戶,甚至還有一些相當知名的開源項目也在其中公布代碼。在GitHub上你可以看到很多計算機領域的精英所分享的自己的代碼。這是GitHub的兩個主要優點,適合團隊協作,以及下載其他優秀者的代碼。

     

     

    今天,GitHub已是:一個擁有143萬開發者的社區。其中不乏Linux發明者Torvalds這樣的頂級黑客,以及Rails創始人DHH這樣的年輕極客。

    · 這個星球上最流行的開源托管服務。目前已托管431萬git項目,不僅越來越多知名開源項目遷入GitHub,比如Ruby on Rails、jQuery、Ruby、Erlang/OTP;近三年流行的開源庫往往在GitHub首發,例如:BootStrapNode.jsCoffeScript等。alexa全球排名414的網站。

     

     

    https://github.com/ 這是GitHub的官方網站,在官網上可以注冊屬于自己的GitHub賬號,網上是全英文的,對于英語不好的同學建議使用谷歌瀏覽器,谷歌瀏覽器可以翻譯網頁變為中文使用起來十分方便。

     

    通過簡單的步驟之后你就會有一個屬于自己的GitHub賬號。再簡單注冊完成之后會需要驗證你所輸入的郵箱才能正常使用你的GitHub。

     在注冊完成之后,完成一些簡單的設置之后,你需要創建一個屬于自己的庫

     

    在登陸自己的GitHub賬號之后,在網頁右上角的小加號是用來創建自己的庫的按鈕,之后的步驟將網頁翻譯成中文之后,按提示進行創建自己的庫即可。

     

    第一個框是自己為自己的庫起一個名字,第二個框是自己對庫的一個簡單介紹

    在創建完成自己的庫之后,下面就要讓自己的電腦克隆一個自己所創建的庫,方面自己電腦上的代碼同步到GitHub你所創建的庫當中。

      為了實現,就需要安裝一個軟件,Git Bash。

     

    下面我就介紹一下這個軟件的安裝,以及簡單的配置。

    git-scm.com 首先進入GitHub官網,下載適合自己電腦的版本

     

    下載完安裝包之后運行

     

     

     

    在安裝過程中直接默認選項即可。


     在對git bash進行配置的時候大多數新手都是一頭霧水,下面我對配置的每一步就會有詳細的記錄。代碼我也是從網上和學長那邊要來的。

     

    我第一次打開軟件后看到這個界面也是一臉懵逼的,然后通過查閱了各種各樣的資料之后才有了一些思路。

     首先要在本地創建一個ssh key 這個的目的就是你現在需要在你電腦上獲得一個密匙,就是咱們平時的驗證碼一樣的東西,獲取之后,在你的GitHub賬號里邊輸入之后,你的電腦就和你的GitHub賬號聯系在一起了,這樣以后就可以十分方便的通過Git bash 隨時上傳你的代碼。下邊介紹一下如果獲得這個鑰匙,又是如何輸入到你的GitHub里邊的呢。

      

    很多人第一次打開這個GitHub的時候一臉懵逼,認為這是什么。對于一個新手來說看到這個是沒有任何思路,沒有任何想法的。

    這一欄 開始是你的計算機的名字在我這里就是Hanani @后邊的內容是你的計算機型號,很多時候有的人打開之后@后邊是亂碼,這個時候也不要在意,因為有些電腦型號是中文的,可能在顯示的時候出現了問題,不影響你后期的操作。

      接下來,就要開始獲取屬于你自己的密匙。在git bash中所有功能都是通過簡單的一些代碼來實現的。獲取密匙的時候需要輸入

    $ ssh-keygen -t rsa -"your_email@youremail.com"

    需要輸入這個代碼,引號內需要改成你在注冊GitHub的時候綁定的郵箱賬號。之后會有一些簡單的讓你確認的操作,之后讓你會提示操作路徑、密碼等等,一般情況下就直接按回車一路過就可以。

     

    如果之后你出現了這個界面之后,就說明你的密匙已經成功創建了。現在你就需要去他剛剛顯示的存儲位置打開它,把其中的內容復制出來。


     

    .ssh這個文件夾中

    之后你會看到這些內容,有的人會在id_rsa后邊帶有一個pub,之前看網上教程需要找到帶pub的文件,因為我在生成后沒有帶.pub的文件,懷著忐忑的心打開id_rsa后發現這里邊的密匙也是可以使用的。打開id_rsa的時候需要用記事本的方式打開。

    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDIskXqZF3SSFtACK6zoNGJabikTBC3kig6+4j4dCq1tswhA9YkuJCi0WpRmGYWBQ67dyT2or7RedFZlULLZN3nL6AWlo5V2jRXw4WQxCon2rU1p122wmiTzqYOfsykjwullWV4bYcZU4n77A4/9WwlSqZCpEbcdwV8IMkvwfJUInSWqTvmYMcKTWu8yad5DZ2v7LBWfgsL/Tfx7aEB8UjDNJ6SPw30Yijy+62YrftYGgbuwoiL9hDNGO2LfjgOkglHTBJaZe31uQLLWc5uCzd+7Dgh7RaKMmeuz2Uv7yqm/IEU9jH8cPMR9YRPIhmzg38G2s9ILn27QqW9j1hrFY1V 15229020556@163.com

    這就是我所獲取的密匙,打開之后很長的一段,不要驚訝,沒有問題,這就是你所需要的密匙。

     現在你就需要登錄到你的GitHub上邊添加這個密匙,

     

     

    打開你GitHub的設置界面,找到SSH and GPG keys這個選項之后,在網頁右上角有一個添加新的SSH keys 點擊

     

    這里的title 是讓你給你的密匙起一個名字,根據個人喜好,什么名字都可以,然后把你在剛剛文件中復制的密匙,填寫在下邊的大框里。保存即可。

    之后你就可以回到你的Git bash上邊了

    然后輸入上邊的代碼,來檢查是否成功綁定。第一次綁定的時候輸入上邊的代碼之后會提示是否continue,在輸入yes后如果出現了You've successfully authenticated, but GitHub does not provide shell access 。那就說明,已經成功連上了GitHub。接下來還需要簡單的設置一些東西。

    輸入上邊的代碼,name最好和GitHub上邊的一樣,email是一定要是注冊GitHub的那個郵箱地址

    這兩個的順序可以顛倒,沒有固定的順序。

     下面就要將你的庫克隆下來到本地電腦中,方便以后進行上傳代碼。

     

    在庫創建完成之后 會有一個網址出現在網頁中。

     

    個人習慣將自己的文件儲存在d盤之中,所以你先需要將git bash定位在d盤中

     

    git bash中輸入 cd /D 注意盤名字一定要是大寫。如不輸入這個語句 不給git bash定位的話,默認的本地文件位置是在c盤中。

    輸入之后會出現/D說明定位成功。

    之后輸入

    git clone后邊的網址就是你創建庫成功之后的網址


    之后打開我所定位的D盤

     

    可以看到,D盤中已經有以我的庫名所創建的文件夾了。


    打開這個文件夾,然后在其中創建一個任意格式,任意名稱的文件。

     

    之后重新定位git 把書 的位置,定位在你庫的文件夾。


    之后輸入ls語句 ls的作用是查看你目前所定位的文件夾中的文件,現在可以看出來,我剛剛所創建的test文件已經出現了。


    然后輸入 git add test.txt

    之后輸入然后git commit -m "cc"  引號內的內容可以隨意改動,這個語句的意思是 給你剛剛上傳的文件一個備注,方便查找記憶而已


    輸入之后出現以上情況,然后在輸入git push origin master 之后會出現一個

     

     

    界面,在這里登陸你之前注冊的GitHub賬號之后點擊login。

     

    如果之后出現這種情況的話,就是登陸失敗了,這時候你就需要輸入你GitHub的賬號名稱

    輸入之后會出現這個界面,然后再次輸入你的GitHub密碼。


    出現類似界面,你就可以歡呼了,代表你成功了。

    現在打開你的GitHub網站,找到你創建的庫

     

    發現今天的格子已經綠了,說明你已經上傳了你剛剛所創建的文件。

    再之后,你只需要將你的代碼,放到庫的對應的文件夾中,然后使用 先CD到你庫里面,再git add 、git commit -m "   " 、最后git push origin master,將你的代碼提交就可以了。

     同樣我感覺網頁版的github更適合新手小白,https://blog.csdn.net/hanani_jia/article/details/79855429 這是我寫的一篇網頁版github的簡單操作,需要的可以看一下。

    posted @ 2019-12-20 15:30 狼愛上貍 閱讀(126) | 評論 (0)編輯 收藏

    TypeError: Cannot read property 'address' of undefined

            if(!deployed.address) {
                         ^

    TypeError: Cannot read property 'address' of undefined
    解決辦法:調整gas的值就好了。

    posted @ 2019-12-18 19:27 狼愛上貍 閱讀(647) | 評論 (0)編輯 收藏

    僅列出標題
    共38頁: 上一頁 1 2 3 4 5 6 7 8 9 下一頁 Last 
    主站蜘蛛池模板: 亚洲AV成人影视在线观看| 男女做羞羞的事视频免费观看无遮挡| 亚洲H在线播放在线观看H| 久久久久亚洲AV成人网人人网站| av无码国产在线看免费网站 | 1000部国产成人免费视频| 一区二区在线免费视频| 亚洲熟妇丰满xxxxx| 亚洲影视一区二区| 亚洲av无码一区二区三区不卡 | 亚洲爆乳少妇无码激情| 亚洲人色大成年网站在线观看| 亚洲欧洲国产精品香蕉网| 亚洲成网777777国产精品| 精品免费久久久久久成人影院| 国产精品入口麻豆免费观看| 无码专区AAAAAA免费视频| 成人免费无码H在线观看不卡| 美女视频黄视大全视频免费的| 亚洲av永久中文无码精品综合| 亚洲国产av一区二区三区丶| 亚洲综合区图片小说区| 亚洲福利在线观看| 亚洲AV无码久久精品成人| 亚洲熟妇无码八AV在线播放| 久久99亚洲综合精品首页| 国产亚洲精品高清在线| 综合亚洲伊人午夜网 | 日韩亚洲国产综合高清| ww亚洲ww在线观看国产| 亚洲国产成人精品无码区二本| 亚洲成a人片在线网站| 亚洲黄色网站视频| 亚洲欧洲自拍拍偷综合| 亚洲色欲或者高潮影院| 亚洲视频一区网站| 亚洲国产夜色在线观看| 国产精品亚洲精品青青青| 亚洲色偷偷综合亚洲av78 | 日韩在线看片免费人成视频播放| 成人爱做日本视频免费|