feat: contact verification request (#2586)

fix: add verification request to response

fix: code review

add missing functions and simplify timestamp usage

fix: sync verification requests

feat: add endpoint to fetch all received verification requests

feat: add signal when trusting verification request

Co-authored-by: Jonathan Rainville <rainville.jonathan@gmail.com>
This commit is contained in:
Richard Ramos 2022-07-05 15:49:44 -04:00 committed by GitHub
parent 7ad0057003
commit 0322ac497b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
33 changed files with 2802 additions and 388 deletions

View File

@ -109,7 +109,7 @@ func _1640111208_dummyUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1640111208_dummy.up.sql", size: 258, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "1640111208_dummy.up.sql", size: 258, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x3e, 0xf0, 0xae, 0x20, 0x6e, 0x75, 0xd1, 0x36, 0x14, 0xf2, 0x40, 0xe5, 0xd6, 0x7a, 0xc4, 0xa5, 0x72, 0xaa, 0xb5, 0x4d, 0x71, 0x97, 0xb8, 0xe8, 0x95, 0x22, 0x95, 0xa2, 0xac, 0xaf, 0x48, 0x58}}
return a, nil
}
@ -129,7 +129,7 @@ func _1642666031_add_removed_clock_to_bookmarksUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1642666031_add_removed_clock_to_bookmarks.up.sql", size: 117, mode: os.FileMode(0644), modTime: time.Unix(1647339453, 0)}
info := bindataFileInfo{name: "1642666031_add_removed_clock_to_bookmarks.up.sql", size: 117, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x84, 0x4e, 0x38, 0x99, 0x7a, 0xc, 0x90, 0x13, 0xec, 0xfe, 0x2f, 0x55, 0xff, 0xb7, 0xb6, 0xaa, 0x96, 0xc6, 0x92, 0x79, 0xcc, 0xee, 0x4e, 0x99, 0x53, 0xfe, 0x1c, 0xbb, 0x32, 0x2, 0xa4, 0x27}}
return a, nil
}
@ -149,7 +149,7 @@ func _1643644541_gif_api_key_settingUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1643644541_gif_api_key_setting.up.sql", size: 108, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "1643644541_gif_api_key_setting.up.sql", size: 108, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x1b, 0x94, 0x28, 0xfb, 0x66, 0xd1, 0x7c, 0xb8, 0x89, 0xe2, 0xb4, 0x71, 0x65, 0x24, 0x57, 0x22, 0x95, 0x38, 0x97, 0x3, 0x9b, 0xc6, 0xa4, 0x41, 0x7b, 0xba, 0xf7, 0xdb, 0x70, 0xf7, 0x20, 0x3a}}
return a, nil
}
@ -169,7 +169,7 @@ func _1644188994_recent_stickersUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1644188994_recent_stickers.up.sql", size: 79, mode: os.FileMode(0644), modTime: time.Unix(1647339453, 0)}
info := bindataFileInfo{name: "1644188994_recent_stickers.up.sql", size: 79, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x1e, 0xad, 0xaa, 0x30, 0xbf, 0x4, 0x7, 0xf8, 0xc3, 0x3, 0xb8, 0x97, 0x23, 0x2b, 0xbd, 0x1c, 0x60, 0x69, 0xb0, 0x42, 0x5e, 0x6b, 0xd, 0xa7, 0xa3, 0x6b, 0x2e, 0xdc, 0x70, 0x13, 0x72, 0x7}}
return a, nil
}
@ -189,7 +189,7 @@ func _1646659233_add_address_to_dapp_permisssionUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1646659233_add_address_to_dapp_permisssion.up.sql", size: 700, mode: os.FileMode(0644), modTime: time.Unix(1647884149, 0)}
info := bindataFileInfo{name: "1646659233_add_address_to_dapp_permisssion.up.sql", size: 700, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xed, 0xb0, 0x35, 0xcc, 0x2e, 0x16, 0xe6, 0x15, 0x86, 0x2c, 0x37, 0x80, 0xae, 0xa3, 0xc5, 0x31, 0x78, 0x5, 0x9d, 0xcd, 0x7b, 0xeb, 0x5f, 0xf2, 0xb3, 0x74, 0x72, 0xdf, 0xcf, 0x88, 0xb, 0x40}}
return a, nil
}
@ -209,7 +209,7 @@ func _1646841105_add_emoji_accountUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1646841105_add_emoji_account.up.sql", size: 96, mode: os.FileMode(0644), modTime: time.Unix(1647884149, 0)}
info := bindataFileInfo{name: "1646841105_add_emoji_account.up.sql", size: 96, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xe6, 0x77, 0x29, 0x95, 0x18, 0x64, 0x82, 0x63, 0xe7, 0xaf, 0x6c, 0xa9, 0x15, 0x7d, 0x46, 0xa6, 0xbc, 0xdf, 0xa7, 0xd, 0x2b, 0xd2, 0x2d, 0x97, 0x4d, 0xa, 0x6b, 0xd, 0x6e, 0x90, 0x42, 0x5c}}
return a, nil
}
@ -229,7 +229,7 @@ func _1647278782_display_nameUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1647278782_display_name.up.sql", size: 110, mode: os.FileMode(0644), modTime: time.Unix(1647884149, 0)}
info := bindataFileInfo{name: "1647278782_display_name.up.sql", size: 110, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xf4, 0xa1, 0x1f, 0x3e, 0x61, 0x65, 0x8d, 0xff, 0xee, 0xde, 0xc5, 0x91, 0xd9, 0x5c, 0xb5, 0xe2, 0xf0, 0xb7, 0xe7, 0x5c, 0x5c, 0x16, 0x25, 0x89, 0xee, 0x78, 0x12, 0xea, 0x3e, 0x48, 0x41, 0xa6}}
return a, nil
}
@ -249,7 +249,7 @@ func _1647862838_reset_last_backupUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1647862838_reset_last_backup.up.sql", size: 37, mode: os.FileMode(0644), modTime: time.Unix(1648722734, 0)}
info := bindataFileInfo{name: "1647862838_reset_last_backup.up.sql", size: 37, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x21, 0xe3, 0xd5, 0xf6, 0x5f, 0xfe, 0x65, 0xfa, 0x1d, 0x88, 0xf8, 0x5f, 0x24, 0x71, 0x34, 0x68, 0x96, 0x2a, 0x60, 0x87, 0x15, 0x82, 0x4d, 0x8a, 0x59, 0x3d, 0x1f, 0xd8, 0x56, 0xd4, 0xfb, 0xda}}
return a, nil
}
@ -269,7 +269,7 @@ func _1647871652_add_settings_sync_clock_tableUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1647871652_add_settings_sync_clock_table.up.sql", size: 1044, mode: os.FileMode(0644), modTime: time.Unix(1648722734, 0)}
info := bindataFileInfo{name: "1647871652_add_settings_sync_clock_table.up.sql", size: 1044, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd8, 0x58, 0xec, 0x85, 0x90, 0xfa, 0x30, 0x98, 0x98, 0x9a, 0xa6, 0xa8, 0x96, 0x2b, 0x38, 0x93, 0xf3, 0xae, 0x46, 0x74, 0xa4, 0x41, 0x62, 0x9b, 0x2, 0x86, 0xbf, 0xe5, 0x2a, 0xce, 0xe2, 0xc0}}
return a, nil
}
@ -289,7 +289,7 @@ func _1647880168_add_torrent_configUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1647880168_add_torrent_config.up.sql", size: 211, mode: os.FileMode(0644), modTime: time.Unix(1648728619, 0)}
info := bindataFileInfo{name: "1647880168_add_torrent_config.up.sql", size: 211, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x1, 0x92, 0x22, 0x37, 0x96, 0xf3, 0xb5, 0x5b, 0x27, 0xd0, 0x7d, 0x43, 0x5, 0x4e, 0x9d, 0xe2, 0x49, 0xbe, 0x86, 0x31, 0xa1, 0x89, 0xff, 0xd6, 0x51, 0xe0, 0x9c, 0xb, 0xda, 0xfc, 0xf2, 0x93}}
return a, nil
}
@ -309,7 +309,7 @@ func _1647882837_add_communities_settings_tableUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1647882837_add_communities_settings_table.up.sql", size: 206, mode: os.FileMode(0644), modTime: time.Unix(1648728619, 0)}
info := bindataFileInfo{name: "1647882837_add_communities_settings_table.up.sql", size: 206, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xbd, 0x87, 0x78, 0x99, 0xd9, 0x5d, 0xbd, 0xf7, 0x57, 0x9c, 0xca, 0x97, 0xbd, 0xb3, 0xe9, 0xb5, 0x89, 0x31, 0x3f, 0xf6, 0x5c, 0x13, 0xb, 0xc3, 0x54, 0x93, 0x18, 0x40, 0x7, 0x82, 0xfe, 0x7e}}
return a, nil
}
@ -329,7 +329,7 @@ func _1647956635_add_waku_messages_tableUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1647956635_add_waku_messages_table.up.sql", size: 266, mode: os.FileMode(0644), modTime: time.Unix(1648804807, 0)}
info := bindataFileInfo{name: "1647956635_add_waku_messages_table.up.sql", size: 266, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd1, 0xe, 0xe1, 0xdc, 0xda, 0x2e, 0x89, 0x8d, 0xdc, 0x2a, 0x1c, 0x13, 0xa1, 0xfc, 0xfe, 0xf, 0xb2, 0xb9, 0x85, 0xc8, 0x45, 0xd6, 0xd1, 0x7, 0x5c, 0xa3, 0x8, 0x47, 0x44, 0x6d, 0x96, 0xe0}}
return a, nil
}
@ -349,7 +349,7 @@ func _1648554928_network_testUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1648554928_network_test.up.sql", size: 132, mode: os.FileMode(0644), modTime: time.Unix(1648804807, 0)}
info := bindataFileInfo{name: "1648554928_network_test.up.sql", size: 132, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x9a, 0xc5, 0x7f, 0x87, 0xf3, 0x2c, 0xf7, 0xbb, 0xd3, 0x3a, 0x4e, 0x76, 0x88, 0xca, 0xaf, 0x73, 0xce, 0x8f, 0xa1, 0xf6, 0x3d, 0x4d, 0xed, 0x6f, 0x49, 0xf2, 0xfe, 0x56, 0x2a, 0x60, 0x68, 0xca}}
return a, nil
}
@ -369,7 +369,7 @@ func _1649174829_add_visitble_tokenUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1649174829_add_visitble_token.up.sql", size: 84, mode: os.FileMode(0644), modTime: time.Unix(1653642660, 0)}
info := bindataFileInfo{name: "1649174829_add_visitble_token.up.sql", size: 84, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xa3, 0x22, 0xc0, 0x2b, 0x3f, 0x4f, 0x3d, 0x5e, 0x4c, 0x68, 0x7c, 0xd0, 0x15, 0x36, 0x9f, 0xec, 0xa1, 0x2a, 0x7b, 0xb4, 0xe3, 0xc6, 0xc9, 0xb4, 0x81, 0x50, 0x4a, 0x11, 0x3b, 0x35, 0x7, 0xcf}}
return a, nil
}
@ -389,7 +389,7 @@ func _1649882262_add_derived_from_accountsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1649882262_add_derived_from_accounts.up.sql", size: 110, mode: os.FileMode(0644), modTime: time.Unix(1653642660, 0)}
info := bindataFileInfo{name: "1649882262_add_derived_from_accounts.up.sql", size: 110, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x11, 0xb9, 0x44, 0x4d, 0x85, 0x8d, 0x7f, 0xb4, 0xae, 0x4f, 0x5c, 0x66, 0x64, 0xb6, 0xe2, 0xe, 0x3d, 0xad, 0x9d, 0x8, 0x4f, 0xab, 0x6e, 0xa8, 0x7d, 0x76, 0x3, 0xad, 0x96, 0x1, 0xee, 0x5c}}
return a, nil
}
@ -409,7 +409,7 @@ func _1650612625_add_community_message_archive_hashes_tableUpSql() (*asset, erro
return nil, err
}
info := bindataFileInfo{name: "1650612625_add_community_message_archive_hashes_table.up.sql", size: 130, mode: os.FileMode(0644), modTime: time.Unix(1653642660, 0)}
info := bindataFileInfo{name: "1650612625_add_community_message_archive_hashes_table.up.sql", size: 130, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x48, 0x31, 0xb3, 0x75, 0x23, 0xe2, 0x45, 0xe, 0x47, 0x1b, 0x35, 0xa5, 0x6e, 0x83, 0x4e, 0x64, 0x7d, 0xd7, 0xa2, 0xda, 0xe9, 0x53, 0xf1, 0x16, 0x86, 0x2c, 0x57, 0xad, 0xfa, 0xca, 0x39, 0xde}}
return a, nil
}
@ -429,7 +429,7 @@ func _1650616788_add_communities_archives_info_tableUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1650616788_add_communities_archives_info_table.up.sql", size: 208, mode: os.FileMode(0644), modTime: time.Unix(1653642660, 0)}
info := bindataFileInfo{name: "1650616788_add_communities_archives_info_table.up.sql", size: 208, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd1, 0x4f, 0x80, 0x45, 0xb9, 0xd9, 0x15, 0xe2, 0x78, 0xd0, 0xcb, 0x71, 0xc1, 0x1b, 0xb7, 0x1b, 0x1b, 0x97, 0xfe, 0x47, 0x53, 0x3c, 0x62, 0xbc, 0xdd, 0x3a, 0x94, 0x1a, 0xc, 0x48, 0x76, 0xe}}
return a, nil
}
@ -449,7 +449,7 @@ func _1652715604_add_clock_accountsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1652715604_add_clock_accounts.up.sql", size: 62, mode: os.FileMode(0644), modTime: time.Unix(1653642660, 0)}
info := bindataFileInfo{name: "1652715604_add_clock_accounts.up.sql", size: 62, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xb6, 0xd9, 0x8d, 0x73, 0xc9, 0xef, 0xfa, 0xb1, 0x4b, 0xa5, 0xf3, 0x5, 0x19, 0x26, 0x46, 0xf8, 0x47, 0x93, 0xdb, 0xac, 0x2, 0xef, 0xf9, 0x71, 0x56, 0x83, 0xe6, 0x2d, 0xb0, 0xd7, 0x83, 0x5c}}
return a, nil
}
@ -469,7 +469,7 @@ func _1653037334_add_notifications_settings_tableUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1653037334_add_notifications_settings_table.up.sql", size: 1276, mode: os.FileMode(0644), modTime: time.Unix(1653642660, 0)}
info := bindataFileInfo{name: "1653037334_add_notifications_settings_table.up.sql", size: 1276, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x4b, 0xc4, 0x65, 0xac, 0xa, 0xf2, 0xef, 0xb6, 0x39, 0x3c, 0xc5, 0xb1, 0xb2, 0x9c, 0x86, 0x58, 0xe0, 0x38, 0xcb, 0x57, 0x3c, 0x76, 0x73, 0x87, 0x79, 0x4e, 0xf6, 0xed, 0xb0, 0x8e, 0x9e, 0xa}}
return a, nil
}
@ -489,7 +489,7 @@ func _1654702119_add_mutual_contact_settingsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1654702119_add_mutual_contact_settings.up.sql", size: 78, mode: os.FileMode(0644), modTime: time.Unix(1655461227, 0)}
info := bindataFileInfo{name: "1654702119_add_mutual_contact_settings.up.sql", size: 78, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x26, 0x66, 0x67, 0x50, 0xfe, 0xd7, 0xe3, 0x29, 0x8b, 0xff, 0x9d, 0x5a, 0x87, 0xa7, 0x99, 0x6e, 0xd6, 0xcd, 0x2e, 0xbb, 0x17, 0xdf, 0x7f, 0xf7, 0xa3, 0xfa, 0x32, 0x7c, 0x2d, 0x92, 0xc8, 0x74}}
return a, nil
}
@ -509,7 +509,7 @@ func _1655375270_add_clock_field_to_communities_settings_tableUpSql() (*asset, e
return nil, err
}
info := bindataFileInfo{name: "1655375270_add_clock_field_to_communities_settings_table.up.sql", size: 74, mode: os.FileMode(0644), modTime: time.Unix(1655461227, 0)}
info := bindataFileInfo{name: "1655375270_add_clock_field_to_communities_settings_table.up.sql", size: 74, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x19, 0xc5, 0xc0, 0xf9, 0x84, 0x53, 0xdf, 0x83, 0xcf, 0xb6, 0x40, 0x6d, 0xf5, 0xdc, 0x77, 0x37, 0xb7, 0xe3, 0xa, 0x75, 0xe7, 0x6, 0x11, 0xca, 0x2b, 0x51, 0x92, 0xdd, 0x7d, 0xdb, 0xc3, 0xf5}}
return a, nil
}
@ -529,7 +529,7 @@ func _1655385721_drop_networks_configUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1655385721_drop_networks_config.up.sql", size: 27, mode: os.FileMode(0644), modTime: time.Unix(1655461227, 0)}
info := bindataFileInfo{name: "1655385721_drop_networks_config.up.sql", size: 27, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xfc, 0xa7, 0x20, 0xbb, 0x67, 0x21, 0xe, 0xc6, 0xc8, 0x21, 0x74, 0xe0, 0xce, 0xc8, 0xe2, 0x2, 0xb4, 0xea, 0xf0, 0xe5, 0xc4, 0x4d, 0xdd, 0xd4, 0x52, 0x31, 0xa9, 0x3d, 0xcd, 0xd8, 0x9b, 0xab}}
return a, nil
}
@ -549,7 +549,7 @@ func _1655385724_networks_chaincolor_shortnameUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1655385724_networks_chainColor_shortName.up.sql", size: 220, mode: os.FileMode(0644), modTime: time.Unix(1655461227, 0)}
info := bindataFileInfo{name: "1655385724_networks_chainColor_shortName.up.sql", size: 220, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd9, 0xe7, 0x84, 0xbb, 0x5f, 0xd2, 0x2c, 0x42, 0x88, 0x62, 0x52, 0xb6, 0x58, 0x31, 0xac, 0xc, 0x96, 0x2b, 0x1b, 0xe5, 0x4e, 0x9a, 0x3a, 0xf6, 0xf6, 0xfc, 0xa9, 0x1a, 0x35, 0x62, 0x28, 0x88}}
return a, nil
}
@ -569,7 +569,7 @@ func _1655456688_add_deleted_at_field_to_bookmarks_tableUpSql() (*asset, error)
return nil, err
}
info := bindataFileInfo{name: "1655456688_add_deleted_at_field_to_bookmarks_table.up.sql", size: 69, mode: os.FileMode(0644), modTime: time.Unix(1655462561, 0)}
info := bindataFileInfo{name: "1655456688_add_deleted_at_field_to_bookmarks_table.up.sql", size: 69, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xe7, 0x9a, 0xbd, 0x9a, 0xc9, 0xf, 0xdf, 0x90, 0x0, 0x5d, 0xea, 0x6e, 0x7d, 0x51, 0x95, 0xcd, 0x90, 0xd3, 0x1a, 0x36, 0x6c, 0xf4, 0xbd, 0xa7, 0x6b, 0xbf, 0xe5, 0xdb, 0xa3, 0x88, 0xe3, 0x50}}
return a, nil
}
@ -589,7 +589,7 @@ func _1655462032_create_bookmarks_deleted_at_indexUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1655462032_create_bookmarks_deleted_at_index.up.sql", size: 81, mode: os.FileMode(0644), modTime: time.Unix(1655468629, 0)}
info := bindataFileInfo{name: "1655462032_create_bookmarks_deleted_at_index.up.sql", size: 81, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xf, 0x8e, 0x20, 0x6b, 0x14, 0x9e, 0xcd, 0x97, 0xd3, 0xfe, 0x62, 0x3, 0x26, 0x59, 0x1, 0x6c, 0x99, 0xef, 0x6d, 0x21, 0xd4, 0xb5, 0xa3, 0xf4, 0x39, 0x40, 0x54, 0x6, 0xd, 0x60, 0x13, 0x38}}
return a, nil
}
@ -609,7 +609,7 @@ func docGo() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "doc.go", size: 74, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "doc.go", size: 74, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xde, 0x7c, 0x28, 0xcd, 0x47, 0xf2, 0xfa, 0x7c, 0x51, 0x2d, 0xd8, 0x38, 0xb, 0xb0, 0x34, 0x9d, 0x4c, 0x62, 0xa, 0x9e, 0x28, 0xc3, 0x31, 0x23, 0xd9, 0xbb, 0x89, 0x9f, 0xa0, 0x89, 0x1f, 0xe8}}
return a, nil
}

View File

@ -137,7 +137,7 @@ func _0001_appDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0001_app.down.sql", size: 356, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "0001_app.down.sql", size: 356, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xb5, 0x25, 0xa0, 0xf8, 0x7d, 0x2d, 0xd, 0xcf, 0x18, 0xe4, 0x73, 0xc3, 0x95, 0xf5, 0x24, 0x20, 0xa9, 0xe6, 0x9e, 0x1d, 0x93, 0xe5, 0xc5, 0xad, 0x93, 0x8f, 0x5e, 0x40, 0xb5, 0x30, 0xaa, 0x25}}
return a, nil
}
@ -157,7 +157,7 @@ func _0001_appUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0001_app.up.sql", size: 2967, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "0001_app.up.sql", size: 2967, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xf7, 0x3a, 0xa7, 0xf2, 0x8f, 0xfa, 0x82, 0x7c, 0xc5, 0x49, 0xac, 0xac, 0xf, 0xc, 0x77, 0xe2, 0xba, 0xe8, 0x4d, 0xe, 0x6f, 0x5d, 0x2c, 0x2c, 0x18, 0x80, 0xc2, 0x1d, 0xe, 0x25, 0xe, 0x18}}
return a, nil
}
@ -177,7 +177,7 @@ func _0002_tokensDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0002_tokens.down.sql", size: 19, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "0002_tokens.down.sql", size: 19, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd1, 0x31, 0x2, 0xcc, 0x2f, 0x38, 0x90, 0xf7, 0x58, 0x37, 0x47, 0xf4, 0x18, 0xf7, 0x72, 0x74, 0x67, 0x14, 0x7e, 0xf3, 0xb1, 0xd6, 0x5f, 0xb0, 0xd5, 0xe7, 0x91, 0xf4, 0x26, 0x77, 0x8e, 0x68}}
return a, nil
}
@ -197,7 +197,7 @@ func _0002_tokensUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0002_tokens.up.sql", size: 248, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "0002_tokens.up.sql", size: 248, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xcc, 0xd6, 0xde, 0xd3, 0x7b, 0xee, 0x92, 0x11, 0x38, 0xa4, 0xeb, 0x84, 0xca, 0xcb, 0x37, 0x75, 0x5, 0x77, 0x7f, 0x14, 0x39, 0xee, 0xa1, 0x8b, 0xd4, 0x5c, 0x6e, 0x55, 0x6, 0x50, 0x16, 0xd4}}
return a, nil
}
@ -217,7 +217,7 @@ func _0003_settingsDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0003_settings.down.sql", size: 118, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "0003_settings.down.sql", size: 118, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xe5, 0xa6, 0xf5, 0xc0, 0x60, 0x64, 0x77, 0xe2, 0xe7, 0x3c, 0x9b, 0xb1, 0x52, 0xa9, 0x95, 0x16, 0xf8, 0x60, 0x2f, 0xa5, 0xeb, 0x46, 0xb9, 0xb9, 0x8f, 0x4c, 0xf4, 0xfd, 0xbb, 0xe7, 0xe5, 0xe5}}
return a, nil
}
@ -237,7 +237,7 @@ func _0003_settingsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0003_settings.up.sql", size: 1311, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "0003_settings.up.sql", size: 1311, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xea, 0x35, 0x0, 0xeb, 0xe2, 0x33, 0x68, 0xb9, 0xf4, 0xf6, 0x8e, 0x9e, 0x10, 0xe9, 0x58, 0x68, 0x28, 0xb, 0xcd, 0xec, 0x74, 0x71, 0xa7, 0x9a, 0x5a, 0x77, 0x59, 0xb1, 0x13, 0x1c, 0xa1, 0x5b}}
return a, nil
}
@ -257,7 +257,7 @@ func _0004_pending_stickersDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0004_pending_stickers.down.sql", size: 0, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "0004_pending_stickers.down.sql", size: 0, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xe3, 0xb0, 0xc4, 0x42, 0x98, 0xfc, 0x1c, 0x14, 0x9a, 0xfb, 0xf4, 0xc8, 0x99, 0x6f, 0xb9, 0x24, 0x27, 0xae, 0x41, 0xe4, 0x64, 0x9b, 0x93, 0x4c, 0xa4, 0x95, 0x99, 0x1b, 0x78, 0x52, 0xb8, 0x55}}
return a, nil
}
@ -277,7 +277,7 @@ func _0004_pending_stickersUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0004_pending_stickers.up.sql", size: 61, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "0004_pending_stickers.up.sql", size: 61, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x3c, 0xed, 0x25, 0xdf, 0x75, 0x2, 0x6c, 0xf0, 0xa2, 0xa8, 0x37, 0x62, 0x65, 0xad, 0xfd, 0x98, 0xa0, 0x9d, 0x63, 0x94, 0xdf, 0x6b, 0x46, 0xe0, 0x68, 0xec, 0x9c, 0x7f, 0x77, 0xdd, 0xb3, 0x6}}
return a, nil
}
@ -297,7 +297,7 @@ func _0005_waku_modeDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0005_waku_mode.down.sql", size: 0, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "0005_waku_mode.down.sql", size: 0, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xe3, 0xb0, 0xc4, 0x42, 0x98, 0xfc, 0x1c, 0x14, 0x9a, 0xfb, 0xf4, 0xc8, 0x99, 0x6f, 0xb9, 0x24, 0x27, 0xae, 0x41, 0xe4, 0x64, 0x9b, 0x93, 0x4c, 0xa4, 0x95, 0x99, 0x1b, 0x78, 0x52, 0xb8, 0x55}}
return a, nil
}
@ -317,7 +317,7 @@ func _0005_waku_modeUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0005_waku_mode.up.sql", size: 146, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "0005_waku_mode.up.sql", size: 146, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xa6, 0x91, 0xc, 0xd7, 0x89, 0x61, 0x2e, 0x4c, 0x5a, 0xb6, 0x67, 0xd1, 0xc1, 0x42, 0x24, 0x38, 0xd6, 0x1b, 0x75, 0x41, 0x9c, 0x23, 0xb0, 0xca, 0x5c, 0xf1, 0x5c, 0xd0, 0x13, 0x92, 0x3e, 0xe1}}
return a, nil
}
@ -337,7 +337,7 @@ func _0006_appearanceUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0006_appearance.up.sql", size: 67, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "0006_appearance.up.sql", size: 67, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xae, 0x6, 0x25, 0x6c, 0xe4, 0x9d, 0xa7, 0x72, 0xe8, 0xbc, 0xe4, 0x1f, 0x1e, 0x2d, 0x7c, 0xb7, 0xf6, 0xa3, 0xec, 0x3b, 0x4e, 0x93, 0x2e, 0xa4, 0xec, 0x6f, 0xe5, 0x95, 0x94, 0xe8, 0x4, 0xfb}}
return a, nil
}
@ -357,7 +357,7 @@ func _0007_enable_waku_defaultUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0007_enable_waku_default.up.sql", size: 38, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "0007_enable_waku_default.up.sql", size: 38, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd4, 0x42, 0xb6, 0xe5, 0x48, 0x41, 0xeb, 0xc0, 0x7e, 0x3b, 0xe6, 0x8e, 0x96, 0x33, 0x20, 0x92, 0x24, 0x5a, 0x60, 0xfa, 0xa0, 0x3, 0x5e, 0x76, 0x4b, 0x89, 0xaa, 0x37, 0x66, 0xbc, 0x26, 0x11}}
return a, nil
}
@ -377,7 +377,7 @@ func _0008_add_push_notificationsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0008_add_push_notifications.up.sql", size: 349, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "0008_add_push_notifications.up.sql", size: 349, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x5a, 0x0, 0xbf, 0xd0, 0xdd, 0xcd, 0x73, 0xe0, 0x7c, 0x56, 0xef, 0xdc, 0x57, 0x61, 0x94, 0x64, 0x70, 0xb9, 0xfa, 0xa1, 0x2a, 0x36, 0xc, 0x2f, 0xf8, 0x95, 0xa, 0x57, 0x3e, 0x7a, 0xd7, 0x12}}
return a, nil
}
@ -397,7 +397,7 @@ func _0009_enable_sending_push_notificationsDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0009_enable_sending_push_notifications.down.sql", size: 49, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "0009_enable_sending_push_notifications.down.sql", size: 49, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xe9, 0xae, 0x1b, 0x41, 0xcb, 0x9c, 0x2c, 0x93, 0xc6, 0x2a, 0x77, 0x3, 0xb9, 0x51, 0xe0, 0x68, 0x68, 0x0, 0xf7, 0x5b, 0xb3, 0x1e, 0x94, 0x44, 0xba, 0x9c, 0xd0, 0x3b, 0x80, 0x21, 0x6f, 0xb5}}
return a, nil
}
@ -417,7 +417,7 @@ func _0009_enable_sending_push_notificationsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0009_enable_sending_push_notifications.up.sql", size: 49, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "0009_enable_sending_push_notifications.up.sql", size: 49, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x1b, 0x80, 0xe4, 0x9c, 0xc8, 0xb8, 0xd5, 0xef, 0xce, 0x74, 0x9b, 0x7b, 0xdd, 0xa, 0x99, 0x1e, 0xef, 0x7f, 0xb8, 0x99, 0x84, 0x4, 0x0, 0x6b, 0x1d, 0x2c, 0xa, 0xf8, 0x2c, 0x4f, 0xb5, 0x44}}
return a, nil
}
@ -437,7 +437,7 @@ func _0010_add_block_mentionsDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0010_add_block_mentions.down.sql", size: 83, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "0010_add_block_mentions.down.sql", size: 83, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x6d, 0x9e, 0x27, 0x1e, 0xba, 0x9f, 0xca, 0xae, 0x98, 0x2e, 0x6e, 0xe3, 0xdd, 0xac, 0x73, 0x34, 0x4e, 0x69, 0x92, 0xb5, 0xf6, 0x9, 0xab, 0x50, 0x35, 0xd, 0xee, 0xeb, 0x3e, 0xcc, 0x7e, 0xce}}
return a, nil
}
@ -457,7 +457,7 @@ func _0010_add_block_mentionsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0010_add_block_mentions.up.sql", size: 89, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "0010_add_block_mentions.up.sql", size: 89, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd7, 0x23, 0x85, 0xa2, 0xb5, 0xb6, 0xb4, 0x3f, 0xdc, 0x4e, 0xff, 0xe2, 0x6b, 0x66, 0x68, 0x5e, 0xb2, 0xb4, 0x14, 0xb2, 0x1b, 0x4d, 0xb1, 0xce, 0xf7, 0x6, 0x58, 0xa7, 0xaf, 0x93, 0x3f, 0x25}}
return a, nil
}
@ -477,7 +477,7 @@ func _0011_allow_webview_permission_requestsDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0011_allow_webview_permission_requests.down.sql", size: 0, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "0011_allow_webview_permission_requests.down.sql", size: 0, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xe3, 0xb0, 0xc4, 0x42, 0x98, 0xfc, 0x1c, 0x14, 0x9a, 0xfb, 0xf4, 0xc8, 0x99, 0x6f, 0xb9, 0x24, 0x27, 0xae, 0x41, 0xe4, 0x64, 0x9b, 0x93, 0x4c, 0xa4, 0x95, 0x99, 0x1b, 0x78, 0x52, 0xb8, 0x55}}
return a, nil
}
@ -497,7 +497,7 @@ func _0011_allow_webview_permission_requestsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0011_allow_webview_permission_requests.up.sql", size: 88, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "0011_allow_webview_permission_requests.up.sql", size: 88, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x43, 0x5f, 0x22, 0x4c, 0x98, 0x1d, 0xc6, 0xf4, 0x89, 0xaf, 0xf4, 0x44, 0xba, 0xf8, 0x28, 0xa7, 0xb5, 0xb9, 0xf0, 0xf2, 0xcb, 0x5, 0x59, 0x7a, 0xc, 0xdf, 0xd3, 0x38, 0xa4, 0xb8, 0x98, 0xc2}}
return a, nil
}
@ -517,7 +517,7 @@ func _0012_pending_transactionsDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0012_pending_transactions.down.sql", size: 33, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "0012_pending_transactions.down.sql", size: 33, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x7e, 0x41, 0xfe, 0x5c, 0xd8, 0xc3, 0x29, 0xfd, 0x31, 0x78, 0x99, 0x7a, 0xeb, 0x17, 0x62, 0x88, 0x41, 0xb3, 0xe7, 0xb5, 0x5, 0x0, 0x90, 0xa1, 0x7, 0x1a, 0x23, 0x88, 0x81, 0xba, 0x56, 0x9d}}
return a, nil
}
@ -537,7 +537,7 @@ func _0012_pending_transactionsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0012_pending_transactions.up.sql", size: 321, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "0012_pending_transactions.up.sql", size: 321, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd, 0x17, 0xff, 0xd7, 0xa7, 0x49, 0x1e, 0x7b, 0x34, 0x63, 0x7c, 0x53, 0xaa, 0x6b, 0x2d, 0xc8, 0xe0, 0x82, 0x21, 0x90, 0x3a, 0x94, 0xf1, 0xa6, 0xe4, 0x70, 0xe5, 0x85, 0x1a, 0x48, 0x25, 0xb}}
return a, nil
}
@ -557,7 +557,7 @@ func _0013_favouritesDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0013_favourites.down.sql", size: 23, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "0013_favourites.down.sql", size: 23, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x32, 0xf8, 0x55, 0x13, 0x4f, 0x4a, 0x19, 0x83, 0x9c, 0xda, 0x34, 0xb8, 0x3, 0x54, 0x82, 0x1e, 0x99, 0x36, 0x6b, 0x42, 0x3, 0xf6, 0x43, 0xde, 0xe6, 0x32, 0xb6, 0xdf, 0xe2, 0x59, 0x8c, 0x84}}
return a, nil
}
@ -577,7 +577,7 @@ func _0013_favouritesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0013_favourites.up.sql", size: 132, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "0013_favourites.up.sql", size: 132, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xbe, 0x1, 0x27, 0x38, 0x76, 0xf5, 0xcb, 0x61, 0xda, 0x5b, 0xce, 0xd9, 0x8b, 0x18, 0x77, 0x61, 0x84, 0xe7, 0x22, 0xe2, 0x13, 0x99, 0xab, 0x32, 0xbc, 0xbe, 0xed, 0x1f, 0x2f, 0xb0, 0xe4, 0x8d}}
return a, nil
}
@ -597,7 +597,7 @@ func _0014_add_use_mailserversDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0014_add_use_mailservers.down.sql", size: 0, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "0014_add_use_mailservers.down.sql", size: 0, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xe3, 0xb0, 0xc4, 0x42, 0x98, 0xfc, 0x1c, 0x14, 0x9a, 0xfb, 0xf4, 0xc8, 0x99, 0x6f, 0xb9, 0x24, 0x27, 0xae, 0x41, 0xe4, 0x64, 0x9b, 0x93, 0x4c, 0xa4, 0x95, 0x99, 0x1b, 0x78, 0x52, 0xb8, 0x55}}
return a, nil
}
@ -617,7 +617,7 @@ func _0014_add_use_mailserversUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0014_add_use_mailservers.up.sql", size: 111, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "0014_add_use_mailservers.up.sql", size: 111, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xc9, 0xba, 0x65, 0xbf, 0x1b, 0xc9, 0x6d, 0x45, 0xf2, 0xf5, 0x30, 0x7c, 0xc1, 0xde, 0xb8, 0xe3, 0x3f, 0xa9, 0x2f, 0x9f, 0xea, 0x1, 0x29, 0x29, 0x65, 0xe7, 0x38, 0xab, 0xa4, 0x62, 0xf, 0xd0}}
return a, nil
}
@ -637,7 +637,7 @@ func _0015_link_previewsDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0015_link_previews.down.sql", size: 0, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "0015_link_previews.down.sql", size: 0, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xe3, 0xb0, 0xc4, 0x42, 0x98, 0xfc, 0x1c, 0x14, 0x9a, 0xfb, 0xf4, 0xc8, 0x99, 0x6f, 0xb9, 0x24, 0x27, 0xae, 0x41, 0xe4, 0x64, 0x9b, 0x93, 0x4c, 0xa4, 0x95, 0x99, 0x1b, 0x78, 0x52, 0xb8, 0x55}}
return a, nil
}
@ -657,7 +657,7 @@ func _0015_link_previewsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0015_link_previews.up.sql", size: 203, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "0015_link_previews.up.sql", size: 203, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xb1, 0xf7, 0x38, 0x25, 0xa6, 0xfc, 0x6b, 0x9, 0xe4, 0xd9, 0xbf, 0x58, 0x7b, 0x80, 0xd8, 0x48, 0x63, 0xde, 0xa5, 0x5e, 0x30, 0xa3, 0xeb, 0x68, 0x8e, 0x6a, 0x9f, 0xfd, 0xf4, 0x46, 0x41, 0x34}}
return a, nil
}
@ -677,7 +677,7 @@ func _0016_local_notifications_preferencesDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0016_local_notifications_preferences.down.sql", size: 43, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "0016_local_notifications_preferences.down.sql", size: 43, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xe0, 0x50, 0xc7, 0xdd, 0x53, 0x9c, 0x5d, 0x1e, 0xb5, 0x71, 0x25, 0x50, 0x58, 0xcf, 0x6d, 0xbe, 0x5a, 0x8, 0x12, 0xc9, 0x13, 0xd, 0x9a, 0x3d, 0x4b, 0x7a, 0x2f, 0x1b, 0xe5, 0x23, 0x52, 0x78}}
return a, nil
}
@ -697,7 +697,7 @@ func _0016_local_notifications_preferencesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0016_local_notifications_preferences.up.sql", size: 204, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "0016_local_notifications_preferences.up.sql", size: 204, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x3f, 0x3a, 0x16, 0x25, 0xdf, 0xba, 0x62, 0xd3, 0x81, 0x73, 0xc, 0x10, 0x85, 0xbc, 0x8d, 0xe, 0x1d, 0x62, 0xcb, 0xb, 0x6d, 0x8c, 0x4f, 0x63, 0x5f, 0xe2, 0xd, 0xc5, 0x46, 0xa8, 0x35, 0x5b}}
return a, nil
}
@ -717,7 +717,7 @@ func _0017_bookmarksDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0017_bookmarks.down.sql", size: 22, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "0017_bookmarks.down.sql", size: 22, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x9a, 0x13, 0x2a, 0x44, 0xb0, 0x3, 0x18, 0x63, 0xb8, 0x33, 0xda, 0x3a, 0xeb, 0xb8, 0xcb, 0xd1, 0x98, 0x29, 0xa7, 0xf0, 0x6, 0x9d, 0xc9, 0x62, 0xe7, 0x89, 0x7f, 0x77, 0xaf, 0xec, 0x6b, 0x8f}}
return a, nil
}
@ -737,7 +737,7 @@ func _0017_bookmarksUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0017_bookmarks.up.sql", size: 147, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "0017_bookmarks.up.sql", size: 147, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xbc, 0x47, 0xe1, 0xe3, 0xd8, 0xc6, 0x4, 0x6d, 0x5f, 0x2f, 0xa, 0x51, 0xa6, 0x8c, 0x6a, 0xe0, 0x3d, 0x8c, 0x91, 0x47, 0xbc, 0x1, 0x75, 0x46, 0x92, 0x2, 0x18, 0x6e, 0xe3, 0x4f, 0x18, 0x57}}
return a, nil
}
@ -757,7 +757,7 @@ func _0018_profile_pictures_visibilityUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0018_profile_pictures_visibility.up.sql", size: 84, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "0018_profile_pictures_visibility.up.sql", size: 84, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xc9, 0xe3, 0xc5, 0xec, 0x83, 0x55, 0x45, 0x57, 0x7a, 0xaa, 0xd2, 0xa7, 0x59, 0xa7, 0x87, 0xef, 0x63, 0x19, 0x9c, 0x46, 0x9c, 0xc5, 0x32, 0x89, 0xa4, 0x68, 0x70, 0xd8, 0x83, 0x43, 0xa4, 0x72}}
return a, nil
}
@ -777,7 +777,7 @@ func _0019_blocks_ranges_extra_dataUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0019_blocks_ranges_extra_data.up.sql", size: 89, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "0019_blocks_ranges_extra_data.up.sql", size: 89, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xa3, 0x96, 0x32, 0x58, 0xf0, 0xb9, 0xe1, 0x70, 0x81, 0xca, 0x8d, 0x45, 0x57, 0x8a, 0x7, 0x5d, 0x9e, 0x2a, 0x30, 0xb, 0xad, 0x5f, 0xf8, 0xd4, 0x30, 0x94, 0x73, 0x37, 0x8d, 0xc1, 0x9a, 0xed}}
return a, nil
}
@ -797,7 +797,7 @@ func _0020_metricsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0020_metrics.up.sql", size: 235, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "0020_metrics.up.sql", size: 235, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xe8, 0x32, 0xbc, 0xb6, 0x9b, 0x5a, 0x8f, 0x9f, 0x4c, 0x90, 0x81, 0x3e, 0x2e, 0xd1, 0x23, 0xcd, 0xf1, 0x83, 0x35, 0xca, 0x66, 0x87, 0x52, 0x4e, 0x30, 0x3e, 0x4f, 0xa8, 0xfd, 0x30, 0x16, 0xbd}}
return a, nil
}
@ -817,7 +817,7 @@ func _0021_add_session_id_to_metricsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0021_add_session_id_to_metrics.up.sql", size: 55, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "0021_add_session_id_to_metrics.up.sql", size: 55, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xb7, 0x81, 0xfc, 0x97, 0xd1, 0x8b, 0xea, 0x8e, 0xd7, 0xc2, 0x53, 0x62, 0xe9, 0xbc, 0xf, 0x8c, 0x46, 0x41, 0x41, 0xb7, 0x6, 0x35, 0xf5, 0xba, 0xbb, 0x28, 0x50, 0x48, 0xbf, 0x36, 0x90, 0x5c}}
return a, nil
}
@ -837,7 +837,7 @@ func _0022_pending_transfersUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0022_pending_transfers.up.sql", size: 706, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "0022_pending_transfers.up.sql", size: 706, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x6a, 0x9, 0xe6, 0x6, 0xae, 0x60, 0xdd, 0xbb, 0x76, 0xac, 0xe0, 0x57, 0x30, 0x67, 0x37, 0x93, 0x40, 0x13, 0xec, 0xf2, 0x6e, 0x61, 0xa, 0x14, 0xb2, 0xb1, 0xbd, 0x91, 0xf8, 0x89, 0xb3, 0xe3}}
return a, nil
}
@ -857,7 +857,7 @@ func _1618237885_settings_anon_metrics_should_sendUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1618237885_settings_anon_metrics_should_send.up.sql", size: 80, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "1618237885_settings_anon_metrics_should_send.up.sql", size: 80, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xea, 0x6c, 0x1d, 0x1f, 0x54, 0x62, 0x18, 0x22, 0x5c, 0xa7, 0x8c, 0x59, 0x24, 0xd3, 0x4d, 0x55, 0xc4, 0x2a, 0x9e, 0x4c, 0x37, 0x6b, 0xfd, 0xac, 0xec, 0xb7, 0x68, 0x21, 0x26, 0x26, 0xf3, 0x92}}
return a, nil
}
@ -877,7 +877,7 @@ func _1618395756_contacts_onlyUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1618395756_contacts_only.up.sql", size: 136, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "1618395756_contacts_only.up.sql", size: 136, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x1, 0xe3, 0xd0, 0xe7, 0xf2, 0x6e, 0xbf, 0x27, 0xf6, 0xe2, 0x2e, 0x16, 0x4b, 0x52, 0x3b, 0xcf, 0x63, 0x52, 0xfc, 0x1d, 0x43, 0xba, 0x42, 0xf9, 0x1e, 0x1e, 0x39, 0x40, 0xed, 0x0, 0x20, 0xa8}}
return a, nil
}
@ -897,7 +897,7 @@ func _1622184614_add_default_sync_periodUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1622184614_add_default_sync_period.up.sql", size: 125, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "1622184614_add_default_sync_period.up.sql", size: 125, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x60, 0x39, 0xeb, 0x8f, 0xdc, 0x1, 0x56, 0xc1, 0x9b, 0xaa, 0xda, 0x44, 0xe0, 0xdb, 0xda, 0x2c, 0xe7, 0x71, 0x8d, 0xbc, 0xc1, 0x9a, 0x4f, 0x48, 0xe0, 0x5e, 0x81, 0x1e, 0x8e, 0x6a, 0x4d, 0x3}}
return a, nil
}
@ -917,7 +917,7 @@ func _1625872445_user_statusUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1625872445_user_status.up.sql", size: 351, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "1625872445_user_status.up.sql", size: 351, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xf5, 0xa, 0xfe, 0x7a, 0xcc, 0x9e, 0x35, 0x26, 0xb, 0xc8, 0xf2, 0x7d, 0xfa, 0x4b, 0xcf, 0x53, 0x20, 0x76, 0xc7, 0xd, 0xbc, 0x78, 0x4f, 0x74, 0x2d, 0x2e, 0x2e, 0x7e, 0x62, 0xae, 0x78, 0x1f}}
return a, nil
}
@ -937,7 +937,7 @@ func _1627983977_add_gif_to_settingsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1627983977_add_gif_to_settings.up.sql", size: 102, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "1627983977_add_gif_to_settings.up.sql", size: 102, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x63, 0xe6, 0xe1, 0x97, 0x64, 0x4c, 0xe2, 0x14, 0xb1, 0x96, 0x3a, 0xb0, 0xb9, 0xb7, 0xb5, 0x78, 0x4a, 0x39, 0x69, 0x89, 0xb7, 0x89, 0x19, 0xb8, 0x89, 0x1, 0xc5, 0xc2, 0x85, 0x53, 0xe2, 0x83}}
return a, nil
}
@ -957,7 +957,7 @@ func _1628580203_add_hidden_accountUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1628580203_add_hidden_account.up.sql", size: 67, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "1628580203_add_hidden_account.up.sql", size: 67, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xcb, 0x30, 0xf1, 0xd4, 0x60, 0xe2, 0x28, 0x14, 0xcb, 0x16, 0xb, 0x9, 0xea, 0x17, 0xa, 0x9e, 0x89, 0xa8, 0x32, 0x32, 0xf8, 0x4d, 0xa0, 0xe1, 0xe5, 0x79, 0xbd, 0x7d, 0x79, 0xe9, 0x4c, 0x9e}}
return a, nil
}
@ -977,7 +977,7 @@ func _1629123384_add_id_to_app_metricsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1629123384_add_id_to_app_metrics.up.sql", size: 589, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "1629123384_add_id_to_app_metrics.up.sql", size: 589, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xdf, 0x66, 0xc0, 0x69, 0xb, 0xad, 0x49, 0x7c, 0x8c, 0x67, 0xb8, 0xd6, 0x8d, 0x5d, 0x86, 0x1f, 0xa4, 0x53, 0xf5, 0x8, 0x1, 0xfd, 0x38, 0x49, 0xee, 0x84, 0xc0, 0xd8, 0x17, 0x72, 0x3, 0xb3}}
return a, nil
}
@ -997,7 +997,7 @@ func _1630401853_add_opensea_enabled_to_settingsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1630401853_add_opensea_enabled_to_settings.up.sql", size: 70, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "1630401853_add_opensea_enabled_to_settings.up.sql", size: 70, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x6, 0x91, 0x86, 0x15, 0xc8, 0x99, 0xe3, 0xae, 0xa, 0x6e, 0x94, 0x48, 0x51, 0x5b, 0x18, 0xe0, 0xbc, 0xaf, 0x34, 0x75, 0x55, 0x61, 0xd4, 0xc1, 0x85, 0xc7, 0x3d, 0x99, 0x9e, 0x1f, 0x37, 0x56}}
return a, nil
}
@ -1017,7 +1017,7 @@ func _1630464455_createSaved_addressesTableDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1630464455_create-saved_addresses-table.down.sql", size: 28, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "1630464455_create-saved_addresses-table.down.sql", size: 28, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x23, 0x52, 0x39, 0xb5, 0x42, 0xac, 0xcb, 0xa1, 0x44, 0xb7, 0x94, 0x26, 0x24, 0xb2, 0x12, 0xc, 0xc5, 0xbf, 0x63, 0x13, 0x6f, 0x3c, 0x4, 0x7b, 0xf0, 0xd, 0xfa, 0x55, 0x9e, 0x51, 0xf9, 0x7a}}
return a, nil
}
@ -1037,7 +1037,7 @@ func _1630464455_createSaved_addressesTableUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1630464455_create-saved_addresses-table.up.sql", size: 187, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "1630464455_create-saved_addresses-table.up.sql", size: 187, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x32, 0xf, 0x56, 0x18, 0xeb, 0x4e, 0xac, 0xd8, 0xd6, 0x91, 0xae, 0x83, 0xcf, 0x91, 0x9e, 0x4, 0x4b, 0x2, 0x1f, 0x6d, 0xba, 0xf6, 0x3, 0xf2, 0x98, 0x72, 0xf6, 0x91, 0x29, 0x96, 0x0, 0x35}}
return a, nil
}
@ -1057,7 +1057,7 @@ func _1630485153_networksDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1630485153_networks.down.sql", size: 21, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "1630485153_networks.down.sql", size: 21, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xbb, 0x3e, 0x57, 0xb7, 0xf7, 0x8, 0xbd, 0xb5, 0xc2, 0xea, 0xc, 0x45, 0xb7, 0x7, 0x9, 0xca, 0xe7, 0x48, 0x7e, 0x56, 0x4e, 0x44, 0x78, 0x8e, 0xe3, 0x87, 0x63, 0xaf, 0x16, 0x3f, 0xf9, 0x71}}
return a, nil
}
@ -1077,7 +1077,7 @@ func _1630485153_networksUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1630485153_networks.up.sql", size: 394, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "1630485153_networks.up.sql", size: 394, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xed, 0x9, 0x1d, 0x3, 0x86, 0xbd, 0xc5, 0xde, 0x3c, 0x1b, 0x40, 0x41, 0x7c, 0x61, 0x8, 0x80, 0x53, 0x87, 0x1b, 0x5a, 0x56, 0xd, 0x88, 0x1d, 0x60, 0x24, 0xce, 0x7b, 0x8f, 0xff, 0xaf, 0x36}}
return a, nil
}
@ -1097,7 +1097,7 @@ func _1632262444_profile_pictures_show_toUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1632262444_profile_pictures_show_to.up.sql", size: 81, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "1632262444_profile_pictures_show_to.up.sql", size: 81, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xc3, 0xa2, 0x5a, 0x94, 0xde, 0x86, 0x2a, 0x29, 0xf5, 0xb3, 0x36, 0xe7, 0x53, 0x81, 0x55, 0xc9, 0xb5, 0xc3, 0xf4, 0x8c, 0x65, 0x2c, 0x4c, 0x48, 0xfd, 0x3c, 0xb7, 0x14, 0xb4, 0xea, 0x7a, 0x13}}
return a, nil
}
@ -1117,7 +1117,7 @@ func _1635942153_add_telemetry_server_url_to_settingsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1635942153_add_telemetry_server_url_to_settings.up.sql", size: 128, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "1635942153_add_telemetry_server_url_to_settings.up.sql", size: 128, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x6e, 0x9b, 0x1d, 0x39, 0x9c, 0x8d, 0x50, 0x86, 0xdf, 0xe5, 0x81, 0x55, 0xdc, 0x31, 0xcd, 0xb7, 0xc7, 0x5a, 0x67, 0x3b, 0x21, 0x99, 0xa5, 0x74, 0xb8, 0xd3, 0x58, 0xae, 0x29, 0x68, 0x2a, 0x8d}}
return a, nil
}
@ -1137,7 +1137,7 @@ func _1635942154_add_backup_settingUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1635942154_add_backup_setting.up.sql", size: 287, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "1635942154_add_backup_setting.up.sql", size: 287, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xb7, 0xe7, 0xfb, 0x70, 0x80, 0x5, 0xb4, 0x7b, 0x67, 0x8, 0x6e, 0x5f, 0x45, 0x17, 0xd9, 0x5f, 0x18, 0x66, 0x2f, 0x8a, 0x4f, 0xd4, 0x15, 0xe5, 0x2b, 0xbb, 0x25, 0x7a, 0x30, 0xad, 0x4c, 0x1a}}
return a, nil
}
@ -1157,7 +1157,7 @@ func _1637745568_add_auto_message_settingUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1637745568_add_auto_message_setting.up.sql", size: 122, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "1637745568_add_auto_message_setting.up.sql", size: 122, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x1d, 0xd8, 0xd2, 0xc2, 0x3a, 0xd7, 0xf1, 0x96, 0x6a, 0x35, 0xe5, 0x5c, 0xb9, 0xed, 0x4b, 0xf2, 0x5f, 0x80, 0x43, 0xca, 0x40, 0x57, 0x7e, 0xd7, 0x41, 0x9f, 0x70, 0x9f, 0xaf, 0x2a, 0xfc, 0x8f}}
return a, nil
}
@ -1177,7 +1177,7 @@ func _1640111208_nodeconfigUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1640111208_nodeconfig.up.sql", size: 7659, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "1640111208_nodeconfig.up.sql", size: 7659, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x8e, 0x5a, 0xc6, 0xed, 0x6, 0xcb, 0x51, 0x8b, 0x78, 0xe9, 0x10, 0x37, 0xd1, 0xad, 0x9b, 0x76, 0x9a, 0xb9, 0x72, 0x85, 0xe7, 0x8a, 0x7f, 0xf0, 0x81, 0xf8, 0x33, 0x59, 0x67, 0x8e, 0xeb, 0xb1}}
return a, nil
}
@ -1197,7 +1197,7 @@ func docGo() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "doc.go", size: 85, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "doc.go", size: 85, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xe5, 0xd2, 0xea, 0xc5, 0xd, 0xc4, 0x7f, 0x95, 0x8e, 0xd5, 0xf5, 0x96, 0xf2, 0x1b, 0xcb, 0xc7, 0xc2, 0x46, 0x1, 0x78, 0x1d, 0x5d, 0x59, 0x19, 0x99, 0xdd, 0x5b, 0xf5, 0x63, 0xa5, 0x25, 0xb8}}
return a, nil
}

