Fixed secret chats, implemented seqno checking in secret chats, made 32 bit fixes (with maths+++) and general bugfixes

This commit is contained in:
Daniil Gentili 2017-03-31 17:35:20 +02:00
parent 87a5152927
commit 1c81d9dfe7
1078 changed files with 39814 additions and 203 deletions

View File

@ -2,4 +2,5 @@ MTPROTO_NUMBER=+39394838932
MTPROTO_SETTINGS={"app_info":{"api_id":65536,"api_hash":"4251a2777e179232705e2462706f4143"}}
TEST_USERNAME=@danogentili
TEST_DESTINATION_GROUPS=["@pwrtelegramgroup","@pwrtelegramgroupita"]
TEST_SECRET_CHAT=@danogentili
BOT_TOKEN=

1
.gitignore vendored
View File

@ -91,3 +91,4 @@ b.php
telegram-cli*
src/danog/MadelineProto/Fuzzer.php
fuzzer.php
tests/500mb

View File

@ -16,7 +16,7 @@ Also note that MadelineProto will perform better if python and a big math extens
This project is in beta state.
The MadelineProto API documentation can be found [here (layer 62)](https://daniil.it/MadelineProto/API_docs/).
The MadelineProto API documentation can be found [here (layer 65)](https://daniil.it/MadelineProto/API_docs/). VERY IMPORTANT READ THIS.
The TD documentation can be found [here](https://daniil.it/MadelineProto/TD_docs/).
@ -56,6 +56,9 @@ Features:
* Secret chats
* PFS
* PFS in secret chats
## Acknowledgements

2
a.php Normal file
View File

@ -0,0 +1,2 @@
<?php
var_dump(-100101374607);

View File

@ -38,9 +38,9 @@ $docs = [
'readme' => false,
],
[
'tl_schema' => ['telegram' => __DIR__.'/src/danog/MadelineProto/TL_telegram_v62.tl', 'secret' => __DIR__.'/src/danog/MadelineProto/TL_secret.tl', 'td' => __DIR__.'/src/danog/MadelineProto/TL_td.tl'],
'title' => 'MadelineProto API documentation (layer 62)',
'description' => 'MadelineProto API documentation (layer 62)',
'tl_schema' => ['telegram' => __DIR__.'/src/danog/MadelineProto/TL_telegram_v65.tl', 'calls' => __DIR__.'/src/danog/MadelineProto/TL_calls.tl', 'secret' => __DIR__.'/src/danog/MadelineProto/TL_secret.tl', 'td' => __DIR__.'/src/danog/MadelineProto/TL_td.tl'],
'title' => 'MadelineProto API documentation (layer 65)',
'description' => 'MadelineProto API documentation (layer 65)',
'output_dir' => __DIR__.'/docs/API_docs',
'readme' => false,
],

View File

@ -0,0 +1,36 @@
---
title: account.tmpPassword
description: account_tmpPassword attributes, type and example
---
## Constructor: account.tmpPassword
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|tmp\_password|[bytes](../types/bytes.md) | Yes|
|valid\_until|[int](../types/int.md) | Yes|
### Type: [account\_TmpPassword](../types/account_TmpPassword.md)
### Example:
```
$account_tmpPassword = ['_' => 'account.tmpPassword', 'tmp_password' => bytes, 'valid_until' => int, ];
```
Or, if you're into Lua:
```
account_tmpPassword={_='account.tmpPassword', tmp_password=bytes, valid_until=int, }
```

View File

@ -0,0 +1,37 @@
---
title: bad_msg_notification
description: bad_msg_notification attributes, type and example
---
## Constructor: bad\_msg\_notification
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|bad\_msg\_id|[long](../types/long.md) | Yes|
|bad\_msg\_seqno|[int](../types/int.md) | Yes|
|error\_code|[int](../types/int.md) | Yes|
### Type: [BadMsgNotification](../types/BadMsgNotification.md)
### Example:
```
$bad_msg_notification = ['_' => 'bad_msg_notification', 'bad_msg_id' => long, 'bad_msg_seqno' => int, 'error_code' => int, ];
```
Or, if you're into Lua:
```
bad_msg_notification={_='bad_msg_notification', bad_msg_id=long, bad_msg_seqno=int, error_code=int, }
```

View File

@ -0,0 +1,38 @@
---
title: bad_server_salt
description: bad_server_salt attributes, type and example
---
## Constructor: bad\_server\_salt
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|bad\_msg\_id|[long](../types/long.md) | Yes|
|bad\_msg\_seqno|[int](../types/int.md) | Yes|
|error\_code|[int](../types/int.md) | Yes|
|new\_server\_salt|[long](../types/long.md) | Yes|
### Type: [BadMsgNotification](../types/BadMsgNotification.md)
### Example:
```
$bad_server_salt = ['_' => 'bad_server_salt', 'bad_msg_id' => long, 'bad_msg_seqno' => int, 'error_code' => int, 'new_server_salt' => long, ];
```
Or, if you're into Lua:
```
bad_server_salt={_='bad_server_salt', bad_msg_id=long, bad_msg_seqno=int, error_code=int, new_server_salt=long, }
```

View File

@ -0,0 +1,38 @@
---
title: client_DH_inner_data
description: client_DH_inner_data attributes, type and example
---
## Constructor: client\_DH\_inner\_data
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|nonce|[int128](../types/int128.md) | Yes|
|server\_nonce|[int128](../types/int128.md) | Yes|
|retry\_id|[long](../types/long.md) | Yes|
|g\_b|[string](../types/string.md) | Yes|
### Type: [Client\_DH\_Inner\_Data](../types/Client_DH_Inner_Data.md)
### Example:
```
$client_DH_inner_data = ['_' => 'client_DH_inner_data', 'nonce' => int128, 'server_nonce' => int128, 'retry_id' => long, 'g_b' => string, ];
```
Or, if you're into Lua:
```
client_DH_inner_data={_='client_DH_inner_data', nonce=int128, server_nonce=int128, retry_id=long, g_b=string, }
```

View File

@ -39,6 +39,7 @@ description: config attributes, type and example
|call\_ring\_timeout\_ms|[int](../types/int.md) | Yes|
|call\_connect\_timeout\_ms|[int](../types/int.md) | Yes|
|call\_packet\_timeout\_ms|[int](../types/int.md) | Yes|
|me\_url\_prefix|[string](../types/string.md) | Yes|
|disabled\_features|Array of [DisabledFeature](../types/DisabledFeature.md) | Yes|
@ -49,14 +50,14 @@ description: config attributes, type and example
### Example:
```
$config = ['_' => 'config', 'phonecalls_enabled' => Bool, 'date' => int, 'expires' => int, 'test_mode' => Bool, 'this_dc' => int, 'dc_options' => [DcOption], 'chat_size_max' => int, 'megagroup_size_max' => int, 'forwarded_count_max' => int, 'online_update_period_ms' => int, 'offline_blur_timeout_ms' => int, 'offline_idle_timeout_ms' => int, 'online_cloud_timeout_ms' => int, 'notify_cloud_delay_ms' => int, 'notify_default_delay_ms' => int, 'chat_big_size' => int, 'push_chat_period_ms' => int, 'push_chat_limit' => int, 'saved_gifs_limit' => int, 'edit_time_limit' => int, 'rating_e_decay' => int, 'stickers_recent_limit' => int, 'tmp_sessions' => int, 'pinned_dialogs_count_max' => int, 'call_receive_timeout_ms' => int, 'call_ring_timeout_ms' => int, 'call_connect_timeout_ms' => int, 'call_packet_timeout_ms' => int, 'disabled_features' => [DisabledFeature], ];
$config = ['_' => 'config', 'phonecalls_enabled' => Bool, 'date' => int, 'expires' => int, 'test_mode' => Bool, 'this_dc' => int, 'dc_options' => [DcOption], 'chat_size_max' => int, 'megagroup_size_max' => int, 'forwarded_count_max' => int, 'online_update_period_ms' => int, 'offline_blur_timeout_ms' => int, 'offline_idle_timeout_ms' => int, 'online_cloud_timeout_ms' => int, 'notify_cloud_delay_ms' => int, 'notify_default_delay_ms' => int, 'chat_big_size' => int, 'push_chat_period_ms' => int, 'push_chat_limit' => int, 'saved_gifs_limit' => int, 'edit_time_limit' => int, 'rating_e_decay' => int, 'stickers_recent_limit' => int, 'tmp_sessions' => int, 'pinned_dialogs_count_max' => int, 'call_receive_timeout_ms' => int, 'call_ring_timeout_ms' => int, 'call_connect_timeout_ms' => int, 'call_packet_timeout_ms' => int, 'me_url_prefix' => string, 'disabled_features' => [DisabledFeature], ];
```
Or, if you're into Lua:
```
config={_='config', phonecalls_enabled=Bool, date=int, expires=int, test_mode=Bool, this_dc=int, dc_options={DcOption}, chat_size_max=int, megagroup_size_max=int, forwarded_count_max=int, online_update_period_ms=int, offline_blur_timeout_ms=int, offline_idle_timeout_ms=int, online_cloud_timeout_ms=int, notify_cloud_delay_ms=int, notify_default_delay_ms=int, chat_big_size=int, push_chat_period_ms=int, push_chat_limit=int, saved_gifs_limit=int, edit_time_limit=int, rating_e_decay=int, stickers_recent_limit=int, tmp_sessions=int, pinned_dialogs_count_max=int, call_receive_timeout_ms=int, call_ring_timeout_ms=int, call_connect_timeout_ms=int, call_packet_timeout_ms=int, disabled_features={DisabledFeature}, }
config={_='config', phonecalls_enabled=Bool, date=int, expires=int, test_mode=Bool, this_dc=int, dc_options={DcOption}, chat_size_max=int, megagroup_size_max=int, forwarded_count_max=int, online_update_period_ms=int, offline_blur_timeout_ms=int, offline_idle_timeout_ms=int, online_cloud_timeout_ms=int, notify_cloud_delay_ms=int, notify_default_delay_ms=int, chat_big_size=int, push_chat_period_ms=int, push_chat_limit=int, saved_gifs_limit=int, edit_time_limit=int, rating_e_decay=int, stickers_recent_limit=int, tmp_sessions=int, pinned_dialogs_count_max=int, call_receive_timeout_ms=int, call_ring_timeout_ms=int, call_connect_timeout_ms=int, call_packet_timeout_ms=int, me_url_prefix=string, disabled_features={DisabledFeature}, }
```

View File

@ -0,0 +1,35 @@
---
title: dataJSON
description: dataJSON attributes, type and example
---
## Constructor: dataJSON
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|data|[string](../types/string.md) | Yes|
### Type: [DataJSON](../types/DataJSON.md)
### Example:
```
$dataJSON = ['_' => 'dataJSON', 'data' => string, ];
```
Or, if you're into Lua:
```
dataJSON={_='dataJSON', data=string, }
```

View File

@ -0,0 +1,41 @@
---
title: decryptedDataBlock
description: decryptedDataBlock attributes, type and example
---
## Constructor: decryptedDataBlock
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|voice\_call\_id|[int128](../types/int128.md) | Optional|
|in\_seq\_no|[int](../types/int.md) | Optional|
|out\_seq\_no|[int](../types/int.md) | Optional|
|recent\_received\_mask|[int](../types/int.md) | Optional|
|proto|[int](../types/int.md) | Optional|
|extra|[string](../types/string.md) | Optional|
|raw\_data|[string](../types/string.md) | Optional|
### Type: [DecryptedDataBlock](../types/DecryptedDataBlock.md)
### Example:
```
$decryptedDataBlock = ['_' => 'decryptedDataBlock', 'voice_call_id' => int128, 'in_seq_no' => int, 'out_seq_no' => int, 'recent_received_mask' => int, 'proto' => int, 'extra' => string, 'raw_data' => string, ];
```
Or, if you're into Lua:
```
decryptedDataBlock={_='decryptedDataBlock', voice_call_id=int128, in_seq_no=int, out_seq_no=int, recent_received_mask=int, proto=int, extra=string, raw_data=string, }
```

View File

@ -0,0 +1,35 @@
---
title: destroy_session_none
description: destroy_session_none attributes, type and example
---
## Constructor: destroy\_session\_none
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|session\_id|[long](../types/long.md) | Yes|
### Type: [DestroySessionRes](../types/DestroySessionRes.md)
### Example:
```
$destroy_session_none = ['_' => 'destroy_session_none', 'session_id' => long, ];
```
Or, if you're into Lua:
```
destroy_session_none={_='destroy_session_none', session_id=long, }
```

View File

@ -0,0 +1,35 @@
---
title: destroy_session_ok
description: destroy_session_ok attributes, type and example
---
## Constructor: destroy\_session\_ok
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|session\_id|[long](../types/long.md) | Yes|
### Type: [DestroySessionRes](../types/DestroySessionRes.md)
### Example:
```
$destroy_session_ok = ['_' => 'destroy_session_ok', 'session_id' => long, ];
```
Or, if you're into Lua:
```
destroy_session_ok={_='destroy_session_ok', session_id=long, }
```

View File

@ -0,0 +1,37 @@
---
title: dh_gen_fail
description: dh_gen_fail attributes, type and example
---
## Constructor: dh\_gen\_fail
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|nonce|[int128](../types/int128.md) | Yes|
|server\_nonce|[int128](../types/int128.md) | Yes|
|new\_nonce\_hash3|[int128](../types/int128.md) | Yes|
### Type: [Set\_client\_DH\_params\_answer](../types/Set_client_DH_params_answer.md)
### Example:
```
$dh_gen_fail = ['_' => 'dh_gen_fail', 'nonce' => int128, 'server_nonce' => int128, 'new_nonce_hash3' => int128, ];
```
Or, if you're into Lua:
```
dh_gen_fail={_='dh_gen_fail', nonce=int128, server_nonce=int128, new_nonce_hash3=int128, }
```

View File

@ -0,0 +1,37 @@
---
title: dh_gen_ok
description: dh_gen_ok attributes, type and example
---
## Constructor: dh\_gen\_ok
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|nonce|[int128](../types/int128.md) | Yes|
|server\_nonce|[int128](../types/int128.md) | Yes|
|new\_nonce\_hash1|[int128](../types/int128.md) | Yes|
### Type: [Set\_client\_DH\_params\_answer](../types/Set_client_DH_params_answer.md)
### Example:
```
$dh_gen_ok = ['_' => 'dh_gen_ok', 'nonce' => int128, 'server_nonce' => int128, 'new_nonce_hash1' => int128, ];
```
Or, if you're into Lua:
```
dh_gen_ok={_='dh_gen_ok', nonce=int128, server_nonce=int128, new_nonce_hash1=int128, }
```

View File

@ -0,0 +1,37 @@
---
title: dh_gen_retry
description: dh_gen_retry attributes, type and example
---
## Constructor: dh\_gen\_retry
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|nonce|[int128](../types/int128.md) | Yes|
|server\_nonce|[int128](../types/int128.md) | Yes|
|new\_nonce\_hash2|[int128](../types/int128.md) | Yes|
### Type: [Set\_client\_DH\_params\_answer](../types/Set_client_DH_params_answer.md)
### Example:
```
$dh_gen_retry = ['_' => 'dh_gen_retry', 'nonce' => int128, 'server_nonce' => int128, 'new_nonce_hash2' => int128, ];
```
Or, if you're into Lua:
```
dh_gen_retry={_='dh_gen_retry', nonce=int128, server_nonce=int128, new_nonce_hash2=int128, }
```

View File

@ -0,0 +1,37 @@
---
title: future_salt
description: future_salt attributes, type and example
---
## Constructor: future\_salt
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|valid\_since|[int](../types/int.md) | Yes|
|valid\_until|[int](../types/int.md) | Yes|
|salt|[long](../types/long.md) | Yes|
### Type: [FutureSalt](../types/FutureSalt.md)
### Example:
```
$future_salt = ['_' => 'future_salt', 'valid_since' => int, 'valid_until' => int, 'salt' => long, ];
```
Or, if you're into Lua:
```
future_salt={_='future_salt', valid_since=int, valid_until=int, salt=long, }
```

View File

@ -0,0 +1,37 @@
---
title: future_salts
description: future_salts attributes, type and example
---
## Constructor: future\_salts
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|req\_msg\_id|[long](../types/long.md) | Yes|
|now|[int](../types/int.md) | Yes|
|salts|Array of [future\_salt](../constructors/future_salt.md) | Yes|
### Type: [FutureSalts](../types/FutureSalts.md)
### Example:
```
$future_salts = ['_' => 'future_salts', 'req_msg_id' => long, 'now' => int, 'salts' => [future_salt], ];
```
Or, if you're into Lua:
```
future_salts={_='future_salts', req_msg_id=long, now=int, salts={future_salt}, }
```

View File

@ -0,0 +1,37 @@
---
title: http_wait
description: http_wait attributes, type and example
---
## Constructor: http\_wait
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|max\_delay|[int](../types/int.md) | Yes|
|wait\_after|[int](../types/int.md) | Yes|
|max\_wait|[int](../types/int.md) | Yes|
### Type: [HttpWait](../types/HttpWait.md)
### Example:
```
$http_wait = ['_' => 'http_wait', 'max_delay' => int, 'wait_after' => int, 'max_wait' => int, ];
```
Or, if you're into Lua:
```
http_wait={_='http_wait', max_delay=int, wait_after=int, max_wait=int, }
```

View File

@ -23,6 +23,8 @@ description: List of constructors
[$account\_privacyRules](../constructors/account_privacyRules.md) = \['rules' => \[[PrivacyRule](../types/PrivacyRule.md)\], 'users' => \[[User](../types/User.md)\], \];<a name="account_privacyRules"></a>
[$account\_tmpPassword](../constructors/account_tmpPassword.md) = \['tmp_password' => [bytes](../types/bytes.md), 'valid_until' => [int](../types/int.md), \];<a name="account_tmpPassword"></a>
***
<br><br>[$auth\_authorization](../constructors/auth_authorization.md) = \['tmp_sessions' => [int](../types/int.md), 'user' => [User](../types/User.md), \];<a name="auth_authorization"></a>
@ -51,6 +53,11 @@ description: List of constructors
***
<br><br>[$authorization](../constructors/authorization.md) = \['hash' => [long](../types/long.md), 'device_model' => [string](../types/string.md), 'platform' => [string](../types/string.md), 'system_version' => [string](../types/string.md), 'api_id' => [int](../types/int.md), 'app_name' => [string](../types/string.md), 'app_version' => [string](../types/string.md), 'date_created' => [int](../types/int.md), 'date_active' => [int](../types/int.md), 'ip' => [string](../types/string.md), 'country' => [string](../types/string.md), 'region' => [string](../types/string.md), \];<a name="authorization"></a>
***
<br><br>[$bad\_msg\_notification](../constructors/bad_msg_notification.md) = \['bad_msg_id' => [long](../types/long.md), 'bad_msg_seqno' => [int](../types/int.md), 'error_code' => [int](../types/int.md), \];<a name="bad_msg_notification"></a>
[$bad\_server\_salt](../constructors/bad_server_salt.md) = \['bad_msg_id' => [long](../types/long.md), 'bad_msg_seqno' => [int](../types/int.md), 'error_code' => [int](../types/int.md), 'new_server_salt' => [long](../types/long.md), \];<a name="bad_server_salt"></a>
***
<br><br>[$boolFalse](../constructors/boolFalse.md) = \[\];<a name="boolFalse"></a>
@ -189,7 +196,10 @@ description: List of constructors
<br><br>[$chatPhotoEmpty](../constructors/chatPhotoEmpty.md) = \[\];<a name="chatPhotoEmpty"></a>
***
<br><br>[$config](../constructors/config.md) = \['phonecalls_enabled' => [Bool](../types/Bool.md), 'date' => [int](../types/int.md), 'expires' => [int](../types/int.md), 'test_mode' => [Bool](../types/Bool.md), 'this_dc' => [int](../types/int.md), 'dc_options' => \[[DcOption](../types/DcOption.md)\], 'chat_size_max' => [int](../types/int.md), 'megagroup_size_max' => [int](../types/int.md), 'forwarded_count_max' => [int](../types/int.md), 'online_update_period_ms' => [int](../types/int.md), 'offline_blur_timeout_ms' => [int](../types/int.md), 'offline_idle_timeout_ms' => [int](../types/int.md), 'online_cloud_timeout_ms' => [int](../types/int.md), 'notify_cloud_delay_ms' => [int](../types/int.md), 'notify_default_delay_ms' => [int](../types/int.md), 'chat_big_size' => [int](../types/int.md), 'push_chat_period_ms' => [int](../types/int.md), 'push_chat_limit' => [int](../types/int.md), 'saved_gifs_limit' => [int](../types/int.md), 'edit_time_limit' => [int](../types/int.md), 'rating_e_decay' => [int](../types/int.md), 'stickers_recent_limit' => [int](../types/int.md), 'tmp_sessions' => [int](../types/int.md), 'pinned_dialogs_count_max' => [int](../types/int.md), 'call_receive_timeout_ms' => [int](../types/int.md), 'call_ring_timeout_ms' => [int](../types/int.md), 'call_connect_timeout_ms' => [int](../types/int.md), 'call_packet_timeout_ms' => [int](../types/int.md), 'disabled_features' => \[[DisabledFeature](../types/DisabledFeature.md)\], \];<a name="config"></a>
<br><br>[$client\_DH\_inner\_data](../constructors/client_DH_inner_data.md) = \['nonce' => [int128](../types/int128.md), 'server_nonce' => [int128](../types/int128.md), 'retry_id' => [long](../types/long.md), 'g_b' => [string](../types/string.md), \];<a name="client_DH_inner_data"></a>
***
<br><br>[$config](../constructors/config.md) = \['phonecalls_enabled' => [Bool](../types/Bool.md), 'date' => [int](../types/int.md), 'expires' => [int](../types/int.md), 'test_mode' => [Bool](../types/Bool.md), 'this_dc' => [int](../types/int.md), 'dc_options' => \[[DcOption](../types/DcOption.md)\], 'chat_size_max' => [int](../types/int.md), 'megagroup_size_max' => [int](../types/int.md), 'forwarded_count_max' => [int](../types/int.md), 'online_update_period_ms' => [int](../types/int.md), 'offline_blur_timeout_ms' => [int](../types/int.md), 'offline_idle_timeout_ms' => [int](../types/int.md), 'online_cloud_timeout_ms' => [int](../types/int.md), 'notify_cloud_delay_ms' => [int](../types/int.md), 'notify_default_delay_ms' => [int](../types/int.md), 'chat_big_size' => [int](../types/int.md), 'push_chat_period_ms' => [int](../types/int.md), 'push_chat_limit' => [int](../types/int.md), 'saved_gifs_limit' => [int](../types/int.md), 'edit_time_limit' => [int](../types/int.md), 'rating_e_decay' => [int](../types/int.md), 'stickers_recent_limit' => [int](../types/int.md), 'tmp_sessions' => [int](../types/int.md), 'pinned_dialogs_count_max' => [int](../types/int.md), 'call_receive_timeout_ms' => [int](../types/int.md), 'call_ring_timeout_ms' => [int](../types/int.md), 'call_connect_timeout_ms' => [int](../types/int.md), 'call_packet_timeout_ms' => [int](../types/int.md), 'me_url_prefix' => [string](../types/string.md), 'disabled_features' => \[[DisabledFeature](../types/DisabledFeature.md)\], \];<a name="config"></a>
***
<br><br>[$contact](../constructors/contact.md) = \['user_id' => [int](../types/int.md), 'mutual' => [Bool](../types/Bool.md), \];<a name="contact"></a>
@ -233,9 +243,15 @@ description: List of constructors
[$contacts\_topPeersNotModified](../constructors/contacts_topPeersNotModified.md) = \[\];<a name="contacts_topPeersNotModified"></a>
***
<br><br>[$dataJSON](../constructors/dataJSON.md) = \['data' => [string](../types/string.md), \];<a name="dataJSON"></a>
***
<br><br>[$dcOption](../constructors/dcOption.md) = \['ipv6' => [Bool](../types/Bool.md), 'media_only' => [Bool](../types/Bool.md), 'tcpo_only' => [Bool](../types/Bool.md), 'id' => [int](../types/int.md), 'ip_address' => [string](../types/string.md), 'port' => [int](../types/int.md), \];<a name="dcOption"></a>
***
<br><br>[$decryptedDataBlock](../constructors/decryptedDataBlock.md) = \['voice_call_id' => [int128](../types/int128.md), 'in_seq_no' => [int](../types/int.md), 'out_seq_no' => [int](../types/int.md), 'recent_received_mask' => [int](../types/int.md), 'proto' => [int](../types/int.md), 'extra' => [string](../types/string.md), 'raw_data' => [string](../types/string.md), \];<a name="decryptedDataBlock"></a>
***
<br><br>[$decryptedMessage\_45](../constructors/decryptedMessage_45.md) = \['ttl' => [int](../types/int.md), 'message' => [string](../types/string.md), 'media' => [DecryptedMessageMedia](../types/DecryptedMessageMedia.md), 'entities' => \[[MessageEntity](../types/MessageEntity.md)\], 'via_bot_name' => [string](../types/string.md), 'reply_to_random_id' => [long](../types/long.md), \];<a name="decryptedMessage_45"></a>
@ -321,6 +337,17 @@ description: List of constructors
[$destroy\_auth\_key\_ok](../constructors/destroy_auth_key_ok.md) = \[\];<a name="destroy_auth_key_ok"></a>
[$destroy\_session\_none](../constructors/destroy_session_none.md) = \['session_id' => [long](../types/long.md), \];<a name="destroy_session_none"></a>
[$destroy\_session\_ok](../constructors/destroy_session_ok.md) = \['session_id' => [long](../types/long.md), \];<a name="destroy_session_ok"></a>
***
<br><br>[$dh\_gen\_fail](../constructors/dh_gen_fail.md) = \['nonce' => [int128](../types/int128.md), 'server_nonce' => [int128](../types/int128.md), 'new_nonce_hash3' => [int128](../types/int128.md), \];<a name="dh_gen_fail"></a>
[$dh\_gen\_ok](../constructors/dh_gen_ok.md) = \['nonce' => [int128](../types/int128.md), 'server_nonce' => [int128](../types/int128.md), 'new_nonce_hash1' => [int128](../types/int128.md), \];<a name="dh_gen_ok"></a>
[$dh\_gen\_retry](../constructors/dh_gen_retry.md) = \['nonce' => [int128](../types/int128.md), 'server_nonce' => [int128](../types/int128.md), 'new_nonce_hash2' => [int128](../types/int128.md), \];<a name="dh_gen_retry"></a>
***
<br><br>[$dialog](../constructors/dialog.md) = \['pinned' => [Bool](../types/Bool.md), 'peer' => [Peer](../types/Peer.md), 'top_message' => [int](../types/int.md), 'read_inbox_max_id' => [int](../types/int.md), 'read_outbox_max_id' => [int](../types/int.md), 'unread_count' => [int](../types/int.md), 'notify_settings' => [PeerNotifySettings](../types/PeerNotifySettings.md), 'pts' => [int](../types/int.md), 'draft' => [DraftMessage](../types/DraftMessage.md), \];<a name="dialog"></a>
@ -405,6 +432,11 @@ description: List of constructors
***
<br><br>[$foundGifCached](../constructors/foundGifCached.md) = \['url' => [string](../types/string.md), 'photo' => [Photo](../types/Photo.md), 'document' => [Document](../types/Document.md), \];<a name="foundGifCached"></a>
***
<br><br>[$future\_salt](../constructors/future_salt.md) = \['valid_since' => [int](../types/int.md), 'valid_until' => [int](../types/int.md), 'salt' => [long](../types/long.md), \];<a name="future_salt"></a>
[$future\_salts](../constructors/future_salts.md) = \['req_msg_id' => [long](../types/long.md), 'now' => [int](../types/int.md), 'salts' => \[[future\_salt](../constructors/future_salt.md)\], \];<a name="future_salts"></a>
***
<br><br>[$game](../constructors/game.md) = \['id' => [long](../types/long.md), 'access_hash' => [long](../types/long.md), 'short_name' => [string](../types/string.md), 'title' => [string](../types/string.md), 'description' => [string](../types/string.md), 'photo' => [Photo](../types/Photo.md), 'document' => [Document](../types/Document.md), \];<a name="game"></a>
@ -415,11 +447,7 @@ description: List of constructors
<br><br>[$geoPointEmpty](../constructors/geoPointEmpty.md) = \[\];<a name="geoPointEmpty"></a>
***
<br><br>[$help\_appChangelog](../constructors/help_appChangelog.md) = \['message' => [string](../types/string.md), 'media' => [MessageMedia](../types/MessageMedia.md), 'entities' => \[[MessageEntity](../types/MessageEntity.md)\], \];<a name="help_appChangelog"></a>
[$help\_appChangelogEmpty](../constructors/help_appChangelogEmpty.md) = \[\];<a name="help_appChangelogEmpty"></a>
[$help\_appUpdate](../constructors/help_appUpdate.md) = \['id' => [int](../types/int.md), 'critical' => [Bool](../types/Bool.md), 'url' => [string](../types/string.md), 'text' => [string](../types/string.md), \];<a name="help_appUpdate"></a>
<br><br>[$help\_appUpdate](../constructors/help_appUpdate.md) = \['id' => [int](../types/int.md), 'critical' => [Bool](../types/Bool.md), 'url' => [string](../types/string.md), 'text' => [string](../types/string.md), \];<a name="help_appUpdate"></a>
[$help\_inviteText](../constructors/help_inviteText.md) = \['message' => [string](../types/string.md), \];<a name="help_inviteText"></a>
@ -432,6 +460,9 @@ description: List of constructors
***
<br><br>[$highScore](../constructors/highScore.md) = \['pos' => [int](../types/int.md), 'user_id' => [int](../types/int.md), 'score' => [int](../types/int.md), \];<a name="highScore"></a>
***
<br><br>[$http\_wait](../constructors/http_wait.md) = \['max_delay' => [int](../types/int.md), 'wait_after' => [int](../types/int.md), 'max_wait' => [int](../types/int.md), \];<a name="http_wait"></a>
***
<br><br>[$importedContact](../constructors/importedContact.md) = \['user_id' => [int](../types/int.md), 'client_id' => [long](../types/long.md), \];<a name="importedContact"></a>
@ -558,6 +589,9 @@ description: List of constructors
***
<br><br>[$inputMediaGifExternal](../constructors/inputMediaGifExternal.md) = \['url' => [string](../types/string.md), 'q' => [string](../types/string.md), \];<a name="inputMediaGifExternal"></a>
***
<br><br>[$inputMediaInvoice](../constructors/inputMediaInvoice.md) = \['title' => [string](../types/string.md), 'description' => [string](../types/string.md), 'photo' => [InputWebDocument](../types/InputWebDocument.md), 'invoice' => [Invoice](../types/Invoice.md), 'payload' => [bytes](../types/bytes.md), 'provider' => [string](../types/string.md), 'start_param' => [string](../types/string.md), \];<a name="inputMediaInvoice"></a>
***
<br><br>[$inputMediaPhoto](../constructors/inputMediaPhoto.md) = \['id' => [InputPhoto](../types/InputPhoto.md), 'caption' => [string](../types/string.md), \];<a name="inputMediaPhoto"></a>
@ -627,6 +661,12 @@ description: List of constructors
***
<br><br>[$inputNotifyUsers](../constructors/inputNotifyUsers.md) = \[\];<a name="inputNotifyUsers"></a>
***
<br><br>[$inputPaymentCredentials](../constructors/inputPaymentCredentials.md) = \['save' => [Bool](../types/Bool.md), 'data' => [DataJSON](../types/DataJSON.md), \];<a name="inputPaymentCredentials"></a>
***
<br><br>[$inputPaymentCredentialsSaved](../constructors/inputPaymentCredentialsSaved.md) = \['id' => [string](../types/string.md), 'tmp_password' => [bytes](../types/bytes.md), \];<a name="inputPaymentCredentialsSaved"></a>
***
<br><br>[$inputPeerChannel](../constructors/inputPeerChannel.md) = \['channel_id' => [int](../types/int.md), 'access_hash' => [long](../types/long.md), \];<a name="inputPeerChannel"></a>
@ -726,9 +766,21 @@ description: List of constructors
***
<br><br>[$inputUserSelf](../constructors/inputUserSelf.md) = \[\];<a name="inputUserSelf"></a>
***
<br><br>[$inputWebDocument](../constructors/inputWebDocument.md) = \['url' => [string](../types/string.md), 'size' => [int](../types/int.md), 'mime_type' => [string](../types/string.md), 'attributes' => \[[DocumentAttribute](../types/DocumentAttribute.md)\], \];<a name="inputWebDocument"></a>
***
<br><br>[$inputWebFileLocation](../constructors/inputWebFileLocation.md) = \['url' => [string](../types/string.md), 'access_hash' => [long](../types/long.md), \];<a name="inputWebFileLocation"></a>
***
<br><br>[$invoice](../constructors/invoice.md) = \['test' => [Bool](../types/Bool.md), 'name_requested' => [Bool](../types/Bool.md), 'phone_requested' => [Bool](../types/Bool.md), 'email_requested' => [Bool](../types/Bool.md), 'shipping_address_requested' => [Bool](../types/Bool.md), 'flexible' => [Bool](../types/Bool.md), 'currency' => [string](../types/string.md), 'prices' => \[[LabeledPrice](../types/LabeledPrice.md)\], \];<a name="invoice"></a>
***
<br><br>[$keyboardButton](../constructors/keyboardButton.md) = \['text' => [string](../types/string.md), \];<a name="keyboardButton"></a>
***
<br><br>[$keyboardButtonBuy](../constructors/keyboardButtonBuy.md) = \['text' => [string](../types/string.md), \];<a name="keyboardButtonBuy"></a>
***
<br><br>[$keyboardButtonCallback](../constructors/keyboardButtonCallback.md) = \['text' => [string](../types/string.md), 'data' => [bytes](../types/bytes.md), \];<a name="keyboardButtonCallback"></a>
@ -750,6 +802,9 @@ description: List of constructors
***
<br><br>[$keyboardButtonUrl](../constructors/keyboardButtonUrl.md) = \['text' => [string](../types/string.md), 'url' => [string](../types/string.md), \];<a name="keyboardButtonUrl"></a>
***
<br><br>[$labeledPrice](../constructors/labeledPrice.md) = \['label' => [string](../types/string.md), 'amount' => [long](../types/long.md), \];<a name="labeledPrice"></a>
***
<br><br>[$maskCoords](../constructors/maskCoords.md) = \['n' => [int](../types/int.md), 'x' => [double](../types/double.md), 'y' => [double](../types/double.md), 'zoom' => [double](../types/double.md), \];<a name="maskCoords"></a>
@ -795,6 +850,12 @@ description: List of constructors
***
<br><br>[$messageActionHistoryClear](../constructors/messageActionHistoryClear.md) = \[\];<a name="messageActionHistoryClear"></a>
***
<br><br>[$messageActionPaymentSent](../constructors/messageActionPaymentSent.md) = \['currency' => [string](../types/string.md), 'total_amount' => [long](../types/long.md), \];<a name="messageActionPaymentSent"></a>
***
<br><br>[$messageActionPaymentSentMe](../constructors/messageActionPaymentSentMe.md) = \['currency' => [string](../types/string.md), 'total_amount' => [long](../types/long.md), 'payload' => [bytes](../types/bytes.md), 'info' => [PaymentRequestedInfo](../types/PaymentRequestedInfo.md), 'shipping_option_id' => [string](../types/string.md), 'charge' => [PaymentCharge](../types/PaymentCharge.md), \];<a name="messageActionPaymentSentMe"></a>
***
<br><br>[$messageActionPhoneCall](../constructors/messageActionPhoneCall.md) = \['call_id' => [long](../types/long.md), 'reason' => [PhoneCallDiscardReason](../types/PhoneCallDiscardReason.md), 'duration' => [int](../types/int.md), \];<a name="messageActionPhoneCall"></a>
@ -858,6 +919,9 @@ description: List of constructors
***
<br><br>[$messageMediaGeo](../constructors/messageMediaGeo.md) = \['geo' => [GeoPoint](../types/GeoPoint.md), \];<a name="messageMediaGeo"></a>
***
<br><br>[$messageMediaInvoice](../constructors/messageMediaInvoice.md) = \['shipping_address_requested' => [Bool](../types/Bool.md), 'test' => [Bool](../types/Bool.md), 'title' => [string](../types/string.md), 'description' => [string](../types/string.md), 'photo' => [WebDocument](../types/WebDocument.md), 'receipt_msg_id' => [int](../types/int.md), 'currency' => [string](../types/string.md), 'total_amount' => [long](../types/long.md), 'start_param' => [string](../types/string.md), \];<a name="messageMediaInvoice"></a>
***
<br><br>[$messageMediaPhoto](../constructors/messageMediaPhoto.md) = \['photo' => [Photo](../types/Photo.md), 'caption' => [string](../types/string.md), \];<a name="messageMediaPhoto"></a>
@ -945,9 +1009,28 @@ description: List of constructors
[$messages\_stickersNotModified](../constructors/messages_stickersNotModified.md) = \[\];<a name="messages_stickersNotModified"></a>
***
<br><br>[$msg\_detailed\_info](../constructors/msg_detailed_info.md) = \['msg_id' => [long](../types/long.md), 'answer_msg_id' => [long](../types/long.md), 'bytes' => [int](../types/int.md), 'status' => [int](../types/int.md), \];<a name="msg_detailed_info"></a>
[$msg\_new\_detailed\_info](../constructors/msg_new_detailed_info.md) = \['answer_msg_id' => [long](../types/long.md), 'bytes' => [int](../types/int.md), 'status' => [int](../types/int.md), \];<a name="msg_new_detailed_info"></a>
[$msg\_resend\_req](../constructors/msg_resend_req.md) = \['msg_ids' => \[[long](../types/long.md)\], \];<a name="msg_resend_req"></a>
***
<br><br>[$msgs\_ack](../constructors/msgs_ack.md) = \['msg_ids' => \[[long](../types/long.md)\], \];<a name="msgs_ack"></a>
[$msgs\_all\_info](../constructors/msgs_all_info.md) = \['msg_ids' => \[[long](../types/long.md)\], 'info' => [string](../types/string.md), \];<a name="msgs_all_info"></a>
[$msgs\_state\_info](../constructors/msgs_state_info.md) = \['req_msg_id' => [long](../types/long.md), 'info' => [string](../types/string.md), \];<a name="msgs_state_info"></a>
[$msgs\_state\_req](../constructors/msgs_state_req.md) = \['msg_ids' => \[[long](../types/long.md)\], \];<a name="msgs_state_req"></a>
***
<br><br>[$nearestDc](../constructors/nearestDc.md) = \['country' => [string](../types/string.md), 'this_dc' => [int](../types/int.md), 'nearest_dc' => [int](../types/int.md), \];<a name="nearestDc"></a>
***
<br><br>[$new\_session\_created](../constructors/new_session_created.md) = \['first_msg_id' => [long](../types/long.md), 'unique_id' => [long](../types/long.md), 'server_salt' => [long](../types/long.md), \];<a name="new_session_created"></a>
***
<br><br>[$notifyAll](../constructors/notifyAll.md) = \[\];<a name="notifyAll"></a>
@ -963,6 +1046,9 @@ description: List of constructors
***
<br><br>[$null](../constructors/null.md) = \[\];<a name="null"></a>
***
<br><br>[$p\_q\_inner\_data](../constructors/p_q_inner_data.md) = \['pq' => [string](../types/string.md), 'p' => [string](../types/string.md), 'q' => [string](../types/string.md), 'nonce' => [int128](../types/int128.md), 'server_nonce' => [int128](../types/int128.md), 'new_nonce' => [int256](../types/int256.md), \];<a name="p_q_inner_data"></a>
***
<br><br>[$pageBlockAnchor](../constructors/pageBlockAnchor.md) = \['name' => [string](../types/string.md), \];<a name="pageBlockAnchor"></a>
@ -1032,6 +1118,28 @@ description: List of constructors
***
<br><br>[$pagePart](../constructors/pagePart.md) = \['blocks' => \[[PageBlock](../types/PageBlock.md)\], 'photos' => \[[Photo](../types/Photo.md)\], 'videos' => \[[Document](../types/Document.md)\], \];<a name="pagePart"></a>
***
<br><br>[$paymentCharge](../constructors/paymentCharge.md) = \['id' => [string](../types/string.md), 'provider_charge_id' => [string](../types/string.md), \];<a name="paymentCharge"></a>
***
<br><br>[$paymentRequestedInfo](../constructors/paymentRequestedInfo.md) = \['name' => [string](../types/string.md), 'phone' => [string](../types/string.md), 'email' => [string](../types/string.md), 'shipping_address' => [PostAddress](../types/PostAddress.md), \];<a name="paymentRequestedInfo"></a>
***
<br><br>[$paymentSavedCredentialsCard](../constructors/paymentSavedCredentialsCard.md) = \['id' => [string](../types/string.md), 'title' => [string](../types/string.md), \];<a name="paymentSavedCredentialsCard"></a>
***
<br><br>[$payments\_paymentForm](../constructors/payments_paymentForm.md) = \['can_save_credentials' => [Bool](../types/Bool.md), 'password_missing' => [Bool](../types/Bool.md), 'bot_id' => [int](../types/int.md), 'invoice' => [Invoice](../types/Invoice.md), 'provider_id' => [int](../types/int.md), 'url' => [string](../types/string.md), 'native_provider' => [string](../types/string.md), 'native_params' => [DataJSON](../types/DataJSON.md), 'saved_info' => [PaymentRequestedInfo](../types/PaymentRequestedInfo.md), 'saved_credentials' => [PaymentSavedCredentials](../types/PaymentSavedCredentials.md), 'users' => \[[User](../types/User.md)\], \];<a name="payments_paymentForm"></a>
[$payments\_paymentReceipt](../constructors/payments_paymentReceipt.md) = \['date' => [int](../types/int.md), 'bot_id' => [int](../types/int.md), 'invoice' => [Invoice](../types/Invoice.md), 'provider_id' => [int](../types/int.md), 'info' => [PaymentRequestedInfo](../types/PaymentRequestedInfo.md), 'shipping' => [ShippingOption](../types/ShippingOption.md), 'currency' => [string](../types/string.md), 'total_amount' => [long](../types/long.md), 'credentials_title' => [string](../types/string.md), 'users' => \[[User](../types/User.md)\], \];<a name="payments_paymentReceipt"></a>
[$payments\_paymentResult](../constructors/payments_paymentResult.md) = \['updates' => [Updates](../types/Updates.md), \];<a name="payments_paymentResult"></a>
[$payments\_paymentVerficationNeeded](../constructors/payments_paymentVerficationNeeded.md) = \['url' => [string](../types/string.md), \];<a name="payments_paymentVerficationNeeded"></a>
[$payments\_savedInfo](../constructors/payments_savedInfo.md) = \['has_saved_credentials' => [Bool](../types/Bool.md), 'saved_info' => [PaymentRequestedInfo](../types/PaymentRequestedInfo.md), \];<a name="payments_savedInfo"></a>
[$payments\_validatedRequestedInfo](../constructors/payments_validatedRequestedInfo.md) = \['id' => [string](../types/string.md), 'shipping_options' => \[[ShippingOption](../types/ShippingOption.md)\], \];<a name="payments_validatedRequestedInfo"></a>
***
<br><br>[$peerChannel](../constructors/peerChannel.md) = \['channel_id' => [int](../types/int.md), \];<a name="peerChannel"></a>
@ -1059,6 +1167,9 @@ description: List of constructors
***
<br><br>[$phoneCall](../constructors/phoneCall.md) = \['id' => [long](../types/long.md), 'access_hash' => [long](../types/long.md), 'date' => [int](../types/int.md), 'admin_id' => [int](../types/int.md), 'participant_id' => [int](../types/int.md), 'g_a_or_b' => [bytes](../types/bytes.md), 'key_fingerprint' => [long](../types/long.md), 'protocol' => [PhoneCallProtocol](../types/PhoneCallProtocol.md), 'connection' => [PhoneConnection](../types/PhoneConnection.md), 'alternative_connections' => \[[PhoneConnection](../types/PhoneConnection.md)\], 'start_date' => [int](../types/int.md), \];<a name="phoneCall"></a>
***
<br><br>[$phoneCallAccepted](../constructors/phoneCallAccepted.md) = \['id' => [long](../types/long.md), 'access_hash' => [long](../types/long.md), 'date' => [int](../types/int.md), 'admin_id' => [int](../types/int.md), 'participant_id' => [int](../types/int.md), 'g_b' => [bytes](../types/bytes.md), 'protocol' => [PhoneCallProtocol](../types/PhoneCallProtocol.md), \];<a name="phoneCallAccepted"></a>
***
<br><br>[$phoneCallDiscardReasonBusy](../constructors/phoneCallDiscardReasonBusy.md) = \[\];<a name="phoneCallDiscardReasonBusy"></a>
@ -1072,7 +1183,7 @@ description: List of constructors
<br><br>[$phoneCallDiscardReasonMissed](../constructors/phoneCallDiscardReasonMissed.md) = \[\];<a name="phoneCallDiscardReasonMissed"></a>
***
<br><br>[$phoneCallDiscarded](../constructors/phoneCallDiscarded.md) = \['id' => [long](../types/long.md), 'reason' => [PhoneCallDiscardReason](../types/PhoneCallDiscardReason.md), 'duration' => [int](../types/int.md), \];<a name="phoneCallDiscarded"></a>
<br><br>[$phoneCallDiscarded](../constructors/phoneCallDiscarded.md) = \['need_rating' => [Bool](../types/Bool.md), 'need_debug' => [Bool](../types/Bool.md), 'id' => [long](../types/long.md), 'reason' => [PhoneCallDiscardReason](../types/PhoneCallDiscardReason.md), 'duration' => [int](../types/int.md), \];<a name="phoneCallDiscarded"></a>
***
<br><br>[$phoneCallEmpty](../constructors/phoneCallEmpty.md) = \['id' => [long](../types/long.md), \];<a name="phoneCallEmpty"></a>
@ -1081,7 +1192,7 @@ description: List of constructors
<br><br>[$phoneCallProtocol](../constructors/phoneCallProtocol.md) = \['udp_p2p' => [Bool](../types/Bool.md), 'udp_reflector' => [Bool](../types/Bool.md), 'min_layer' => [int](../types/int.md), 'max_layer' => [int](../types/int.md), \];<a name="phoneCallProtocol"></a>
***
<br><br>[$phoneCallRequested](../constructors/phoneCallRequested.md) = \['id' => [long](../types/long.md), 'access_hash' => [long](../types/long.md), 'date' => [int](../types/int.md), 'admin_id' => [int](../types/int.md), 'participant_id' => [int](../types/int.md), 'g_a' => [bytes](../types/bytes.md), 'protocol' => [PhoneCallProtocol](../types/PhoneCallProtocol.md), \];<a name="phoneCallRequested"></a>
<br><br>[$phoneCallRequested](../constructors/phoneCallRequested.md) = \['id' => [long](../types/long.md), 'access_hash' => [long](../types/long.md), 'date' => [int](../types/int.md), 'admin_id' => [int](../types/int.md), 'participant_id' => [int](../types/int.md), 'g_a_hash' => [bytes](../types/bytes.md), 'protocol' => [PhoneCallProtocol](../types/PhoneCallProtocol.md), \];<a name="phoneCallRequested"></a>
***
<br><br>[$phoneCallWaiting](../constructors/phoneCallWaiting.md) = \['id' => [long](../types/long.md), 'access_hash' => [long](../types/long.md), 'date' => [int](../types/int.md), 'admin_id' => [int](../types/int.md), 'participant_id' => [int](../types/int.md), 'protocol' => [PhoneCallProtocol](../types/PhoneCallProtocol.md), 'receive_date' => [int](../types/int.md), \];<a name="phoneCallWaiting"></a>
@ -1114,6 +1225,12 @@ description: List of constructors
[$photos\_photosSlice](../constructors/photos_photosSlice.md) = \['count' => [int](../types/int.md), 'photos' => \[[Photo](../types/Photo.md)\], 'users' => \[[User](../types/User.md)\], \];<a name="photos_photosSlice"></a>
***
<br><br>[$pong](../constructors/pong.md) = \['msg_id' => [long](../types/long.md), 'ping_id' => [long](../types/long.md), \];<a name="pong"></a>
***
<br><br>[$postAddress](../constructors/postAddress.md) = \['street_line1' => [string](../types/string.md), 'street_line2' => [string](../types/string.md), 'city' => [string](../types/string.md), 'state' => [string](../types/string.md), 'country_iso2' => [string](../types/string.md), 'post_code' => [string](../types/string.md), \];<a name="postAddress"></a>
***
<br><br>[$privacyKeyChatInvite](../constructors/privacyKeyChatInvite.md) = \[\];<a name="privacyKeyChatInvite"></a>
@ -1156,6 +1273,18 @@ description: List of constructors
***
<br><br>[$replyKeyboardMarkup](../constructors/replyKeyboardMarkup.md) = \['resize' => [Bool](../types/Bool.md), 'single_use' => [Bool](../types/Bool.md), 'selective' => [Bool](../types/Bool.md), 'rows' => \[[KeyboardButtonRow](../types/KeyboardButtonRow.md)\], \];<a name="replyKeyboardMarkup"></a>
***
<br><br>[$resPQ](../constructors/resPQ.md) = \['nonce' => [int128](../types/int128.md), 'server_nonce' => [int128](../types/int128.md), 'pq' => [string](../types/string.md), 'server_public_key_fingerprints' => \[[long](../types/long.md)\], \];<a name="resPQ"></a>
***
<br><br>[$rpc\_answer\_dropped](../constructors/rpc_answer_dropped.md) = \['msg_id' => [long](../types/long.md), 'seq_no' => [int](../types/int.md), 'bytes' => [int](../types/int.md), \];<a name="rpc_answer_dropped"></a>
[$rpc\_answer\_dropped\_running](../constructors/rpc_answer_dropped_running.md) = \[\];<a name="rpc_answer_dropped_running"></a>
[$rpc\_answer\_unknown](../constructors/rpc_answer_unknown.md) = \[\];<a name="rpc_answer_unknown"></a>
[$rpc\_error](../constructors/rpc_error.md) = \['error_code' => [int](../types/int.md), 'error_message' => [string](../types/string.md), \];<a name="rpc_error"></a>
***
<br><br>[$sendMessageCancelAction\_17](../constructors/sendMessageCancelAction_17.md) = \[\];<a name="sendMessageCancelAction_17"></a>
@ -1189,6 +1318,19 @@ description: List of constructors
***
<br><br>[$sendMessageUploadVideoAction\_17](../constructors/sendMessageUploadVideoAction_17.md) = \[\];<a name="sendMessageUploadVideoAction_17"></a>
***
<br><br>[$server\_DH\_inner\_data](../constructors/server_DH_inner_data.md) = \['nonce' => [int128](../types/int128.md), 'server_nonce' => [int128](../types/int128.md), 'g' => [int](../types/int.md), 'dh_prime' => [string](../types/string.md), 'g_a' => [string](../types/string.md), 'server_time' => [int](../types/int.md), \];<a name="server_DH_inner_data"></a>
[$server\_DH\_params\_fail](../constructors/server_DH_params_fail.md) = \['nonce' => [int128](../types/int128.md), 'server_nonce' => [int128](../types/int128.md), 'new_nonce_hash' => [int128](../types/int128.md), \];<a name="server_DH_params_fail"></a>
[$server\_DH\_params\_ok](../constructors/server_DH_params_ok.md) = \['nonce' => [int128](../types/int128.md), 'server_nonce' => [int128](../types/int128.md), 'encrypted_answer' => [string](../types/string.md), \];<a name="server_DH_params_ok"></a>
***
<br><br>[$shippingOption](../constructors/shippingOption.md) = \['id' => [string](../types/string.md), 'title' => [string](../types/string.md), 'prices' => \[[LabeledPrice](../types/LabeledPrice.md)\], \];<a name="shippingOption"></a>
***
<br><br>[$simpleDataBlock](../constructors/simpleDataBlock.md) = \['raw_data' => [string](../types/string.md), \];<a name="simpleDataBlock"></a>
***
<br><br>[$stickerPack](../constructors/stickerPack.md) = \['emoticon' => [string](../types/string.md), 'documents' => \[[long](../types/long.md)\], \];<a name="stickerPack"></a>
@ -1285,6 +1427,18 @@ description: List of constructors
***
<br><br>[$updateBotInlineSend](../constructors/updateBotInlineSend.md) = \['user_id' => [int](../types/int.md), 'query' => [string](../types/string.md), 'geo' => [GeoPoint](../types/GeoPoint.md), 'id' => [string](../types/string.md), 'msg_id' => [InputBotInlineMessageID](../types/InputBotInlineMessageID.md), \];<a name="updateBotInlineSend"></a>
***
<br><br>[$updateBotPrecheckoutQuery](../constructors/updateBotPrecheckoutQuery.md) = \['query_id' => [long](../types/long.md), 'user_id' => [int](../types/int.md), 'payload' => [bytes](../types/bytes.md), 'info' => [PaymentRequestedInfo](../types/PaymentRequestedInfo.md), 'shipping_option_id' => [string](../types/string.md), 'currency' => [string](../types/string.md), 'total_amount' => [long](../types/long.md), \];<a name="updateBotPrecheckoutQuery"></a>
***
<br><br>[$updateBotShippingQuery](../constructors/updateBotShippingQuery.md) = \['query_id' => [long](../types/long.md), 'user_id' => [int](../types/int.md), 'payload' => [bytes](../types/bytes.md), 'shipping_address' => [PostAddress](../types/PostAddress.md), \];<a name="updateBotShippingQuery"></a>
***
<br><br>[$updateBotWebhookJSON](../constructors/updateBotWebhookJSON.md) = \['data' => [DataJSON](../types/DataJSON.md), \];<a name="updateBotWebhookJSON"></a>
***
<br><br>[$updateBotWebhookJSONQuery](../constructors/updateBotWebhookJSONQuery.md) = \['query_id' => [long](../types/long.md), 'data' => [DataJSON](../types/DataJSON.md), 'timeout' => [int](../types/int.md), \];<a name="updateBotWebhookJSONQuery"></a>
***
<br><br>[$updateChannel](../constructors/updateChannel.md) = \['channel_id' => [int](../types/int.md), \];<a name="updateChannel"></a>
@ -1485,6 +1639,8 @@ description: List of constructors
***
<br><br>[$upload\_file](../constructors/upload_file.md) = \['type' => [storage\_FileType](../types/storage_FileType.md), 'mtime' => [int](../types/int.md), 'bytes' => [bytes](../types/bytes.md), \];<a name="upload_file"></a>
[$upload\_webFile](../constructors/upload_webFile.md) = \['size' => [int](../types/int.md), 'mime_type' => [string](../types/string.md), 'file_type' => [storage\_FileType](../types/storage_FileType.md), 'mtime' => [int](../types/int.md), 'bytes' => [bytes](../types/bytes.md), \];<a name="upload_webFile"></a>
***
<br><br>[$user](../constructors/user.md) = \['self' => [Bool](../types/Bool.md), 'contact' => [Bool](../types/Bool.md), 'mutual_contact' => [Bool](../types/Bool.md), 'deleted' => [Bool](../types/Bool.md), 'bot' => [Bool](../types/Bool.md), 'bot_chat_history' => [Bool](../types/Bool.md), 'bot_nochats' => [Bool](../types/Bool.md), 'verified' => [Bool](../types/Bool.md), 'restricted' => [Bool](../types/Bool.md), 'min' => [Bool](../types/Bool.md), 'bot_inline_geo' => [Bool](../types/Bool.md), 'id' => [int](../types/int.md), 'access_hash' => [long](../types/long.md), 'first_name' => [string](../types/string.md), 'last_name' => [string](../types/string.md), 'username' => [string](../types/string.md), 'phone' => [string](../types/string.md), 'photo' => [UserProfilePhoto](../types/UserProfilePhoto.md), 'status' => [UserStatus](../types/UserStatus.md), 'bot_info_version' => [int](../types/int.md), 'restriction_reason' => [string](../types/string.md), 'bot_inline_placeholder' => [string](../types/string.md), \];<a name="user"></a>
@ -1492,7 +1648,7 @@ description: List of constructors
<br><br>[$userEmpty](../constructors/userEmpty.md) = \['id' => [int](../types/int.md), \];<a name="userEmpty"></a>
***
<br><br>[$userFull](../constructors/userFull.md) = \['blocked' => [Bool](../types/Bool.md), 'phone_calls_available' => [Bool](../types/Bool.md), 'user' => [User](../types/User.md), 'about' => [string](../types/string.md), 'link' => [contacts\_Link](../types/contacts_Link.md), 'profile_photo' => [Photo](../types/Photo.md), 'notify_settings' => [PeerNotifySettings](../types/PeerNotifySettings.md), 'bot_info' => [BotInfo](../types/BotInfo.md), 'common_chats_count' => [int](../types/int.md), \];<a name="userFull"></a>
<br><br>[$userFull](../constructors/userFull.md) = \['blocked' => [Bool](../types/Bool.md), 'phone_calls_available' => [Bool](../types/Bool.md), 'phone_calls_private' => [Bool](../types/Bool.md), 'user' => [User](../types/User.md), 'about' => [string](../types/string.md), 'link' => [contacts\_Link](../types/contacts_Link.md), 'profile_photo' => [Photo](../types/Photo.md), 'notify_settings' => [PeerNotifySettings](../types/PeerNotifySettings.md), 'bot_info' => [BotInfo](../types/BotInfo.md), 'common_chats_count' => [int](../types/int.md), \];<a name="userFull"></a>
***
<br><br>[$userProfilePhoto](../constructors/userProfilePhoto.md) = \['photo_id' => [long](../types/long.md), 'photo_small' => [FileLocation](../types/FileLocation.md), 'photo_big' => [FileLocation](../types/FileLocation.md), \];<a name="userProfilePhoto"></a>
@ -1524,6 +1680,9 @@ description: List of constructors
***
<br><br>[$wallPaperSolid](../constructors/wallPaperSolid.md) = \['id' => [int](../types/int.md), 'title' => [string](../types/string.md), 'bg_color' => [int](../types/int.md), 'color' => [int](../types/int.md), \];<a name="wallPaperSolid"></a>
***
<br><br>[$webDocument](../constructors/webDocument.md) = \['url' => [string](../types/string.md), 'access_hash' => [long](../types/long.md), 'size' => [int](../types/int.md), 'mime_type' => [string](../types/string.md), 'attributes' => \[[DocumentAttribute](../types/DocumentAttribute.md)\], 'dc_id' => [int](../types/int.md), \];<a name="webDocument"></a>
***
<br><br>[$webPage](../constructors/webPage.md) = \['id' => [long](../types/long.md), 'url' => [string](../types/string.md), 'display_url' => [string](../types/string.md), 'hash' => [int](../types/int.md), 'type' => [string](../types/string.md), 'site_name' => [string](../types/string.md), 'title' => [string](../types/string.md), 'description' => [string](../types/string.md), 'photo' => [Photo](../types/Photo.md), 'embed_url' => [string](../types/string.md), 'embed_type' => [string](../types/string.md), 'embed_width' => [int](../types/int.md), 'embed_height' => [int](../types/int.md), 'duration' => [int](../types/int.md), 'author' => [string](../types/string.md), 'document' => [Document](../types/Document.md), 'cached_page' => [Page](../types/Page.md), \];<a name="webPage"></a>

View File

@ -0,0 +1,41 @@
---
title: inputMediaInvoice
description: inputMediaInvoice attributes, type and example
---
## Constructor: inputMediaInvoice
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|title|[string](../types/string.md) | Yes|
|description|[string](../types/string.md) | Yes|
|photo|[InputWebDocument](../types/InputWebDocument.md) | Optional|
|invoice|[Invoice](../types/Invoice.md) | Yes|
|payload|[bytes](../types/bytes.md) | Yes|
|provider|[string](../types/string.md) | Yes|
|start\_param|[string](../types/string.md) | Yes|
### Type: [InputMedia](../types/InputMedia.md)
### Example:
```
$inputMediaInvoice = ['_' => 'inputMediaInvoice', 'title' => string, 'description' => string, 'photo' => InputWebDocument, 'invoice' => Invoice, 'payload' => bytes, 'provider' => string, 'start_param' => string, ];
```
Or, if you're into Lua:
```
inputMediaInvoice={_='inputMediaInvoice', title=string, description=string, photo=InputWebDocument, invoice=Invoice, payload=bytes, provider=string, start_param=string, }
```

View File

@ -0,0 +1,36 @@
---
title: inputPaymentCredentials
description: inputPaymentCredentials attributes, type and example
---
## Constructor: inputPaymentCredentials
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|save|[Bool](../types/Bool.md) | Optional|
|data|[DataJSON](../types/DataJSON.md) | Yes|
### Type: [InputPaymentCredentials](../types/InputPaymentCredentials.md)
### Example:
```
$inputPaymentCredentials = ['_' => 'inputPaymentCredentials', 'save' => Bool, 'data' => DataJSON, ];
```
Or, if you're into Lua:
```
inputPaymentCredentials={_='inputPaymentCredentials', save=Bool, data=DataJSON, }
```

View File

@ -0,0 +1,36 @@
---
title: inputPaymentCredentialsSaved
description: inputPaymentCredentialsSaved attributes, type and example
---
## Constructor: inputPaymentCredentialsSaved
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|id|[string](../types/string.md) | Yes|
|tmp\_password|[bytes](../types/bytes.md) | Yes|
### Type: [InputPaymentCredentials](../types/InputPaymentCredentials.md)
### Example:
```
$inputPaymentCredentialsSaved = ['_' => 'inputPaymentCredentialsSaved', 'id' => string, 'tmp_password' => bytes, ];
```
Or, if you're into Lua:
```
inputPaymentCredentialsSaved={_='inputPaymentCredentialsSaved', id=string, tmp_password=bytes, }
```

View File

@ -0,0 +1,38 @@
---
title: inputWebDocument
description: inputWebDocument attributes, type and example
---
## Constructor: inputWebDocument
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|url|[string](../types/string.md) | Yes|
|size|[int](../types/int.md) | Yes|
|mime\_type|[string](../types/string.md) | Yes|
|attributes|Array of [DocumentAttribute](../types/DocumentAttribute.md) | Yes|
### Type: [InputWebDocument](../types/InputWebDocument.md)
### Example:
```
$inputWebDocument = ['_' => 'inputWebDocument', 'url' => string, 'size' => int, 'mime_type' => string, 'attributes' => [DocumentAttribute], ];
```
Or, if you're into Lua:
```
inputWebDocument={_='inputWebDocument', url=string, size=int, mime_type=string, attributes={DocumentAttribute}, }
```

View File

@ -0,0 +1,36 @@
---
title: inputWebFileLocation
description: inputWebFileLocation attributes, type and example
---
## Constructor: inputWebFileLocation
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|url|[string](../types/string.md) | Yes|
|access\_hash|[long](../types/long.md) | Yes|
### Type: [InputWebFileLocation](../types/InputWebFileLocation.md)
### Example:
```
$inputWebFileLocation = ['_' => 'inputWebFileLocation', 'url' => string, 'access_hash' => long, ];
```
Or, if you're into Lua:
```
inputWebFileLocation={_='inputWebFileLocation', url=string, access_hash=long, }
```

View File

@ -0,0 +1,42 @@
---
title: invoice
description: invoice attributes, type and example
---
## Constructor: invoice
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|test|[Bool](../types/Bool.md) | Optional|
|name\_requested|[Bool](../types/Bool.md) | Optional|
|phone\_requested|[Bool](../types/Bool.md) | Optional|
|email\_requested|[Bool](../types/Bool.md) | Optional|
|shipping\_address\_requested|[Bool](../types/Bool.md) | Optional|
|flexible|[Bool](../types/Bool.md) | Optional|
|currency|[string](../types/string.md) | Yes|
|prices|Array of [LabeledPrice](../types/LabeledPrice.md) | Yes|
### Type: [Invoice](../types/Invoice.md)
### Example:
```
$invoice = ['_' => 'invoice', 'test' => Bool, 'name_requested' => Bool, 'phone_requested' => Bool, 'email_requested' => Bool, 'shipping_address_requested' => Bool, 'flexible' => Bool, 'currency' => string, 'prices' => [LabeledPrice], ];
```
Or, if you're into Lua:
```
invoice={_='invoice', test=Bool, name_requested=Bool, phone_requested=Bool, email_requested=Bool, shipping_address_requested=Bool, flexible=Bool, currency=string, prices={LabeledPrice}, }
```

View File

@ -0,0 +1,35 @@
---
title: keyboardButtonBuy
description: keyboardButtonBuy attributes, type and example
---
## Constructor: keyboardButtonBuy
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|text|[string](../types/string.md) | Yes|
### Type: [KeyboardButton](../types/KeyboardButton.md)
### Example:
```
$keyboardButtonBuy = ['_' => 'keyboardButtonBuy', 'text' => string, ];
```
Or, if you're into Lua:
```
keyboardButtonBuy={_='keyboardButtonBuy', text=string, }
```

View File

@ -0,0 +1,36 @@
---
title: labeledPrice
description: labeledPrice attributes, type and example
---
## Constructor: labeledPrice
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|label|[string](../types/string.md) | Yes|
|amount|[long](../types/long.md) | Yes|
### Type: [LabeledPrice](../types/LabeledPrice.md)
### Example:
```
$labeledPrice = ['_' => 'labeledPrice', 'label' => string, 'amount' => long, ];
```
Or, if you're into Lua:
```
labeledPrice={_='labeledPrice', label=string, amount=long, }
```

View File

@ -0,0 +1,36 @@
---
title: messageActionPaymentSent
description: messageActionPaymentSent attributes, type and example
---
## Constructor: messageActionPaymentSent
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|currency|[string](../types/string.md) | Yes|
|total\_amount|[long](../types/long.md) | Yes|
### Type: [MessageAction](../types/MessageAction.md)
### Example:
```
$messageActionPaymentSent = ['_' => 'messageActionPaymentSent', 'currency' => string, 'total_amount' => long, ];
```
Or, if you're into Lua:
```
messageActionPaymentSent={_='messageActionPaymentSent', currency=string, total_amount=long, }
```

View File

@ -0,0 +1,40 @@
---
title: messageActionPaymentSentMe
description: messageActionPaymentSentMe attributes, type and example
---
## Constructor: messageActionPaymentSentMe
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|currency|[string](../types/string.md) | Yes|
|total\_amount|[long](../types/long.md) | Yes|
|payload|[bytes](../types/bytes.md) | Yes|
|info|[PaymentRequestedInfo](../types/PaymentRequestedInfo.md) | Optional|
|shipping\_option\_id|[string](../types/string.md) | Optional|
|charge|[PaymentCharge](../types/PaymentCharge.md) | Yes|
### Type: [MessageAction](../types/MessageAction.md)
### Example:
```
$messageActionPaymentSentMe = ['_' => 'messageActionPaymentSentMe', 'currency' => string, 'total_amount' => long, 'payload' => bytes, 'info' => PaymentRequestedInfo, 'shipping_option_id' => string, 'charge' => PaymentCharge, ];
```
Or, if you're into Lua:
```
messageActionPaymentSentMe={_='messageActionPaymentSentMe', currency=string, total_amount=long, payload=bytes, info=PaymentRequestedInfo, shipping_option_id=string, charge=PaymentCharge, }
```

View File

@ -0,0 +1,43 @@
---
title: messageMediaInvoice
description: messageMediaInvoice attributes, type and example
---
## Constructor: messageMediaInvoice
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|shipping\_address\_requested|[Bool](../types/Bool.md) | Optional|
|test|[Bool](../types/Bool.md) | Optional|
|title|[string](../types/string.md) | Yes|
|description|[string](../types/string.md) | Yes|
|photo|[WebDocument](../types/WebDocument.md) | Optional|
|receipt\_msg\_id|[int](../types/int.md) | Optional|
|currency|[string](../types/string.md) | Yes|
|total\_amount|[long](../types/long.md) | Yes|
|start\_param|[string](../types/string.md) | Yes|
### Type: [MessageMedia](../types/MessageMedia.md)
### Example:
```
$messageMediaInvoice = ['_' => 'messageMediaInvoice', 'shipping_address_requested' => Bool, 'test' => Bool, 'title' => string, 'description' => string, 'photo' => WebDocument, 'receipt_msg_id' => int, 'currency' => string, 'total_amount' => long, 'start_param' => string, ];
```
Or, if you're into Lua:
```
messageMediaInvoice={_='messageMediaInvoice', shipping_address_requested=Bool, test=Bool, title=string, description=string, photo=WebDocument, receipt_msg_id=int, currency=string, total_amount=long, start_param=string, }
```

View File

@ -0,0 +1,38 @@
---
title: msg_detailed_info
description: msg_detailed_info attributes, type and example
---
## Constructor: msg\_detailed\_info
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|msg\_id|[long](../types/long.md) | Yes|
|answer\_msg\_id|[long](../types/long.md) | Yes|
|bytes|[int](../types/int.md) | Yes|
|status|[int](../types/int.md) | Yes|
### Type: [MsgDetailedInfo](../types/MsgDetailedInfo.md)
### Example:
```
$msg_detailed_info = ['_' => 'msg_detailed_info', 'msg_id' => long, 'answer_msg_id' => long, 'bytes' => int, 'status' => int, ];
```
Or, if you're into Lua:
```
msg_detailed_info={_='msg_detailed_info', msg_id=long, answer_msg_id=long, bytes=int, status=int, }
```

View File

@ -0,0 +1,37 @@
---
title: msg_new_detailed_info
description: msg_new_detailed_info attributes, type and example
---
## Constructor: msg\_new\_detailed\_info
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|answer\_msg\_id|[long](../types/long.md) | Yes|
|bytes|[int](../types/int.md) | Yes|
|status|[int](../types/int.md) | Yes|
### Type: [MsgDetailedInfo](../types/MsgDetailedInfo.md)
### Example:
```
$msg_new_detailed_info = ['_' => 'msg_new_detailed_info', 'answer_msg_id' => long, 'bytes' => int, 'status' => int, ];
```
Or, if you're into Lua:
```
msg_new_detailed_info={_='msg_new_detailed_info', answer_msg_id=long, bytes=int, status=int, }
```

View File

@ -0,0 +1,35 @@
---
title: msg_resend_req
description: msg_resend_req attributes, type and example
---
## Constructor: msg\_resend\_req
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|msg\_ids|Array of [long](../types/long.md) | Yes|
### Type: [MsgResendReq](../types/MsgResendReq.md)
### Example:
```
$msg_resend_req = ['_' => 'msg_resend_req', 'msg_ids' => [long], ];
```
Or, if you're into Lua:
```
msg_resend_req={_='msg_resend_req', msg_ids={long}, }
```

View File

@ -0,0 +1,35 @@
---
title: msgs_ack
description: msgs_ack attributes, type and example
---
## Constructor: msgs\_ack
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|msg\_ids|Array of [long](../types/long.md) | Yes|
### Type: [MsgsAck](../types/MsgsAck.md)
### Example:
```
$msgs_ack = ['_' => 'msgs_ack', 'msg_ids' => [long], ];
```
Or, if you're into Lua:
```
msgs_ack={_='msgs_ack', msg_ids={long}, }
```

View File

@ -0,0 +1,36 @@
---
title: msgs_all_info
description: msgs_all_info attributes, type and example
---
## Constructor: msgs\_all\_info
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|msg\_ids|Array of [long](../types/long.md) | Yes|
|info|[string](../types/string.md) | Yes|
### Type: [MsgsAllInfo](../types/MsgsAllInfo.md)
### Example:
```
$msgs_all_info = ['_' => 'msgs_all_info', 'msg_ids' => [long], 'info' => string, ];
```
Or, if you're into Lua:
```
msgs_all_info={_='msgs_all_info', msg_ids={long}, info=string, }
```

View File

@ -0,0 +1,36 @@
---
title: msgs_state_info
description: msgs_state_info attributes, type and example
---
## Constructor: msgs\_state\_info
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|req\_msg\_id|[long](../types/long.md) | Yes|
|info|[string](../types/string.md) | Yes|
### Type: [MsgsStateInfo](../types/MsgsStateInfo.md)
### Example:
```
$msgs_state_info = ['_' => 'msgs_state_info', 'req_msg_id' => long, 'info' => string, ];
```
Or, if you're into Lua:
```
msgs_state_info={_='msgs_state_info', req_msg_id=long, info=string, }
```

View File

@ -0,0 +1,35 @@
---
title: msgs_state_req
description: msgs_state_req attributes, type and example
---
## Constructor: msgs\_state\_req
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|msg\_ids|Array of [long](../types/long.md) | Yes|
### Type: [MsgsStateReq](../types/MsgsStateReq.md)
### Example:
```
$msgs_state_req = ['_' => 'msgs_state_req', 'msg_ids' => [long], ];
```
Or, if you're into Lua:
```
msgs_state_req={_='msgs_state_req', msg_ids={long}, }
```

View File

@ -0,0 +1,37 @@
---
title: new_session_created
description: new_session_created attributes, type and example
---
## Constructor: new\_session\_created
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|first\_msg\_id|[long](../types/long.md) | Yes|
|unique\_id|[long](../types/long.md) | Yes|
|server\_salt|[long](../types/long.md) | Yes|
### Type: [NewSession](../types/NewSession.md)
### Example:
```
$new_session_created = ['_' => 'new_session_created', 'first_msg_id' => long, 'unique_id' => long, 'server_salt' => long, ];
```
Or, if you're into Lua:
```
new_session_created={_='new_session_created', first_msg_id=long, unique_id=long, server_salt=long, }
```

View File

@ -0,0 +1,40 @@
---
title: p_q_inner_data
description: p_q_inner_data attributes, type and example
---
## Constructor: p\_q\_inner\_data
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|pq|[string](../types/string.md) | Yes|
|p|[string](../types/string.md) | Yes|
|q|[string](../types/string.md) | Yes|
|nonce|[int128](../types/int128.md) | Yes|
|server\_nonce|[int128](../types/int128.md) | Yes|
|new\_nonce|[int256](../types/int256.md) | Yes|
### Type: [P\_Q\_inner\_data](../types/P_Q_inner_data.md)
### Example:
```
$p_q_inner_data = ['_' => 'p_q_inner_data', 'pq' => string, 'p' => string, 'q' => string, 'nonce' => int128, 'server_nonce' => int128, 'new_nonce' => int256, ];
```
Or, if you're into Lua:
```
p_q_inner_data={_='p_q_inner_data', pq=string, p=string, q=string, nonce=int128, server_nonce=int128, new_nonce=int256, }
```

View File

@ -0,0 +1,36 @@
---
title: paymentCharge
description: paymentCharge attributes, type and example
---
## Constructor: paymentCharge
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|id|[string](../types/string.md) | Yes|
|provider\_charge\_id|[string](../types/string.md) | Yes|
### Type: [PaymentCharge](../types/PaymentCharge.md)
### Example:
```
$paymentCharge = ['_' => 'paymentCharge', 'id' => string, 'provider_charge_id' => string, ];
```
Or, if you're into Lua:
```
paymentCharge={_='paymentCharge', id=string, provider_charge_id=string, }
```

View File

@ -0,0 +1,38 @@
---
title: paymentRequestedInfo
description: paymentRequestedInfo attributes, type and example
---
## Constructor: paymentRequestedInfo
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|name|[string](../types/string.md) | Optional|
|phone|[string](../types/string.md) | Optional|
|email|[string](../types/string.md) | Optional|
|shipping\_address|[PostAddress](../types/PostAddress.md) | Optional|
### Type: [PaymentRequestedInfo](../types/PaymentRequestedInfo.md)
### Example:
```
$paymentRequestedInfo = ['_' => 'paymentRequestedInfo', 'name' => string, 'phone' => string, 'email' => string, 'shipping_address' => PostAddress, ];
```
Or, if you're into Lua:
```
paymentRequestedInfo={_='paymentRequestedInfo', name=string, phone=string, email=string, shipping_address=PostAddress, }
```

View File

@ -0,0 +1,36 @@
---
title: paymentSavedCredentialsCard
description: paymentSavedCredentialsCard attributes, type and example
---
## Constructor: paymentSavedCredentialsCard
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|id|[string](../types/string.md) | Yes|
|title|[string](../types/string.md) | Yes|
### Type: [PaymentSavedCredentials](../types/PaymentSavedCredentials.md)
### Example:
```
$paymentSavedCredentialsCard = ['_' => 'paymentSavedCredentialsCard', 'id' => string, 'title' => string, ];
```
Or, if you're into Lua:
```
paymentSavedCredentialsCard={_='paymentSavedCredentialsCard', id=string, title=string, }
```

View File

@ -0,0 +1,45 @@
---
title: payments.paymentForm
description: payments_paymentForm attributes, type and example
---
## Constructor: payments.paymentForm
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|can\_save\_credentials|[Bool](../types/Bool.md) | Optional|
|password\_missing|[Bool](../types/Bool.md) | Optional|
|bot\_id|[int](../types/int.md) | Yes|
|invoice|[Invoice](../types/Invoice.md) | Yes|
|provider\_id|[int](../types/int.md) | Yes|
|url|[string](../types/string.md) | Yes|
|native\_provider|[string](../types/string.md) | Optional|
|native\_params|[DataJSON](../types/DataJSON.md) | Optional|
|saved\_info|[PaymentRequestedInfo](../types/PaymentRequestedInfo.md) | Optional|
|saved\_credentials|[PaymentSavedCredentials](../types/PaymentSavedCredentials.md) | Optional|
|users|Array of [User](../types/User.md) | Yes|
### Type: [payments\_PaymentForm](../types/payments_PaymentForm.md)
### Example:
```
$payments_paymentForm = ['_' => 'payments.paymentForm', 'can_save_credentials' => Bool, 'password_missing' => Bool, 'bot_id' => int, 'invoice' => Invoice, 'provider_id' => int, 'url' => string, 'native_provider' => string, 'native_params' => DataJSON, 'saved_info' => PaymentRequestedInfo, 'saved_credentials' => PaymentSavedCredentials, 'users' => [User], ];
```
Or, if you're into Lua:
```
payments_paymentForm={_='payments.paymentForm', can_save_credentials=Bool, password_missing=Bool, bot_id=int, invoice=Invoice, provider_id=int, url=string, native_provider=string, native_params=DataJSON, saved_info=PaymentRequestedInfo, saved_credentials=PaymentSavedCredentials, users={User}, }
```

View File

@ -0,0 +1,44 @@
---
title: payments.paymentReceipt
description: payments_paymentReceipt attributes, type and example
---
## Constructor: payments.paymentReceipt
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|date|[int](../types/int.md) | Yes|
|bot\_id|[int](../types/int.md) | Yes|
|invoice|[Invoice](../types/Invoice.md) | Yes|
|provider\_id|[int](../types/int.md) | Yes|
|info|[PaymentRequestedInfo](../types/PaymentRequestedInfo.md) | Optional|
|shipping|[ShippingOption](../types/ShippingOption.md) | Optional|
|currency|[string](../types/string.md) | Yes|
|total\_amount|[long](../types/long.md) | Yes|
|credentials\_title|[string](../types/string.md) | Yes|
|users|Array of [User](../types/User.md) | Yes|
### Type: [payments\_PaymentReceipt](../types/payments_PaymentReceipt.md)
### Example:
```
$payments_paymentReceipt = ['_' => 'payments.paymentReceipt', 'date' => int, 'bot_id' => int, 'invoice' => Invoice, 'provider_id' => int, 'info' => PaymentRequestedInfo, 'shipping' => ShippingOption, 'currency' => string, 'total_amount' => long, 'credentials_title' => string, 'users' => [User], ];
```
Or, if you're into Lua:
```
payments_paymentReceipt={_='payments.paymentReceipt', date=int, bot_id=int, invoice=Invoice, provider_id=int, info=PaymentRequestedInfo, shipping=ShippingOption, currency=string, total_amount=long, credentials_title=string, users={User}, }
```

View File

@ -0,0 +1,35 @@
---
title: payments.paymentResult
description: payments_paymentResult attributes, type and example
---
## Constructor: payments.paymentResult
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|updates|[Updates](../types/Updates.md) | Yes|
### Type: [payments\_PaymentResult](../types/payments_PaymentResult.md)
### Example:
```
$payments_paymentResult = ['_' => 'payments.paymentResult', 'updates' => Updates, ];
```
Or, if you're into Lua:
```
payments_paymentResult={_='payments.paymentResult', updates=Updates, }
```

View File

@ -0,0 +1,35 @@
---
title: payments.paymentVerficationNeeded
description: payments_paymentVerficationNeeded attributes, type and example
---
## Constructor: payments.paymentVerficationNeeded
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|url|[string](../types/string.md) | Yes|
### Type: [payments\_PaymentResult](../types/payments_PaymentResult.md)
### Example:
```
$payments_paymentVerficationNeeded = ['_' => 'payments.paymentVerficationNeeded', 'url' => string, ];
```
Or, if you're into Lua:
```
payments_paymentVerficationNeeded={_='payments.paymentVerficationNeeded', url=string, }
```

View File

@ -0,0 +1,36 @@
---
title: payments.savedInfo
description: payments_savedInfo attributes, type and example
---
## Constructor: payments.savedInfo
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|has\_saved\_credentials|[Bool](../types/Bool.md) | Optional|
|saved\_info|[PaymentRequestedInfo](../types/PaymentRequestedInfo.md) | Optional|
### Type: [payments\_SavedInfo](../types/payments_SavedInfo.md)
### Example:
```
$payments_savedInfo = ['_' => 'payments.savedInfo', 'has_saved_credentials' => Bool, 'saved_info' => PaymentRequestedInfo, ];
```
Or, if you're into Lua:
```
payments_savedInfo={_='payments.savedInfo', has_saved_credentials=Bool, saved_info=PaymentRequestedInfo, }
```

View File

@ -0,0 +1,36 @@
---
title: payments.validatedRequestedInfo
description: payments_validatedRequestedInfo attributes, type and example
---
## Constructor: payments.validatedRequestedInfo
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|id|[string](../types/string.md) | Optional|
|shipping\_options|Array of [ShippingOption](../types/ShippingOption.md) | Optional|
### Type: [payments\_ValidatedRequestedInfo](../types/payments_ValidatedRequestedInfo.md)
### Example:
```
$payments_validatedRequestedInfo = ['_' => 'payments.validatedRequestedInfo', 'id' => string, 'shipping_options' => [ShippingOption], ];
```
Or, if you're into Lua:
```
payments_validatedRequestedInfo={_='payments.validatedRequestedInfo', id=string, shipping_options={ShippingOption}, }
```

View File

@ -0,0 +1,41 @@
---
title: phoneCallAccepted
description: phoneCallAccepted attributes, type and example
---
## Constructor: phoneCallAccepted
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|id|[long](../types/long.md) | Yes|
|access\_hash|[long](../types/long.md) | Yes|
|date|[int](../types/int.md) | Yes|
|admin\_id|[int](../types/int.md) | Yes|
|participant\_id|[int](../types/int.md) | Yes|
|g\_b|[bytes](../types/bytes.md) | Yes|
|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | Yes|
### Type: [PhoneCall](../types/PhoneCall.md)
### Example:
```
$phoneCallAccepted = ['_' => 'phoneCallAccepted', 'id' => long, 'access_hash' => long, 'date' => int, 'admin_id' => int, 'participant_id' => int, 'g_b' => bytes, 'protocol' => PhoneCallProtocol, ];
```
Or, if you're into Lua:
```
phoneCallAccepted={_='phoneCallAccepted', id=long, access_hash=long, date=int, admin_id=int, participant_id=int, g_b=bytes, protocol=PhoneCallProtocol, }
```

View File

@ -11,6 +11,8 @@ description: phoneCallDiscarded attributes, type and example
| Name | Type | Required |
|----------|:-------------:|---------:|
|need\_rating|[Bool](../types/Bool.md) | Optional|
|need\_debug|[Bool](../types/Bool.md) | Optional|
|id|[long](../types/long.md) | Yes|
|reason|[PhoneCallDiscardReason](../types/PhoneCallDiscardReason.md) | Optional|
|duration|[int](../types/int.md) | Optional|
@ -23,14 +25,14 @@ description: phoneCallDiscarded attributes, type and example
### Example:
```
$phoneCallDiscarded = ['_' => 'phoneCallDiscarded', 'id' => long, 'reason' => PhoneCallDiscardReason, 'duration' => int, ];
$phoneCallDiscarded = ['_' => 'phoneCallDiscarded', 'need_rating' => Bool, 'need_debug' => Bool, 'id' => long, 'reason' => PhoneCallDiscardReason, 'duration' => int, ];
```
Or, if you're into Lua:
```
phoneCallDiscarded={_='phoneCallDiscarded', id=long, reason=PhoneCallDiscardReason, duration=int, }
phoneCallDiscarded={_='phoneCallDiscarded', need_rating=Bool, need_debug=Bool, id=long, reason=PhoneCallDiscardReason, duration=int, }
```

View File

@ -16,7 +16,7 @@ description: phoneCallRequested attributes, type and example
|date|[int](../types/int.md) | Yes|
|admin\_id|[int](../types/int.md) | Yes|
|participant\_id|[int](../types/int.md) | Yes|
|g\_a|[bytes](../types/bytes.md) | Yes|
|g\_a\_hash|[bytes](../types/bytes.md) | Yes|
|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | Yes|
@ -27,14 +27,14 @@ description: phoneCallRequested attributes, type and example
### Example:
```
$phoneCallRequested = ['_' => 'phoneCallRequested', 'id' => long, 'access_hash' => long, 'date' => int, 'admin_id' => int, 'participant_id' => int, 'g_a' => bytes, 'protocol' => PhoneCallProtocol, ];
$phoneCallRequested = ['_' => 'phoneCallRequested', 'id' => long, 'access_hash' => long, 'date' => int, 'admin_id' => int, 'participant_id' => int, 'g_a_hash' => bytes, 'protocol' => PhoneCallProtocol, ];
```
Or, if you're into Lua:
```
phoneCallRequested={_='phoneCallRequested', id=long, access_hash=long, date=int, admin_id=int, participant_id=int, g_a=bytes, protocol=PhoneCallProtocol, }
phoneCallRequested={_='phoneCallRequested', id=long, access_hash=long, date=int, admin_id=int, participant_id=int, g_a_hash=bytes, protocol=PhoneCallProtocol, }
```

View File

@ -0,0 +1,36 @@
---
title: pong
description: pong attributes, type and example
---
## Constructor: pong
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|msg\_id|[long](../types/long.md) | Yes|
|ping\_id|[long](../types/long.md) | Yes|
### Type: [Pong](../types/Pong.md)
### Example:
```
$pong = ['_' => 'pong', 'msg_id' => long, 'ping_id' => long, ];
```
Or, if you're into Lua:
```
pong={_='pong', msg_id=long, ping_id=long, }
```

View File

@ -0,0 +1,40 @@
---
title: postAddress
description: postAddress attributes, type and example
---
## Constructor: postAddress
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|street\_line1|[string](../types/string.md) | Yes|
|street\_line2|[string](../types/string.md) | Yes|
|city|[string](../types/string.md) | Yes|
|state|[string](../types/string.md) | Yes|
|country\_iso2|[string](../types/string.md) | Yes|
|post\_code|[string](../types/string.md) | Yes|
### Type: [PostAddress](../types/PostAddress.md)
### Example:
```
$postAddress = ['_' => 'postAddress', 'street_line1' => string, 'street_line2' => string, 'city' => string, 'state' => string, 'country_iso2' => string, 'post_code' => string, ];
```
Or, if you're into Lua:
```
postAddress={_='postAddress', street_line1=string, street_line2=string, city=string, state=string, country_iso2=string, post_code=string, }
```

View File

@ -0,0 +1,38 @@
---
title: resPQ
description: resPQ attributes, type and example
---
## Constructor: resPQ
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|nonce|[int128](../types/int128.md) | Yes|
|server\_nonce|[int128](../types/int128.md) | Yes|
|pq|[string](../types/string.md) | Yes|
|server\_public\_key\_fingerprints|Array of [long](../types/long.md) | Yes|
### Type: [ResPQ](../types/ResPQ.md)
### Example:
```
$resPQ = ['_' => 'resPQ', 'nonce' => int128, 'server_nonce' => int128, 'pq' => string, 'server_public_key_fingerprints' => [long], ];
```
Or, if you're into Lua:
```
resPQ={_='resPQ', nonce=int128, server_nonce=int128, pq=string, server_public_key_fingerprints={long}, }
```

View File

@ -0,0 +1,37 @@
---
title: rpc_answer_dropped
description: rpc_answer_dropped attributes, type and example
---
## Constructor: rpc\_answer\_dropped
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|msg\_id|[long](../types/long.md) | Yes|
|seq\_no|[int](../types/int.md) | Yes|
|bytes|[int](../types/int.md) | Yes|
### Type: [RpcDropAnswer](../types/RpcDropAnswer.md)
### Example:
```
$rpc_answer_dropped = ['_' => 'rpc_answer_dropped', 'msg_id' => long, 'seq_no' => int, 'bytes' => int, ];
```
Or, if you're into Lua:
```
rpc_answer_dropped={_='rpc_answer_dropped', msg_id=long, seq_no=int, bytes=int, }
```

View File

@ -0,0 +1,30 @@
---
title: rpc_answer_dropped_running
description: rpc_answer_dropped_running attributes, type and example
---
## Constructor: rpc\_answer\_dropped\_running
[Back to constructors index](index.md)
### Type: [RpcDropAnswer](../types/RpcDropAnswer.md)
### Example:
```
$rpc_answer_dropped_running = ['_' => 'rpc_answer_dropped_running', ];
```
Or, if you're into Lua:
```
rpc_answer_dropped_running={_='rpc_answer_dropped_running', }
```

View File

@ -0,0 +1,30 @@
---
title: rpc_answer_unknown
description: rpc_answer_unknown attributes, type and example
---
## Constructor: rpc\_answer\_unknown
[Back to constructors index](index.md)
### Type: [RpcDropAnswer](../types/RpcDropAnswer.md)
### Example:
```
$rpc_answer_unknown = ['_' => 'rpc_answer_unknown', ];
```
Or, if you're into Lua:
```
rpc_answer_unknown={_='rpc_answer_unknown', }
```

View File

@ -0,0 +1,36 @@
---
title: rpc_error
description: rpc_error attributes, type and example
---
## Constructor: rpc\_error
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|error\_code|[int](../types/int.md) | Yes|
|error\_message|[string](../types/string.md) | Yes|
### Type: [RpcError](../types/RpcError.md)
### Example:
```
$rpc_error = ['_' => 'rpc_error', 'error_code' => int, 'error_message' => string, ];
```
Or, if you're into Lua:
```
rpc_error={_='rpc_error', error_code=int, error_message=string, }
```

View File

@ -0,0 +1,40 @@
---
title: server_DH_inner_data
description: server_DH_inner_data attributes, type and example
---
## Constructor: server\_DH\_inner\_data
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|nonce|[int128](../types/int128.md) | Yes|
|server\_nonce|[int128](../types/int128.md) | Yes|
|g|[int](../types/int.md) | Yes|
|dh\_prime|[string](../types/string.md) | Yes|
|g\_a|[string](../types/string.md) | Yes|
|server\_time|[int](../types/int.md) | Yes|
### Type: [Server\_DH\_inner\_data](../types/Server_DH_inner_data.md)
### Example:
```
$server_DH_inner_data = ['_' => 'server_DH_inner_data', 'nonce' => int128, 'server_nonce' => int128, 'g' => int, 'dh_prime' => string, 'g_a' => string, 'server_time' => int, ];
```
Or, if you're into Lua:
```
server_DH_inner_data={_='server_DH_inner_data', nonce=int128, server_nonce=int128, g=int, dh_prime=string, g_a=string, server_time=int, }
```

View File

@ -0,0 +1,37 @@
---
title: server_DH_params_fail
description: server_DH_params_fail attributes, type and example
---
## Constructor: server\_DH\_params\_fail
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|nonce|[int128](../types/int128.md) | Yes|
|server\_nonce|[int128](../types/int128.md) | Yes|
|new\_nonce\_hash|[int128](../types/int128.md) | Yes|
### Type: [Server\_DH\_Params](../types/Server_DH_Params.md)
### Example:
```
$server_DH_params_fail = ['_' => 'server_DH_params_fail', 'nonce' => int128, 'server_nonce' => int128, 'new_nonce_hash' => int128, ];
```
Or, if you're into Lua:
```
server_DH_params_fail={_='server_DH_params_fail', nonce=int128, server_nonce=int128, new_nonce_hash=int128, }
```

View File

@ -0,0 +1,37 @@
---
title: server_DH_params_ok
description: server_DH_params_ok attributes, type and example
---
## Constructor: server\_DH\_params\_ok
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|nonce|[int128](../types/int128.md) | Yes|
|server\_nonce|[int128](../types/int128.md) | Yes|
|encrypted\_answer|[string](../types/string.md) | Yes|
### Type: [Server\_DH\_Params](../types/Server_DH_Params.md)
### Example:
```
$server_DH_params_ok = ['_' => 'server_DH_params_ok', 'nonce' => int128, 'server_nonce' => int128, 'encrypted_answer' => string, ];
```
Or, if you're into Lua:
```
server_DH_params_ok={_='server_DH_params_ok', nonce=int128, server_nonce=int128, encrypted_answer=string, }
```

View File

@ -0,0 +1,37 @@
---
title: shippingOption
description: shippingOption attributes, type and example
---
## Constructor: shippingOption
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|id|[string](../types/string.md) | Yes|
|title|[string](../types/string.md) | Yes|
|prices|Array of [LabeledPrice](../types/LabeledPrice.md) | Yes|
### Type: [ShippingOption](../types/ShippingOption.md)
### Example:
```
$shippingOption = ['_' => 'shippingOption', 'id' => string, 'title' => string, 'prices' => [LabeledPrice], ];
```
Or, if you're into Lua:
```
shippingOption={_='shippingOption', id=string, title=string, prices={LabeledPrice}, }
```

View File

@ -0,0 +1,35 @@
---
title: simpleDataBlock
description: simpleDataBlock attributes, type and example
---
## Constructor: simpleDataBlock
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|raw\_data|[string](../types/string.md) | Yes|
### Type: [DecryptedDataBlock](../types/DecryptedDataBlock.md)
### Example:
```
$simpleDataBlock = ['_' => 'simpleDataBlock', 'raw_data' => string, ];
```
Or, if you're into Lua:
```
simpleDataBlock={_='simpleDataBlock', raw_data=string, }
```

View File

@ -0,0 +1,41 @@
---
title: updateBotPrecheckoutQuery
description: updateBotPrecheckoutQuery attributes, type and example
---
## Constructor: updateBotPrecheckoutQuery
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|query\_id|[long](../types/long.md) | Yes|
|user\_id|[int](../types/int.md) | Yes|
|payload|[bytes](../types/bytes.md) | Yes|
|info|[PaymentRequestedInfo](../types/PaymentRequestedInfo.md) | Optional|
|shipping\_option\_id|[string](../types/string.md) | Optional|
|currency|[string](../types/string.md) | Yes|
|total\_amount|[long](../types/long.md) | Yes|
### Type: [Update](../types/Update.md)
### Example:
```
$updateBotPrecheckoutQuery = ['_' => 'updateBotPrecheckoutQuery', 'query_id' => long, 'user_id' => int, 'payload' => bytes, 'info' => PaymentRequestedInfo, 'shipping_option_id' => string, 'currency' => string, 'total_amount' => long, ];
```
Or, if you're into Lua:
```
updateBotPrecheckoutQuery={_='updateBotPrecheckoutQuery', query_id=long, user_id=int, payload=bytes, info=PaymentRequestedInfo, shipping_option_id=string, currency=string, total_amount=long, }
```

View File

@ -0,0 +1,38 @@
---
title: updateBotShippingQuery
description: updateBotShippingQuery attributes, type and example
---
## Constructor: updateBotShippingQuery
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|query\_id|[long](../types/long.md) | Yes|
|user\_id|[int](../types/int.md) | Yes|
|payload|[bytes](../types/bytes.md) | Yes|
|shipping\_address|[PostAddress](../types/PostAddress.md) | Yes|
### Type: [Update](../types/Update.md)
### Example:
```
$updateBotShippingQuery = ['_' => 'updateBotShippingQuery', 'query_id' => long, 'user_id' => int, 'payload' => bytes, 'shipping_address' => PostAddress, ];
```
Or, if you're into Lua:
```
updateBotShippingQuery={_='updateBotShippingQuery', query_id=long, user_id=int, payload=bytes, shipping_address=PostAddress, }
```

View File

@ -0,0 +1,35 @@
---
title: updateBotWebhookJSON
description: updateBotWebhookJSON attributes, type and example
---
## Constructor: updateBotWebhookJSON
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|data|[DataJSON](../types/DataJSON.md) | Yes|
### Type: [Update](../types/Update.md)
### Example:
```
$updateBotWebhookJSON = ['_' => 'updateBotWebhookJSON', 'data' => DataJSON, ];
```
Or, if you're into Lua:
```
updateBotWebhookJSON={_='updateBotWebhookJSON', data=DataJSON, }
```

View File

@ -0,0 +1,37 @@
---
title: updateBotWebhookJSONQuery
description: updateBotWebhookJSONQuery attributes, type and example
---
## Constructor: updateBotWebhookJSONQuery
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|query\_id|[long](../types/long.md) | Yes|
|data|[DataJSON](../types/DataJSON.md) | Yes|
|timeout|[int](../types/int.md) | Yes|
### Type: [Update](../types/Update.md)
### Example:
```
$updateBotWebhookJSONQuery = ['_' => 'updateBotWebhookJSONQuery', 'query_id' => long, 'data' => DataJSON, 'timeout' => int, ];
```
Or, if you're into Lua:
```
updateBotWebhookJSONQuery={_='updateBotWebhookJSONQuery', query_id=long, data=DataJSON, timeout=int, }
```

View File

@ -0,0 +1,39 @@
---
title: upload.webFile
description: upload_webFile attributes, type and example
---
## Constructor: upload.webFile
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|size|[int](../types/int.md) | Yes|
|mime\_type|[string](../types/string.md) | Yes|
|file\_type|[storage\_FileType](../types/storage_FileType.md) | Yes|
|mtime|[int](../types/int.md) | Yes|
|bytes|[bytes](../types/bytes.md) | Yes|
### Type: [upload\_WebFile](../types/upload_WebFile.md)
### Example:
```
$upload_webFile = ['_' => 'upload.webFile', 'size' => int, 'mime_type' => string, 'file_type' => storage_FileType, 'mtime' => int, 'bytes' => bytes, ];
```
Or, if you're into Lua:
```
upload_webFile={_='upload.webFile', size=int, mime_type=string, file_type=storage_FileType, mtime=int, bytes=bytes, }
```

View File

@ -13,6 +13,7 @@ description: userFull attributes, type and example
|----------|:-------------:|---------:|
|blocked|[Bool](../types/Bool.md) | Optional|
|phone\_calls\_available|[Bool](../types/Bool.md) | Optional|
|phone\_calls\_private|[Bool](../types/Bool.md) | Optional|
|user|[User](../types/User.md) | Yes|
|about|[string](../types/string.md) | Optional|
|link|[contacts\_Link](../types/contacts_Link.md) | Yes|
@ -29,14 +30,14 @@ description: userFull attributes, type and example
### Example:
```
$userFull = ['_' => 'userFull', 'blocked' => Bool, 'phone_calls_available' => Bool, 'user' => User, 'about' => string, 'link' => contacts_Link, 'profile_photo' => Photo, 'notify_settings' => PeerNotifySettings, 'bot_info' => BotInfo, 'common_chats_count' => int, ];
$userFull = ['_' => 'userFull', 'blocked' => Bool, 'phone_calls_available' => Bool, 'phone_calls_private' => Bool, 'user' => User, 'about' => string, 'link' => contacts_Link, 'profile_photo' => Photo, 'notify_settings' => PeerNotifySettings, 'bot_info' => BotInfo, 'common_chats_count' => int, ];
```
Or, if you're into Lua:
```
userFull={_='userFull', blocked=Bool, phone_calls_available=Bool, user=User, about=string, link=contacts_Link, profile_photo=Photo, notify_settings=PeerNotifySettings, bot_info=BotInfo, common_chats_count=int, }
userFull={_='userFull', blocked=Bool, phone_calls_available=Bool, phone_calls_private=Bool, user=User, about=string, link=contacts_Link, profile_photo=Photo, notify_settings=PeerNotifySettings, bot_info=BotInfo, common_chats_count=int, }
```

View File

@ -0,0 +1,40 @@
---
title: webDocument
description: webDocument attributes, type and example
---
## Constructor: webDocument
[Back to constructors index](index.md)
### Attributes:
| Name | Type | Required |
|----------|:-------------:|---------:|
|url|[string](../types/string.md) | Yes|
|access\_hash|[long](../types/long.md) | Yes|
|size|[int](../types/int.md) | Yes|
|mime\_type|[string](../types/string.md) | Yes|
|attributes|Array of [DocumentAttribute](../types/DocumentAttribute.md) | Yes|
|dc\_id|[int](../types/int.md) | Yes|
### Type: [WebDocument](../types/WebDocument.md)
### Example:
```
$webDocument = ['_' => 'webDocument', 'url' => string, 'access_hash' => long, 'size' => int, 'mime_type' => string, 'attributes' => [DocumentAttribute], 'dc_id' => int, ];
```
Or, if you're into Lua:
```
webDocument={_='webDocument', url=string, access_hash=long, size=int, mime_type=string, attributes={DocumentAttribute}, dc_id=int, }
```

View File

@ -1,8 +1,8 @@
---
title: MadelineProto API documentation (layer 62)
description: MadelineProto API documentation (layer 62)
title: MadelineProto API documentation (layer 65)
description: MadelineProto API documentation (layer 65)
---
# MadelineProto API documentation (layer 62)
# MadelineProto API documentation (layer 65)
[Methods](methods/)

View File

@ -0,0 +1,45 @@
---
title: account.getTmpPassword
description: account.getTmpPassword parameters, return type and example
---
## Method: account.getTmpPassword
[Back to methods index](index.md)
### Parameters:
| Name | Type | Required |
|----------|:-------------:|---------:|
|password\_hash|[bytes](../types/bytes.md) | Yes|
|period|[int](../types/int.md) | Yes|
### Return type: [account\_TmpPassword](../types/account_TmpPassword.md)
### Example:
```
$MadelineProto = new \danog\MadelineProto\API();
if (isset($token)) {
$this->bot_login($token);
}
if (isset($number)) {
$sentCode = $MadelineProto->phone_login($number);
echo 'Enter the code you received: ';
$code = '';
for ($x = 0; $x < $sentCode['type']['length']; $x++) {
$code .= fgetc(STDIN);
}
$MadelineProto->complete_phone_login($code);
}
$account_TmpPassword = $MadelineProto->account->getTmpPassword(['password_hash' => bytes, 'period' => int, ]);
```
Or, if you're into Lua:
```
account_TmpPassword = account.getTmpPassword({password_hash=bytes, period=int, })
```

View File

@ -0,0 +1,45 @@
---
title: bots.answerWebhookJSONQuery
description: bots.answerWebhookJSONQuery parameters, return type and example
---
## Method: bots.answerWebhookJSONQuery
[Back to methods index](index.md)
### Parameters:
| Name | Type | Required |
|----------|:-------------:|---------:|
|query\_id|[long](../types/long.md) | Yes|
|data|[DataJSON](../types/DataJSON.md) | Yes|
### Return type: [Bool](../types/Bool.md)
### Example:
```
$MadelineProto = new \danog\MadelineProto\API();
if (isset($token)) {
$this->bot_login($token);
}
if (isset($number)) {
$sentCode = $MadelineProto->phone_login($number);
echo 'Enter the code you received: ';
$code = '';
for ($x = 0; $x < $sentCode['type']['length']; $x++) {
$code .= fgetc(STDIN);
}
$MadelineProto->complete_phone_login($code);
}
$Bool = $MadelineProto->bots->answerWebhookJSONQuery(['query_id' => long, 'data' => DataJSON, ]);
```
Or, if you're into Lua:
```
Bool = bots.answerWebhookJSONQuery({query_id=long, data=DataJSON, })
```

View File

@ -0,0 +1,45 @@
---
title: bots.sendCustomRequest
description: bots.sendCustomRequest parameters, return type and example
---
## Method: bots.sendCustomRequest
[Back to methods index](index.md)
### Parameters:
| Name | Type | Required |
|----------|:-------------:|---------:|
|custom\_method|[string](../types/string.md) | Yes|
|params|[DataJSON](../types/DataJSON.md) | Yes|
### Return type: [DataJSON](../types/DataJSON.md)
### Example:
```
$MadelineProto = new \danog\MadelineProto\API();
if (isset($token)) {
$this->bot_login($token);
}
if (isset($number)) {
$sentCode = $MadelineProto->phone_login($number);
echo 'Enter the code you received: ';
$code = '';
for ($x = 0; $x < $sentCode['type']['length']; $x++) {
$code .= fgetc(STDIN);
}
$MadelineProto->complete_phone_login($code);
}
$DataJSON = $MadelineProto->bots->sendCustomRequest(['custom_method' => string, 'params' => DataJSON, ]);
```
Or, if you're into Lua:
```
DataJSON = bots.sendCustomRequest({custom_method=string, params=DataJSON, })
```

View File

@ -0,0 +1,48 @@
---
title: contest.saveDeveloperInfo
description: contest.saveDeveloperInfo parameters, return type and example
---
## Method: contest.saveDeveloperInfo
[Back to methods index](index.md)
### Parameters:
| Name | Type | Required |
|----------|:-------------:|---------:|
|vk\_id|[int](../types/int.md) | Yes|
|name|[string](../types/string.md) | Yes|
|phone\_number|[string](../types/string.md) | Yes|
|age|[int](../types/int.md) | Yes|
|city|[string](../types/string.md) | Yes|
### Return type: [Bool](../types/Bool.md)
### Example:
```
$MadelineProto = new \danog\MadelineProto\API();
if (isset($token)) {
$this->bot_login($token);
}
if (isset($number)) {
$sentCode = $MadelineProto->phone_login($number);
echo 'Enter the code you received: ';
$code = '';
for ($x = 0; $x < $sentCode['type']['length']; $x++) {
$code .= fgetc(STDIN);
}
$MadelineProto->complete_phone_login($code);
}
$Bool = $MadelineProto->contest->saveDeveloperInfo(['vk_id' => int, 'name' => string, 'phone_number' => string, 'age' => int, 'city' => string, ]);
```
Or, if you're into Lua:
```
Bool = contest.saveDeveloperInfo({vk_id=int, name=string, phone_number=string, age=int, city=string, })
```

View File

@ -0,0 +1,44 @@
---
title: destroy_session
description: destroy_session parameters, return type and example
---
## Method: destroy\_session
[Back to methods index](index.md)
### Parameters:
| Name | Type | Required |
|----------|:-------------:|---------:|
|session\_id|[long](../types/long.md) | Yes|
### Return type: [DestroySessionRes](../types/DestroySessionRes.md)
### Example:
```
$MadelineProto = new \danog\MadelineProto\API();
if (isset($token)) {
$this->bot_login($token);
}
if (isset($number)) {
$sentCode = $MadelineProto->phone_login($number);
echo 'Enter the code you received: ';
$code = '';
for ($x = 0; $x < $sentCode['type']['length']; $x++) {
$code .= fgetc(STDIN);
}
$MadelineProto->complete_phone_login($code);
}
$DestroySessionRes = $MadelineProto->destroy_session(['session_id' => long, ]);
```
Or, if you're into Lua:
```
DestroySessionRes = destroy_session({session_id=long, })
```

View File

@ -0,0 +1,44 @@
---
title: get_future_salts
description: get_future_salts parameters, return type and example
---
## Method: get\_future\_salts
[Back to methods index](index.md)
### Parameters:
| Name | Type | Required |
|----------|:-------------:|---------:|
|num|[int](../types/int.md) | Yes|
### Return type: [FutureSalts](../types/FutureSalts.md)
### Example:
```
$MadelineProto = new \danog\MadelineProto\API();
if (isset($token)) {
$this->bot_login($token);
}
if (isset($number)) {
$sentCode = $MadelineProto->phone_login($number);
echo 'Enter the code you received: ';
$code = '';
for ($x = 0; $x < $sentCode['type']['length']; $x++) {
$code .= fgetc(STDIN);
}
$MadelineProto->complete_phone_login($code);
}
$FutureSalts = $MadelineProto->get_future_salts(['num' => int, ]);
```
Or, if you're into Lua:
```
FutureSalts = get_future_salts({num=int, })
```

View File

@ -6,9 +6,14 @@ description: help.getAppChangelog parameters, return type and example
[Back to methods index](index.md)
### Parameters:
| Name | Type | Required |
|----------|:-------------:|---------:|
|prev\_app\_version|[string](../types/string.md) | Yes|
### Return type: [help\_AppChangelog](../types/help_AppChangelog.md)
### Return type: [Updates](../types/Updates.md)
### Example:
@ -28,12 +33,12 @@ if (isset($number)) {
$MadelineProto->complete_phone_login($code);
}
$help_AppChangelog = $MadelineProto->help->getAppChangelog();
$Updates = $MadelineProto->help->getAppChangelog(['prev_app_version' => string, ]);
```
Or, if you're into Lua:
```
help_AppChangelog = help.getAppChangelog({})
Updates = help.getAppChangelog({prev_app_version=string, })
```

View File

@ -28,6 +28,8 @@ $MadelineProto->[account->getPasswordSettings](account_getPasswordSettings.md)(\
$MadelineProto->[account->getPrivacy](account_getPrivacy.md)(\['key' => [InputPrivacyKey](../types/InputPrivacyKey.md), \]) === [$account\_PrivacyRules](../types/account_PrivacyRules.md)<a name="account_getPrivacy"></a>
$MadelineProto->[account->getTmpPassword](account_getTmpPassword.md)(\['password_hash' => [bytes](../types/bytes.md), 'period' => [int](../types/int.md), \]) === [$account\_TmpPassword](../types/account_TmpPassword.md)<a name="account_getTmpPassword"></a>
$MadelineProto->[account->getWallPapers](account_getWallPapers.md)(\[\]) === [$Vector\_of\_WallPaper](../types/WallPaper.md)<a name="account_getWallPapers"></a>
$MadelineProto->[account->registerDevice](account_registerDevice.md)(\['token_type' => [int](../types/int.md), 'token' => [string](../types/string.md), \]) === [$Bool](../types/Bool.md)<a name="account_registerDevice"></a>
@ -95,6 +97,11 @@ $MadelineProto->[auth->signIn](auth_signIn.md)(\['phone_number' => [string](../t
$MadelineProto->[auth->signUp](auth_signUp.md)(\['phone_number' => [string](../types/string.md), 'phone_code_hash' => [string](../types/string.md), 'phone_code' => [string](../types/string.md), 'first_name' => [string](../types/string.md), 'last_name' => [string](../types/string.md), \]) === [$auth\_Authorization](../types/auth_Authorization.md)<a name="auth_signUp"></a>
***
<br><br>$MadelineProto->[bots->answerWebhookJSONQuery](bots_answerWebhookJSONQuery.md)(\['query_id' => [long](../types/long.md), 'data' => [DataJSON](../types/DataJSON.md), \]) === [$Bool](../types/Bool.md)<a name="bots_answerWebhookJSONQuery"></a>
$MadelineProto->[bots->sendCustomRequest](bots_sendCustomRequest.md)(\['custom_method' => [string](../types/string.md), 'params' => [DataJSON](../types/DataJSON.md), \]) === [$DataJSON](../types/DataJSON.md)<a name="bots_sendCustomRequest"></a>
***
<br><br>$MadelineProto->[channels->checkUsername](channels_checkUsername.md)(\['channel' => [InputChannel](../types/InputChannel.md), 'username' => [string](../types/string.md), \]) === [$Bool](../types/Bool.md)<a name="channels_checkUsername"></a>
@ -180,10 +187,18 @@ $MadelineProto->[contacts->search](contacts_search.md)(\['q' => [string](../type
$MadelineProto->[contacts->unblock](contacts_unblock.md)(\['id' => [InputUser](../types/InputUser.md), \]) === [$Bool](../types/Bool.md)<a name="contacts_unblock"></a>
***
<br><br>$MadelineProto->[destroy_auth_key](destroy_auth_key.md)(\[\]) === [$DestroyAuthKeyRes](../types/DestroyAuthKeyRes.md)<a name="destroy_auth_key"></a>
<br><br>$MadelineProto->[contest->saveDeveloperInfo](contest_saveDeveloperInfo.md)(\['vk_id' => [int](../types/int.md), 'name' => [string](../types/string.md), 'phone_number' => [string](../types/string.md), 'age' => [int](../types/int.md), 'city' => [string](../types/string.md), \]) === [$Bool](../types/Bool.md)<a name="contest_saveDeveloperInfo"></a>
***
<br><br>$MadelineProto->[help->getAppChangelog](help_getAppChangelog.md)(\[\]) === [$help\_AppChangelog](../types/help_AppChangelog.md)<a name="help_getAppChangelog"></a>
<br><br>$MadelineProto->[destroy_auth_key](destroy_auth_key.md)(\[\]) === [$DestroyAuthKeyRes](../types/DestroyAuthKeyRes.md)<a name="destroy_auth_key"></a>
$MadelineProto->[destroy_session](destroy_session.md)(\['session_id' => [long](../types/long.md), \]) === [$DestroySessionRes](../types/DestroySessionRes.md)<a name="destroy_session"></a>
***
<br><br>$MadelineProto->[get_future_salts](get_future_salts.md)(\['num' => [int](../types/int.md), \]) === [$FutureSalts](../types/FutureSalts.md)<a name="get_future_salts"></a>
***
<br><br>$MadelineProto->[help->getAppChangelog](help_getAppChangelog.md)(\['prev_app_version' => [string](../types/string.md), \]) === [$Updates](../types/Updates.md)<a name="help_getAppChangelog"></a>
$MadelineProto->[help->getAppUpdate](help_getAppUpdate.md)(\[\]) === [$help\_AppUpdate](../types/help_AppUpdate.md)<a name="help_getAppUpdate"></a>
@ -365,6 +380,10 @@ $MadelineProto->[messages->sendMessage](messages_sendMessage.md)(\['no_webpage'
$MadelineProto->[messages->setBotCallbackAnswer](messages_setBotCallbackAnswer.md)(\['alert' => [Bool](../types/Bool.md), 'query_id' => [long](../types/long.md), 'message' => [string](../types/string.md), 'url' => [string](../types/string.md), 'cache_time' => [int](../types/int.md), \]) === [$Bool](../types/Bool.md)<a name="messages_setBotCallbackAnswer"></a>
$MadelineProto->[messages->setBotPrecheckoutResults](messages_setBotPrecheckoutResults.md)(\['success' => [Bool](../types/Bool.md), 'query_id' => [long](../types/long.md), 'error' => [string](../types/string.md), \]) === [$Bool](../types/Bool.md)<a name="messages_setBotPrecheckoutResults"></a>
$MadelineProto->[messages->setBotShippingResults](messages_setBotShippingResults.md)(\['query_id' => [long](../types/long.md), 'error' => [string](../types/string.md), 'shipping_options' => \[[ShippingOption](../types/ShippingOption.md)\], \]) === [$Bool](../types/Bool.md)<a name="messages_setBotShippingResults"></a>
$MadelineProto->[messages->setEncryptedTyping](messages_setEncryptedTyping.md)(\['peer' => [InputEncryptedChat](../types/InputEncryptedChat.md), 'typing' => [Bool](../types/Bool.md), \]) === [$Bool](../types/Bool.md)<a name="messages_setEncryptedTyping"></a>
$MadelineProto->[messages->setGameScore](messages_setGameScore.md)(\['edit_message' => [Bool](../types/Bool.md), 'force' => [Bool](../types/Bool.md), 'peer' => [InputPeer](../types/InputPeer.md), 'id' => [int](../types/int.md), 'user_id' => [InputUser](../types/InputUser.md), 'score' => [int](../types/int.md), \]) === [$Updates](../types/Updates.md)<a name="messages_setGameScore"></a>
@ -384,13 +403,34 @@ $MadelineProto->[messages->toggleDialogPin](messages_toggleDialogPin.md)(\['pinn
$MadelineProto->[messages->uninstallStickerSet](messages_uninstallStickerSet.md)(\['stickerset' => [InputStickerSet](../types/InputStickerSet.md), \]) === [$Bool](../types/Bool.md)<a name="messages_uninstallStickerSet"></a>
***
<br><br>$MadelineProto->[phone->acceptCall](phone_acceptCall.md)(\['peer' => [InputPhoneCall](../types/InputPhoneCall.md), 'g_b' => [bytes](../types/bytes.md), 'key_fingerprint' => [long](../types/long.md), 'protocol' => [PhoneCallProtocol](../types/PhoneCallProtocol.md), \]) === [$phone\_PhoneCall](../types/phone_PhoneCall.md)<a name="phone_acceptCall"></a>
<br><br>$MadelineProto->[payments->clearSavedInfo](payments_clearSavedInfo.md)(\['credentials' => [Bool](../types/Bool.md), 'info' => [Bool](../types/Bool.md), \]) === [$Bool](../types/Bool.md)<a name="payments_clearSavedInfo"></a>
$MadelineProto->[phone->discardCall](phone_discardCall.md)(\['peer' => [InputPhoneCall](../types/InputPhoneCall.md), 'duration' => [int](../types/int.md), 'reason' => [PhoneCallDiscardReason](../types/PhoneCallDiscardReason.md), 'connection_id' => [long](../types/long.md), \]) === [$Bool](../types/Bool.md)<a name="phone_discardCall"></a>
$MadelineProto->[payments->getPaymentForm](payments_getPaymentForm.md)(\['msg_id' => [int](../types/int.md), \]) === [$payments\_PaymentForm](../types/payments_PaymentForm.md)<a name="payments_getPaymentForm"></a>
$MadelineProto->[payments->getPaymentReceipt](payments_getPaymentReceipt.md)(\['msg_id' => [int](../types/int.md), \]) === [$payments\_PaymentReceipt](../types/payments_PaymentReceipt.md)<a name="payments_getPaymentReceipt"></a>
$MadelineProto->[payments->getSavedInfo](payments_getSavedInfo.md)(\[\]) === [$payments\_SavedInfo](../types/payments_SavedInfo.md)<a name="payments_getSavedInfo"></a>
$MadelineProto->[payments->sendPaymentForm](payments_sendPaymentForm.md)(\['msg_id' => [int](../types/int.md), 'requested_info_id' => [string](../types/string.md), 'shipping_option_id' => [string](../types/string.md), 'credentials' => [InputPaymentCredentials](../types/InputPaymentCredentials.md), \]) === [$payments\_PaymentResult](../types/payments_PaymentResult.md)<a name="payments_sendPaymentForm"></a>
$MadelineProto->[payments->validateRequestedInfo](payments_validateRequestedInfo.md)(\['save' => [Bool](../types/Bool.md), 'msg_id' => [int](../types/int.md), 'info' => [PaymentRequestedInfo](../types/PaymentRequestedInfo.md), \]) === [$payments\_ValidatedRequestedInfo](../types/payments_ValidatedRequestedInfo.md)<a name="payments_validateRequestedInfo"></a>
***
<br><br>$MadelineProto->[phone->acceptCall](phone_acceptCall.md)(\['peer' => [InputPhoneCall](../types/InputPhoneCall.md), 'g_b' => [bytes](../types/bytes.md), 'protocol' => [PhoneCallProtocol](../types/PhoneCallProtocol.md), \]) === [$phone\_PhoneCall](../types/phone_PhoneCall.md)<a name="phone_acceptCall"></a>
$MadelineProto->[phone->confirmCall](phone_confirmCall.md)(\['peer' => [InputPhoneCall](../types/InputPhoneCall.md), 'g_a' => [bytes](../types/bytes.md), 'key_fingerprint' => [long](../types/long.md), 'protocol' => [PhoneCallProtocol](../types/PhoneCallProtocol.md), \]) === [$phone\_PhoneCall](../types/phone_PhoneCall.md)<a name="phone_confirmCall"></a>
$MadelineProto->[phone->discardCall](phone_discardCall.md)(\['peer' => [InputPhoneCall](../types/InputPhoneCall.md), 'duration' => [int](../types/int.md), 'reason' => [PhoneCallDiscardReason](../types/PhoneCallDiscardReason.md), 'connection_id' => [long](../types/long.md), \]) === [$Updates](../types/Updates.md)<a name="phone_discardCall"></a>
$MadelineProto->[phone->getCallConfig](phone_getCallConfig.md)(\[\]) === [$DataJSON](../types/DataJSON.md)<a name="phone_getCallConfig"></a>
$MadelineProto->[phone->receivedCall](phone_receivedCall.md)(\['peer' => [InputPhoneCall](../types/InputPhoneCall.md), \]) === [$Bool](../types/Bool.md)<a name="phone_receivedCall"></a>
$MadelineProto->[phone->requestCall](phone_requestCall.md)(\['user_id' => [InputUser](../types/InputUser.md), 'g_a' => [bytes](../types/bytes.md), 'protocol' => [PhoneCallProtocol](../types/PhoneCallProtocol.md), \]) === [$phone\_PhoneCall](../types/phone_PhoneCall.md)<a name="phone_requestCall"></a>
$MadelineProto->[phone->requestCall](phone_requestCall.md)(\['user_id' => [InputUser](../types/InputUser.md), 'g_a_hash' => [bytes](../types/bytes.md), 'protocol' => [PhoneCallProtocol](../types/PhoneCallProtocol.md), \]) === [$phone\_PhoneCall](../types/phone_PhoneCall.md)<a name="phone_requestCall"></a>
$MadelineProto->[phone->saveCallDebug](phone_saveCallDebug.md)(\['peer' => [InputPhoneCall](../types/InputPhoneCall.md), 'debug' => [DataJSON](../types/DataJSON.md), \]) === [$Bool](../types/Bool.md)<a name="phone_saveCallDebug"></a>
$MadelineProto->[phone->setCallRating](phone_setCallRating.md)(\['peer' => [InputPhoneCall](../types/InputPhoneCall.md), 'rating' => [int](../types/int.md), 'comment' => [string](../types/string.md), \]) === [$Updates](../types/Updates.md)<a name="phone_setCallRating"></a>
***
<br><br>$MadelineProto->[photos->deletePhotos](photos_deletePhotos.md)(\['id' => \[[InputPhoto](../types/InputPhoto.md)\], \]) === [$Vector\_of\_long](../types/long.md)<a name="photos_deletePhotos"></a>
@ -401,6 +441,22 @@ $MadelineProto->[photos->updateProfilePhoto](photos_updateProfilePhoto.md)(\['id
$MadelineProto->[photos->uploadProfilePhoto](photos_uploadProfilePhoto.md)(\['file' => [InputFile](../types/InputFile.md), \]) === [$photos\_Photo](../types/photos_Photo.md)<a name="photos_uploadProfilePhoto"></a>
***
<br><br>$MadelineProto->[ping](ping.md)(\['ping_id' => [long](../types/long.md), \]) === [$Pong](../types/Pong.md)<a name="ping"></a>
$MadelineProto->[ping_delay_disconnect](ping_delay_disconnect.md)(\['ping_id' => [long](../types/long.md), 'disconnect_delay' => [int](../types/int.md), \]) === [$Pong](../types/Pong.md)<a name="ping_delay_disconnect"></a>
***
<br><br>$MadelineProto->[req_DH_params](req_DH_params.md)(\['nonce' => [int128](../types/int128.md), 'server_nonce' => [int128](../types/int128.md), 'p' => [string](../types/string.md), 'q' => [string](../types/string.md), 'public_key_fingerprint' => [long](../types/long.md), 'encrypted_data' => [string](../types/string.md), \]) === [$Server\_DH\_Params](../types/Server_DH_Params.md)<a name="req_DH_params"></a>
$MadelineProto->[req_pq](req_pq.md)(\['nonce' => [int128](../types/int128.md), \]) === [$ResPQ](../types/ResPQ.md)<a name="req_pq"></a>
***
<br><br>$MadelineProto->[rpc_drop_answer](rpc_drop_answer.md)(\['req_msg_id' => [long](../types/long.md), \]) === [$RpcDropAnswer](../types/RpcDropAnswer.md)<a name="rpc_drop_answer"></a>
***
<br><br>$MadelineProto->[set_client_DH_params](set_client_DH_params.md)(\['nonce' => [int128](../types/int128.md), 'server_nonce' => [int128](../types/int128.md), 'encrypted_data' => [string](../types/string.md), \]) === [$Set\_client\_DH\_params\_answer](../types/Set_client_DH_params_answer.md)<a name="set_client_DH_params"></a>
***
<br><br>$MadelineProto->[updates->getChannelDifference](updates_getChannelDifference.md)(\['force' => [Bool](../types/Bool.md), 'channel' => [InputChannel](../types/InputChannel.md), 'filter' => [ChannelMessagesFilter](../types/ChannelMessagesFilter.md), 'pts' => [int](../types/int.md), 'limit' => [int](../types/int.md), \]) === [$updates\_ChannelDifference](../types/updates_ChannelDifference.md)<a name="updates_getChannelDifference"></a>
@ -411,6 +467,8 @@ $MadelineProto->[updates->getState](updates_getState.md)(\[\]) === [$updates\_St
***
<br><br>$MadelineProto->[upload->getFile](upload_getFile.md)(\['location' => [InputFileLocation](../types/InputFileLocation.md), 'offset' => [int](../types/int.md), 'limit' => [int](../types/int.md), \]) === [$upload\_File](../types/upload_File.md)<a name="upload_getFile"></a>
$MadelineProto->[upload->getWebFile](upload_getWebFile.md)(\['location' => [InputWebFileLocation](../types/InputWebFileLocation.md), 'offset' => [int](../types/int.md), 'limit' => [int](../types/int.md), \]) === [$upload\_WebFile](../types/upload_WebFile.md)<a name="upload_getWebFile"></a>
$MadelineProto->[upload->saveBigFilePart](upload_saveBigFilePart.md)(\['file_id' => [long](../types/long.md), 'file_part' => [int](../types/int.md), 'file_total_parts' => [int](../types/int.md), 'bytes' => [bytes](../types/bytes.md), \]) === [$Bool](../types/Bool.md)<a name="upload_saveBigFilePart"></a>
$MadelineProto->[upload->saveFilePart](upload_saveFilePart.md)(\['file_id' => [long](../types/long.md), 'file_part' => [int](../types/int.md), 'bytes' => [bytes](../types/bytes.md), \]) === [$Bool](../types/Bool.md)<a name="upload_saveFilePart"></a>

View File

@ -0,0 +1,46 @@
---
title: messages.setBotPrecheckoutResults
description: messages.setBotPrecheckoutResults parameters, return type and example
---
## Method: messages.setBotPrecheckoutResults
[Back to methods index](index.md)
### Parameters:
| Name | Type | Required |
|----------|:-------------:|---------:|
|success|[Bool](../types/Bool.md) | Optional|
|query\_id|[long](../types/long.md) | Yes|
|error|[string](../types/string.md) | Optional|
### Return type: [Bool](../types/Bool.md)
### Example:
```
$MadelineProto = new \danog\MadelineProto\API();
if (isset($token)) {
$this->bot_login($token);
}
if (isset($number)) {
$sentCode = $MadelineProto->phone_login($number);
echo 'Enter the code you received: ';
$code = '';
for ($x = 0; $x < $sentCode['type']['length']; $x++) {
$code .= fgetc(STDIN);
}
$MadelineProto->complete_phone_login($code);
}
$Bool = $MadelineProto->messages->setBotPrecheckoutResults(['success' => Bool, 'query_id' => long, 'error' => string, ]);
```
Or, if you're into Lua:
```
Bool = messages.setBotPrecheckoutResults({success=Bool, query_id=long, error=string, })
```

View File

@ -0,0 +1,46 @@
---
title: messages.setBotShippingResults
description: messages.setBotShippingResults parameters, return type and example
---
## Method: messages.setBotShippingResults
[Back to methods index](index.md)
### Parameters:
| Name | Type | Required |
|----------|:-------------:|---------:|
|query\_id|[long](../types/long.md) | Yes|
|error|[string](../types/string.md) | Optional|
|shipping\_options|Array of [ShippingOption](../types/ShippingOption.md) | Optional|
### Return type: [Bool](../types/Bool.md)
### Example:
```
$MadelineProto = new \danog\MadelineProto\API();
if (isset($token)) {
$this->bot_login($token);
}
if (isset($number)) {
$sentCode = $MadelineProto->phone_login($number);
echo 'Enter the code you received: ';
$code = '';
for ($x = 0; $x < $sentCode['type']['length']; $x++) {
$code .= fgetc(STDIN);
}
$MadelineProto->complete_phone_login($code);
}
$Bool = $MadelineProto->messages->setBotShippingResults(['query_id' => long, 'error' => string, 'shipping_options' => [ShippingOption], ]);
```
Or, if you're into Lua:
```
Bool = messages.setBotShippingResults({query_id=long, error=string, shipping_options={ShippingOption}, })
```

View File

@ -0,0 +1,45 @@
---
title: payments.clearSavedInfo
description: payments.clearSavedInfo parameters, return type and example
---
## Method: payments.clearSavedInfo
[Back to methods index](index.md)
### Parameters:
| Name | Type | Required |
|----------|:-------------:|---------:|
|credentials|[Bool](../types/Bool.md) | Optional|
|info|[Bool](../types/Bool.md) | Optional|
### Return type: [Bool](../types/Bool.md)
### Example:
```
$MadelineProto = new \danog\MadelineProto\API();
if (isset($token)) {
$this->bot_login($token);
}
if (isset($number)) {
$sentCode = $MadelineProto->phone_login($number);
echo 'Enter the code you received: ';
$code = '';
for ($x = 0; $x < $sentCode['type']['length']; $x++) {
$code .= fgetc(STDIN);
}
$MadelineProto->complete_phone_login($code);
}
$Bool = $MadelineProto->payments->clearSavedInfo(['credentials' => Bool, 'info' => Bool, ]);
```
Or, if you're into Lua:
```
Bool = payments.clearSavedInfo({credentials=Bool, info=Bool, })
```

View File

@ -0,0 +1,44 @@
---
title: payments.getPaymentForm
description: payments.getPaymentForm parameters, return type and example
---
## Method: payments.getPaymentForm
[Back to methods index](index.md)
### Parameters:
| Name | Type | Required |
|----------|:-------------:|---------:|
|msg\_id|[int](../types/int.md) | Yes|
### Return type: [payments\_PaymentForm](../types/payments_PaymentForm.md)
### Example:
```
$MadelineProto = new \danog\MadelineProto\API();
if (isset($token)) {
$this->bot_login($token);
}
if (isset($number)) {
$sentCode = $MadelineProto->phone_login($number);
echo 'Enter the code you received: ';
$code = '';
for ($x = 0; $x < $sentCode['type']['length']; $x++) {
$code .= fgetc(STDIN);
}
$MadelineProto->complete_phone_login($code);
}
$payments_PaymentForm = $MadelineProto->payments->getPaymentForm(['msg_id' => int, ]);
```
Or, if you're into Lua:
```
payments_PaymentForm = payments.getPaymentForm({msg_id=int, })
```

View File

@ -0,0 +1,44 @@
---
title: payments.getPaymentReceipt
description: payments.getPaymentReceipt parameters, return type and example
---
## Method: payments.getPaymentReceipt
[Back to methods index](index.md)
### Parameters:
| Name | Type | Required |
|----------|:-------------:|---------:|
|msg\_id|[int](../types/int.md) | Yes|
### Return type: [payments\_PaymentReceipt](../types/payments_PaymentReceipt.md)
### Example:
```
$MadelineProto = new \danog\MadelineProto\API();
if (isset($token)) {
$this->bot_login($token);
}
if (isset($number)) {
$sentCode = $MadelineProto->phone_login($number);
echo 'Enter the code you received: ';
$code = '';
for ($x = 0; $x < $sentCode['type']['length']; $x++) {
$code .= fgetc(STDIN);
}
$MadelineProto->complete_phone_login($code);
}
$payments_PaymentReceipt = $MadelineProto->payments->getPaymentReceipt(['msg_id' => int, ]);
```
Or, if you're into Lua:
```
payments_PaymentReceipt = payments.getPaymentReceipt({msg_id=int, })
```

View File

@ -0,0 +1,39 @@
---
title: payments.getSavedInfo
description: payments.getSavedInfo parameters, return type and example
---
## Method: payments.getSavedInfo
[Back to methods index](index.md)
### Return type: [payments\_SavedInfo](../types/payments_SavedInfo.md)
### Example:
```
$MadelineProto = new \danog\MadelineProto\API();
if (isset($token)) {
$this->bot_login($token);
}
if (isset($number)) {
$sentCode = $MadelineProto->phone_login($number);
echo 'Enter the code you received: ';
$code = '';
for ($x = 0; $x < $sentCode['type']['length']; $x++) {
$code .= fgetc(STDIN);
}
$MadelineProto->complete_phone_login($code);
}
$payments_SavedInfo = $MadelineProto->payments->getSavedInfo();
```
Or, if you're into Lua:
```
payments_SavedInfo = payments.getSavedInfo({})
```

View File

@ -0,0 +1,47 @@
---
title: payments.sendPaymentForm
description: payments.sendPaymentForm parameters, return type and example
---
## Method: payments.sendPaymentForm
[Back to methods index](index.md)
### Parameters:
| Name | Type | Required |
|----------|:-------------:|---------:|
|msg\_id|[int](../types/int.md) | Yes|
|requested\_info\_id|[string](../types/string.md) | Optional|
|shipping\_option\_id|[string](../types/string.md) | Optional|
|credentials|[InputPaymentCredentials](../types/InputPaymentCredentials.md) | Yes|
### Return type: [payments\_PaymentResult](../types/payments_PaymentResult.md)
### Example:
```
$MadelineProto = new \danog\MadelineProto\API();
if (isset($token)) {
$this->bot_login($token);
}
if (isset($number)) {
$sentCode = $MadelineProto->phone_login($number);
echo 'Enter the code you received: ';
$code = '';
for ($x = 0; $x < $sentCode['type']['length']; $x++) {
$code .= fgetc(STDIN);
}
$MadelineProto->complete_phone_login($code);
}
$payments_PaymentResult = $MadelineProto->payments->sendPaymentForm(['msg_id' => int, 'requested_info_id' => string, 'shipping_option_id' => string, 'credentials' => InputPaymentCredentials, ]);
```
Or, if you're into Lua:
```
payments_PaymentResult = payments.sendPaymentForm({msg_id=int, requested_info_id=string, shipping_option_id=string, credentials=InputPaymentCredentials, })
```

View File

@ -0,0 +1,46 @@
---
title: payments.validateRequestedInfo
description: payments.validateRequestedInfo parameters, return type and example
---
## Method: payments.validateRequestedInfo
[Back to methods index](index.md)
### Parameters:
| Name | Type | Required |
|----------|:-------------:|---------:|
|save|[Bool](../types/Bool.md) | Optional|
|msg\_id|[int](../types/int.md) | Yes|
|info|[PaymentRequestedInfo](../types/PaymentRequestedInfo.md) | Yes|
### Return type: [payments\_ValidatedRequestedInfo](../types/payments_ValidatedRequestedInfo.md)
### Example:
```
$MadelineProto = new \danog\MadelineProto\API();
if (isset($token)) {
$this->bot_login($token);
}
if (isset($number)) {
$sentCode = $MadelineProto->phone_login($number);
echo 'Enter the code you received: ';
$code = '';
for ($x = 0; $x < $sentCode['type']['length']; $x++) {
$code .= fgetc(STDIN);
}
$MadelineProto->complete_phone_login($code);
}
$payments_ValidatedRequestedInfo = $MadelineProto->payments->validateRequestedInfo(['save' => Bool, 'msg_id' => int, 'info' => PaymentRequestedInfo, ]);
```
Or, if you're into Lua:
```
payments_ValidatedRequestedInfo = payments.validateRequestedInfo({save=Bool, msg_id=int, info=PaymentRequestedInfo, })
```

View File

@ -12,7 +12,6 @@ description: phone.acceptCall parameters, return type and example
|----------|:-------------:|---------:|
|peer|[InputPhoneCall](../types/InputPhoneCall.md) | Yes|
|g\_b|[bytes](../types/bytes.md) | Yes|
|key\_fingerprint|[long](../types/long.md) | Yes|
|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | Yes|
@ -36,12 +35,12 @@ if (isset($number)) {
$MadelineProto->complete_phone_login($code);
}
$phone_PhoneCall = $MadelineProto->phone->acceptCall(['peer' => InputPhoneCall, 'g_b' => bytes, 'key_fingerprint' => long, 'protocol' => PhoneCallProtocol, ]);
$phone_PhoneCall = $MadelineProto->phone->acceptCall(['peer' => InputPhoneCall, 'g_b' => bytes, 'protocol' => PhoneCallProtocol, ]);
```
Or, if you're into Lua:
```
phone_PhoneCall = phone.acceptCall({peer=InputPhoneCall, g_b=bytes, key_fingerprint=long, protocol=PhoneCallProtocol, })
phone_PhoneCall = phone.acceptCall({peer=InputPhoneCall, g_b=bytes, protocol=PhoneCallProtocol, })
```

View File

@ -0,0 +1,47 @@
---
title: phone.confirmCall
description: phone.confirmCall parameters, return type and example
---
## Method: phone.confirmCall
[Back to methods index](index.md)
### Parameters:
| Name | Type | Required |
|----------|:-------------:|---------:|
|peer|[InputPhoneCall](../types/InputPhoneCall.md) | Yes|
|g\_a|[bytes](../types/bytes.md) | Yes|
|key\_fingerprint|[long](../types/long.md) | Yes|
|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | Yes|
### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
### Example:
```
$MadelineProto = new \danog\MadelineProto\API();
if (isset($token)) {
$this->bot_login($token);
}
if (isset($number)) {
$sentCode = $MadelineProto->phone_login($number);
echo 'Enter the code you received: ';
$code = '';
for ($x = 0; $x < $sentCode['type']['length']; $x++) {
$code .= fgetc(STDIN);
}
$MadelineProto->complete_phone_login($code);
}
$phone_PhoneCall = $MadelineProto->phone->confirmCall(['peer' => InputPhoneCall, 'g_a' => bytes, 'key_fingerprint' => long, 'protocol' => PhoneCallProtocol, ]);
```
Or, if you're into Lua:
```
phone_PhoneCall = phone.confirmCall({peer=InputPhoneCall, g_a=bytes, key_fingerprint=long, protocol=PhoneCallProtocol, })
```

View File

@ -16,7 +16,7 @@ description: phone.discardCall parameters, return type and example
|connection\_id|[long](../types/long.md) | Yes|
### Return type: [Bool](../types/Bool.md)
### Return type: [Updates](../types/Updates.md)
### Example:
@ -36,12 +36,12 @@ if (isset($number)) {
$MadelineProto->complete_phone_login($code);
}
$Bool = $MadelineProto->phone->discardCall(['peer' => InputPhoneCall, 'duration' => int, 'reason' => PhoneCallDiscardReason, 'connection_id' => long, ]);
$Updates = $MadelineProto->phone->discardCall(['peer' => InputPhoneCall, 'duration' => int, 'reason' => PhoneCallDiscardReason, 'connection_id' => long, ]);
```
Or, if you're into Lua:
```
Bool = phone.discardCall({peer=InputPhoneCall, duration=int, reason=PhoneCallDiscardReason, connection_id=long, })
Updates = phone.discardCall({peer=InputPhoneCall, duration=int, reason=PhoneCallDiscardReason, connection_id=long, })
```

View File

@ -0,0 +1,39 @@
---
title: phone.getCallConfig
description: phone.getCallConfig parameters, return type and example
---
## Method: phone.getCallConfig
[Back to methods index](index.md)
### Return type: [DataJSON](../types/DataJSON.md)
### Example:
```
$MadelineProto = new \danog\MadelineProto\API();
if (isset($token)) {
$this->bot_login($token);
}
if (isset($number)) {
$sentCode = $MadelineProto->phone_login($number);
echo 'Enter the code you received: ';
$code = '';
for ($x = 0; $x < $sentCode['type']['length']; $x++) {
$code .= fgetc(STDIN);
}
$MadelineProto->complete_phone_login($code);
}
$DataJSON = $MadelineProto->phone->getCallConfig();
```
Or, if you're into Lua:
```
DataJSON = phone.getCallConfig({})
```

View File

@ -11,7 +11,7 @@ description: phone.requestCall parameters, return type and example
| Name | Type | Required |
|----------|:-------------:|---------:|
|user\_id|[InputUser](../types/InputUser.md) | Yes|
|g\_a|[bytes](../types/bytes.md) | Yes|
|g\_a\_hash|[bytes](../types/bytes.md) | Yes|
|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | Yes|
@ -35,12 +35,12 @@ if (isset($number)) {
$MadelineProto->complete_phone_login($code);
}
$phone_PhoneCall = $MadelineProto->phone->requestCall(['user_id' => InputUser, 'g_a' => bytes, 'protocol' => PhoneCallProtocol, ]);
$phone_PhoneCall = $MadelineProto->phone->requestCall(['user_id' => InputUser, 'g_a_hash' => bytes, 'protocol' => PhoneCallProtocol, ]);
```
Or, if you're into Lua:
```
phone_PhoneCall = phone.requestCall({user_id=InputUser, g_a=bytes, protocol=PhoneCallProtocol, })
phone_PhoneCall = phone.requestCall({user_id=InputUser, g_a_hash=bytes, protocol=PhoneCallProtocol, })
```

View File

@ -0,0 +1,45 @@
---
title: phone.saveCallDebug
description: phone.saveCallDebug parameters, return type and example
---
## Method: phone.saveCallDebug
[Back to methods index](index.md)
### Parameters:
| Name | Type | Required |
|----------|:-------------:|---------:|
|peer|[InputPhoneCall](../types/InputPhoneCall.md) | Yes|
|debug|[DataJSON](../types/DataJSON.md) | Yes|
### Return type: [Bool](../types/Bool.md)
### Example:
```
$MadelineProto = new \danog\MadelineProto\API();
if (isset($token)) {
$this->bot_login($token);
}
if (isset($number)) {
$sentCode = $MadelineProto->phone_login($number);
echo 'Enter the code you received: ';
$code = '';
for ($x = 0; $x < $sentCode['type']['length']; $x++) {
$code .= fgetc(STDIN);
}
$MadelineProto->complete_phone_login($code);
}
$Bool = $MadelineProto->phone->saveCallDebug(['peer' => InputPhoneCall, 'debug' => DataJSON, ]);
```
Or, if you're into Lua:
```
Bool = phone.saveCallDebug({peer=InputPhoneCall, debug=DataJSON, })
```

View File

@ -0,0 +1,46 @@
---
title: phone.setCallRating
description: phone.setCallRating parameters, return type and example
---
## Method: phone.setCallRating
[Back to methods index](index.md)
### Parameters:
| Name | Type | Required |
|----------|:-------------:|---------:|
|peer|[InputPhoneCall](../types/InputPhoneCall.md) | Yes|
|rating|[int](../types/int.md) | Yes|
|comment|[string](../types/string.md) | Yes|
### Return type: [Updates](../types/Updates.md)
### Example:
```
$MadelineProto = new \danog\MadelineProto\API();
if (isset($token)) {
$this->bot_login($token);
}
if (isset($number)) {
$sentCode = $MadelineProto->phone_login($number);
echo 'Enter the code you received: ';
$code = '';
for ($x = 0; $x < $sentCode['type']['length']; $x++) {
$code .= fgetc(STDIN);
}
$MadelineProto->complete_phone_login($code);
}
$Updates = $MadelineProto->phone->setCallRating(['peer' => InputPhoneCall, 'rating' => int, 'comment' => string, ]);
```
Or, if you're into Lua:
```
Updates = phone.setCallRating({peer=InputPhoneCall, rating=int, comment=string, })
```

View File

@ -0,0 +1,44 @@
---
title: ping
description: ping parameters, return type and example
---
## Method: ping
[Back to methods index](index.md)
### Parameters:
| Name | Type | Required |
|----------|:-------------:|---------:|
|ping\_id|[long](../types/long.md) | Yes|
### Return type: [Pong](../types/Pong.md)
### Example:
```
$MadelineProto = new \danog\MadelineProto\API();
if (isset($token)) {
$this->bot_login($token);
}
if (isset($number)) {
$sentCode = $MadelineProto->phone_login($number);
echo 'Enter the code you received: ';
$code = '';
for ($x = 0; $x < $sentCode['type']['length']; $x++) {
$code .= fgetc(STDIN);
}
$MadelineProto->complete_phone_login($code);
}
$Pong = $MadelineProto->ping(['ping_id' => long, ]);
```
Or, if you're into Lua:
```
Pong = ping({ping_id=long, })
```

View File

@ -0,0 +1,45 @@
---
title: ping_delay_disconnect
description: ping_delay_disconnect parameters, return type and example
---
## Method: ping\_delay\_disconnect
[Back to methods index](index.md)
### Parameters:
| Name | Type | Required |
|----------|:-------------:|---------:|
|ping\_id|[long](../types/long.md) | Yes|
|disconnect\_delay|[int](../types/int.md) | Yes|
### Return type: [Pong](../types/Pong.md)
### Example:
```
$MadelineProto = new \danog\MadelineProto\API();
if (isset($token)) {
$this->bot_login($token);
}
if (isset($number)) {
$sentCode = $MadelineProto->phone_login($number);
echo 'Enter the code you received: ';
$code = '';
for ($x = 0; $x < $sentCode['type']['length']; $x++) {
$code .= fgetc(STDIN);
}
$MadelineProto->complete_phone_login($code);
}
$Pong = $MadelineProto->ping_delay_disconnect(['ping_id' => long, 'disconnect_delay' => int, ]);
```
Or, if you're into Lua:
```
Pong = ping_delay_disconnect({ping_id=long, disconnect_delay=int, })
```

View File

@ -0,0 +1,49 @@
---
title: req_DH_params
description: req_DH_params parameters, return type and example
---
## Method: req\_DH\_params
[Back to methods index](index.md)
### Parameters:
| Name | Type | Required |
|----------|:-------------:|---------:|
|nonce|[int128](../types/int128.md) | Yes|
|server\_nonce|[int128](../types/int128.md) | Yes|
|p|[string](../types/string.md) | Yes|
|q|[string](../types/string.md) | Yes|
|public\_key\_fingerprint|[long](../types/long.md) | Yes|
|encrypted\_data|[string](../types/string.md) | Yes|
### Return type: [Server\_DH\_Params](../types/Server_DH_Params.md)
### Example:
```
$MadelineProto = new \danog\MadelineProto\API();
if (isset($token)) {
$this->bot_login($token);
}
if (isset($number)) {
$sentCode = $MadelineProto->phone_login($number);
echo 'Enter the code you received: ';
$code = '';
for ($x = 0; $x < $sentCode['type']['length']; $x++) {
$code .= fgetc(STDIN);
}
$MadelineProto->complete_phone_login($code);
}
$Server_DH_Params = $MadelineProto->req_DH_params(['nonce' => int128, 'server_nonce' => int128, 'p' => string, 'q' => string, 'public_key_fingerprint' => long, 'encrypted_data' => string, ]);
```
Or, if you're into Lua:
```
Server_DH_Params = req_DH_params({nonce=int128, server_nonce=int128, p=string, q=string, public_key_fingerprint=long, encrypted_data=string, })
```

View File

@ -0,0 +1,44 @@
---
title: req_pq
description: req_pq parameters, return type and example
---
## Method: req\_pq
[Back to methods index](index.md)
### Parameters:
| Name | Type | Required |
|----------|:-------------:|---------:|
|nonce|[int128](../types/int128.md) | Yes|
### Return type: [ResPQ](../types/ResPQ.md)
### Example:
```
$MadelineProto = new \danog\MadelineProto\API();
if (isset($token)) {
$this->bot_login($token);
}
if (isset($number)) {
$sentCode = $MadelineProto->phone_login($number);
echo 'Enter the code you received: ';
$code = '';
for ($x = 0; $x < $sentCode['type']['length']; $x++) {
$code .= fgetc(STDIN);
}
$MadelineProto->complete_phone_login($code);
}
$ResPQ = $MadelineProto->req_pq(['nonce' => int128, ]);
```
Or, if you're into Lua:
```
ResPQ = req_pq({nonce=int128, })
```

Some files were not shown because too many files have changed in this diff Show More