update API docs
This commit is contained in:
parent
affc42e963
commit
c331546099
@ -334,6 +334,10 @@
|
|||||||
<a href="#bdware.bdledger.api.GetTransactionsResponse"><span class="badge">M</span>GetTransactionsResponse</a>
|
<a href="#bdware.bdledger.api.GetTransactionsResponse"><span class="badge">M</span>GetTransactionsResponse</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="#bdware.bdledger.api.RecentBlocksRequest"><span class="badge">M</span>RecentBlocksRequest</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<a href="#bdware.bdledger.api.TransactionFilter"><span class="badge">M</span>TransactionFilter</a>
|
<a href="#bdware.bdledger.api.TransactionFilter"><span class="badge">M</span>TransactionFilter</a>
|
||||||
</li>
|
</li>
|
||||||
@ -344,7 +348,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<a href="#bdware.bdledger.api.BlocksRequest.IncludeTransactions"><span class="badge">E</span>BlocksRequest.IncludeTransactions</a>
|
<a href="#bdware.bdledger.api.IncludeTransactions"><span class="badge">E</span>IncludeTransactions</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
|
||||||
@ -560,6 +564,13 @@
|
|||||||
<td><p>事务所在的区块的哈希,当事务处于待确认状态时为`null` </p></td>
|
<td><p>事务所在的区块的哈希,当事务处于待确认状态时为`null` </p></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>block_timestamp</td>
|
||||||
|
<td><a href="#int64">int64</a></td>
|
||||||
|
<td></td>
|
||||||
|
<td><p>事务所在的区块产生时的 UNIX 时间戳,单位为秒 </p></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td>index</td>
|
<td>index</td>
|
||||||
<td><a href="#uint32">uint32</a></td>
|
<td><a href="#uint32">uint32</a></td>
|
||||||
@ -967,6 +978,13 @@ field. E.g., "field_violations.field" would identify this field. </p></t
|
|||||||
<td><p> </p></td>
|
<td><p> </p></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>nonce</td>
|
||||||
|
<td><a href="#uint64">uint64</a></td>
|
||||||
|
<td></td>
|
||||||
|
<td><p> </p></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td>to</td>
|
<td>to</td>
|
||||||
<td><a href="#bytes">bytes</a></td>
|
<td><a href="#bytes">bytes</a></td>
|
||||||
@ -1191,7 +1209,7 @@ field. E.g., "field_violations.field" would identify this field. </p></t
|
|||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td>include_transactions</td>
|
<td>include_transactions</td>
|
||||||
<td><a href="#bdware.bdledger.api.BlocksRequest.IncludeTransactions">BlocksRequest.IncludeTransactions</a></td>
|
<td><a href="#bdware.bdledger.api.IncludeTransactions">IncludeTransactions</a></td>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td><p> </p></td>
|
<td><p> </p></td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -1534,6 +1552,44 @@ field. E.g., "field_violations.field" would identify this field. </p></t
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3 id="bdware.bdledger.api.RecentBlocksRequest">RecentBlocksRequest</h3>
|
||||||
|
<p></p>
|
||||||
|
|
||||||
|
|
||||||
|
<table class="field-table">
|
||||||
|
<thead>
|
||||||
|
<tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>ledger</td>
|
||||||
|
<td><a href="#string">string</a></td>
|
||||||
|
<td></td>
|
||||||
|
<td><p> </p></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>count</td>
|
||||||
|
<td><a href="#int64">int64</a></td>
|
||||||
|
<td></td>
|
||||||
|
<td><p> </p></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>include_transactions</td>
|
||||||
|
<td><a href="#bdware.bdledger.api.IncludeTransactions">IncludeTransactions</a></td>
|
||||||
|
<td></td>
|
||||||
|
<td><p> </p></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h3 id="bdware.bdledger.api.TransactionFilter">TransactionFilter</h3>
|
<h3 id="bdware.bdledger.api.TransactionFilter">TransactionFilter</h3>
|
||||||
<p>repeated Transaction/BlockFilters are combined by "&&"(and) operator;</p>
|
<p>repeated Transaction/BlockFilters are combined by "&&"(and) operator;</p>
|
||||||
|
|
||||||
@ -1626,7 +1682,7 @@ field. E.g., "field_violations.field" would identify this field. </p></t
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h3 id="bdware.bdledger.api.BlocksRequest.IncludeTransactions">BlocksRequest.IncludeTransactions</h3>
|
<h3 id="bdware.bdledger.api.IncludeTransactions">IncludeTransactions</h3>
|
||||||
<p></p>
|
<p></p>
|
||||||
<table class="enum-table">
|
<table class="enum-table">
|
||||||
<thead>
|
<thead>
|
||||||
@ -1692,6 +1748,14 @@ start_timestamp is required</p></td>
|
|||||||
查询帐本中的所有区块数量,或时间范围内的区块数量</p></td>
|
查询帐本中的所有区块数量,或时间范围内的区块数量</p></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>GetRecentBlocks</td>
|
||||||
|
<td><a href="#bdware.bdledger.api.RecentBlocksRequest">RecentBlocksRequest</a></td>
|
||||||
|
<td><a href="#bdware.bdledger.api.GetBlocksResponse">GetBlocksResponse</a></td>
|
||||||
|
<td><p>Get recent 'count' blocks (Only support IncludeTransactions=NONE for now)
|
||||||
|
查询最新的n个区块</p></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td>GetTransactionByHash</td>
|
<td>GetTransactionByHash</td>
|
||||||
<td><a href="#bdware.bdledger.api.GetTransactionByHashRequest">GetTransactionByHashRequest</a></td>
|
<td><a href="#bdware.bdledger.api.GetTransactionByHashRequest">GetTransactionByHashRequest</a></td>
|
||||||
|
@ -329,6 +329,16 @@
|
|||||||
"ismap": false,
|
"ismap": false,
|
||||||
"defaultValue": ""
|
"defaultValue": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "block_timestamp",
|
||||||
|
"description": "事务所在的区块产生时的 UNIX 时间戳,单位为秒",
|
||||||
|
"label": "",
|
||||||
|
"type": "int64",
|
||||||
|
"longType": "int64",
|
||||||
|
"fullType": "int64",
|
||||||
|
"ismap": false,
|
||||||
|
"defaultValue": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "index",
|
"name": "index",
|
||||||
"description": "事务在区块中的位置 index,当事务处于待确认状态时为`null`",
|
"description": "事务在区块中的位置 index,当事务处于待确认状态时为`null`",
|
||||||
@ -634,6 +644,16 @@
|
|||||||
"ismap": false,
|
"ismap": false,
|
||||||
"defaultValue": ""
|
"defaultValue": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "nonce",
|
||||||
|
"description": "",
|
||||||
|
"label": "",
|
||||||
|
"type": "uint64",
|
||||||
|
"longType": "uint64",
|
||||||
|
"fullType": "uint64",
|
||||||
|
"ismap": false,
|
||||||
|
"defaultValue": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "to",
|
"name": "to",
|
||||||
"description": "",
|
"description": "",
|
||||||
@ -785,15 +805,15 @@
|
|||||||
"name": "bdware/bdledger/api/query.proto",
|
"name": "bdware/bdledger/api/query.proto",
|
||||||
"description": "",
|
"description": "",
|
||||||
"package": "bdware.bdledger.api",
|
"package": "bdware.bdledger.api",
|
||||||
"hasEnums": false,
|
"hasEnums": true,
|
||||||
"hasExtensions": false,
|
"hasExtensions": false,
|
||||||
"hasMessages": true,
|
"hasMessages": true,
|
||||||
"hasServices": true,
|
"hasServices": true,
|
||||||
"enums": [
|
"enums": [
|
||||||
{
|
{
|
||||||
"name": "IncludeTransactions",
|
"name": "IncludeTransactions",
|
||||||
"longName": "BlocksRequest.IncludeTransactions",
|
"longName": "IncludeTransactions",
|
||||||
"fullName": "bdware.bdledger.api.BlocksRequest.IncludeTransactions",
|
"fullName": "bdware.bdledger.api.IncludeTransactions",
|
||||||
"description": "",
|
"description": "",
|
||||||
"values": [
|
"values": [
|
||||||
{
|
{
|
||||||
@ -901,8 +921,8 @@
|
|||||||
"description": "",
|
"description": "",
|
||||||
"label": "",
|
"label": "",
|
||||||
"type": "IncludeTransactions",
|
"type": "IncludeTransactions",
|
||||||
"longType": "BlocksRequest.IncludeTransactions",
|
"longType": "IncludeTransactions",
|
||||||
"fullType": "bdware.bdledger.api.BlocksRequest.IncludeTransactions",
|
"fullType": "bdware.bdledger.api.IncludeTransactions",
|
||||||
"ismap": false,
|
"ismap": false,
|
||||||
"defaultValue": ""
|
"defaultValue": ""
|
||||||
}
|
}
|
||||||
@ -1248,6 +1268,47 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "RecentBlocksRequest",
|
||||||
|
"longName": "RecentBlocksRequest",
|
||||||
|
"fullName": "bdware.bdledger.api.RecentBlocksRequest",
|
||||||
|
"description": "",
|
||||||
|
"hasExtensions": false,
|
||||||
|
"hasFields": true,
|
||||||
|
"extensions": [],
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"name": "ledger",
|
||||||
|
"description": "",
|
||||||
|
"label": "",
|
||||||
|
"type": "string",
|
||||||
|
"longType": "string",
|
||||||
|
"fullType": "string",
|
||||||
|
"ismap": false,
|
||||||
|
"defaultValue": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "count",
|
||||||
|
"description": "",
|
||||||
|
"label": "",
|
||||||
|
"type": "int64",
|
||||||
|
"longType": "int64",
|
||||||
|
"fullType": "int64",
|
||||||
|
"ismap": false,
|
||||||
|
"defaultValue": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "include_transactions",
|
||||||
|
"description": "",
|
||||||
|
"label": "",
|
||||||
|
"type": "IncludeTransactions",
|
||||||
|
"longType": "IncludeTransactions",
|
||||||
|
"fullType": "bdware.bdledger.api.IncludeTransactions",
|
||||||
|
"ismap": false,
|
||||||
|
"defaultValue": ""
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "TransactionFilter",
|
"name": "TransactionFilter",
|
||||||
"longName": "TransactionFilter",
|
"longName": "TransactionFilter",
|
||||||
@ -1394,6 +1455,18 @@
|
|||||||
"responseFullType": "bdware.bdledger.api.CountBlocksResponse",
|
"responseFullType": "bdware.bdledger.api.CountBlocksResponse",
|
||||||
"responseStreaming": false
|
"responseStreaming": false
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "GetRecentBlocks",
|
||||||
|
"description": "Get recent 'count' blocks (Only support IncludeTransactions=NONE for now)\n查询最新的n个区块",
|
||||||
|
"requestType": "RecentBlocksRequest",
|
||||||
|
"requestLongType": "RecentBlocksRequest",
|
||||||
|
"requestFullType": "bdware.bdledger.api.RecentBlocksRequest",
|
||||||
|
"requestStreaming": false,
|
||||||
|
"responseType": "GetBlocksResponse",
|
||||||
|
"responseLongType": "GetBlocksResponse",
|
||||||
|
"responseFullType": "bdware.bdledger.api.GetBlocksResponse",
|
||||||
|
"responseStreaming": false
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "GetTransactionByHash",
|
"name": "GetTransactionByHash",
|
||||||
"description": "Get a transaction identified by its hash\n查询哈希所指定的事务",
|
"description": "Get a transaction identified by its hash\n查询哈希所指定的事务",
|
||||||
|
29
docs/apis.md
29
docs/apis.md
@ -56,10 +56,11 @@
|
|||||||
- [GetTransactionByHashRequest](#bdware.bdledger.api.GetTransactionByHashRequest)
|
- [GetTransactionByHashRequest](#bdware.bdledger.api.GetTransactionByHashRequest)
|
||||||
- [GetTransactionByHashResponse](#bdware.bdledger.api.GetTransactionByHashResponse)
|
- [GetTransactionByHashResponse](#bdware.bdledger.api.GetTransactionByHashResponse)
|
||||||
- [GetTransactionsResponse](#bdware.bdledger.api.GetTransactionsResponse)
|
- [GetTransactionsResponse](#bdware.bdledger.api.GetTransactionsResponse)
|
||||||
|
- [RecentBlocksRequest](#bdware.bdledger.api.RecentBlocksRequest)
|
||||||
- [TransactionFilter](#bdware.bdledger.api.TransactionFilter)
|
- [TransactionFilter](#bdware.bdledger.api.TransactionFilter)
|
||||||
- [TransactionsRequest](#bdware.bdledger.api.TransactionsRequest)
|
- [TransactionsRequest](#bdware.bdledger.api.TransactionsRequest)
|
||||||
|
|
||||||
- [BlocksRequest.IncludeTransactions](#bdware.bdledger.api.BlocksRequest.IncludeTransactions)
|
- [IncludeTransactions](#bdware.bdledger.api.IncludeTransactions)
|
||||||
|
|
||||||
|
|
||||||
- [Query](#bdware.bdledger.api.Query)
|
- [Query](#bdware.bdledger.api.Query)
|
||||||
@ -138,6 +139,7 @@
|
|||||||
| Field | Type | Label | Description |
|
| Field | Type | Label | Description |
|
||||||
| ----- | ---- | ----- | ----------- |
|
| ----- | ---- | ----- | ----------- |
|
||||||
| block_hash | [bytes](#bytes) | | 事务所在的区块的哈希,当事务处于待确认状态时为`null` |
|
| block_hash | [bytes](#bytes) | | 事务所在的区块的哈希,当事务处于待确认状态时为`null` |
|
||||||
|
| block_timestamp | [int64](#int64) | | 事务所在的区块产生时的 UNIX 时间戳,单位为秒 |
|
||||||
| index | [uint32](#uint32) | | 事务在区块中的位置 index,当事务处于待确认状态时为`null` |
|
| index | [uint32](#uint32) | | 事务在区块中的位置 index,当事务处于待确认状态时为`null` |
|
||||||
| hash | [bytes](#bytes) | | 事务的哈希 |
|
| hash | [bytes](#bytes) | | 事务的哈希 |
|
||||||
| type | [TransactionType](#bdware.bdledger.api.TransactionType) | | 事务类型 |
|
| type | [TransactionType](#bdware.bdledger.api.TransactionType) | | 事务类型 |
|
||||||
@ -327,6 +329,7 @@ A message type used to describe a single invalid field.
|
|||||||
| ----- | ---- | ----- | ----------- |
|
| ----- | ---- | ----- | ----------- |
|
||||||
| type | [TransactionType](#bdware.bdledger.api.TransactionType) | | |
|
| type | [TransactionType](#bdware.bdledger.api.TransactionType) | | |
|
||||||
| from | [bytes](#bytes) | | |
|
| from | [bytes](#bytes) | | |
|
||||||
|
| nonce | [uint64](#uint64) | | |
|
||||||
| to | [bytes](#bytes) | | |
|
| to | [bytes](#bytes) | | |
|
||||||
| data | [bytes](#bytes) | | |
|
| data | [bytes](#bytes) | | |
|
||||||
|
|
||||||
@ -447,7 +450,7 @@ A message type used to describe a single invalid field.
|
|||||||
| start_timestamp | [int64](#int64) | | |
|
| start_timestamp | [int64](#int64) | | |
|
||||||
| end_timestamp | [int64](#int64) | | |
|
| end_timestamp | [int64](#int64) | | |
|
||||||
| filters | [BlockFilter](#bdware.bdledger.api.BlockFilter) | repeated | |
|
| filters | [BlockFilter](#bdware.bdledger.api.BlockFilter) | repeated | |
|
||||||
| include_transactions | [BlocksRequest.IncludeTransactions](#bdware.bdledger.api.BlocksRequest.IncludeTransactions) | | |
|
| include_transactions | [IncludeTransactions](#bdware.bdledger.api.IncludeTransactions) | | |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -617,6 +620,23 @@ A message type used to describe a single invalid field.
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="bdware.bdledger.api.RecentBlocksRequest"></a>
|
||||||
|
|
||||||
|
### RecentBlocksRequest
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
| Field | Type | Label | Description |
|
||||||
|
| ----- | ---- | ----- | ----------- |
|
||||||
|
| ledger | [string](#string) | | |
|
||||||
|
| count | [int64](#int64) | | |
|
||||||
|
| include_transactions | [IncludeTransactions](#bdware.bdledger.api.IncludeTransactions) | | |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="bdware.bdledger.api.TransactionFilter"></a>
|
<a name="bdware.bdledger.api.TransactionFilter"></a>
|
||||||
|
|
||||||
### TransactionFilter
|
### TransactionFilter
|
||||||
@ -655,9 +675,9 @@ repeated Transaction/BlockFilters are combined by "&&"(and) oper
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="bdware.bdledger.api.BlocksRequest.IncludeTransactions"></a>
|
<a name="bdware.bdledger.api.IncludeTransactions"></a>
|
||||||
|
|
||||||
### BlocksRequest.IncludeTransactions
|
### IncludeTransactions
|
||||||
|
|
||||||
|
|
||||||
| Name | Number | Description |
|
| Name | Number | Description |
|
||||||
@ -682,6 +702,7 @@ repeated Transaction/BlockFilters are combined by "&&"(and) oper
|
|||||||
| GetBlockByHash | [GetBlockByHashRequest](#bdware.bdledger.api.GetBlockByHashRequest) | [GetBlockByHashResponse](#bdware.bdledger.api.GetBlockByHashResponse) | Get a block identified by its hash 查询哈希所指定的区块 |
|
| GetBlockByHash | [GetBlockByHashRequest](#bdware.bdledger.api.GetBlockByHashRequest) | [GetBlockByHashResponse](#bdware.bdledger.api.GetBlockByHashResponse) | Get a block identified by its hash 查询哈希所指定的区块 |
|
||||||
| GetBlocks | [BlocksRequest](#bdware.bdledger.api.BlocksRequest) | [GetBlocksResponse](#bdware.bdledger.api.GetBlocksResponse) | Get blocks in a timestamp range 查询时间范围内的区块 start_timestamp is required |
|
| GetBlocks | [BlocksRequest](#bdware.bdledger.api.BlocksRequest) | [GetBlocksResponse](#bdware.bdledger.api.GetBlocksResponse) | Get blocks in a timestamp range 查询时间范围内的区块 start_timestamp is required |
|
||||||
| CountBlocks | [BlocksRequest](#bdware.bdledger.api.BlocksRequest) | [CountBlocksResponse](#bdware.bdledger.api.CountBlocksResponse) | Count all blocks in a ledger, or blocks in a timestamp range 查询帐本中的所有区块数量,或时间范围内的区块数量 |
|
| CountBlocks | [BlocksRequest](#bdware.bdledger.api.BlocksRequest) | [CountBlocksResponse](#bdware.bdledger.api.CountBlocksResponse) | Count all blocks in a ledger, or blocks in a timestamp range 查询帐本中的所有区块数量,或时间范围内的区块数量 |
|
||||||
|
| GetRecentBlocks | [RecentBlocksRequest](#bdware.bdledger.api.RecentBlocksRequest) | [GetBlocksResponse](#bdware.bdledger.api.GetBlocksResponse) | Get recent 'count' blocks (Only support IncludeTransactions=NONE for now) 查询最新的n个区块 |
|
||||||
| GetTransactionByHash | [GetTransactionByHashRequest](#bdware.bdledger.api.GetTransactionByHashRequest) | [GetTransactionByHashResponse](#bdware.bdledger.api.GetTransactionByHashResponse) | Get a transaction identified by its hash 查询哈希所指定的事务 |
|
| GetTransactionByHash | [GetTransactionByHashRequest](#bdware.bdledger.api.GetTransactionByHashRequest) | [GetTransactionByHashResponse](#bdware.bdledger.api.GetTransactionByHashResponse) | Get a transaction identified by its hash 查询哈希所指定的事务 |
|
||||||
| GetTransactionByBlockHashAndIndex | [GetTransactionByBlockHashAndIndexRequest](#bdware.bdledger.api.GetTransactionByBlockHashAndIndexRequest) | [GetTransactionByBlockHashAndIndexResponse](#bdware.bdledger.api.GetTransactionByBlockHashAndIndexResponse) | Get a transaction identified by hash of the block it belongs to and its index inside the block 查询所在区块的哈希与其在区块中的index所指定的事务 |
|
| GetTransactionByBlockHashAndIndex | [GetTransactionByBlockHashAndIndexRequest](#bdware.bdledger.api.GetTransactionByBlockHashAndIndexRequest) | [GetTransactionByBlockHashAndIndexResponse](#bdware.bdledger.api.GetTransactionByBlockHashAndIndexResponse) | Get a transaction identified by hash of the block it belongs to and its index inside the block 查询所在区块的哈希与其在区块中的index所指定的事务 |
|
||||||
| GetTransactions | [TransactionsRequest](#bdware.bdledger.api.TransactionsRequest) | [GetTransactionsResponse](#bdware.bdledger.api.GetTransactionsResponse) | Get transactions in a timestamp range 查询时间范围内的事务 |
|
| GetTransactions | [TransactionsRequest](#bdware.bdledger.api.TransactionsRequest) | [GetTransactionsResponse](#bdware.bdledger.api.GetTransactionsResponse) | Get transactions in a timestamp range 查询时间范围内的事务 |
|
||||||
|
Loading…
Reference in New Issue
Block a user