View File

@ -86,7 +86,7 @@ func _1557732988_initialize_dbDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1557732988_initialize_db.down.sql", size: 72, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "1557732988_initialize_db.down.sql", size: 72, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x77, 0x40, 0x78, 0xb7, 0x71, 0x3c, 0x20, 0x3b, 0xc9, 0xb, 0x2f, 0x49, 0xe4, 0xff, 0x1c, 0x84, 0x54, 0xa1, 0x30, 0xe3, 0x90, 0xf8, 0x73, 0xda, 0xb0, 0x2a, 0xea, 0x8e, 0xf1, 0x82, 0xe7, 0xd2}}
return a, nil
}
@ -106,7 +106,7 @@ func _1557732988_initialize_dbUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1557732988_initialize_db.up.sql", size: 278, mode: os.FileMode(0644), modTime: time.Unix(1637329330, 0)}
info := bindataFileInfo{name: "1557732988_initialize_db.up.sql", size: 278, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xf5, 0x85, 0x41, 0x7a, 0xba, 0x4f, 0xa3, 0x43, 0xc0, 0x63, 0xfa, 0x2c, 0xd1, 0xc5, 0xbb, 0x20, 0xa0, 0x64, 0xa8, 0x3b, 0x65, 0x82, 0xa2, 0x14, 0x28, 0x18, 0x7c, 0x8b, 0x3a, 0x7a, 0xfd, 0xe0}}
return a, nil
}
@ -126,7 +126,7 @@ func staticGo() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "static.go", size: 178, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "static.go", size: 178, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xab, 0x8a, 0xf4, 0x27, 0x24, 0x9d, 0x2a, 0x1, 0x7b, 0x54, 0xea, 0xae, 0x4a, 0x35, 0x40, 0x92, 0xb5, 0xf9, 0xb3, 0x54, 0x3e, 0x3a, 0x1a, 0x2b, 0xae, 0xfb, 0x9e, 0x82, 0xeb, 0x4c, 0xf, 0x6}}
return a, nil
}

View File

@ -93,7 +93,7 @@ func _0001_accountsDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0001_accounts.down.sql", size: 21, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "0001_accounts.down.sql", size: 21, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd2, 0x61, 0x4c, 0x18, 0xfc, 0xc, 0xdf, 0x5c, 0x1f, 0x5e, 0xd3, 0xbd, 0xfa, 0x12, 0x5e, 0x8d, 0x8d, 0x8b, 0xb9, 0x5f, 0x99, 0x46, 0x63, 0xa5, 0xe3, 0xa6, 0x8a, 0x4, 0xf1, 0x73, 0x8a, 0xe9}}
return a, nil
}
@ -113,7 +113,7 @@ func _0001_accountsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0001_accounts.up.sql", size: 163, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "0001_accounts.up.sql", size: 163, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xf2, 0xfa, 0x99, 0x8e, 0x96, 0xb3, 0x13, 0x6c, 0x1f, 0x6, 0x27, 0xc5, 0xd2, 0xd4, 0xe0, 0xa5, 0x26, 0x82, 0xa7, 0x26, 0xf2, 0x68, 0x9d, 0xed, 0x9c, 0x3d, 0xbb, 0xdc, 0x37, 0x28, 0xbc, 0x1}}
return a, nil
}
@ -133,7 +133,7 @@ func _1605007189_identity_imagesDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1605007189_identity_images.down.sql", size: 29, mode: os.FileMode(0644), modTime: time.Unix(1610470168, 0)}
info := bindataFileInfo{name: "1605007189_identity_images.down.sql", size: 29, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x2f, 0xcf, 0xa7, 0xae, 0xd5, 0x4f, 0xcd, 0x14, 0x63, 0x9, 0xbe, 0x39, 0x49, 0x18, 0x96, 0xb2, 0xa3, 0x8, 0x7d, 0x41, 0xdb, 0x50, 0x5d, 0xf5, 0x4d, 0xa2, 0xd, 0x8f, 0x57, 0x79, 0x77, 0x67}}
return a, nil
}
@ -153,7 +153,7 @@ func _1605007189_identity_imagesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1605007189_identity_images.up.sql", size: 268, mode: os.FileMode(0644), modTime: time.Unix(1610470168, 0)}
info := bindataFileInfo{name: "1605007189_identity_images.up.sql", size: 268, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x50, 0xb6, 0xc1, 0x5c, 0x76, 0x72, 0x6b, 0x22, 0x34, 0xdc, 0x96, 0xdc, 0x2b, 0xfd, 0x2d, 0xbe, 0xcc, 0x1e, 0xd4, 0x5, 0x93, 0xd, 0xc2, 0x51, 0xf3, 0x1a, 0xef, 0x2b, 0x26, 0xa4, 0xeb, 0x65}}
return a, nil
}
@ -173,7 +173,7 @@ func _1606224181_drop_photo_path_from_accountsDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1606224181_drop_photo_path_from_accounts.down.sql", size: 892, mode: os.FileMode(0644), modTime: time.Unix(1610470168, 0)}
info := bindataFileInfo{name: "1606224181_drop_photo_path_from_accounts.down.sql", size: 892, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x90, 0x24, 0x17, 0x7, 0x80, 0x93, 0x6f, 0x8d, 0x5d, 0xaa, 0x8c, 0x79, 0x15, 0x5d, 0xb3, 0x19, 0xd7, 0xd8, 0x39, 0xf9, 0x3a, 0x63, 0x8f, 0x81, 0x15, 0xb6, 0xd6, 0x9a, 0x37, 0xa8, 0x8e, 0x9b}}
return a, nil
}
@ -193,7 +193,7 @@ func _1606224181_drop_photo_path_from_accountsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1606224181_drop_photo_path_from_accounts.up.sql", size: 866, mode: os.FileMode(0644), modTime: time.Unix(1610470168, 0)}
info := bindataFileInfo{name: "1606224181_drop_photo_path_from_accounts.up.sql", size: 866, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xff, 0x4c, 0x97, 0xee, 0xef, 0x82, 0xb8, 0x6c, 0x71, 0xbb, 0x50, 0x7b, 0xe6, 0xd9, 0x22, 0x31, 0x7c, 0x1a, 0xfe, 0x91, 0x28, 0xf6, 0x6, 0x36, 0xe, 0xb1, 0xf1, 0xc8, 0x25, 0xac, 0x7e, 0xd6}}
return a, nil
}
@ -213,7 +213,7 @@ func _1648646095_image_clockDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1648646095_image_clock.down.sql", size: 939, mode: os.FileMode(0644), modTime: time.Unix(1653642660, 0)}
info := bindataFileInfo{name: "1648646095_image_clock.down.sql", size: 939, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x4d, 0xa8, 0x1f, 0xf, 0xe0, 0xd7, 0xc9, 0x68, 0x98, 0xd8, 0x37, 0xb8, 0xba, 0x9e, 0xb2, 0x19, 0xf3, 0xc4, 0x73, 0x80, 0x3, 0x17, 0x2a, 0x53, 0x68, 0x10, 0x13, 0x54, 0x99, 0xb1, 0xf5, 0x1c}}
return a, nil
}
@ -233,7 +233,7 @@ func _1648646095_image_clockUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1648646095_image_clock.up.sql", size: 69, mode: os.FileMode(0644), modTime: time.Unix(1653642660, 0)}
info := bindataFileInfo{name: "1648646095_image_clock.up.sql", size: 69, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x98, 0xa6, 0xa4, 0x4e, 0x4e, 0xca, 0x17, 0x56, 0xea, 0xfb, 0xf0, 0xa9, 0x81, 0x95, 0xe, 0x80, 0x52, 0x1, 0x47, 0x9b, 0xde, 0x14, 0xfa, 0x72, 0xc9, 0x62, 0x6f, 0x24, 0xa2, 0xc, 0x32, 0x50}}
return a, nil
}
@ -253,7 +253,7 @@ func _1649317600_add_color_hashUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1649317600_add_color_hash.up.sql", size: 201, mode: os.FileMode(0644), modTime: time.Unix(1653642660, 0)}
info := bindataFileInfo{name: "1649317600_add_color_hash.up.sql", size: 201, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x1a, 0xf, 0x37, 0x6d, 0xcf, 0x99, 0xc9, 0x2e, 0xdc, 0x70, 0x11, 0xb4, 0x36, 0x26, 0x4f, 0x39, 0xa8, 0x44, 0xf, 0xcb, 0xcc, 0x81, 0x74, 0x7a, 0x88, 0xaa, 0x54, 0x8c, 0xc4, 0xe, 0x56, 0x4f}}
return a, nil
}
@ -273,7 +273,7 @@ func docGo() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "doc.go", size: 74, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "doc.go", size: 74, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xde, 0x7c, 0x28, 0xcd, 0x47, 0xf2, 0xfa, 0x7c, 0x51, 0x2d, 0xd8, 0x38, 0xb, 0xb0, 0x34, 0x9d, 0x4c, 0x62, 0xa, 0x9e, 0x28, 0xc3, 0x31, 0x23, 0xd9, 0xbb, 0x89, 0x9f, 0xa0, 0x89, 0x1f, 0xe8}}
return a, nil
}

View File

@ -86,7 +86,7 @@ func _1619446565_postgres_make_anon_metrics_tableDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1619446565_postgres_make_anon_metrics_table.down.sql", size: 24, mode: os.FileMode(0644), modTime: time.Unix(1631628269, 0)}
info := bindataFileInfo{name: "1619446565_postgres_make_anon_metrics_table.down.sql", size: 24, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x75, 0xea, 0x1, 0x74, 0xe6, 0xa3, 0x11, 0xd0, 0x86, 0x87, 0x7e, 0x31, 0xb4, 0x1a, 0x27, 0x5d, 0xda, 0x77, 0xa3, 0xf5, 0x1d, 0x88, 0x79, 0xcf, 0xd5, 0x95, 0x75, 0xd, 0x47, 0xa1, 0x90, 0x5}}
return a, nil
}
@ -106,7 +106,7 @@ func _1619446565_postgres_make_anon_metrics_tableUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1619446565_postgres_make_anon_metrics_table.up.sql", size: 443, mode: os.FileMode(0644), modTime: time.Unix(1631628269, 0)}
info := bindataFileInfo{name: "1619446565_postgres_make_anon_metrics_table.up.sql", size: 443, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd5, 0xdc, 0x72, 0x28, 0x3c, 0xf6, 0x94, 0xb0, 0x47, 0x3d, 0xca, 0x55, 0x3d, 0xf7, 0x83, 0xb8, 0x7d, 0x2f, 0x1e, 0x98, 0xb7, 0xde, 0xa, 0xff, 0xa0, 0x52, 0x60, 0x83, 0x56, 0xc5, 0xd1, 0xa2}}
return a, nil
}
@ -126,7 +126,7 @@ func docGo() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "doc.go", size: 380, mode: os.FileMode(0644), modTime: time.Unix(1631628269, 0)}
info := bindataFileInfo{name: "doc.go", size: 380, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x49, 0x1, 0xd4, 0xd6, 0xc7, 0x44, 0xd4, 0xfd, 0x7b, 0x69, 0x1f, 0xe3, 0xe, 0x48, 0x14, 0x99, 0xf0, 0x8e, 0x43, 0xae, 0x54, 0x64, 0xa2, 0x8b, 0x82, 0x1c, 0x2b, 0xb, 0xec, 0xf5, 0xb3, 0xfc}}
return a, nil
}

View File

@ -10,6 +10,7 @@ import (
"github.com/status-im/status-go/protocol/common"
"github.com/status-im/status-go/protocol/identity/alias"
"github.com/status-im/status-go/protocol/identity/identicon"
"github.com/status-im/status-go/protocol/verification"
)
type ContactRequestState int
@ -66,6 +67,14 @@ func (c *Contact) CanonicalImage(profilePicturesVisibility settings.ProfilePictu
return c.Identicon
}
type VerificationStatus int
const (
VerificationStatusUNVERIFIED VerificationStatus = iota
VerificationStatusVERIFYING
VerificationStatusVERIFIED
)
// Contact has information about a "Contact"
type Contact struct {
// ID of the contact. It's a hex-encoded public key (prefixed with 0x).
@ -103,6 +112,29 @@ type Contact struct {
IsSyncing bool
Removed bool
VerificationStatus VerificationStatus `json:"verificationStatus"`
TrustStatus verification.TrustStatus `json:"trustStatus"`
}
func (c Contact) IsVerified() bool {
return c.VerificationStatus == VerificationStatusVERIFIED
}
func (c Contact) IsVerifying() bool {
return c.VerificationStatus == VerificationStatusVERIFYING
}
func (c Contact) IsUnverified() bool {
return c.VerificationStatus == VerificationStatusUNVERIFIED
}
func (c Contact) IsUntrustworthy() bool {
return c.TrustStatus == verification.TrustStatusUNTRUSTWORTHY
}
func (c Contact) IsTrusted() bool {
return c.TrustStatus == verification.TrustStatusTRUSTED
}
func (c Contact) PublicKey() (*ecdsa.PublicKey, error) {

View File

@ -103,7 +103,7 @@ func _1536754952_initial_schemaDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1536754952_initial_schema.down.sql", size: 83, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "1536754952_initial_schema.down.sql", size: 83, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x44, 0xcf, 0x76, 0x71, 0x1f, 0x5e, 0x9a, 0x43, 0xd8, 0xcd, 0xb8, 0xc3, 0x70, 0xc3, 0x7f, 0xfc, 0x90, 0xb4, 0x25, 0x1e, 0xf4, 0x66, 0x20, 0xb8, 0x33, 0x7e, 0xb0, 0x76, 0x1f, 0xc, 0xc0, 0x75}}
return a, nil
}
@ -123,7 +123,7 @@ func _1536754952_initial_schemaUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1536754952_initial_schema.up.sql", size: 962, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "1536754952_initial_schema.up.sql", size: 962, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xea, 0x90, 0x5a, 0x59, 0x3e, 0x3, 0xe2, 0x3c, 0x81, 0x42, 0xcd, 0x4c, 0x9a, 0xe8, 0xda, 0x93, 0x2b, 0x70, 0xa4, 0xd5, 0x29, 0x3e, 0xd5, 0xc9, 0x27, 0xb6, 0xb7, 0x65, 0xff, 0x0, 0xcb, 0xde}}
return a, nil
}
@ -143,7 +143,7 @@ func _1539249977_update_ratchet_infoDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1539249977_update_ratchet_info.down.sql", size: 311, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "1539249977_update_ratchet_info.down.sql", size: 311, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x1, 0xa4, 0xeb, 0xa0, 0xe6, 0xa0, 0xd4, 0x48, 0xbb, 0xad, 0x6f, 0x7d, 0x67, 0x8c, 0xbd, 0x25, 0xde, 0x1f, 0x73, 0x9a, 0xbb, 0xa8, 0xc9, 0x30, 0xb7, 0xa9, 0x7c, 0xaf, 0xb5, 0x1, 0x61, 0xdd}}
return a, nil
}
@ -163,7 +163,7 @@ func _1539249977_update_ratchet_infoUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1539249977_update_ratchet_info.up.sql", size: 368, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "1539249977_update_ratchet_info.up.sql", size: 368, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xc, 0x8e, 0xbf, 0x6f, 0xa, 0xc0, 0xe1, 0x3c, 0x42, 0x28, 0x88, 0x1d, 0xdb, 0xba, 0x1c, 0x83, 0xec, 0xba, 0xd3, 0x5f, 0x5c, 0x77, 0x5e, 0xa7, 0x46, 0x36, 0xec, 0x69, 0xa, 0x4b, 0x17, 0x79}}
return a, nil
}
@ -183,7 +183,7 @@ func _1540715431_add_versionDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1540715431_add_version.down.sql", size: 127, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "1540715431_add_version.down.sql", size: 127, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xf5, 0x9, 0x4, 0xe3, 0x76, 0x2e, 0xb8, 0x9, 0x23, 0xf0, 0x70, 0x93, 0xc4, 0x50, 0xe, 0x9d, 0x84, 0x22, 0x8c, 0x94, 0xd3, 0x24, 0x9, 0x9a, 0xc1, 0xa1, 0x48, 0x45, 0xfd, 0x40, 0x6e, 0xe6}}
return a, nil
}
@ -203,7 +203,7 @@ func _1540715431_add_versionUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1540715431_add_version.up.sql", size: 265, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "1540715431_add_version.up.sql", size: 265, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xc7, 0x4c, 0x36, 0x96, 0xdf, 0x16, 0x10, 0xa6, 0x27, 0x1a, 0x79, 0x8b, 0x42, 0x83, 0x23, 0xc, 0x7e, 0xb6, 0x3d, 0x2, 0xda, 0xa4, 0xb4, 0xd, 0x27, 0x55, 0xba, 0xdc, 0xb2, 0x88, 0x8f, 0xa6}}
return a, nil
}
@ -223,7 +223,7 @@ func _1541164797_add_installationsDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1541164797_add_installations.down.sql", size: 26, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "1541164797_add_installations.down.sql", size: 26, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xf5, 0xfd, 0xe6, 0xd8, 0xca, 0x3b, 0x38, 0x18, 0xee, 0x0, 0x5f, 0x36, 0x9e, 0x1e, 0xd, 0x19, 0x3e, 0xb4, 0x73, 0x53, 0xe9, 0xa5, 0xac, 0xdd, 0xa1, 0x2f, 0xc7, 0x6c, 0xa8, 0xd9, 0xa, 0x88}}
return a, nil
}
@ -243,7 +243,7 @@ func _1541164797_add_installationsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1541164797_add_installations.up.sql", size: 216, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "1541164797_add_installations.up.sql", size: 216, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x2d, 0x18, 0x26, 0xb8, 0x88, 0x47, 0xdb, 0x83, 0xcc, 0xb6, 0x9d, 0x1c, 0x1, 0xae, 0x2f, 0xde, 0x97, 0x82, 0x3, 0x30, 0xa8, 0x63, 0xa1, 0x78, 0x4b, 0xa5, 0x9, 0x8, 0x75, 0xa2, 0x57, 0x81}}
return a, nil
}
@ -263,7 +263,7 @@ func _1558084410_add_secretDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1558084410_add_secret.down.sql", size: 56, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "1558084410_add_secret.down.sql", size: 56, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x49, 0xb, 0x65, 0xdf, 0x59, 0xbf, 0xe9, 0x5, 0x5b, 0x6f, 0xd5, 0x3a, 0xb7, 0x57, 0xe8, 0x78, 0x38, 0x73, 0x53, 0x57, 0xf7, 0x24, 0x4, 0xe4, 0xa2, 0x49, 0x22, 0xa2, 0xc6, 0xfd, 0x80, 0xa4}}
return a, nil
}
@ -283,7 +283,7 @@ func _1558084410_add_secretUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1558084410_add_secret.up.sql", size: 301, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "1558084410_add_secret.up.sql", size: 301, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xf5, 0x32, 0x36, 0x8e, 0x47, 0xb0, 0x8f, 0xc1, 0xc6, 0xf7, 0xc6, 0x9f, 0x2d, 0x44, 0x75, 0x2b, 0x26, 0xec, 0x6, 0xa0, 0x7b, 0xa5, 0xbd, 0xc8, 0x76, 0x8a, 0x82, 0x68, 0x2, 0x42, 0xb5, 0xf4}}
return a, nil
}
@ -303,7 +303,7 @@ func _1558588866_add_versionDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1558588866_add_version.down.sql", size: 47, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "1558588866_add_version.down.sql", size: 47, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xde, 0x52, 0x34, 0x3c, 0x46, 0x4a, 0xf0, 0x72, 0x47, 0x6f, 0x49, 0x5c, 0xc7, 0xf9, 0x32, 0xce, 0xc4, 0x3d, 0xfd, 0x61, 0xa1, 0x8b, 0x8f, 0xf2, 0x31, 0x34, 0xde, 0x15, 0x49, 0xa6, 0xde, 0xb9}}
return a, nil
}
@ -323,7 +323,7 @@ func _1558588866_add_versionUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1558588866_add_version.up.sql", size: 57, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "1558588866_add_version.up.sql", size: 57, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x2a, 0xea, 0x64, 0x39, 0x61, 0x20, 0x83, 0x83, 0xb, 0x2e, 0x79, 0x64, 0xb, 0x53, 0xfa, 0xfe, 0xc6, 0xf7, 0x67, 0x42, 0xd3, 0x4f, 0xdc, 0x7e, 0x30, 0x32, 0xe8, 0x14, 0x41, 0xe9, 0xe7, 0x3b}}
return a, nil
}
@ -343,7 +343,7 @@ func _1559627659_add_contact_codeDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1559627659_add_contact_code.down.sql", size: 32, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "1559627659_add_contact_code.down.sql", size: 32, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x5d, 0x64, 0x6d, 0xce, 0x24, 0x42, 0x20, 0x8d, 0x4f, 0x37, 0xaa, 0x9d, 0xc, 0x57, 0x98, 0xc1, 0xd1, 0x1a, 0x34, 0xcd, 0x9f, 0x8f, 0x34, 0x86, 0xb3, 0xd3, 0xdc, 0xf1, 0x7d, 0xe5, 0x1b, 0x6e}}
return a, nil
}
@ -363,7 +363,7 @@ func _1559627659_add_contact_codeUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1559627659_add_contact_code.up.sql", size: 198, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "1559627659_add_contact_code.up.sql", size: 198, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x16, 0xf6, 0xc2, 0x62, 0x9c, 0xd2, 0xc9, 0x1e, 0xd8, 0xea, 0xaa, 0xea, 0x95, 0x8f, 0x89, 0x6a, 0x85, 0x5d, 0x9d, 0x99, 0x78, 0x3c, 0x90, 0x66, 0x99, 0x3e, 0x4b, 0x19, 0x62, 0xfb, 0x31, 0x4d}}
return a, nil
}
@ -383,7 +383,7 @@ func _1561368210_add_installation_metadataDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1561368210_add_installation_metadata.down.sql", size: 35, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "1561368210_add_installation_metadata.down.sql", size: 35, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xa8, 0xde, 0x3f, 0xd2, 0x4a, 0x50, 0x98, 0x56, 0xe3, 0xc0, 0xcd, 0x9d, 0xb0, 0x34, 0x3b, 0xe5, 0x62, 0x18, 0xb5, 0x20, 0xc9, 0x3e, 0xdc, 0x6a, 0x40, 0x36, 0x66, 0xea, 0x51, 0x8c, 0x71, 0xf5}}
return a, nil
}
@ -403,7 +403,7 @@ func _1561368210_add_installation_metadataUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1561368210_add_installation_metadata.up.sql", size: 267, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "1561368210_add_installation_metadata.up.sql", size: 267, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xb4, 0x71, 0x8f, 0x29, 0xb1, 0xaa, 0xd6, 0xd1, 0x8c, 0x17, 0xef, 0x6c, 0xd5, 0x80, 0xb8, 0x2c, 0xc3, 0xfe, 0xec, 0x24, 0x4d, 0xc8, 0x25, 0xd3, 0xb4, 0xcd, 0xa9, 0xac, 0x63, 0x61, 0xb2, 0x9c}}
return a, nil
}
@ -423,7 +423,7 @@ func _1632236298_add_communitiesDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1632236298_add_communities.down.sql", size: 151, mode: os.FileMode(0644), modTime: time.Unix(1638351408, 0)}
info := bindataFileInfo{name: "1632236298_add_communities.down.sql", size: 151, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x26, 0xe5, 0x47, 0xd1, 0xe5, 0xec, 0x5b, 0x3e, 0xdc, 0x22, 0xf4, 0x27, 0xee, 0x70, 0xf3, 0x9, 0x4f, 0xd2, 0x9f, 0x92, 0xf, 0x5a, 0x18, 0x11, 0xb7, 0x40, 0xab, 0xf1, 0x98, 0x72, 0xd6, 0x60}}
return a, nil
}
@ -443,7 +443,7 @@ func _1632236298_add_communitiesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1632236298_add_communities.up.sql", size: 584, mode: os.FileMode(0644), modTime: time.Unix(1638351408, 0)}
info := bindataFileInfo{name: "1632236298_add_communities.up.sql", size: 584, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x8f, 0xe0, 0x1, 0x6e, 0x84, 0xc, 0x35, 0xe4, 0x5a, 0xf, 0xbe, 0xcb, 0xf7, 0xd2, 0xa8, 0x25, 0xf5, 0xdb, 0x7, 0xcb, 0xa3, 0xe6, 0xf4, 0xc4, 0x1b, 0xa5, 0xec, 0x32, 0x1e, 0x1e, 0x48, 0x60}}
return a, nil
}
@ -463,7 +463,7 @@ func _1636536507_add_index_bundlesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1636536507_add_index_bundles.up.sql", size: 347, mode: os.FileMode(0644), modTime: time.Unix(1637329330, 0)}
info := bindataFileInfo{name: "1636536507_add_index_bundles.up.sql", size: 347, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xf1, 0xb9, 0x3c, 0x16, 0xfc, 0xfb, 0xb2, 0xb4, 0x3b, 0xfe, 0xdc, 0xf5, 0x9c, 0x42, 0xa0, 0xa0, 0xd4, 0xd, 0x5b, 0x97, 0x10, 0x80, 0x95, 0xe, 0x13, 0xc1, 0x18, 0x8, 0xee, 0xf, 0x99, 0xee}}
return a, nil
}
@ -483,7 +483,7 @@ func docGo() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "doc.go", size: 377, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "doc.go", size: 377, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xef, 0xaf, 0xdf, 0xcf, 0x65, 0xae, 0x19, 0xfc, 0x9d, 0x29, 0xc1, 0x91, 0xaf, 0xb5, 0xd5, 0xb1, 0x56, 0xf3, 0xee, 0xa8, 0xba, 0x13, 0x65, 0xdb, 0xab, 0xcf, 0x4e, 0xac, 0x92, 0xe9, 0x60, 0xf1}}
return a, nil
}

View File

@ -15,11 +15,14 @@ import (
"sync"
"time"
"github.com/davecgh/go-spew/spew"
"github.com/golang/protobuf/proto"
"github.com/pkg/errors"
"go.uber.org/zap"
"github.com/ethereum/go-ethereum/common/hexutil"
"github.com/davecgh/go-spew/spew"
"github.com/golang/protobuf/proto"
gethcommon "github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/event"
"github.com/ethereum/go-ethereum/p2p"
@ -51,6 +54,7 @@ import (
"github.com/status-im/status-go/protocol/sqlite"
"github.com/status-im/status-go/protocol/transport"
v1protocol "github.com/status-im/status-go/protocol/v1"
"github.com/status-im/status-go/protocol/verification"
"github.com/status-im/status-go/server"
"github.com/status-im/status-go/services/browsers"
"github.com/status-im/status-go/services/ext/mailservers"
@ -134,6 +138,8 @@ type Messenger struct {
telemetryClient *telemetry.Client
contractMaker *contracts.ContractMaker
downloadHistoryArchiveTasksWaitGroup sync.WaitGroup
verificationDatabase *verification.Persistence
// TODO(samyoul) Determine if/how the remaining usage of this mutex can be removed
mutex sync.Mutex
mailPeersMutex sync.Mutex
@ -425,6 +431,7 @@ func NewMessenger(
multiAccounts: c.multiAccount,
settings: settings,
peerStore: peerStore,
verificationDatabase: verification.NewPersistence(database),
mailservers: mailservers,
mailserverCycle: mailserverCycle{
peers: make(map[string]peerStatus),
@ -2748,6 +2755,26 @@ func (m *Messenger) SyncDevices(ctx context.Context, ensName, photoPath string)
}
}
trustedUsers, err := m.verificationDatabase.GetAllTrustStatus()
if err != nil {
return err
}
for id, ts := range trustedUsers {
if err = m.SyncTrustedUser(ctx, id, ts); err != nil {
return err
}
}
verificationRequests, err := m.verificationDatabase.GetVerificationRequests()
if err != nil {
return err
}
for i := range verificationRequests {
if err = m.SyncVerificationRequest(ctx, &verificationRequests[i]); err != nil {
return err
}
}
err = m.syncSettings()
if err != nil {
return err
@ -3036,6 +3063,8 @@ func (m *Messenger) syncContact(ctx context.Context, contact *Contact) error {
Blocked: contact.Blocked,
Muted: muted,
Removed: contact.Removed,
VerificationStatus: int64(contact.VerificationStatus),
TrustStatus: int64(contact.TrustStatus),
}
encodedMessage, err := proto.Marshal(syncMessage)
@ -3130,6 +3159,71 @@ func (m *Messenger) SyncBookmark(ctx context.Context, bookmark *browsers.Bookmar
return m.saveChat(chat)
}
func (m *Messenger) SyncTrustedUser(ctx context.Context, publicKey string, ts verification.TrustStatus) error {
if !m.hasPairedDevices() {
return nil
}
clock, chat := m.getLastClockWithRelatedChat()
syncMessage := &protobuf.SyncTrustedUser{
Clock: clock,
Id: publicKey,
Status: protobuf.SyncTrustedUser_TrustStatus(ts),
}
encodedMessage, err := proto.Marshal(syncMessage)
if err != nil {
return err
}
_, err = m.dispatchMessage(ctx, common.RawMessage{
LocalChatID: chat.ID,
Payload: encodedMessage,
MessageType: protobuf.ApplicationMetadataMessage_SYNC_TRUSTED_USER,
ResendAutomatically: true,
})
if err != nil {
return err
}
chat.LastClockValue = clock
return m.saveChat(chat)
}
func (m *Messenger) SyncVerificationRequest(ctx context.Context, vr *verification.Request) error {
if !m.hasPairedDevices() {
return nil
}
clock, chat := m.getLastClockWithRelatedChat()
syncMessage := &protobuf.SyncVerificationRequest{
Clock: clock,
From: vr.From,
To: vr.To,
Challenge: vr.Challenge,
Response: vr.Response,
RequestedAt: vr.RequestedAt,
RepliedAt: vr.RepliedAt,
VerificationStatus: protobuf.SyncVerificationRequest_VerificationStatus(vr.RequestStatus),
}
encodedMessage, err := proto.Marshal(syncMessage)
if err != nil {
return err
}
_, err = m.dispatchMessage(ctx, common.RawMessage{
LocalChatID: chat.ID,
Payload: encodedMessage,
MessageType: protobuf.ApplicationMetadataMessage_SYNC_VERIFICATION_REQUEST,
ResendAutomatically: true,
})
if err != nil {
return err
}
chat.LastClockValue = clock
return m.saveChat(chat)
}
// RetrieveAll retrieves messages from all filters, processes them and returns a
// MessengerResponse to the client
func (m *Messenger) RetrieveAll() (*MessengerResponse, error) {
@ -3181,8 +3275,10 @@ type ReceivedMessageState struct {
// Response to the client
Response *MessengerResponse
// Timesource is a time source for clock values/timestamps.
Timesource common.TimeSource
AllBookmarks map[string]*browsers.Bookmark
Timesource common.TimeSource
AllBookmarks map[string]*browsers.Bookmark
AllVerificationRequests []*verification.Request
AllTrustStatus map[string]verification.TrustStatus
}
func (m *Messenger) markDeliveredMessages(acks [][]byte) {
@ -3300,6 +3396,7 @@ func (m *Messenger) buildMessageState() *ReceivedMessageState {
Response: &MessengerResponse{},
Timesource: m.getTimesource(),
AllBookmarks: make(map[string]*browsers.Bookmark),
AllTrustStatus: make(map[string]verification.TrustStatus),
}
}
@ -3563,6 +3660,37 @@ func (m *Messenger) handleRetrievedMessages(chatWithMessages map[transport.Filte
allMessagesProcessed = false
continue
}
case protobuf.SyncTrustedUser:
if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
logger.Warn("not coming from us, ignoring")
continue
}
p := msg.ParsedMessage.Interface().(protobuf.SyncTrustedUser)
logger.Debug("Handling SyncTrustedUser", zap.Any("message", p))
err = m.handleSyncTrustedUser(messageState, p)
if err != nil {
logger.Warn("failed to handle SyncTrustedUser", zap.Error(err))
allMessagesProcessed = false
continue
}
case protobuf.SyncVerificationRequest:
if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
logger.Warn("not coming from us, ignoring")
continue
}
p := msg.ParsedMessage.Interface().(protobuf.SyncVerificationRequest)
logger.Debug("Handling SyncVerificationRequest", zap.Any("message", p))
err = m.handleSyncVerificationRequest(messageState, p)
if err != nil {
logger.Warn("failed to handle SyncClearHistory", zap.Error(err))
allMessagesProcessed = false
continue
}
case protobuf.Backup:
if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
logger.Warn("not coming from us, ignoring")
@ -3930,6 +4058,42 @@ func (m *Messenger) handleRetrievedMessages(chatWithMessages map[transport.Filte
}
}
case protobuf.RequestContactVerification:
logger.Debug("Handling RequestContactVerification")
err = m.HandleRequestContactVerification(messageState, msg.ParsedMessage.Interface().(protobuf.RequestContactVerification))
if err != nil {
logger.Warn("failed to handle RequestContactVerification", zap.Error(err))
allMessagesProcessed = false
continue
}
case protobuf.AcceptContactVerification:
logger.Debug("Handling AcceptContactVerification")
err = m.HandleAcceptContactVerification(messageState, msg.ParsedMessage.Interface().(protobuf.AcceptContactVerification))
if err != nil {
logger.Warn("failed to handle AcceptContactVerification", zap.Error(err))
allMessagesProcessed = false
continue
}
case protobuf.DeclineContactVerification:
logger.Debug("Handling DeclineContactVerification")
err = m.HandleDeclineContactVerification(messageState, msg.ParsedMessage.Interface().(protobuf.DeclineContactVerification))
if err != nil {
logger.Warn("failed to handle DeclineContactVerification", zap.Error(err))
allMessagesProcessed = false
continue
}
case protobuf.ContactVerificationTrusted:
logger.Debug("Handling ContactVerificationTrusted")
err = m.HandleContactVerificationTrusted(messageState, msg.ParsedMessage.Interface().(protobuf.ContactVerificationTrusted))
if err != nil {
logger.Warn("failed to handle ContactVerificationTrusted", zap.Error(err))
allMessagesProcessed = false
continue
}
case protobuf.CommunityInvitation:
logger.Debug("Handling CommunityInvitation")
invitation := msg.ParsedMessage.Interface().(protobuf.CommunityInvitation)
@ -4199,6 +4363,16 @@ func (m *Messenger) handleRetrievedMessages(chatWithMessages map[transport.Filte
messageState.Response.AddBookmarks(bookmarks)
}
if len(messageState.AllVerificationRequests) > 0 {
for _, vr := range messageState.AllVerificationRequests {
messageState.Response.AddVerificationRequest(vr)
}
}
if len(messageState.AllTrustStatus) > 0 {
messageState.Response.AddTrustStatuses(messageState.AllTrustStatus)
}
return messageState.Response, nil
}
@ -5723,3 +5897,79 @@ func (m *Messenger) handleSyncClearHistory(state *ReceivedMessageState, message
})
return nil
}
func (m *Messenger) handleSyncTrustedUser(state *ReceivedMessageState, message protobuf.SyncTrustedUser) error {
updated, err := m.verificationDatabase.UpsertTrustStatus(message.Id, verification.TrustStatus(message.Status), message.Clock)
if err != nil {
return err
}
if updated {
state.AllTrustStatus[message.Id] = verification.TrustStatus(message.Status)
contact, ok := m.allContacts.Load(message.Id)
if !ok {
m.logger.Info("contact not found")
return nil
}
contact.TrustStatus = verification.TrustStatus(message.Status)
m.allContacts.Store(contact.ID, contact)
state.ModifiedContacts.Store(contact.ID, true)
}
return nil
}
func ToVerificationRequest(message protobuf.SyncVerificationRequest) *verification.Request {
return &verification.Request{
From: message.From,
To: message.To,
Challenge: message.Challenge,
Response: message.Response,
RequestedAt: message.RequestedAt,
RepliedAt: message.RepliedAt,
RequestStatus: verification.RequestStatus(message.VerificationStatus),
}
}
func (m *Messenger) handleSyncVerificationRequest(state *ReceivedMessageState, message protobuf.SyncVerificationRequest) error {
verificationRequest := ToVerificationRequest(message)
shouldSync, err := m.verificationDatabase.UpsertVerificationRequest(verificationRequest)
if err != nil {
return err
}
myPubKey := hexutil.Encode(crypto.FromECDSAPub(&m.identity.PublicKey))
if !shouldSync {
return nil
}
state.AllVerificationRequests = append(state.AllVerificationRequests, verificationRequest)
if message.From == myPubKey { // Verification requests we sent
contact, ok := m.allContacts.Load(message.To)
if !ok {
m.logger.Info("contact not found")
return nil
}
contact.VerificationStatus = VerificationStatus(message.VerificationStatus)
if err := m.persistence.SaveContact(contact, nil); err != nil {
return err
}
m.allContacts.Store(contact.ID, contact)
state.ModifiedContacts.Store(contact.ID, true)
// TODO: create activity center notif
}
// else { // Verification requests we received
// // TODO: activity center notif
//}
return nil
}

View File

@ -209,5 +209,7 @@ func (m *Messenger) syncBackupContact(ctx context.Context, contact *Contact) *pr
Muted: muted,
HasAddedUs: contact.HasAddedUs,
Removed: contact.Removed,
VerificationStatus: int64(contact.VerificationStatus),
TrustStatus: int64(contact.TrustStatus),
}
}

View File

@ -0,0 +1,737 @@
package protocol
import (
"context"
"strings"
"github.com/pkg/errors"
"go.uber.org/zap"
"github.com/ethereum/go-ethereum/common/hexutil"
"github.com/golang/protobuf/proto"
"github.com/status-im/status-go/eth-node/crypto"
"github.com/status-im/status-go/protocol/common"
"github.com/status-im/status-go/protocol/protobuf"
"github.com/status-im/status-go/protocol/verification"
)
const minContactVerificationMessageLen = 1
const maxContactVerificationMessageLen = 280
func (m *Messenger) SendContactVerificationRequest(ctx context.Context, contactID string, challenge string) error {
if len(challenge) < minContactVerificationMessageLen || len(challenge) > maxContactVerificationMessageLen {
return errors.New("invalid verification request challenge length")
}
contact, ok := m.allContacts.Load(contactID)
if !ok || !contact.Added || !contact.HasAddedUs {
return errors.New("must be a mutual contact")
}
verifRequest, err := m.verificationDatabase.GetVerificationRequestFrom(contactID)
if err != nil {
return err
}
if verifRequest != nil && verifRequest.RequestStatus == verification.RequestStatusACCEPTED {
return errors.New("verification request already accepted")
}
if verifRequest != nil && verifRequest.RequestStatus == verification.RequestStatusPENDING {
return errors.New("verification request already sent")
}
if verifRequest == nil {
verifRequest = &verification.Request{
From: common.PubkeyToHex(&m.identity.PublicKey),
To: contact.ID,
Challenge: challenge,
RequestStatus: verification.RequestStatusPENDING,
RepliedAt: 0,
}
}
chat, ok := m.allChats.Load(contactID)
if !ok {
publicKey, err := contact.PublicKey()
if err != nil {
return err
}
chat = OneToOneFromPublicKey(publicKey, m.getTimesource())
// We don't want to show the chat to the user
chat.Active = false
}
m.allChats.Store(chat.ID, chat)
clock, _ := chat.NextClockAndTimestamp(m.getTimesource())
request := &protobuf.RequestContactVerification{
Clock: clock,
Challenge: challenge,
}
encodedMessage, err := proto.Marshal(request)
if err != nil {
return err
}
_, err = m.dispatchMessage(ctx, common.RawMessage{
LocalChatID: chat.ID,
Payload: encodedMessage,
MessageType: protobuf.ApplicationMetadataMessage_REQUEST_CONTACT_VERIFICATION,
ResendAutomatically: true,
})
if err != nil {
return err
}
contact.VerificationStatus = VerificationStatusVERIFYING
contact.LastUpdatedLocally = m.getTimesource().GetCurrentTime()
err = m.persistence.SaveContact(contact, nil)
if err != nil {
return err
}
// We sync the contact with the other devices
err = m.syncContact(context.Background(), contact)
if err != nil {
return err
}
m.allContacts.Store(contact.ID, contact)
verifRequest.RequestedAt = clock
err = m.verificationDatabase.SaveVerificationRequest(verifRequest)
if err != nil {
return err
}
return m.SyncVerificationRequest(context.Background(), verifRequest)
}
func (m *Messenger) GetVerificationRequestSentTo(ctx context.Context, contactID string) (*verification.Request, error) {
_, ok := m.allContacts.Load(contactID)
if !ok {
return nil, errors.New("contact not found")
}
return m.verificationDatabase.GetVerificationRequestSentTo(contactID)
}
func (m *Messenger) GetVerificationRequestFrom(ctx context.Context, contactID string) (*verification.Request, error) {
_, ok := m.allContacts.Load(contactID)
if !ok {
return nil, errors.New("contact not found")
}
return m.verificationDatabase.GetVerificationRequestFrom(contactID)
}
func (m *Messenger) GetReceivedVerificationRequests(ctx context.Context) ([]*verification.Request, error) {
myPubKey := hexutil.Encode(crypto.FromECDSAPub(&m.identity.PublicKey))
return m.verificationDatabase.GetReceivedVerificationRequests(myPubKey)
}
func (m *Messenger) CancelVerificationRequest(ctx context.Context, contactID string) error {
contact, ok := m.allContacts.Load(contactID)
if !ok || !contact.Added || !contact.HasAddedUs {
return errors.New("must be a mutual contact")
}
verifRequest, err := m.verificationDatabase.GetVerificationRequestSentTo(contactID)
if err != nil {
return err
}
if verifRequest == nil {
return errors.New("no contact verification found")
}
if verifRequest.RequestStatus != verification.RequestStatusPENDING {
return errors.New("can't cancel a request already verified")
}
verifRequest.RequestStatus = verification.RequestStatusCANCELED
err = m.verificationDatabase.SaveVerificationRequest(verifRequest)
if err != nil {
return err
}
contact.VerificationStatus = VerificationStatusUNVERIFIED
contact.LastUpdatedLocally = m.getTimesource().GetCurrentTime()
err = m.persistence.SaveContact(contact, nil)
if err != nil {
return err
}
// We sync the contact with the other devices
err = m.syncContact(context.Background(), contact)
if err != nil {
return err
}
err = m.SyncVerificationRequest(context.Background(), verifRequest)
if err != nil {
return err
}
m.allContacts.Store(contact.ID, contact)
return nil
}
func (m *Messenger) AcceptContactVerificationRequest(ctx context.Context, contactID string, response string) error {
contact, ok := m.allContacts.Load(contactID)
if !ok || !contact.Added || !contact.HasAddedUs {
return errors.New("must be a mutual contact")
}
verifRequest, err := m.verificationDatabase.GetVerificationRequestFrom(contactID)
if err != nil {
return err
}
if verifRequest == nil {
return errors.New("no contact verification found")
}
chat, ok := m.allChats.Load(contactID)
if !ok {
publicKey, err := contact.PublicKey()
if err != nil {
return err
}
chat = OneToOneFromPublicKey(publicKey, m.getTimesource())
// We don't want to show the chat to the user
chat.Active = false
}
m.allChats.Store(chat.ID, chat)
clock, _ := chat.NextClockAndTimestamp(m.getTimesource())
verifRequest.RequestStatus = verification.RequestStatusACCEPTED
verifRequest.RepliedAt = clock
err = m.verificationDatabase.SaveVerificationRequest(verifRequest)
if err != nil {
return err
}
err = m.SyncVerificationRequest(context.Background(), verifRequest)
if err != nil {
return err
}
request := &protobuf.AcceptContactVerification{
Clock: clock,
Response: response,
}
encodedMessage, err := proto.Marshal(request)
if err != nil {
return err
}
_, err = m.dispatchMessage(ctx, common.RawMessage{
LocalChatID: chat.ID,
Payload: encodedMessage,
MessageType: protobuf.ApplicationMetadataMessage_ACCEPT_CONTACT_VERIFICATION,
ResendAutomatically: true,
})
if err != nil {
return err
}
return m.verificationDatabase.AcceptContactVerificationRequest(contactID, response)
}
func (m *Messenger) VerifiedTrusted(ctx context.Context, contactID string) error {
contact, ok := m.allContacts.Load(contactID)
if !ok || !contact.Added || !contact.HasAddedUs {
return errors.New("must be a mutual contact")
}
err := m.verificationDatabase.SetTrustStatus(contactID, verification.TrustStatusTRUSTED, m.getTimesource().GetCurrentTime())
if err != nil {
return err
}
err = m.SyncTrustedUser(context.Background(), contactID, verification.TrustStatusTRUSTED)
if err != nil {
return err
}
contact.VerificationStatus = VerificationStatusVERIFIED
contact.LastUpdatedLocally = m.getTimesource().GetCurrentTime()
err = m.persistence.SaveContact(contact, nil)
if err != nil {
return err
}
chat, ok := m.allChats.Load(contactID)
clock, _ := chat.NextClockAndTimestamp(m.getTimesource())
if !ok {
publicKey, err := contact.PublicKey()
if err != nil {
return err
}
chat = OneToOneFromPublicKey(publicKey, m.getTimesource())
// We don't want to show the chat to the user
chat.Active = false
}
request := &protobuf.ContactVerificationTrusted{
Clock: clock,
}
encodedMessage, err := proto.Marshal(request)
if err != nil {
return err
}
_, err = m.dispatchMessage(ctx, common.RawMessage{
LocalChatID: chat.ID,
Payload: encodedMessage,
MessageType: protobuf.ApplicationMetadataMessage_CONTACT_VERIFICATION_TRUSTED,
ResendAutomatically: true,
})
if err != nil {
return err
}
verifRequest, err := m.verificationDatabase.GetVerificationRequestSentTo(contactID)
if err != nil {
return err
}
if verifRequest == nil {
return errors.New("no contact verification found")
}
verifRequest.RequestStatus = verification.RequestStatusTRUSTED
verifRequest.RepliedAt = clock
err = m.verificationDatabase.SaveVerificationRequest(verifRequest)
if err != nil {
return err
}
err = m.SyncVerificationRequest(context.Background(), verifRequest)
if err != nil {
return err
}
// We sync the contact with the other devices
err = m.syncContact(context.Background(), contact)
if err != nil {
return err
}
return nil
}
func (m *Messenger) VerifiedUntrustworthy(ctx context.Context, contactID string) error {
contact, ok := m.allContacts.Load(contactID)
if !ok || !contact.Added || !contact.HasAddedUs {
return errors.New("must be a mutual contact")
}
err := m.verificationDatabase.SetTrustStatus(contactID, verification.TrustStatusUNTRUSTWORTHY, m.getTimesource().GetCurrentTime())
if err != nil {
return err
}
err = m.SyncTrustedUser(context.Background(), contactID, verification.TrustStatusUNTRUSTWORTHY)
if err != nil {
return err
}
contact.VerificationStatus = VerificationStatusVERIFIED
contact.LastUpdatedLocally = m.getTimesource().GetCurrentTime()
err = m.persistence.SaveContact(contact, nil)
if err != nil {
return err
}
// We sync the contact with the other devices
err = m.syncContact(context.Background(), contact)
if err != nil {
return err
}
return nil
}
func (m *Messenger) DeclineContactVerificationRequest(ctx context.Context, contactID string) error {
contact, ok := m.allContacts.Load(contactID)
if !ok || !contact.Added || !contact.HasAddedUs {
return errors.New("must be a mutual contact")
}
verifRequest, err := m.verificationDatabase.GetVerificationRequestFrom(contactID)
if err != nil {
return err
}
if verifRequest == nil {
return errors.New("no contact verification found")
}
chat, ok := m.allChats.Load(contactID)
if !ok {
publicKey, err := contact.PublicKey()
if err != nil {
return err
}
chat = OneToOneFromPublicKey(publicKey, m.getTimesource())
// We don't want to show the chat to the user
chat.Active = false
}
m.allChats.Store(chat.ID, chat)
clock, _ := chat.NextClockAndTimestamp(m.getTimesource())
verifRequest.RequestStatus = verification.RequestStatusDECLINED
verifRequest.RepliedAt = clock
err = m.verificationDatabase.SaveVerificationRequest(verifRequest)
if err != nil {
return err
}
err = m.SyncVerificationRequest(context.Background(), verifRequest)
if err != nil {
return err
}
request := &protobuf.DeclineContactVerification{
Clock: clock,
}
encodedMessage, err := proto.Marshal(request)
if err != nil {
return err
}
_, err = m.dispatchMessage(ctx, common.RawMessage{
LocalChatID: chat.ID,
Payload: encodedMessage,
MessageType: protobuf.ApplicationMetadataMessage_DECLINE_CONTACT_VERIFICATION,
ResendAutomatically: true,
})
if err != nil {
return err
}
return m.verificationDatabase.DeclineContactVerificationRequest(contactID)
}
func (m *Messenger) MarkAsTrusted(ctx context.Context, contactID string) error {
err := m.verificationDatabase.SetTrustStatus(contactID, verification.TrustStatusTRUSTED, m.getTimesource().GetCurrentTime())
if err != nil {
return err
}
return m.SyncTrustedUser(ctx, contactID, verification.TrustStatusTRUSTED)
}
func (m *Messenger) MarkAsUntrustworthy(ctx context.Context, contactID string) error {
err := m.verificationDatabase.SetTrustStatus(contactID, verification.TrustStatusUNTRUSTWORTHY, m.getTimesource().GetCurrentTime())
if err != nil {
return err
}
return m.SyncTrustedUser(ctx, contactID, verification.TrustStatusUNTRUSTWORTHY)
}
func (m *Messenger) RemoveTrustStatus(ctx context.Context, contactID string) error {
err := m.verificationDatabase.SetTrustStatus(contactID, verification.TrustStatusUNKNOWN, m.getTimesource().GetCurrentTime())
if err != nil {
return err
}
return m.SyncTrustedUser(ctx, contactID, verification.TrustStatusUNKNOWN)
}
func (m *Messenger) GetTrustStatus(contactID string) (verification.TrustStatus, error) {
return m.verificationDatabase.GetTrustStatus(contactID)
}
func ValidateContactVerificationRequest(request protobuf.RequestContactVerification) error {
challengeLen := len(strings.TrimSpace(request.Challenge))
if challengeLen < minContactVerificationMessageLen || challengeLen > maxContactVerificationMessageLen {
return errors.New("invalid verification request challenge length")
}
return nil
}
func (m *Messenger) HandleRequestContactVerification(state *ReceivedMessageState, request protobuf.RequestContactVerification) error {
if err := ValidateContactVerificationRequest(request); err != nil {
m.logger.Debug("Invalid verification request", zap.Error(err))
return err
}
if common.IsPubKeyEqual(state.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
return nil // Is ours, do nothing
}
myPubKey := hexutil.Encode(crypto.FromECDSAPub(&m.identity.PublicKey))
contactID := hexutil.Encode(crypto.FromECDSAPub(state.CurrentMessageState.PublicKey))
contact := state.CurrentMessageState.Contact
if !contact.Added || !contact.HasAddedUs {
m.logger.Debug("Received a verification request for a non added mutual contact", zap.String("contactID", contactID))
return errors.New("must be a mutual contact")
}
persistedVR, err := m.verificationDatabase.GetVerificationRequestFrom(contactID)
if err != nil {
m.logger.Debug("Error obtaining verification request", zap.Error(err))
return err
}
if persistedVR != nil && persistedVR.RequestedAt > request.Clock {
return nil // older message, ignore it
}
if persistedVR == nil {
// This is a new verification request, and we have not received its acceptance/decline before
persistedVR = &verification.Request{}
persistedVR.From = contactID
persistedVR.To = myPubKey
persistedVR.RequestStatus = verification.RequestStatusPENDING
}
persistedVR.Challenge = request.Challenge
persistedVR.RequestedAt = request.Clock
err = m.verificationDatabase.SaveVerificationRequest(persistedVR)
if err != nil {
m.logger.Debug("Error storing verification request", zap.Error(err))
return err
}
err = m.SyncVerificationRequest(context.Background(), persistedVR)
if err != nil {
return err
}
state.AllVerificationRequests = append(state.AllVerificationRequests, persistedVR)
// TODO: create or update activity center notification
return nil
}
func ValidateAcceptContactVerification(request protobuf.AcceptContactVerification) error {
responseLen := len(strings.TrimSpace(request.Response))
if responseLen < minContactVerificationMessageLen || responseLen > maxContactVerificationMessageLen {
return errors.New("invalid verification request response length")
}
return nil
}
func (m *Messenger) HandleAcceptContactVerification(state *ReceivedMessageState, request protobuf.AcceptContactVerification) error {
if err := ValidateAcceptContactVerification(request); err != nil {
m.logger.Debug("Invalid AcceptContactVerification", zap.Error(err))
return err
}
if common.IsPubKeyEqual(state.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
return nil // Is ours, do nothing
}
myPubKey := hexutil.Encode(crypto.FromECDSAPub(&m.identity.PublicKey))
contactID := hexutil.Encode(crypto.FromECDSAPub(state.CurrentMessageState.PublicKey))
contact := state.CurrentMessageState.Contact
if !contact.Added || !contact.HasAddedUs {
m.logger.Debug("Received a verification response for a non mutual contact", zap.String("contactID", contactID))
return errors.New("must be a mutual contact")
}
persistedVR, err := m.verificationDatabase.GetVerificationRequestSentTo(contactID)
if err != nil {
m.logger.Debug("Error obtaining verification request", zap.Error(err))
return err
}
if persistedVR != nil && persistedVR.RepliedAt > request.Clock {
return nil // older message, ignore it
}
if persistedVR.RequestStatus == verification.RequestStatusCANCELED {
return nil // Do nothing, We have already cancelled the verification request
}
if persistedVR == nil {
// This is a response for which we have not received its request before
persistedVR = &verification.Request{}
persistedVR.From = contactID
persistedVR.To = myPubKey
}
persistedVR.RequestStatus = verification.RequestStatusACCEPTED
persistedVR.Response = request.Response
persistedVR.RepliedAt = request.Clock
err = m.verificationDatabase.SaveVerificationRequest(persistedVR)
if err != nil {
m.logger.Debug("Error storing verification request", zap.Error(err))
return err
}
err = m.SyncVerificationRequest(context.Background(), persistedVR)
if err != nil {
return err
}
state.AllVerificationRequests = append(state.AllVerificationRequests, persistedVR)
// TODO: create or update activity center notification
return nil
}
func (m *Messenger) HandleDeclineContactVerification(state *ReceivedMessageState, request protobuf.DeclineContactVerification) error {
if common.IsPubKeyEqual(state.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
return nil // Is ours, do nothing
}
myPubKey := hexutil.Encode(crypto.FromECDSAPub(&m.identity.PublicKey))
contactID := hexutil.Encode(crypto.FromECDSAPub(state.CurrentMessageState.PublicKey))
contact := state.CurrentMessageState.Contact
if !contact.Added || !contact.HasAddedUs {
m.logger.Debug("Received a verification decline for a non mutual contact", zap.String("contactID", contactID))
return errors.New("must be a mutual contact")
}
persistedVR, err := m.verificationDatabase.GetVerificationRequestSentTo(contactID)
if err != nil {
m.logger.Debug("Error obtaining verification request", zap.Error(err))
return err
}
if persistedVR != nil && persistedVR.RepliedAt > request.Clock {
return nil // older message, ignore it
}
if persistedVR.RequestStatus == verification.RequestStatusCANCELED {
return nil // Do nothing, We have already cancelled the verification request
}
if persistedVR == nil {
// This is a response for which we have not received its request before
persistedVR = &verification.Request{}
persistedVR.From = contactID
persistedVR.To = myPubKey
}
persistedVR.RequestStatus = verification.RequestStatusDECLINED
persistedVR.RepliedAt = request.Clock
err = m.verificationDatabase.SaveVerificationRequest(persistedVR)
if err != nil {
m.logger.Debug("Error storing verification request", zap.Error(err))
return err
}
err = m.SyncVerificationRequest(context.Background(), persistedVR)
if err != nil {
return err
}
state.AllVerificationRequests = append(state.AllVerificationRequests, persistedVR)
// TODO: create or update activity center notification
return nil
}
func (m *Messenger) HandleContactVerificationTrusted(state *ReceivedMessageState, request protobuf.ContactVerificationTrusted) error {
if common.IsPubKeyEqual(state.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
return nil // Is ours, do nothing
}
myPubKey := hexutil.Encode(crypto.FromECDSAPub(&m.identity.PublicKey))
contactID := hexutil.Encode(crypto.FromECDSAPub(state.CurrentMessageState.PublicKey))
contact := state.CurrentMessageState.Contact
if !contact.Added || !contact.HasAddedUs {
m.logger.Debug("Received a verification trusted for a non mutual contact", zap.String("contactID", contactID))
return errors.New("must be a mutual contact")
}
err := m.verificationDatabase.SetTrustStatus(contactID, verification.TrustStatusTRUSTED, m.getTimesource().GetCurrentTime())
if err != nil {
return err
}
err = m.SyncTrustedUser(context.Background(), contactID, verification.TrustStatusTRUSTED)
if err != nil {
return err
}
persistedVR, err := m.verificationDatabase.GetVerificationRequestFrom(contactID)
if err != nil {
m.logger.Debug("Error obtaining verification request", zap.Error(err))
return err
}
if persistedVR != nil && persistedVR.RepliedAt > request.Clock {
return nil // older message, ignore it
}
if persistedVR.RequestStatus == verification.RequestStatusCANCELED {
return nil // Do nothing, We have already cancelled the verification request
}
if persistedVR == nil {
// This is a response for which we have not received its request before
persistedVR = &verification.Request{}
persistedVR.From = contactID
persistedVR.To = myPubKey
}
persistedVR.RequestStatus = verification.RequestStatusTRUSTED
err = m.verificationDatabase.SaveVerificationRequest(persistedVR)
if err != nil {
m.logger.Debug("Error storing verification request", zap.Error(err))
return err
}
err = m.SyncVerificationRequest(context.Background(), persistedVR)
if err != nil {
return err
}
state.AllVerificationRequests = append(state.AllVerificationRequests, persistedVR)
contact.VerificationStatus = VerificationStatusVERIFIED
contact.LastUpdatedLocally = m.getTimesource().GetCurrentTime()
err = m.persistence.SaveContact(contact, nil)
if err != nil {
return err
}
state.ModifiedContacts.Store(contact.ID, true)
state.AllContacts.Store(contact.ID, contact)
// We sync the contact with the other devices
err = m.syncContact(context.Background(), contact)
if err != nil {
return err
}
// TODO: create or update activity center notification
return nil
}

View File

@ -20,6 +20,7 @@ import (
"github.com/status-im/status-go/protocol/encryption/multidevice"
"github.com/status-im/status-go/protocol/protobuf"
v1protocol "github.com/status-im/status-go/protocol/v1"
"github.com/status-im/status-go/protocol/verification"
localnotifications "github.com/status-im/status-go/services/local-notifications"
"github.com/status-im/status-go/signal"
)
@ -474,6 +475,13 @@ func (m *Messenger) HandleSyncInstallationContact(state *ReceivedMessageState, m
}
contact.LastUpdatedLocally = message.LastUpdatedLocally
contact.LocalNickname = message.LocalNickname
contact.TrustStatus = verification.TrustStatus(message.TrustStatus)
contact.VerificationStatus = VerificationStatus(message.VerificationStatus)
_, err := m.verificationDatabase.UpsertTrustStatus(contact.ID, contact.TrustStatus, message.LastUpdatedLocally)
if err != nil {
return err
}
if message.Blocked != contact.Blocked {
if message.Blocked {

View File

@ -12,6 +12,7 @@ import (
"github.com/status-im/status-go/protocol/common"
"github.com/status-im/status-go/protocol/communities"
"github.com/status-im/status-go/protocol/encryption/multidevice"
"github.com/status-im/status-go/protocol/verification"
localnotifications "github.com/status-im/status-go/services/local-notifications"
"github.com/status-im/status-go/services/mailservers"
)
@ -39,6 +40,7 @@ type MessengerResponse struct {
Settings []*settings.SyncSettingField
IdentityImages []*images.IdentityImage
Accounts []*accounts.Account
VerificationRequests []*verification.Request
// notifications a list of notifications derived from messenger events
// that are useful to notify the user about
@ -54,24 +56,27 @@ type MessengerResponse struct {
currentStatus *UserStatus
statusUpdates map[string]UserStatus
clearedHistories map[string]*ClearedHistory
trustStatus map[string]verification.TrustStatus
}
func (r *MessengerResponse) MarshalJSON() ([]byte, error) {
responseItem := struct {
Chats []*Chat `json:"chats,omitempty"`
RemovedChats []string `json:"removedChats,omitempty"`
RemovedMessages []*RemovedMessage `json:"removedMessages,omitempty"`
Messages []*common.Message `json:"messages,omitempty"`
Contacts []*Contact `json:"contacts,omitempty"`
Installations []*multidevice.Installation `json:"installations,omitempty"`
PinMessages []*common.PinMessage `json:"pinMessages,omitempty"`
EmojiReactions []*EmojiReaction `json:"emojiReactions,omitempty"`
Invitations []*GroupChatInvitation `json:"invitations,omitempty"`
CommunityChanges []*communities.CommunityChanges `json:"communityChanges,omitempty"`
RequestsToJoinCommunity []*communities.RequestToJoin `json:"requestsToJoinCommunity,omitempty"`
Mailservers []mailservers.Mailserver `json:"mailservers,omitempty"`
Bookmarks []*browsers.Bookmark `json:"bookmarks,omitempty"`
ClearedHistories []*ClearedHistory `json:"clearedHistories,omitempty"`
Chats []*Chat `json:"chats,omitempty"`
RemovedChats []string `json:"removedChats,omitempty"`
RemovedMessages []*RemovedMessage `json:"removedMessages,omitempty"`
Messages []*common.Message `json:"messages,omitempty"`
Contacts []*Contact `json:"contacts,omitempty"`
Installations []*multidevice.Installation `json:"installations,omitempty"`
PinMessages []*common.PinMessage `json:"pinMessages,omitempty"`
EmojiReactions []*EmojiReaction `json:"emojiReactions,omitempty"`
Invitations []*GroupChatInvitation `json:"invitations,omitempty"`
CommunityChanges []*communities.CommunityChanges `json:"communityChanges,omitempty"`
RequestsToJoinCommunity []*communities.RequestToJoin `json:"requestsToJoinCommunity,omitempty"`
Mailservers []mailservers.Mailserver `json:"mailservers,omitempty"`
Bookmarks []*browsers.Bookmark `json:"bookmarks,omitempty"`
ClearedHistories []*ClearedHistory `json:"clearedHistories,omitempty"`
VerificationRequests []*verification.Request `json:"verificationRequests,omitempty"`
TrustStatus map[string]verification.TrustStatus `json:"trustStatus,omitempty"`
// Notifications a list of notifications derived from messenger events
// that are useful to notify the user about
Notifications []*localnotifications.Notification `json:"notifications"`
@ -84,18 +89,20 @@ func (r *MessengerResponse) MarshalJSON() ([]byte, error) {
IdentityImages []*images.IdentityImage `json:"identityImages,omitempty"`
Accounts []*accounts.Account `json:"accounts,omitempty"`
}{
Contacts: r.Contacts,
Installations: r.Installations,
EmojiReactions: r.EmojiReactions,
Invitations: r.Invitations,
CommunityChanges: r.CommunityChanges,
RequestsToJoinCommunity: r.RequestsToJoinCommunity,
Mailservers: r.Mailservers,
Bookmarks: r.Bookmarks,
CurrentStatus: r.currentStatus,
Settings: r.Settings,
IdentityImages: r.IdentityImages,
Accounts: r.Accounts,
Contacts: r.Contacts,
Installations: r.Installations,
EmojiReactions: r.EmojiReactions,
Invitations: r.Invitations,
CommunityChanges: r.CommunityChanges,
RequestsToJoinCommunity: r.RequestsToJoinCommunity,
Mailservers: r.Mailservers,
Bookmarks: r.Bookmarks,
CurrentStatus: r.currentStatus,
Settings: r.Settings,
IdentityImages: r.IdentityImages,
Accounts: r.Accounts,
VerificationRequests: r.VerificationRequests,
Messages: r.Messages(),
Notifications: r.Notifications(),
Chats: r.Chats(),
@ -109,6 +116,7 @@ func (r *MessengerResponse) MarshalJSON() ([]byte, error) {
StatusUpdates: r.StatusUpdates(),
}
responseItem.TrustStatus = r.TrustStatus()
return json.Marshal(responseItem)
}
@ -176,6 +184,18 @@ func (r *MessengerResponse) PinMessages() []*common.PinMessage {
return pinMessages
}
func (r *MessengerResponse) TrustStatus() map[string]verification.TrustStatus {
if len(r.trustStatus) == 0 {
return nil
}
result := make(map[string]verification.TrustStatus)
for contactID, trustStatus := range r.trustStatus {
result[contactID] = trustStatus
}
return result
}
func (r *MessengerResponse) StatusUpdates() []UserStatus {
var userStatus []UserStatus
for pk, s := range r.statusUpdates {
@ -206,6 +226,8 @@ func (r *MessengerResponse) IsEmpty() bool {
len(r.notifications)+
len(r.statusUpdates)+
len(r.activityCenterNotifications)+
len(r.trustStatus)+
len(r.VerificationRequests)+
len(r.RequestsToJoinCommunity) == 0 &&
r.currentStatus == nil
}
@ -222,6 +244,8 @@ func (r *MessengerResponse) Merge(response *MessengerResponse) error {
len(response.EmojiReactions)+
len(response.Bookmarks)+
len(response.clearedHistories)+
len(response.VerificationRequests)+
len(response.trustStatus)+
len(response.CommunityChanges) != 0 {
return ErrNotImplemented
}
@ -233,6 +257,8 @@ func (r *MessengerResponse) Merge(response *MessengerResponse) error {
r.AddMessages(response.Messages())
r.AddCommunities(response.Communities())
r.AddPinMessages(response.PinMessages())
r.AddVerificationRequests(response.VerificationRequests)
r.AddTrustStatuses(response.trustStatus)
r.AddActivityCenterNotifications(response.ActivityCenterNotifications())
return nil
@ -270,6 +296,34 @@ func (r *MessengerResponse) AddBookmarks(bookmarks []*browsers.Bookmark) {
}
}
func (r *MessengerResponse) AddVerificationRequest(vr *verification.Request) {
r.VerificationRequests = append(r.VerificationRequests, vr)
}
func (r *MessengerResponse) AddVerificationRequests(vrs []*verification.Request) {
for _, vr := range vrs {
r.AddVerificationRequest(vr)
}
}
func (r *MessengerResponse) AddTrustStatus(contactID string, trustStatus verification.TrustStatus) {
if r.trustStatus == nil {
r.trustStatus = make(map[string]verification.TrustStatus)
}
r.trustStatus[contactID] = trustStatus
}
func (r *MessengerResponse) AddTrustStatuses(ts map[string]verification.TrustStatus) {
if r.trustStatus == nil {
r.trustStatus = make(map[string]verification.TrustStatus)
}
for k, v := range ts {
r.trustStatus[k] = v
}
}
func (r *MessengerResponse) AddChat(c *Chat) {
if r.chats == nil {
r.chats = make(map[string]*Chat)

View File

@ -0,0 +1,199 @@
package protocol
import (
"context"
"crypto/ecdsa"
"errors"
"testing"
"time"
gethbridge "github.com/status-im/status-go/eth-node/bridge/geth"
"github.com/status-im/status-go/eth-node/crypto"
"github.com/status-im/status-go/protocol/encryption/multidevice"
"github.com/status-im/status-go/protocol/tt"
"github.com/status-im/status-go/protocol/verification"
"github.com/status-im/status-go/waku"
"github.com/stretchr/testify/suite"
"go.uber.org/zap"
"github.com/status-im/status-go/eth-node/types"
)
func TestMessengerSyncVerificationRequests(t *testing.T) {
suite.Run(t, new(MessengerSyncVerificationRequests))
}
type MessengerSyncVerificationRequests struct {
suite.Suite
m *Messenger // main instance of Messenger
privateKey *ecdsa.PrivateKey // private key for the main instance of Messenger
// If one wants to send messages between different instances of Messenger,
// a single Waku service should be shared.
shh types.Waku
logger *zap.Logger
}
func (s *MessengerSyncVerificationRequests) SetupTest() {
s.logger = tt.MustCreateTestLogger()
config := waku.DefaultConfig
config.MinimumAcceptedPoW = 0
shh := waku.New(&config, s.logger)
s.shh = gethbridge.NewGethWakuWrapper(shh)
s.Require().NoError(shh.Start())
s.m = s.newMessenger(s.shh)
s.privateKey = s.m.identity
// We start the messenger in order to receive installations
_, err := s.m.Start()
s.Require().NoError(err)
}
func (s *MessengerSyncVerificationRequests) TestSyncVerificationRequests() {
request := &verification.Request{
From: "0x01",
To: "0x02",
Challenge: "ABC",
Response: "ABC",
RequestedAt: uint64(time.Now().Unix()),
RepliedAt: uint64(time.Now().Unix()),
RequestStatus: verification.RequestStatusACCEPTED,
}
err := s.m.verificationDatabase.SaveVerificationRequest(request)
s.Require().NoError(err)
// pair
theirMessenger, err := newMessengerWithKey(s.shh, s.privateKey, s.logger, nil)
s.Require().NoError(err)
err = theirMessenger.SetInstallationMetadata(theirMessenger.installationID, &multidevice.InstallationMetadata{
Name: "their-name",
DeviceType: "their-device-type",
})
s.Require().NoError(err)
response, err := theirMessenger.SendPairInstallation(context.Background())
s.Require().NoError(err)
s.Require().NotNil(response)
s.Require().Len(response.Chats(), 1)
s.Require().False(response.Chats()[0].Active)
// Wait for the message to reach its destination
response, err = WaitOnMessengerResponse(
s.m,
func(r *MessengerResponse) bool { return len(r.Installations) > 0 },
"installation not received",
)
s.Require().NoError(err)
actualInstallation := response.Installations[0]
s.Require().Equal(theirMessenger.installationID, actualInstallation.ID)
s.Require().NotNil(actualInstallation.InstallationMetadata)
s.Require().Equal("their-name", actualInstallation.InstallationMetadata.Name)
s.Require().Equal("their-device-type", actualInstallation.InstallationMetadata.DeviceType)
err = s.m.EnableInstallation(theirMessenger.installationID)
s.Require().NoError(err)
// sync
err = s.m.SyncVerificationRequest(context.Background(), request)
s.Require().NoError(err)
// Wait for the message to reach its destination
err = tt.RetryWithBackOff(func() error {
response, err = theirMessenger.RetrieveAll()
if err != nil {
return err
}
if response.VerificationRequests != nil {
return nil
}
return errors.New("Not received all verification requests")
})
s.Require().NoError(err)
time.Sleep(4 * time.Second)
requests, err := theirMessenger.verificationDatabase.GetVerificationRequests()
s.Require().NoError(err)
s.Require().Len(requests, 1)
s.Require().NoError(theirMessenger.Shutdown())
}
func (s *MessengerSyncVerificationRequests) TestSyncTrust() {
err := s.m.verificationDatabase.SetTrustStatus("0x01", verification.TrustStatusTRUSTED, 123)
s.Require().NoError(err)
// pair
theirMessenger, err := newMessengerWithKey(s.shh, s.privateKey, s.logger, nil)
s.Require().NoError(err)
err = theirMessenger.SetInstallationMetadata(theirMessenger.installationID, &multidevice.InstallationMetadata{
Name: "their-name",
DeviceType: "their-device-type",
})
s.Require().NoError(err)
response, err := theirMessenger.SendPairInstallation(context.Background())
s.Require().NoError(err)
s.Require().NotNil(response)
s.Require().Len(response.Chats(), 1)
s.Require().False(response.Chats()[0].Active)
// Wait for the message to reach its destination
response, err = WaitOnMessengerResponse(
s.m,
func(r *MessengerResponse) bool { return len(r.Installations) > 0 },
"installation not received",
)
s.Require().NoError(err)
actualInstallation := response.Installations[0]
s.Require().Equal(theirMessenger.installationID, actualInstallation.ID)
s.Require().NotNil(actualInstallation.InstallationMetadata)
s.Require().Equal("their-name", actualInstallation.InstallationMetadata.Name)
s.Require().Equal("their-device-type", actualInstallation.InstallationMetadata.DeviceType)
err = s.m.EnableInstallation(theirMessenger.installationID)
s.Require().NoError(err)
// sync
err = s.m.SyncTrustedUser(context.Background(), "0x01", verification.TrustStatusTRUSTED)
s.Require().NoError(err)
// Wait for the message to reach its destination
err = tt.RetryWithBackOff(func() error {
response, err = theirMessenger.RetrieveAll()
if err != nil {
return err
}
if response.TrustStatus() != nil {
return nil
}
return errors.New("Not received all user trust levels")
})
s.Require().NoError(err)
trustLevel, err := theirMessenger.verificationDatabase.GetTrustStatus("0x01")
s.Require().NoError(err)
s.Require().Equal(verification.TrustStatusTRUSTED, trustLevel)
s.Require().NoError(theirMessenger.Shutdown())
}
func (s *MessengerSyncVerificationRequests) TearDownTest() {
s.Require().NoError(s.m.Shutdown())
}
func (s *MessengerSyncVerificationRequests) newMessenger(shh types.Waku) *Messenger {
privateKey, err := crypto.GenerateKey()
s.Require().NoError(err)
messenger, err := newMessengerWithKey(s.shh, privateKey, s.logger, nil)
s.Require().NoError(err)
return messenger
}

View File

@ -52,6 +52,7 @@
// 1645034601_display_name.up.sql (110B)
// 1645034602_add_mutual_contact_request.up.sql (454B)
// 1650373957_add_contact_request_state.up.sql (59B)
// 1656958989_contact_verification.up.sql (624B)
// README.md (554B)
// doc.go (850B)
@ -137,7 +138,7 @@ func _000001_initDownDbSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "000001_init.down.db.sql", size: 65, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "000001_init.down.db.sql", size: 65, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x5e, 0xbb, 0x3f, 0x1, 0x75, 0x19, 0x70, 0x86, 0xa7, 0x34, 0x40, 0x17, 0x34, 0x3e, 0x18, 0x51, 0x79, 0xd4, 0x22, 0xad, 0x8f, 0x80, 0xcc, 0xa6, 0xcc, 0x6, 0x2b, 0x62, 0x2, 0x47, 0xba, 0xf9}}
return a, nil
}
@ -157,7 +158,7 @@ func _000001_initUpDbSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "000001_init.up.db.sql", size: 2719, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "000001_init.up.db.sql", size: 2719, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x60, 0xdc, 0xeb, 0xe, 0xc2, 0x4f, 0x75, 0xa, 0xf6, 0x3e, 0xc7, 0xc4, 0x4, 0xe2, 0xe1, 0xa4, 0x73, 0x2f, 0x4a, 0xad, 0x1a, 0x0, 0xc3, 0x93, 0x9d, 0x77, 0x3e, 0x31, 0x91, 0x77, 0x2e, 0xc8}}
return a, nil
}
@ -177,7 +178,7 @@ func _000002_add_last_ens_clock_valueUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "000002_add_last_ens_clock_value.up.sql", size: 77, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "000002_add_last_ens_clock_value.up.sql", size: 77, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x4d, 0x3, 0x8f, 0xd5, 0x85, 0x83, 0x47, 0xbe, 0xf9, 0x82, 0x7e, 0x81, 0xa4, 0xbd, 0xaa, 0xd5, 0x98, 0x18, 0x5, 0x2d, 0x82, 0x42, 0x3b, 0x3, 0x50, 0xc3, 0x1e, 0x84, 0x35, 0xf, 0xb6, 0x2b}}
return a, nil
}
@ -197,7 +198,7 @@ func _1586358095_add_replaceUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1586358095_add_replace.up.sql", size: 224, mode: os.FileMode(0644), modTime: time.Unix(1588169971, 0)}
info := bindataFileInfo{name: "1586358095_add_replace.up.sql", size: 224, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd2, 0xb3, 0xa9, 0xc7, 0x7f, 0x9d, 0x8f, 0x43, 0x8c, 0x9e, 0x58, 0x8d, 0x44, 0xbc, 0xfa, 0x6b, 0x5f, 0x3f, 0x5a, 0xbe, 0xe8, 0xb1, 0x16, 0xf, 0x91, 0x2a, 0xa0, 0x71, 0xbb, 0x8d, 0x6b, 0xcb}}
return a, nil
}
@ -217,7 +218,7 @@ func _1588665364_add_image_dataUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1588665364_add_image_data.up.sql", size: 186, mode: os.FileMode(0644), modTime: time.Unix(1594716841, 0)}
info := bindataFileInfo{name: "1588665364_add_image_data.up.sql", size: 186, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd6, 0xc6, 0x35, 0xb4, 0x4c, 0x39, 0x96, 0x29, 0x30, 0xda, 0xf4, 0x8f, 0xcb, 0xf1, 0x9f, 0x84, 0xdc, 0x88, 0xd4, 0xd5, 0xbc, 0xb6, 0x5b, 0x46, 0x78, 0x67, 0x76, 0x1a, 0x5, 0x36, 0xdc, 0xe5}}
return a, nil
}
@ -237,7 +238,7 @@ func _1589365189_add_pow_targetUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1589365189_add_pow_target.up.sql", size: 66, mode: os.FileMode(0644), modTime: time.Unix(1594716841, 0)}
info := bindataFileInfo{name: "1589365189_add_pow_target.up.sql", size: 66, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x4e, 0x3a, 0xe2, 0x2e, 0x7d, 0xaf, 0xbb, 0xcc, 0x21, 0xa1, 0x7a, 0x41, 0x9a, 0xd0, 0xbb, 0xa9, 0xc8, 0x35, 0xf9, 0x32, 0x34, 0x46, 0x44, 0x9a, 0x86, 0x40, 0x7c, 0xb9, 0x23, 0xc7, 0x3, 0x3f}}
return a, nil
}
@ -257,7 +258,7 @@ func _1591277220_add_index_messagesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1591277220_add_index_messages.up.sql", size: 240, mode: os.FileMode(0644), modTime: time.Unix(1594716841, 0)}
info := bindataFileInfo{name: "1591277220_add_index_messages.up.sql", size: 240, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x9c, 0xfe, 0xbe, 0xd5, 0xb8, 0x8f, 0xdd, 0xef, 0xbb, 0xa8, 0xad, 0x7f, 0xed, 0x5b, 0x5b, 0x2f, 0xe6, 0x82, 0x27, 0x78, 0x1f, 0xb9, 0x57, 0xdc, 0x8, 0xc2, 0xb2, 0xa9, 0x9a, 0x4, 0xe1, 0x7a}}
return a, nil
}
@ -277,7 +278,7 @@ func _1593087212_add_mute_chat_and_raw_message_fieldsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1593087212_add_mute_chat_and_raw_message_fields.up.sql", size: 215, mode: os.FileMode(0644), modTime: time.Unix(1597848235, 0)}
info := bindataFileInfo{name: "1593087212_add_mute_chat_and_raw_message_fields.up.sql", size: 215, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x73, 0x99, 0x61, 0xd1, 0xaa, 0xb4, 0xbf, 0xaf, 0xd7, 0x20, 0x17, 0x40, 0xf9, 0x2, 0xfb, 0xcc, 0x40, 0x2a, 0xd, 0x86, 0x36, 0x30, 0x88, 0x89, 0x25, 0x80, 0x42, 0xb0, 0x5b, 0xe9, 0x73, 0x78}}
return a, nil
}
@ -297,7 +298,7 @@ func _1595862781_add_audio_dataUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1595862781_add_audio_data.up.sql", size: 246, mode: os.FileMode(0644), modTime: time.Unix(1597848235, 0)}
info := bindataFileInfo{name: "1595862781_add_audio_data.up.sql", size: 246, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xae, 0xd2, 0xee, 0x55, 0xfb, 0x36, 0xa4, 0x92, 0x66, 0xe, 0x81, 0x62, 0x1e, 0x7a, 0x69, 0xa, 0xd5, 0x4b, 0xa5, 0x6a, 0x8d, 0x1d, 0xce, 0xf3, 0x3e, 0xc0, 0x5f, 0x9c, 0x66, 0x1b, 0xb4, 0xed}}
return a, nil
}
@ -317,7 +318,7 @@ func _1595865249_create_emoji_reactions_tableUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1595865249_create_emoji_reactions_table.up.sql", size: 300, mode: os.FileMode(0644), modTime: time.Unix(1597848235, 0)}
info := bindataFileInfo{name: "1595865249_create_emoji_reactions_table.up.sql", size: 300, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x3e, 0xc5, 0x43, 0x5c, 0x3d, 0x53, 0x43, 0x2c, 0x1a, 0xa5, 0xb6, 0xbf, 0x7, 0x4, 0x5a, 0x3e, 0x40, 0x8b, 0xa4, 0x57, 0x12, 0x58, 0xbc, 0x42, 0xe2, 0xc3, 0xde, 0x76, 0x98, 0x80, 0xe2, 0xbe}}
return a, nil
}
@ -337,7 +338,7 @@ func _1596805115_create_group_chat_invitations_tableUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1596805115_create_group_chat_invitations_table.up.sql", size: 231, mode: os.FileMode(0644), modTime: time.Unix(1604313406, 0)}
info := bindataFileInfo{name: "1596805115_create_group_chat_invitations_table.up.sql", size: 231, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x6d, 0xb1, 0x14, 0x6d, 0x54, 0x28, 0x67, 0xc3, 0x23, 0x6a, 0xfc, 0x80, 0xdf, 0x9e, 0x4c, 0x35, 0x36, 0xf, 0xf8, 0xf3, 0x5f, 0xae, 0xad, 0xb, 0xc1, 0x51, 0x8e, 0x17, 0x7, 0xe5, 0x7f, 0x91}}
return a, nil
}
@ -357,7 +358,7 @@ func _1597322655_add_invitation_admin_chat_fieldUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1597322655_add_invitation_admin_chat_field.up.sql", size: 54, mode: os.FileMode(0644), modTime: time.Unix(1604313406, 0)}
info := bindataFileInfo{name: "1597322655_add_invitation_admin_chat_field.up.sql", size: 54, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xa9, 0x7a, 0xa0, 0xf2, 0xdb, 0x13, 0x91, 0x91, 0xa8, 0x34, 0x1a, 0xa1, 0x49, 0x68, 0xd5, 0xae, 0x2c, 0xd8, 0xd5, 0xea, 0x8f, 0x8c, 0xc7, 0x2, 0x4e, 0x58, 0x2c, 0x3a, 0x14, 0xd4, 0x4f, 0x2c}}
return a, nil
}
@ -377,7 +378,7 @@ func _1597757544_add_nicknameUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1597757544_add_nickname.up.sql", size: 52, mode: os.FileMode(0644), modTime: time.Unix(1604313406, 0)}
info := bindataFileInfo{name: "1597757544_add_nickname.up.sql", size: 52, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xf4, 0xa2, 0x64, 0x50, 0xc5, 0x4, 0xb9, 0x8b, 0xd1, 0x18, 0x9b, 0xc3, 0x91, 0x36, 0x2a, 0x1f, 0xc3, 0x6c, 0x2d, 0x92, 0xf8, 0x5e, 0xff, 0xb1, 0x59, 0x61, 0x2, 0x1c, 0xe1, 0x85, 0x90, 0xa4}}
return a, nil
}
@ -397,7 +398,7 @@ func _1598955122_add_mentionsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1598955122_add_mentions.up.sql", size: 52, mode: os.FileMode(0644), modTime: time.Unix(1604313406, 0)}
info := bindataFileInfo{name: "1598955122_add_mentions.up.sql", size: 52, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x8d, 0x22, 0x17, 0x92, 0xd2, 0x11, 0x4e, 0x7, 0x93, 0x9a, 0x55, 0xfd, 0xb, 0x97, 0xc4, 0x63, 0x6a, 0x81, 0x97, 0xcd, 0xb2, 0xf8, 0x4b, 0x5f, 0x3c, 0xfa, 0x3a, 0x38, 0x53, 0x10, 0xed, 0x9d}}
return a, nil
}
@ -417,7 +418,7 @@ func _1599641390_add_emoji_reactions_indexUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1599641390_add_emoji_reactions_index.up.sql", size: 126, mode: os.FileMode(0644), modTime: time.Unix(1604313406, 0)}
info := bindataFileInfo{name: "1599641390_add_emoji_reactions_index.up.sql", size: 126, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xf9, 0xd8, 0xdc, 0xa7, 0xb, 0x92, 0x7a, 0x61, 0x37, 0x24, 0x1c, 0x77, 0x5e, 0xe, 0x7e, 0xfc, 0x9f, 0x98, 0x7b, 0x65, 0xe7, 0xf9, 0x71, 0x57, 0x89, 0x2d, 0x90, 0x1b, 0xf6, 0x5e, 0x37, 0xe8}}
return a, nil
}
@ -437,7 +438,7 @@ func _1599720851_add_seen_index_remove_long_messagesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1599720851_add_seen_index_remove_long_messages.up.sql", size: 150, mode: os.FileMode(0644), modTime: time.Unix(1604313406, 0)}
info := bindataFileInfo{name: "1599720851_add_seen_index_remove_long_messages.up.sql", size: 150, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x24, 0x1c, 0xc4, 0x78, 0x91, 0xc7, 0xeb, 0xfe, 0xc8, 0xa0, 0xd8, 0x13, 0x27, 0x97, 0xc8, 0x96, 0x56, 0x97, 0x33, 0x2c, 0x1e, 0x16, 0x8a, 0xd3, 0x49, 0x99, 0x3, 0xe9, 0xbb, 0xc4, 0x5, 0x3c}}
return a, nil
}
@ -457,7 +458,7 @@ func _1603198582_add_profile_chat_fieldUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1603198582_add_profile_chat_field.up.sql", size: 45, mode: os.FileMode(0644), modTime: time.Unix(1604313406, 0)}
info := bindataFileInfo{name: "1603198582_add_profile_chat_field.up.sql", size: 45, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xaa, 0xca, 0xe, 0x46, 0xa0, 0x9, 0x9d, 0x47, 0x57, 0xe9, 0xfb, 0x17, 0xeb, 0x9c, 0xf6, 0xb8, 0x1d, 0xe9, 0xd, 0x0, 0xd5, 0xe5, 0xd8, 0x9e, 0x60, 0xa, 0xbf, 0x32, 0x2c, 0x52, 0x7f, 0x6a}}
return a, nil
}
@ -477,7 +478,7 @@ func _1603816533_add_linksUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1603816533_add_links.up.sql", size: 48, mode: os.FileMode(0644), modTime: time.Unix(1604313406, 0)}
info := bindataFileInfo{name: "1603816533_add_links.up.sql", size: 48, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xc9, 0x24, 0xd6, 0x1d, 0xa, 0x83, 0x1e, 0x4d, 0xf, 0xae, 0x4d, 0x8c, 0x51, 0x32, 0xa8, 0x37, 0xb0, 0x14, 0xfb, 0x32, 0x34, 0xc8, 0xc, 0x4e, 0x5b, 0xc5, 0x15, 0x65, 0x73, 0x0, 0x0, 0x1d}}
return a, nil
}
@ -497,7 +498,7 @@ func _1603888149_create_chat_identity_last_published_tableUpSql() (*asset, error
return nil, err
}
info := bindataFileInfo{name: "1603888149_create_chat_identity_last_published_table.up.sql", size: 407, mode: os.FileMode(0644), modTime: time.Unix(1610470168, 0)}
info := bindataFileInfo{name: "1603888149_create_chat_identity_last_published_table.up.sql", size: 407, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x7f, 0x9, 0xf, 0xfb, 0xdb, 0x3c, 0x86, 0x70, 0x82, 0xda, 0x10, 0x25, 0xe2, 0x4e, 0x40, 0x45, 0xab, 0x8b, 0x1c, 0x91, 0x7c, 0xf1, 0x70, 0x2e, 0x81, 0xf3, 0x71, 0x45, 0xda, 0xe2, 0xa4, 0x57}}
return a, nil
}
@ -517,7 +518,7 @@ func _1605075346_add_communitiesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1605075346_add_communities.up.sql", size: 6971, mode: os.FileMode(0644), modTime: time.Unix(1610470168, 0)}
info := bindataFileInfo{name: "1605075346_add_communities.up.sql", size: 6971, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x1f, 0x64, 0xea, 0xb4, 0xae, 0x9e, 0xdb, 0x9, 0x58, 0xb6, 0x5c, 0x7a, 0x50, 0xc5, 0xfe, 0x93, 0x5d, 0x36, 0x85, 0x5d, 0x6a, 0xba, 0xc9, 0x7e, 0x84, 0xd7, 0xbf, 0x2a, 0x53, 0xf3, 0x97, 0xf1}}
return a, nil
}
@ -537,7 +538,7 @@ func _1610117927_add_message_cacheUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1610117927_add_message_cache.up.sql", size: 142, mode: os.FileMode(0644), modTime: time.Unix(1616757075, 0)}
info := bindataFileInfo{name: "1610117927_add_message_cache.up.sql", size: 142, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x34, 0xf1, 0xf0, 0x82, 0x79, 0x28, 0x19, 0xc2, 0x39, 0x6a, 0xa5, 0x96, 0x59, 0x23, 0xa0, 0xed, 0x60, 0x58, 0x86, 0x9, 0xb9, 0xad, 0xfb, 0xa, 0xe3, 0x47, 0x6e, 0xa1, 0x18, 0xe8, 0x39, 0x2c}}
return a, nil
}
@ -557,7 +558,7 @@ func _1610959908_add_dont_wrap_to_raw_messagesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1610959908_add_dont_wrap_to_raw_messages.up.sql", size: 83, mode: os.FileMode(0644), modTime: time.Unix(1616757075, 0)}
info := bindataFileInfo{name: "1610959908_add_dont_wrap_to_raw_messages.up.sql", size: 83, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x71, 0x2, 0x9a, 0xca, 0xd4, 0x38, 0x44, 0x30, 0x2b, 0xa8, 0x27, 0x32, 0x63, 0x53, 0x22, 0x60, 0x59, 0x84, 0x23, 0x96, 0x77, 0xf0, 0x56, 0xd7, 0x94, 0xe0, 0x95, 0x28, 0x6, 0x1d, 0x4e, 0xb1}}
return a, nil
}
@ -577,7 +578,7 @@ func _1610960912_add_send_on_personal_topicUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1610960912_add_send_on_personal_topic.up.sql", size: 82, mode: os.FileMode(0644), modTime: time.Unix(1616757075, 0)}
info := bindataFileInfo{name: "1610960912_add_send_on_personal_topic.up.sql", size: 82, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x77, 0xac, 0x2f, 0xc4, 0xd, 0xa7, 0x1b, 0x37, 0x30, 0xc2, 0x68, 0xee, 0xde, 0x54, 0x5e, 0xbf, 0x3f, 0xa0, 0xd6, 0xc6, 0x9f, 0xd4, 0x34, 0x12, 0x76, 0x1e, 0x66, 0x4a, 0xfc, 0xf, 0xee, 0xc9}}
return a, nil
}
@ -597,7 +598,7 @@ func _1612870480_add_datasync_idUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1612870480_add_datasync_id.up.sql", size: 111, mode: os.FileMode(0644), modTime: time.Unix(1616757075, 0)}
info := bindataFileInfo{name: "1612870480_add_datasync_id.up.sql", size: 111, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x34, 0x9a, 0xbc, 0xfa, 0xaa, 0x8c, 0x9c, 0x37, 0x67, 0x15, 0x9c, 0x7e, 0x78, 0x75, 0x66, 0x82, 0x18, 0x72, 0x10, 0xbc, 0xd4, 0xab, 0x44, 0xfe, 0x57, 0x85, 0x6d, 0x19, 0xf5, 0x96, 0x8a, 0xbe}}
return a, nil
}
@ -617,7 +618,7 @@ func _1614152139_add_communities_request_to_joinUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1614152139_add_communities_request_to_join.up.sql", size: 831, mode: os.FileMode(0644), modTime: time.Unix(1616757075, 0)}
info := bindataFileInfo{name: "1614152139_add_communities_request_to_join.up.sql", size: 831, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x11, 0x3, 0x26, 0xf9, 0x29, 0x50, 0x4f, 0xcd, 0x46, 0xe5, 0xb1, 0x6b, 0xb9, 0x2, 0x40, 0xb1, 0xdf, 0x4a, 0x4c, 0x7a, 0xda, 0x3, 0x35, 0xcd, 0x2d, 0xcc, 0x80, 0x7d, 0x57, 0x5f, 0x3, 0x5c}}
return a, nil
}
@ -637,7 +638,7 @@ func _1615374373_add_confirmationsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1615374373_add_confirmations.up.sql", size: 227, mode: os.FileMode(0644), modTime: time.Unix(1616757075, 0)}
info := bindataFileInfo{name: "1615374373_add_confirmations.up.sql", size: 227, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xdd, 0xa6, 0x65, 0xc5, 0x1d, 0xb2, 0x77, 0x36, 0xe3, 0x79, 0xda, 0xe8, 0x7a, 0xa4, 0xdf, 0x45, 0xae, 0xd8, 0xb4, 0xba, 0x90, 0xfd, 0x74, 0x71, 0x14, 0x75, 0x73, 0x72, 0xb9, 0x9e, 0x1, 0x81}}
return a, nil
}
@ -657,7 +658,7 @@ func _1617694931_add_notification_centerUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1617694931_add_notification_center.up.sql", size: 572, mode: os.FileMode(0644), modTime: time.Unix(1622467450, 0)}
info := bindataFileInfo{name: "1617694931_add_notification_center.up.sql", size: 572, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x10, 0x45, 0xc6, 0xc9, 0x73, 0xbb, 0x1f, 0xda, 0xa3, 0x4d, 0x19, 0x98, 0x85, 0x2d, 0xca, 0xda, 0xcc, 0x3b, 0x32, 0xff, 0xc7, 0x7b, 0xe3, 0x9f, 0x9b, 0x2a, 0x93, 0xf5, 0xdf, 0x65, 0x38, 0x91}}
return a, nil
}
@ -677,7 +678,7 @@ func _1618923660_create_pin_messagesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1618923660_create_pin_messages.up.sql", size: 265, mode: os.FileMode(0644), modTime: time.Unix(1622467450, 0)}
info := bindataFileInfo{name: "1618923660_create_pin_messages.up.sql", size: 265, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x61, 0x44, 0x3a, 0xbe, 0x30, 0xd2, 0x7e, 0xc0, 0xe2, 0x8e, 0x65, 0x53, 0x54, 0xbb, 0x7a, 0x1c, 0xb3, 0x5d, 0xd2, 0xa6, 0xa9, 0x28, 0xb7, 0xa4, 0x5f, 0x8b, 0x9, 0x5f, 0x17, 0xc1, 0x85, 0x21}}
return a, nil
}
@ -697,7 +698,7 @@ func _1619094007_add_joined_chat_fieldUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1619094007_add_joined_chat_field.up.sql", size: 101, mode: os.FileMode(0644), modTime: time.Unix(1622467450, 0)}
info := bindataFileInfo{name: "1619094007_add_joined_chat_field.up.sql", size: 101, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xfa, 0x30, 0x81, 0x3a, 0x2f, 0x9f, 0xb3, 0x0, 0x55, 0x8e, 0x1d, 0xa8, 0xb0, 0x68, 0xf0, 0x40, 0x1a, 0x6c, 0xaa, 0xfc, 0x33, 0xd1, 0xd1, 0x55, 0x3f, 0xf2, 0xbd, 0x54, 0xa1, 0x2b, 0x40, 0x95}}
return a, nil
}
@ -717,7 +718,7 @@ func _1619099821_add_last_synced_fieldUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1619099821_add_last_synced_field.up.sql", size: 226, mode: os.FileMode(0644), modTime: time.Unix(1622467450, 0)}
info := bindataFileInfo{name: "1619099821_add_last_synced_field.up.sql", size: 226, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xf, 0x52, 0x22, 0xe, 0x2f, 0xd7, 0x93, 0x5f, 0x42, 0xc2, 0x93, 0x4, 0x35, 0x6f, 0xc9, 0x19, 0xed, 0x6b, 0x52, 0x6f, 0xae, 0x99, 0xe2, 0x68, 0x3d, 0x4f, 0x40, 0xe, 0xe1, 0xa, 0x47, 0x21}}
return a, nil
}
@ -737,7 +738,7 @@ func _1621933219_add_mentionedUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1621933219_add_mentioned.up.sql", size: 70, mode: os.FileMode(0644), modTime: time.Unix(1622467450, 0)}
info := bindataFileInfo{name: "1621933219_add_mentioned.up.sql", size: 70, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x36, 0x76, 0x8a, 0xc9, 0x7, 0x8f, 0xa5, 0xcb, 0x12, 0x21, 0x4e, 0xfe, 0x96, 0x77, 0xcf, 0x7f, 0x76, 0x75, 0x36, 0x2c, 0xf8, 0x1d, 0x13, 0xcb, 0xcd, 0x6e, 0x70, 0xbf, 0xf5, 0x93, 0x67, 0xd1}}
return a, nil
}
@ -757,7 +758,7 @@ func _1622010048_add_unviewed_mentions_countUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1622010048_add_unviewed_mentions_count.up.sql", size: 114, mode: os.FileMode(0644), modTime: time.Unix(1625049984, 0)}
info := bindataFileInfo{name: "1622010048_add_unviewed_mentions_count.up.sql", size: 114, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x7c, 0x16, 0x85, 0xa6, 0x5b, 0xe1, 0x66, 0xb9, 0x84, 0xbe, 0x7f, 0xa, 0x77, 0x23, 0xb9, 0xef, 0x8e, 0x2, 0x8, 0xfc, 0x61, 0xb2, 0x43, 0xa9, 0x63, 0xae, 0xb4, 0xdf, 0x30, 0xb1, 0x61, 0x4b}}
return a, nil
}
@ -777,7 +778,7 @@ func _1622061278_add_message_activity_center_notification_fieldUpSql() (*asset,
return nil, err
}
info := bindataFileInfo{name: "1622061278_add_message_activity_center_notification_field.up.sql", size: 80, mode: os.FileMode(0644), modTime: time.Unix(1625049984, 0)}
info := bindataFileInfo{name: "1622061278_add_message_activity_center_notification_field.up.sql", size: 80, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x8, 0xc, 0xa6, 0x1f, 0xa5, 0xc6, 0x7c, 0x6f, 0xab, 0x2c, 0x2d, 0xb5, 0xa4, 0xdd, 0xc1, 0xd6, 0x44, 0x83, 0xf9, 0xb1, 0xa5, 0xce, 0x34, 0x3d, 0x2, 0xa9, 0x35, 0xcf, 0xc6, 0xb2, 0x43, 0x37}}
return a, nil
}
@ -797,7 +798,7 @@ func _1622464518_set_synced_to_fromUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1622464518_set_synced_to_from.up.sql", size: 105, mode: os.FileMode(0644), modTime: time.Unix(1625049989, 0)}
info := bindataFileInfo{name: "1622464518_set_synced_to_from.up.sql", size: 105, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x33, 0x3e, 0x2b, 0xa, 0x1e, 0xc7, 0x6d, 0x6f, 0xd1, 0x1d, 0xe8, 0x4b, 0xdd, 0x92, 0x76, 0xea, 0xf2, 0x3e, 0x15, 0x85, 0xc4, 0xc3, 0x31, 0xf1, 0xc0, 0xa2, 0xd7, 0x47, 0xde, 0x4e, 0xfd, 0xc6}}
return a, nil
}
@ -817,7 +818,7 @@ func _1622464519_add_chat_descriptionUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1622464519_add_chat_description.up.sql", size: 93, mode: os.FileMode(0644), modTime: time.Unix(1625049989, 0)}
info := bindataFileInfo{name: "1622464519_add_chat_description.up.sql", size: 93, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x36, 0x2e, 0x89, 0x31, 0xec, 0xef, 0xeb, 0x43, 0xf5, 0x96, 0x6d, 0xce, 0x91, 0x8a, 0x37, 0x2a, 0x11, 0x7a, 0x3f, 0xd9, 0x10, 0xbb, 0xa1, 0xbc, 0x7, 0xe0, 0x3b, 0xa5, 0xf4, 0xa6, 0xf4, 0xa1}}
return a, nil
}
@ -837,7 +838,7 @@ func _1622622253_add_pinned_by_to_pin_messagesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1622622253_add_pinned_by_to_pin_messages.up.sql", size: 52, mode: os.FileMode(0644), modTime: time.Unix(1625049989, 0)}
info := bindataFileInfo{name: "1622622253_add_pinned_by_to_pin_messages.up.sql", size: 52, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x9b, 0x94, 0xa3, 0x45, 0x91, 0x1e, 0x66, 0xd1, 0x96, 0x5a, 0xaf, 0xfa, 0x29, 0x39, 0xa8, 0x3a, 0x97, 0x4c, 0x65, 0x6, 0x96, 0x90, 0x4c, 0xfe, 0xce, 0x7d, 0x5d, 0xd4, 0xb3, 0x8, 0x6d, 0x5f}}
return a, nil
}
@ -857,7 +858,7 @@ func _1623938329_add_author_activity_center_notification_fieldUpSql() (*asset, e
return nil, err
}
info := bindataFileInfo{name: "1623938329_add_author_activity_center_notification_field.up.sql", size: 66, mode: os.FileMode(0644), modTime: time.Unix(1625049989, 0)}
info := bindataFileInfo{name: "1623938329_add_author_activity_center_notification_field.up.sql", size: 66, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x36, 0xe6, 0xa7, 0xd5, 0x26, 0xff, 0xab, 0x92, 0x88, 0xf0, 0xd3, 0x34, 0xd9, 0x2f, 0xe7, 0x18, 0x1a, 0x40, 0xf9, 0xbe, 0x8e, 0xfc, 0xd0, 0x4f, 0x1f, 0x4a, 0xb9, 0x83, 0x3f, 0xa9, 0xde, 0xb}}
return a, nil
}
@ -877,7 +878,7 @@ func _1623938330_add_edit_messagesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1623938330_add_edit_messages.up.sql", size: 369, mode: os.FileMode(0644), modTime: time.Unix(1625049989, 0)}
info := bindataFileInfo{name: "1623938330_add_edit_messages.up.sql", size: 369, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x7e, 0xd2, 0xce, 0xe, 0x5c, 0x19, 0xbe, 0x5e, 0x29, 0xbe, 0x9b, 0x31, 0x53, 0x76, 0xb2, 0xc8, 0x56, 0xf0, 0x82, 0xfe, 0x7d, 0x6c, 0xe8, 0x5c, 0xe9, 0x7a, 0x5d, 0x5, 0xc4, 0x92, 0x38, 0xe3}}
return a, nil
}
@ -897,7 +898,7 @@ func _1624978434_add_muted_communityUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1624978434_add_muted_community.up.sql", size: 82, mode: os.FileMode(0644), modTime: time.Unix(1626786555, 0)}
info := bindataFileInfo{name: "1624978434_add_muted_community.up.sql", size: 82, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x6, 0xdc, 0x6e, 0x6f, 0x97, 0xc7, 0x3d, 0x50, 0xab, 0x80, 0x87, 0x44, 0x43, 0x38, 0xe6, 0xc5, 0xc1, 0x91, 0x26, 0xf, 0x16, 0xe, 0xd9, 0x32, 0x37, 0x25, 0x96, 0x25, 0x6, 0xc8, 0xb5, 0x4a}}
return a, nil
}
@ -917,7 +918,7 @@ func _1625018910_add_repply_message_activity_center_notification_fieldUpSql() (*
return nil, err
}
info := bindataFileInfo{name: "1625018910_add_repply_message_activity_center_notification_field.up.sql", size: 86, mode: os.FileMode(0644), modTime: time.Unix(1626786555, 0)}
info := bindataFileInfo{name: "1625018910_add_repply_message_activity_center_notification_field.up.sql", size: 86, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xf2, 0x52, 0x12, 0x40, 0xd8, 0x6f, 0x71, 0x97, 0x46, 0x39, 0xaa, 0x74, 0x41, 0xcd, 0x45, 0x4c, 0xe8, 0xd9, 0xe2, 0x56, 0x8e, 0x78, 0x18, 0x62, 0xf6, 0xa8, 0x36, 0xe9, 0x9a, 0x1f, 0xc, 0xb1}}
return a, nil
}
@ -937,7 +938,7 @@ func _1625762506_add_deleted_messagesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1625762506_add_deleted_messages.up.sql", size: 357, mode: os.FileMode(0644), modTime: time.Unix(1627897055, 0)}
info := bindataFileInfo{name: "1625762506_add_deleted_messages.up.sql", size: 357, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd5, 0x61, 0x42, 0xb6, 0x8c, 0x7f, 0x2d, 0xec, 0xa9, 0x6d, 0x3d, 0x0, 0xa3, 0x32, 0xd8, 0x4a, 0x38, 0x5c, 0x97, 0xfc, 0x68, 0xde, 0xa9, 0xb7, 0xd8, 0xde, 0xb, 0x29, 0x93, 0xdc, 0x81, 0xf8}}
return a, nil
}
@ -957,7 +958,7 @@ func _1627388946_add_communities_synced_atUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1627388946_add_communities_synced_at.up.sql", size: 87, mode: os.FileMode(0644), modTime: time.Unix(1631628269, 0)}
info := bindataFileInfo{name: "1627388946_add_communities_synced_at.up.sql", size: 87, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xc1, 0xbd, 0x9b, 0x6a, 0xc9, 0x1a, 0x7a, 0x34, 0xcf, 0x5f, 0x80, 0x9e, 0x8c, 0x1c, 0xc0, 0xec, 0x4e, 0x78, 0xb0, 0x2d, 0x15, 0x77, 0x38, 0x4a, 0x6a, 0x5, 0x84, 0xf5, 0x8d, 0x8b, 0xbe, 0x9}}
return a, nil
}
@ -977,7 +978,7 @@ func _1628280060_createUsermessagesIndexSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1628280060_create-usermessages-index.sql", size: 80, mode: os.FileMode(0644), modTime: time.Unix(1631628269, 0)}
info := bindataFileInfo{name: "1628280060_create-usermessages-index.sql", size: 80, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x10, 0x6f, 0x70, 0x47, 0x40, 0xab, 0xa8, 0x60, 0xe0, 0xf9, 0x8, 0x7e, 0x19, 0x9d, 0xba, 0x33, 0x16, 0xfc, 0x3c, 0xdc, 0xa8, 0xa6, 0x53, 0x61, 0x39, 0x82, 0x91, 0xcf, 0x69, 0xd8, 0xf2, 0xcf}}
return a, nil
}
@ -997,7 +998,7 @@ func _1632303896_modify_contacts_tableUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1632303896_modify_contacts_table.up.sql", size: 1574, mode: os.FileMode(0644), modTime: time.Unix(1637329330, 0)}
info := bindataFileInfo{name: "1632303896_modify_contacts_table.up.sql", size: 1574, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x81, 0x1e, 0x6c, 0x3c, 0xd, 0xd7, 0x7d, 0xbb, 0x19, 0xbc, 0xe4, 0x7, 0xfd, 0xf8, 0x66, 0x6d, 0x78, 0xf6, 0x4, 0xe6, 0x51, 0xe4, 0xe6, 0xdc, 0xe, 0x5a, 0x2e, 0xac, 0xe6, 0xe7, 0x24, 0x69}}
return a, nil
}
@ -1017,7 +1018,7 @@ func _1633349838_add_emoji_column_in_chatsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1633349838_add_emoji_column_in_chats.up.sql", size: 52, mode: os.FileMode(0644), modTime: time.Unix(1637329330, 0)}
info := bindataFileInfo{name: "1633349838_add_emoji_column_in_chats.up.sql", size: 52, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xcb, 0x33, 0xcb, 0x3b, 0xa9, 0x99, 0x77, 0x6a, 0xea, 0xc4, 0x39, 0xd7, 0xa1, 0x49, 0xa7, 0xdf, 0xff, 0x72, 0xda, 0x34, 0x21, 0x67, 0x66, 0xca, 0x65, 0x46, 0x1, 0xa6, 0x4e, 0xf9, 0x38, 0x86}}
return a, nil
}
@ -1037,7 +1038,7 @@ func _1634831235_add_highlight_column_in_chatsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1634831235_add_highlight_column_in_chats.up.sql", size: 62, mode: os.FileMode(0644), modTime: time.Unix(1637329330, 0)}
info := bindataFileInfo{name: "1634831235_add_highlight_column_in_chats.up.sql", size: 62, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xaa, 0x63, 0x5c, 0x73, 0x19, 0x83, 0xbd, 0x35, 0x80, 0x9f, 0x66, 0xec, 0x4c, 0xbc, 0x9d, 0x2d, 0x52, 0x91, 0x6d, 0xb3, 0x2b, 0x87, 0xde, 0x24, 0x46, 0x5c, 0xd, 0xfd, 0x78, 0xf5, 0xe3, 0xe9}}
return a, nil
}
@ -1057,7 +1058,7 @@ func _1634896007_add_last_updated_locally_and_removedUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1634896007_add_last_updated_locally_and_removed.up.sql", size: 131, mode: os.FileMode(0644), modTime: time.Unix(1637329330, 0)}
info := bindataFileInfo{name: "1634896007_add_last_updated_locally_and_removed.up.sql", size: 131, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x2e, 0xa8, 0x34, 0xe2, 0xc0, 0x62, 0xc8, 0xd6, 0x5a, 0x87, 0xe3, 0x70, 0xe1, 0xc4, 0x16, 0x9c, 0x60, 0x2e, 0x98, 0xf0, 0x91, 0x84, 0xbe, 0xe0, 0xdf, 0x3e, 0x4d, 0x24, 0xc4, 0x6c, 0x40, 0x17}}
return a, nil
}
@ -1077,7 +1078,7 @@ func _1635840039_add_clock_read_at_column_in_chatsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1635840039_add_clock_read_at_column_in_chats.up.sql", size: 245, mode: os.FileMode(0644), modTime: time.Unix(1637329330, 0)}
info := bindataFileInfo{name: "1635840039_add_clock_read_at_column_in_chats.up.sql", size: 245, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x6c, 0xba, 0x3f, 0xba, 0x1a, 0x71, 0xa8, 0x9, 0x19, 0xbe, 0x1e, 0x38, 0x50, 0x30, 0x3a, 0x52, 0x15, 0x29, 0xee, 0x49, 0x19, 0x6f, 0x53, 0xc2, 0xc6, 0x6c, 0xd9, 0x80, 0x7e, 0xb9, 0x58, 0x7a}}
return a, nil
}
@ -1097,7 +1098,7 @@ func _1637852321_add_received_invitation_admin_column_in_chatsUpSql() (*asset, e
return nil, err
}
info := bindataFileInfo{name: "1637852321_add_received_invitation_admin_column_in_chats.up.sql", size: 72, mode: os.FileMode(0644), modTime: time.Unix(1638351408, 0)}
info := bindataFileInfo{name: "1637852321_add_received_invitation_admin_column_in_chats.up.sql", size: 72, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x70, 0x8b, 0x92, 0x56, 0x83, 0x70, 0x7f, 0x6, 0xb2, 0xd, 0x1c, 0x2f, 0xcc, 0x93, 0xc3, 0x85, 0x8c, 0xc2, 0x38, 0x94, 0x7e, 0x88, 0x3f, 0x39, 0x34, 0xf8, 0x90, 0xcf, 0x83, 0x68, 0x3d, 0xe5}}
return a, nil
}
@ -1117,7 +1118,7 @@ func _1645034601_display_nameUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1645034601_display_name.up.sql", size: 110, mode: os.FileMode(0644), modTime: time.Unix(1647884149, 0)}
info := bindataFileInfo{name: "1645034601_display_name.up.sql", size: 110, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x15, 0xfc, 0xda, 0x70, 0x53, 0x19, 0x90, 0x20, 0x4, 0x1c, 0x99, 0x42, 0x53, 0x1a, 0xd6, 0xb8, 0xbb, 0x8a, 0xe8, 0xbe, 0xcc, 0xb7, 0xc, 0x7f, 0x73, 0x50, 0x18, 0xf1, 0x8b, 0x18, 0x54, 0x64}}
return a, nil
}
@ -1137,7 +1138,7 @@ func _1645034602_add_mutual_contact_requestUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1645034602_add_mutual_contact_request.up.sql", size: 454, mode: os.FileMode(0644), modTime: time.Unix(1655204917, 0)}
info := bindataFileInfo{name: "1645034602_add_mutual_contact_request.up.sql", size: 454, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x1a, 0xe0, 0x5d, 0x68, 0xb8, 0x50, 0xa4, 0xbb, 0x3e, 0x4f, 0x2, 0x87, 0xad, 0x87, 0x6e, 0x38, 0xdf, 0xc8, 0x4c, 0xe2, 0x5f, 0xd1, 0x6, 0xdc, 0xe7, 0xbd, 0x4a, 0x9c, 0xf3, 0x91, 0xa1, 0x51}}
return a, nil
}
@ -1157,11 +1158,31 @@ func _1650373957_add_contact_request_stateUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1650373957_add_contact_request_state.up.sql", size: 59, mode: os.FileMode(0644), modTime: time.Unix(1655204917, 0)}
info := bindataFileInfo{name: "1650373957_add_contact_request_state.up.sql", size: 59, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x5e, 0xc1, 0x3f, 0x29, 0xe, 0x19, 0x86, 0x1a, 0x4c, 0x6c, 0x2a, 0x90, 0x9d, 0xdf, 0xb1, 0xb, 0x72, 0x25, 0xcd, 0x6c, 0x5f, 0xd, 0x51, 0x9e, 0x85, 0xc0, 0x9, 0xb7, 0xbc, 0x87, 0x23, 0xec}}
return a, nil
}
var __1656958989_contact_verificationUpSql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x84\x91\xc1\x6e\xea\x30\x10\x45\xf7\xfe\x8a\xbb\x04\x89\x05\xfb\xe8\x2d\xfc\x12\xa3\x5a\x35\x0e\x75\xc6\x02\x56\x28\x0a\xa6\x8d\x44\x13\x88\x9d\x7e\x7f\x65\x52\x28\x48\x40\x97\x96\xef\x9d\x39\x47\xc3\x15\x09\x03\xe2\xff\x95\x40\xd5\x36\xa1\xac\x82\x07\xcf\x32\xa4\xb9\xb2\x73\x8d\x2f\xd7\xd5\xbb\xba\x2a\x43\xdd\x36\x1b\x1f\xca\xd0\x7b\x48\x4d\xc8\xc4\x8c\x5b\x45\x98\x26\x8c\xd9\x45\xc6\xe9\xaa\x5e\x08\xba\xdb\xfb\x87\x69\x02\x30\x96\x1a\x11\xf3\xc3\x52\x39\x83\xce\x09\x62\x25\x0b\x2a\x10\xba\xde\x07\xb7\xdd\xf4\xde\x75\x1e\x23\x06\xd4\x5b\x90\x58\x11\x16\x46\xce\xb9\x59\xe3\x55\xac\x91\x6b\xa4\xb9\x9e\x29\x99\x12\x8c\x58\x28\x9e\x8a\x09\xc3\x50\xbe\x86\x8c\x83\xb5\x55\xea\x97\x36\xc6\xfa\xc3\xb6\x8c\x3b\xca\xf0\x20\xc4\xc6\x58\x4a\x7a\xc9\x2d\xc1\xe4\x4b\x99\x25\x4f\x91\x6f\x4c\x3b\x77\xec\x9d\x0f\x03\xfa\xae\x6b\x3f\x4f\x26\x27\x83\x13\x61\x7b\xfb\xae\x3e\xca\xfd\xde\x35\xef\x6e\x70\x3c\xa3\xc4\xaf\x9f\x49\xcf\x38\x87\x98\x3f\xb4\x8d\x77\x97\x91\x9d\x3b\xec\xeb\xbf\x5a\x8f\xae\x7a\x3f\x9d\xe6\xba\x20\xc3\x63\x20\x2a\x45\x89\xa6\x3e\xf6\x0e\x56\xcb\x37\x2b\x30\xba\x88\x4e\xce\x86\xe3\x7b\x37\x62\xe3\x84\x7d\x07\x00\x00\xff\xff\x72\xf9\xde\x4a\x70\x02\x00\x00")
func _1656958989_contact_verificationUpSqlBytes() ([]byte, error) {
return bindataRead(
__1656958989_contact_verificationUpSql,
"1656958989_contact_verification.up.sql",
)
}
func _1656958989_contact_verificationUpSql() (*asset, error) {
bytes, err := _1656958989_contact_verificationUpSqlBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "1656958989_contact_verification.up.sql", size: 624, mode: os.FileMode(0664), modTime: time.Unix(1656959010, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x3a, 0x3f, 0x28, 0x38, 0x33, 0xdb, 0xe9, 0x4d, 0xc0, 0x54, 0x8c, 0x2a, 0x73, 0xc4, 0xdd, 0x5c, 0xc5, 0x1a, 0x93, 0x4b, 0x6, 0x13, 0xbe, 0x42, 0xd2, 0x7f, 0xd4, 0xc, 0xc5, 0x4e, 0x6d, 0xce}}
return a, nil
}
var _readmeMd = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x54\x91\xc1\xce\xd3\x30\x10\x84\xef\x7e\x8a\x91\x7a\x01\xa9\x2a\x8f\xc0\x0d\x71\x82\x03\x48\x1c\xc9\x36\x9e\x36\x96\x1c\x6f\xf0\xae\x93\xe6\xed\x91\xa3\xc2\xdf\xff\x66\xed\xd8\x33\xdf\x78\x4f\xa7\x13\xbe\xea\x06\x57\x6c\x35\x39\x31\xa7\x7b\x15\x4f\x5a\xec\x73\x08\xbf\x08\x2d\x79\x7f\x4a\x43\x5b\x86\x17\xfd\x8c\x21\xea\x56\x5e\x47\x90\x4a\x14\x75\x48\xde\x64\x37\x2c\x6a\x96\xae\x99\x48\x05\xf6\x27\x77\x13\xad\x08\xae\x8a\x51\xe7\x25\xf3\xf1\xa9\x9f\xf9\x58\x58\x2c\xad\xbc\xe0\x8b\x56\xf0\x21\x5d\xeb\x4c\x95\xb3\xae\x84\x60\xd4\xdc\xe6\x82\x5d\x1b\x36\x6d\x39\x62\x92\xf5\xb8\x11\xdb\x92\xd3\x28\xce\xe0\x13\xe1\x72\xcd\x3c\x63\xd4\x65\x87\xae\xac\xe8\xc3\x28\x2e\x67\x44\x66\x3a\x21\x25\xa2\x72\xac\x14\x67\xbc\x84\x9f\x53\x32\x8c\x52\x70\x25\x56\xd6\xfd\x8d\x05\x37\xad\x30\x9d\x9f\xa6\x86\x0f\xcd\x58\x7f\xcf\x34\x93\x3b\xed\x90\x9f\xa4\x1f\xcf\x30\x85\x4d\x07\x58\xaf\x7f\x25\xc4\x9d\xf3\x72\x64\x84\xd0\x7f\xf9\x9b\x3a\x2d\x84\xef\x85\x48\x66\x8d\xd8\x88\x9b\x8c\x8c\x98\x5b\xf6\x74\x14\x4e\x33\x0d\xc9\xe0\x93\x38\xda\x12\xc5\x69\xbd\xe4\xf0\x2e\x7a\x78\x07\x1c\xfe\x13\x9f\x91\x29\x31\x95\x7b\x7f\x62\x59\x37\xb4\xe5\x5e\x25\xfe\x33\xee\xd5\x53\x71\xd6\xda\x3a\xd8\xcb\xde\x2e\xf8\xa1\x90\x55\x53\x0c\xc7\xaa\x0d\xe9\x76\x14\x29\x1c\x7b\x68\xdd\x2f\xe1\x6f\x00\x00\x00\xff\xff\x3c\x0a\xc2\xfe\x2a\x02\x00\x00")
func readmeMdBytes() ([]byte, error) {
@ -1177,7 +1198,7 @@ func readmeMd() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "README.md", size: 554, mode: os.FileMode(0644), modTime: time.Unix(1610470168, 0)}
info := bindataFileInfo{name: "README.md", size: 554, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x1c, 0x6e, 0xfb, 0xcc, 0x81, 0x94, 0x4d, 0x8c, 0xa0, 0x3b, 0x5, 0xb0, 0x18, 0xd6, 0xbb, 0xb3, 0x79, 0xc8, 0x8f, 0xff, 0xc1, 0x10, 0xf9, 0xf, 0x20, 0x1b, 0x4a, 0x74, 0x96, 0x42, 0xd7, 0xa8}}
return a, nil
}
@ -1197,7 +1218,7 @@ func docGo() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "doc.go", size: 850, mode: os.FileMode(0644), modTime: time.Unix(1588169971, 0)}
info := bindataFileInfo{name: "doc.go", size: 850, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xa0, 0xcc, 0x41, 0xe1, 0x61, 0x12, 0x97, 0xe, 0x36, 0x8c, 0xa7, 0x9e, 0xe0, 0x6e, 0x59, 0x9e, 0xee, 0xd5, 0x4a, 0xcf, 0x1e, 0x60, 0xd6, 0xc3, 0x3a, 0xc9, 0x6c, 0xf2, 0x86, 0x5a, 0xb4, 0x1e}}
return a, nil
}
@ -1397,6 +1418,8 @@ var _bindata = map[string]func() (*asset, error){
"1650373957_add_contact_request_state.up.sql": _1650373957_add_contact_request_stateUpSql,
"1656958989_contact_verification.up.sql": _1656958989_contact_verificationUpSql,
"README.md": readmeMd,
"doc.go": docGo,
@ -1495,8 +1518,9 @@ var _bintree = &bintree{nil, map[string]*bintree{
"1645034601_display_name.up.sql": &bintree{_1645034601_display_nameUpSql, map[string]*bintree{}},
"1645034602_add_mutual_contact_request.up.sql": &bintree{_1645034602_add_mutual_contact_requestUpSql, map[string]*bintree{}},
"1650373957_add_contact_request_state.up.sql": &bintree{_1650373957_add_contact_request_stateUpSql, map[string]*bintree{}},
"README.md": &bintree{readmeMd, map[string]*bintree{}},
"doc.go": &bintree{docGo, map[string]*bintree{}},
"1656958989_contact_verification.up.sql": &bintree{_1656958989_contact_verificationUpSql, map[string]*bintree{}},
"README.md": &bintree{readmeMd, map[string]*bintree{}},
"doc.go": &bintree{docGo, map[string]*bintree{}},
}}
// RestoreAsset restores an asset under the given directory.

View File

@ -0,0 +1,20 @@
ALTER TABLE contacts ADD COLUMN verification_status INT DEFAULT 0;
UPDATE contacts SET verification_status = 0;
CREATE TABLE IF NOT EXISTS trusted_users (
id TEXT PRIMARY KEY ON CONFLICT REPLACE,
trust_status INT NOT NULL DEFAULT 0,
updated_at INT NOT NULL DEFAULT 0
) WITHOUT ROWID;
CREATE TABLE IF NOT EXISTS verification_requests (
from_user TEXT,
to_user TEXT,
challenge TEXT NOT NULL,
requested_at INT NOT NULL DEFAULT 0,
response TEXT,
replied_at INT NOT NULL DEFAULT 0,
verification_status INT NOT NULL DEFAULT 0,
CONSTRAINT fromto_unique UNIQUE (from_user, to_user) ON CONFLICT REPLACE
);

View File

@ -499,10 +499,13 @@ func (db sqlitePersistence) Contacts() ([]*Contact, error) {
c.contact_request_state,
c.contact_request_clock,
i.image_type,
i.payload
i.payload,
COALESCE(c.verification_status, 0) as verification_status,
COALESCE(t.trust_status, 0) as trust_status
FROM contacts c
LEFT JOIN chat_identity_contacts i ON c.id = i.contact_id
LEFT JOIN ens_verification_records v ON c.id = v.public_key;
LEFT JOIN ens_verification_records v ON c.id = v.public_key
LEFT JOIN trusted_users t ON c.id = t.id;
`)
if err != nil {
return nil, err
@ -549,6 +552,8 @@ func (db sqlitePersistence) Contacts() ([]*Contact, error) {
&contactRequestClock,
&imageType,
&imagePayload,
&contact.VerificationStatus,
&contact.TrustStatus,
)
if err != nil {
return nil, err
@ -741,16 +746,17 @@ func (db sqlitePersistence) SaveContact(contact *Contact, tx *sql.Tx) (err error
last_updated,
last_updated_locally,
local_nickname,
contact_request_state,
contact_request_clock,
contact_request_state,
contact_request_clock,
added,
blocked,
removed,
verification_status,
has_added_us,
name,
photo,
tribute_to_talk
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
`)
if err != nil {
return
@ -771,6 +777,7 @@ func (db sqlitePersistence) SaveContact(contact *Contact, tx *sql.Tx) (err error
contact.Added,
contact.Blocked,
contact.Removed,
contact.VerificationStatus,
contact.HasAddedUs,
//TODO we need to drop these columns
"",

View File

@ -6,7 +6,7 @@ package protobuf
import (
fmt "fmt"
proto "github.com/golang/protobuf/proto"
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
timestamp "github.com/golang/protobuf/ptypes/timestamp"
math "math"
)
@ -36,10 +36,10 @@ type AnonymousMetric struct {
// session_id is the id of the session the metric was recorded in
SessionId string `protobuf:"bytes,6,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
// created_at is the datetime at which the metric was stored in the local db
CreatedAt *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
CreatedAt *timestamp.Timestamp `protobuf:"bytes,7,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *AnonymousMetric) Reset() { *m = AnonymousMetric{} }
@ -109,7 +109,7 @@ func (m *AnonymousMetric) GetSessionId() string {
return ""
}
func (m *AnonymousMetric) GetCreatedAt() *timestamppb.Timestamp {
func (m *AnonymousMetric) GetCreatedAt() *timestamp.Timestamp {
if m != nil {
return m.CreatedAt
}

View File

@ -72,6 +72,12 @@ const (
ApplicationMetadataMessage_ACCEPT_CONTACT_REQUEST ApplicationMetadataMessage_Type = 46
ApplicationMetadataMessage_RETRACT_CONTACT_REQUEST ApplicationMetadataMessage_Type = 47
ApplicationMetadataMessage_SYNC_COMMUNITY_SETTINGS ApplicationMetadataMessage_Type = 49
ApplicationMetadataMessage_REQUEST_CONTACT_VERIFICATION ApplicationMetadataMessage_Type = 50
ApplicationMetadataMessage_ACCEPT_CONTACT_VERIFICATION ApplicationMetadataMessage_Type = 51
ApplicationMetadataMessage_DECLINE_CONTACT_VERIFICATION ApplicationMetadataMessage_Type = 52
ApplicationMetadataMessage_SYNC_TRUSTED_USER ApplicationMetadataMessage_Type = 53
ApplicationMetadataMessage_SYNC_VERIFICATION_REQUEST ApplicationMetadataMessage_Type = 54
ApplicationMetadataMessage_CONTACT_VERIFICATION_TRUSTED ApplicationMetadataMessage_Type = 55
)
var ApplicationMetadataMessage_Type_name = map[int32]string{
@ -124,6 +130,12 @@ var ApplicationMetadataMessage_Type_name = map[int32]string{
46: "ACCEPT_CONTACT_REQUEST",
47: "RETRACT_CONTACT_REQUEST",
49: "SYNC_COMMUNITY_SETTINGS",
50: "REQUEST_CONTACT_VERIFICATION",
51: "ACCEPT_CONTACT_VERIFICATION",
52: "DECLINE_CONTACT_VERIFICATION",
53: "SYNC_TRUSTED_USER",
54: "SYNC_VERIFICATION_REQUEST",
55: "CONTACT_VERIFICATION_TRUSTED",
}
var ApplicationMetadataMessage_Type_value = map[string]int32{
@ -176,6 +188,12 @@ var ApplicationMetadataMessage_Type_value = map[string]int32{
"ACCEPT_CONTACT_REQUEST": 46,
"RETRACT_CONTACT_REQUEST": 47,
"SYNC_COMMUNITY_SETTINGS": 49,
"REQUEST_CONTACT_VERIFICATION": 50,
"ACCEPT_CONTACT_VERIFICATION": 51,
"DECLINE_CONTACT_VERIFICATION": 52,
"SYNC_TRUSTED_USER": 53,
"SYNC_VERIFICATION_REQUEST": 54,
"CONTACT_VERIFICATION_TRUSTED": 55,
}
func (x ApplicationMetadataMessage_Type) String() string {
@ -254,55 +272,58 @@ func init() {
}
var fileDescriptor_ad09a6406fcf24c7 = []byte{
// 790 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x54, 0x5d, 0x73, 0x13, 0x37,
0x14, 0x6d, 0x20, 0x4d, 0xe0, 0x3a, 0x09, 0x8a, 0xc8, 0x87, 0xf3, 0x6d, 0x0c, 0x85, 0x00, 0xad,
0x99, 0xb6, 0x8f, 0x9d, 0x3e, 0xc8, 0xd2, 0x8d, 0x2d, 0xbc, 0x2b, 0x2d, 0x92, 0xd6, 0x8c, 0xfb,
0xa2, 0x59, 0x8a, 0xcb, 0x64, 0x06, 0x88, 0x87, 0x98, 0x87, 0xfc, 0xce, 0xfe, 0x8a, 0xfe, 0x8b,
0x8e, 0x76, 0xbd, 0xbb, 0x0e, 0x31, 0xf0, 0x64, 0xef, 0x3d, 0x47, 0xba, 0xf7, 0x9e, 0x7b, 0x8f,
0xa0, 0x9d, 0x4d, 0x26, 0xef, 0xcf, 0xff, 0xce, 0xa6, 0xe7, 0x17, 0x1f, 0xfd, 0x87, 0xf1, 0x34,
0x7b, 0x9b, 0x4d, 0x33, 0xff, 0x61, 0x7c, 0x79, 0x99, 0xbd, 0x1b, 0x77, 0x26, 0x9f, 0x2e, 0xa6,
0x17, 0xf4, 0x4e, 0xfe, 0xf3, 0xe6, 0xf3, 0x3f, 0xed, 0xff, 0x1a, 0xb0, 0xcf, 0xea, 0x03, 0xf1,
0x8c, 0x1f, 0x17, 0x74, 0x7a, 0x08, 0x77, 0x2f, 0xcf, 0xdf, 0x7d, 0xcc, 0xa6, 0x9f, 0x3f, 0x8d,
0x9b, 0x4b, 0xad, 0xa5, 0xd3, 0x35, 0x53, 0x07, 0x68, 0x13, 0x56, 0x27, 0xd9, 0xd5, 0xfb, 0x8b,
0xec, 0x6d, 0xf3, 0x56, 0x8e, 0x95, 0x9f, 0xf4, 0x4f, 0x58, 0x9e, 0x5e, 0x4d, 0xc6, 0xcd, 0xdb,
0xad, 0xa5, 0xd3, 0x8d, 0xdf, 0x9e, 0x76, 0xca, 0x7c, 0x9d, 0xaf, 0xe7, 0xea, 0xb8, 0xab, 0xc9,
0xd8, 0xe4, 0xc7, 0xda, 0xff, 0x02, 0x2c, 0x87, 0x4f, 0xda, 0x80, 0xd5, 0x54, 0x0d, 0x94, 0x7e,
0xad, 0xc8, 0x0f, 0x94, 0xc0, 0x1a, 0xef, 0x33, 0xe7, 0x63, 0xb4, 0x96, 0xf5, 0x90, 0x2c, 0x51,
0x0a, 0x1b, 0x5c, 0x2b, 0xc7, 0xb8, 0xf3, 0x69, 0x22, 0x98, 0x43, 0x72, 0x8b, 0x1e, 0xc1, 0x5e,
0x8c, 0x71, 0x17, 0x8d, 0xed, 0xcb, 0x64, 0x16, 0xae, 0x8e, 0xdc, 0xa6, 0xdb, 0xb0, 0x99, 0x30,
0x69, 0xbc, 0x54, 0xd6, 0xb1, 0x28, 0x62, 0x4e, 0x6a, 0x45, 0x96, 0x43, 0xd8, 0x8e, 0x14, 0xbf,
0x1e, 0xfe, 0x91, 0x3e, 0x84, 0x13, 0x83, 0xaf, 0x52, 0xb4, 0xce, 0x33, 0x21, 0x0c, 0x5a, 0xeb,
0xcf, 0xb4, 0xf1, 0xce, 0x30, 0x65, 0x19, 0xcf, 0x49, 0x2b, 0xf4, 0x19, 0x3c, 0x66, 0x9c, 0x63,
0xe2, 0xfc, 0xf7, 0xb8, 0xab, 0xf4, 0x39, 0x3c, 0x11, 0xc8, 0x23, 0xa9, 0xf0, 0xbb, 0xe4, 0x3b,
0x74, 0x17, 0xee, 0x97, 0xa4, 0x79, 0xe0, 0x2e, 0xdd, 0x02, 0x62, 0x51, 0x89, 0x6b, 0x51, 0xa0,
0x27, 0x70, 0xf0, 0xe5, 0xdd, 0xf3, 0x84, 0x46, 0x90, 0xe6, 0x46, 0x93, 0x7e, 0x26, 0x20, 0x59,
0x5b, 0x0c, 0x33, 0xce, 0x75, 0xaa, 0x1c, 0x59, 0xa7, 0x0f, 0xe0, 0xe8, 0x26, 0x9c, 0xa4, 0xdd,
0x48, 0x72, 0x1f, 0xe6, 0x42, 0x36, 0xe8, 0x31, 0xec, 0x97, 0xf3, 0xe0, 0x5a, 0xa0, 0x67, 0x62,
0x88, 0xc6, 0x49, 0x8b, 0x31, 0x2a, 0x47, 0xee, 0xd1, 0x36, 0x1c, 0x27, 0xa9, 0xed, 0x7b, 0xa5,
0x9d, 0x3c, 0x93, 0xbc, 0xb8, 0xc2, 0x60, 0x4f, 0x5a, 0x67, 0x0a, 0xc9, 0x49, 0x50, 0xe8, 0xdb,
0x1c, 0x6f, 0xd0, 0x26, 0x5a, 0x59, 0x24, 0x9b, 0xf4, 0x00, 0x76, 0x6f, 0x92, 0x5f, 0xa5, 0x68,
0x46, 0x84, 0xd2, 0x47, 0xd0, 0xfa, 0x0a, 0x58, 0x5f, 0x71, 0x3f, 0x74, 0xbd, 0x28, 0x5f, 0xae,
0x1f, 0xd9, 0x0a, 0x2d, 0x2d, 0x82, 0x67, 0xc7, 0xb7, 0xc3, 0x0a, 0x62, 0xac, 0x5f, 0x4a, 0x6f,
0x70, 0xa6, 0xf3, 0x0e, 0xdd, 0x83, 0xed, 0x9e, 0xd1, 0x69, 0x92, 0xcb, 0xe2, 0xa5, 0x1a, 0x4a,
0x57, 0x74, 0xb7, 0x4b, 0x37, 0x61, 0xbd, 0x08, 0x0a, 0x54, 0x4e, 0xba, 0x11, 0x69, 0x06, 0x36,
0xd7, 0x71, 0x9c, 0x2a, 0xe9, 0x46, 0x5e, 0xa0, 0xe5, 0x46, 0x26, 0x39, 0x7b, 0x8f, 0x36, 0x61,
0xab, 0x86, 0xe6, 0xee, 0xd9, 0x0f, 0x55, 0xd7, 0x48, 0x35, 0x6d, 0xed, 0x5f, 0x6a, 0xa9, 0xc8,
0x01, 0xbd, 0x07, 0x8d, 0x44, 0xaa, 0x6a, 0xed, 0x0f, 0x83, 0x77, 0x50, 0xc8, 0xda, 0x3b, 0x47,
0xa1, 0x12, 0xeb, 0x98, 0x4b, 0x6d, 0x69, 0x9d, 0xe3, 0xd0, 0x8b, 0xc0, 0x08, 0xe7, 0xfc, 0x72,
0x12, 0x96, 0x6a, 0xd1, 0xce, 0xcc, 0x52, 0x93, 0x16, 0xdd, 0x87, 0x1d, 0xa6, 0xb4, 0x1a, 0xc5,
0x3a, 0xb5, 0x3e, 0x46, 0x67, 0x24, 0xf7, 0x5d, 0xe6, 0x78, 0x9f, 0x3c, 0xa8, 0x5c, 0x95, 0xb7,
0x6c, 0x30, 0xd6, 0x43, 0x14, 0xa4, 0x1d, 0xa6, 0x56, 0x87, 0x67, 0xa9, 0x6c, 0x10, 0x50, 0x90,
0x87, 0x14, 0x60, 0xa5, 0xcb, 0xf8, 0x20, 0x4d, 0xc8, 0xa3, 0x6a, 0x23, 0x83, 0xb2, 0xc3, 0xd0,
0x29, 0x47, 0xe5, 0xd0, 0x14, 0xd4, 0x9f, 0xaa, 0x8d, 0xfc, 0x12, 0x2e, 0xdc, 0x88, 0x82, 0x3c,
0x0e, 0x1b, 0xb7, 0x90, 0x22, 0xa4, 0x8d, 0xa5, 0xb5, 0x28, 0xc8, 0x93, 0x5c, 0x89, 0xc0, 0xe9,
0x6a, 0x3d, 0x88, 0x99, 0x19, 0x90, 0x53, 0xba, 0x03, 0xb4, 0xa8, 0x30, 0x42, 0x66, 0x7c, 0x5f,
0x5a, 0xa7, 0xcd, 0x88, 0x3c, 0x0d, 0x32, 0xe6, 0x71, 0x8b, 0xce, 0x49, 0xd5, 0x23, 0xcf, 0x68,
0x0b, 0x0e, 0xeb, 0x41, 0x30, 0xc3, 0xfb, 0x72, 0x88, 0x3e, 0x66, 0x3d, 0x85, 0x2e, 0x92, 0x6a,
0x40, 0x9e, 0x87, 0x21, 0xe6, 0x67, 0x12, 0xa3, 0xcf, 0x64, 0x84, 0x3e, 0x91, 0xdc, 0xa5, 0x06,
0xc9, 0xcf, 0xc1, 0xdf, 0x39, 0xf2, 0x9a, 0x45, 0x11, 0xba, 0xca, 0x6a, 0xbf, 0xe4, 0x9a, 0x16,
0x2f, 0x4a, 0x69, 0xa7, 0x72, 0x21, 0x3b, 0x41, 0x3c, 0x83, 0xce, 0x14, 0x1e, 0xbb, 0x0e, 0xbe,
0xa8, 0x95, 0xad, 0x4a, 0x9a, 0x55, 0x6a, 0xc9, 0xaf, 0xdd, 0xf5, 0xbf, 0x1a, 0x9d, 0x17, 0x7f,
0x94, 0x4f, 0xf1, 0x9b, 0x95, 0xfc, 0xdf, 0xef, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0xcf, 0x35,
0x6f, 0x4f, 0x31, 0x06, 0x00, 0x00,
// 846 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x55, 0x5b, 0x73, 0xd3, 0x46,
0x14, 0x6e, 0x20, 0x4d, 0x60, 0x73, 0x61, 0xb3, 0xe4, 0xe2, 0xdc, 0x83, 0xa1, 0x10, 0xa0, 0x35,
0x53, 0xe8, 0xe5, 0xa1, 0xd3, 0x87, 0xf5, 0xee, 0x89, 0xbd, 0x58, 0xda, 0x15, 0xbb, 0x47, 0x66,
0xdc, 0x97, 0x1d, 0x51, 0x5c, 0x26, 0x33, 0x40, 0x3c, 0xc4, 0x3c, 0xe4, 0x5f, 0xf4, 0x57, 0xf4,
0x77, 0x76, 0x56, 0xb2, 0x24, 0x27, 0x31, 0xf0, 0x64, 0xeb, 0x7c, 0xdf, 0xb9, 0x7d, 0xe7, 0x1c,
0x89, 0x34, 0xb3, 0xd1, 0xe8, 0xfd, 0xe9, 0xdf, 0xd9, 0xf8, 0xf4, 0xec, 0xa3, 0xff, 0x30, 0x1c,
0x67, 0x6f, 0xb3, 0x71, 0xe6, 0x3f, 0x0c, 0xcf, 0xcf, 0xb3, 0x77, 0xc3, 0xd6, 0xe8, 0xd3, 0xd9,
0xf8, 0x8c, 0xdd, 0xca, 0x7f, 0xde, 0x7c, 0xfe, 0xa7, 0xf9, 0xdf, 0x0a, 0xd9, 0xe1, 0xb5, 0x43,
0x3c, 0xe1, 0xc7, 0x05, 0x9d, 0xed, 0x91, 0xdb, 0xe7, 0xa7, 0xef, 0x3e, 0x66, 0xe3, 0xcf, 0x9f,
0x86, 0x8d, 0xb9, 0xa3, 0xb9, 0xe3, 0x65, 0x5b, 0x1b, 0x58, 0x83, 0x2c, 0x8e, 0xb2, 0x8b, 0xf7,
0x67, 0xd9, 0xdb, 0xc6, 0x8d, 0x1c, 0x2b, 0x1f, 0xd9, 0x9f, 0x64, 0x7e, 0x7c, 0x31, 0x1a, 0x36,
0x6e, 0x1e, 0xcd, 0x1d, 0xaf, 0x3e, 0x7f, 0xdc, 0x2a, 0xf3, 0xb5, 0xbe, 0x9c, 0xab, 0x85, 0x17,
0xa3, 0xa1, 0xcd, 0xdd, 0x9a, 0xff, 0x2e, 0x93, 0xf9, 0xf0, 0xc8, 0x96, 0xc8, 0x62, 0xaa, 0x7b,
0xda, 0xbc, 0xd6, 0xf4, 0x3b, 0x46, 0xc9, 0xb2, 0xe8, 0x72, 0xf4, 0x31, 0x38, 0xc7, 0x3b, 0x40,
0xe7, 0x18, 0x23, 0xab, 0xc2, 0x68, 0xe4, 0x02, 0x7d, 0x9a, 0x48, 0x8e, 0x40, 0x6f, 0xb0, 0x7d,
0xb2, 0x1d, 0x43, 0xdc, 0x06, 0xeb, 0xba, 0x2a, 0x99, 0x98, 0x2b, 0x97, 0x9b, 0x6c, 0x83, 0xac,
0x25, 0x5c, 0x59, 0xaf, 0xb4, 0x43, 0x1e, 0x45, 0x1c, 0x95, 0xd1, 0x74, 0x3e, 0x98, 0xdd, 0x40,
0x8b, 0xcb, 0xe6, 0xef, 0xd9, 0x7d, 0x72, 0x68, 0xe1, 0x55, 0x0a, 0x0e, 0x3d, 0x97, 0xd2, 0x82,
0x73, 0xfe, 0xc4, 0x58, 0x8f, 0x96, 0x6b, 0xc7, 0x45, 0x4e, 0x5a, 0x60, 0x4f, 0xc8, 0x43, 0x2e,
0x04, 0x24, 0xe8, 0xbf, 0xc5, 0x5d, 0x64, 0x4f, 0xc9, 0x23, 0x09, 0x22, 0x52, 0x1a, 0xbe, 0x49,
0xbe, 0xc5, 0xb6, 0xc8, 0xdd, 0x92, 0x34, 0x0d, 0xdc, 0x66, 0xeb, 0x84, 0x3a, 0xd0, 0xf2, 0x92,
0x95, 0xb0, 0x43, 0xb2, 0x7b, 0x35, 0xf6, 0x34, 0x61, 0x29, 0x48, 0x73, 0xad, 0x49, 0x3f, 0x11,
0x90, 0x2e, 0xcf, 0x86, 0xb9, 0x10, 0x26, 0xd5, 0x48, 0x57, 0xd8, 0x3d, 0xb2, 0x7f, 0x1d, 0x4e,
0xd2, 0x76, 0xa4, 0x84, 0x0f, 0x73, 0xa1, 0xab, 0xec, 0x80, 0xec, 0x94, 0xf3, 0x10, 0x46, 0x82,
0xe7, 0xb2, 0x0f, 0x16, 0x95, 0x83, 0x18, 0x34, 0xd2, 0x3b, 0xac, 0x49, 0x0e, 0x92, 0xd4, 0x75,
0xbd, 0x36, 0xa8, 0x4e, 0x94, 0x28, 0x42, 0x58, 0xe8, 0x28, 0x87, 0xb6, 0x90, 0x9c, 0x06, 0x85,
0xbe, 0xce, 0xf1, 0x16, 0x5c, 0x62, 0xb4, 0x03, 0xba, 0xc6, 0x76, 0xc9, 0xd6, 0x75, 0xf2, 0xab,
0x14, 0xec, 0x80, 0x32, 0xf6, 0x80, 0x1c, 0x7d, 0x01, 0xac, 0x43, 0xdc, 0x0d, 0x5d, 0xcf, 0xca,
0x97, 0xeb, 0x47, 0xd7, 0x43, 0x4b, 0xb3, 0xe0, 0x89, 0xfb, 0x46, 0x58, 0x41, 0x88, 0xcd, 0x4b,
0xe5, 0x2d, 0x4c, 0x74, 0xde, 0x64, 0xdb, 0x64, 0xa3, 0x63, 0x4d, 0x9a, 0xe4, 0xb2, 0x78, 0xa5,
0xfb, 0x0a, 0x8b, 0xee, 0xb6, 0xd8, 0x1a, 0x59, 0x29, 0x8c, 0x12, 0x34, 0x2a, 0x1c, 0xd0, 0x46,
0x60, 0x0b, 0x13, 0xc7, 0xa9, 0x56, 0x38, 0xf0, 0x12, 0x9c, 0xb0, 0x2a, 0xc9, 0xd9, 0xdb, 0xac,
0x41, 0xd6, 0x6b, 0x68, 0x2a, 0xce, 0x4e, 0xa8, 0xba, 0x46, 0xaa, 0x69, 0x1b, 0xff, 0xd2, 0x28,
0x4d, 0x77, 0xd9, 0x1d, 0xb2, 0x94, 0x28, 0x5d, 0xad, 0xfd, 0x5e, 0xb8, 0x1d, 0x90, 0xaa, 0xbe,
0x9d, 0xfd, 0x50, 0x89, 0x43, 0x8e, 0xa9, 0x2b, 0x4f, 0xe7, 0x20, 0xf4, 0x22, 0x21, 0x82, 0xa9,
0x7b, 0x39, 0x0c, 0x4b, 0x35, 0x6b, 0x67, 0x26, 0xa9, 0xe9, 0x11, 0xdb, 0x21, 0x9b, 0x5c, 0x1b,
0x3d, 0x88, 0x4d, 0xea, 0x7c, 0x0c, 0x68, 0x95, 0xf0, 0x6d, 0x8e, 0xa2, 0x4b, 0xef, 0x55, 0x57,
0x95, 0xb7, 0x6c, 0x21, 0x36, 0x7d, 0x90, 0xb4, 0x19, 0xa6, 0x56, 0x9b, 0x27, 0xa9, 0x5c, 0x10,
0x50, 0xd2, 0xfb, 0x8c, 0x90, 0x85, 0x36, 0x17, 0xbd, 0x34, 0xa1, 0x0f, 0xaa, 0x8d, 0x0c, 0xca,
0xf6, 0x43, 0xa7, 0x02, 0x34, 0x82, 0x2d, 0xa8, 0x3f, 0x54, 0x1b, 0x79, 0x15, 0x2e, 0xae, 0x11,
0x24, 0x7d, 0x18, 0x36, 0x6e, 0x26, 0x45, 0x2a, 0x17, 0x2b, 0xe7, 0x40, 0xd2, 0x47, 0xb9, 0x12,
0x81, 0xd3, 0x36, 0xa6, 0x17, 0x73, 0xdb, 0xa3, 0xc7, 0x6c, 0x93, 0xb0, 0xa2, 0xc2, 0x08, 0xb8,
0xf5, 0x5d, 0xe5, 0xd0, 0xd8, 0x01, 0x7d, 0x1c, 0x64, 0xcc, 0xed, 0x0e, 0x10, 0x95, 0xee, 0xd0,
0x27, 0xec, 0x88, 0xec, 0xd5, 0x83, 0xe0, 0x56, 0x74, 0x55, 0x1f, 0x7c, 0xcc, 0x3b, 0x1a, 0x30,
0x52, 0xba, 0x47, 0x9f, 0x86, 0x21, 0xe6, 0x3e, 0x89, 0x35, 0x27, 0x2a, 0x02, 0x9f, 0x28, 0x81,
0xa9, 0x05, 0xfa, 0x63, 0xb8, 0xef, 0x1c, 0x79, 0xcd, 0xa3, 0x08, 0xb0, 0x3a, 0xb5, 0x9f, 0x72,
0x4d, 0x8b, 0x37, 0x4a, 0x79, 0x4e, 0xe5, 0x42, 0xb6, 0x82, 0x78, 0x16, 0xd0, 0x16, 0x37, 0x76,
0x19, 0x7c, 0x56, 0x2b, 0x5b, 0x95, 0x34, 0xa9, 0xd4, 0xd1, 0x9f, 0x43, 0xa9, 0xe5, 0xa6, 0x94,
0x9e, 0x7d, 0xb0, 0xd5, 0x56, 0xd3, 0xe7, 0x61, 0xd8, 0x57, 0xf2, 0x5e, 0x22, 0xbc, 0x08, 0x21,
0xca, 0x57, 0xcc, 0x4c, 0xc6, 0x2f, 0xd5, 0xc8, 0xd1, 0xa6, 0x0e, 0x41, 0xfa, 0xd4, 0x81, 0xa5,
0xbf, 0x56, 0x93, 0x9c, 0x66, 0x57, 0x75, 0xff, 0x56, 0xa8, 0x78, 0x3d, 0x5e, 0x19, 0x85, 0xfe,
0xde, 0x5e, 0xf9, 0x6b, 0xa9, 0xf5, 0xec, 0x8f, 0xf2, 0x3b, 0xf2, 0x66, 0x21, 0xff, 0xf7, 0xe2,
0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0x70, 0xc0, 0x8b, 0xbf, 0xee, 0x06, 0x00, 0x00,
}

View File

@ -62,5 +62,11 @@ message ApplicationMetadataMessage {
ACCEPT_CONTACT_REQUEST = 46;
RETRACT_CONTACT_REQUEST = 47;
SYNC_COMMUNITY_SETTINGS = 49;
REQUEST_CONTACT_VERIFICATION = 50;
ACCEPT_CONTACT_VERIFICATION = 51;
DECLINE_CONTACT_VERIFICATION = 52;
SYNC_TRUSTED_USER = 53;
SYNC_VERIFICATION_REQUEST = 54;
CONTACT_VERIFICATION_TRUSTED = 55;
}
}

View File

@ -0,0 +1,220 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: contact_verification.proto
package protobuf
import (
fmt "fmt"
proto "github.com/golang/protobuf/proto"
math "math"
)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
type RequestContactVerification struct {
Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"`
Challenge string `protobuf:"bytes,3,opt,name=challenge,proto3" json:"challenge,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *RequestContactVerification) Reset() { *m = RequestContactVerification{} }
func (m *RequestContactVerification) String() string { return proto.CompactTextString(m) }
func (*RequestContactVerification) ProtoMessage() {}
func (*RequestContactVerification) Descriptor() ([]byte, []int) {
return fileDescriptor_d6997df64de39454, []int{0}
}
func (m *RequestContactVerification) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RequestContactVerification.Unmarshal(m, b)
}
func (m *RequestContactVerification) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RequestContactVerification.Marshal(b, m, deterministic)
}
func (m *RequestContactVerification) XXX_Merge(src proto.Message) {
xxx_messageInfo_RequestContactVerification.Merge(m, src)
}
func (m *RequestContactVerification) XXX_Size() int {
return xxx_messageInfo_RequestContactVerification.Size(m)
}
func (m *RequestContactVerification) XXX_DiscardUnknown() {
xxx_messageInfo_RequestContactVerification.DiscardUnknown(m)
}
var xxx_messageInfo_RequestContactVerification proto.InternalMessageInfo
func (m *RequestContactVerification) GetClock() uint64 {
if m != nil {
return m.Clock
}
return 0
}
func (m *RequestContactVerification) GetChallenge() string {
if m != nil {
return m.Challenge
}
return ""
}
type AcceptContactVerification struct {
Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"`
Response string `protobuf:"bytes,3,opt,name=response,proto3" json:"response,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *AcceptContactVerification) Reset() { *m = AcceptContactVerification{} }
func (m *AcceptContactVerification) String() string { return proto.CompactTextString(m) }
func (*AcceptContactVerification) ProtoMessage() {}
func (*AcceptContactVerification) Descriptor() ([]byte, []int) {
return fileDescriptor_d6997df64de39454, []int{1}
}
func (m *AcceptContactVerification) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AcceptContactVerification.Unmarshal(m, b)
}
func (m *AcceptContactVerification) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_AcceptContactVerification.Marshal(b, m, deterministic)
}
func (m *AcceptContactVerification) XXX_Merge(src proto.Message) {
xxx_messageInfo_AcceptContactVerification.Merge(m, src)
}
func (m *AcceptContactVerification) XXX_Size() int {
return xxx_messageInfo_AcceptContactVerification.Size(m)
}
func (m *AcceptContactVerification) XXX_DiscardUnknown() {
xxx_messageInfo_AcceptContactVerification.DiscardUnknown(m)
}
var xxx_messageInfo_AcceptContactVerification proto.InternalMessageInfo
func (m *AcceptContactVerification) GetClock() uint64 {
if m != nil {
return m.Clock
}
return 0
}
func (m *AcceptContactVerification) GetResponse() string {
if m != nil {
return m.Response
}
return ""
}
type ContactVerificationTrusted struct {
Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ContactVerificationTrusted) Reset() { *m = ContactVerificationTrusted{} }
func (m *ContactVerificationTrusted) String() string { return proto.CompactTextString(m) }
func (*ContactVerificationTrusted) ProtoMessage() {}
func (*ContactVerificationTrusted) Descriptor() ([]byte, []int) {
return fileDescriptor_d6997df64de39454, []int{2}
}
func (m *ContactVerificationTrusted) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ContactVerificationTrusted.Unmarshal(m, b)
}
func (m *ContactVerificationTrusted) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ContactVerificationTrusted.Marshal(b, m, deterministic)
}
func (m *ContactVerificationTrusted) XXX_Merge(src proto.Message) {
xxx_messageInfo_ContactVerificationTrusted.Merge(m, src)
}
func (m *ContactVerificationTrusted) XXX_Size() int {
return xxx_messageInfo_ContactVerificationTrusted.Size(m)
}
func (m *ContactVerificationTrusted) XXX_DiscardUnknown() {
xxx_messageInfo_ContactVerificationTrusted.DiscardUnknown(m)
}
var xxx_messageInfo_ContactVerificationTrusted proto.InternalMessageInfo
func (m *ContactVerificationTrusted) GetClock() uint64 {
if m != nil {
return m.Clock
}
return 0
}
type DeclineContactVerification struct {
Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *DeclineContactVerification) Reset() { *m = DeclineContactVerification{} }
func (m *DeclineContactVerification) String() string { return proto.CompactTextString(m) }
func (*DeclineContactVerification) ProtoMessage() {}
func (*DeclineContactVerification) Descriptor() ([]byte, []int) {
return fileDescriptor_d6997df64de39454, []int{3}
}
func (m *DeclineContactVerification) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeclineContactVerification.Unmarshal(m, b)
}
func (m *DeclineContactVerification) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_DeclineContactVerification.Marshal(b, m, deterministic)
}
func (m *DeclineContactVerification) XXX_Merge(src proto.Message) {
xxx_messageInfo_DeclineContactVerification.Merge(m, src)
}
func (m *DeclineContactVerification) XXX_Size() int {
return xxx_messageInfo_DeclineContactVerification.Size(m)
}
func (m *DeclineContactVerification) XXX_DiscardUnknown() {
xxx_messageInfo_DeclineContactVerification.DiscardUnknown(m)
}
var xxx_messageInfo_DeclineContactVerification proto.InternalMessageInfo
func (m *DeclineContactVerification) GetClock() uint64 {
if m != nil {
return m.Clock
}
return 0
}
func init() {
proto.RegisterType((*RequestContactVerification)(nil), "protobuf.RequestContactVerification")
proto.RegisterType((*AcceptContactVerification)(nil), "protobuf.AcceptContactVerification")
proto.RegisterType((*ContactVerificationTrusted)(nil), "protobuf.ContactVerificationTrusted")
proto.RegisterType((*DeclineContactVerification)(nil), "protobuf.DeclineContactVerification")
}
func init() {
proto.RegisterFile("contact_verification.proto", fileDescriptor_d6997df64de39454)
}
var fileDescriptor_d6997df64de39454 = []byte{
// 182 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4a, 0xce, 0xcf, 0x2b,
0x49, 0x4c, 0x2e, 0x89, 0x2f, 0x4b, 0x2d, 0xca, 0x4c, 0xcb, 0x4c, 0x4e, 0x2c, 0xc9, 0xcc, 0xcf,
0xd3, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x00, 0x53, 0x49, 0xa5, 0x69, 0x4a, 0x01, 0x5c,
0x52, 0x41, 0xa9, 0x85, 0xa5, 0xa9, 0xc5, 0x25, 0xce, 0x10, 0xe5, 0x61, 0x48, 0xaa, 0x85, 0x44,
0xb8, 0x58, 0x93, 0x73, 0xf2, 0x93, 0xb3, 0x25, 0x18, 0x15, 0x18, 0x35, 0x58, 0x82, 0x20, 0x1c,
0x21, 0x19, 0x2e, 0xce, 0xe4, 0x8c, 0xc4, 0x9c, 0x9c, 0xd4, 0xbc, 0xf4, 0x54, 0x09, 0x66, 0x05,
0x46, 0x0d, 0xce, 0x20, 0x84, 0x80, 0x92, 0x2f, 0x97, 0xa4, 0x63, 0x72, 0x72, 0x6a, 0x01, 0x09,
0x06, 0x4a, 0x71, 0x71, 0x14, 0xa5, 0x16, 0x17, 0xe4, 0xe7, 0x15, 0xc3, 0xcc, 0x83, 0xf3, 0x95,
0x8c, 0xb8, 0xa4, 0xb0, 0x18, 0x14, 0x52, 0x54, 0x5a, 0x5c, 0x92, 0x9a, 0x82, 0xdd, 0x3c, 0x90,
0x1e, 0x97, 0xd4, 0xe4, 0x9c, 0xcc, 0xbc, 0x54, 0xa2, 0xdd, 0xe0, 0xc4, 0x1b, 0xc5, 0xad, 0xa7,
0x6f, 0x0d, 0x0b, 0x97, 0x24, 0x36, 0x30, 0xcb, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, 0x4f, 0x25,
0x40, 0xb3, 0x46, 0x01, 0x00, 0x00,
}

View File

@ -0,0 +1,22 @@
syntax = "proto3";
option go_package = "./;protobuf";
package protobuf;
message RequestContactVerification {
uint64 clock = 1;
string challenge = 3;
}
message AcceptContactVerification {
uint64 clock = 1;
string response = 3;
}
message ContactVerificationTrusted {
uint64 clock = 1;
}
message DeclineContactVerification {
uint64 clock = 1;
}

View File

@ -20,6 +20,68 @@ var _ = math.Inf
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
type SyncTrustedUser_TrustStatus int32
const (
SyncTrustedUser_UNKNOWN SyncTrustedUser_TrustStatus = 0
SyncTrustedUser_TRUSTED SyncTrustedUser_TrustStatus = 1
SyncTrustedUser_UNTRUSTWORTHY SyncTrustedUser_TrustStatus = 2
)
var SyncTrustedUser_TrustStatus_name = map[int32]string{
0: "UNKNOWN",
1: "TRUSTED",
2: "UNTRUSTWORTHY",
}
var SyncTrustedUser_TrustStatus_value = map[string]int32{
"UNKNOWN": 0,
"TRUSTED": 1,
"UNTRUSTWORTHY": 2,
}
func (x SyncTrustedUser_TrustStatus) String() string {
return proto.EnumName(SyncTrustedUser_TrustStatus_name, int32(x))
}
func (SyncTrustedUser_TrustStatus) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_d61ab7221f0b5518, []int{21, 0}
}
type SyncVerificationRequest_VerificationStatus int32
const (
SyncVerificationRequest_UNKNOWN SyncVerificationRequest_VerificationStatus = 0
SyncVerificationRequest_PENDING SyncVerificationRequest_VerificationStatus = 1
SyncVerificationRequest_ACCEPTED SyncVerificationRequest_VerificationStatus = 2
SyncVerificationRequest_DECLINED SyncVerificationRequest_VerificationStatus = 3
SyncVerificationRequest_CANCELED SyncVerificationRequest_VerificationStatus = 4
)
var SyncVerificationRequest_VerificationStatus_name = map[int32]string{
0: "UNKNOWN",
1: "PENDING",
2: "ACCEPTED",
3: "DECLINED",
4: "CANCELED",
}
var SyncVerificationRequest_VerificationStatus_value = map[string]int32{
"UNKNOWN": 0,
"PENDING": 1,
"ACCEPTED": 2,
"DECLINED": 3,
"CANCELED": 4,
}
func (x SyncVerificationRequest_VerificationStatus) String() string {
return proto.EnumName(SyncVerificationRequest_VerificationStatus_name, int32(x))
}
func (SyncVerificationRequest_VerificationStatus) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_d61ab7221f0b5518, []int{22, 0}
}
type Backup struct {
Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"`
Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
@ -246,6 +308,8 @@ type SyncInstallationContactV2 struct {
Muted bool `protobuf:"varint,11,opt,name=muted,proto3" json:"muted,omitempty"`
Removed bool `protobuf:"varint,12,opt,name=removed,proto3" json:"removed,omitempty"`
HasAddedUs bool `protobuf:"varint,13,opt,name=has_added_us,json=hasAddedUs,proto3" json:"has_added_us,omitempty"`
VerificationStatus int64 `protobuf:"varint,14,opt,name=verification_status,json=verificationStatus,proto3" json:"verification_status,omitempty"`
TrustStatus int64 `protobuf:"varint,15,opt,name=trust_status,json=trustStatus,proto3" json:"trust_status,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@ -360,6 +424,20 @@ func (m *SyncInstallationContactV2) GetHasAddedUs() bool {
return false
}
func (m *SyncInstallationContactV2) GetVerificationStatus() int64 {
if m != nil {
return m.VerificationStatus
}
return 0
}
func (m *SyncInstallationContactV2) GetTrustStatus() int64 {
if m != nil {
return m.TrustStatus
}
return 0
}
type SyncInstallationAccount struct {
Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"`
ProfileImage string `protobuf:"bytes,2,opt,name=profile_image,json=profileImage,proto3" json:"profile_image,omitempty"`
@ -1439,7 +1517,159 @@ func (m *SyncCommunitySettings) GetHistoryArchiveSupportEnabled() bool {
return false
}
type SyncTrustedUser struct {
Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"`
Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
Status SyncTrustedUser_TrustStatus `protobuf:"varint,3,opt,name=status,proto3,enum=protobuf.SyncTrustedUser_TrustStatus" json:"status,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *SyncTrustedUser) Reset() { *m = SyncTrustedUser{} }
func (m *SyncTrustedUser) String() string { return proto.CompactTextString(m) }
func (*SyncTrustedUser) ProtoMessage() {}
func (*SyncTrustedUser) Descriptor() ([]byte, []int) {
return fileDescriptor_d61ab7221f0b5518, []int{21}
}
func (m *SyncTrustedUser) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SyncTrustedUser.Unmarshal(m, b)
}
func (m *SyncTrustedUser) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SyncTrustedUser.Marshal(b, m, deterministic)
}
func (m *SyncTrustedUser) XXX_Merge(src proto.Message) {
xxx_messageInfo_SyncTrustedUser.Merge(m, src)
}
func (m *SyncTrustedUser) XXX_Size() int {
return xxx_messageInfo_SyncTrustedUser.Size(m)
}
func (m *SyncTrustedUser) XXX_DiscardUnknown() {
xxx_messageInfo_SyncTrustedUser.DiscardUnknown(m)
}
var xxx_messageInfo_SyncTrustedUser proto.InternalMessageInfo
func (m *SyncTrustedUser) GetClock() uint64 {
if m != nil {
return m.Clock
}
return 0
}
func (m *SyncTrustedUser) GetId() string {
if m != nil {
return m.Id
}
return ""
}
func (m *SyncTrustedUser) GetStatus() SyncTrustedUser_TrustStatus {
if m != nil {
return m.Status
}
return SyncTrustedUser_UNKNOWN
}
type SyncVerificationRequest struct {
Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"`
From string `protobuf:"bytes,2,opt,name=from,proto3" json:"from,omitempty"`
To string `protobuf:"bytes,3,opt,name=to,proto3" json:"to,omitempty"`
Challenge string `protobuf:"bytes,4,opt,name=challenge,proto3" json:"challenge,omitempty"`
RequestedAt uint64 `protobuf:"varint,5,opt,name=requested_at,json=requestedAt,proto3" json:"requested_at,omitempty"`
Response string `protobuf:"bytes,6,opt,name=response,proto3" json:"response,omitempty"`
RepliedAt uint64 `protobuf:"varint,7,opt,name=replied_at,json=repliedAt,proto3" json:"replied_at,omitempty"`
VerificationStatus SyncVerificationRequest_VerificationStatus `protobuf:"varint,8,opt,name=verification_status,json=verificationStatus,proto3,enum=protobuf.SyncVerificationRequest_VerificationStatus" json:"verification_status,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *SyncVerificationRequest) Reset() { *m = SyncVerificationRequest{} }
func (m *SyncVerificationRequest) String() string { return proto.CompactTextString(m) }
func (*SyncVerificationRequest) ProtoMessage() {}
func (*SyncVerificationRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_d61ab7221f0b5518, []int{22}
}
func (m *SyncVerificationRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SyncVerificationRequest.Unmarshal(m, b)
}
func (m *SyncVerificationRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SyncVerificationRequest.Marshal(b, m, deterministic)
}
func (m *SyncVerificationRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_SyncVerificationRequest.Merge(m, src)
}
func (m *SyncVerificationRequest) XXX_Size() int {
return xxx_messageInfo_SyncVerificationRequest.Size(m)
}
func (m *SyncVerificationRequest) XXX_DiscardUnknown() {
xxx_messageInfo_SyncVerificationRequest.DiscardUnknown(m)
}
var xxx_messageInfo_SyncVerificationRequest proto.InternalMessageInfo
func (m *SyncVerificationRequest) GetClock() uint64 {
if m != nil {
return m.Clock
}
return 0
}
func (m *SyncVerificationRequest) GetFrom() string {
if m != nil {
return m.From
}
return ""
}
func (m *SyncVerificationRequest) GetTo() string {
if m != nil {
return m.To
}
return ""
}
func (m *SyncVerificationRequest) GetChallenge() string {
if m != nil {
return m.Challenge
}
return ""
}
func (m *SyncVerificationRequest) GetRequestedAt() uint64 {
if m != nil {
return m.RequestedAt
}
return 0
}
func (m *SyncVerificationRequest) GetResponse() string {
if m != nil {
return m.Response
}
return ""
}
func (m *SyncVerificationRequest) GetRepliedAt() uint64 {
if m != nil {
return m.RepliedAt
}
return 0
}
func (m *SyncVerificationRequest) GetVerificationStatus() SyncVerificationRequest_VerificationStatus {
if m != nil {
return m.VerificationStatus
}
return SyncVerificationRequest_UNKNOWN
}
func init() {
proto.RegisterEnum("protobuf.SyncTrustedUser_TrustStatus", SyncTrustedUser_TrustStatus_name, SyncTrustedUser_TrustStatus_value)
proto.RegisterEnum("protobuf.SyncVerificationRequest_VerificationStatus", SyncVerificationRequest_VerificationStatus_name, SyncVerificationRequest_VerificationStatus_value)
proto.RegisterType((*Backup)(nil), "protobuf.Backup")
proto.RegisterType((*PairInstallation)(nil), "protobuf.PairInstallation")
proto.RegisterType((*SyncInstallationContact)(nil), "protobuf.SyncInstallationContact")
@ -1461,6 +1691,8 @@ func init() {
proto.RegisterType((*SyncWalletAccount)(nil), "protobuf.SyncWalletAccount")
proto.RegisterType((*SyncWalletAccounts)(nil), "protobuf.SyncWalletAccounts")
proto.RegisterType((*SyncCommunitySettings)(nil), "protobuf.SyncCommunitySettings")
proto.RegisterType((*SyncTrustedUser)(nil), "protobuf.SyncTrustedUser")
proto.RegisterType((*SyncVerificationRequest)(nil), "protobuf.SyncVerificationRequest")
}
func init() {
@ -1468,85 +1700,102 @@ func init() {
}
var fileDescriptor_d61ab7221f0b5518 = []byte{
// 1269 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x56, 0x4d, 0x73, 0xdb, 0xc4,
0x1b, 0x1f, 0xd9, 0x8e, 0x2d, 0x3f, 0xb6, 0xd3, 0xfc, 0xf7, 0x5f, 0x5a, 0xf5, 0x6d, 0xe2, 0xaa,
0x74, 0xc8, 0x29, 0x30, 0xe5, 0x50, 0x98, 0xc2, 0x80, 0x93, 0x76, 0x20, 0x85, 0x96, 0xcc, 0x26,
0x81, 0x19, 0x2e, 0x9a, 0x8d, 0xb4, 0xb5, 0x17, 0xcb, 0x92, 0xd8, 0x5d, 0xb9, 0xa3, 0x7e, 0x00,
0x0e, 0x1c, 0xb9, 0x70, 0xe5, 0x0c, 0x5f, 0x84, 0x1b, 0xdf, 0x83, 0x03, 0x9f, 0x81, 0xd9, 0x17,
0xc9, 0x52, 0x52, 0xa7, 0x61, 0x38, 0x71, 0xd2, 0x3e, 0xcf, 0xfe, 0xf6, 0xd1, 0x3e, 0xbf, 0xe7,
0x6d, 0x61, 0x94, 0x11, 0xc6, 0x59, 0x32, 0xdd, 0xcd, 0x78, 0x2a, 0x53, 0xe4, 0xea, 0xcf, 0x69,
0xfe, 0xc2, 0xff, 0xd5, 0x81, 0xee, 0x1e, 0x09, 0xe7, 0x79, 0x86, 0xae, 0xc2, 0x46, 0x18, 0xa7,
0xe1, 0xdc, 0x73, 0xc6, 0xce, 0x4e, 0x07, 0x1b, 0x01, 0x6d, 0x42, 0x8b, 0x45, 0x5e, 0x6b, 0xec,
0xec, 0xf4, 0x71, 0x8b, 0x45, 0xe8, 0x13, 0x70, 0xc3, 0x34, 0x91, 0x24, 0x94, 0xc2, 0x6b, 0x8f,
0xdb, 0x3b, 0x83, 0x07, 0xf7, 0x76, 0x4b, 0x6b, 0xbb, 0x47, 0x45, 0x12, 0x1e, 0x24, 0x42, 0x92,
0x38, 0x26, 0x92, 0xa5, 0xc9, 0xbe, 0x41, 0x7e, 0xfd, 0x00, 0x57, 0x87, 0xd0, 0x87, 0x30, 0x08,
0xd3, 0xc5, 0x22, 0x4f, 0x98, 0x64, 0x54, 0x78, 0x1d, 0x6d, 0xe3, 0x7a, 0xd3, 0xc6, 0xbe, 0x05,
0x14, 0xb8, 0x8e, 0xf5, 0x7f, 0x70, 0x60, 0xeb, 0x90, 0x30, 0x5e, 0xff, 0xc5, 0x9a, 0x6b, 0xbf,
0x03, 0x57, 0x58, 0x0d, 0x15, 0x54, 0x3e, 0x6c, 0xd6, 0xd5, 0x07, 0x11, 0xda, 0x86, 0x41, 0x44,
0x97, 0x2c, 0xa4, 0x81, 0x2c, 0x32, 0xea, 0xb5, 0x35, 0x08, 0x8c, 0xea, 0xb8, 0xc8, 0x28, 0x42,
0xd0, 0x49, 0xc8, 0x82, 0x7a, 0x1d, 0xbd, 0xa3, 0xd7, 0xfe, 0x9f, 0x0e, 0x5c, 0x5f, 0xe3, 0xeb,
0x25, 0x69, 0xbc, 0x07, 0xa3, 0x8c, 0xa7, 0x2f, 0x58, 0x4c, 0x03, 0xb6, 0x20, 0xd3, 0xf2, 0xc7,
0x43, 0xab, 0x3c, 0x50, 0x3a, 0x74, 0x03, 0x5c, 0x9a, 0x88, 0xa0, 0xf6, 0xfb, 0x1e, 0x4d, 0xc4,
0x73, 0xb2, 0xa0, 0xe8, 0x2e, 0x0c, 0x63, 0x22, 0x64, 0x90, 0x67, 0x11, 0x91, 0x34, 0xf2, 0x36,
0xf4, 0xcf, 0x06, 0x4a, 0x77, 0x62, 0x54, 0xca, 0x33, 0x51, 0x08, 0x49, 0x17, 0x81, 0x24, 0x53,
0xe1, 0x75, 0xc7, 0x6d, 0xe5, 0x99, 0x51, 0x1d, 0x93, 0xa9, 0x40, 0xf7, 0x61, 0x33, 0x4e, 0x43,
0x12, 0x07, 0x09, 0x0b, 0xe7, 0xfa, 0x27, 0x3d, 0xfd, 0x93, 0x91, 0xd6, 0x3e, 0xb7, 0x4a, 0xff,
0xc7, 0x36, 0xdc, 0x58, 0x1b, 0x58, 0xf4, 0x1e, 0x5c, 0xad, 0x5f, 0x24, 0xd0, 0x67, 0xe3, 0xc2,
0x7a, 0x8f, 0x6a, 0x17, 0xfa, 0xd2, 0xec, 0xfc, 0x87, 0xa9, 0x50, 0xb1, 0x25, 0x51, 0x44, 0x23,
0xaf, 0x3f, 0x76, 0x76, 0x5c, 0x6c, 0x04, 0xe4, 0x41, 0xef, 0x54, 0x05, 0x99, 0x46, 0x1e, 0x68,
0x7d, 0x29, 0x2a, 0xfc, 0x22, 0x57, 0x77, 0x1a, 0x18, 0xbc, 0x16, 0x14, 0x9e, 0xd3, 0x45, 0xba,
0xa4, 0x91, 0x37, 0x34, 0x78, 0x2b, 0xa2, 0x31, 0x0c, 0x67, 0x44, 0x04, 0xda, 0x6c, 0x90, 0x0b,
0x6f, 0xa4, 0xb7, 0x61, 0x46, 0xc4, 0x44, 0xa9, 0x4e, 0x84, 0xff, 0xf2, 0x7c, 0xe2, 0x4d, 0xc2,
0x30, 0xcd, 0x93, 0x75, 0x89, 0x77, 0x8e, 0xdd, 0xd6, 0x6b, 0xd8, 0x3d, 0x4b, 0x61, 0xfb, 0x1c,
0x85, 0xfe, 0x1e, 0xdc, 0x3c, 0xfb, 0xe3, 0xc3, 0xfc, 0x34, 0x66, 0xe1, 0xfe, 0x8c, 0x5c, 0x32,
0xe9, 0xfd, 0xbf, 0x5a, 0x30, 0x6a, 0x94, 0xf7, 0x1b, 0xcf, 0x0d, 0x75, 0x86, 0x6c, 0xc3, 0x20,
0xe3, 0x6c, 0x49, 0x24, 0x0d, 0xe6, 0xb4, 0xd0, 0xb7, 0x1b, 0x62, 0xb0, 0xaa, 0x2f, 0x68, 0x81,
0xc6, 0xaa, 0x88, 0x45, 0xc8, 0x59, 0xa6, 0xee, 0xa5, 0x13, 0x64, 0x88, 0xeb, 0x2a, 0x74, 0x0d,
0xba, 0xdf, 0xa5, 0x2c, 0xb1, 0xe9, 0xe1, 0x62, 0x2b, 0xa1, 0x9b, 0xe0, 0x2e, 0x29, 0x67, 0x2f,
0x18, 0x8d, 0xbc, 0xae, 0xde, 0xa9, 0xe4, 0x55, 0xf4, 0x7a, 0xf5, 0xe8, 0x7d, 0x05, 0x5b, 0x9c,
0x7e, 0x9f, 0x53, 0x21, 0x45, 0x20, 0xd3, 0x40, 0xd9, 0xf1, 0x5c, 0xdd, 0xc4, 0xee, 0xaf, 0x6b,
0x62, 0x16, 0x7e, 0x9c, 0x3e, 0x4d, 0x59, 0x82, 0x37, 0x79, 0x43, 0x46, 0x8f, 0xc0, 0x15, 0x54,
0x4a, 0x96, 0x4c, 0x85, 0xce, 0xab, 0xc1, 0x83, 0xed, 0x35, 0x86, 0x8e, 0x2c, 0x0c, 0x57, 0x07,
0xd0, 0x6d, 0xe8, 0xd3, 0x24, 0xe4, 0x45, 0x26, 0xab, 0xec, 0x5b, 0x29, 0xfc, 0x3f, 0x1c, 0xb8,
0x75, 0xc1, 0x55, 0x2c, 0xd1, 0x4e, 0x45, 0xf4, 0x1d, 0x80, 0x4c, 0x07, 0x55, 0xf3, 0x6c, 0x02,
0xd7, 0x37, 0x1a, 0x45, 0x73, 0x15, 0xad, 0x76, 0x3d, 0x5a, 0x17, 0x94, 0xe6, 0x75, 0xe8, 0x85,
0x33, 0x22, 0x55, 0xf7, 0xdd, 0xd0, 0x3b, 0x5d, 0x25, 0x1e, 0x44, 0x2a, 0xe1, 0xca, 0xc6, 0x5e,
0xa8, 0xdd, 0xae, 0x89, 0x58, 0xa5, 0x3b, 0xd0, 0xec, 0x0b, 0x49, 0xa4, 0xa9, 0xc4, 0x0e, 0x36,
0x82, 0xff, 0x53, 0x0b, 0xb6, 0xce, 0xe6, 0x21, 0xfa, 0xb8, 0x36, 0x93, 0x1c, 0x1d, 0x8a, 0xbb,
0x6f, 0x9c, 0x49, 0xb5, 0x89, 0xf4, 0x19, 0x0c, 0xad, 0xd7, 0xea, 0x76, 0xc2, 0x6b, 0x69, 0x13,
0x6f, 0xaf, 0x37, 0xb1, 0x4a, 0x7c, 0x3c, 0xc8, 0xaa, 0xb5, 0x40, 0x8f, 0xa0, 0x47, 0x4c, 0x31,
0x6a, 0x86, 0x2e, 0xbc, 0x86, 0xad, 0x5a, 0x5c, 0x9e, 0xf8, 0x37, 0x73, 0xf1, 0x21, 0x5c, 0xd1,
0xbb, 0xea, 0x42, 0xb6, 0x93, 0x5c, 0xae, 0x20, 0x3f, 0x82, 0xab, 0xe5, 0xc1, 0x67, 0x54, 0x08,
0x32, 0xa5, 0x02, 0x53, 0x72, 0xd9, 0xd3, 0x9f, 0xc2, 0x35, 0x75, 0x7a, 0x12, 0x4a, 0xb6, 0x64,
0xb2, 0xd8, 0xa7, 0x89, 0xa4, 0xfc, 0x82, 0xf3, 0x5b, 0xd0, 0x66, 0x91, 0xa1, 0x77, 0x88, 0xd5,
0xd2, 0x7f, 0x6c, 0x9a, 0x4a, 0xd3, 0xc2, 0x24, 0x0c, 0xa9, 0xca, 0xde, 0x4b, 0x5b, 0x79, 0x62,
0x92, 0xbc, 0x69, 0xe5, 0x31, 0x13, 0x0b, 0x26, 0xc4, 0x3f, 0x30, 0xf3, 0x8b, 0x03, 0x43, 0x65,
0x67, 0x2f, 0x4d, 0xe7, 0x0b, 0xc2, 0xe7, 0xeb, 0x0f, 0xe6, 0x3c, 0xb6, 0x34, 0xa8, 0x65, 0xf5,
0x42, 0x68, 0xaf, 0x5e, 0x08, 0xe8, 0x16, 0xf4, 0x75, 0xbb, 0x0d, 0x14, 0xd6, 0x54, 0x85, 0xab,
0x15, 0x27, 0x3c, 0xae, 0x0f, 0x80, 0x8d, 0xe6, 0x00, 0xb8, 0x03, 0x10, 0xd1, 0x98, 0xaa, 0x41,
0x4a, 0xa4, 0xae, 0x8a, 0x0e, 0xee, 0x5b, 0xcd, 0x44, 0xfa, 0x4f, 0x4d, 0xf2, 0xef, 0xc7, 0x94,
0xf0, 0xcf, 0x99, 0x90, 0x29, 0x2f, 0xea, 0x35, 0xe6, 0x34, 0x6a, 0xec, 0x0e, 0x40, 0xa8, 0x80,
0xc6, 0x56, 0xcb, 0xd8, 0xb2, 0x9a, 0x89, 0xf4, 0x7f, 0x77, 0x00, 0x29, 0x63, 0x87, 0x66, 0x10,
0x1c, 0xb2, 0x50, 0xe6, 0x7c, 0xf5, 0xdc, 0x71, 0x6a, 0xce, 0x78, 0xd0, 0xcb, 0x48, 0x11, 0xa7,
0xa4, 0x6c, 0xca, 0xa5, 0xa8, 0x28, 0x7a, 0xc9, 0x22, 0x39, 0xd3, 0xbe, 0x8f, 0xb0, 0x11, 0x54,
0xb3, 0x9d, 0x51, 0x36, 0x9d, 0x49, 0xed, 0xf9, 0x08, 0x5b, 0x49, 0x91, 0xa2, 0x07, 0x91, 0x60,
0xaf, 0xa8, 0xf6, 0x7c, 0x84, 0x5d, 0xa5, 0x38, 0x62, 0xaf, 0xa8, 0x1a, 0x54, 0x9c, 0xaa, 0x9d,
0x40, 0x12, 0x3e, 0xa5, 0xc6, 0xfb, 0x11, 0x1e, 0x1a, 0xe5, 0xb1, 0xd6, 0xad, 0x42, 0xd2, 0xab,
0x85, 0xc4, 0x9f, 0xc1, 0xff, 0xcf, 0x7b, 0x22, 0x14, 0x33, 0x73, 0x5a, 0x04, 0xf9, 0x8a, 0x99,
0x39, 0x2d, 0x4e, 0x58, 0x84, 0x3e, 0x00, 0x37, 0xb3, 0x20, 0x5b, 0xec, 0xb7, 0x9b, 0x75, 0xd6,
0xb4, 0x84, 0x2b, 0xb4, 0xff, 0x5b, 0x0b, 0xfe, 0xa7, 0x00, 0xdf, 0x90, 0x38, 0xa6, 0xf2, 0xe2,
0xc9, 0xeb, 0x41, 0x8f, 0x44, 0x11, 0xa7, 0x42, 0x94, 0xac, 0x59, 0x51, 0xf1, 0xf3, 0x52, 0x1b,
0xd0, 0xb4, 0xb9, 0xd8, 0x4a, 0x8a, 0x7b, 0x15, 0x3b, 0xcd, 0x9a, 0x8b, 0xf5, 0x5a, 0xe9, 0xf4,
0xc3, 0xd4, 0xf4, 0x4f, 0xbd, 0x56, 0x96, 0x55, 0xec, 0xd5, 0x34, 0xef, 0x9a, 0x86, 0x6b, 0x45,
0x85, 0xce, 0x88, 0x9c, 0xd9, 0xd7, 0x8b, 0x5e, 0xab, 0x11, 0x51, 0xb5, 0x70, 0xcf, 0xd5, 0x37,
0xa9, 0xf5, 0xf4, 0x32, 0xde, 0xfd, 0x5a, 0xbc, 0x95, 0x3f, 0x69, 0x9c, 0x72, 0x3d, 0x50, 0xfa,
0xd8, 0x08, 0x3a, 0xaa, 0x2c, 0x8a, 0x68, 0x62, 0x5f, 0x33, 0x56, 0x5a, 0xff, 0x9c, 0xf1, 0x9f,
0x99, 0x0c, 0x6b, 0x90, 0x25, 0xd0, 0x43, 0x70, 0x6d, 0xcf, 0x2b, 0xbb, 0xf5, 0xad, 0x26, 0xfb,
0x0d, 0x3c, 0xae, 0xc0, 0xfe, 0xcf, 0x0e, 0xbc, 0xf5, 0xda, 0x79, 0xb8, 0x26, 0x00, 0x67, 0x87,
0x8c, 0x29, 0xd9, 0xc6, 0x90, 0x79, 0x02, 0xdb, 0x33, 0x53, 0x47, 0x01, 0xe1, 0xe1, 0x8c, 0x2d,
0x69, 0x20, 0xf2, 0x2c, 0x4b, 0xb9, 0x0c, 0x68, 0x42, 0x4e, 0x63, 0xfb, 0x16, 0x72, 0xf1, 0x6d,
0x0b, 0x9b, 0x18, 0xd4, 0x91, 0x01, 0x3d, 0x31, 0x98, 0xbd, 0xd1, 0xb7, 0x83, 0xdd, 0x77, 0x1f,
0x95, 0x4e, 0x9c, 0x76, 0xf5, 0xea, 0xfd, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0x38, 0x5d, 0x51,
0xf8, 0x76, 0x0d, 0x00, 0x00,
// 1539 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x57, 0xcd, 0x72, 0xdb, 0x46,
0x12, 0x5e, 0x90, 0x14, 0x09, 0x36, 0x49, 0x99, 0x1e, 0x7b, 0x6d, 0xf8, 0xaf, 0x44, 0xc3, 0xeb,
0x5a, 0x9d, 0xe4, 0x2d, 0xef, 0x56, 0x79, 0x77, 0x1d, 0x57, 0x42, 0x51, 0x2c, 0x5b, 0xfe, 0xa1,
0x55, 0x10, 0x65, 0x27, 0xb9, 0xa0, 0x46, 0xc0, 0x88, 0x9c, 0x10, 0x04, 0x10, 0xcc, 0x50, 0x2e,
0xfa, 0x01, 0x72, 0x4e, 0xe5, 0x92, 0x6b, 0xce, 0xc9, 0x2d, 0x4f, 0x91, 0x5b, 0xde, 0x20, 0x0f,
0x90, 0x43, 0x9e, 0x21, 0xd5, 0x33, 0x43, 0x12, 0x94, 0x44, 0x59, 0xa9, 0x9c, 0x72, 0xe2, 0xf4,
0x37, 0x3d, 0x8d, 0xfe, 0xef, 0x26, 0x34, 0x52, 0xca, 0x33, 0x1e, 0x0f, 0xb6, 0xd2, 0x2c, 0x91,
0x09, 0xb1, 0xd5, 0xcf, 0xe1, 0xe4, 0xc8, 0xfd, 0xde, 0x82, 0xf2, 0x36, 0x0d, 0x46, 0x93, 0x94,
0x5c, 0x85, 0xb5, 0x20, 0x4a, 0x82, 0x91, 0x63, 0xb5, 0xac, 0xcd, 0x92, 0xa7, 0x09, 0xb2, 0x0e,
0x05, 0x1e, 0x3a, 0x85, 0x96, 0xb5, 0x59, 0xf5, 0x0a, 0x3c, 0x24, 0x1f, 0x83, 0x1d, 0x24, 0xb1,
0xa4, 0x81, 0x14, 0x4e, 0xb1, 0x55, 0xdc, 0xac, 0x3d, 0xbc, 0xb7, 0x35, 0x93, 0xb6, 0xb5, 0x3f,
0x8d, 0x83, 0xdd, 0x58, 0x48, 0x1a, 0x45, 0x54, 0xf2, 0x24, 0xee, 0x68, 0xce, 0x37, 0x0f, 0xbd,
0xf9, 0x23, 0xf2, 0x3f, 0xa8, 0x05, 0xc9, 0x78, 0x3c, 0x89, 0xb9, 0xe4, 0x4c, 0x38, 0x25, 0x25,
0xe3, 0xfa, 0xb2, 0x8c, 0x8e, 0x61, 0x98, 0x7a, 0x79, 0x5e, 0xf7, 0x2b, 0x0b, 0x9a, 0x7b, 0x94,
0x67, 0xf9, 0x4f, 0xac, 0x50, 0xfb, 0x9f, 0x70, 0x89, 0xe7, 0xb8, 0xfc, 0xb9, 0x0d, 0xeb, 0x79,
0x78, 0x37, 0x24, 0x1b, 0x50, 0x0b, 0xd9, 0x31, 0x0f, 0x98, 0x2f, 0xa7, 0x29, 0x73, 0x8a, 0x8a,
0x09, 0x34, 0xd4, 0x9f, 0xa6, 0x8c, 0x10, 0x28, 0xc5, 0x74, 0xcc, 0x9c, 0x92, 0xba, 0x51, 0x67,
0xf7, 0x57, 0x0b, 0xae, 0xaf, 0xb0, 0xf5, 0x82, 0x6e, 0xbc, 0x07, 0x8d, 0x34, 0x4b, 0x8e, 0x78,
0xc4, 0x7c, 0x3e, 0xa6, 0x83, 0xd9, 0x87, 0xeb, 0x06, 0xdc, 0x45, 0x8c, 0xdc, 0x00, 0x9b, 0xc5,
0xc2, 0xcf, 0x7d, 0xbe, 0xc2, 0x62, 0xd1, 0xa3, 0x63, 0x46, 0xee, 0x42, 0x3d, 0xa2, 0x42, 0xfa,
0x93, 0x34, 0xa4, 0x92, 0x85, 0xce, 0x9a, 0xfa, 0x58, 0x0d, 0xb1, 0x03, 0x0d, 0xa1, 0x65, 0x62,
0x2a, 0x24, 0x1b, 0xfb, 0x92, 0x0e, 0x84, 0x53, 0x6e, 0x15, 0xd1, 0x32, 0x0d, 0xf5, 0xe9, 0x40,
0x90, 0xfb, 0xb0, 0x1e, 0x25, 0x01, 0x8d, 0xfc, 0x98, 0x07, 0x23, 0xf5, 0x91, 0x8a, 0xfa, 0x48,
0x43, 0xa1, 0x3d, 0x03, 0xba, 0xbf, 0x14, 0xe1, 0xc6, 0xca, 0xc0, 0x92, 0x7f, 0xc1, 0xd5, 0xbc,
0x22, 0xbe, 0x7a, 0x1b, 0x4d, 0x8d, 0xf5, 0x24, 0xa7, 0xd0, 0x4b, 0x7d, 0xf3, 0x17, 0x76, 0x05,
0xc6, 0x96, 0x86, 0x21, 0x0b, 0x9d, 0x6a, 0xcb, 0xda, 0xb4, 0x3d, 0x4d, 0x10, 0x07, 0x2a, 0x87,
0x18, 0x64, 0x16, 0x3a, 0xa0, 0xf0, 0x19, 0x89, 0xfc, 0xe3, 0x09, 0xea, 0x54, 0xd3, 0xfc, 0x8a,
0x40, 0xfe, 0x8c, 0x8d, 0x93, 0x63, 0x16, 0x3a, 0x75, 0xcd, 0x6f, 0x48, 0xd2, 0x82, 0xfa, 0x90,
0x0a, 0x5f, 0x89, 0xf5, 0x27, 0xc2, 0x69, 0xa8, 0x6b, 0x18, 0x52, 0xd1, 0x46, 0xe8, 0x40, 0x90,
0x07, 0x70, 0xe5, 0x98, 0x65, 0xfc, 0x88, 0x07, 0x3a, 0xaf, 0x85, 0xa4, 0x72, 0x22, 0x9c, 0xf5,
0x96, 0xb5, 0x59, 0xf4, 0x48, 0xfe, 0x6a, 0x5f, 0xdd, 0xa0, 0x77, 0x64, 0x36, 0x11, 0x72, 0xc6,
0x79, 0x49, 0x71, 0xd6, 0x14, 0xa6, 0x59, 0xdc, 0x77, 0xa7, 0x93, 0xb9, 0x1d, 0x04, 0xc9, 0x24,
0x5e, 0x95, 0xcc, 0xa7, 0x22, 0x56, 0x38, 0x23, 0x62, 0x27, 0xc3, 0x52, 0x3c, 0x15, 0x16, 0x77,
0x1b, 0x6e, 0x9e, 0xfc, 0xf0, 0xde, 0xe4, 0x30, 0xe2, 0x41, 0x67, 0x48, 0x2f, 0x58, 0x48, 0xee,
0x6f, 0x05, 0x68, 0x2c, 0xb5, 0x8c, 0x0f, 0xbe, 0xab, 0xab, 0xac, 0xdb, 0x80, 0x5a, 0x9a, 0xf1,
0x63, 0x2a, 0x99, 0x3f, 0x62, 0x53, 0xa5, 0x5d, 0xdd, 0x03, 0x03, 0xbd, 0x60, 0x53, 0xd2, 0xc2,
0xc6, 0x20, 0x82, 0x8c, 0xa7, 0xa8, 0x97, 0x4a, 0xba, 0xba, 0x97, 0x87, 0xc8, 0x35, 0x28, 0x7f,
0x91, 0xf0, 0xd8, 0xa4, 0x9c, 0xed, 0x19, 0x8a, 0xdc, 0x04, 0x5b, 0x07, 0x82, 0x85, 0x4e, 0x59,
0xdd, 0xcc, 0xe9, 0x45, 0x46, 0x54, 0xf2, 0x19, 0xf1, 0x1a, 0x9a, 0x19, 0xfb, 0x72, 0xc2, 0x84,
0x14, 0xbe, 0x4c, 0x7c, 0x94, 0xe3, 0xd8, 0xaa, 0x31, 0xde, 0x5f, 0xd5, 0x18, 0x0d, 0x7b, 0x3f,
0x79, 0x9e, 0xf0, 0xd8, 0x5b, 0xcf, 0x96, 0x68, 0xf2, 0x18, 0x6c, 0xc1, 0xa4, 0xe4, 0xf1, 0x40,
0xa8, 0x5c, 0xad, 0x3d, 0xdc, 0x58, 0x21, 0x68, 0xdf, 0xb0, 0x79, 0xf3, 0x07, 0xe4, 0x36, 0x54,
0x59, 0x1c, 0x64, 0xd3, 0x54, 0xce, 0x33, 0x7a, 0x01, 0xb8, 0x3f, 0x5b, 0x70, 0xeb, 0x1c, 0x55,
0x8c, 0xa3, 0xad, 0xb9, 0xa3, 0xef, 0x00, 0xa4, 0x2a, 0xa8, 0xca, 0xcf, 0x3a, 0x70, 0x55, 0x8d,
0xa0, 0x9b, 0xe7, 0xd1, 0x2a, 0xe6, 0xa3, 0x75, 0x4e, 0xb9, 0x5f, 0x87, 0x4a, 0x30, 0xa4, 0x12,
0x3b, 0xfa, 0x9a, 0xba, 0x29, 0x23, 0xb9, 0x1b, 0x62, 0xc2, 0xcd, 0x86, 0xc5, 0x14, 0x6f, 0xcb,
0x3a, 0x62, 0x73, 0x6c, 0x57, 0x79, 0x1f, 0xcb, 0x40, 0x57, 0x77, 0xc9, 0xd3, 0x84, 0xfb, 0x4d,
0x01, 0x9a, 0x27, 0xf3, 0x90, 0x3c, 0xc9, 0xcd, 0x39, 0x4b, 0x85, 0xe2, 0xee, 0x07, 0xe7, 0x5c,
0x6e, 0xca, 0x3d, 0x85, 0xba, 0xb1, 0x1a, 0xb5, 0x13, 0x4e, 0x41, 0x89, 0xf8, 0xc7, 0x6a, 0x11,
0x8b, 0xc4, 0xf7, 0x6a, 0xe9, 0xfc, 0x2c, 0xc8, 0x63, 0xa8, 0x50, 0x5d, 0x8c, 0xca, 0x43, 0xe7,
0xaa, 0x61, 0xaa, 0xd6, 0x9b, 0xbd, 0xf8, 0x33, 0xb3, 0xf6, 0x11, 0x5c, 0x52, 0xb7, 0xa8, 0x90,
0xe9, 0x4e, 0x17, 0x2b, 0xc8, 0x8f, 0xe0, 0xea, 0xec, 0xe1, 0x2b, 0x26, 0x04, 0x1d, 0x30, 0xe1,
0x31, 0x7a, 0xd1, 0xd7, 0x9f, 0xc0, 0x35, 0x7c, 0xdd, 0x0e, 0x24, 0x3f, 0xe6, 0x72, 0xda, 0x61,
0xb1, 0x64, 0xd9, 0x39, 0xef, 0x9b, 0x50, 0xe4, 0xa1, 0x76, 0x6f, 0xdd, 0xc3, 0xa3, 0xbb, 0xa3,
0x9b, 0xca, 0xb2, 0x84, 0x76, 0x10, 0x30, 0xcc, 0xde, 0x0b, 0x4b, 0xe9, 0xea, 0x24, 0x5f, 0x96,
0xb2, 0xc3, 0xc5, 0x98, 0x0b, 0xf1, 0x07, 0xc4, 0x7c, 0x67, 0x41, 0x1d, 0xe5, 0x6c, 0x27, 0xc9,
0x68, 0x4c, 0xb3, 0xd1, 0xea, 0x87, 0x93, 0x2c, 0x32, 0x6e, 0xc0, 0xe3, 0x7c, 0xeb, 0x28, 0x2e,
0xb6, 0x0e, 0x72, 0x0b, 0xaa, 0xaa, 0xdd, 0xfa, 0xc8, 0xab, 0xab, 0xc2, 0x56, 0xc0, 0x41, 0x16,
0xe5, 0x87, 0xca, 0xda, 0xf2, 0x50, 0xb9, 0x03, 0x10, 0xb2, 0x88, 0xe1, 0x70, 0xa6, 0x52, 0x55,
0x45, 0xc9, 0xab, 0x1a, 0xa4, 0x2d, 0xdd, 0xe7, 0x3a, 0xf9, 0x3b, 0x11, 0xa3, 0xd9, 0x33, 0x2e,
0x64, 0x92, 0x4d, 0xf3, 0x35, 0x66, 0x2d, 0xd5, 0xd8, 0x1d, 0x80, 0x00, 0x19, 0xb5, 0xac, 0x82,
0x96, 0x65, 0x90, 0xb6, 0x74, 0x7f, 0xb2, 0x80, 0xa0, 0xb0, 0x3d, 0x3d, 0x08, 0xf6, 0x78, 0x20,
0x27, 0xd9, 0x62, 0x85, 0xb2, 0x72, 0xc6, 0x38, 0x50, 0x49, 0xe9, 0x34, 0x4a, 0xe8, 0xac, 0x29,
0xcf, 0x48, 0x74, 0xd1, 0x3b, 0x1e, 0xca, 0xa1, 0xb2, 0xbd, 0xe1, 0x69, 0x02, 0x9b, 0xed, 0x90,
0xf1, 0xc1, 0x50, 0x2a, 0xcb, 0x1b, 0x9e, 0xa1, 0xd0, 0x29, 0x6a, 0x10, 0x09, 0xfe, 0x9e, 0x29,
0xcb, 0x1b, 0x9e, 0x8d, 0xc0, 0x3e, 0x7f, 0xcf, 0x70, 0x50, 0x65, 0x0c, 0x6f, 0x7c, 0x49, 0xb3,
0x01, 0xd3, 0xd6, 0x37, 0xbc, 0xba, 0x06, 0xfb, 0x0a, 0x5b, 0x84, 0xa4, 0x92, 0x0b, 0x89, 0x3b,
0x84, 0x2b, 0xa7, 0x2d, 0x11, 0xe8, 0x99, 0x11, 0x9b, 0xfa, 0x93, 0x85, 0x67, 0x46, 0x6c, 0x7a,
0xc0, 0x43, 0xf2, 0x5f, 0xb0, 0x53, 0xc3, 0x64, 0x8a, 0xfd, 0xf6, 0x72, 0x9d, 0x2d, 0x4b, 0xf2,
0xe6, 0xdc, 0xee, 0x0f, 0x05, 0xb8, 0x8c, 0x0c, 0x6f, 0x69, 0x14, 0x31, 0x79, 0xfe, 0xe4, 0x75,
0xa0, 0x42, 0xc3, 0x30, 0x63, 0x42, 0xcc, 0xbc, 0x66, 0x48, 0xf4, 0xcf, 0x3b, 0x25, 0x40, 0xb9,
0xcd, 0xf6, 0x0c, 0x85, 0xbe, 0xc7, 0xd8, 0x29, 0xaf, 0xd9, 0x9e, 0x3a, 0x23, 0xa6, 0x96, 0x5d,
0xdd, 0x3f, 0xd5, 0x19, 0x25, 0x63, 0xec, 0x71, 0x9a, 0x97, 0x75, 0xc3, 0x35, 0x24, 0x72, 0xa7,
0x54, 0x0e, 0xcd, 0x46, 0xa4, 0xce, 0x38, 0x22, 0xe6, 0x2d, 0xdc, 0xb1, 0x95, 0x26, 0xb9, 0x9e,
0x3e, 0x8b, 0x77, 0x35, 0x17, 0x6f, 0xb4, 0x27, 0x89, 0x92, 0x4c, 0x0d, 0x94, 0xaa, 0xa7, 0x09,
0x15, 0x55, 0x1e, 0x86, 0x2c, 0x36, 0x1b, 0x92, 0xa1, 0x56, 0xaf, 0x48, 0xee, 0x2b, 0x9d, 0x61,
0x4b, 0xce, 0x12, 0xe4, 0x11, 0xd8, 0xa6, 0xe7, 0xcd, 0xba, 0xf5, 0xad, 0x65, 0xef, 0x2f, 0xf1,
0x7b, 0x73, 0x66, 0xf7, 0x5b, 0x0b, 0xfe, 0x7e, 0xe6, 0x3c, 0x5c, 0x11, 0x80, 0x93, 0x43, 0x46,
0x97, 0xec, 0xd2, 0x90, 0xe9, 0xc2, 0xc6, 0x50, 0xd7, 0x91, 0x4f, 0xb3, 0x60, 0xc8, 0x8f, 0x99,
0x2f, 0x26, 0x69, 0x9a, 0x64, 0xd2, 0x67, 0x31, 0x3d, 0x8c, 0xcc, 0x2e, 0x64, 0x7b, 0xb7, 0x0d,
0x5b, 0x5b, 0x73, 0xed, 0x6b, 0xa6, 0xae, 0xe6, 0x71, 0x7f, 0xb4, 0x74, 0x07, 0xee, 0xe3, 0xa6,
0x86, 0xbb, 0x1f, 0xcb, 0x2e, 0xf8, 0xdf, 0xe2, 0x09, 0x94, 0xcd, 0xb2, 0x87, 0xdf, 0x59, 0x3f,
0xb9, 0x43, 0xe4, 0x04, 0x6e, 0xf5, 0x17, 0x6b, 0xa0, 0x67, 0x1e, 0xb9, 0xff, 0x87, 0x5a, 0x0e,
0x26, 0x35, 0xa8, 0x1c, 0xf4, 0x5e, 0xf4, 0x5e, 0xbf, 0xed, 0x35, 0xff, 0x86, 0x44, 0xdf, 0x3b,
0xd8, 0xef, 0x77, 0x77, 0x9a, 0x16, 0xb9, 0x0c, 0x8d, 0x83, 0x9e, 0x22, 0xdf, 0xbe, 0xf6, 0xfa,
0xcf, 0x3e, 0x6b, 0x16, 0xdc, 0xaf, 0x8b, 0x7a, 0x97, 0x7c, 0x93, 0x5b, 0x44, 0xcd, 0x7e, 0xb0,
0x42, 0x79, 0x02, 0xa5, 0xa3, 0x2c, 0x19, 0x1b, 0xf5, 0xd5, 0x19, 0x0d, 0x92, 0x89, 0x69, 0x7d,
0x05, 0x99, 0x60, 0xb6, 0x05, 0x43, 0x0c, 0x60, 0x3c, 0x98, 0xad, 0x03, 0x0b, 0x00, 0x43, 0x62,
0xb6, 0x1f, 0xdd, 0x95, 0xcc, 0xfe, 0x3f, 0xc7, 0xda, 0x12, 0x37, 0xb2, 0x8c, 0x89, 0x34, 0x89,
0xc5, 0x2c, 0xbb, 0xe7, 0x34, 0xb6, 0xb4, 0x8c, 0xa5, 0x11, 0xd7, 0x8f, 0x75, 0x0f, 0xa8, 0x1a,
0xa4, 0x2d, 0x09, 0x3b, 0x7b, 0xe1, 0xb6, 0x95, 0x67, 0xff, 0xb3, 0xec, 0xd9, 0x33, 0xac, 0xde,
0x7a, 0x73, 0x6a, 0x25, 0x3f, 0x6b, 0x4d, 0x77, 0x3f, 0x05, 0x72, 0x9a, 0xf3, 0x94, 0xef, 0xf7,
0xba, 0xbd, 0x9d, 0xdd, 0xde, 0xd3, 0xa6, 0x45, 0xea, 0x60, 0xb7, 0x3b, 0x9d, 0xee, 0x1e, 0x46,
0xa2, 0x80, 0xd4, 0x4e, 0xb7, 0xf3, 0x72, 0xb7, 0xd7, 0xdd, 0x69, 0x16, 0x91, 0xea, 0xb4, 0x7b,
0x9d, 0xee, 0xcb, 0xee, 0x4e, 0xb3, 0xb4, 0xdd, 0xf8, 0xbc, 0xb6, 0xf5, 0xe0, 0xf1, 0x4c, 0xcf,
0xc3, 0xb2, 0x3a, 0xfd, 0xfb, 0xf7, 0x00, 0x00, 0x00, 0xff, 0xff, 0xac, 0x00, 0x9e, 0x9c, 0x12,
0x10, 0x00, 0x00,
}

View File

@ -41,6 +41,8 @@ message SyncInstallationContactV2 {
bool muted = 11;
bool removed = 12;
bool has_added_us = 13;
int64 verification_status = 14;
int64 trust_status = 15;
}
message SyncInstallationAccount {
@ -162,3 +164,34 @@ message SyncCommunitySettings {
string community_id = 2;
bool history_archive_support_enabled = 3;
}
message SyncTrustedUser {
uint64 clock = 1;
string id = 2;
TrustStatus status = 3;
enum TrustStatus {
UNKNOWN = 0;
TRUSTED = 1;
UNTRUSTWORTHY = 2;
}
}
message SyncVerificationRequest {
uint64 clock = 1;
string from = 2;
string to = 3;
string challenge = 4;
uint64 requested_at = 5;
string response = 6;
uint64 replied_at = 7;
VerificationStatus verification_status = 8;
enum VerificationStatus {
UNKNOWN = 0;
PENDING = 1;
ACCEPTED = 2;
DECLINED = 3;
CANCELED = 4;
}
}

View File

@ -4,7 +4,7 @@ import (
"github.com/golang/protobuf/proto"
)
//go:generate protoc --go_out=. ./chat_message.proto ./application_metadata_message.proto ./membership_update_message.proto ./command.proto ./contact.proto ./pairing.proto ./push_notifications.proto ./emoji_reaction.proto ./enums.proto ./group_chat_invitation.proto ./chat_identity.proto ./communities.proto ./pin_message.proto ./anon_metrics.proto ./status_update.proto ./sync_settings.proto
//go:generate protoc --go_out=. ./chat_message.proto ./application_metadata_message.proto ./membership_update_message.proto ./command.proto ./contact.proto ./pairing.proto ./push_notifications.proto ./emoji_reaction.proto ./enums.proto ./group_chat_invitation.proto ./chat_identity.proto ./communities.proto ./pin_message.proto ./anon_metrics.proto ./status_update.proto ./sync_settings.proto ./contact_verification.proto
func Unmarshal(payload []byte) (*ApplicationMetadataMessage, error) {
var message ApplicationMetadataMessage

View File

@ -90,7 +90,7 @@ func _1593601729_initial_schemaDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1593601729_initial_schema.down.sql", size: 144, mode: os.FileMode(0644), modTime: time.Unix(1597848235, 0)}
info := bindataFileInfo{name: "1593601729_initial_schema.down.sql", size: 144, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xa, 0x95, 0x55, 0x64, 0x38, 0x40, 0x16, 0xbf, 0x8b, 0x1c, 0x18, 0xb4, 0xc5, 0x7f, 0xd0, 0xb8, 0xf0, 0x3c, 0xa2, 0x82, 0xf8, 0x8d, 0x5a, 0xd3, 0xb6, 0x6e, 0xa3, 0xb4, 0xc, 0x9, 0x33, 0x0}}
return a, nil
}
@ -110,7 +110,7 @@ func _1593601729_initial_schemaUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1593601729_initial_schema.up.sql", size: 1773, mode: os.FileMode(0644), modTime: time.Unix(1597848235, 0)}
info := bindataFileInfo{name: "1593601729_initial_schema.up.sql", size: 1773, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x4e, 0x1e, 0x5, 0x35, 0x9, 0xb2, 0x2d, 0x6f, 0x33, 0x63, 0xa2, 0x7a, 0x5b, 0xd2, 0x2d, 0xcb, 0x79, 0x7e, 0x6, 0xb4, 0x9d, 0x35, 0xd8, 0x9b, 0x55, 0xe5, 0xf8, 0x44, 0xca, 0xa6, 0xf3, 0xd3}}
return a, nil
}
@ -130,7 +130,7 @@ func _1597909626_add_server_typeDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1597909626_add_server_type.down.sql", size: 0, mode: os.FileMode(0644), modTime: time.Unix(1604313406, 0)}
info := bindataFileInfo{name: "1597909626_add_server_type.down.sql", size: 0, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xe3, 0xb0, 0xc4, 0x42, 0x98, 0xfc, 0x1c, 0x14, 0x9a, 0xfb, 0xf4, 0xc8, 0x99, 0x6f, 0xb9, 0x24, 0x27, 0xae, 0x41, 0xe4, 0x64, 0x9b, 0x93, 0x4c, 0xa4, 0x95, 0x99, 0x1b, 0x78, 0x52, 0xb8, 0x55}}
return a, nil
}
@ -150,7 +150,7 @@ func _1597909626_add_server_typeUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1597909626_add_server_type.up.sql", size: 145, mode: os.FileMode(0644), modTime: time.Unix(1604313406, 0)}
info := bindataFileInfo{name: "1597909626_add_server_type.up.sql", size: 145, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xc8, 0x3f, 0xe0, 0xe7, 0x57, 0x0, 0x5d, 0x60, 0xf3, 0x55, 0x64, 0x71, 0x80, 0x3c, 0xca, 0x8, 0x61, 0xb5, 0x3c, 0xe, 0xa1, 0xe4, 0x61, 0xd1, 0x4e, 0xd8, 0xb2, 0x55, 0xdd, 0x87, 0x62, 0x9b}}
return a, nil
}
@ -170,7 +170,7 @@ func _1599053776_add_chat_id_and_typeDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1599053776_add_chat_id_and_type.down.sql", size: 0, mode: os.FileMode(0644), modTime: time.Unix(1604313406, 0)}
info := bindataFileInfo{name: "1599053776_add_chat_id_and_type.down.sql", size: 0, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xe3, 0xb0, 0xc4, 0x42, 0x98, 0xfc, 0x1c, 0x14, 0x9a, 0xfb, 0xf4, 0xc8, 0x99, 0x6f, 0xb9, 0x24, 0x27, 0xae, 0x41, 0xe4, 0x64, 0x9b, 0x93, 0x4c, 0xa4, 0x95, 0x99, 0x1b, 0x78, 0x52, 0xb8, 0x55}}
return a, nil
}
@ -190,7 +190,7 @@ func _1599053776_add_chat_id_and_typeUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1599053776_add_chat_id_and_type.up.sql", size: 264, mode: os.FileMode(0644), modTime: time.Unix(1604313406, 0)}
info := bindataFileInfo{name: "1599053776_add_chat_id_and_type.up.sql", size: 264, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xea, 0x7a, 0xf9, 0xc4, 0xa2, 0x96, 0x2e, 0xf9, 0x8f, 0x7, 0xf1, 0x1e, 0x73, 0x8a, 0xa6, 0x3a, 0x13, 0x4, 0x73, 0x82, 0x83, 0xb, 0xe3, 0xb5, 0x3b, 0x7e, 0xd, 0x23, 0xce, 0x98, 0xd4, 0xdc}}
return a, nil
}
@ -210,7 +210,7 @@ func docGo() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "doc.go", size: 382, mode: os.FileMode(0644), modTime: time.Unix(1597848235, 0)}
info := bindataFileInfo{name: "doc.go", size: 382, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xc0, 0x2f, 0x1e, 0x64, 0x9, 0x93, 0xe4, 0x8b, 0xf2, 0x98, 0x5a, 0x45, 0xe2, 0x80, 0x88, 0x67, 0x7a, 0x2d, 0xd7, 0x4b, 0xd1, 0x73, 0xb6, 0x6d, 0x15, 0xc2, 0x0, 0x34, 0xcd, 0xa0, 0xdb, 0x20}}
return a, nil
}

View File

@ -88,7 +88,7 @@ func _1593601728_initial_schemaDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1593601728_initial_schema.down.sql", size: 200, mode: os.FileMode(0644), modTime: time.Unix(1597848235, 0)}
info := bindataFileInfo{name: "1593601728_initial_schema.down.sql", size: 200, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x88, 0x8a, 0x61, 0x81, 0x57, 0x45, 0x9b, 0x97, 0x9b, 0x1f, 0xf6, 0x94, 0x8a, 0x20, 0xb3, 0x2b, 0xff, 0x69, 0x49, 0xf4, 0x58, 0xcc, 0xd0, 0x55, 0xcc, 0x9a, 0x8b, 0xb6, 0x7f, 0x29, 0x53, 0xc1}}
return a, nil
}
@ -108,7 +108,7 @@ func _1593601728_initial_schemaUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1593601728_initial_schema.up.sql", size: 675, mode: os.FileMode(0644), modTime: time.Unix(1597848235, 0)}
info := bindataFileInfo{name: "1593601728_initial_schema.up.sql", size: 675, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xfd, 0x61, 0x90, 0x79, 0xd9, 0x14, 0x65, 0xe9, 0x96, 0x53, 0x17, 0x33, 0x54, 0xeb, 0x8b, 0x5d, 0x95, 0x99, 0x10, 0x36, 0x58, 0xdd, 0xb2, 0xbf, 0x45, 0xd9, 0xbb, 0xc4, 0x92, 0xe, 0xce, 0x2}}
return a, nil
}
@ -128,7 +128,7 @@ func _1598419937_add_push_notifications_tableDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1598419937_add_push_notifications_table.down.sql", size: 51, mode: os.FileMode(0644), modTime: time.Unix(1604313406, 0)}
info := bindataFileInfo{name: "1598419937_add_push_notifications_table.down.sql", size: 51, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xc, 0x98, 0xc8, 0x30, 0x45, 0x5b, 0xc5, 0x7d, 0x13, 0x5d, 0xe7, 0xc8, 0x23, 0x43, 0xf7, 0xdc, 0x9c, 0xe2, 0xdd, 0x63, 0xf0, 0xb7, 0x16, 0x40, 0xc, 0xda, 0xb9, 0x16, 0x70, 0x2b, 0x5a, 0x7e}}
return a, nil
}
@ -148,7 +148,7 @@ func _1598419937_add_push_notifications_tableUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1598419937_add_push_notifications_table.up.sql", size: 104, mode: os.FileMode(0644), modTime: time.Unix(1604313406, 0)}
info := bindataFileInfo{name: "1598419937_add_push_notifications_table.up.sql", size: 104, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x2, 0x3e, 0xef, 0xf, 0xc2, 0xdf, 0xbc, 0x99, 0x7a, 0xc2, 0xd3, 0x64, 0x4f, 0x4c, 0x7e, 0xfc, 0x2e, 0x8c, 0xa7, 0x54, 0xd3, 0x4d, 0x25, 0x98, 0x41, 0xbc, 0xea, 0xd7, 0x2, 0xc1, 0xd0, 0x52}}
return a, nil
}
@ -168,7 +168,7 @@ func docGo() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "doc.go", size: 382, mode: os.FileMode(0644), modTime: time.Unix(1597848235, 0)}
info := bindataFileInfo{name: "doc.go", size: 382, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xc0, 0x2f, 0x1e, 0x64, 0x9, 0x93, 0xe4, 0x8b, 0xf2, 0x98, 0x5a, 0x45, 0xe2, 0x80, 0x88, 0x67, 0x7a, 0x2d, 0xd7, 0x4b, 0xd1, 0x73, 0xb6, 0x6d, 0x15, 0xc2, 0x0, 0x34, 0xcd, 0xa0, 0xdb, 0x20}}
return a, nil
}

View File

@ -89,7 +89,7 @@ func _1561059284_add_waku_keysDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1561059284_add_waku_keys.down.sql", size: 22, mode: os.FileMode(0644), modTime: time.Unix(1622467450, 0)}
info := bindataFileInfo{name: "1561059284_add_waku_keys.down.sql", size: 22, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xe5, 0x2a, 0x7e, 0x9, 0xa3, 0xdd, 0xc6, 0x3, 0xfa, 0xaa, 0x98, 0xa0, 0x26, 0x5e, 0x67, 0x43, 0xe6, 0x20, 0xfd, 0x10, 0xfd, 0x60, 0x89, 0x17, 0x13, 0x87, 0x1b, 0x44, 0x36, 0x79, 0xb6, 0x60}}
return a, nil
}
@ -109,7 +109,7 @@ func _1561059284_add_waku_keysUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1561059284_add_waku_keys.up.sql", size: 109, mode: os.FileMode(0644), modTime: time.Unix(1622467450, 0)}
info := bindataFileInfo{name: "1561059284_add_waku_keys.up.sql", size: 109, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xa9, 0x5c, 0x8, 0x32, 0xef, 0x12, 0x88, 0x21, 0xd, 0x7a, 0x42, 0x4d, 0xe7, 0x2d, 0x6c, 0x99, 0xb6, 0x1, 0xf1, 0xba, 0x2c, 0x40, 0x8d, 0xa9, 0x4b, 0xe6, 0xc4, 0x21, 0xec, 0x47, 0x6b, 0xf7}}
return a, nil
}
@ -129,7 +129,7 @@ func _1616691080_add_wakuv2_keysDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1616691080_add_wakuV2_keys.down.sql", size: 24, mode: os.FileMode(0644), modTime: time.Unix(1625049989, 0)}
info := bindataFileInfo{name: "1616691080_add_wakuV2_keys.down.sql", size: 24, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x42, 0xb6, 0x23, 0x70, 0xb8, 0x63, 0x18, 0x61, 0xea, 0x35, 0x6e, 0xae, 0xe9, 0x71, 0x89, 0xa, 0xa5, 0x72, 0xa2, 0x64, 0xaa, 0x45, 0x1, 0xf, 0xfc, 0xee, 0x1b, 0xd9, 0xd2, 0x27, 0xf4, 0xe2}}
return a, nil
}
@ -149,7 +149,7 @@ func _1616691080_add_wakuv2_keysUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1616691080_add_wakuV2_keys.up.sql", size: 111, mode: os.FileMode(0644), modTime: time.Unix(1625049989, 0)}
info := bindataFileInfo{name: "1616691080_add_wakuV2_keys.up.sql", size: 111, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x10, 0xf0, 0x97, 0x25, 0xfe, 0x96, 0x2c, 0xa8, 0x62, 0x4a, 0x71, 0x75, 0xff, 0x5f, 0x43, 0x1e, 0x71, 0x53, 0xf1, 0xde, 0xf, 0xcf, 0xcd, 0x87, 0x15, 0x61, 0x9d, 0x25, 0x2e, 0xaf, 0x18, 0x99}}
return a, nil
}
@ -169,7 +169,7 @@ func _1634723014_add_wakuv2_keysUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1634723014_add_wakuV2_keys.up.sql", size: 125, mode: os.FileMode(0644), modTime: time.Unix(1637329330, 0)}
info := bindataFileInfo{name: "1634723014_add_wakuV2_keys.up.sql", size: 125, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x7e, 0xe1, 0x7a, 0x1e, 0x6, 0xad, 0x1b, 0x37, 0xdb, 0xea, 0x94, 0xaf, 0xe0, 0x7d, 0xc9, 0xd6, 0xda, 0x52, 0x71, 0x8a, 0x44, 0xb3, 0xa6, 0x7b, 0x1e, 0x90, 0xdb, 0x1e, 0x5a, 0xa, 0x40, 0x26}}
return a, nil
}
@ -189,7 +189,7 @@ func docGo() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "doc.go", size: 373, mode: os.FileMode(0644), modTime: time.Unix(1622467450, 0)}
info := bindataFileInfo{name: "doc.go", size: 373, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x23, 0x6a, 0xc1, 0xce, 0x94, 0xf6, 0xef, 0xf1, 0x97, 0x95, 0xb, 0x35, 0xaf, 0x5f, 0xe7, 0x5f, 0xac, 0x6e, 0xb8, 0xab, 0xba, 0xb5, 0x35, 0x97, 0x22, 0x36, 0x11, 0xce, 0x44, 0xfc, 0xfa, 0xac}}
return a, nil
}

View File

@ -282,6 +282,18 @@ func (m *StatusMessage) HandleApplication() error {
return m.unmarshalProtobufData(new(protobuf.RetractContactRequest))
case protobuf.ApplicationMetadataMessage_SYNC_COMMUNITY_SETTINGS:
return m.unmarshalProtobufData(new(protobuf.SyncCommunitySettings))
case protobuf.ApplicationMetadataMessage_REQUEST_CONTACT_VERIFICATION:
return m.unmarshalProtobufData(new(protobuf.RequestContactVerification))
case protobuf.ApplicationMetadataMessage_ACCEPT_CONTACT_VERIFICATION:
return m.unmarshalProtobufData(new(protobuf.AcceptContactVerification))
case protobuf.ApplicationMetadataMessage_CONTACT_VERIFICATION_TRUSTED:
return m.unmarshalProtobufData(new(protobuf.ContactVerificationTrusted))
case protobuf.ApplicationMetadataMessage_DECLINE_CONTACT_VERIFICATION:
return m.unmarshalProtobufData(new(protobuf.DeclineContactVerification))
case protobuf.ApplicationMetadataMessage_SYNC_TRUSTED_USER:
return m.unmarshalProtobufData((new(protobuf.SyncTrustedUser)))
case protobuf.ApplicationMetadataMessage_SYNC_VERIFICATION_REQUEST:
return m.unmarshalProtobufData((new(protobuf.SyncVerificationRequest)))
}
return nil
}

View File

@ -0,0 +1,275 @@
package verification
import (
"database/sql"
"errors"
"time"
)
var (
ErrVerificationRequestNotFound = errors.New("verification request not found")
)
type Persistence struct {
db *sql.DB
}
func NewPersistence(db *sql.DB) *Persistence {
return &Persistence{
db: db,
}
}
type RequestStatus int
const (
RequestStatusUNKNOWN RequestStatus = iota
RequestStatusPENDING
RequestStatusACCEPTED
RequestStatusDECLINED
RequestStatusCANCELED
RequestStatusTRUSTED
)
type TrustStatus int
const (
TrustStatusUNKNOWN TrustStatus = iota
TrustStatusTRUSTED
TrustStatusUNTRUSTWORTHY
)
type Request struct {
From string `json:"from"`
To string `json:"to"`
Challenge string `json:"challenge"`
Response string `json:"response"`
RequestedAt uint64 `json:"requested_at"`
RequestStatus RequestStatus `json:"verification_status"`
RepliedAt uint64 `json:"replied_at"`
}
func (p *Persistence) GetVerificationRequests() ([]Request, error) {
rows, err := p.db.Query("SELECT from_user, to_user, challenge, response, requested_at, verification_status, replied_at FROM verification_requests")
if err != nil {
return nil, err
}
defer rows.Close()
var result []Request
for rows.Next() {
var vr Request
err = rows.Scan(&vr.From, &vr.To, &vr.Challenge, &vr.Response, &vr.RequestedAt, &vr.RepliedAt, &vr.RequestStatus)
if err != nil {
return nil, err
}
result = append(result, vr)
}
return result, nil
}
func (p *Persistence) GetVerificationRequestFrom(contactID string) (*Request, error) {
var vr Request
err := p.db.QueryRow(`SELECT from_user, to_user, challenge, response, requested_at, verification_status, replied_at FROM verification_requests WHERE from_user = ?`, contactID).Scan(
&vr.From,
&vr.To,
&vr.Challenge,
&vr.Response,
&vr.RequestedAt,
&vr.RequestStatus,
&vr.RepliedAt,
)
switch err {
case sql.ErrNoRows:
return nil, nil
case nil:
return &vr, nil
default:
return nil, err
}
}
func (p *Persistence) GetReceivedVerificationRequests(myPublicKey string) ([]*Request, error) {
response := make([]*Request, 0)
query := `SELECT from_user, to_user, challenge, response, requested_at, verification_status, replied_at FROM verification_requests WHERE to_user = ?`
rows, err := p.db.Query(query, myPublicKey)
if err == sql.ErrNoRows {
return nil, nil
} else if err != nil {
return nil, err
}
for rows.Next() {
var vr Request
err := rows.Scan(
&vr.From,
&vr.To,
&vr.Challenge,
&vr.Response,
&vr.RequestedAt,
&vr.RequestStatus,
&vr.RepliedAt,
)
if err != nil {
return nil, err
}
response = append(response, &vr)
}
return response, nil
}
func (p *Persistence) GetVerificationRequestSentTo(contactID string) (*Request, error) {
var vr Request
err := p.db.QueryRow(`SELECT from_user, to_user, challenge, response, requested_at, verification_status, replied_at FROM verification_requests WHERE to_user = ?`, contactID).Scan(
&vr.From,
&vr.To,
&vr.Challenge,
&vr.Response,
&vr.RequestedAt,
&vr.RequestStatus,
&vr.RepliedAt,
)
switch err {
case sql.ErrNoRows:
return nil, nil
case nil:
return &vr, nil
default:
return nil, err
}
}
func (p *Persistence) SaveVerificationRequest(vr *Request) error {
if vr == nil {
return errors.New("invalid verification request provided")
}
_, err := p.db.Exec(`INSERT INTO verification_requests (from_user, to_user, challenge, response, requested_at, verification_status, replied_at) VALUES (?, ?, ?, ?, ?, ?, ?)`, vr.From, vr.To, vr.Challenge, vr.Response, vr.RequestedAt, vr.RequestStatus, vr.RepliedAt)
return err
}
func (p *Persistence) AcceptContactVerificationRequest(contactID string, response string) error {
result, err := p.db.Exec("UPDATE verification_requests SET response = ?, replied_at = ?, verification_status = ? WHERE from_user = ?", response, time.Now().Unix(), RequestStatusACCEPTED, contactID)
if err != nil {
return err
}
numRows, err := result.RowsAffected()
if err != nil {
return err
}
if numRows == 0 {
return ErrVerificationRequestNotFound
}
return nil
}
func (p *Persistence) DeclineContactVerificationRequest(contactID string) error {
result, err := p.db.Exec("UPDATE verification_requests SET response = '', replied_at = ?, verification_status = ? WHERE from_user = ?", time.Now().Unix(), RequestStatusDECLINED, contactID)
if err != nil {
return err
}
numRows, err := result.RowsAffected()
if err != nil {
return err
}
if numRows == 0 {
return ErrVerificationRequestNotFound
}
return nil
}
func (p *Persistence) UpsertVerificationRequest(request *Request) (shouldSync bool, err error) {
var dbRequestedAt uint64
var dbRepliedAt uint64
err = p.db.QueryRow(`SELECT requested_at, replied_at FROM verification_requests WHERE from_user = ? AND to_user = ?`, request.From, request.To).Scan(&dbRequestedAt, &dbRepliedAt)
if err == sql.ErrNoRows {
return true, p.SaveVerificationRequest(request)
}
if err == nil && ((dbRequestedAt < request.RequestedAt) || (dbRepliedAt < request.RepliedAt && dbRepliedAt != 0)) {
_, err := p.db.Exec("UPDATE verification_requests SET challenge = ?, response = ?, requested_at = ?, replied_at = ?, verification_status = ? WHERE from_user = ? AND to_user = ?",
request.Challenge,
request.Response,
request.RequestedAt,
request.RepliedAt,
request.RequestStatus,
request.From,
request.To)
if err == nil {
shouldSync = true
}
return shouldSync, err
}
return false, err
}
func (p *Persistence) SetTrustStatus(contactID string, trust TrustStatus, updatedAt uint64) error {
_, err := p.db.Exec(`INSERT INTO trusted_users (id, trust_status, updated_at) VALUES (?, ?, ?)`, contactID, trust, updatedAt)
return err
}
func (p *Persistence) UpsertTrustStatus(contactID string, trust TrustStatus, updatedAt uint64) (shouldSync bool, err error) {
var t uint64
err = p.db.QueryRow(`SELECT updated_at FROM trusted_users WHERE id = ?`, contactID).Scan(&t)
if err == sql.ErrNoRows {
return true, p.SetTrustStatus(contactID, trust, updatedAt)
}
if err == nil && updatedAt > t {
_, err := p.db.Exec("UPDATE trusted_users SET trust_status = ?, updated_at = ? WHERE id = ?", trust, updatedAt, contactID)
if err != nil {
return true, err
}
}
return false, err
}
func (p *Persistence) GetTrustStatus(contactID string) (TrustStatus, error) {
var t TrustStatus
err := p.db.QueryRow(`SELECT trust_status FROM trusted_users WHERE id = ?`, contactID).Scan(&t)
switch err {
case sql.ErrNoRows:
return TrustStatusUNKNOWN, nil
case nil:
return t, nil
default:
return TrustStatusUNKNOWN, err
}
}
func (p *Persistence) GetAllTrustStatus() (map[string]TrustStatus, error) {
result := make(map[string]TrustStatus)
rows, err := p.db.Query("SELECT id, trust_status FROM trusted_users")
if err != nil {
return nil, err
}
defer rows.Close()
for rows.Next() {
var id string
var ts TrustStatus
err = rows.Scan(&id, &ts)
if err != nil {
return nil, err
}
result[id] = ts
}
return result, nil
}

View File

@ -0,0 +1,190 @@
package verification
import (
"io/ioutil"
"testing"
"time"
"github.com/stretchr/testify/suite"
"github.com/status-im/status-go/protocol/sqlite"
)
func TestPersistenceSuite(t *testing.T) {
suite.Run(t, new(PersistenceSuite))
}
type PersistenceSuite struct {
suite.Suite
db *Persistence
}
func (s *PersistenceSuite) SetupTest() {
s.db = nil
dbPath, err := ioutil.TempFile("", "")
s.NoError(err, "creating temp file for db")
db, err := sqlite.Open(dbPath.Name(), "")
s.NoError(err, "creating sqlite db instance")
s.db = &Persistence{db: db}
}
func (s *PersistenceSuite) TestVerificationRequests() {
request := &Request{
From: "0x01",
To: "0x02",
Challenge: "ABC",
Response: "",
RequestedAt: uint64(time.Unix(1000, 0).Unix()),
RepliedAt: uint64(time.Unix(0, 0).Unix()),
RequestStatus: RequestStatusPENDING,
}
// Test Insert
err := s.db.SaveVerificationRequest(request)
s.NoError(err)
// Test Found
dbRequest, err := s.db.GetVerificationRequestFrom("0x01")
s.NoError(err)
s.Equal(request, dbRequest)
// Test Not Found
dbRequest2, err := s.db.GetVerificationRequestFrom("0x02")
s.NoError(err)
s.Nil(dbRequest2)
// Test Found
dbRequest3, err := s.db.GetVerificationRequestSentTo("0x02")
s.NoError(err)
s.Equal(request, dbRequest3)
// Test Accept
err = s.db.AcceptContactVerificationRequest("0x01", "XYZ")
s.NoError(err)
dbRequest, err = s.db.GetVerificationRequestFrom("0x01")
s.NoError(err)
s.Equal(RequestStatusACCEPTED, dbRequest.RequestStatus)
s.Equal("XYZ", dbRequest.Response)
s.NotEqual(time.Unix(0, 0), dbRequest.RepliedAt)
// Test Decline
request = &Request{
From: "0x03",
To: "0x02",
Challenge: "ABC",
Response: "",
RequestedAt: uint64(time.Unix(1000, 0).Unix()),
RepliedAt: uint64(time.Unix(0, 0).Unix()),
RequestStatus: RequestStatusPENDING,
}
err = s.db.SaveVerificationRequest(request)
s.NoError(err)
err = s.db.DeclineContactVerificationRequest("0x03")
s.NoError(err)
dbRequest, err = s.db.GetVerificationRequestFrom("0x03")
s.NoError(err)
s.Equal(RequestStatusDECLINED, dbRequest.RequestStatus)
s.NotEqual(time.Unix(0, 0), dbRequest.RepliedAt)
// Test Upsert fails because of older record
ogDbRequestStatus := dbRequest.RequestStatus
dbRequest.RequestStatus = RequestStatusPENDING
shouldSync, err := s.db.UpsertVerificationRequest(dbRequest)
s.NoError(err)
s.False(shouldSync)
dbRequest.RequestStatus = ogDbRequestStatus
dbRequest2, err = s.db.GetVerificationRequestFrom("0x03")
s.NoError(err)
s.Equal(dbRequest, dbRequest2)
// Test upsert success (update)
dbRequest2.RequestStatus = RequestStatusPENDING
dbRequest2.RepliedAt = dbRequest2.RepliedAt + 100
shouldSync, err = s.db.UpsertVerificationRequest(dbRequest2)
s.NoError(err)
s.True(shouldSync)
// Test upsert success (insert)
verifReq := &Request{
From: "0x0A",
To: "0x0B",
Challenge: "123",
Response: "456",
RequestedAt: uint64(time.Now().Unix()),
RepliedAt: uint64(time.Now().Unix()),
RequestStatus: RequestStatusPENDING,
}
shouldSync, err = s.db.UpsertVerificationRequest(verifReq)
s.NoError(err)
s.True(shouldSync)
dbRequest, err = s.db.GetVerificationRequestFrom("0x0A")
s.NoError(err)
s.Equal(verifReq.To, dbRequest.To)
}
func (s *PersistenceSuite) TestTrustStatus() {
err := s.db.SetTrustStatus("0x01", TrustStatusTRUSTED, 1000)
s.NoError(err)
err = s.db.SetTrustStatus("0x02", TrustStatusUNKNOWN, 1001)
s.NoError(err)
trustStatus, err := s.db.GetTrustStatus("0x01")
s.NoError(err)
s.Equal(TrustStatusTRUSTED, trustStatus)
err = s.db.SetTrustStatus("0x01", TrustStatusUNTRUSTWORTHY, 1000)
s.NoError(err)
trustStatus, err = s.db.GetTrustStatus("0x01")
s.NoError(err)
s.Equal(TrustStatusUNTRUSTWORTHY, trustStatus)
trustStatus, err = s.db.GetTrustStatus("0x03")
s.NoError(err)
s.Equal(TrustStatusUNKNOWN, trustStatus)
statuses, err := s.db.GetAllTrustStatus()
s.NoError(err)
s.Len(statuses, 2)
s.Equal(TrustStatusUNTRUSTWORTHY, statuses["0x01"])
s.Equal(TrustStatusUNKNOWN, statuses["0x02"])
// Upsert
success, err := s.db.UpsertTrustStatus("0x03", TrustStatusTRUSTED, 1000)
s.NoError(err)
s.True(success)
trustStatus, err = s.db.GetTrustStatus("0x03")
s.NoError(err)
s.Equal(TrustStatusTRUSTED, trustStatus)
success, err = s.db.UpsertTrustStatus("0x03", TrustStatusUNKNOWN, 500) // should not be successful without error, because of being older than latest value in the DB
s.NoError(err)
s.False(success)
trustStatus, err = s.db.GetTrustStatus("0x03")
s.NoError(err)
s.Equal(TrustStatusTRUSTED, trustStatus)
success, err = s.db.UpsertTrustStatus("0x03", TrustStatusUNKNOWN, 1500)
s.NoError(err)
s.False(success)
trustStatus, err = s.db.GetTrustStatus("0x03")
s.NoError(err)
s.Equal(TrustStatusUNKNOWN, trustStatus)
}

View File

@ -27,6 +27,7 @@ import (
"github.com/status-im/status-go/protocol/requests"
"github.com/status-im/status-go/protocol/transport"
"github.com/status-im/status-go/protocol/urls"
"github.com/status-im/status-go/protocol/verification"
"github.com/status-im/status-go/services/ext/mailservers"
)
@ -734,6 +735,58 @@ func (api *PublicAPI) SetDisplayName(ctx context.Context, displayName string) er
return api.service.messenger.SetDisplayName(displayName)
}
func (api *PublicAPI) MarkAsTrusted(ctx context.Context, contactID string) error {
return api.service.messenger.MarkAsTrusted(ctx, contactID)
}
func (api *PublicAPI) MarkAsUntrustworthy(ctx context.Context, contactID string) error {
return api.service.messenger.MarkAsUntrustworthy(ctx, contactID)
}
func (api *PublicAPI) RemoveTrustStatus(ctx context.Context, contactID string) error {
return api.service.messenger.RemoveTrustStatus(ctx, contactID)
}
func (api *PublicAPI) GetTrustStatus(ctx context.Context, contactID string) (verification.TrustStatus, error) {
return api.service.messenger.GetTrustStatus(contactID)
}
func (api *PublicAPI) SendContactVerificationRequest(ctx context.Context, contactID string, challenge string) error {
return api.service.messenger.SendContactVerificationRequest(ctx, contactID, challenge)
}
func (api *PublicAPI) GetVerificationRequestFrom(ctx context.Context, contactID string) (*verification.Request, error) {
return api.service.messenger.GetVerificationRequestFrom(ctx, contactID)
}
func (api *PublicAPI) GetReceivedVerificationRequests(ctx context.Context) ([]*verification.Request, error) {
return api.service.messenger.GetReceivedVerificationRequests(ctx)
}
func (api *PublicAPI) GetVerificationRequestSentTo(ctx context.Context, contactID string) (*verification.Request, error) {
return api.service.messenger.GetVerificationRequestSentTo(ctx, contactID)
}
func (api *PublicAPI) CancelVerificationRequest(ctx context.Context, contactID string) error {
return api.service.messenger.CancelVerificationRequest(ctx, contactID)
}
func (api *PublicAPI) AcceptContactVerificationRequest(ctx context.Context, contactID string, response string) error {
return api.service.messenger.AcceptContactVerificationRequest(ctx, contactID, response)
}
func (api *PublicAPI) DeclineContactVerificationRequest(ctx context.Context, contactID string) error {
return api.service.messenger.DeclineContactVerificationRequest(ctx, contactID)
}
func (api *PublicAPI) VerifiedTrusted(ctx context.Context, contactID string) error {
return api.service.messenger.VerifiedTrusted(ctx, contactID)
}
func (api *PublicAPI) VerifiedUntrustworthy(ctx context.Context, contactID string) error {
return api.service.messenger.VerifiedUntrustworthy(ctx, contactID)
}
func (api *PublicAPI) SendPairInstallation(ctx context.Context) (*protocol.MessengerResponse, error) {
return api.service.messenger.SendPairInstallation(ctx)
}

View File

@ -104,7 +104,7 @@ func emojisTxt() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "emojis.txt", size: 28134, mode: os.FileMode(0644), modTime: time.Unix(1647884149, 0)}
info := bindataFileInfo{name: "emojis.txt", size: 28134, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xf5, 0x28, 0xc, 0x22, 0x34, 0xa1, 0xeb, 0x8, 0x8d, 0xef, 0x38, 0x1b, 0xd8, 0xc2, 0x1a, 0x6d, 0xa2, 0x62, 0xad, 0x43, 0xfc, 0x1c, 0x38, 0xda, 0x8c, 0x3f, 0x34, 0xa, 0x8c, 0x6f, 0x5d, 0xd8}}
return a, nil
}
@ -124,7 +124,7 @@ func ConfigReadmeMd() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "../config/README.md", size: 3031, mode: os.FileMode(0644), modTime: time.Unix(1644838748, 0)}
info := bindataFileInfo{name: "../config/README.md", size: 3031, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x15, 0x44, 0x2b, 0x13, 0x14, 0x34, 0xa, 0x66, 0x62, 0x1b, 0xc6, 0x4a, 0x2c, 0x7d, 0x4d, 0x89, 0xfb, 0xc9, 0x69, 0xe4, 0x18, 0x5f, 0x3, 0x98, 0x6d, 0x3c, 0x9e, 0xa8, 0xcd, 0x53, 0x5d, 0x75}}
return a, nil
}
@ -144,7 +144,7 @@ func ConfigCliAnonMetricNodeClientJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "../config/cli/anon-metric-node-client.json", size: 857, mode: os.FileMode(0644), modTime: time.Unix(1631628269, 0)}
info := bindataFileInfo{name: "../config/cli/anon-metric-node-client.json", size: 857, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x90, 0xdf, 0xcd, 0xc8, 0x92, 0x1d, 0x63, 0x5e, 0xe1, 0xf9, 0x7f, 0xed, 0xf2, 0x68, 0x6b, 0x20, 0xff, 0x1d, 0x3b, 0xc9, 0x7b, 0xb9, 0x6a, 0xba, 0xd3, 0xbd, 0xf7, 0x48, 0x7b, 0x5a, 0x52, 0x79}}
return a, nil
}
@ -164,7 +164,7 @@ func ConfigCliAnonMetricNodeServerJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "../config/cli/anon-metric-node-server.json", size: 696, mode: os.FileMode(0644), modTime: time.Unix(1631628269, 0)}
info := bindataFileInfo{name: "../config/cli/anon-metric-node-server.json", size: 696, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xf0, 0x2f, 0x97, 0xab, 0x77, 0x61, 0x93, 0x9d, 0x1f, 0x33, 0x18, 0x72, 0xad, 0xce, 0xa3, 0x35, 0xa9, 0x44, 0xbf, 0x29, 0xa8, 0xea, 0x21, 0xb7, 0x22, 0x7f, 0x7d, 0x3a, 0x6b, 0x55, 0x3c, 0x66}}
return a, nil
}
@ -184,7 +184,7 @@ func ConfigCliFleetEthProdJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "../config/cli/fleet-eth.prod.json", size: 4470, mode: os.FileMode(0644), modTime: time.Unix(1641901099, 0)}
info := bindataFileInfo{name: "../config/cli/fleet-eth.prod.json", size: 4470, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x34, 0x7b, 0x71, 0xe3, 0x8a, 0xb0, 0x7f, 0xc3, 0xe, 0xd2, 0x67, 0x38, 0x50, 0xf4, 0x27, 0xaa, 0xec, 0x47, 0xa1, 0x1, 0xf7, 0x5d, 0xe9, 0x8f, 0x3c, 0x35, 0x9f, 0xdb, 0x9b, 0x30, 0x88, 0x26}}
return a, nil
}
@ -204,7 +204,7 @@ func ConfigCliFleetEthStagingJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "../config/cli/fleet-eth.staging.json", size: 2145, mode: os.FileMode(0644), modTime: time.Unix(1640110246, 0)}
info := bindataFileInfo{name: "../config/cli/fleet-eth.staging.json", size: 2145, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xa2, 0xe9, 0x85, 0x4b, 0x66, 0xa4, 0x1d, 0x4e, 0xaf, 0x21, 0xd7, 0xc2, 0x59, 0xf7, 0xd, 0xc2, 0x61, 0x4e, 0x4a, 0x9e, 0x38, 0x90, 0x6a, 0x2a, 0x16, 0xa6, 0x5c, 0x6d, 0x0, 0x5, 0x6, 0xb3}}
return a, nil
}
@ -224,7 +224,7 @@ func ConfigCliFleetEthTestJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "../config/cli/fleet-eth.test.json", size: 2174, mode: os.FileMode(0644), modTime: time.Unix(1640110247, 0)}
info := bindataFileInfo{name: "../config/cli/fleet-eth.test.json", size: 2174, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x55, 0x19, 0xca, 0x8d, 0xaa, 0x69, 0x9b, 0xa2, 0xa1, 0xdd, 0xef, 0xf2, 0x63, 0x5e, 0xcd, 0xe2, 0x8f, 0xc7, 0x37, 0x7e, 0x41, 0xa1, 0xc1, 0x3f, 0x65, 0x80, 0xa, 0xa4, 0x27, 0x74, 0x8d, 0xc6}}
return a, nil
}
@ -244,7 +244,7 @@ func ConfigCliFleetStatusProdJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "../config/cli/fleet-status.prod.json", size: 1920, mode: os.FileMode(0644), modTime: time.Unix(1647884149, 0)}
info := bindataFileInfo{name: "../config/cli/fleet-status.prod.json", size: 1920, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x5, 0xf, 0x4a, 0x61, 0xd2, 0xfd, 0x7d, 0x59, 0xcf, 0x49, 0x81, 0x6, 0x71, 0xdb, 0x63, 0xe8, 0xeb, 0xdf, 0x9e, 0x65, 0x22, 0xae, 0x9b, 0xb0, 0x16, 0x17, 0xe0, 0x52, 0xe6, 0xb, 0xcf, 0x88}}
return a, nil
}
@ -264,7 +264,7 @@ func ConfigCliFleetStatusTestJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "../config/cli/fleet-status.test.json", size: 937, mode: os.FileMode(0644), modTime: time.Unix(1647339453, 0)}
info := bindataFileInfo{name: "../config/cli/fleet-status.test.json", size: 937, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x5c, 0x3b, 0xc5, 0xd2, 0xe9, 0xd3, 0x52, 0xd4, 0x5a, 0xf3, 0xed, 0x37, 0xed, 0xde, 0xda, 0xc1, 0x57, 0x37, 0x17, 0x8c, 0x40, 0xee, 0x12, 0x82, 0x14, 0x2c, 0x8b, 0xc7, 0x4b, 0x2, 0xf8, 0x82}}
return a, nil
}
@ -284,7 +284,7 @@ func ConfigCliFleetWakuv2ProdJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "../config/cli/fleet-wakuv2.prod.json", size: 747, mode: os.FileMode(0644), modTime: time.Unix(1640110247, 0)}
info := bindataFileInfo{name: "../config/cli/fleet-wakuv2.prod.json", size: 747, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xc3, 0x81, 0x84, 0xfd, 0x7d, 0x7e, 0x27, 0xc8, 0x5e, 0xb6, 0x38, 0xe1, 0x6, 0xa, 0xbc, 0x86, 0x87, 0x54, 0xa2, 0x2f, 0xe1, 0xa1, 0xc8, 0x6, 0x80, 0xfa, 0xed, 0xfe, 0x13, 0x6c, 0x81, 0xd9}}
return a, nil
}
@ -304,7 +304,7 @@ func ConfigCliFleetWakuv2TestJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "../config/cli/fleet-wakuv2.test.json", size: 748, mode: os.FileMode(0644), modTime: time.Unix(1640110247, 0)}
info := bindataFileInfo{name: "../config/cli/fleet-wakuv2.test.json", size: 748, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x77, 0x6d, 0x28, 0xb7, 0xc2, 0xf3, 0x22, 0xe3, 0x6d, 0xc1, 0xeb, 0x4b, 0x42, 0xe2, 0x6, 0xb0, 0x60, 0x30, 0xdb, 0xe3, 0x26, 0xff, 0x9, 0xf5, 0xea, 0xe6, 0x56, 0xce, 0xa8, 0x98, 0x61, 0x70}}
return a, nil
}
@ -324,7 +324,7 @@ func ConfigCliLesEnabledJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "../config/cli/les-enabled.json", size: 58, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "../config/cli/les-enabled.json", size: 58, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x7e, 0xee, 0x27, 0xa7, 0x74, 0xa0, 0x46, 0xa1, 0x41, 0xed, 0x4d, 0x16, 0x5b, 0xf3, 0xf0, 0x7c, 0xc8, 0x2f, 0x6f, 0x47, 0xa4, 0xbb, 0x5f, 0x43, 0x33, 0xd, 0x9, 0x9d, 0xea, 0x9e, 0x15, 0xee}}
return a, nil
}
@ -344,7 +344,7 @@ func ConfigCliMailserverEnabledJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "../config/cli/mailserver-enabled.json", size: 176, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "../config/cli/mailserver-enabled.json", size: 176, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x34, 0xec, 0x81, 0x8b, 0x99, 0xb6, 0xdb, 0xc0, 0x8b, 0x46, 0x97, 0x96, 0xc7, 0x58, 0x30, 0x33, 0xef, 0x54, 0x25, 0x87, 0x7b, 0xb9, 0x94, 0x6b, 0x18, 0xa4, 0x5b, 0x58, 0x67, 0x7c, 0x44, 0xa6}}
return a, nil
}
@ -364,7 +364,7 @@ func ConfigStatusChainGenesisJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "../config/status-chain-genesis.json", size: 612, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "../config/status-chain-genesis.json", size: 612, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xb, 0xf0, 0xc, 0x1, 0x95, 0x65, 0x6, 0x55, 0x48, 0x8f, 0x83, 0xa0, 0xb4, 0x81, 0xda, 0xad, 0x30, 0x6d, 0xb2, 0x78, 0x1b, 0x26, 0x4, 0x13, 0x12, 0x9, 0x6, 0xae, 0x3a, 0x2c, 0x1, 0x71}}
return a, nil
}
@ -384,7 +384,7 @@ func keysBootnodeKey() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "keys/bootnode.key", size: 65, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "keys/bootnode.key", size: 65, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x31, 0xcf, 0x27, 0xd4, 0x96, 0x2e, 0x32, 0xcd, 0x58, 0x96, 0x2a, 0xe5, 0x8c, 0xa0, 0xf1, 0x73, 0x1f, 0xd6, 0xd6, 0x8b, 0xb, 0x73, 0xd3, 0x2c, 0x84, 0x1a, 0x56, 0xa4, 0x74, 0xb6, 0x95, 0x20}}
return a, nil
}
@ -404,7 +404,7 @@ func keysFirebaseauthkey() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "keys/firebaseauthkey", size: 153, mode: os.FileMode(0644), modTime: time.Unix(1541622131, 0)}
info := bindataFileInfo{name: "keys/firebaseauthkey", size: 153, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xe, 0x69, 0x23, 0x64, 0x7d, 0xf9, 0x14, 0x37, 0x6f, 0x2b, 0x1, 0xf0, 0xb0, 0xa4, 0xb2, 0xd0, 0x18, 0xcd, 0xf9, 0xeb, 0x57, 0xa3, 0xfd, 0x79, 0x25, 0xa7, 0x9c, 0x3, 0xce, 0x26, 0xec, 0xe1}}
return a, nil
}
@ -424,7 +424,7 @@ func keysTestAccount1StatusChainPk() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "keys/test-account1-status-chain.pk", size: 489, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "keys/test-account1-status-chain.pk", size: 489, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x8f, 0xba, 0x35, 0x1, 0x2b, 0x9d, 0xad, 0xf0, 0x2d, 0x3c, 0x4d, 0x6, 0xb5, 0x22, 0x2, 0x47, 0xd4, 0x1c, 0xf4, 0x31, 0x2f, 0xb, 0x5b, 0x27, 0x5d, 0x43, 0x97, 0x58, 0x2d, 0xf0, 0xe1, 0xbe}}
return a, nil
}
@ -444,7 +444,7 @@ func keysTestAccount1Pk() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "keys/test-account1.pk", size: 491, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "keys/test-account1.pk", size: 491, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x9, 0x43, 0xc2, 0xf4, 0x8c, 0xc6, 0x64, 0x25, 0x8c, 0x7, 0x8c, 0xa8, 0x89, 0x2b, 0x7b, 0x9b, 0x4f, 0x81, 0xcb, 0xce, 0x3d, 0xef, 0x82, 0x9c, 0x27, 0x27, 0xa9, 0xc5, 0x46, 0x70, 0x30, 0x38}}
return a, nil
}
@ -464,7 +464,7 @@ func keysTestAccount2StatusChainPk() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "keys/test-account2-status-chain.pk", size: 489, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "keys/test-account2-status-chain.pk", size: 489, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x9, 0xf8, 0x5c, 0xe9, 0x92, 0x96, 0x2d, 0x88, 0x2b, 0x8e, 0x42, 0x3f, 0xa4, 0x93, 0x6c, 0xad, 0xe9, 0xc0, 0x1b, 0x8a, 0x8, 0x8c, 0x5e, 0x7a, 0x84, 0xa2, 0xf, 0x9f, 0x77, 0x58, 0x2c, 0x2c}}
return a, nil
}
@ -484,7 +484,7 @@ func keysTestAccount2Pk() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "keys/test-account2.pk", size: 491, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "keys/test-account2.pk", size: 491, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x9f, 0x72, 0xd5, 0x95, 0x5c, 0x5a, 0x99, 0x9d, 0x2f, 0x21, 0x83, 0xd7, 0x10, 0x17, 0x4a, 0x3d, 0x65, 0xc9, 0x26, 0x1a, 0x2c, 0x9d, 0x65, 0x63, 0xd2, 0xa0, 0xfc, 0x7c, 0x0, 0x87, 0x38, 0x9f}}
return a, nil
}
@ -504,7 +504,7 @@ func keysTestAccount3BeforeEip55Pk() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "keys/test-account3-before-eip55.pk", size: 489, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "keys/test-account3-before-eip55.pk", size: 489, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x81, 0x40, 0x56, 0xc1, 0x5e, 0x10, 0x6e, 0x28, 0x15, 0x3, 0x4e, 0xc4, 0xc4, 0x71, 0x4d, 0x16, 0x99, 0xcc, 0x1b, 0x63, 0xee, 0x10, 0x20, 0xe4, 0x59, 0x52, 0x3f, 0xc0, 0xad, 0x15, 0x13, 0x72}}
return a, nil
}

View File

@ -86,7 +86,7 @@ func configPublicChainAccountsJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "config/public-chain-accounts.json", size: 307, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "config/public-chain-accounts.json", size: 307, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x76, 0x5d, 0xc0, 0xfe, 0x57, 0x50, 0x18, 0xec, 0x2d, 0x61, 0x1b, 0xa9, 0x81, 0x11, 0x5f, 0x77, 0xf7, 0xb6, 0x67, 0x82, 0x1, 0x40, 0x68, 0x9d, 0xc5, 0x41, 0xaf, 0xce, 0x43, 0x81, 0x92, 0x96}}
return a, nil
}
@ -106,7 +106,7 @@ func configStatusChainAccountsJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "config/status-chain-accounts.json", size: 543, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "config/status-chain-accounts.json", size: 543, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x8e, 0xb3, 0x61, 0x51, 0x70, 0x3c, 0x12, 0x3e, 0xf1, 0x1c, 0x81, 0xfb, 0x9a, 0x7c, 0xe3, 0x63, 0xd0, 0x8f, 0x12, 0xc5, 0x2d, 0xf4, 0xea, 0x27, 0x33, 0xef, 0xca, 0xf9, 0x3f, 0x72, 0x44, 0xbf}}
return a, nil
}
@ -126,7 +126,7 @@ func configTestDataJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "config/test-data.json", size: 84, mode: os.FileMode(0644), modTime: time.Unix(1586880790, 0)}
info := bindataFileInfo{name: "config/test-data.json", size: 84, mode: os.FileMode(0664), modTime: time.Unix(1656957386, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xce, 0x9d, 0x80, 0xf5, 0x87, 0xfa, 0x57, 0x1d, 0xa1, 0xd5, 0x7a, 0x10, 0x3, 0xac, 0xd7, 0xf4, 0x64, 0x32, 0x96, 0x2b, 0xb7, 0x21, 0xb7, 0xa6, 0x80, 0x40, 0xe9, 0x65, 0xe3, 0xd6, 0xbd, 0x40}}
return a, nil
}