Split clock values for contacts

This commit is contained in:
Andrea Maria Piana 2023-01-20 14:28:30 +00:00
parent a3f59e223c
commit cefa0089dc
No known key found for this signature in database
GPG key ID: AA6CCA6DE0E06424
47 changed files with 1867 additions and 1276 deletions

View file

@ -1 +1 @@
0.125.5
0.126.0

View file

@ -129,7 +129,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(1673964300, 0)}
info := bindataFileInfo{name: "1640111208_dummy.up.sql", size: 258, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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
}
@ -149,7 +149,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(1673964300, 0)}
info := bindataFileInfo{name: "1642666031_add_removed_clock_to_bookmarks.up.sql", size: 117, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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
}
@ -169,7 +169,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(1673964300, 0)}
info := bindataFileInfo{name: "1643644541_gif_api_key_setting.up.sql", size: 108, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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
}
@ -189,7 +189,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(1673964300, 0)}
info := bindataFileInfo{name: "1644188994_recent_stickers.up.sql", size: 79, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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
}
@ -209,7 +209,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(1673964300, 0)}
info := bindataFileInfo{name: "1646659233_add_address_to_dapp_permisssion.up.sql", size: 700, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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
}
@ -229,7 +229,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(1673964300, 0)}
info := bindataFileInfo{name: "1646841105_add_emoji_account.up.sql", size: 96, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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
}
@ -249,7 +249,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(1673964300, 0)}
info := bindataFileInfo{name: "1647278782_display_name.up.sql", size: 110, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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
}
@ -269,7 +269,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(1673964300, 0)}
info := bindataFileInfo{name: "1647862838_reset_last_backup.up.sql", size: 37, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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
}
@ -289,7 +289,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(1673964300, 0)}
info := bindataFileInfo{name: "1647871652_add_settings_sync_clock_table.up.sql", size: 1044, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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
}
@ -309,7 +309,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(1673964300, 0)}
info := bindataFileInfo{name: "1647880168_add_torrent_config.up.sql", size: 211, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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
}
@ -329,7 +329,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(1673964300, 0)}
info := bindataFileInfo{name: "1647882837_add_communities_settings_table.up.sql", size: 206, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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
}
@ -349,7 +349,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(1673964300, 0)}
info := bindataFileInfo{name: "1647956635_add_waku_messages_table.up.sql", size: 266, mode: os.FileMode(0644), modTime: time.Unix(1664364467, 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
}
@ -369,7 +369,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(1673964300, 0)}
info := bindataFileInfo{name: "1648554928_network_test.up.sql", size: 132, mode: os.FileMode(0644), modTime: time.Unix(1664364467, 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
}
@ -389,7 +389,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(1673964300, 0)}
info := bindataFileInfo{name: "1649174829_add_visitble_token.up.sql", size: 84, mode: os.FileMode(0644), modTime: time.Unix(1664364467, 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
}
@ -409,7 +409,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(1673964300, 0)}
info := bindataFileInfo{name: "1649882262_add_derived_from_accounts.up.sql", size: 110, mode: os.FileMode(0644), modTime: time.Unix(1664364467, 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
}
@ -429,7 +429,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(1673964300, 0)}
info := bindataFileInfo{name: "1650612625_add_community_message_archive_hashes_table.up.sql", size: 130, mode: os.FileMode(0644), modTime: time.Unix(1664364467, 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
}
@ -449,7 +449,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(1673964300, 0)}
info := bindataFileInfo{name: "1650616788_add_communities_archives_info_table.up.sql", size: 208, mode: os.FileMode(0644), modTime: time.Unix(1664364467, 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
}
@ -469,7 +469,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(1673964300, 0)}
info := bindataFileInfo{name: "1652715604_add_clock_accounts.up.sql", size: 62, mode: os.FileMode(0644), modTime: time.Unix(1664364467, 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
}
@ -489,7 +489,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(1673964300, 0)}
info := bindataFileInfo{name: "1653037334_add_notifications_settings_table.up.sql", size: 1276, mode: os.FileMode(0644), modTime: time.Unix(1664364467, 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
}
@ -509,7 +509,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(1673964300, 0)}
info := bindataFileInfo{name: "1654702119_add_mutual_contact_settings.up.sql", size: 78, mode: os.FileMode(0644), modTime: time.Unix(1664364467, 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
}
@ -529,7 +529,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(1673964300, 0)}
info := bindataFileInfo{name: "1655375270_add_clock_field_to_communities_settings_table.up.sql", size: 74, mode: os.FileMode(0644), modTime: time.Unix(1664364467, 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
}
@ -549,7 +549,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(1673964300, 0)}
info := bindataFileInfo{name: "1655385721_drop_networks_config.up.sql", size: 27, mode: os.FileMode(0644), modTime: time.Unix(1664364467, 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
}
@ -569,7 +569,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(1673964300, 0)}
info := bindataFileInfo{name: "1655385724_networks_chainColor_shortName.up.sql", size: 220, mode: os.FileMode(0644), modTime: time.Unix(1664364467, 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
}
@ -589,7 +589,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(1673964300, 0)}
info := bindataFileInfo{name: "1655456688_add_deleted_at_field_to_bookmarks_table.up.sql", size: 69, mode: os.FileMode(0644), modTime: time.Unix(1664364467, 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
}
@ -609,7 +609,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(1673964300, 0)}
info := bindataFileInfo{name: "1655462032_create_bookmarks_deleted_at_index.up.sql", size: 81, mode: os.FileMode(0644), modTime: time.Unix(1664364467, 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
}
@ -629,7 +629,7 @@ func _1657617291_add_multi_transactions_tableUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1657617291_add_multi_transactions_table.up.sql", size: 412, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "1657617291_add_multi_transactions_table.up.sql", size: 412, mode: os.FileMode(0644), modTime: time.Unix(1664364467, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x86, 0xb0, 0x4e, 0x8c, 0x4, 0x82, 0xb4, 0x43, 0xaa, 0xd0, 0x16, 0xdd, 0xcb, 0x88, 0x81, 0xac, 0x4, 0x34, 0x1a, 0x8f, 0x2e, 0xc5, 0x69, 0xb, 0xf0, 0x17, 0xf7, 0xe3, 0x9, 0xe, 0x54, 0xe0}}
return a, nil
}
@ -649,7 +649,7 @@ func _1660134042_add_social_links_settings_tableUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1660134042_add_social_links_settings_table.up.sql", size: 334, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "1660134042_add_social_links_settings_table.up.sql", size: 334, mode: os.FileMode(0644), modTime: time.Unix(1664364467, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x84, 0x73, 0xb6, 0xe7, 0x3f, 0xaa, 0x39, 0x9a, 0x56, 0x56, 0x31, 0xf1, 0x8e, 0x26, 0x23, 0x1, 0xe4, 0xfa, 0x98, 0xfe, 0x78, 0x87, 0x20, 0xcb, 0x52, 0xf4, 0x38, 0x7f, 0xc4, 0x1c, 0x4, 0x22}}
return a, nil
}
@ -669,7 +669,7 @@ func _1660134060_settings_bioUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1660134060_settings_bio.up.sql", size: 91, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "1660134060_settings_bio.up.sql", size: 91, mode: os.FileMode(0644), modTime: time.Unix(1664364467, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x46, 0x25, 0xa0, 0xa6, 0x47, 0xff, 0xbc, 0x2a, 0x0, 0xff, 0x59, 0x4b, 0xb0, 0xc9, 0x4e, 0x15, 0xe4, 0xd9, 0xda, 0xeb, 0xfe, 0x55, 0x98, 0xc3, 0x9d, 0x96, 0xe7, 0xf, 0xd1, 0x5c, 0x93, 0x73}}
return a, nil
}
@ -689,7 +689,7 @@ func _1660134070_add_wakuv2_storeUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1660134070_add_wakuv2_store.up.sql", size: 269, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "1660134070_add_wakuv2_store.up.sql", size: 269, mode: os.FileMode(0644), modTime: time.Unix(1664364467, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x1d, 0xe6, 0xc3, 0x9, 0xef, 0xdc, 0xae, 0x49, 0x30, 0x78, 0x54, 0xd6, 0xdb, 0xbf, 0xc0, 0x8e, 0x25, 0x8f, 0xfc, 0x67, 0x80, 0x39, 0x37, 0xd4, 0x86, 0xc1, 0x85, 0xc8, 0x99, 0xc4, 0x59, 0xd4}}
return a, nil
}
@ -709,7 +709,7 @@ func _1660134072_waku2_store_messagesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1660134072_waku2_store_messages.up.sql", size: 497, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "1660134072_waku2_store_messages.up.sql", size: 497, mode: os.FileMode(0644), modTime: time.Unix(1664364467, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x3e, 0xeb, 0xb4, 0xa0, 0xa1, 0x2b, 0xcb, 0x4c, 0x3c, 0xc6, 0xd0, 0xe8, 0x96, 0xe3, 0x96, 0xf1, 0x4f, 0x1f, 0xe0, 0xe7, 0x1f, 0x85, 0xa3, 0xe, 0xf7, 0x52, 0x56, 0x63, 0x2b, 0xb0, 0x87, 0x7b}}
return a, nil
}
@ -729,7 +729,7 @@ func _1662365868_add_key_uid_accountsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1662365868_add_key_uid_accounts.up.sql", size: 68, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "1662365868_add_key_uid_accounts.up.sql", size: 68, mode: os.FileMode(0644), modTime: time.Unix(1668711465, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xc6, 0xd8, 0x2f, 0x2f, 0x3b, 0xa8, 0xbd, 0x6d, 0xf6, 0x87, 0x7e, 0xd2, 0xf1, 0xa2, 0xf7, 0x81, 0x6a, 0x23, 0x10, 0xbc, 0xbf, 0x5b, 0xe7, 0x2b, 0x9c, 0xa9, 0x8a, 0x18, 0xbb, 0xd0, 0x86, 0x91}}
return a, nil
}
@ -749,7 +749,7 @@ func _1662447680_add_keypairs_tableUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1662447680_add_keypairs_table.up.sql", size: 218, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "1662447680_add_keypairs_table.up.sql", size: 218, mode: os.FileMode(0644), modTime: time.Unix(1668711465, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xdc, 0x25, 0xa9, 0xc7, 0x63, 0x27, 0x97, 0x35, 0x5f, 0x6b, 0xab, 0x26, 0xcb, 0xf9, 0xbd, 0x5e, 0xac, 0x3, 0xa0, 0x5e, 0xb9, 0x71, 0xa3, 0x1f, 0xb3, 0x4f, 0x7f, 0x79, 0x28, 0x48, 0xbe, 0xc}}
return a, nil
}
@ -769,7 +769,7 @@ func _1662460056_move_favourites_to_saved_addressesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1662460056_move_favourites_to_saved_addresses.up.sql", size: 233, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "1662460056_move_favourites_to_saved_addresses.up.sql", size: 233, mode: os.FileMode(0644), modTime: time.Unix(1668711465, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x10, 0xa2, 0x8c, 0xa3, 0xec, 0xad, 0xdf, 0xc3, 0x48, 0x5, 0x9b, 0x50, 0x25, 0x59, 0xae, 0x7d, 0xee, 0x58, 0xd2, 0x41, 0x27, 0xf2, 0x22, 0x2e, 0x9a, 0xb9, 0x4a, 0xcc, 0x38, 0x6e, 0x3a, 0xb2}}
return a, nil
}
@ -789,7 +789,7 @@ func _1662738097_add_base_fee_transactionUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1662738097_add_base_fee_transaction.up.sql", size: 112, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "1662738097_add_base_fee_transaction.up.sql", size: 112, mode: os.FileMode(0644), modTime: time.Unix(1668711465, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x6b, 0xfb, 0x10, 0xae, 0xfc, 0x77, 0x70, 0x98, 0x6f, 0xec, 0xaa, 0xcd, 0x7, 0xc7, 0x74, 0x23, 0xc, 0xd5, 0x1e, 0x82, 0xdd, 0xfe, 0xff, 0x3b, 0xd2, 0x49, 0x10, 0x5b, 0x30, 0xc, 0x2d, 0xb0}}
return a, nil
}
@ -809,7 +809,7 @@ func _1662972194_add_keypairs_tableUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1662972194_add_keypairs_table.up.sql", size: 345, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "1662972194_add_keypairs_table.up.sql", size: 345, mode: os.FileMode(0644), modTime: time.Unix(1668711465, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xab, 0x76, 0xf2, 0x86, 0xe1, 0x7e, 0xe9, 0x47, 0x32, 0x48, 0xd5, 0x6b, 0xe5, 0xd, 0xab, 0xb7, 0xf1, 0xd4, 0xf1, 0xad, 0x38, 0xa6, 0x11, 0xe7, 0xce, 0x5c, 0x11, 0x11, 0xf, 0x47, 0xb2, 0x4}}
return a, nil
}
@ -829,7 +829,7 @@ func _1664392661_add_third_party_id_to_waku_messagesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1664392661_add_third_party_id_to_waku_messages.up.sql", size: 70, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "1664392661_add_third_party_id_to_waku_messages.up.sql", size: 70, mode: os.FileMode(0644), modTime: time.Unix(1668711465, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xfd, 0x67, 0x66, 0x9e, 0x66, 0x74, 0xce, 0x1c, 0xb, 0x1b, 0x9d, 0xd5, 0xfc, 0x65, 0xe, 0x83, 0x90, 0x4c, 0x61, 0x4e, 0x6b, 0xe7, 0x86, 0xbe, 0x36, 0x4f, 0x91, 0x36, 0x4, 0x47, 0x7b, 0x82}}
return a, nil
}
@ -849,7 +849,7 @@ func _1664783660_add_sync_info_to_saved_addressesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1664783660_add_sync_info_to_saved_addresses.up.sql", size: 388, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "1664783660_add_sync_info_to_saved_addresses.up.sql", size: 388, mode: os.FileMode(0644), modTime: time.Unix(1668711465, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x67, 0x7c, 0x3a, 0x95, 0x4e, 0x55, 0xb2, 0xbd, 0xb4, 0x18, 0x93, 0xc1, 0xcf, 0x9f, 0x12, 0xbb, 0x49, 0x8a, 0x2a, 0x6a, 0x2a, 0x7f, 0xad, 0x44, 0xc3, 0xf, 0x3a, 0x79, 0x18, 0xb9, 0x4c, 0x64}}
return a, nil
}
@ -869,7 +869,7 @@ func _1668109917_wakunodesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1668109917_wakunodes.up.sql", size: 99, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "1668109917_wakunodes.up.sql", size: 99, mode: os.FileMode(0644), modTime: time.Unix(1669031482, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x29, 0xaa, 0x9e, 0x2, 0x66, 0x85, 0x69, 0xa8, 0xd9, 0xe2, 0x4b, 0x8d, 0x2a, 0x9c, 0xdf, 0xd2, 0xef, 0x64, 0x58, 0xe3, 0xa6, 0xe7, 0xc1, 0xd1, 0xc8, 0x9c, 0xc0, 0x2c, 0x1, 0xa8, 0x7b, 0x81}}
return a, nil
}
@ -889,7 +889,7 @@ func _1670249678_display_name_to_settings_sync_clock_tableUpSql() (*asset, error
return nil, err
}
info := bindataFileInfo{name: "1670249678_display_name_to_settings_sync_clock_table.up.sql", size: 83, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "1670249678_display_name_to_settings_sync_clock_table.up.sql", size: 83, mode: os.FileMode(0644), modTime: time.Unix(1673450916, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x39, 0x18, 0xdc, 0xc4, 0x1f, 0x79, 0x22, 0x16, 0x4d, 0xdf, 0x6c, 0x66, 0xd5, 0xa4, 0x88, 0x5d, 0x5, 0x37, 0xa7, 0x41, 0x5, 0x50, 0xae, 0x12, 0xfa, 0x7e, 0x89, 0x24, 0x5c, 0xae, 0x30, 0xfc}}
return a, nil
}
@ -909,7 +909,7 @@ func _1670836810_add_imported_flag_to_community_archive_hashesUpSql() (*asset, e
return nil, err
}
info := bindataFileInfo{name: "1670836810_add_imported_flag_to_community_archive_hashes.up.sql", size: 144, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "1670836810_add_imported_flag_to_community_archive_hashes.up.sql", size: 144, mode: os.FileMode(0644), modTime: time.Unix(1673008084, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x6f, 0xf, 0xf0, 0xbd, 0xfe, 0x63, 0x25, 0x8f, 0x5e, 0x46, 0x4b, 0x45, 0x31, 0x8b, 0x3e, 0xd8, 0x6b, 0x5d, 0x9d, 0x6d, 0x10, 0x9a, 0x87, 0x4b, 0x18, 0xc6, 0x39, 0x81, 0x6e, 0xe4, 0x75, 0xfb}}
return a, nil
}
@ -929,7 +929,7 @@ func _1671438731_add_magnetlink_uri_to_communities_archive_infoUpSql() (*asset,
return nil, err
}
info := bindataFileInfo{name: "1671438731_add_magnetlink_uri_to_communities_archive_info.up.sql", size: 86, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "1671438731_add_magnetlink_uri_to_communities_archive_info.up.sql", size: 86, mode: os.FileMode(0644), modTime: time.Unix(1673450916, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xda, 0x8b, 0x4b, 0xd6, 0xd8, 0xe2, 0x3d, 0xf7, 0x6b, 0xcd, 0x1e, 0x70, 0x9, 0x2e, 0x35, 0x4, 0x61, 0xc3, 0xb5, 0x9d, 0xc5, 0x27, 0x21, 0xa, 0x5a, 0xd6, 0x3e, 0xa6, 0x24, 0xa2, 0x12, 0xdf}}
return a, nil
}
@ -949,7 +949,7 @@ func _1672933930_switcher_cardUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1672933930_switcher_card.up.sql", size: 162, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "1672933930_switcher_card.up.sql", size: 162, mode: os.FileMode(0644), modTime: time.Unix(1673450916, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x39, 0xba, 0xdc, 0xbb, 0x40, 0x4, 0xf2, 0x10, 0xdf, 0xb4, 0xd2, 0x80, 0x8a, 0x74, 0x4d, 0xf6, 0xbc, 0x50, 0x7, 0xd, 0x22, 0x7f, 0xc4, 0xaf, 0xaa, 0xde, 0xdc, 0x71, 0xe9, 0x42, 0x98, 0x36}}
return a, nil
}
@ -969,7 +969,7 @@ func _1674056187_add_price_cacheUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1674056187_add_price_cache.up.sql", size: 255, mode: os.FileMode(0644), modTime: time.Unix(1674232305, 0)}
info := bindataFileInfo{name: "1674056187_add_price_cache.up.sql", size: 255, mode: os.FileMode(0644), modTime: time.Unix(1674206429, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xb7, 0x79, 0x6a, 0x9b, 0x28, 0xd1, 0x22, 0xf0, 0x84, 0x76, 0x40, 0x39, 0x49, 0x15, 0x5d, 0xaa, 0xfd, 0x11, 0xff, 0x13, 0x27, 0x42, 0x12, 0xfa, 0x82, 0xe6, 0x7a, 0xf0, 0x5e, 0x1f, 0xe3, 0xba}}
return a, nil
}
@ -989,7 +989,7 @@ func _1674136690_ens_usernamesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1674136690_ens_usernames.up.sql", size: 98, mode: os.FileMode(0644), modTime: time.Unix(1674232305, 0)}
info := bindataFileInfo{name: "1674136690_ens_usernames.up.sql", size: 98, mode: os.FileMode(0644), modTime: time.Unix(1674480962, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x81, 0x7a, 0xf3, 0xa8, 0x88, 0x99, 0xd6, 0x9c, 0x69, 0x48, 0x3c, 0x10, 0xda, 0x72, 0xdc, 0x14, 0xd, 0x6e, 0x8c, 0x82, 0x92, 0x2d, 0x2c, 0xee, 0x4c, 0x70, 0xa4, 0xdc, 0x5c, 0x5, 0x2, 0xc3}}
return a, nil
}
@ -1009,7 +1009,7 @@ func _1674232431_add_balance_historyUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1674232431_add_balance_history.up.sql", size: 698, mode: os.FileMode(0644), modTime: time.Unix(1674232305, 0)}
info := bindataFileInfo{name: "1674232431_add_balance_history.up.sql", size: 698, mode: os.FileMode(0644), modTime: time.Unix(1674807337, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xf7, 0xb5, 0x18, 0xca, 0x4a, 0x93, 0xbb, 0x6f, 0xa4, 0xee, 0xe4, 0x3e, 0xff, 0x6a, 0x4b, 0xe2, 0xe1, 0x61, 0x28, 0xee, 0xc5, 0x26, 0x57, 0x61, 0x5e, 0x6d, 0x44, 0x1e, 0x85, 0x43, 0x70, 0xa2}}
return a, nil
}
@ -1029,7 +1029,7 @@ func docGo() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "doc.go", size: 74, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "doc.go", size: 74, mode: os.FileMode(0644), modTime: time.Unix(1648117578, 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(1673964300, 0)}
info := bindataFileInfo{name: "0001_app.down.sql", size: 356, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "0001_app.up.sql", size: 2967, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "0002_tokens.down.sql", size: 19, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "0002_tokens.up.sql", size: 248, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "0003_settings.down.sql", size: 118, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "0003_settings.up.sql", size: 1311, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "0004_pending_stickers.down.sql", size: 0, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "0004_pending_stickers.up.sql", size: 61, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "0005_waku_mode.down.sql", size: 0, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "0005_waku_mode.up.sql", size: 146, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "0006_appearance.up.sql", size: 67, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "0007_enable_waku_default.up.sql", size: 38, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "0008_add_push_notifications.up.sql", size: 349, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "0009_enable_sending_push_notifications.down.sql", size: 49, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "0009_enable_sending_push_notifications.up.sql", size: 49, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "0010_add_block_mentions.down.sql", size: 83, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "0010_add_block_mentions.up.sql", size: 89, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "0011_allow_webview_permission_requests.down.sql", size: 0, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "0011_allow_webview_permission_requests.up.sql", size: 88, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "0012_pending_transactions.down.sql", size: 33, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "0012_pending_transactions.up.sql", size: 321, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "0013_favourites.down.sql", size: 23, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "0013_favourites.up.sql", size: 132, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "0014_add_use_mailservers.down.sql", size: 0, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "0014_add_use_mailservers.up.sql", size: 111, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "0015_link_previews.down.sql", size: 0, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "0015_link_previews.up.sql", size: 203, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "0016_local_notifications_preferences.down.sql", size: 43, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "0016_local_notifications_preferences.up.sql", size: 204, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "0017_bookmarks.down.sql", size: 22, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "0017_bookmarks.up.sql", size: 147, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "0018_profile_pictures_visibility.up.sql", size: 84, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "0019_blocks_ranges_extra_data.up.sql", size: 89, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "0020_metrics.up.sql", size: 235, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "0021_add_session_id_to_metrics.up.sql", size: 55, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "0022_pending_transfers.up.sql", size: 706, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "1618237885_settings_anon_metrics_should_send.up.sql", size: 80, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "1618395756_contacts_only.up.sql", size: 136, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "1622184614_add_default_sync_period.up.sql", size: 125, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "1625872445_user_status.up.sql", size: 351, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "1627983977_add_gif_to_settings.up.sql", size: 102, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "1628580203_add_hidden_account.up.sql", size: 67, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "1629123384_add_id_to_app_metrics.up.sql", size: 589, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "1630401853_add_opensea_enabled_to_settings.up.sql", size: 70, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "1630464455_create-saved_addresses-table.down.sql", size: 28, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "1630464455_create-saved_addresses-table.up.sql", size: 187, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "1630485153_networks.down.sql", size: 21, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "1630485153_networks.up.sql", size: 394, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "1632262444_profile_pictures_show_to.up.sql", size: 81, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "1635942153_add_telemetry_server_url_to_settings.up.sql", size: 128, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "1635942154_add_backup_setting.up.sql", size: 287, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "1637745568_add_auto_message_setting.up.sql", size: 122, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "1640111208_nodeconfig.up.sql", size: 7659, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "doc.go", size: 85, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "1557732988_initialize_db.down.sql", size: 72, mode: os.FileMode(0644), modTime: time.Unix(1648117579, 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(1673964300, 0)}
info := bindataFileInfo{name: "1557732988_initialize_db.up.sql", size: 278, mode: os.FileMode(0644), modTime: time.Unix(1648117579, 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(1673964300, 0)}
info := bindataFileInfo{name: "static.go", size: 178, mode: os.FileMode(0644), modTime: time.Unix(1648117579, 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

@ -94,7 +94,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(1673964300, 0)}
info := bindataFileInfo{name: "0001_accounts.down.sql", size: 21, mode: os.FileMode(0644), modTime: time.Unix(1648117579, 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
}
@ -114,7 +114,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(1673964300, 0)}
info := bindataFileInfo{name: "0001_accounts.up.sql", size: 163, mode: os.FileMode(0644), modTime: time.Unix(1648117579, 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
}
@ -134,7 +134,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(1673964300, 0)}
info := bindataFileInfo{name: "1605007189_identity_images.down.sql", size: 29, mode: os.FileMode(0644), modTime: time.Unix(1648117579, 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
}
@ -154,7 +154,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(1673964300, 0)}
info := bindataFileInfo{name: "1605007189_identity_images.up.sql", size: 268, mode: os.FileMode(0644), modTime: time.Unix(1648117579, 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
}
@ -174,7 +174,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(1673964300, 0)}
info := bindataFileInfo{name: "1606224181_drop_photo_path_from_accounts.down.sql", size: 892, mode: os.FileMode(0644), modTime: time.Unix(1648117579, 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
}
@ -194,7 +194,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(1673964300, 0)}
info := bindataFileInfo{name: "1606224181_drop_photo_path_from_accounts.up.sql", size: 866, mode: os.FileMode(0644), modTime: time.Unix(1648117579, 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
}
@ -214,7 +214,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(1673964300, 0)}
info := bindataFileInfo{name: "1648646095_image_clock.down.sql", size: 939, mode: os.FileMode(0644), modTime: time.Unix(1664364467, 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
}
@ -234,7 +234,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(1673964300, 0)}
info := bindataFileInfo{name: "1648646095_image_clock.up.sql", size: 69, mode: os.FileMode(0644), modTime: time.Unix(1664364467, 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
}
@ -254,7 +254,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(1673964300, 0)}
info := bindataFileInfo{name: "1649317600_add_color_hash.up.sql", size: 201, mode: os.FileMode(0644), modTime: time.Unix(1664364467, 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
}
@ -274,7 +274,7 @@ func _1660238799_accounts_kdfUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1660238799_accounts_kdf.up.sql", size: 115, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "1660238799_accounts_kdf.up.sql", size: 115, mode: os.FileMode(0644), modTime: time.Unix(1668711465, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xdf, 0xe6, 0x7a, 0x69, 0x25, 0x42, 0x3b, 0x9c, 0x20, 0xf5, 0xcb, 0xae, 0xb0, 0xb3, 0x1b, 0x66, 0xc2, 0x5d, 0xd0, 0xc1, 0x59, 0xe8, 0xa9, 0xc5, 0x69, 0x58, 0x8f, 0xae, 0xe6, 0xd1, 0x4c, 0x53}}
return a, nil
}
@ -294,7 +294,7 @@ func docGo() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "doc.go", size: 74, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "doc.go", size: 74, mode: os.FileMode(0644), modTime: time.Unix(1648117579, 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

@ -1,209 +0,0 @@
// In order to run these tests, you must run a PostgreSQL database.
//
// Using Docker:
// docker run -e POSTGRES_HOST_AUTH_METHOD=trust -d -p 5432:5432 postgres:9.6-alpine
//
package protocol
import (
"context"
"crypto/ecdsa"
"testing"
"github.com/stretchr/testify/suite"
"go.uber.org/zap"
bindata "github.com/status-im/migrate/v4/source/go_bindata"
appmetricsDB "github.com/status-im/status-go/appmetrics"
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/eth-node/types"
"github.com/status-im/status-go/postgres"
"github.com/status-im/status-go/protocol/anonmetrics"
"github.com/status-im/status-go/protocol/anonmetrics/migrations"
"github.com/status-im/status-go/protocol/tt"
"github.com/status-im/status-go/services/appmetrics"
"github.com/status-im/status-go/waku"
)
func TestMessengerAnonMetricsSuite(t *testing.T) {
suite.Run(t, new(MessengerAnonMetricsSuite))
}
type MessengerAnonMetricsSuite struct {
suite.Suite
alice *Messenger // client instance of Messenger
bob *Messenger // server instance of Messenger
aliceKey *ecdsa.PrivateKey // private key for the alice instance of Messenger
bobKey *ecdsa.PrivateKey // private key for the bob 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 *MessengerAnonMetricsSuite) SetupSuite() {
// ResetDefaultTestPostgresDB Required to completely reset the Postgres DB
err := postgres.ResetDefaultTestPostgresDB()
s.NoError(err)
}
func (s *MessengerAnonMetricsSuite) SetupTest() {
var err error
s.logger = tt.MustCreateTestLogger()
// Setup Waku things
config := waku.DefaultConfig
config.MinimumAcceptedPoW = 0
shh := waku.New(&config, s.logger)
s.shh = gethbridge.NewGethWakuWrapper(shh)
s.Require().NoError(shh.Start())
// Generate private keys for Alice and Bob
s.aliceKey, err = crypto.GenerateKey()
s.Require().NoError(err)
s.bobKey, err = crypto.GenerateKey()
s.Require().NoError(err)
// Generate Alice Messenger as the client
amcc := &anonmetrics.ClientConfig{
ShouldSend: true,
SendAddress: &s.bobKey.PublicKey,
Active: anonmetrics.ActiveClientPhrase,
}
s.alice, err = newMessengerWithKey(s.shh, s.aliceKey, s.logger, []Option{WithAnonMetricsClientConfig(amcc)})
s.Require().NoError(err)
_, err = s.alice.Start()
s.Require().NoError(err)
// Generate Bob Messenger as the Server
amsc := &anonmetrics.ServerConfig{
Enabled: true,
PostgresURI: postgres.DefaultTestURI,
Active: anonmetrics.ActiveServerPhrase,
}
s.bob, err = newMessengerWithKey(s.shh, s.bobKey, s.logger, []Option{WithAnonMetricsServerConfig(amsc)})
s.Require().NoError(err)
_, err = s.bob.Start()
s.Require().NoError(err)
}
func (s *MessengerAnonMetricsSuite) TearDownTest() {
// Down migrate the DB
if s.bob.anonMetricsServer != nil {
postgresMigration := bindata.Resource(migrations.AssetNames(), migrations.Asset)
m, err := anonmetrics.MakeMigration(s.bob.anonMetricsServer.PostgresDB, postgresMigration)
s.NoError(err)
err = m.Down()
s.NoError(err)
}
// Shutdown messengers
s.NoError(s.alice.Shutdown())
s.alice = nil
s.NoError(s.bob.Shutdown())
s.bob = nil
_ = s.logger.Sync()
}
func (s *MessengerAnonMetricsSuite) TestReceiveAnonMetric() {
// Create the appmetrics API to simulate incoming metrics from `status-mobile`
ama := appmetrics.NewAPI(appmetricsDB.NewDB(s.alice.database))
// Generate and store some metrics to Alice
ams := appmetricsDB.GenerateMetrics(10)
err := ama.SaveAppMetrics(context.Background(), ams)
s.Require().NoError(err)
// Check that we have what we stored
amsdb, err := ama.GetAppMetrics(context.Background(), 100, 0)
s.Require().NoError(err)
s.Require().Len(amsdb.AppMetrics, 10)
// Wait for messages to arrive at bob
_, err = WaitOnMessengerResponse(
s.bob,
func(r *MessengerResponse) bool { return len(r.AnonymousMetrics) > 0 },
"no anonymous metrics received",
)
s.Require().NoError(err)
// Get app metrics from postgres DB
bobMetrics, err := s.bob.anonMetricsServer.GetAppMetrics(100, 0)
s.Require().NoError(err)
s.Require().Len(bobMetrics, 5)
// Check the values of received and stored metrics against the broadcast metrics
for i, bobMetric := range bobMetrics {
s.Require().True(bobMetric.CreatedAt.Equal(amsdb.AppMetrics[i].CreatedAt), "created_at values are equal")
s.Require().Exactly(bobMetric.SessionID, amsdb.AppMetrics[i].SessionID, "session_id matched exactly")
s.Require().Exactly(bobMetric.Value, amsdb.AppMetrics[i].Value, "value matches exactly")
s.Require().Exactly(bobMetric.Event, amsdb.AppMetrics[i].Event, "event matches exactly")
s.Require().Exactly(bobMetric.OS, amsdb.AppMetrics[i].OS, "operating system matches exactly")
s.Require().Exactly(bobMetric.AppVersion, amsdb.AppMetrics[i].AppVersion, "app version matches exactly")
}
}
// TestActivationIsOff tests if using the incorrect activation phrase for the anon metric client / server deactivates
// the client / server. This test can be removed when / if the anon metrics functionality is reintroduced / re-approved.
func (s *MessengerAnonMetricsSuite) TestActivationIsOff() {
var err error
// Check the set up messengers are in the expected state with the correct activation phrases
s.NotNil(s.alice.anonMetricsClient)
s.NotNil(s.bob.anonMetricsServer)
// Generate Alice Messenger as the client with an incorrect phrase
amcc := &anonmetrics.ClientConfig{
ShouldSend: true,
SendAddress: &s.bobKey.PublicKey,
Active: "the wrong client phrase",
}
s.alice, err = newMessengerWithKey(s.shh, s.aliceKey, s.logger, []Option{WithAnonMetricsClientConfig(amcc)})
s.NoError(err)
_, err = s.alice.Start()
s.Require().NoError(err)
s.Nil(s.alice.anonMetricsClient)
// Generate Alice Messenger as the client with an no activation phrase
amcc = &anonmetrics.ClientConfig{
ShouldSend: true,
SendAddress: &s.bobKey.PublicKey,
}
s.alice, err = newMessengerWithKey(s.shh, s.aliceKey, s.logger, []Option{WithAnonMetricsClientConfig(amcc)})
s.NoError(err)
_, err = s.alice.Start()
s.Require().NoError(err)
s.Nil(s.alice.anonMetricsClient)
// Generate Bob Messenger as the Server with an incorrect phrase
amsc := &anonmetrics.ServerConfig{
Enabled: true,
PostgresURI: postgres.DefaultTestURI,
Active: "the wrong server phrase",
}
s.bob, err = newMessengerWithKey(s.shh, s.bobKey, s.logger, []Option{WithAnonMetricsServerConfig(amsc)})
s.Require().NoError(err)
s.Nil(s.bob.anonMetricsServer)
// Generate Bob Messenger as the Server with no activation phrase
amsc = &anonmetrics.ServerConfig{
Enabled: true,
PostgresURI: postgres.DefaultTestURI,
}
s.bob, err = newMessengerWithKey(s.shh, s.bobKey, s.logger, []Option{WithAnonMetricsServerConfig(amsc)})
s.Require().NoError(err)
s.Nil(s.bob.anonMetricsServer)
}

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(1673964300, 0)}
info := bindataFileInfo{name: "1619446565_postgres_make_anon_metrics_table.down.sql", size: 24, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "1619446565_postgres_make_anon_metrics_table.up.sql", size: 443, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "doc.go", size: 380, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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

@ -49,7 +49,7 @@ func (c *Contact) CanonicalName() string {
}
func (c *Contact) CanonicalImage(profilePicturesVisibility settings.ProfilePicturesVisibilityType) string {
if profilePicturesVisibility == settings.ProfilePicturesVisibilityNone || (profilePicturesVisibility == settings.ProfilePicturesVisibilityContactsOnly && !c.Added) {
if profilePicturesVisibility == settings.ProfilePicturesVisibilityNone || (profilePicturesVisibility == settings.ProfilePicturesVisibilityContactsOnly && !c.added()) {
return c.Identicon
}
@ -111,12 +111,19 @@ type Contact struct {
Images map[string]images.IdentityImage `json:"images"`
Added bool `json:"added"`
Blocked bool `json:"blocked"`
HasAddedUs bool `json:"hasAddedUs"`
Blocked bool `json:"blocked"`
ContactRequestState ContactRequestState `json:"contactRequestState"`
ContactRequestClock uint64 `json:"contactRequestClock"`
// ContactRequestRemoteState is the state of the contact request
// on the contact's end
ContactRequestRemoteState ContactRequestState `json:"contactRequestRemoteState"`
// ContactRequestRemoteClock is the clock for incoming contact requests
ContactRequestRemoteClock uint64 `json:"contactRequestRemoteClock"`
// ContactRequestLocalState is the state of the contact request
// on our end
ContactRequestLocalState ContactRequestState `json:"contactRequestLocalState"`
// ContactRequestLocalClock is the clock for outgoing contact requests
ContactRequestLocalClock uint64 `json:"contactRequestLocalClock"`
IsSyncing bool
Removed bool
@ -153,71 +160,129 @@ func (c Contact) PublicKey() (*ecdsa.PublicKey, error) {
return crypto.UnmarshalPubkey(b)
}
func (c *Contact) Block() {
func (c *Contact) Block(clock uint64) {
c.Blocked = true
c.Added = false
c.DismissContactRequest(clock)
}
func (c *Contact) BlockDesktop() {
c.Blocked = true
}
func (c *Contact) Unblock() {
func (c *Contact) Unblock(clock uint64) {
c.Blocked = false
// Reset the contact request flow
c.RetractContactRequest(clock)
}
func (c *Contact) Remove() {
c.Added = false
c.Removed = true
func (c *Contact) added() bool {
return c.ContactRequestLocalState == ContactRequestStateSent
}
func (c *Contact) Add() {
c.Added = true
func (c *Contact) hasAddedUs() bool {
return c.ContactRequestRemoteState == ContactRequestStateReceived
}
func (c *Contact) mutual() bool {
return c.added() && c.hasAddedUs()
}
type ContactRequestProcessingResponse struct {
processed bool
newContactRequestReceived bool
}
func (c *Contact) ContactRequestSent(clock uint64) ContactRequestProcessingResponse {
if clock <= c.ContactRequestLocalClock {
return ContactRequestProcessingResponse{}
}
c.ContactRequestLocalClock = clock
c.ContactRequestLocalState = ContactRequestStateSent
c.Removed = false
return ContactRequestProcessingResponse{processed: true}
}
func (c *Contact) ContactRequestSent() {
switch c.ContactRequestState {
case ContactRequestStateNone, ContactRequestStateDismissed:
c.ContactRequestState = ContactRequestStateSent
case ContactRequestStateReceived:
c.ContactRequestState = ContactRequestStateMutual
func (c *Contact) AcceptContactRequest(clock uint64) ContactRequestProcessingResponse {
// We treat accept the same as sent, that's because accepting a contact
// request that does not exist is possible if the instruction is coming from
// a different device, we'd rather assume that a contact requested existed
// and didn't reach our device than being in an inconsistent state
return c.ContactRequestSent(clock)
}
func (c *Contact) RetractContactRequest(clock uint64) ContactRequestProcessingResponse {
if clock <= c.ContactRequestLocalClock {
return ContactRequestProcessingResponse{}
}
// This is a symmetric action, we set both local & remote clock
// since we want everything before this point discarded, regardless
// the side it was sent from
c.ContactRequestLocalClock = clock
c.ContactRequestLocalState = ContactRequestStateNone
c.ContactRequestRemoteState = ContactRequestStateNone
c.ContactRequestRemoteClock = clock
c.Removed = true
return ContactRequestProcessingResponse{processed: true}
}
func (c *Contact) ContactRequestReceived() {
switch c.ContactRequestState {
func (c *Contact) DismissContactRequest(clock uint64) ContactRequestProcessingResponse {
if clock <= c.ContactRequestLocalClock {
return ContactRequestProcessingResponse{}
}
c.ContactRequestLocalClock = clock
c.ContactRequestLocalState = ContactRequestStateDismissed
return ContactRequestProcessingResponse{processed: true}
}
// Remote actions
func (c *Contact) ContactRequestRetracted(clock uint64) ContactRequestProcessingResponse {
if clock <= c.ContactRequestRemoteClock {
return ContactRequestProcessingResponse{}
}
// This is a symmetric action, we set both local & remote clock
// since we want everything before this point discarded, regardless
// the side it was sent from
c.ContactRequestRemoteClock = clock
c.ContactRequestRemoteState = ContactRequestStateNone
c.ContactRequestLocalClock = clock
c.ContactRequestLocalState = ContactRequestStateNone
return ContactRequestProcessingResponse{processed: true}
}
func (c *Contact) ContactRequestReceived(clock uint64) ContactRequestProcessingResponse {
if clock <= c.ContactRequestRemoteClock {
return ContactRequestProcessingResponse{}
}
r := ContactRequestProcessingResponse{processed: true}
c.ContactRequestRemoteClock = clock
switch c.ContactRequestRemoteState {
case ContactRequestStateNone:
c.ContactRequestState = ContactRequestStateReceived
case ContactRequestStateSent:
c.ContactRequestState = ContactRequestStateMutual
r.newContactRequestReceived = true
}
c.ContactRequestRemoteState = ContactRequestStateReceived
return r
}
func (c *Contact) ContactRequestAccepted() {
switch c.ContactRequestState {
case ContactRequestStateSent:
c.ContactRequestState = ContactRequestStateMutual
func (c *Contact) ContactRequestAccepted(clock uint64) ContactRequestProcessingResponse {
if clock <= c.ContactRequestRemoteClock {
return ContactRequestProcessingResponse{}
}
}
func (c *Contact) AcceptContactRequest() {
switch c.ContactRequestState {
case ContactRequestStateReceived, ContactRequestStateDismissed:
c.ContactRequestState = ContactRequestStateMutual
}
}
func (c *Contact) RetractContactRequest() {
c.ContactRequestState = ContactRequestStateNone
}
func (c *Contact) ContactRequestRetracted() {
c.ContactRequestState = ContactRequestStateNone
}
func (c *Contact) DismissContactRequest() {
c.ContactRequestState = ContactRequestStateDismissed
// We treat received and accepted in the same way
// since the intention is clear on the other side
// and there's no difference
return c.ContactRequestReceived(clock)
}
func buildContactFromPkString(pkString string) (*Contact, error) {
@ -267,11 +332,34 @@ func contactIDFromPublicKeyString(key string) (string, error) {
return contactIDFromPublicKey(pubKey), nil
}
func (c *Contact) processSyncContactRequestState(remoteState ContactRequestState, remoteClock uint64, localState ContactRequestState, localClock uint64) {
// We process the two separately, first local state
switch localState {
case ContactRequestStateDismissed:
c.DismissContactRequest(localClock)
case ContactRequestStateNone:
c.RetractContactRequest(localClock)
case ContactRequestStateSent:
c.ContactRequestSent(localClock)
}
// and later remote state
switch remoteState {
case ContactRequestStateReceived:
c.ContactRequestReceived(remoteClock)
case ContactRequestStateNone:
c.ContactRequestRetracted(remoteClock)
}
}
func (c *Contact) MarshalJSON() ([]byte, error) {
type Alias Contact
item := struct {
*Alias
CompressedKey string `json:"compressedKey"`
CompressedKey string `json:"compressedKey"`
Added bool `json:"added"`
ContactRequestState ContactRequestState `json:"contactRequestState"`
HasAddedUs bool `json:"hasAddedUs"`
}{
Alias: (*Alias)(c),
}
@ -282,5 +370,16 @@ func (c *Contact) MarshalJSON() ([]byte, error) {
}
item.CompressedKey = compressedKey
item.Added = c.added()
item.HasAddedUs = c.hasAddedUs()
if c.mutual() {
item.ContactRequestState = ContactRequestStateMutual
} else if c.added() {
item.ContactRequestState = ContactRequestStateSent
} else if c.hasAddedUs() {
item.ContactRequestState = ContactRequestStateReceived
}
return json.Marshal(item)
}

View file

@ -2,6 +2,7 @@ package protocol
import (
"encoding/json"
"fmt"
"strings"
"testing"
@ -11,6 +12,541 @@ import (
"github.com/status-im/status-go/protocol/common"
)
type contactTest struct {
actualLocalState ContactRequestState
expectedLocalState ContactRequestState
actualRemoteState ContactRequestState
expectedRemoteState ContactRequestState
expectedAdded bool
expectedHasAddedUs bool
expectedMutual bool
}
func (ct contactTest) Contact() Contact {
return Contact{
ContactRequestLocalState: ct.actualLocalState,
ContactRequestRemoteState: ct.actualRemoteState,
}
}
func validateContactTest(t *testing.T, contact Contact, tc contactTest, testNum int) {
failedMessage := fmt.Sprintf("test failed: %d", testNum)
require.Equal(t, tc.expectedLocalState, contact.ContactRequestLocalState, failedMessage+", contact request local state not matching")
require.Equal(t, tc.expectedRemoteState, contact.ContactRequestRemoteState, failedMessage+", contact request remote state not matching")
require.Equal(t, tc.expectedAdded, contact.added(), failedMessage+", added() not matching")
require.Equal(t, tc.expectedHasAddedUs, contact.hasAddedUs(), failedMessage+", hasAddedUs() not matching")
require.Equal(t, tc.expectedMutual, contact.mutual(), failedMessage+", mutual() not matching")
}
/*
none/none
sent/none
dismissed/none
none/received
sent/received
dismissed/received
*/
func TestContactContactRequestSent(t *testing.T) {
clock := uint64(1)
/* Cases to consider are:
Local = none Remote = none
Local = none Remote = received
Local = sent Remote = none
Local = sent Remote = received
Local = dismissed Remote = none
Local = dismissed Remote = received
*/
tests := []contactTest{
{
actualLocalState: ContactRequestStateNone,
actualRemoteState: ContactRequestStateNone,
expectedLocalState: ContactRequestStateSent,
expectedRemoteState: ContactRequestStateNone,
expectedAdded: true,
expectedHasAddedUs: false,
expectedMutual: false,
},
{
actualLocalState: ContactRequestStateNone,
actualRemoteState: ContactRequestStateReceived,
expectedLocalState: ContactRequestStateSent,
expectedRemoteState: ContactRequestStateReceived,
expectedAdded: true,
expectedHasAddedUs: true,
expectedMutual: true,
},
{
actualLocalState: ContactRequestStateSent,
actualRemoteState: ContactRequestStateNone,
expectedLocalState: ContactRequestStateSent,
expectedRemoteState: ContactRequestStateNone,
expectedAdded: true,
expectedHasAddedUs: false,
expectedMutual: false,
},
{
actualLocalState: ContactRequestStateSent,
actualRemoteState: ContactRequestStateReceived,
expectedLocalState: ContactRequestStateSent,
expectedRemoteState: ContactRequestStateReceived,
expectedAdded: true,
expectedHasAddedUs: true,
expectedMutual: true,
},
{
actualLocalState: ContactRequestStateDismissed,
actualRemoteState: ContactRequestStateNone,
expectedLocalState: ContactRequestStateSent,
expectedRemoteState: ContactRequestStateNone,
expectedAdded: true,
expectedHasAddedUs: false,
expectedMutual: false,
},
{
actualLocalState: ContactRequestStateDismissed,
actualRemoteState: ContactRequestStateReceived,
expectedLocalState: ContactRequestStateSent,
expectedRemoteState: ContactRequestStateReceived,
expectedAdded: true,
expectedHasAddedUs: true,
expectedMutual: true,
},
}
for testNum, tc := range tests {
contact := tc.Contact()
contact.ContactRequestSent(clock)
validateContactTest(t, contact, tc, testNum+1)
}
}
func TestContactAcceptContactRequest(t *testing.T) {
clock := uint64(1)
tests := []contactTest{
{
actualLocalState: ContactRequestStateNone,
actualRemoteState: ContactRequestStateNone,
expectedLocalState: ContactRequestStateSent,
expectedRemoteState: ContactRequestStateNone,
expectedAdded: true,
expectedHasAddedUs: false,
expectedMutual: false,
},
{
actualLocalState: ContactRequestStateNone,
actualRemoteState: ContactRequestStateReceived,
expectedLocalState: ContactRequestStateSent,
expectedRemoteState: ContactRequestStateReceived,
expectedAdded: true,
expectedHasAddedUs: true,
expectedMutual: true,
},
{
actualLocalState: ContactRequestStateSent,
actualRemoteState: ContactRequestStateNone,
expectedLocalState: ContactRequestStateSent,
expectedRemoteState: ContactRequestStateNone,
expectedAdded: true,
expectedHasAddedUs: false,
expectedMutual: false,
},
{
actualLocalState: ContactRequestStateSent,
actualRemoteState: ContactRequestStateReceived,
expectedLocalState: ContactRequestStateSent,
expectedRemoteState: ContactRequestStateReceived,
expectedAdded: true,
expectedHasAddedUs: true,
expectedMutual: true,
},
{
actualLocalState: ContactRequestStateDismissed,
actualRemoteState: ContactRequestStateNone,
expectedLocalState: ContactRequestStateSent,
expectedRemoteState: ContactRequestStateNone,
expectedAdded: true,
expectedHasAddedUs: false,
expectedMutual: false,
},
{
actualLocalState: ContactRequestStateDismissed,
actualRemoteState: ContactRequestStateReceived,
expectedLocalState: ContactRequestStateSent,
expectedRemoteState: ContactRequestStateReceived,
expectedAdded: true,
expectedHasAddedUs: true,
expectedMutual: true,
},
}
for testNum, tc := range tests {
contact := tc.Contact()
contact.AcceptContactRequest(clock)
validateContactTest(t, contact, tc, testNum+1)
}
}
func TestContactRetractContactRequest(t *testing.T) {
clock := uint64(1)
tests := []contactTest{
{
actualLocalState: ContactRequestStateNone,
actualRemoteState: ContactRequestStateNone,
expectedLocalState: ContactRequestStateNone,
expectedRemoteState: ContactRequestStateNone,
expectedAdded: false,
expectedHasAddedUs: false,
expectedMutual: false,
},
{
actualLocalState: ContactRequestStateNone,
actualRemoteState: ContactRequestStateReceived,
expectedLocalState: ContactRequestStateNone,
expectedRemoteState: ContactRequestStateNone,
expectedAdded: false,
expectedHasAddedUs: false,
expectedMutual: false,
},
{
actualLocalState: ContactRequestStateSent,
actualRemoteState: ContactRequestStateNone,
expectedLocalState: ContactRequestStateNone,
expectedRemoteState: ContactRequestStateNone,
expectedAdded: false,
expectedHasAddedUs: false,
expectedMutual: false,
},
{
actualLocalState: ContactRequestStateSent,
actualRemoteState: ContactRequestStateReceived,
expectedLocalState: ContactRequestStateNone,
expectedRemoteState: ContactRequestStateNone,
expectedAdded: false,
expectedHasAddedUs: false,
expectedMutual: false,
},
{
actualLocalState: ContactRequestStateDismissed,
actualRemoteState: ContactRequestStateNone,
expectedLocalState: ContactRequestStateNone,
expectedRemoteState: ContactRequestStateNone,
expectedAdded: false,
expectedHasAddedUs: false,
expectedMutual: false,
},
{
actualLocalState: ContactRequestStateDismissed,
actualRemoteState: ContactRequestStateReceived,
expectedLocalState: ContactRequestStateNone,
expectedRemoteState: ContactRequestStateNone,
expectedAdded: false,
expectedHasAddedUs: false,
expectedMutual: false,
},
}
for testNum, tc := range tests {
contact := tc.Contact()
contact.RetractContactRequest(clock)
validateContactTest(t, contact, tc, testNum+1)
}
}
func TestContactDismissContactRequest(t *testing.T) {
clock := uint64(1)
tests := []contactTest{
{
actualLocalState: ContactRequestStateNone,
actualRemoteState: ContactRequestStateNone,
expectedLocalState: ContactRequestStateDismissed,
expectedRemoteState: ContactRequestStateNone,
expectedAdded: false,
expectedHasAddedUs: false,
expectedMutual: false,
},
{
actualLocalState: ContactRequestStateNone,
actualRemoteState: ContactRequestStateReceived,
expectedLocalState: ContactRequestStateDismissed,
expectedRemoteState: ContactRequestStateReceived,
expectedAdded: false,
expectedHasAddedUs: true,
expectedMutual: false,
},
{
actualLocalState: ContactRequestStateSent,
actualRemoteState: ContactRequestStateNone,
expectedLocalState: ContactRequestStateDismissed,
expectedRemoteState: ContactRequestStateNone,
expectedAdded: false,
expectedHasAddedUs: false,
expectedMutual: false,
},
{
actualLocalState: ContactRequestStateSent,
actualRemoteState: ContactRequestStateReceived,
expectedLocalState: ContactRequestStateDismissed,
expectedRemoteState: ContactRequestStateReceived,
expectedAdded: false,
expectedHasAddedUs: true,
expectedMutual: false,
},
{
actualLocalState: ContactRequestStateDismissed,
actualRemoteState: ContactRequestStateNone,
expectedLocalState: ContactRequestStateDismissed,
expectedRemoteState: ContactRequestStateNone,
expectedAdded: false,
expectedHasAddedUs: false,
expectedMutual: false,
},
{
actualLocalState: ContactRequestStateDismissed,
actualRemoteState: ContactRequestStateReceived,
expectedLocalState: ContactRequestStateDismissed,
expectedRemoteState: ContactRequestStateReceived,
expectedAdded: false,
expectedHasAddedUs: true,
expectedMutual: false,
},
}
for testNum, tc := range tests {
contact := tc.Contact()
contact.DismissContactRequest(clock)
validateContactTest(t, contact, tc, testNum+1)
}
}
func TestContactContactRequestRetracted(t *testing.T) {
clock := uint64(1)
tests := []contactTest{
{
actualLocalState: ContactRequestStateNone,
actualRemoteState: ContactRequestStateNone,
expectedLocalState: ContactRequestStateNone,
expectedRemoteState: ContactRequestStateNone,
expectedAdded: false,
expectedHasAddedUs: false,
expectedMutual: false,
},
{
actualLocalState: ContactRequestStateNone,
actualRemoteState: ContactRequestStateReceived,
expectedLocalState: ContactRequestStateNone,
expectedRemoteState: ContactRequestStateNone,
expectedAdded: false,
expectedHasAddedUs: false,
expectedMutual: false,
},
{
actualLocalState: ContactRequestStateSent,
actualRemoteState: ContactRequestStateNone,
expectedLocalState: ContactRequestStateNone,
expectedRemoteState: ContactRequestStateNone,
expectedAdded: false,
expectedHasAddedUs: false,
expectedMutual: false,
},
{
actualLocalState: ContactRequestStateSent,
actualRemoteState: ContactRequestStateReceived,
expectedLocalState: ContactRequestStateNone,
expectedRemoteState: ContactRequestStateNone,
expectedAdded: false,
expectedHasAddedUs: false,
expectedMutual: false,
},
{
actualLocalState: ContactRequestStateDismissed,
actualRemoteState: ContactRequestStateNone,
expectedLocalState: ContactRequestStateNone,
expectedRemoteState: ContactRequestStateNone,
expectedAdded: false,
expectedHasAddedUs: false,
expectedMutual: false,
},
{
actualLocalState: ContactRequestStateDismissed,
actualRemoteState: ContactRequestStateReceived,
expectedLocalState: ContactRequestStateNone,
expectedRemoteState: ContactRequestStateNone,
expectedAdded: false,
expectedHasAddedUs: false,
expectedMutual: false,
},
}
for testNum, tc := range tests {
contact := tc.Contact()
contact.ContactRequestRetracted(clock)
validateContactTest(t, contact, tc, testNum+1)
}
}
func TestContactContactRequestReceived(t *testing.T) {
clock := uint64(1)
tests := []contactTest{
{
actualLocalState: ContactRequestStateNone,
actualRemoteState: ContactRequestStateNone,
expectedLocalState: ContactRequestStateNone,
expectedRemoteState: ContactRequestStateReceived,
expectedAdded: false,
expectedHasAddedUs: true,
expectedMutual: false,
},
{
actualLocalState: ContactRequestStateNone,
actualRemoteState: ContactRequestStateReceived,
expectedLocalState: ContactRequestStateNone,
expectedRemoteState: ContactRequestStateReceived,
expectedAdded: false,
expectedHasAddedUs: true,
expectedMutual: false,
},
{
actualLocalState: ContactRequestStateSent,
actualRemoteState: ContactRequestStateNone,
expectedLocalState: ContactRequestStateSent,
expectedRemoteState: ContactRequestStateReceived,
expectedAdded: true,
expectedHasAddedUs: true,
expectedMutual: true,
},
{
actualLocalState: ContactRequestStateSent,
actualRemoteState: ContactRequestStateReceived,
expectedLocalState: ContactRequestStateSent,
expectedRemoteState: ContactRequestStateReceived,
expectedAdded: true,
expectedHasAddedUs: true,
expectedMutual: true,
},
{
actualLocalState: ContactRequestStateDismissed,
actualRemoteState: ContactRequestStateNone,
expectedLocalState: ContactRequestStateDismissed,
expectedRemoteState: ContactRequestStateReceived,
expectedAdded: false,
expectedHasAddedUs: true,
expectedMutual: false,
},
{
actualLocalState: ContactRequestStateDismissed,
actualRemoteState: ContactRequestStateReceived,
expectedLocalState: ContactRequestStateDismissed,
expectedRemoteState: ContactRequestStateReceived,
expectedAdded: false,
expectedHasAddedUs: true,
expectedMutual: false,
},
}
for testNum, tc := range tests {
contact := tc.Contact()
contact.ContactRequestReceived(clock)
validateContactTest(t, contact, tc, testNum+1)
}
}
func TestContactContactRequestAccepted(t *testing.T) {
clock := uint64(1)
tests := []contactTest{
{
actualLocalState: ContactRequestStateNone,
actualRemoteState: ContactRequestStateNone,
expectedLocalState: ContactRequestStateNone,
expectedRemoteState: ContactRequestStateReceived,
expectedAdded: false,
expectedHasAddedUs: true,
expectedMutual: false,
},
{
actualLocalState: ContactRequestStateNone,
actualRemoteState: ContactRequestStateReceived,
expectedLocalState: ContactRequestStateNone,
expectedRemoteState: ContactRequestStateReceived,
expectedAdded: false,
expectedHasAddedUs: true,
expectedMutual: false,
},
{
actualLocalState: ContactRequestStateSent,
actualRemoteState: ContactRequestStateNone,
expectedLocalState: ContactRequestStateSent,
expectedRemoteState: ContactRequestStateReceived,
expectedAdded: true,
expectedHasAddedUs: true,
expectedMutual: true,
},
{
actualLocalState: ContactRequestStateSent,
actualRemoteState: ContactRequestStateReceived,
expectedLocalState: ContactRequestStateSent,
expectedRemoteState: ContactRequestStateReceived,
expectedAdded: true,
expectedHasAddedUs: true,
expectedMutual: true,
},
{
actualLocalState: ContactRequestStateDismissed,
actualRemoteState: ContactRequestStateNone,
expectedLocalState: ContactRequestStateDismissed,
expectedRemoteState: ContactRequestStateReceived,
expectedAdded: false,
expectedHasAddedUs: true,
expectedMutual: false,
},
{
actualLocalState: ContactRequestStateDismissed,
actualRemoteState: ContactRequestStateReceived,
expectedLocalState: ContactRequestStateDismissed,
expectedRemoteState: ContactRequestStateReceived,
expectedAdded: false,
expectedHasAddedUs: true,
expectedMutual: false,
},
}
for testNum, tc := range tests {
contact := tc.Contact()
contact.ContactRequestAccepted(clock)
validateContactTest(t, contact, tc, testNum+1)
}
}
func TestMarshalContactJSON(t *testing.T) {
contact := &Contact{}
id, err := crypto.GenerateKey()
@ -21,4 +557,5 @@ func TestMarshalContactJSON(t *testing.T) {
require.NoError(t, err)
require.True(t, strings.Contains(string(encodedContact), "compressedKey\":\"zQ"))
}

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(1673964300, 0)}
info := bindataFileInfo{name: "1536754952_initial_schema.down.sql", size: 83, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "1536754952_initial_schema.up.sql", size: 962, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "1539249977_update_ratchet_info.down.sql", size: 311, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "1539249977_update_ratchet_info.up.sql", size: 368, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "1540715431_add_version.down.sql", size: 127, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "1540715431_add_version.up.sql", size: 265, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "1541164797_add_installations.down.sql", size: 26, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "1541164797_add_installations.up.sql", size: 216, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "1558084410_add_secret.down.sql", size: 56, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "1558084410_add_secret.up.sql", size: 301, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "1558588866_add_version.down.sql", size: 47, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "1558588866_add_version.up.sql", size: 57, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "1559627659_add_contact_code.down.sql", size: 32, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "1559627659_add_contact_code.up.sql", size: 198, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "1561368210_add_installation_metadata.down.sql", size: 35, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "1561368210_add_installation_metadata.up.sql", size: 267, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "1632236298_add_communities.down.sql", size: 151, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "1632236298_add_communities.up.sql", size: 584, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "1636536507_add_index_bundles.up.sql", size: 347, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "doc.go", size: 377, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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

@ -29,7 +29,7 @@ func EncryptIdentityImagesWithContactPubKeys(iis map[string]*protobuf.IdentityIm
ii.Payload = encryptedPayload
ii.Encrypted = true
m.allContacts.Range(func(contactID string, contact *Contact) (shouldContinue bool) {
if !contact.Added {
if !contact.added() {
return true
}
var pubK *ecdsa.PublicKey

View file

@ -1551,7 +1551,7 @@ func (m *Messenger) Init() error {
for idx, contact := range contacts {
m.allContacts.Store(contact.ID, contacts[idx])
// We only need filters for contacts added by us and not blocked.
if !contact.Added || contact.Blocked {
if !contact.added() || contact.Blocked {
continue
}
publicKey, err := contact.PublicKey()
@ -2318,7 +2318,7 @@ func (m *Messenger) SyncDevices(ctx context.Context, ensName, photoPath string,
m.allContacts.Range(func(contactID string, contact *Contact) (shouldContinue bool) {
if contact.ID != myID &&
(contact.LocalNickname != "" || contact.Added || contact.Blocked) {
(contact.LocalNickname != "" || contact.added() || contact.Blocked) {
if err = m.syncContact(ctx, contact, rawMessageHandler); err != nil {
return false
}
@ -2720,32 +2720,7 @@ func (m *Messenger) syncContact(ctx context.Context, contact *Contact, rawMessag
}
clock, chat := m.getLastClockWithRelatedChat()
var ensName string
if contact.ENSVerified {
ensName = contact.EnsName
}
oneToOneChat, ok := m.allChats.Load(contact.ID)
muted := false
if ok {
muted = oneToOneChat.Muted
}
syncMessage := &protobuf.SyncInstallationContactV2{
LastUpdatedLocally: contact.LastUpdatedLocally,
LastUpdated: contact.LastUpdated,
Id: contact.ID,
EnsName: ensName,
LocalNickname: contact.LocalNickname,
Added: contact.Added,
Blocked: contact.Blocked,
Muted: muted,
Removed: contact.Removed,
VerificationStatus: int64(contact.VerificationStatus),
TrustStatus: int64(contact.TrustStatus),
HasAddedUs: contact.HasAddedUs,
ContactRequestState: int64(contact.ContactRequestState),
}
syncMessage := m.buildSyncContactMessage(contact)
encodedMessage, err := proto.Marshal(syncMessage)
if err != nil {
@ -4260,7 +4235,7 @@ func (m *Messenger) saveDataAndPrepareResponse(messageState *ReceivedMessageStat
contact, ok := messageState.AllContacts.Load(id)
if ok {
contactsToSave = append(contactsToSave, contact)
messageState.Response.Contacts = append(messageState.Response.Contacts, contact)
messageState.Response.AddContact(contact)
}
return true
})
@ -4464,7 +4439,7 @@ func (m *Messenger) MessageByChatID(chatID, cursor string, limit int) ([]*common
if chat.Timeline() {
var chatIDs = []string{"@" + contactIDFromPublicKey(&m.identity.PublicKey)}
m.allContacts.Range(func(contactID string, contact *Contact) (shouldContinue bool) {
if contact.Added {
if contact.added() {
chatIDs = append(chatIDs, "@"+contact.ID)
}
return true
@ -5584,7 +5559,7 @@ func (m *Messenger) pushNotificationOptions() *pushnotificationclient.Registrati
var publicChatIDs []string
m.allContacts.Range(func(contactID string, contact *Contact) (shouldContinue bool) {
if contact.Added && !contact.Blocked {
if contact.added() && !contact.Blocked {
pk, err := contact.PublicKey()
if err != nil {
m.logger.Warn("could not parse contact public key")
@ -5782,7 +5757,7 @@ func (m *Messenger) EmojiReactionsByChatID(chatID string, cursor string, limit i
if chat.Timeline() {
var chatIDs = []string{"@" + contactIDFromPublicKey(&m.identity.PublicKey)}
m.allContacts.Range(func(contactID string, contact *Contact) (shouldContinue bool) {
if contact.Added {
if contact.added() {
chatIDs = append(chatIDs, "@"+contact.ID)
}
return true
@ -6110,3 +6085,7 @@ func chunkAttachmentsByByteSize(slice []*protobuf.DiscordMessageAttachment, maxF
}
return chunks
}
func (m *Messenger) myHexIdentity() string {
return common.PubkeyToHex(&m.identity.PublicKey)
}

View file

@ -199,7 +199,7 @@ func (m *Messenger) encodeAndDispatchBackupMessage(ctx context.Context, message
func (m *Messenger) backupContacts(ctx context.Context) []*protobuf.Backup {
var contacts []*protobuf.SyncInstallationContactV2
m.allContacts.Range(func(contactID string, contact *Contact) (shouldContinue bool) {
syncContact := m.syncBackupContact(ctx, contact)
syncContact := m.buildSyncContactMessage(contact)
if syncContact != nil {
contacts = append(contacts, syncContact)
}
@ -267,12 +267,7 @@ func (m *Messenger) backupCommunities(ctx context.Context, clock uint64) ([]*pro
return backupMessages, nil
}
// syncContact sync as contact with paired devices
func (m *Messenger) syncBackupContact(ctx context.Context, contact *Contact) *protobuf.SyncInstallationContactV2 {
if contact.IsSyncing {
return nil
}
func (m *Messenger) buildSyncContactMessage(contact *Contact) *protobuf.SyncInstallationContactV2 {
var ensName string
if contact.ENSVerified {
ensName = contact.EnsName
@ -285,18 +280,22 @@ func (m *Messenger) syncBackupContact(ctx context.Context, contact *Contact) *pr
}
return &protobuf.SyncInstallationContactV2{
LastUpdatedLocally: contact.LastUpdatedLocally,
LastUpdated: contact.LastUpdated,
Id: contact.ID,
EnsName: ensName,
LocalNickname: contact.LocalNickname,
Added: contact.Added,
Blocked: contact.Blocked,
Muted: muted,
HasAddedUs: contact.HasAddedUs,
Removed: contact.Removed,
VerificationStatus: int64(contact.VerificationStatus),
TrustStatus: int64(contact.TrustStatus),
LastUpdatedLocally: contact.LastUpdatedLocally,
LastUpdated: contact.LastUpdated,
Id: contact.ID,
EnsName: ensName,
LocalNickname: contact.LocalNickname,
Added: contact.added(),
Blocked: contact.Blocked,
Muted: muted,
HasAddedUs: contact.hasAddedUs(),
Removed: contact.Removed,
ContactRequestLocalState: int64(contact.ContactRequestLocalState),
ContactRequestRemoteState: int64(contact.ContactRequestRemoteState),
ContactRequestRemoteClock: int64(contact.ContactRequestRemoteClock),
ContactRequestLocalClock: int64(contact.ContactRequestLocalClock),
VerificationStatus: int64(contact.VerificationStatus),
TrustStatus: int64(contact.TrustStatus),
}
}

View file

@ -98,6 +98,11 @@ func (s *MessengerBackupSuite) TestBackupContacts() {
s.Require().Equal(actualContacts[1].ID, contactID1)
}
s.Require().Equal(ContactRequestStateSent, actualContacts[0].ContactRequestLocalState)
s.Require().Equal(ContactRequestStateSent, actualContacts[1].ContactRequestLocalState)
s.Require().True(actualContacts[0].added())
s.Require().True(actualContacts[1].added())
// Backup
clock, err := bob1.BackupData(context.Background())
@ -132,6 +137,8 @@ func (s *MessengerBackupSuite) TestBackupContacts() {
s.Require().Equal(actualContacts[0].ID, contactID2)
s.Require().Equal(actualContacts[1].ID, contactID1)
}
s.Require().Equal(ContactRequestStateSent, actualContacts[0].ContactRequestLocalState)
s.Require().Equal(ContactRequestStateSent, actualContacts[1].ContactRequestLocalState)
lastBackup, err := bob1.lastBackup()
s.Require().NoError(err)
s.Require().NotEmpty(lastBackup)

View file

@ -12,6 +12,29 @@ import (
"strings"
)
func (m *Messenger) getOneToOneAndNextClock(contact *Contact) (*Chat, uint64, error) {
chat, ok := m.allChats.Load(contact.ID)
if !ok {
publicKey, err := contact.PublicKey()
if err != nil {
return nil, 0, err
}
chat = OneToOneFromPublicKey(publicKey, m.getTimesource())
// We don't want to show the chat to the user by default
chat.Active = false
if err := m.saveChat(chat); err != nil {
return nil, 0, err
}
m.allChats.Store(chat.ID, chat)
}
clock, _ := chat.NextClockAndTimestamp(m.getTimesource())
return chat, clock, nil
}
func (m *Messenger) Chats() []*Chat {
var chats []*Chat
@ -267,14 +290,11 @@ func (m *Messenger) CreateOneToOneChat(request *requests.CreateOneToOneChat) (*M
if err != nil {
return nil, err
}
contact, ok := m.allContacts.Load(chatID)
if !ok {
var err error
contact, err = buildContactFromPkString(chatID)
if err != nil {
return nil, err
}
contact, err := m.BuildContact(chatID)
if err != nil {
return nil, err
}
contact.EnsName = ensName
contact.ENSVerified = true
err = m.persistence.SaveContact(contact, nil)

View file

@ -91,7 +91,7 @@ func (s *MessengerContactRequestSuite) TestReceiveAndAcceptContactRequest() {
// Make sure contact is added on the sender side
contacts := s.m.AddedContacts()
s.Require().Len(contacts, 1)
s.Require().Equal(ContactRequestStateSent, contacts[0].ContactRequestState)
s.Require().Equal(ContactRequestStateSent, contacts[0].ContactRequestLocalState)
// Wait for the message to reach its destination
resp, err = WaitOnMessengerResponse(
@ -116,7 +116,7 @@ func (s *MessengerContactRequestSuite) TestReceiveAndAcceptContactRequest() {
// Check the contact state is correctly set
s.Require().Len(resp.Contacts, 1)
s.Require().Equal(ContactRequestStateReceived, resp.Contacts[0].ContactRequestState)
s.Require().Equal(ContactRequestStateReceived, resp.Contacts[0].ContactRequestRemoteState)
// Make sure it's the pending contact requests
contactRequests, _, err = theirMessenger.PendingContactRequests("", 10)
@ -141,7 +141,7 @@ func (s *MessengerContactRequestSuite) TestReceiveAndAcceptContactRequest() {
// Check the contact state is correctly set
s.Require().Len(resp.Contacts, 1)
s.Require().Equal(ContactRequestStateMutual, resp.Contacts[0].ContactRequestState)
s.Require().True(resp.Contacts[0].mutual())
// Make sure the sender is added to our contacts
contacts = theirMessenger.AddedContacts()
@ -181,7 +181,7 @@ func (s *MessengerContactRequestSuite) TestReceiveAndAcceptContactRequest() {
// Check the contact state is correctly set
s.Require().Len(resp.Contacts, 1)
s.Require().Equal(ContactRequestStateMutual, resp.Contacts[0].ContactRequestState)
s.Require().True(resp.Contacts[0].mutual())
}
func (s *MessengerContactRequestSuite) TestReceiveAndDismissContactRequest() {
@ -208,7 +208,7 @@ func (s *MessengerContactRequestSuite) TestReceiveAndDismissContactRequest() {
// Check the contact state is correctly set
s.Require().Len(resp.Contacts, 1)
s.Require().Equal(ContactRequestStateSent, resp.Contacts[0].ContactRequestState)
s.Require().Equal(ContactRequestStateSent, resp.Contacts[0].ContactRequestLocalState)
// Make sure it's not returned as coming from us
contactRequests, _, err := s.m.PendingContactRequests("", 10)
@ -239,7 +239,7 @@ func (s *MessengerContactRequestSuite) TestReceiveAndDismissContactRequest() {
// Check the contact state is correctly set
s.Require().Len(resp.Contacts, 1)
s.Require().Equal(ContactRequestStateReceived, resp.Contacts[0].ContactRequestState)
s.Require().Equal(ContactRequestStateReceived, resp.Contacts[0].ContactRequestRemoteState)
// Check contact request has been received
s.Require().NoError(err)
@ -256,7 +256,7 @@ func (s *MessengerContactRequestSuite) TestReceiveAndDismissContactRequest() {
// Check the contact state is correctly set
s.Require().Len(resp.Contacts, 1)
s.Require().Equal(ContactRequestStateDismissed, resp.Contacts[0].ContactRequestState)
s.Require().Equal(ContactRequestStateDismissed, resp.Contacts[0].ContactRequestLocalState)
// Make sure the message is updated
s.Require().NotNil(resp)
@ -299,7 +299,7 @@ func (s *MessengerContactRequestSuite) TestReceiveAcceptAndRetractContactRequest
// Check the contact state is correctly set
s.Require().Len(resp.Contacts, 1)
s.Require().Equal(ContactRequestStateSent, resp.Contacts[0].ContactRequestState)
s.Require().Equal(ContactRequestStateSent, resp.Contacts[0].ContactRequestLocalState)
s.Require().NotNil(resp)
s.Require().Len(resp.Messages(), 1)
@ -328,7 +328,7 @@ func (s *MessengerContactRequestSuite) TestReceiveAcceptAndRetractContactRequest
// Check the contact state is correctly set
s.Require().Len(resp.Contacts, 1)
s.Require().Equal(ContactRequestStateReceived, resp.Contacts[0].ContactRequestState)
s.Require().Equal(ContactRequestStateReceived, resp.Contacts[0].ContactRequestRemoteState)
// Check activity center notification is of the right type
s.Require().Len(resp.ActivityCenterNotifications(), 1)
@ -355,7 +355,7 @@ func (s *MessengerContactRequestSuite) TestReceiveAcceptAndRetractContactRequest
// Check the contact state is correctly set
s.Require().Len(resp.Contacts, 1)
s.Require().Equal(ContactRequestStateMutual, resp.Contacts[0].ContactRequestState)
s.Require().True(resp.Contacts[0].mutual())
s.Require().Len(resp.ActivityCenterNotifications(), 1)
s.Require().Equal(resp.ActivityCenterNotifications()[0].ID.String(), contactRequests[0].ID)
@ -387,7 +387,7 @@ func (s *MessengerContactRequestSuite) TestReceiveAcceptAndRetractContactRequest
// Check the contact state is correctly set
s.Require().Len(resp.Contacts, 1)
s.Require().Equal(ContactRequestStateMutual, resp.Contacts[0].ContactRequestState)
s.Require().True(resp.Contacts[0].mutual())
// Make sure the message is updated, sender side
s.Require().NotNil(resp)
@ -403,12 +403,13 @@ func (s *MessengerContactRequestSuite) TestReceiveAcceptAndRetractContactRequest
s.Require().NoError(err)
s.Require().NotNil(resp)
s.Require().Len(resp.Contacts, 1)
s.Require().False(resp.Contacts[0].HasAddedUs)
s.Require().False(resp.Contacts[0].Added)
s.Require().False(resp.Contacts[0].hasAddedUs())
s.Require().False(resp.Contacts[0].added())
// Check the contact state is correctly set
s.Require().Len(resp.Contacts, 1)
s.Require().Equal(ContactRequestStateNone, resp.Contacts[0].ContactRequestState)
s.Require().Equal(ContactRequestStateNone, resp.Contacts[0].ContactRequestLocalState)
s.Require().Equal(ContactRequestStateNone, resp.Contacts[0].ContactRequestRemoteState)
// Wait for the message to reach its destination
resp, err = WaitOnMessengerResponse(
@ -425,12 +426,13 @@ func (s *MessengerContactRequestSuite) TestReceiveAcceptAndRetractContactRequest
myID := types.EncodeHex(crypto.FromECDSAPub(&s.m.identity.PublicKey))
s.Require().Equal(myID, resp.Contacts[0].ID)
s.Require().False(resp.Contacts[0].Added)
s.Require().False(resp.Contacts[0].HasAddedUs)
s.Require().False(resp.Contacts[0].added())
s.Require().False(resp.Contacts[0].hasAddedUs())
// Check the contact state is correctly set
s.Require().Len(resp.Contacts, 1)
s.Require().Equal(ContactRequestStateNone, resp.Contacts[0].ContactRequestState)
s.Require().Equal(ContactRequestStateNone, resp.Contacts[0].ContactRequestLocalState)
s.Require().Equal(ContactRequestStateNone, resp.Contacts[0].ContactRequestRemoteState)
}
func (s *MessengerContactRequestSuite) TestReceiveAcceptAndRetractContactRequestOutOfOrder() {
@ -465,7 +467,7 @@ func (s *MessengerContactRequestSuite) TestReceiveAcceptAndRetractContactRequest
s.Require().Len(response.ActivityCenterNotifications(), 1)
contacts := s.m.Contacts()
s.Require().Len(contacts, 1)
s.Require().Equal(ContactRequestStateReceived, contacts[0].ContactRequestState)
s.Require().Equal(ContactRequestStateReceived, contacts[0].ContactRequestRemoteState)
retract := protobuf.RetractContactRequest{
Clock: 2,
@ -476,7 +478,7 @@ func (s *MessengerContactRequestSuite) TestReceiveAcceptAndRetractContactRequest
// Nothing should have changed
contacts = s.m.Contacts()
s.Require().Len(contacts, 1)
s.Require().Equal(ContactRequestStateReceived, contacts[0].ContactRequestState)
s.Require().Equal(ContactRequestStateReceived, contacts[0].ContactRequestRemoteState)
}
func (s *MessengerContactRequestSuite) TestReceiveAndAcceptContactRequestTwice() {
@ -509,7 +511,7 @@ func (s *MessengerContactRequestSuite) TestReceiveAndAcceptContactRequestTwice()
// Make sure contact is added on the sender side
contacts := s.m.AddedContacts()
s.Require().Len(contacts, 1)
s.Require().Equal(ContactRequestStateSent, contacts[0].ContactRequestState)
s.Require().Equal(ContactRequestStateSent, contacts[0].ContactRequestLocalState)
// Wait for the message to reach its destination
resp, err = WaitOnMessengerResponse(
@ -531,7 +533,7 @@ func (s *MessengerContactRequestSuite) TestReceiveAndAcceptContactRequestTwice()
// Check the contact state is correctly set
s.Require().Len(resp.Contacts, 1)
s.Require().Equal(ContactRequestStateReceived, resp.Contacts[0].ContactRequestState)
s.Require().Equal(ContactRequestStateReceived, resp.Contacts[0].ContactRequestRemoteState)
// Make sure it's the pending contact requests
contactRequests, _, err = theirMessenger.PendingContactRequests("", 10)
@ -556,7 +558,7 @@ func (s *MessengerContactRequestSuite) TestReceiveAndAcceptContactRequestTwice()
// Check the contact state is correctly set
s.Require().Len(resp.Contacts, 1)
s.Require().Equal(ContactRequestStateMutual, resp.Contacts[0].ContactRequestState)
s.Require().True(resp.Contacts[0].mutual())
// Make sure the sender is added to our contacts
contacts = theirMessenger.AddedContacts()
@ -593,7 +595,7 @@ func (s *MessengerContactRequestSuite) TestReceiveAndAcceptContactRequestTwice()
// Check the contact state is correctly set
s.Require().Len(resp.Contacts, 1)
s.Require().Equal(ContactRequestStateMutual, resp.Contacts[0].ContactRequestState)
s.Require().True(resp.Contacts[0].mutual())
// Resend contact request with higher clock value
resp, err = s.m.SendContactRequest(context.Background(), request)
@ -649,7 +651,7 @@ func (s *MessengerContactRequestSuite) TestAcceptLatestContactRequestForContact(
// Make sure contact is added on the sender side
contacts := s.m.AddedContacts()
s.Require().Len(contacts, 1)
s.Require().Equal(ContactRequestStateSent, contacts[0].ContactRequestState)
s.Require().Equal(ContactRequestStateSent, contacts[0].ContactRequestLocalState)
// Wait for the message to reach its destination
resp, err = WaitOnMessengerResponse(
@ -675,7 +677,7 @@ func (s *MessengerContactRequestSuite) TestAcceptLatestContactRequestForContact(
// Check the contact state is correctly set
s.Require().Len(resp.Contacts, 1)
s.Require().Equal(ContactRequestStateReceived, resp.Contacts[0].ContactRequestState)
s.Require().Equal(ContactRequestStateReceived, resp.Contacts[0].ContactRequestRemoteState)
// Make sure it's the pending contact requests
contactRequests, _, err = theirMessenger.PendingContactRequests("", 10)
@ -700,7 +702,7 @@ func (s *MessengerContactRequestSuite) TestAcceptLatestContactRequestForContact(
// Check the contact state is correctly set
s.Require().Len(resp.Contacts, 1)
s.Require().Equal(ContactRequestStateMutual, resp.Contacts[0].ContactRequestState)
s.Require().True(resp.Contacts[0].mutual())
// Make sure the sender is added to our contacts
contacts = theirMessenger.AddedContacts()
@ -720,24 +722,24 @@ func (s *MessengerContactRequestSuite) TestAcceptLatestContactRequestForContact(
)
s.Require().NoError(err)
// Check activity center notification is of the right type
s.Require().Equal(ActivityCenterNotificationTypeContactRequest, resp.ActivityCenterNotifications()[0].Type)
s.Require().NotNil(resp.ActivityCenterNotifications()[0].Message)
s.Require().Equal(common.ContactRequestStateAccepted, resp.ActivityCenterNotifications()[0].Message.ContactRequestState)
// Make sure the message is updated, sender s2de
// Make sure the message is updated, sender side
s.Require().NotNil(resp)
s.Require().Len(resp.Messages(), 1)
s.Require().Equal(resp.Messages()[0].ID, contactRequests[0].ID)
s.Require().Equal(common.ContactRequestStateAccepted, resp.Messages()[0].ContactRequestState)
// Check activity center notification is of the right type
s.Require().Equal(ActivityCenterNotificationTypeContactRequest, resp.ActivityCenterNotifications()[0].Type)
s.Require().NotNil(resp.ActivityCenterNotifications()[0].Message)
s.Require().Equal(common.ContactRequestStateAccepted, resp.ActivityCenterNotifications()[0].Message.ContactRequestState)
// Make sure we consider them a mutual contact, sender side
mutualContacts = s.m.MutualContacts()
s.Require().Len(mutualContacts, 1)
// Check the contact state is correctly set
s.Require().Len(resp.Contacts, 1)
s.Require().Equal(ContactRequestStateMutual, resp.Contacts[0].ContactRequestState)
s.Require().True(resp.Contacts[0].mutual())
}
func (s *MessengerContactRequestSuite) TestDismissLatestContactRequestForContact() {
@ -772,7 +774,7 @@ func (s *MessengerContactRequestSuite) TestDismissLatestContactRequestForContact
// Make sure contact is added on the sender side
contacts := s.m.AddedContacts()
s.Require().Len(contacts, 1)
s.Require().Equal(ContactRequestStateSent, contacts[0].ContactRequestState)
s.Require().Equal(ContactRequestStateSent, contacts[0].ContactRequestLocalState)
// Wait for the message to reach its destination
resp, err = WaitOnMessengerResponse(
@ -794,7 +796,7 @@ func (s *MessengerContactRequestSuite) TestDismissLatestContactRequestForContact
// Check the contact state is correctly set
s.Require().Len(resp.Contacts, 1)
s.Require().Equal(ContactRequestStateReceived, resp.Contacts[0].ContactRequestState)
s.Require().Equal(ContactRequestStateReceived, resp.Contacts[0].ContactRequestRemoteState)
// Make sure it's the pending contact requests
contactRequests, _, err = theirMessenger.PendingContactRequests("", 10)
@ -839,7 +841,7 @@ func (s *MessengerContactRequestSuite) TestReceiveAndAcceptLegacyContactRequest(
// Make sure contact is added on the sender side
contacts := s.m.AddedContacts()
s.Require().Len(contacts, 1)
s.Require().Equal(ContactRequestStateSent, contacts[0].ContactRequestState)
s.Require().Equal(ContactRequestStateSent, contacts[0].ContactRequestLocalState)
// Wait for the message to reach its destination
resp, err = WaitOnMessengerResponse(
@ -864,7 +866,7 @@ func (s *MessengerContactRequestSuite) TestReceiveAndAcceptLegacyContactRequest(
// Check the contact state is correctly set
s.Require().Len(resp.Contacts, 1)
s.Require().Equal(ContactRequestStateReceived, resp.Contacts[0].ContactRequestState)
s.Require().Equal(ContactRequestStateReceived, resp.Contacts[0].ContactRequestRemoteState)
// Accept contact request, receiver side
resp, err = theirMessenger.AcceptContactRequest(context.Background(), &requests.AcceptContactRequest{ID: types.Hex2Bytes(notification.Message.ID)})
@ -880,7 +882,7 @@ func (s *MessengerContactRequestSuite) TestReceiveAndAcceptLegacyContactRequest(
// Check the contact state is correctly set
s.Require().Len(resp.Contacts, 1)
s.Require().Equal(ContactRequestStateMutual, resp.Contacts[0].ContactRequestState)
s.Require().True(resp.Contacts[0].mutual())
// Make sure the sender is added to our contacts
contacts = theirMessenger.AddedContacts()
@ -911,7 +913,7 @@ func (s *MessengerContactRequestSuite) TestLegacyContactRequestNotifications() {
// Make sure contact is added on the sender side
contacts := s.m.AddedContacts()
s.Require().Len(contacts, 1)
s.Require().Equal(ContactRequestStateSent, contacts[0].ContactRequestState)
s.Require().Equal(ContactRequestStateSent, contacts[0].ContactRequestLocalState)
// Wait for the message to reach its destination
resp, err = WaitOnMessengerResponse(
@ -936,57 +938,7 @@ func (s *MessengerContactRequestSuite) TestLegacyContactRequestNotifications() {
// Check the contact state is correctly set
s.Require().Len(resp.Contacts, 1)
s.Require().Equal(ContactRequestStateReceived, resp.Contacts[0].ContactRequestState)
// Send new contact request
resp, err = s.m.AddContact(context.Background(), request)
s.Require().NoError(err)
s.Require().NotNil(resp)
crRequest := &requests.SendContactRequest{
ID: types.Hex2Bytes(contactID),
Message: "hello",
}
myID := types.EncodeHex(crypto.FromECDSAPub(&s.m.identity.PublicKey))
// Send contact request
_, err = s.m.SendContactRequest(context.Background(), crRequest)
s.Require().NoError(err)
paginationResponse, err := theirMessenger.ActivityCenterNotifications("", 10)
s.Require().NoError(err)
s.Require().Len(paginationResponse.Notifications, 1)
// Wait for the message to reach its destination
resp, err = WaitOnMessengerResponse(
theirMessenger,
func(r *MessengerResponse) bool {
return len(r.ActivityCenterNotifications()) == 2
},
"no messages",
)
s.Require().NoError(err)
activityCenterNotifications := resp.ActivityCenterNotifications()
var newNotification, oldNotification *ActivityCenterNotification
if activityCenterNotifications[0].Message.ID == defaultContactRequestID(myID) {
oldNotification = activityCenterNotifications[0]
newNotification = activityCenterNotifications[1]
} else {
newNotification = activityCenterNotifications[0]
oldNotification = activityCenterNotifications[1]
}
s.Require().True(oldNotification.Dismissed)
s.Require().False(newNotification.Dismissed)
paginationResponse, err = theirMessenger.ActivityCenterNotifications("", 10)
s.Require().NoError(err)
s.Require().Len(paginationResponse.Notifications, 2)
s.Require().Equal(ContactRequestStateReceived, resp.Contacts[0].ContactRequestRemoteState)
}
func (s *MessengerContactRequestSuite) TestReceiveMultipleLegacy() {
@ -1012,7 +964,7 @@ func (s *MessengerContactRequestSuite) TestReceiveMultipleLegacy() {
// Make sure contact is added on the sender side
contacts := s.m.AddedContacts()
s.Require().Len(contacts, 1)
s.Require().Equal(ContactRequestStateSent, contacts[0].ContactRequestState)
s.Require().Equal(ContactRequestStateSent, contacts[0].ContactRequestLocalState)
// Wait for the message to reach its destination
resp, err = WaitOnMessengerResponse(
@ -1037,7 +989,7 @@ func (s *MessengerContactRequestSuite) TestReceiveMultipleLegacy() {
// Check the contact state is correctly set
s.Require().Len(resp.Contacts, 1)
s.Require().Equal(ContactRequestStateReceived, resp.Contacts[0].ContactRequestState)
s.Require().Equal(ContactRequestStateReceived, resp.Contacts[0].ContactRequestRemoteState)
// Remove contact
@ -1055,7 +1007,8 @@ func (s *MessengerContactRequestSuite) TestReceiveMultipleLegacy() {
s.Require().NoError(err)
// Make sure it's not a contact anymore
s.Require().Equal(ContactRequestStateNone, resp.Contacts[0].ContactRequestState)
s.Require().Equal(ContactRequestStateNone, resp.Contacts[0].ContactRequestLocalState)
s.Require().Equal(ContactRequestStateNone, resp.Contacts[0].ContactRequestRemoteState)
// Re-add user
resp, err = s.m.AddContact(context.Background(), request)
@ -1085,7 +1038,7 @@ func (s *MessengerContactRequestSuite) TestReceiveMultipleLegacy() {
// Check the contact state is correctly set
s.Require().Len(resp.Contacts, 1)
s.Require().Equal(ContactRequestStateReceived, resp.Contacts[0].ContactRequestState)
s.Require().Equal(ContactRequestStateReceived, resp.Contacts[0].ContactRequestRemoteState)
}
@ -1126,7 +1079,7 @@ func (s *MessengerContactRequestSuite) TestAcceptLatestLegacyContactRequestForCo
// Check the contact state is correctly set
s.Require().Len(resp.Contacts, 1)
s.Require().Equal(ContactRequestStateReceived, resp.Contacts[0].ContactRequestState)
s.Require().Equal(ContactRequestStateReceived, resp.Contacts[0].ContactRequestRemoteState)
// Accept latest contact request, receiver side
resp, err = theirMessenger.AcceptLatestContactRequestForContact(context.Background(), &requests.AcceptLatestContactRequestForContact{ID: types.Hex2Bytes(myID)})
@ -1134,7 +1087,7 @@ func (s *MessengerContactRequestSuite) TestAcceptLatestLegacyContactRequestForCo
// Check the contact state is correctly set
s.Require().Len(resp.Contacts, 1)
s.Require().Equal(ContactRequestStateMutual, resp.Contacts[0].ContactRequestState)
s.Require().True(resp.Contacts[0].mutual())
// Make sure the sender is added to our contacts
contacts := theirMessenger.AddedContacts()
@ -1160,5 +1113,168 @@ func (s *MessengerContactRequestSuite) TestAcceptLatestLegacyContactRequestForCo
// Check the contact state is correctly set
s.Require().Len(resp.Contacts, 1)
s.Require().Equal(ContactRequestStateMutual, resp.Contacts[0].ContactRequestState)
s.Require().True(resp.Contacts[0].mutual())
}
func (s *MessengerContactRequestSuite) TestPairedDevicesRemoveContact() {
alice1 := s.m
alice2, err := newMessengerWithKey(s.shh, s.m.identity, s.logger, nil)
s.Require().NoError(err)
_, err = alice2.Start()
s.Require().NoError(err)
prepAliceMessengersForPairing(&s.Suite, alice1, alice2)
pairTwoDevices(&s.Suite, alice1, alice2)
pairTwoDevices(&s.Suite, alice2, alice1)
bob := s.newMessenger(s.shh)
_, err = bob.Start()
s.Require().NoError(err)
contactID := types.EncodeHex(crypto.FromECDSAPub(&bob.identity.PublicKey))
myID := types.EncodeHex(crypto.FromECDSAPub(&alice1.identity.PublicKey))
request := &requests.AddContact{
ID: types.Hex2Bytes(contactID),
}
// Send contact request
_, err = alice1.AddContact(context.Background(), request)
s.Require().NoError(err)
// it should show up on device 2
resp, err := WaitOnMessengerResponse(
alice2,
func(r *MessengerResponse) bool {
return len(r.Contacts) > 0
},
"no messages",
)
s.Require().NoError(err)
// Check the contact state is correctly set
s.Require().Len(resp.Contacts, 1)
s.Require().Equal(resp.Contacts[0].ContactRequestLocalState, ContactRequestStateSent)
// Wait for the message to reach its destination
resp, err = WaitOnMessengerResponse(
bob,
func(r *MessengerResponse) bool {
return len(r.Contacts) > 0 && len(r.Messages()) > 0 && len(r.ActivityCenterNotifications()) > 0
},
"no messages",
)
// Check contact request has been received
s.Require().NoError(err)
// Check activity center notification is of the right type
s.Require().Len(resp.ActivityCenterNotifications(), 1)
s.Require().Equal(ActivityCenterNotificationTypeContactRequest, resp.ActivityCenterNotifications()[0].Type)
s.Require().NotNil(resp.ActivityCenterNotifications()[0].Message)
s.Require().Equal(common.ContactRequestStatePending, resp.ActivityCenterNotifications()[0].Message.ContactRequestState)
// Check the contact state is correctly set
s.Require().Len(resp.Contacts, 1)
s.Require().Equal(ContactRequestStateReceived, resp.Contacts[0].ContactRequestRemoteState)
// Accept latest contact request, receiver side
resp, err = bob.AcceptLatestContactRequestForContact(context.Background(), &requests.AcceptLatestContactRequestForContact{ID: types.Hex2Bytes(myID)})
s.Require().NoError(err)
// Check the contact state is correctly set
s.Require().Len(resp.Contacts, 1)
s.Require().True(resp.Contacts[0].mutual())
// Make sure the sender is added to our contacts
contacts := bob.AddedContacts()
s.Require().Len(contacts, 1)
// Make sure we consider them a mutual contact, receiver side
mutualContacts := bob.MutualContacts()
s.Require().Len(mutualContacts, 1)
// Wait for the message to reach its destination
resp, err = WaitOnMessengerResponse(
alice1,
func(r *MessengerResponse) bool {
return len(r.Contacts) > 0
},
"no messages",
)
s.Require().NoError(err)
// Make sure we consider them a mutual contact, sender side
mutualContacts = alice1.MutualContacts()
s.Require().Len(mutualContacts, 1)
// Check the contact state is correctly set
s.Require().Len(resp.Contacts, 1)
s.Require().True(resp.Contacts[0].mutual())
// Wait for the message to reach its destination
resp, err = WaitOnMessengerResponse(
alice2,
func(r *MessengerResponse) bool {
return len(r.Contacts) > 0
},
"no messages",
)
s.Require().NoError(err)
// Make sure we consider them a mutual contact, sender side
mutualContacts = alice2.MutualContacts()
s.Require().Len(mutualContacts, 1)
// Check the contact state is correctly set
s.Require().Len(resp.Contacts, 1)
s.Require().True(resp.Contacts[0].mutual())
resp, err = alice1.RetractContactRequest(&requests.RetractContactRequest{ContactID: types.Hex2Bytes(bob.myHexIdentity())})
s.Require().NoError(err)
s.Require().NotNil(resp)
s.Require().Len(resp.Contacts, 1)
s.Require().False(resp.Contacts[0].hasAddedUs())
s.Require().False(resp.Contacts[0].added())
// Check the contact state is correctly set
s.Require().Len(resp.Contacts, 1)
s.Require().Equal(ContactRequestStateNone, resp.Contacts[0].ContactRequestLocalState)
s.Require().Equal(ContactRequestStateNone, resp.Contacts[0].ContactRequestRemoteState)
// Check on bob side
resp, err = WaitOnMessengerResponse(
bob,
func(r *MessengerResponse) bool {
return len(r.Contacts) > 0
},
"no messages",
)
s.Require().NoError(err)
s.Require().NotNil(resp)
s.Require().Len(resp.Contacts, 1)
// Check the contact state is correctly set
s.Require().Equal(ContactRequestStateNone, resp.Contacts[0].ContactRequestLocalState)
s.Require().Equal(ContactRequestStateNone, resp.Contacts[0].ContactRequestRemoteState)
alice2.logger.Info("MY KEY", zap.String("my-id", alice2.myHexIdentity()))
// Check on alice2 side
resp, err = WaitOnMessengerResponse(
alice2,
func(r *MessengerResponse) bool {
return len(r.Contacts) > 0
},
"no messages",
)
s.Require().NoError(err)
s.Require().NotNil(resp)
s.Require().Len(resp.Contacts, 1)
// Check the contact state is correctly set
s.Require().Equal(ContactRequestStateNone, resp.Contacts[0].ContactRequestLocalState)
s.Require().Equal(ContactRequestStateNone, resp.Contacts[0].ContactRequestRemoteState)
}

View file

@ -81,7 +81,7 @@ func (s *MessengerContactUpdateSuite) TestReceiveContactUpdate() {
s.Require().Len(response.Contacts, 1)
contact := response.Contacts[0]
// It should add the contact
s.Require().True(contact.Added)
s.Require().True(contact.added())
// It should create a profile chat & a one to one chat
s.Require().Len(response.Chats(), 2)
@ -104,7 +104,7 @@ func (s *MessengerContactUpdateSuite) TestReceiveContactUpdate() {
s.Require().Equal(theirName, receivedContact.EnsName)
s.Require().False(receivedContact.ENSVerified)
s.Require().NotEmpty(receivedContact.LastUpdated)
s.Require().True(receivedContact.HasAddedUs)
s.Require().True(receivedContact.hasAddedUs())
newPicture := "new-picture"
err = theirMessenger.SendContactUpdates(context.Background(), newEnsName, newPicture)
@ -147,7 +147,7 @@ func (s *MessengerContactUpdateSuite) TestAddContact() {
s.Require().Len(response.Chats(), 2)
// It should add the contact
s.Require().True(contact.Added)
s.Require().True(contact.added())
// Wait for the message to reach its destination
response, err = WaitOnMessengerResponse(
@ -185,7 +185,7 @@ func (s *MessengerContactUpdateSuite) TestAddContactWithENS() {
s.Require().Len(response.Chats(), 2)
// It should add the contact
s.Require().True(contact.Added)
s.Require().True(contact.added())
// Wait for the message to reach its destination
response, err = WaitOnMessengerResponse(
@ -198,38 +198,3 @@ func (s *MessengerContactUpdateSuite) TestAddContactWithENS() {
receivedContact := response.Contacts[0]
s.Require().NotEmpty(receivedContact.LastUpdated)
}
func (s *MessengerContactUpdateSuite) TestRejectContactRequest() {
contactID := types.EncodeHex(crypto.FromECDSAPub(&s.m.identity.PublicKey))
theirMessenger := s.newMessenger(s.shh)
_, err := theirMessenger.Start()
s.Require().NoError(err)
response, err := theirMessenger.AddContact(context.Background(), &requests.AddContact{ID: types.Hex2Bytes(contactID)})
s.Require().NoError(err)
s.Require().NotNil(response)
s.Require().Len(response.Contacts, 1)
contact := response.Contacts[0]
// It should add the contact
s.Require().True(contact.Added)
// Wait for the message to reach its destination
response, err = WaitOnMessengerResponse(
s.m,
func(r *MessengerResponse) bool { return len(r.Contacts) > 0 },
"contact request not received",
)
s.Require().NoError(err)
// Make sure HasAddedUs is set
receivedContact := response.Contacts[0]
s.Require().True(receivedContact.HasAddedUs)
response, err = s.m.RejectContactRequest(context.Background(), &requests.RejectContactRequest{ID: types.Hex2Bytes(contactID)})
s.Require().NoError(err)
s.Require().Len(response.Contacts, 1)
s.Require().Equal(response.Contacts[0].ID, contactID)
s.Require().False(response.Contacts[0].HasAddedUs)
}

View file

@ -29,7 +29,7 @@ func (m *Messenger) SendContactVerificationRequest(ctx context.Context, contactI
}
contact, ok := m.allContacts.Load(contactID)
if !ok || !contact.Added || !contact.HasAddedUs {
if !ok || !contact.mutual() {
return nil, errors.New("must be a mutual contact")
}
@ -162,7 +162,7 @@ func (m *Messenger) CancelVerificationRequest(ctx context.Context, id string) (*
contactID := verifRequest.To
contact, ok := m.allContacts.Load(contactID)
if !ok || !contact.Added || !contact.HasAddedUs {
if !ok || !contact.mutual() {
return nil, errors.New("Can't find contact for canceling verification request")
}
@ -272,7 +272,7 @@ func (m *Messenger) AcceptContactVerificationRequest(ctx context.Context, id str
contactID := verifRequest.From
contact, ok := m.allContacts.Load(contactID)
if !ok || !contact.Added || !contact.HasAddedUs {
if !ok || !contact.mutual() {
return nil, errors.New("must be a mutual contact")
}
@ -388,7 +388,7 @@ func (m *Messenger) VerifiedTrusted(ctx context.Context, request *requests.Verif
contactID := notification.ReplyMessage.From
contact, ok := m.allContacts.Load(contactID)
if !ok || !contact.Added || !contact.HasAddedUs {
if !ok || !contact.mutual() {
return nil, errors.New("must be a mutual contact")
}
@ -496,7 +496,7 @@ func (m *Messenger) VerifiedUntrustworthy(ctx context.Context, request *requests
contactID := notification.ReplyMessage.From
contact, ok := m.allContacts.Load(contactID)
if !ok || !contact.Added || !contact.HasAddedUs {
if !ok || !contact.mutual() {
return nil, errors.New("must be a mutual contact")
}
@ -598,7 +598,7 @@ func (m *Messenger) DeclineContactVerificationRequest(ctx context.Context, id st
}
contact, ok := m.allContacts.Load(verifRequest.From)
if !ok || !contact.Added || !contact.HasAddedUs {
if !ok || !contact.mutual() {
return nil, errors.New("must be a mutual contact")
}
@ -744,7 +744,7 @@ func (m *Messenger) HandleRequestContactVerification(state *ReceivedMessageState
contactID := hexutil.Encode(crypto.FromECDSAPub(state.CurrentMessageState.PublicKey))
contact := state.CurrentMessageState.Contact
if !contact.Added || !contact.HasAddedUs {
if !contact.mutual() {
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")
}
@ -835,7 +835,7 @@ func (m *Messenger) HandleAcceptContactVerification(state *ReceivedMessageState,
contactID := hexutil.Encode(crypto.FromECDSAPub(state.CurrentMessageState.PublicKey))
contact := state.CurrentMessageState.Contact
if !contact.Added || !contact.HasAddedUs {
if !contact.mutual() {
m.logger.Debug("Received a verification response for a non mutual contact", zap.String("contactID", contactID))
return errors.New("must be a mutual contact")
}
@ -924,7 +924,7 @@ func (m *Messenger) HandleDeclineContactVerification(state *ReceivedMessageState
contactID := hexutil.Encode(crypto.FromECDSAPub(state.CurrentMessageState.PublicKey))
contact := state.CurrentMessageState.Contact
if !contact.Added || !contact.HasAddedUs {
if !contact.mutual() {
m.logger.Debug("Received a verification decline for a non mutual contact", zap.String("contactID", contactID))
return errors.New("must be a mutual contact")
}

View file

@ -74,7 +74,7 @@ func (s *MessengerVerificationRequests) mutualContact(theirMessenger *Messenger)
// Make sure contact is added on the sender side
contacts := s.m.AddedContacts()
s.Require().Len(contacts, 1)
s.Require().Equal(ContactRequestStateSent, contacts[0].ContactRequestState)
s.Require().Equal(ContactRequestStateSent, contacts[0].ContactRequestLocalState)
// Wait for the message to reach its destination
resp, err = WaitOnMessengerResponse(
@ -96,7 +96,7 @@ func (s *MessengerVerificationRequests) mutualContact(theirMessenger *Messenger)
// Check the contact state is correctly set
s.Require().Len(resp.Contacts, 1)
s.Require().Equal(ContactRequestStateReceived, resp.Contacts[0].ContactRequestState)
s.Require().Equal(ContactRequestStateReceived, resp.Contacts[0].ContactRequestRemoteState)
// Make sure it's the pending contact requests
contactRequests, _, err = theirMessenger.PendingContactRequests("", 10)
@ -121,7 +121,7 @@ func (s *MessengerVerificationRequests) mutualContact(theirMessenger *Messenger)
// Check the contact state is correctly set
s.Require().Len(resp.Contacts, 1)
s.Require().Equal(ContactRequestStateMutual, resp.Contacts[0].ContactRequestState)
s.Require().True(resp.Contacts[0].mutual())
// Make sure the sender is added to our contacts
contacts = theirMessenger.AddedContacts()
@ -158,7 +158,7 @@ func (s *MessengerVerificationRequests) mutualContact(theirMessenger *Messenger)
// Check the contact state is correctly set
s.Require().Len(resp.Contacts, 1)
s.Require().Equal(ContactRequestStateMutual, resp.Contacts[0].ContactRequestState)
s.Require().True(resp.Contacts[0].mutual())
}

View file

@ -23,7 +23,7 @@ func (m *Messenger) acceptContactRequest(requestID string, syncing bool) (*Messe
}
m.logger.Info("acceptContactRequest")
return m.addContact(contactRequest.From, "", "", "", contactRequest.ID, syncing)
return m.addContact(contactRequest.From, "", "", "", contactRequest.ID, syncing, false)
}
func (m *Messenger) AcceptContactRequest(ctx context.Context, request *requests.AcceptContactRequest) (*MessengerResponse, error) {
@ -53,7 +53,7 @@ func (m *Messenger) SendContactRequest(ctx context.Context, request *requests.Se
chatID := request.ID.String()
response, err := m.addContact(chatID, "", "", "", "", false)
response, err := m.addContact(chatID, "", "", "", "", false, false)
if err != nil {
return nil, err
}
@ -98,38 +98,6 @@ func (m *Messenger) SendContactRequest(ctx context.Context, request *requests.Se
return response, nil
}
// NOTE: This sets HasAddedUs to false, so next time we receive a contact request it will be reset to true
func (m *Messenger) RejectContactRequest(ctx context.Context, request *requests.RejectContactRequest) (*MessengerResponse, error) {
err := request.Validate()
if err != nil {
return nil, err
}
pubKey := request.ID.String()
contact, ok := m.allContacts.Load(pubKey)
if !ok {
var err error
contact, err = buildContactFromPkString(pubKey)
if err != nil {
return nil, err
}
}
contact.HasAddedUs = false
err = m.persistence.SaveContact(contact, nil)
if err != nil {
return nil, err
}
m.allContacts.Store(contact.ID, contact)
response := &MessengerResponse{}
response.Contacts = []*Contact{contact}
return response, nil
}
func (m *Messenger) dismissContactRequest(requestID string, syncing bool) (*MessengerResponse, error) {
m.logger.Info("dismissContactRequest")
contactRequest, err := m.persistence.MessageByID(requestID)
@ -137,19 +105,20 @@ func (m *Messenger) dismissContactRequest(requestID string, syncing bool) (*Mess
return nil, err
}
contact, ok := m.allContacts.Load(contactRequest.From)
if !ok {
var err error
contact, err = buildContactFromPkString(contactRequest.From)
if err != nil {
return nil, err
}
contact, err := m.BuildContact(contactRequest.From)
if err != nil {
return nil, err
}
response := &MessengerResponse{}
if !syncing {
contact.DismissContactRequest()
_, clock, err := m.getOneToOneAndNextClock(contact)
if err != nil {
return nil, err
}
contact.DismissContactRequest(clock)
err = m.persistence.SaveContact(contact, nil)
if err != nil {
return nil, err
@ -221,22 +190,14 @@ func (m *Messenger) updateAcceptedContactRequest(response *MessengerResponse, co
}
contact, _ := m.allContacts.Load(contactRequest.From)
contact.AcceptContactRequest()
chat, ok := m.allChats.Load(contact.ID)
if !ok {
publicKey, err := contact.PublicKey()
if err != nil {
return nil, err
}
chat = OneToOneFromPublicKey(publicKey, m.getTimesource())
chat.Active = false
if err := m.saveChat(chat); err != nil {
return nil, err
}
_, clock, err := m.getOneToOneAndNextClock(contact)
if err != nil {
return nil, err
}
clock, _ := chat.NextClockAndTimestamp(m.getTimesource())
contact.AcceptContactRequest(clock)
acceptContactRequest := &protobuf.AcceptContactRequest{
Id: contactRequest.ID,
Clock: clock,
@ -280,18 +241,20 @@ func (m *Messenger) updateAcceptedContactRequest(response *MessengerResponse, co
}
response.AddMessage(contactRequest)
response.AddContact(contact)
return response, nil
}
func (m *Messenger) addContact(pubKey, ensName, nickname, displayName, contactRequestID string, syncing bool) (*MessengerResponse, error) {
contact, ok := m.allContacts.Load(pubKey)
if !ok {
var err error
contact, err = buildContactFromPkString(pubKey)
if err != nil {
return nil, err
}
func (m *Messenger) addContact(pubKey, ensName, nickname, displayName, contactRequestID string, syncing bool, sendContactUpdate bool) (*MessengerResponse, error) {
contact, err := m.BuildContact(pubKey)
if err != nil {
return nil, err
}
_, clock, err := m.getOneToOneAndNextClock(contact)
if err != nil {
return nil, err
}
if ensName != "" {
@ -314,12 +277,9 @@ func (m *Messenger) addContact(pubKey, ensName, nickname, displayName, contactRe
contact.DisplayName = displayName
}
if !contact.Added {
contact.Add()
}
contact.LastUpdatedLocally = m.getTimesource().GetCurrentTime()
contact.LastUpdatedLocally = clock
contact.ContactRequestSent()
contact.ContactRequestSent(clock)
if !syncing {
// We sync the contact with the other devices
@ -329,7 +289,7 @@ func (m *Messenger) addContact(pubKey, ensName, nickname, displayName, contactRe
}
}
err := m.persistence.SaveContact(contact, nil)
err = m.persistence.SaveContact(contact, nil)
if err != nil {
return nil, err
}
@ -384,13 +344,14 @@ func (m *Messenger) addContact(pubKey, ensName, nickname, displayName, contactRe
return nil, err
}
// Finally we send a contact update so they are notified we added them
response, err := m.sendContactUpdate(context.Background(), pubKey, displayName, ensName, "", m.dispatchMessage)
if err != nil {
return nil, err
}
response := &MessengerResponse{}
if len(contactRequestID) != 0 {
if sendContactUpdate {
response, err = m.sendContactUpdate(context.Background(), pubKey, displayName, ensName, "", m.dispatchMessage)
if err != nil {
return nil, err
}
} else if len(contactRequestID) != 0 {
response, err = m.updateAcceptedContactRequest(response, contactRequestID)
if err != nil {
return nil, err
@ -429,13 +390,14 @@ func (m *Messenger) addContact(pubKey, ensName, nickname, displayName, contactRe
return response, nil
}
func (m *Messenger) AddContact(ctx context.Context, request *requests.AddContact) (*MessengerResponse, error) {
err := request.Validate()
if err != nil {
return nil, err
}
return m.addContact(request.ID.String(), request.ENSName, request.Nickname, request.DisplayName, "", false)
return m.addContact(request.ID.String(), request.ENSName, request.Nickname, request.DisplayName, "", false, true)
}
func (m *Messenger) resetLastPublishedTimeForChatIdentity() error {
@ -445,26 +407,32 @@ func (m *Messenger) resetLastPublishedTimeForChatIdentity() error {
return m.persistence.ResetWhenChatIdentityLastPublished(contactCodeTopic)
}
func (m *Messenger) removeContact(ctx context.Context, response *MessengerResponse, pubKey string) error {
func (m *Messenger) removeContact(ctx context.Context, response *MessengerResponse, pubKey string, sync bool) error {
contact, ok := m.allContacts.Load(pubKey)
if !ok {
return ErrContactNotFound
}
contact.RetractContactRequest()
contact.Remove()
contact.LastUpdatedLocally = m.getTimesource().GetCurrentTime()
err := m.persistence.SaveContact(contact, nil)
_, clock, err := m.getOneToOneAndNextClock(contact)
if err != nil {
return err
}
err = m.syncContact(context.Background(), contact, m.dispatchMessage)
contact.RetractContactRequest(clock)
contact.LastUpdatedLocally = m.getTimesource().GetCurrentTime()
err = m.persistence.SaveContact(contact, nil)
if err != nil {
return err
}
if sync {
err = m.syncContact(context.Background(), contact, m.dispatchMessage)
if err != nil {
return err
}
}
// TODO(samyoul) remove storing of an updated reference pointer?
m.allContacts.Store(contact.ID, contact)
@ -496,7 +464,7 @@ func (m *Messenger) removeContact(ctx context.Context, response *MessengerRespon
func (m *Messenger) RemoveContact(ctx context.Context, pubKey string) (*MessengerResponse, error) {
response := new(MessengerResponse)
err := m.removeContact(ctx, response, pubKey)
err := m.removeContact(ctx, response, pubKey, true)
if err != nil {
return nil, err
}
@ -516,7 +484,7 @@ func (m *Messenger) Contacts() []*Contact {
func (m *Messenger) AddedContacts() []*Contact {
var contacts []*Contact
m.allContacts.Range(func(contactID string, contact *Contact) (shouldContinue bool) {
if contact.Added {
if contact.added() {
contacts = append(contacts, contact)
}
return true
@ -527,7 +495,7 @@ func (m *Messenger) AddedContacts() []*Contact {
func (m *Messenger) MutualContacts() []*Contact {
var contacts []*Contact
m.allContacts.Range(func(contactID string, contact *Contact) (shouldContinue bool) {
if contact.Added && contact.HasAddedUs {
if contact.mutual() {
contacts = append(contacts, contact)
}
return true
@ -561,13 +529,9 @@ func (m *Messenger) SetContactLocalNickname(request *requests.SetContactLocalNic
pubKey := request.ID.String()
nickname := request.Nickname
contact, ok := m.allContacts.Load(pubKey)
if !ok {
var err error
contact, err = buildContactFromPkString(pubKey)
if err != nil {
return nil, err
}
contact, err := m.BuildContact(pubKey)
if err != nil {
return nil, err
}
if err := m.addENSNameToContact(contact); err != nil {
@ -578,7 +542,7 @@ func (m *Messenger) SetContactLocalNickname(request *requests.SetContactLocalNic
contact.LocalNickname = nickname
contact.LastUpdatedLocally = clock
err := m.persistence.SaveContact(contact, nil)
err = m.persistence.SaveContact(contact, nil)
if err != nil {
return nil, err
}
@ -597,20 +561,17 @@ func (m *Messenger) SetContactLocalNickname(request *requests.SetContactLocalNic
}
func (m *Messenger) blockContact(contactID string, isDesktopFunc bool) ([]*Chat, error) {
contact, ok := m.allContacts.Load(contactID)
if !ok {
var err error
contact, err = buildContactFromPkString(contactID)
if err != nil {
return nil, err
}
contact, err := m.BuildContact(contactID)
if err != nil {
return nil, err
}
_, clock, err := m.getOneToOneAndNextClock(contact)
if err != nil {
return nil, err
}
if isDesktopFunc {
contact.BlockDesktop()
} else {
contact.Block()
}
contact.Block(clock)
contact.LastUpdatedLocally = m.getTimesource().GetCurrentTime()
@ -694,10 +655,16 @@ func (m *Messenger) UnblockContact(contactID string) error {
return nil
}
contact.Unblock()
_, clock, err := m.getOneToOneAndNextClock(contact)
if err != nil {
return err
}
contact.Unblock(clock)
contact.LastUpdatedLocally = m.getTimesource().GetCurrentTime()
err := m.persistence.SaveContact(contact, nil)
err = m.persistence.SaveContact(contact, nil)
if err != nil {
return err
}
@ -733,7 +700,7 @@ func (m *Messenger) SendContactUpdates(ctx context.Context, ensName, profileImag
// TODO: This should not be sending paired messages, as we do it above
m.allContacts.Range(func(contactID string, contact *Contact) (shouldContinue bool) {
if contact.Added {
if contact.added() {
if _, err = m.sendContactUpdate(ctx, contact.ID, displayName, ensName, profileImage, m.dispatchMessage); err != nil {
return false
}
@ -763,30 +730,21 @@ func (m *Messenger) sendContactUpdate(ctx context.Context, chatID, displayName,
var response MessengerResponse
contact, ok := m.allContacts.Load(chatID)
if !ok || !contact.Added {
if !ok || !contact.added() {
return nil, nil
}
chat, ok := m.allChats.Load(chatID)
if !ok {
publicKey, err := contact.PublicKey()
if err != nil {
return nil, err
}
chat = OneToOneFromPublicKey(publicKey, m.getTimesource())
// We don't want to show the chat to the user
chat.Active = false
chat, clock, err := m.getOneToOneAndNextClock(contact)
if err != nil {
return nil, err
}
// TODO(samyoul) remove storing of an updated reference pointer?
m.allChats.Store(chat.ID, chat)
clock, _ := chat.NextClockAndTimestamp(m.getTimesource())
contactUpdate := &protobuf.ContactUpdate{
Clock: clock,
DisplayName: displayName,
EnsName: ensName,
ProfileImage: profileImage,
Clock: clock,
DisplayName: displayName,
EnsName: ensName,
ProfileImage: profileImage,
ContactRequestClock: contact.ContactRequestLocalClock,
}
encodedMessage, err := proto.Marshal(contactUpdate)
if err != nil {
@ -842,10 +800,8 @@ func (m *Messenger) RetractContactRequest(request *requests.RetractContactReques
if !ok {
return nil, errors.New("contact not found")
}
contact.HasAddedUs = false
m.allContacts.Store(contact.ID, contact)
response := &MessengerResponse{}
err = m.removeContact(context.Background(), response, contact.ID)
err = m.removeContact(context.Background(), response, contact.ID, true)
if err != nil {
return nil, err
}
@ -860,20 +816,10 @@ func (m *Messenger) RetractContactRequest(request *requests.RetractContactReques
// Send message to remote account to remove our contact from their end.
func (m *Messenger) sendRetractContactRequest(contact *Contact) error {
chat, ok := m.allChats.Load(contact.ID)
if !ok {
pubKey, err := contact.PublicKey()
if err != nil {
return err
}
chat = OneToOneFromPublicKey(pubKey, m.getTimesource())
chat.Active = false
if err := m.saveChat(chat); err != nil {
return err
}
_, clock, err := m.getOneToOneAndNextClock(contact)
if err != nil {
return err
}
clock, _ := chat.NextClockAndTimestamp(m.getTimesource())
retractContactRequest := &protobuf.RetractContactRequest{
Clock: clock,
}
@ -934,11 +880,11 @@ func defaultContactRequestID(contactID string) string {
return "0x" + types.Bytes2Hex(append(types.Hex2Bytes(contactID), 0x20))
}
func (m *Messenger) BuildContact(pubKey string) (*Contact, error) {
contact, ok := m.allContacts.Load(pubKey)
func (m *Messenger) BuildContact(contactID string) (*Contact, error) {
contact, ok := m.allContacts.Load(contactID)
if !ok {
var err error
contact, err = buildContactFromPkString(pubKey)
contact, err = buildContactFromPkString(contactID)
if err != nil {
return nil, err
}

View file

@ -26,7 +26,7 @@ func (m *Messenger) validateAddedGroupMembers(members []string) error {
}
contact, _ := m.allContacts.Load(contactID)
if contact == nil || !(contact.Added && contact.HasAddedUs) {
if contact == nil || !contact.mutual() {
return ErrGroupChatAddedContacts
}
}

View file

@ -97,9 +97,8 @@ func makeMutualContact(origin *Messenger, contactPubkey *ecdsa.PublicKey) error
if err != nil {
return err
}
contact.Added = true
contact.HasAddedUs = true
contact.ContactRequestState = ContactRequestStateMutual
contact.ContactRequestLocalState = ContactRequestStateSent
contact.ContactRequestRemoteState = ContactRequestStateReceived
origin.allContacts.Store(contact.ID, contact)
return nil

View file

@ -71,7 +71,7 @@ func (m *Messenger) HandleMembershipUpdate(messageState *ReceivedMessageState, c
//we need to create a new chat instance like we don't have a chat and just use a regular invitation flow
waitingForApproval := chat != nil && len(chat.InvitationAdmin) > 0
ourKey := contactIDFromPublicKey(&m.identity.PublicKey)
isActive := messageState.CurrentMessageState.Contact.Added || messageState.CurrentMessageState.Contact.ID == ourKey || waitingForApproval
isActive := messageState.CurrentMessageState.Contact.added() || messageState.CurrentMessageState.Contact.ID == ourKey || waitingForApproval
showPushNotification := isActive && messageState.CurrentMessageState.Contact.ID != ourKey
// wasUserAdded indicates whether the user has been added to the group with this update
@ -227,7 +227,7 @@ func (m *Messenger) checkIfCreatorIsOurContact(group *v1protocol.Group) bool {
creator, err := group.Creator()
if err == nil {
contact, _ := m.allContacts.Load(creator)
return contact != nil && contact.ContactRequestState == ContactRequestStateMutual
return contact != nil && contact.mutual()
}
m.logger.Warn("failed to get creator from group", zap.String("group name", group.Name()), zap.String("group chat id", group.ChatID()), zap.Error(err))
return false
@ -459,20 +459,46 @@ func (m *Messenger) HandleSyncInstallationContact(state *ReceivedMessageState, m
}
}
if contact.LastUpdated < message.LastUpdated {
contact.HasAddedUs = message.HasAddedUs
contact.ContactRequestState = ContactRequestState(message.ContactRequestState)
if message.ContactRequestRemoteClock != 0 || message.ContactRequestLocalClock != 0 {
// Some local action about contact requests were performed,
// process them
contact.processSyncContactRequestState(
ContactRequestState(message.ContactRequestRemoteState),
uint64(message.ContactRequestRemoteClock),
ContactRequestState(message.ContactRequestLocalState),
uint64(message.ContactRequestLocalClock))
state.ModifiedContacts.Store(contact.ID, true)
state.AllContacts.Store(contact.ID, contact)
} else if message.Added || message.HasAddedUs {
// NOTE(cammellos): this is for handling backward compatibility, old clients
// won't propagate ContactRequestRemoteClock or ContactRequestLocalClock
if message.Added && contact.LastUpdatedLocally < message.LastUpdatedLocally {
contact.ContactRequestSent(message.LastUpdatedLocally)
}
if message.HasAddedUs && contact.LastUpdated < message.LastUpdated {
contact.ContactRequestReceived(message.LastUpdated)
}
if message.Removed && contact.LastUpdatedLocally < message.LastUpdatedLocally {
err := m.removeContact(context.Background(), state.Response, contact.ID, false)
if err != nil {
return err
}
}
}
if contact.LastUpdatedLocally < message.LastUpdatedLocally {
// NOTE(cammellos): probably is cleaner to pass a flag
// to method to tell them not to sync, or factor out in different
// methods
contact.IsSyncing = true
defer func() {
contact.IsSyncing = false
}()
if message.Added {
contact.Added = true
}
if message.EnsName != "" && contact.EnsName != message.EnsName {
contact.EnsName = message.EnsName
publicKey, err := contact.PublicKey()
@ -508,7 +534,7 @@ func (m *Messenger) HandleSyncInstallationContact(state *ReceivedMessageState, m
return err
}
} else {
contact.Unblock()
contact.Unblock(message.LastUpdatedLocally)
}
}
if chat != nil && message.Muted != chat.Muted {
@ -527,13 +553,6 @@ func (m *Messenger) HandleSyncInstallationContact(state *ReceivedMessageState, m
state.Response.AddChat(chat)
}
if message.Removed {
err := m.removeContact(context.Background(), state.Response, contact.ID)
if err != nil {
return err
}
}
state.ModifiedContacts.Store(contact.ID, true)
state.AllContacts.Store(contact.ID, contact)
}
@ -636,7 +655,6 @@ func (m *Messenger) HandleSyncChatRemoved(state *ReceivedMessageState, message p
}
func (m *Messenger) HandleSyncChatMessagesRead(state *ReceivedMessageState, message protobuf.SyncChatMessagesRead) error {
m.logger.Info("HANDLING SYNC MESSAGES READ", zap.Any("ID", message.Id))
chat, ok := m.allChats.Load(message.Id)
if !ok {
return ErrChatNotFound
@ -708,73 +726,117 @@ func (m *Messenger) HandlePinMessage(state *ReceivedMessageState, message protob
return nil
}
func (m *Messenger) HandleAcceptContactRequest(state *ReceivedMessageState, message protobuf.AcceptContactRequest) error {
contact := state.CurrentMessageState.Contact
func (m *Messenger) handleAcceptContactRequest(
response *MessengerResponse,
contact *Contact,
originalRequest *common.Message,
message protobuf.AcceptContactRequest) (ContactRequestProcessingResponse, error) {
if contact.ContactRequestClock > message.Clock {
if contact.ContactRequestRemoteClock > message.Clock {
m.logger.Info("not handling accept since clock lower")
return nil
return ContactRequestProcessingResponse{}, nil
}
// TODO: Handle missing contact request message
request, err := m.persistence.MessageByID(message.Id)
// The contact request accepted wasn't found, a reason for this might
// be that we sent a legacy contact request/contact-update, or another
// device has sent it, and we haven't synchronized it
// TODO(cammellos): This might want to show a notification if we haven't
// added the user to contacts already
if originalRequest == nil {
return contact.ContactRequestAccepted(message.Clock), nil
}
if originalRequest.LocalChatID != contact.ID {
return ContactRequestProcessingResponse{}, errors.New("can't accept contact request not sent to user")
}
contact.ContactRequestAccepted(message.Clock)
originalRequest.ContactRequestState = common.ContactRequestStateAccepted
err := m.persistence.SetContactRequestState(originalRequest.ID, originalRequest.ContactRequestState)
if err != nil {
return ContactRequestProcessingResponse{}, err
}
response.AddMessage(originalRequest)
return ContactRequestProcessingResponse{}, nil
}
func (m *Messenger) HandleAcceptContactRequest(state *ReceivedMessageState, message protobuf.AcceptContactRequest) error {
originalRequest, err := m.persistence.MessageByID(message.Id)
if err != nil && err != common.ErrRecordNotFound {
return err
}
contact := state.CurrentMessageState.Contact
processingResponse, err := m.handleAcceptContactRequest(state.Response, contact, originalRequest, message)
if err != nil {
return err
}
if request.LocalChatID != state.CurrentMessageState.Contact.ID {
return errors.New("can't accept contact request not sent to user")
// If the state has changed from non-mutual contact, to mutual contact
// we want to notify the user
if processingResponse.newContactRequestReceived && contact.mutual() {
// We set the chat as active, this is currently the expected behavior
// for mobile, it might change as we implement further the activity
// center
chat, _, err := m.getOneToOneAndNextClock(contact)
if err != nil {
return err
}
if chat.LastClockValue < message.Clock {
chat.LastClockValue = message.Clock
}
// NOTE(cammellos): This will re-enable the chat if it was deleted, and only
// after we became contact, currently seems safe, but that needs
// discussing with UX.
if chat.DeletedAtClockValue < message.Clock {
chat.Active = true
}
state.Response.AddChat(chat)
state.AllChats.Store(chat.ID, chat)
}
contact.ContactRequestClock = message.Clock
// We only want to update a notification here, we don't want (yet) to
// create a new one
if originalRequest != nil {
// Update contact requests if existing, or create a new one
err = m.createContactRequestNotification(contact, state, originalRequest)
if err != nil {
m.logger.Warn("could not create contact request notification", zap.Error(err))
}
}
state.ModifiedContacts.Store(contact.ID, true)
state.AllContacts.Store(contact.ID, contact)
request.ContactRequestState = common.ContactRequestStateAccepted
err = m.persistence.SetContactRequestState(request.ID, request.ContactRequestState)
if err != nil {
return err
}
err = m.createContactRequestNotification(state.CurrentMessageState.Contact, state, request)
if err != nil {
m.logger.Warn("could not create contact request notification", zap.Error(err))
}
state.CurrentMessageState.Contact.ContactRequestAccepted()
state.Response.AddMessage(request)
return nil
}
func (m *Messenger) HandleRetractContactRequest(state *ReceivedMessageState, message protobuf.RetractContactRequest) error {
contact := state.CurrentMessageState.Contact
if contact.ContactRequestClock > message.Clock {
if contact.ID == m.myHexIdentity() {
m.logger.Debug("retraction coming from us, ignoring")
return nil
}
r := contact.ContactRequestRetracted(message.Clock)
if !r.processed {
m.logger.Info("not handling retract since clock lower")
return nil
}
mutualContactEnabled, err := m.settings.MutualContactEnabled()
if err != nil {
m.logger.Error("FAILED", zap.Error(err))
return err
}
// We remove from our old contacts only if mutual contacts are enabled
if mutualContactEnabled {
contact.Added = false
}
// We remove anything that's related to this contact request
err = m.persistence.RemoveAllContactRequestActivityCenterNotifications(contact.ID)
err := m.persistence.RemoveAllContactRequestActivityCenterNotifications(contact.ID)
if err != nil {
return err
}
contact.HasAddedUs = false
contact.ContactRequestClock = message.Clock
contact.ContactRequestRetracted()
state.ModifiedContacts.Store(contact.ID, true)
state.AllContacts.Store(contact.ID, contact)
@ -818,30 +880,24 @@ func (m *Messenger) HandleContactUpdate(state *ReceivedMessageState, message pro
contact.DisplayName = message.DisplayName
}
contact.HasAddedUs = true
contact.LastUpdated = message.Clock
state.ModifiedContacts.Store(contact.ID, true)
state.AllContacts.Store(contact.ID, contact)
// Has the user added us?
if contact.ContactRequestState == ContactRequestStateNone {
contact.ContactRequestState = ContactRequestStateReceived
r := contact.ContactRequestReceived(message.ContactRequestClock)
if r.newContactRequestReceived {
err = m.createContactRequestNotification(contact, state, nil)
if err != nil {
m.logger.Warn("could not create contact request notification", zap.Error(err))
}
// Has the user replied to a default contact request
} else if contact.ContactRequestState == ContactRequestStateSent {
contact.ContactRequestState = ContactRequestStateMutual
}
contact.LastUpdated = message.Clock
state.ModifiedContacts.Store(contact.ID, true)
state.AllContacts.Store(contact.ID, contact)
}
if chat.LastClockValue < message.Clock {
chat.LastClockValue = message.Clock
}
if contact.ContactRequestState == ContactRequestStateMutual && chat.DeletedAtClockValue < message.Clock {
if contact.mutual() && chat.DeletedAtClockValue < message.Clock {
chat.Active = true
}
@ -1485,6 +1541,29 @@ func (m *Messenger) updateLastMessage(chat *Chat) error {
return m.saveChat(chat)
}
func handleContactRequestChatMessage(receivedMessage *common.Message, contact *Contact, outgoing bool, logger *zap.Logger) (bool, error) {
receivedMessage.ContactRequestState = common.ContactRequestStatePending
var response ContactRequestProcessingResponse
if outgoing {
response = contact.ContactRequestSent(receivedMessage.Clock)
} else {
response = contact.ContactRequestReceived(receivedMessage.Clock)
}
if !response.processed {
logger.Info("not handling contact message since clock lower")
return false, nil
}
if contact.mutual() {
receivedMessage.ContactRequestState = common.ContactRequestStateAccepted
}
return response.newContactRequestReceived, nil
}
func (m *Messenger) HandleChatMessage(state *ReceivedMessageState) error {
logger := m.logger.With(zap.String("site", "handleChatMessage"))
if err := ValidateReceivedChatMessage(&state.CurrentMessageState.Message, state.CurrentMessageState.WhisperTimestamp); err != nil {
@ -1501,11 +1580,14 @@ func (m *Messenger) HandleChatMessage(state *ReceivedMessageState) error {
WhisperTimestamp: state.CurrentMessageState.WhisperTimestamp,
}
if common.IsPubKeyEqual(state.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
// is the message coming from us?
isSyncMessage := common.IsPubKeyEqual(receivedMessage.SigPubKey, &m.identity.PublicKey)
if isSyncMessage {
receivedMessage.Seen = true
}
err := receivedMessage.PrepareContent(common.PubkeyToHex(&m.identity.PublicKey))
err := receivedMessage.PrepareContent(m.myHexIdentity())
if err != nil {
return fmt.Errorf("failed to prepare message content: %v", err)
}
@ -1517,7 +1599,7 @@ func (m *Messenger) HandleChatMessage(state *ReceivedMessageState) error {
logger.Error("failed to get quoted message", zap.Error(err))
} else if err != nil {
return err
} else if repliedTo.From == common.PubkeyToHex(&m.identity.PublicKey) {
} else if repliedTo.From == m.myHexIdentity() {
receivedMessage.Replied = true
}
}
@ -1564,44 +1646,44 @@ func (m *Messenger) HandleChatMessage(state *ReceivedMessageState) error {
// Set the LocalChatID for the message
receivedMessage.LocalChatID = chat.ID
if c, ok := m.allChats.Load(chat.ID); ok {
chat = c
}
// Set the LocalChatID for the message
receivedMessage.LocalChatID = chat.ID
if err := m.updateChatFirstMessageTimestamp(chat, whisperToUnixTimestamp(receivedMessage.WhisperTimestamp), state.Response); err != nil {
return err
}
// Increase unviewed count
if !common.IsPubKeyEqual(receivedMessage.SigPubKey, &m.identity.PublicKey) {
if !receivedMessage.Seen {
m.updateUnviewedCounts(chat, receivedMessage.Mentioned || receivedMessage.Replied)
}
} else {
// Our own message, mark as sent
// Our own message, mark as sent
if isSyncMessage {
receivedMessage.OutgoingStatus = common.OutgoingStatusSent
} else if !receivedMessage.Seen {
// Increase unviewed count
m.updateUnviewedCounts(chat, receivedMessage.Mentioned || receivedMessage.Replied)
}
contact := state.CurrentMessageState.Contact
if receivedMessage.ContentType == protobuf.ChatMessage_CONTACT_REQUEST {
if contact.ContactRequestClock > receivedMessage.Clock {
m.logger.Info("not handling contact message since clock lower")
return nil
}
receivedMessage.ContactRequestState = common.ContactRequestStatePending
contact.ContactRequestClock = receivedMessage.Clock
contact.ContactRequestReceived()
state.ModifiedContacts.Store(contact.ID, true)
state.AllContacts.Store(contact.ID, contact)
err = m.createContactRequestNotification(state.CurrentMessageState.Contact, state, receivedMessage)
if err != nil {
return err
if receivedMessage.ContentType == protobuf.ChatMessage_CONTACT_REQUEST && chat.OneToOne() {
chatContact := contact
if isSyncMessage {
chatContact, err = m.BuildContact(chat.ID)
if err != nil {
return err
}
}
sendNotification, err := handleContactRequestChatMessage(receivedMessage, chatContact, isSyncMessage, m.logger)
if err != nil {
m.logger.Error("failed to handle contact request message", zap.Error(err))
return err
}
state.ModifiedContacts.Store(chatContact.ID, true)
state.AllContacts.Store(chatContact.ID, chatContact)
if sendNotification {
err = m.createContactRequestNotification(chatContact, state, receivedMessage)
if err != nil {
return err
}
}
} else if receivedMessage.ContentType == protobuf.ChatMessage_COMMUNITY {
chat.Highlight = true
}
@ -1662,7 +1744,7 @@ func (m *Messenger) HandleChatMessage(state *ReceivedMessageState) error {
// TODO(samyoul) remove storing of an updated reference pointer?
m.allChats.Store(chat.ID, chat)
if receivedMessage.EnsName != "" {
if !isSyncMessage && receivedMessage.EnsName != "" {
oldRecord, err := m.ensVerifier.Add(contact.ID, receivedMessage.EnsName, receivedMessage.Clock)
if err != nil {
m.logger.Warn("failed to verify ENS name", zap.Error(err))
@ -1675,7 +1757,7 @@ func (m *Messenger) HandleChatMessage(state *ReceivedMessageState) error {
}
}
if contact.DisplayName != receivedMessage.DisplayName && len(receivedMessage.DisplayName) != 0 {
if !isSyncMessage && contact.DisplayName != receivedMessage.DisplayName && len(receivedMessage.DisplayName) != 0 {
contact.DisplayName = receivedMessage.DisplayName
state.ModifiedContacts.Store(contact.ID, true)
}
@ -1996,7 +2078,7 @@ func (m *Messenger) matchChatEntity(chatEntity common.ChatEntity) (*Chat, error)
// We set the chat as inactive and will create a notification
// if it's not coming from a contact
contact, ok := m.allContacts.Load(chatID)
chat.Active = chat.Active || (ok && contact.Added)
chat.Active = chat.Active || (ok && contact.added())
return chat, nil
case chatEntity.GetMessageType() == protobuf.MessageType_COMMUNITY_CHAT:
chatID := chatEntity.GetChatId()
@ -2213,7 +2295,7 @@ func (m *Messenger) HandleChatIdentity(state *ReceivedMessageState, ci protobuf.
// We don't want to store the profile images of other users, even if we don't display images.
inOurContacts, ok := m.allContacts.Load(state.CurrentMessageState.Contact.ID)
isContact := ok && inOurContacts.Added
isContact := ok && inOurContacts.added()
if viewFromNoOne && !isContact {
return nil
}
@ -2373,7 +2455,7 @@ func (m *Messenger) isMessageAllowedFrom(publicKey string, chat *Chat) (bool, er
}
// if it's from us, it's allowed
if contactIDFromPublicKey(&m.identity.PublicKey) == publicKey {
if m.myHexIdentity() == publicKey {
return true, nil
}
@ -2394,7 +2476,7 @@ func (m *Messenger) isMessageAllowedFrom(publicKey string, chat *Chat) (bool, er
}
// Otherwise we check if we added it
return contact.Added, nil
return contact.added(), nil
}
func (m *Messenger) updateUnviewedCounts(chat *Chat, mentionedOrReplied bool) {

View file

@ -170,7 +170,7 @@ func (s *EventToSystemMessageSuite) TestHandleMembershipUpdate() {
contact, err := BuildContactFromPublicKey(&adminPrivateKey.PublicKey)
s.Require().NoError(err)
contact.Added = true
contact.ContactRequestLocalState = ContactRequestStateSent
currentMessageState := &CurrentMessageState{
Contact: contact,

View file

@ -167,7 +167,8 @@ func (s *MessengerProfilePictureHandlerSuite) TestEncryptDecryptIdentityImagesWi
contact, err := BuildContactFromPublicKey(&contactKey.PublicKey)
s.Require().NoError(err)
contact.Added = true
contact.ContactRequestLocalState = ContactRequestStateSent
s.alice.allContacts.Store(contact.ID, contact)
}

View file

@ -119,7 +119,7 @@ func (s *MessengerInstallationSuite) TestReceiveInstallation() {
actualContact := response.Contacts[0]
s.Require().Equal(contact.ID, actualContact.ID)
s.Require().True(actualContact.Added)
s.Require().True(actualContact.added())
chat := CreatePublicChat(statusChatID, s.m.transport)
err = s.m.SaveChat(chat)
@ -150,8 +150,7 @@ func (s *MessengerInstallationSuite) TestSyncInstallation() {
// mock added as mutual contact
contact.LastUpdated = 1
contact.HasAddedUs = true
contact.ContactRequestState = ContactRequestStateMutual
contact.ContactRequestReceived(1)
s.m.allContacts.Store(contact.ID, contact)
contact.LocalNickname = "Test Nickname"
@ -258,10 +257,10 @@ func (s *MessengerInstallationSuite) TestSyncInstallation() {
s.Require().NotNil(statusChat)
s.Require().True(actualContact.Added)
s.Require().True(actualContact.added())
s.Require().Equal("Test Nickname", actualContact.LocalNickname)
s.Require().True(actualContact.HasAddedUs)
s.Require().Equal(ContactRequestStateMutual, actualContact.ContactRequestState)
s.Require().True(actualContact.hasAddedUs())
s.Require().True(actualContact.mutual())
bookmarks, err := theirMessenger.browserDatabase.GetBookmarks()
s.Require().NoError(err)

View file

@ -98,7 +98,7 @@ func (s *MessengerSyncSettingsSuite) SetupTest() {
s.alice2, err = newMessengerWithKey(s.shh, s.alice.identity, s.logger, nil)
s.Require().NoError(err)
s.prepAliceMessengersForPairing()
prepAliceMessengersForPairing(&s.Suite, s.alice, s.alice2)
}
func (s *MessengerSyncSettingsSuite) TearDownTest() {
@ -180,7 +180,7 @@ func (s *MessengerSyncSettingsSuite) newMessenger() *Messenger {
return s.newMessengerWithKey(s.shh, privateKey)
}
func (s *MessengerSyncSettingsSuite) pairTwoDevices(device1, device2 *Messenger) {
func pairTwoDevices(s *suite.Suite, device1, device2 *Messenger) {
// Send pairing data
response, err := device1.SendPairInstallation(context.Background())
s.Require().NoError(err)
@ -215,13 +215,13 @@ func (s *MessengerSyncSettingsSuite) pairTwoDevices(device1, device2 *Messenger)
s.Require().NoError(err)
}
func (s *MessengerSyncSettingsSuite) prepAliceMessengersForPairing() {
func prepAliceMessengersForPairing(s *suite.Suite, alice1, alice2 *Messenger) {
// Set Alice's installation metadata
aim := &multidevice.InstallationMetadata{
Name: "alice's-device",
DeviceType: "alice's-device-type",
}
err := s.alice.SetInstallationMetadata(s.alice.installationID, aim)
err := alice1.SetInstallationMetadata(alice1.installationID, aim)
s.Require().NoError(err)
// Set Alice 2's installation metadata
@ -229,14 +229,14 @@ func (s *MessengerSyncSettingsSuite) prepAliceMessengersForPairing() {
Name: "alice's-other-device",
DeviceType: "alice's-other-device-type",
}
err = s.alice2.SetInstallationMetadata(s.alice2.installationID, a2im)
err = alice2.SetInstallationMetadata(alice2.installationID, a2im)
s.Require().NoError(err)
}
func (s *MessengerSyncSettingsSuite) TestSyncSettings() {
// Pair alice's two devices
s.pairTwoDevices(s.alice2, s.alice)
s.pairTwoDevices(s.alice, s.alice2)
pairTwoDevices(&s.Suite, s.alice2, s.alice)
pairTwoDevices(&s.Suite, s.alice, s.alice2)
// Check alice 1 settings values
as, err := s.alice.settings.GetSettings()
@ -320,7 +320,7 @@ func (s *MessengerSyncSettingsSuite) TestSyncSettings_StickerPacks() {
s.Require().Nil(aos.StickersRecentStickers)
// Pair devices. Allows alice to send to alicesOtherDevice
s.pairTwoDevices(s.alice2, s.alice)
pairTwoDevices(&s.Suite, s.alice2, s.alice)
// Add sticker pack to alice device
stickerPacks := make(stickers.StickerPackCollection)
@ -375,7 +375,7 @@ func (s *MessengerSyncSettingsSuite) TestSyncSettings_PreferredName() {
s.Require().Nil(aos.PreferredName)
// Pair devices. Allows alice to send to alicesOtherDevice
s.pairTwoDevices(s.alice2, s.alice)
pairTwoDevices(&s.Suite, s.alice2, s.alice)
// Update Alice's PreferredName
err = s.alice.settings.SaveSettingField(settings.PreferredName, pf2)

View file

@ -1336,20 +1336,20 @@ func (s *MessengerSuite) TestChatPersistencePrivateGroupChat() {
func (s *MessengerSuite) TestBlockContact() {
contact := Contact{
ID: testPK,
EnsName: "contact-name",
LastUpdated: 20,
Added: true,
ID: testPK,
EnsName: "contact-name",
LastUpdated: 20,
ContactRequestLocalState: ContactRequestStateSent,
}
key2, err := crypto.GenerateKey()
s.Require().NoError(err)
contact2 := Contact{
ID: common.PubkeyToHex(&key2.PublicKey),
EnsName: "contact-name",
LastUpdated: 20,
Added: true,
ID: common.PubkeyToHex(&key2.PublicKey),
EnsName: "contact-name",
LastUpdated: 20,
ContactRequestLocalState: ContactRequestStateSent,
}
chat1 := &Chat{
@ -1530,7 +1530,7 @@ func (s *MessengerSuite) TestContactPersistence() {
s.Require().Equal(1, len(savedContacts))
s.Require().True(savedContacts[0].Added)
s.Require().True(savedContacts[0].added())
}
func (s *MessengerSuite) TestSharedSecretHandler() {

View file

@ -70,6 +70,7 @@
// 1670921937_add_album_id.up.sql (55B)
// 1673373000_add_replied.up.sql (67B)
// 1673428910_add_image_width_height.up.sql (117B)
// 1674210659_add_contact_request_local_clock.up.sql (503B)
// README.md (554B)
// doc.go (850B)
@ -155,7 +156,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(1673964300, 0)}
info := bindataFileInfo{name: "000001_init.down.db.sql", size: 65, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -175,7 +176,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(1673964300, 0)}
info := bindataFileInfo{name: "000001_init.up.db.sql", size: 2719, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -195,7 +196,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(1673964300, 0)}
info := bindataFileInfo{name: "000002_add_last_ens_clock_value.up.sql", size: 77, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -215,7 +216,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(1673964300, 0)}
info := bindataFileInfo{name: "1586358095_add_replace.up.sql", size: 224, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -235,7 +236,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(1673964300, 0)}
info := bindataFileInfo{name: "1588665364_add_image_data.up.sql", size: 186, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -255,7 +256,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(1673964300, 0)}
info := bindataFileInfo{name: "1589365189_add_pow_target.up.sql", size: 66, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -275,7 +276,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(1673964300, 0)}
info := bindataFileInfo{name: "1591277220_add_index_messages.up.sql", size: 240, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -295,7 +296,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(1673964300, 0)}
info := bindataFileInfo{name: "1593087212_add_mute_chat_and_raw_message_fields.up.sql", size: 215, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -315,7 +316,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(1673964300, 0)}
info := bindataFileInfo{name: "1595862781_add_audio_data.up.sql", size: 246, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -335,7 +336,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(1673964300, 0)}
info := bindataFileInfo{name: "1595865249_create_emoji_reactions_table.up.sql", size: 300, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -355,7 +356,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(1673964300, 0)}
info := bindataFileInfo{name: "1596805115_create_group_chat_invitations_table.up.sql", size: 231, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -375,7 +376,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(1673964300, 0)}
info := bindataFileInfo{name: "1597322655_add_invitation_admin_chat_field.up.sql", size: 54, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -395,7 +396,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(1673964300, 0)}
info := bindataFileInfo{name: "1597757544_add_nickname.up.sql", size: 52, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -415,7 +416,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(1673964300, 0)}
info := bindataFileInfo{name: "1598955122_add_mentions.up.sql", size: 52, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -435,7 +436,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(1673964300, 0)}
info := bindataFileInfo{name: "1599641390_add_emoji_reactions_index.up.sql", size: 126, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -455,7 +456,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(1673964300, 0)}
info := bindataFileInfo{name: "1599720851_add_seen_index_remove_long_messages.up.sql", size: 150, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -475,7 +476,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(1673964300, 0)}
info := bindataFileInfo{name: "1603198582_add_profile_chat_field.up.sql", size: 45, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -495,7 +496,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(1673964300, 0)}
info := bindataFileInfo{name: "1603816533_add_links.up.sql", size: 48, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -515,7 +516,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(1673964300, 0)}
info := bindataFileInfo{name: "1603888149_create_chat_identity_last_published_table.up.sql", size: 407, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -535,7 +536,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(1673964300, 0)}
info := bindataFileInfo{name: "1605075346_add_communities.up.sql", size: 6971, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -555,7 +556,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(1673964300, 0)}
info := bindataFileInfo{name: "1610117927_add_message_cache.up.sql", size: 142, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -575,7 +576,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(1673964300, 0)}
info := bindataFileInfo{name: "1610959908_add_dont_wrap_to_raw_messages.up.sql", size: 83, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -595,7 +596,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(1673964300, 0)}
info := bindataFileInfo{name: "1610960912_add_send_on_personal_topic.up.sql", size: 82, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -615,7 +616,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(1673964300, 0)}
info := bindataFileInfo{name: "1612870480_add_datasync_id.up.sql", size: 111, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -635,7 +636,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(1673964300, 0)}
info := bindataFileInfo{name: "1614152139_add_communities_request_to_join.up.sql", size: 831, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -655,7 +656,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(1673964300, 0)}
info := bindataFileInfo{name: "1615374373_add_confirmations.up.sql", size: 227, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -675,7 +676,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(1673964300, 0)}
info := bindataFileInfo{name: "1617694931_add_notification_center.up.sql", size: 572, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -695,7 +696,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(1673964300, 0)}
info := bindataFileInfo{name: "1618923660_create_pin_messages.up.sql", size: 265, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -715,7 +716,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(1673964300, 0)}
info := bindataFileInfo{name: "1619094007_add_joined_chat_field.up.sql", size: 101, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -735,7 +736,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(1673964300, 0)}
info := bindataFileInfo{name: "1619099821_add_last_synced_field.up.sql", size: 226, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -755,7 +756,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(1673964300, 0)}
info := bindataFileInfo{name: "1621933219_add_mentioned.up.sql", size: 70, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -775,7 +776,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(1673964300, 0)}
info := bindataFileInfo{name: "1622010048_add_unviewed_mentions_count.up.sql", size: 114, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -795,7 +796,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(1673964300, 0)}
info := bindataFileInfo{name: "1622061278_add_message_activity_center_notification_field.up.sql", size: 80, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -815,7 +816,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(1673964300, 0)}
info := bindataFileInfo{name: "1622464518_set_synced_to_from.up.sql", size: 105, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -835,7 +836,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(1673964300, 0)}
info := bindataFileInfo{name: "1622464519_add_chat_description.up.sql", size: 93, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -855,7 +856,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(1673964300, 0)}
info := bindataFileInfo{name: "1622622253_add_pinned_by_to_pin_messages.up.sql", size: 52, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -875,7 +876,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(1673964300, 0)}
info := bindataFileInfo{name: "1623938329_add_author_activity_center_notification_field.up.sql", size: 66, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -895,7 +896,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(1673964300, 0)}
info := bindataFileInfo{name: "1623938330_add_edit_messages.up.sql", size: 369, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -915,7 +916,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(1673964300, 0)}
info := bindataFileInfo{name: "1624978434_add_muted_community.up.sql", size: 82, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -935,7 +936,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(1673964300, 0)}
info := bindataFileInfo{name: "1625018910_add_repply_message_activity_center_notification_field.up.sql", size: 86, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -955,7 +956,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(1673964300, 0)}
info := bindataFileInfo{name: "1625762506_add_deleted_messages.up.sql", size: 357, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -975,7 +976,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(1673964300, 0)}
info := bindataFileInfo{name: "1627388946_add_communities_synced_at.up.sql", size: 87, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -995,7 +996,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(1673964300, 0)}
info := bindataFileInfo{name: "1628280060_create-usermessages-index.sql", size: 80, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -1015,7 +1016,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(1673964300, 0)}
info := bindataFileInfo{name: "1632303896_modify_contacts_table.up.sql", size: 1574, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -1035,7 +1036,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(1673964300, 0)}
info := bindataFileInfo{name: "1633349838_add_emoji_column_in_chats.up.sql", size: 52, mode: os.FileMode(0644), modTime: time.Unix(1654848338, 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
}
@ -1055,7 +1056,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(1673964300, 0)}
info := bindataFileInfo{name: "1634831235_add_highlight_column_in_chats.up.sql", size: 62, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -1075,7 +1076,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(1673964300, 0)}
info := bindataFileInfo{name: "1634896007_add_last_updated_locally_and_removed.up.sql", size: 131, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -1095,7 +1096,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(1673964300, 0)}
info := bindataFileInfo{name: "1635840039_add_clock_read_at_column_in_chats.up.sql", size: 245, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -1115,7 +1116,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(1673964300, 0)}
info := bindataFileInfo{name: "1637852321_add_received_invitation_admin_column_in_chats.up.sql", size: 72, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -1135,7 +1136,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(1673964300, 0)}
info := bindataFileInfo{name: "1645034601_display_name.up.sql", size: 110, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -1155,7 +1156,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(1673964300, 0)}
info := bindataFileInfo{name: "1645034602_add_mutual_contact_request.up.sql", size: 454, mode: os.FileMode(0644), modTime: time.Unix(1664364467, 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
}
@ -1175,7 +1176,7 @@ 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(1673964300, 0)}
info := bindataFileInfo{name: "1650373957_add_contact_request_state.up.sql", size: 59, mode: os.FileMode(0644), modTime: time.Unix(1664364467, 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
}
@ -1195,7 +1196,7 @@ func _1656958989_contact_verificationUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1656958989_contact_verification.up.sql", size: 624, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "1656958989_contact_verification.up.sql", size: 624, mode: os.FileMode(0644), modTime: time.Unix(1664364467, 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
}
@ -1215,7 +1216,7 @@ func _1658236268_add_discord_message_authors_tableUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1658236268_add_discord_message_authors_table.up.sql", size: 191, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "1658236268_add_discord_message_authors_table.up.sql", size: 191, mode: os.FileMode(0644), modTime: time.Unix(1664364467, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x3d, 0xb7, 0xdb, 0x79, 0x1, 0x15, 0xe7, 0x76, 0x5d, 0x22, 0x54, 0x82, 0x9a, 0xbe, 0x24, 0xc1, 0x82, 0xcf, 0x67, 0x91, 0x53, 0xcc, 0xac, 0x74, 0x18, 0x61, 0x69, 0x68, 0x19, 0xca, 0x2b, 0xa8}}
return a, nil
}
@ -1235,7 +1236,7 @@ func _1659619997_add_discord_messages_tableUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1659619997_add_discord_messages_table.up.sql", size: 371, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "1659619997_add_discord_messages_table.up.sql", size: 371, mode: os.FileMode(0644), modTime: time.Unix(1664364467, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xde, 0x12, 0x9c, 0x96, 0xe2, 0x42, 0x3f, 0x94, 0x62, 0xc2, 0x76, 0xab, 0x3b, 0x4c, 0x85, 0x36, 0x48, 0xcc, 0x73, 0x60, 0x93, 0x5a, 0xd6, 0x7, 0xd6, 0x0, 0xee, 0x1b, 0x1e, 0x34, 0x58, 0x99}}
return a, nil
}
@ -1255,7 +1256,7 @@ func _1660226788_create_chat_identity_social_linksUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1660226788_create_chat_identity_social_links.up.sql", size: 318, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "1660226788_create_chat_identity_social_links.up.sql", size: 318, mode: os.FileMode(0644), modTime: time.Unix(1664364467, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x3c, 0x76, 0x40, 0xe9, 0x85, 0xc4, 0x38, 0xf8, 0xe5, 0x5d, 0xe8, 0x13, 0x46, 0x1b, 0xc, 0x1, 0xe9, 0x2f, 0x74, 0xd1, 0x79, 0x59, 0xa4, 0xdb, 0x4a, 0x4a, 0xf4, 0x98, 0x58, 0x3c, 0x57, 0xd3}}
return a, nil
}
@ -1275,7 +1276,7 @@ func _1660226789_add_walletconnectsessions_tableUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1660226789_add_walletconnectsessions_table.up.sql", size: 215, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "1660226789_add_walletconnectsessions_table.up.sql", size: 215, mode: os.FileMode(0644), modTime: time.Unix(1664364467, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xf8, 0x5c, 0x72, 0x2, 0xed, 0x36, 0x19, 0x91, 0x4d, 0x1a, 0xc1, 0xab, 0x84, 0xfa, 0x41, 0xb1, 0x46, 0xa5, 0xdb, 0x3f, 0x76, 0x47, 0xd3, 0x75, 0x3c, 0x6a, 0x8e, 0x78, 0xe6, 0x41, 0xdc, 0x7f}}
return a, nil
}
@ -1295,7 +1296,7 @@ func _1661242854_add_communities_requests_to_leaveUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1661242854_add_communities_requests_to_leave.up.sql", size: 204, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "1661242854_add_communities_requests_to_leave.up.sql", size: 204, mode: os.FileMode(0644), modTime: time.Unix(1666081963, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x49, 0x2e, 0x7d, 0x14, 0xef, 0x6e, 0x95, 0x4b, 0x6, 0x70, 0x2e, 0xd1, 0xf6, 0x59, 0xf9, 0xe, 0x56, 0xa, 0x9c, 0x80, 0x18, 0xca, 0xb9, 0x49, 0x19, 0xf, 0x89, 0x94, 0x36, 0x6d, 0x93, 0x9a}}
return a, nil
}
@ -1315,7 +1316,7 @@ func _1662044232_add_chat_imageUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1662044232_add_chat_image.up.sql", size: 49, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "1662044232_add_chat_image.up.sql", size: 49, mode: os.FileMode(0644), modTime: time.Unix(1666081963, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xb3, 0x74, 0xdf, 0x50, 0x79, 0x73, 0x9e, 0xd0, 0xff, 0xa4, 0xd3, 0x87, 0xc3, 0x48, 0x31, 0x6c, 0xdf, 0xa6, 0x20, 0x85, 0xe6, 0x4e, 0x19, 0x9d, 0xef, 0xcc, 0x84, 0x2b, 0x5d, 0x44, 0x34, 0x6}}
return a, nil
}
@ -1335,7 +1336,7 @@ func _1662106895_add_chat_first_message_timestampUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1662106895_add_chat_first_message_timestamp.up.sql", size: 113, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "1662106895_add_chat_first_message_timestamp.up.sql", size: 113, mode: os.FileMode(0644), modTime: time.Unix(1668711465, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x8b, 0x55, 0x74, 0xfa, 0xf5, 0x51, 0x85, 0x19, 0xfd, 0xfb, 0x6, 0x79, 0x4d, 0x1d, 0xd, 0x3, 0x46, 0x66, 0x34, 0x1e, 0xce, 0x91, 0x21, 0x29, 0xf6, 0x71, 0xe7, 0x31, 0x39, 0x8f, 0x9d, 0x5}}
return a, nil
}
@ -1355,7 +1356,7 @@ func _1662723928_add_discord_author_image_fieldsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1662723928_add_discord_author_image_fields.up.sql", size: 75, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "1662723928_add_discord_author_image_fields.up.sql", size: 75, mode: os.FileMode(0644), modTime: time.Unix(1668711465, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x1e, 0x5b, 0x48, 0x57, 0x98, 0x55, 0x9a, 0xf1, 0x75, 0xf7, 0xb5, 0x41, 0x5e, 0x96, 0xc5, 0xce, 0xfc, 0x30, 0x5c, 0x15, 0x35, 0x9e, 0x4e, 0x4a, 0x3b, 0x38, 0x42, 0xc4, 0x27, 0x3c, 0x87, 0xbf}}
return a, nil
}
@ -1375,7 +1376,7 @@ func _1664195977_add_deleted_for_mesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1664195977_add_deleted_for_mes.up.sql", size: 352, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "1664195977_add_deleted_for_mes.up.sql", size: 352, mode: os.FileMode(0644), modTime: time.Unix(1668711465, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x7d, 0x9d, 0x13, 0x9, 0xaa, 0x44, 0x14, 0x93, 0xe2, 0xf5, 0x53, 0xb7, 0x79, 0xa8, 0x18, 0xf0, 0x6c, 0xa4, 0x9c, 0x73, 0xc1, 0xaa, 0xc5, 0x2e, 0xc5, 0x41, 0xd7, 0x24, 0xb0, 0xd7, 0xb8, 0xdf}}
return a, nil
}
@ -1395,7 +1396,7 @@ func _1664367420_add_discord_attachments_tableUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1664367420_add_discord_attachments_table.up.sql", size: 350, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "1664367420_add_discord_attachments_table.up.sql", size: 350, mode: os.FileMode(0644), modTime: time.Unix(1668711465, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x48, 0xe1, 0xb6, 0x4f, 0x6f, 0x92, 0x0, 0xb4, 0xf, 0x55, 0x12, 0x1c, 0x98, 0x6d, 0xbc, 0x1e, 0xfd, 0xae, 0x1c, 0xce, 0xd1, 0x3d, 0x2, 0x21, 0x2e, 0xc0, 0x13, 0xa, 0xb2, 0xec, 0x81, 0x13}}
return a, nil
}
@ -1415,7 +1416,7 @@ func _1665079662_add_spectated_column_in_communitiesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1665079662_add_spectated_column_in_communities.up.sql", size: 86, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "1665079662_add_spectated_column_in_communities.up.sql", size: 86, mode: os.FileMode(0644), modTime: time.Unix(1668711465, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xa0, 0x5d, 0xfe, 0xe2, 0xbe, 0xdf, 0xba, 0x45, 0xe9, 0xfc, 0xa7, 0x5f, 0xda, 0x19, 0xdb, 0x40, 0x96, 0x59, 0x78, 0xa, 0xd7, 0x4a, 0xca, 0x1a, 0x93, 0xfb, 0xae, 0x6d, 0x74, 0x7, 0x36, 0xdd}}
return a, nil
}
@ -1435,7 +1436,7 @@ func _1665479047_add_community_id_in_notificationsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1665479047_add_community_id_in_notifications.up.sql", size: 169, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "1665479047_add_community_id_in_notifications.up.sql", size: 169, mode: os.FileMode(0644), modTime: time.Unix(1669031482, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd9, 0x8f, 0x8b, 0x1c, 0xaa, 0x6a, 0x56, 0xd6, 0xa5, 0x88, 0x57, 0x13, 0x8f, 0xea, 0xb9, 0x23, 0x82, 0x50, 0xb7, 0x65, 0x1f, 0xab, 0xfa, 0x23, 0x6f, 0x0, 0x7, 0xb6, 0x6e, 0xb5, 0x85, 0x44}}
return a, nil
}
@ -1455,7 +1456,7 @@ func _1665484435_add_encrypted_messagesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1665484435_add_encrypted_messages.up.sql", size: 402, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "1665484435_add_encrypted_messages.up.sql", size: 402, mode: os.FileMode(0644), modTime: time.Unix(1668711465, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x8f, 0x5c, 0x1e, 0x1c, 0x7f, 0xae, 0x5f, 0xeb, 0x3c, 0x6c, 0xcd, 0xc2, 0x99, 0x48, 0x5c, 0x83, 0xa0, 0xa2, 0x97, 0x5, 0x39, 0x82, 0x71, 0x90, 0x47, 0x21, 0x84, 0x29, 0x19, 0xa4, 0x7a, 0x90}}
return a, nil
}
@ -1475,7 +1476,7 @@ func _1665560200_add_contact_verification_individualUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1665560200_add_contact_verification_individual.up.sql", size: 509, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "1665560200_add_contact_verification_individual.up.sql", size: 509, mode: os.FileMode(0644), modTime: time.Unix(1669031482, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xc5, 0xbb, 0x61, 0xfd, 0xbf, 0x33, 0x1d, 0x4e, 0x5f, 0xbd, 0x86, 0x42, 0xb0, 0x6c, 0xf7, 0x39, 0x19, 0x6e, 0x72, 0x35, 0xfd, 0x1b, 0xd6, 0xbd, 0xf6, 0x81, 0x21, 0xc4, 0xaa, 0x6, 0x62, 0x40}}
return a, nil
}
@ -1495,7 +1496,7 @@ func _1670921937_add_album_idUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1670921937_add_album_id.up.sql", size: 55, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "1670921937_add_album_id.up.sql", size: 55, mode: os.FileMode(0644), modTime: time.Unix(1673008084, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x7e, 0xae, 0x83, 0x58, 0xb7, 0x77, 0x5, 0xca, 0xe3, 0xda, 0x32, 0x8f, 0x7b, 0xa4, 0x2f, 0x4c, 0xaf, 0x5f, 0xfa, 0x94, 0x36, 0xe4, 0xf9, 0x7, 0xc6, 0xd6, 0xb7, 0x90, 0xf3, 0xe5, 0xb5, 0x3}}
return a, nil
}
@ -1515,7 +1516,7 @@ func _1673373000_add_repliedUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1673373000_add_replied.up.sql", size: 67, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "1673373000_add_replied.up.sql", size: 67, mode: os.FileMode(0644), modTime: time.Unix(1673450916, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd5, 0x1c, 0xae, 0xf2, 0xf, 0xb4, 0xc2, 0xba, 0x3c, 0xfe, 0x7b, 0xb0, 0xf, 0xf, 0xd5, 0xbc, 0xe2, 0xa7, 0xad, 0x50, 0xd9, 0x5a, 0xe8, 0x96, 0x22, 0x65, 0x89, 0xcf, 0x4a, 0x9a, 0x1b, 0x94}}
return a, nil
}
@ -1535,11 +1536,31 @@ func _1673428910_add_image_width_heightUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1673428910_add_image_width_height.up.sql", size: 117, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "1673428910_add_image_width_height.up.sql", size: 117, mode: os.FileMode(0644), modTime: time.Unix(1673602424, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x74, 0xda, 0x93, 0x2a, 0x9b, 0x6b, 0xb7, 0x96, 0xcd, 0xac, 0xf, 0xaf, 0x54, 0x89, 0x9e, 0x91, 0x5b, 0xd0, 0x4a, 0xa, 0x8d, 0x9e, 0x80, 0x66, 0x26, 0x9e, 0xb5, 0xa9, 0x8, 0xec, 0x2d, 0x6c}}
return a, nil
}
var __1674210659_add_contact_request_local_clockUpSql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x90\xc1\x8a\xc2\x30\x14\x45\xf7\xf9\x8a\xfb\x0d\x33\xcb\xa1\x8b\x4c\x13\xa8\x50\xa3\xd8\x14\x97\x21\x24\x01\xc1\x68\xb4\x79\x5d\xf8\xf7\x42\x4b\xa1\x2a\x42\x05\xb7\x37\xb9\xe7\xbd\xf3\x18\xaf\xb5\xdc\x41\xf3\xff\x5a\xc2\xa5\x33\x59\x47\x19\x5c\x08\x94\x9b\xba\x5d\xab\x29\x33\x5d\xb8\xf6\x21\x93\x89\xc9\xd9\x68\x5c\x4c\xee\x88\x95\xd2\x7f\x1f\x03\xba\x70\x4a\x14\xbe\x40\xc8\x64\x29\x8c\x04\xd6\x6e\x05\xd7\xb3\x76\x23\xf5\x4b\x6d\xfc\x5f\xa0\xe4\x8d\x64\x00\xb0\xaf\xa4\x82\xf5\x3e\x78\xe8\x4a\xaa\x21\xc3\xdb\xda\x0f\x03\xa4\x12\x0b\x87\xcd\xcf\x54\x20\xda\x4c\xa6\xbf\x78\x4b\xc1\x8f\x4f\xf1\xb6\x10\xf4\x20\xfb\xbc\xfc\xc1\x66\x33\x08\x98\x3e\x2f\x71\xf8\x9d\x1c\xee\x01\x00\x00\xff\xff\xba\x98\x7c\x15\xf7\x01\x00\x00")
func _1674210659_add_contact_request_local_clockUpSqlBytes() ([]byte, error) {
return bindataRead(
__1674210659_add_contact_request_local_clockUpSql,
"1674210659_add_contact_request_local_clock.up.sql",
)
}
func _1674210659_add_contact_request_local_clockUpSql() (*asset, error) {
bytes, err := _1674210659_add_contact_request_local_clockUpSqlBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "1674210659_add_contact_request_local_clock.up.sql", size: 503, mode: os.FileMode(0644), modTime: time.Unix(1674812330, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xda, 0x2a, 0x55, 0x85, 0x36, 0x85, 0x1c, 0xcb, 0x9c, 0x36, 0xbf, 0xd0, 0x88, 0x32, 0x2d, 0xb7, 0x10, 0x10, 0x1b, 0xf2, 0xca, 0xf0, 0x16, 0x6f, 0x95, 0xcf, 0xb2, 0x1e, 0x5, 0xd3, 0xc, 0x1b}}
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) {
@ -1555,7 +1576,7 @@ func readmeMd() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "README.md", size: 554, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "README.md", size: 554, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -1575,7 +1596,7 @@ func docGo() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "doc.go", size: 850, mode: os.FileMode(0644), modTime: time.Unix(1673964300, 0)}
info := bindataFileInfo{name: "doc.go", size: 850, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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
}
@ -1811,6 +1832,8 @@ var _bindata = map[string]func() (*asset, error){
"1673428910_add_image_width_height.up.sql": _1673428910_add_image_width_heightUpSql,
"1674210659_add_contact_request_local_clock.up.sql": _1674210659_add_contact_request_local_clockUpSql,
"README.md": readmeMd,
"doc.go": docGo,
@ -1927,6 +1950,7 @@ var _bintree = &bintree{nil, map[string]*bintree{
"1670921937_add_album_id.up.sql": &bintree{_1670921937_add_album_idUpSql, map[string]*bintree{}},
"1673373000_add_replied.up.sql": &bintree{_1673373000_add_repliedUpSql, map[string]*bintree{}},
"1673428910_add_image_width_height.up.sql": &bintree{_1673428910_add_image_width_heightUpSql, map[string]*bintree{}},
"1674210659_add_contact_request_local_clock.up.sql": &bintree{_1674210659_add_contact_request_local_clockUpSql, map[string]*bintree{}},
"README.md": &bintree{readmeMd, map[string]*bintree{}},
"doc.go": &bintree{docGo, map[string]*bintree{}},
}}

View file

@ -0,0 +1,16 @@
ALTER TABLE contacts ADD COLUMN contact_request_local_clock INT;
ALTER TABLE contacts ADD COLUMN contact_request_remote_clock INT;
ALTER TABLE contacts ADD COLUMN contact_request_remote_state INT;
UPDATE contacts SET contact_request_state = CASE
WHEN added THEN
contact_request_state = 2
END;
UPDATE contacts SET contact_request_local_clock = last_updated_locally;
UPDATE contacts SET contact_request_remote_state = CASE
WHEN has_added_us THEN
contact_request_state = 3
END;

View file

@ -536,13 +536,13 @@ func (db sqlitePersistence) Contacts() ([]*Contact, error) {
c.identicon,
c.last_updated,
c.last_updated_locally,
c.added,
c.blocked,
c.removed,
c.has_added_us,
c.local_nickname,
c.contact_request_state,
c.contact_request_clock,
c.contact_request_local_clock,
c.contact_request_remote_state,
c.contact_request_remote_clock,
i.image_type,
i.payload,
i.clock_value,
@ -561,21 +561,21 @@ func (db sqlitePersistence) Contacts() ([]*Contact, error) {
for rows.Next() {
var (
contact Contact
nickname sql.NullString
contactRequestState sql.NullInt64
contactRequestClock sql.NullInt64
displayName sql.NullString
imageType sql.NullString
ensName sql.NullString
ensVerified sql.NullBool
added sql.NullBool
blocked sql.NullBool
removed sql.NullBool
hasAddedUs sql.NullBool
lastUpdatedLocally sql.NullInt64
identityImageClock sql.NullInt64
imagePayload []byte
contact Contact
nickname sql.NullString
contactRequestLocalState sql.NullInt64
contactRequestLocalClock sql.NullInt64
contactRequestRemoteState sql.NullInt64
contactRequestRemoteClock sql.NullInt64
displayName sql.NullString
imageType sql.NullString
ensName sql.NullString
ensVerified sql.NullBool
blocked sql.NullBool
removed sql.NullBool
lastUpdatedLocally sql.NullInt64
identityImageClock sql.NullInt64
imagePayload []byte
)
contact.Images = make(map[string]images.IdentityImage)
@ -590,13 +590,13 @@ func (db sqlitePersistence) Contacts() ([]*Contact, error) {
&contact.Identicon,
&contact.LastUpdated,
&lastUpdatedLocally,
&added,
&blocked,
&removed,
&hasAddedUs,
&nickname,
&contactRequestState,
&contactRequestClock,
&contactRequestLocalState,
&contactRequestLocalClock,
&contactRequestRemoteState,
&contactRequestRemoteClock,
&imageType,
&imagePayload,
&identityImageClock,
@ -611,12 +611,20 @@ func (db sqlitePersistence) Contacts() ([]*Contact, error) {
contact.LocalNickname = nickname.String
}
if contactRequestState.Valid {
contact.ContactRequestState = ContactRequestState(contactRequestState.Int64)
if contactRequestLocalState.Valid {
contact.ContactRequestLocalState = ContactRequestState(contactRequestLocalState.Int64)
}
if contactRequestClock.Valid {
contact.ContactRequestClock = uint64(contactRequestClock.Int64)
if contactRequestLocalClock.Valid {
contact.ContactRequestLocalClock = uint64(contactRequestLocalClock.Int64)
}
if contactRequestRemoteState.Valid {
contact.ContactRequestRemoteState = ContactRequestState(contactRequestRemoteState.Int64)
}
if contactRequestRemoteClock.Valid {
contact.ContactRequestRemoteClock = uint64(contactRequestRemoteClock.Int64)
}
if displayName.Valid {
@ -631,10 +639,6 @@ func (db sqlitePersistence) Contacts() ([]*Contact, error) {
contact.ENSVerified = ensVerified.Bool
}
if added.Valid {
contact.Added = added.Bool
}
if blocked.Valid {
contact.Blocked = blocked.Bool
}
@ -647,10 +651,6 @@ func (db sqlitePersistence) Contacts() ([]*Contact, error) {
contact.LastUpdatedLocally = uint64(lastUpdatedLocally.Int64)
}
if hasAddedUs.Valid {
contact.HasAddedUs = hasAddedUs.Bool
}
previousContact, ok := allContacts[contact.ID]
if !ok {
if imageType.Valid {
@ -876,12 +876,12 @@ func (db sqlitePersistence) SaveContact(contact *Contact, tx *sql.Tx) (err error
last_updated_locally,
local_nickname,
contact_request_state,
contact_request_clock,
added,
contact_request_local_clock,
contact_request_remote_state,
contact_request_remote_clock,
blocked,
removed,
verification_status,
has_added_us,
name,
photo,
tribute_to_talk
@ -901,13 +901,13 @@ func (db sqlitePersistence) SaveContact(contact *Contact, tx *sql.Tx) (err error
contact.LastUpdated,
contact.LastUpdatedLocally,
contact.LocalNickname,
contact.ContactRequestState,
contact.ContactRequestClock,
contact.Added,
contact.ContactRequestLocalState,
contact.ContactRequestLocalClock,
contact.ContactRequestRemoteState,
contact.ContactRequestRemoteClock,
contact.Blocked,
contact.Removed,
contact.VerificationStatus,
contact.HasAddedUs,
//TODO we need to drop these columns
"",
"",

View file

@ -825,7 +825,6 @@ type ChatMessage struct {
// The type of the content of the message
ContentType ChatMessage_ContentType `protobuf:"varint,8,opt,name=content_type,json=contentType,proto3,enum=protobuf.ChatMessage_ContentType" json:"content_type,omitempty"`
// Types that are valid to be assigned to Payload:
//
// *ChatMessage_Sticker
// *ChatMessage_Image
// *ChatMessage_Audio

View file

@ -25,6 +25,7 @@ type ContactUpdate struct {
EnsName string `protobuf:"bytes,2,opt,name=ens_name,json=ensName,proto3" json:"ens_name,omitempty"`
ProfileImage string `protobuf:"bytes,3,opt,name=profile_image,json=profileImage,proto3" json:"profile_image,omitempty"`
DisplayName string `protobuf:"bytes,4,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
ContactRequestClock uint64 `protobuf:"varint,5,opt,name=contact_request_clock,json=contactRequestClock,proto3" json:"contact_request_clock,omitempty"`
SentContactRequestSignature *ContactRequestSignature `protobuf:"bytes,14,opt,name=sent_contact_request_signature,json=sentContactRequestSignature,proto3" json:"sent_contact_request_signature,omitempty"`
ReceivedContactRequestSignature *ContactRequestSignature `protobuf:"bytes,15,opt,name=received_contact_request_signature,json=receivedContactRequestSignature,proto3" json:"received_contact_request_signature,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
@ -85,6 +86,13 @@ func (m *ContactUpdate) GetDisplayName() string {
return ""
}
func (m *ContactUpdate) GetContactRequestClock() uint64 {
if m != nil {
return m.ContactRequestClock
}
return 0
}
func (m *ContactUpdate) GetSentContactRequestSignature() *ContactRequestSignature {
if m != nil {
return m.SentContactRequestSignature
@ -204,24 +212,25 @@ func init() {
}
var fileDescriptor_a5036fff2565fb15 = []byte{
// 294 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x50, 0x41, 0x4b, 0xf4, 0x30,
0x14, 0xa4, 0xfd, 0xf6, 0xd3, 0xdd, 0xb7, 0xdb, 0x15, 0xc2, 0x0a, 0x55, 0x41, 0xbb, 0xf5, 0xd2,
0x53, 0x05, 0x3d, 0xaa, 0x07, 0xf5, 0xe4, 0xc5, 0x43, 0xc4, 0x8b, 0x97, 0x90, 0x4d, 0x5f, 0x6b,
0xb0, 0x4d, 0x6b, 0x92, 0x0a, 0xfe, 0x5b, 0x7f, 0x8a, 0x6c, 0xda, 0xa2, 0x08, 0x2b, 0xe2, 0x29,
0xc9, 0xcc, 0x64, 0xde, 0xbc, 0x81, 0x40, 0xd4, 0xca, 0x72, 0x61, 0xd3, 0x46, 0xd7, 0xb6, 0x26,
0x63, 0x77, 0xac, 0xda, 0x7c, 0x9f, 0x88, 0x27, 0x6e, 0x59, 0x85, 0xc6, 0xf0, 0x02, 0x3b, 0x36,
0x7e, 0xf7, 0x21, 0xb8, 0xe9, 0xf4, 0x0f, 0x4d, 0xc6, 0x2d, 0x92, 0x05, 0xfc, 0x17, 0x65, 0x2d,
0x9e, 0x43, 0x2f, 0xf2, 0x92, 0x11, 0xed, 0x1e, 0x64, 0x0f, 0xc6, 0xa8, 0x0c, 0x53, 0xbc, 0xc2,
0xd0, 0x8f, 0xbc, 0x64, 0x42, 0xb7, 0x51, 0x99, 0x3b, 0x5e, 0x21, 0x39, 0x86, 0xa0, 0xd1, 0x75,
0x2e, 0x4b, 0x64, 0xb2, 0xe2, 0x05, 0x86, 0xff, 0x1c, 0x3f, 0xeb, 0xc1, 0xdb, 0x35, 0x46, 0x96,
0x30, 0xcb, 0xa4, 0x69, 0x4a, 0xfe, 0xd6, 0x79, 0x8c, 0x9c, 0x66, 0xda, 0x63, 0xce, 0x27, 0x87,
0x43, 0x83, 0xca, 0xb2, 0x3e, 0x3e, 0xd3, 0xf8, 0xd2, 0xa2, 0xb1, 0xcc, 0xc8, 0x42, 0x71, 0xdb,
0x6a, 0x0c, 0xe7, 0x91, 0x97, 0x4c, 0x4f, 0x97, 0xe9, 0xb0, 0x51, 0xda, 0x27, 0xa7, 0x9d, 0xf2,
0x7e, 0x10, 0xd2, 0x83, 0xb5, 0xd1, 0x06, 0x92, 0x28, 0x88, 0x35, 0x0a, 0x94, 0xaf, 0x98, 0xfd,
0x30, 0x6b, 0xe7, 0xb7, 0xb3, 0x8e, 0x06, 0xb3, 0x0d, 0x82, 0xf8, 0x02, 0x16, 0x57, 0x42, 0x60,
0xf3, 0x2d, 0x10, 0x99, 0x83, 0x2f, 0x33, 0xd7, 0xf2, 0x84, 0xfa, 0x32, 0xfb, 0x2c, 0xde, 0xff,
0x52, 0x7c, 0x7c, 0x09, 0xbb, 0x14, 0xad, 0xe6, 0xe2, 0x4f, 0xdf, 0xaf, 0x83, 0xc7, 0x69, 0x7a,
0x72, 0x3e, 0x2c, 0xb1, 0xda, 0x72, 0xb7, 0xb3, 0x8f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb8, 0x89,
0xb6, 0xb0, 0x24, 0x02, 0x00, 0x00,
// 311 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x51, 0x31, 0x4f, 0xf3, 0x30,
0x14, 0x54, 0xd2, 0xf6, 0xfb, 0xda, 0xd7, 0xa6, 0x48, 0xa6, 0x95, 0x02, 0x48, 0xd0, 0x86, 0xa5,
0x53, 0x90, 0xca, 0x08, 0x0c, 0xd0, 0x89, 0x85, 0xc1, 0x88, 0x85, 0xc5, 0x72, 0x9d, 0xd7, 0x62,
0xd1, 0x38, 0xc1, 0x76, 0x91, 0xf8, 0x1f, 0xfc, 0x60, 0x54, 0x3b, 0x11, 0x50, 0xa9, 0x08, 0x31,
0x25, 0xbe, 0xbb, 0x77, 0xef, 0xec, 0x83, 0x48, 0x14, 0xca, 0x72, 0x61, 0xd3, 0x52, 0x17, 0xb6,
0x20, 0x6d, 0xf7, 0x99, 0xaf, 0x17, 0x87, 0x44, 0x3c, 0x71, 0xcb, 0x72, 0x34, 0x86, 0x2f, 0xd1,
0xb3, 0xc9, 0x7b, 0x03, 0xa2, 0x99, 0xd7, 0x3f, 0x94, 0x19, 0xb7, 0x48, 0x06, 0xd0, 0x12, 0xab,
0x42, 0x3c, 0xc7, 0xc1, 0x28, 0x98, 0x34, 0xa9, 0x3f, 0x90, 0x03, 0x68, 0xa3, 0x32, 0x4c, 0xf1,
0x1c, 0xe3, 0x70, 0x14, 0x4c, 0x3a, 0xf4, 0x3f, 0x2a, 0x73, 0xc7, 0x73, 0x24, 0xa7, 0x10, 0x95,
0xba, 0x58, 0xc8, 0x15, 0x32, 0x99, 0xf3, 0x25, 0xc6, 0x0d, 0xc7, 0xf7, 0x2a, 0xf0, 0x76, 0x83,
0x91, 0x31, 0xf4, 0x32, 0x69, 0xca, 0x15, 0x7f, 0xf3, 0x1e, 0x4d, 0xa7, 0xe9, 0x56, 0x98, 0xf3,
0x99, 0xc2, 0xb0, 0x4a, 0xce, 0x34, 0xbe, 0xac, 0xd1, 0x58, 0xe6, 0x83, 0xb4, 0x5c, 0x90, 0xfd,
0x8a, 0xa4, 0x9e, 0x9b, 0xb9, 0x58, 0x0b, 0x38, 0x36, 0xa8, 0x2c, 0xdb, 0x1e, 0x34, 0x72, 0xa9,
0xb8, 0x5d, 0x6b, 0x8c, 0xfb, 0xa3, 0x60, 0xd2, 0x9d, 0x8e, 0xd3, 0xfa, 0x15, 0xd2, 0xd9, 0x37,
0x9b, 0xfb, 0x5a, 0x48, 0x8f, 0x36, 0x46, 0x3b, 0x48, 0xa2, 0x20, 0xd1, 0x28, 0x50, 0xbe, 0x62,
0xf6, 0xc3, 0xae, 0xbd, 0xdf, 0xee, 0x3a, 0xa9, 0xcd, 0x76, 0x08, 0x92, 0x4b, 0x18, 0x5c, 0x0b,
0x81, 0xe5, 0x56, 0x20, 0xd2, 0x87, 0x50, 0x66, 0xae, 0x99, 0x0e, 0x0d, 0x65, 0xf6, 0x59, 0x56,
0xf8, 0xa5, 0xac, 0xe4, 0x0a, 0x86, 0x14, 0xad, 0xe6, 0xe2, 0x4f, 0xe3, 0x37, 0xd1, 0x63, 0x37,
0x3d, 0xbb, 0xa8, 0x2f, 0x31, 0xff, 0xe7, 0xfe, 0xce, 0x3f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x8b,
0xda, 0xbb, 0xda, 0x58, 0x02, 0x00, 0x00,
}

View file

@ -9,6 +9,7 @@ message ContactUpdate {
string ens_name = 2;
string profile_image = 3;
string display_name = 4;
uint64 contact_request_clock = 5;
ContactRequestSignature sent_contact_request_signature = 14;
ContactRequestSignature received_contact_request_signature = 15;

View file

@ -166,7 +166,6 @@ type MembershipUpdateMessage struct {
// An optional chat message
//
// Types that are valid to be assigned to ChatEntity:
//
// *MembershipUpdateMessage_Message
// *MembershipUpdateMessage_EmojiReaction
ChatEntity isMembershipUpdateMessage_ChatEntity `protobuf_oneof:"chat_entity"`

View file

@ -750,24 +750,27 @@ func (m *SyncInstallationContact) GetLocalNickname() string {
}
type SyncInstallationContactV2 struct {
LastUpdatedLocally uint64 `protobuf:"varint,1,opt,name=last_updated_locally,json=lastUpdatedLocally,proto3" json:"last_updated_locally,omitempty"`
Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
ProfileImage string `protobuf:"bytes,3,opt,name=profile_image,json=profileImage,proto3" json:"profile_image,omitempty"`
EnsName string `protobuf:"bytes,4,opt,name=ens_name,json=ensName,proto3" json:"ens_name,omitempty"`
LastUpdated uint64 `protobuf:"varint,5,opt,name=last_updated,json=lastUpdated,proto3" json:"last_updated,omitempty"`
SystemTags []string `protobuf:"bytes,6,rep,name=system_tags,json=systemTags,proto3" json:"system_tags,omitempty"`
LocalNickname string `protobuf:"bytes,7,opt,name=local_nickname,json=localNickname,proto3" json:"local_nickname,omitempty"`
Added bool `protobuf:"varint,9,opt,name=added,proto3" json:"added,omitempty"`
Blocked bool `protobuf:"varint,10,opt,name=blocked,proto3" json:"blocked,omitempty"`
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"`
ContactRequestState int64 `protobuf:"varint,16,opt,name=contact_request_state,json=contactRequestState,proto3" json:"contact_request_state,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
LastUpdatedLocally uint64 `protobuf:"varint,1,opt,name=last_updated_locally,json=lastUpdatedLocally,proto3" json:"last_updated_locally,omitempty"`
Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
ProfileImage string `protobuf:"bytes,3,opt,name=profile_image,json=profileImage,proto3" json:"profile_image,omitempty"`
EnsName string `protobuf:"bytes,4,opt,name=ens_name,json=ensName,proto3" json:"ens_name,omitempty"`
LastUpdated uint64 `protobuf:"varint,5,opt,name=last_updated,json=lastUpdated,proto3" json:"last_updated,omitempty"`
SystemTags []string `protobuf:"bytes,6,rep,name=system_tags,json=systemTags,proto3" json:"system_tags,omitempty"`
LocalNickname string `protobuf:"bytes,7,opt,name=local_nickname,json=localNickname,proto3" json:"local_nickname,omitempty"`
Added bool `protobuf:"varint,9,opt,name=added,proto3" json:"added,omitempty"`
Blocked bool `protobuf:"varint,10,opt,name=blocked,proto3" json:"blocked,omitempty"`
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"`
ContactRequestLocalState int64 `protobuf:"varint,16,opt,name=contact_request_local_state,json=contactRequestLocalState,proto3" json:"contact_request_local_state,omitempty"`
ContactRequestLocalClock int64 `protobuf:"varint,17,opt,name=contact_request_local_clock,json=contactRequestLocalClock,proto3" json:"contact_request_local_clock,omitempty"`
ContactRequestRemoteState int64 `protobuf:"varint,18,opt,name=contact_request_remote_state,json=contactRequestRemoteState,proto3" json:"contact_request_remote_state,omitempty"`
ContactRequestRemoteClock int64 `protobuf:"varint,19,opt,name=contact_request_remote_clock,json=contactRequestRemoteClock,proto3" json:"contact_request_remote_clock,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *SyncInstallationContactV2) Reset() { *m = SyncInstallationContactV2{} }
@ -893,9 +896,30 @@ func (m *SyncInstallationContactV2) GetTrustStatus() int64 {
return 0
}
func (m *SyncInstallationContactV2) GetContactRequestState() int64 {
func (m *SyncInstallationContactV2) GetContactRequestLocalState() int64 {
if m != nil {
return m.ContactRequestState
return m.ContactRequestLocalState
}
return 0
}
func (m *SyncInstallationContactV2) GetContactRequestLocalClock() int64 {
if m != nil {
return m.ContactRequestLocalClock
}
return 0
}
func (m *SyncInstallationContactV2) GetContactRequestRemoteState() int64 {
if m != nil {
return m.ContactRequestRemoteState
}
return 0
}
func (m *SyncInstallationContactV2) GetContactRequestRemoteClock() int64 {
if m != nil {
return m.ContactRequestRemoteClock
}
return 0
}
@ -2507,151 +2531,153 @@ func init() {
}
var fileDescriptor_d61ab7221f0b5518 = []byte{
// 2326 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x59, 0xcf, 0x72, 0x1b, 0xc7,
0xd1, 0xf7, 0x02, 0x10, 0x01, 0x34, 0x40, 0x10, 0x1e, 0xca, 0x16, 0x4c, 0x49, 0x25, 0x6a, 0xf5,
0xa9, 0xac, 0xaf, 0x4a, 0xa1, 0x5d, 0x54, 0x12, 0x27, 0x96, 0x5d, 0x31, 0x04, 0x32, 0x16, 0xf5,
0x87, 0x62, 0x0d, 0x49, 0x29, 0x49, 0xa5, 0x6a, 0x6b, 0xb8, 0x3b, 0x24, 0x26, 0x5c, 0xec, 0x6e,
0x76, 0x06, 0x54, 0x36, 0x0f, 0x90, 0x07, 0xf0, 0x25, 0x57, 0xdf, 0x73, 0x4b, 0x95, 0x73, 0xca,
0x03, 0xe4, 0x96, 0x43, 0x2e, 0xa9, 0x4a, 0x9e, 0x20, 0x4f, 0x91, 0x9a, 0x9e, 0x59, 0xec, 0x2e,
0x09, 0x30, 0x54, 0xe5, 0x94, 0x13, 0xa7, 0x7b, 0xba, 0x7b, 0x7b, 0xba, 0x7b, 0xba, 0x7f, 0x43,
0xc0, 0x72, 0xc2, 0x44, 0x2a, 0xa2, 0x93, 0x8d, 0x24, 0x8d, 0x55, 0x4c, 0x5a, 0xf8, 0xe7, 0x68,
0x7a, 0xbc, 0xb6, 0x2a, 0xb3, 0xc8, 0xf7, 0x24, 0x57, 0x4a, 0x44, 0x27, 0xd2, 0x6c, 0xaf, 0xb9,
0x2c, 0x49, 0x42, 0xe1, 0x33, 0x25, 0xe2, 0xc8, 0x9b, 0x70, 0xc5, 0x02, 0xa6, 0x98, 0x37, 0xe1,
0x52, 0xb2, 0x13, 0x6e, 0x64, 0x5c, 0x06, 0x37, 0x7f, 0xca, 0x95, 0x3f, 0x16, 0xd1, 0xc9, 0x13,
0xe6, 0x9f, 0xf2, 0xe0, 0x30, 0xd9, 0x62, 0x8a, 0x6d, 0x71, 0xc5, 0x44, 0x28, 0xc9, 0x1d, 0xe8,
0xa0, 0x52, 0x34, 0x9d, 0x1c, 0xf1, 0x74, 0xe0, 0xac, 0x3b, 0x0f, 0x96, 0x29, 0x68, 0xd6, 0x2e,
0x72, 0xc8, 0x5d, 0xe8, 0xaa, 0x58, 0xb1, 0x30, 0x97, 0xa8, 0xa1, 0x44, 0x07, 0x79, 0x46, 0xc4,
0xfd, 0x7b, 0x03, 0x96, 0xb4, 0xed, 0x69, 0x42, 0xae, 0xc3, 0x35, 0x3f, 0x8c, 0xfd, 0x53, 0x34,
0xd4, 0xa0, 0x86, 0x20, 0x3d, 0xa8, 0x89, 0x00, 0x35, 0xdb, 0xb4, 0x26, 0x02, 0xf2, 0x13, 0x68,
0xf9, 0x71, 0xa4, 0x98, 0xaf, 0xe4, 0xa0, 0xbe, 0x5e, 0x7f, 0xd0, 0xd9, 0xbc, 0xb7, 0x91, 0x9f,
0x74, 0x63, 0x3f, 0x8b, 0xfc, 0x9d, 0x48, 0x2a, 0x16, 0x86, 0x78, 0xb0, 0x91, 0x91, 0x7c, 0xbd,
0x49, 0x67, 0x4a, 0xe4, 0xc7, 0xd0, 0xf1, 0xe3, 0xc9, 0x64, 0x1a, 0x09, 0x25, 0xb8, 0x1c, 0x34,
0xd0, 0xc6, 0x8d, 0xaa, 0x8d, 0x91, 0x15, 0xc8, 0x68, 0x59, 0x96, 0xbc, 0x82, 0x95, 0xdc, 0x8c,
0x8d, 0xc1, 0xe0, 0xda, 0xba, 0xf3, 0xa0, 0xb3, 0x79, 0xbf, 0x50, 0xbf, 0x24, 0x60, 0xf4, 0xbc,
0x36, 0x39, 0x04, 0x52, 0xb2, 0x9f, 0xdb, 0x5c, 0x7a, 0x17, 0x9b, 0x73, 0x0c, 0x90, 0x47, 0xd0,
0x4c, 0xd2, 0xf8, 0x58, 0x84, 0x7c, 0xd0, 0x44, 0x5b, 0x1f, 0x15, 0xb6, 0x72, 0x1b, 0x7b, 0x46,
0x80, 0xe6, 0x92, 0xe4, 0x25, 0xf4, 0xec, 0x32, 0xf7, 0xa3, 0xf5, 0x2e, 0x7e, 0x9c, 0x53, 0x26,
0x9f, 0x40, 0xd3, 0x56, 0xdc, 0xa0, 0x8d, 0x76, 0x3e, 0xa8, 0x86, 0x78, 0xdf, 0x6c, 0xd2, 0x5c,
0x4a, 0x07, 0x37, 0x2f, 0xd1, 0xdc, 0x01, 0x78, 0xa7, 0xe0, 0x9e, 0xd3, 0x76, 0xff, 0xdc, 0x80,
0xee, 0xcb, 0x69, 0xa8, 0xc4, 0xd0, 0xf7, 0xe3, 0x69, 0xa4, 0x08, 0x81, 0x46, 0xc4, 0x26, 0x1c,
0xeb, 0xab, 0x4d, 0x71, 0x4d, 0x6e, 0x41, 0x5b, 0x89, 0x09, 0x97, 0x8a, 0x4d, 0x12, 0xac, 0xb2,
0x3a, 0x2d, 0x18, 0x7a, 0x57, 0x04, 0x3c, 0x52, 0xc2, 0x8f, 0xa3, 0x41, 0x1d, 0xd5, 0x0a, 0x06,
0xf9, 0x0a, 0xc0, 0x8f, 0xc3, 0x38, 0xf5, 0xc6, 0x4c, 0x8e, 0x6d, 0x21, 0xdd, 0x2d, 0x9c, 0x2d,
0x7f, 0x7b, 0x63, 0x14, 0x87, 0xf1, 0x34, 0x7d, 0xca, 0xe4, 0x98, 0xb6, 0x51, 0x49, 0x2f, 0xc9,
0x00, 0x9a, 0x48, 0xec, 0x04, 0x58, 0x48, 0x75, 0x9a, 0x93, 0xe4, 0x63, 0x58, 0x39, 0xe5, 0x99,
0xcf, 0xd2, 0xc0, 0xb3, 0xd7, 0x1a, 0xcb, 0xa2, 0x4d, 0x7b, 0x96, 0xbd, 0x67, 0xb8, 0xe4, 0x06,
0x34, 0x4f, 0x79, 0xe6, 0x4d, 0x45, 0x80, 0xb9, 0x6e, 0xd3, 0xa5, 0x53, 0x9e, 0x1d, 0x8a, 0x80,
0x7c, 0x01, 0x4b, 0x62, 0xc2, 0x4e, 0xb8, 0xce, 0xa3, 0xf6, 0xec, 0xff, 0x16, 0x78, 0xb6, 0x83,
0xe7, 0x51, 0xd9, 0x8e, 0x16, 0xa6, 0x56, 0x67, 0xcd, 0x05, 0x28, 0x5c, 0xd6, 0x57, 0x53, 0x44,
0x01, 0xff, 0xcd, 0xc0, 0x59, 0xaf, 0x3f, 0xa8, 0x53, 0x43, 0xac, 0xfd, 0xc3, 0x81, 0xe5, 0x8a,
0x76, 0xd9, 0x19, 0xa7, 0xe2, 0x4c, 0x1e, 0xfa, 0x5a, 0x29, 0xf4, 0x03, 0x68, 0x26, 0x2c, 0x0b,
0x63, 0x16, 0x60, 0x68, 0xbb, 0x34, 0x27, 0xf5, 0xe7, 0xde, 0x8a, 0x40, 0xe9, 0x98, 0xea, 0xa0,
0x18, 0x82, 0x7c, 0x08, 0x4b, 0x63, 0x2e, 0x4e, 0xc6, 0xca, 0xc6, 0xca, 0x52, 0x64, 0x0d, 0x5a,
0xba, 0xf0, 0xa4, 0xf8, 0x2d, 0xc7, 0x18, 0xd5, 0xe9, 0x8c, 0x26, 0xf7, 0x60, 0x39, 0xc5, 0x95,
0xa7, 0x58, 0x7a, 0xc2, 0x15, 0xc6, 0xa8, 0x4e, 0xbb, 0x86, 0x79, 0x80, 0xbc, 0xa2, 0xf1, 0xb4,
0x4a, 0x8d, 0xc7, 0xfd, 0x9b, 0x03, 0xab, 0x2f, 0x62, 0x9f, 0x85, 0x36, 0xd2, 0x7b, 0xd6, 0xb9,
0x1f, 0x40, 0xe3, 0x94, 0x67, 0x12, 0x43, 0x51, 0xc9, 0xf7, 0x1c, 0xe1, 0x8d, 0xe7, 0x3c, 0xa3,
0x28, 0x4e, 0x3e, 0x87, 0xee, 0x44, 0x87, 0x9d, 0x99, 0xb0, 0x63, 0x24, 0x3a, 0x9b, 0x1f, 0xce,
0x4f, 0x0a, 0xad, 0xc8, 0xea, 0x13, 0x26, 0x4c, 0xca, 0xb7, 0x71, 0x1a, 0xd8, 0x2a, 0x9c, 0xd1,
0x6b, 0xdf, 0x83, 0xfa, 0x73, 0x9e, 0xcd, 0xad, 0x6d, 0x02, 0x0d, 0xdd, 0x8c, 0xf1, 0x53, 0x5d,
0x8a, 0x6b, 0xf7, 0x77, 0x0e, 0xf4, 0xb5, 0x8f, 0xe5, 0x2e, 0xb9, 0xa0, 0xf3, 0x7e, 0x0c, 0x2b,
0xa2, 0x24, 0xe5, 0xcd, 0xda, 0x70, 0xaf, 0xcc, 0xde, 0x09, 0x70, 0x0e, 0xf0, 0x33, 0xe1, 0x73,
0x4f, 0x65, 0x09, 0xb7, 0x1e, 0x82, 0x61, 0x1d, 0x64, 0x09, 0x9f, 0x39, 0xd7, 0x28, 0x9c, 0x73,
0xff, 0xe5, 0xc0, 0x8d, 0x05, 0xed, 0xfa, 0x8a, 0x93, 0xe0, 0x1e, 0x2c, 0xdb, 0x9e, 0xe3, 0x61,
0xd1, 0xda, 0x0f, 0x77, 0x2d, 0xd3, 0x54, 0xe4, 0x47, 0xd0, 0xe2, 0x91, 0xf4, 0x4a, 0x9f, 0x6f,
0xf2, 0x48, 0xee, 0xea, 0xf0, 0xdc, 0x85, 0x6e, 0xc8, 0xa4, 0xf2, 0xa6, 0x49, 0xc0, 0x14, 0x37,
0x37, 0xb0, 0x41, 0x3b, 0x9a, 0x77, 0x68, 0x58, 0xfa, 0x64, 0x32, 0x93, 0x8a, 0x4f, 0x3c, 0xc5,
0x4e, 0x74, 0x63, 0xae, 0xeb, 0x93, 0x19, 0xd6, 0x01, 0x3b, 0x91, 0xe4, 0x3e, 0xf4, 0x42, 0x9d,
0x76, 0x2f, 0x12, 0xfe, 0x29, 0x7e, 0xc4, 0x5c, 0xc2, 0x65, 0xe4, 0xee, 0x5a, 0xa6, 0xfb, 0x4d,
0x03, 0x3e, 0x5a, 0x38, 0x9b, 0xc8, 0xa7, 0x70, 0xbd, 0xec, 0x88, 0x87, 0xba, 0x61, 0x66, 0x4f,
0x4f, 0x4a, 0x0e, 0xbd, 0x30, 0x3b, 0xff, 0xc3, 0xa1, 0xd0, 0xb9, 0x65, 0x41, 0xc0, 0x03, 0x9c,
0x0a, 0x2d, 0x6a, 0x08, 0xdd, 0x0b, 0x8e, 0x74, 0x92, 0x79, 0x80, 0x4d, 0xbf, 0x45, 0x73, 0x52,
0xcb, 0x4f, 0xa6, 0xda, 0xa7, 0x8e, 0x91, 0x47, 0x42, 0xcb, 0xa7, 0x7c, 0x12, 0x9f, 0xf1, 0x60,
0xd0, 0x35, 0xf2, 0x96, 0x24, 0xeb, 0xd0, 0x1d, 0x33, 0xe9, 0xa1, 0x59, 0x6f, 0x2a, 0x07, 0xcb,
0xb8, 0x0d, 0x63, 0x26, 0x87, 0x9a, 0x75, 0xa8, 0x27, 0xd3, 0xea, 0x19, 0x4f, 0xc5, 0x71, 0x0e,
0x7e, 0xa4, 0x62, 0x6a, 0x2a, 0x07, 0x3d, 0xec, 0x0c, 0xa4, 0xbc, 0xb5, 0x8f, 0x3b, 0x08, 0x63,
0xd2, 0xa9, 0x54, 0xb9, 0xe4, 0x0a, 0x4a, 0x76, 0x90, 0x67, 0x45, 0x36, 0xe1, 0x03, 0x3b, 0xdb,
0xbd, 0x94, 0xff, 0x7a, 0xca, 0xad, 0x30, 0x1f, 0xf4, 0x51, 0x76, 0xd5, 0x6e, 0x52, 0xb3, 0xa7,
0x95, 0xb8, 0xfb, 0xf6, 0xe2, 0x05, 0xc8, 0x27, 0xd5, 0xfc, 0x0b, 0x70, 0x21, 0xcb, 0xb5, 0x39,
0x59, 0x3e, 0x9f, 0xca, 0xfa, 0x85, 0x54, 0xba, 0x4f, 0x60, 0xed, 0xfc, 0x87, 0xf7, 0xa6, 0x47,
0xa1, 0xf0, 0x47, 0x63, 0x76, 0xc5, 0xcb, 0xe7, 0x7e, 0x57, 0x87, 0xe5, 0x0a, 0x52, 0xfa, 0x8f,
0x7a, 0x5d, 0xac, 0xd4, 0x3b, 0xd0, 0x49, 0x52, 0x71, 0xc6, 0x14, 0xf7, 0x4e, 0x79, 0x66, 0x1b,
0x3f, 0x58, 0x96, 0x6e, 0x64, 0xeb, 0xba, 0x99, 0x48, 0x3f, 0x15, 0x89, 0xf6, 0x0b, 0x0b, 0xb5,
0x4b, 0xcb, 0x2c, 0x3d, 0x07, 0x7e, 0x15, 0x8b, 0xc8, 0x96, 0x69, 0x8b, 0x5a, 0x4a, 0x77, 0x49,
0x93, 0x3c, 0x1e, 0xe0, 0x1c, 0x68, 0xd1, 0x19, 0x5d, 0x54, 0x51, 0xb3, 0x5c, 0x45, 0xaf, 0xa0,
0x6f, 0xb3, 0x25, 0x3d, 0x15, 0x7b, 0xda, 0x8e, 0x1d, 0x96, 0xf7, 0x17, 0xe1, 0x41, 0x2b, 0x7e,
0x10, 0x3f, 0x8b, 0x45, 0x44, 0x7b, 0x69, 0x85, 0x26, 0x8f, 0xa1, 0x95, 0xa3, 0x10, 0x8b, 0x7a,
0xee, 0x2c, 0x30, 0x64, 0xe1, 0x8f, 0xa4, 0x33, 0x05, 0x0d, 0x36, 0x78, 0xe4, 0xa7, 0x59, 0xa2,
0x66, 0xb7, 0xa0, 0x60, 0xe8, 0x5d, 0x99, 0x70, 0x5f, 0xb1, 0xe2, 0x2e, 0x14, 0x0c, 0xdd, 0xab,
0xad, 0xa8, 0xae, 0x68, 0x9c, 0x4f, 0x5d, 0x8c, 0x5c, 0xaf, 0x60, 0x3f, 0xe7, 0x99, 0x74, 0xff,
0xea, 0xc0, 0xcd, 0x4b, 0x4e, 0x64, 0xf3, 0xe5, 0xcc, 0xf2, 0x75, 0x1b, 0x20, 0xc1, 0xda, 0xc0,
0x74, 0x99, 0xfc, 0xb7, 0x0d, 0x47, 0x67, 0x6b, 0x96, 0xf4, 0x7a, 0x39, 0xe9, 0x97, 0x74, 0x9a,
0x1b, 0xd0, 0xf4, 0xc7, 0x4c, 0xe9, 0x61, 0x72, 0xcd, 0x20, 0x04, 0x4d, 0xee, 0x04, 0xba, 0x6e,
0x73, 0x24, 0x9b, 0xe9, 0xdd, 0x25, 0x93, 0xf8, 0x19, 0x6f, 0x07, 0x93, 0x68, 0x2e, 0x55, 0xd3,
0x7c, 0x0c, 0x09, 0xf7, 0x9b, 0x1a, 0xf4, 0xcf, 0x97, 0x33, 0xf9, 0xb2, 0xf4, 0x4a, 0xb8, 0x30,
0xa8, 0x17, 0x74, 0xe2, 0xd2, 0x1b, 0xe1, 0x6b, 0xe8, 0xda, 0x53, 0x6b, 0xef, 0xe4, 0xa0, 0x76,
0x1e, 0x41, 0x2d, 0xbe, 0x3f, 0xb4, 0x93, 0xcc, 0xd6, 0x92, 0x3c, 0x86, 0x66, 0x3e, 0xf0, 0xeb,
0x58, 0x0f, 0x97, 0xb8, 0x91, 0xcf, 0xfe, 0x5c, 0xe3, 0xbf, 0x78, 0xa9, 0xb8, 0x9f, 0xc1, 0x0a,
0xee, 0x6a, 0x87, 0x6c, 0x63, 0xbc, 0xda, 0xbd, 0xfe, 0x02, 0xae, 0xe7, 0x8a, 0x2f, 0xcd, 0x5b,
0x50, 0x52, 0xce, 0xae, 0xaa, 0xfd, 0x15, 0x7c, 0xa8, 0xb5, 0x87, 0xbe, 0x12, 0x67, 0x42, 0x65,
0x23, 0x1e, 0x29, 0x9e, 0x5e, 0xa2, 0xdf, 0x87, 0xba, 0x08, 0x4c, 0x78, 0xbb, 0x54, 0x2f, 0xdd,
0x2d, 0xd3, 0x9b, 0xaa, 0x16, 0x86, 0xbe, 0xcf, 0xf1, 0x12, 0x5c, 0xd5, 0xca, 0xb6, 0x29, 0xf2,
0xaa, 0x95, 0x2d, 0x21, 0x27, 0x42, 0xca, 0x77, 0x30, 0xf3, 0xad, 0x03, 0x5d, 0x6d, 0xe7, 0x49,
0x1c, 0x9f, 0x4e, 0x58, 0x7a, 0xba, 0x58, 0x71, 0x9a, 0x86, 0x36, 0x0c, 0x7a, 0x39, 0x03, 0x3c,
0xf5, 0x12, 0x1a, 0xbb, 0x09, 0x6d, 0xec, 0xda, 0x9e, 0x96, 0x35, 0xb7, 0xa2, 0x85, 0x8c, 0xc3,
0x34, 0x2c, 0xcf, 0xb3, 0x6b, 0xd5, 0x79, 0x76, 0x1b, 0x20, 0xe0, 0x21, 0xd7, 0xb8, 0x80, 0x29,
0xbc, 0x15, 0x0d, 0xda, 0xb6, 0x9c, 0xa1, 0x72, 0x9f, 0x99, 0xe2, 0x1f, 0x85, 0x9c, 0xa5, 0x4f,
0x85, 0x54, 0x71, 0x9a, 0x95, 0xef, 0x98, 0x53, 0xb9, 0x63, 0xb7, 0x01, 0x7c, 0x2d, 0x68, 0x6c,
0xd5, 0x8c, 0x2d, 0xcb, 0x19, 0x2a, 0xf7, 0x2f, 0x0e, 0x10, 0x6d, 0xcc, 0x3e, 0x0d, 0xf7, 0x84,
0xaf, 0xa6, 0x29, 0x9f, 0x0b, 0x2d, 0x4b, 0xd8, 0xbd, 0xb6, 0x00, 0xbb, 0xd7, 0xf1, 0xb1, 0x7f,
0x01, 0xbb, 0x37, 0x90, 0x9d, 0x63, 0xf7, 0x9b, 0xd0, 0xc6, 0x79, 0x86, 0xe0, 0xfd, 0x1a, 0x6e,
0x21, 0x78, 0xdf, 0x9f, 0x0b, 0xde, 0x97, 0x50, 0x60, 0x01, 0x78, 0x6f, 0x96, 0xc1, 0xfb, 0x18,
0x56, 0x2f, 0x9e, 0x44, 0x2e, 0x7e, 0x9f, 0xfc, 0x08, 0x5a, 0x89, 0x15, 0xb2, 0x97, 0xfd, 0x56,
0xf5, 0x9e, 0x55, 0x2d, 0xd1, 0x99, 0xb4, 0xfb, 0x87, 0x1a, 0xbc, 0xaf, 0x05, 0xde, 0xb0, 0x30,
0xe4, 0xea, 0xf2, 0x01, 0x3e, 0x80, 0x26, 0x0b, 0x82, 0x94, 0x4b, 0x99, 0x47, 0xcd, 0x92, 0x3a,
0x3e, 0x6f, 0xd1, 0x00, 0x86, 0xad, 0x45, 0x2d, 0xa5, 0x63, 0xaf, 0x73, 0x87, 0x51, 0x6b, 0x51,
0x5c, 0x6b, 0x1e, 0xe2, 0x6c, 0xd3, 0x3f, 0x71, 0xad, 0x2d, 0xeb, 0xdc, 0x6b, 0x50, 0x60, 0x9e,
0x89, 0x39, 0xa9, 0xa5, 0x13, 0xa6, 0xc6, 0x16, 0x8c, 0xe1, 0x5a, 0xcf, 0x92, 0x59, 0x0b, 0xc7,
0x47, 0x4f, 0xb7, 0xdc, 0xd3, 0xf3, 0x7c, 0xb7, 0x4b, 0xf9, 0xd6, 0xe7, 0xd1, 0x2f, 0x53, 0x9c,
0x4b, 0x6d, 0x6a, 0x08, 0xcc, 0xaa, 0x08, 0x02, 0x1e, 0xd9, 0x81, 0x64, 0xa9, 0xc5, 0xe8, 0xcc,
0x7d, 0x69, 0x2a, 0xac, 0x12, 0x2c, 0x49, 0x3e, 0x83, 0x96, 0xed, 0x79, 0x79, 0xb7, 0xbe, 0x59,
0x8d, 0x7e, 0x45, 0x9e, 0xce, 0x84, 0xdd, 0x3f, 0x39, 0xa6, 0xfc, 0xf7, 0xd9, 0x19, 0x0f, 0x86,
0x36, 0x96, 0xa5, 0x28, 0x3b, 0xd5, 0x28, 0xcf, 0x7b, 0x85, 0xde, 0x82, 0xf6, 0x31, 0x3b, 0x8b,
0xa7, 0xa9, 0x50, 0xdc, 0x06, 0xbf, 0x60, 0xe8, 0x49, 0xe6, 0x8f, 0x99, 0xc0, 0xc7, 0x4f, 0x03,
0x53, 0xd9, 0x44, 0x7a, 0x27, 0xb8, 0xe4, 0xca, 0xde, 0x85, 0xae, 0x41, 0x5f, 0x5e, 0xb9, 0x32,
0x3b, 0x86, 0x37, 0xc2, 0xfa, 0xfc, 0xbd, 0x03, 0x1f, 0xcc, 0xc5, 0x03, 0x0b, 0x2a, 0xe7, 0xfc,
0x74, 0x34, 0x27, 0xa8, 0x4c, 0xc7, 0x6d, 0xb8, 0x33, 0x36, 0x0d, 0xc0, 0x63, 0xa9, 0x3f, 0x16,
0x67, 0xdc, 0x93, 0xd3, 0x24, 0x89, 0x53, 0xe5, 0xf1, 0x88, 0x1d, 0x85, 0x16, 0x0b, 0xb6, 0xe8,
0x2d, 0x2b, 0x36, 0x34, 0x52, 0xfb, 0x46, 0x68, 0xdb, 0xc8, 0xb8, 0x7f, 0x74, 0xcc, 0xe8, 0x38,
0xd0, 0xe8, 0x56, 0xe3, 0x65, 0x9e, 0x5e, 0xf1, 0x3d, 0xf6, 0x25, 0x2c, 0x59, 0x80, 0xac, 0xbf,
0xd3, 0x3b, 0x8f, 0xa1, 0x4a, 0x06, 0x37, 0x0e, 0x0a, 0xe8, 0x4c, 0xad, 0x92, 0xfb, 0x39, 0x74,
0x4a, 0x6c, 0xd2, 0x81, 0xe6, 0xe1, 0xee, 0xf3, 0xdd, 0x57, 0x6f, 0x76, 0xfb, 0xef, 0x69, 0xe2,
0x80, 0x1e, 0xee, 0x1f, 0x6c, 0x6f, 0xf5, 0x1d, 0xf2, 0x3e, 0x2c, 0x1f, 0xee, 0x22, 0xf9, 0xe6,
0x15, 0x3d, 0x78, 0xfa, 0xf3, 0x7e, 0xcd, 0xfd, 0xb6, 0x6e, 0xb0, 0xf4, 0xeb, 0x12, 0x78, 0xb7,
0xc0, 0x66, 0x81, 0xf3, 0x04, 0x1a, 0xc7, 0x69, 0x3c, 0xc9, 0x4b, 0x41, 0xaf, 0xf5, 0x81, 0x54,
0x6c, 0x7b, 0x76, 0x4d, 0xc5, 0xba, 0x34, 0xfc, 0xb1, 0xae, 0xbc, 0xe8, 0x24, 0xc7, 0x31, 0x05,
0x43, 0xa7, 0xc4, 0xa2, 0x3f, 0xd3, 0x4e, 0xed, 0x9b, 0x69, 0xc6, 0x1b, 0xe2, 0xbb, 0x3d, 0xe5,
0x32, 0x89, 0x23, 0x99, 0x5f, 0xcb, 0x19, 0xad, 0x7b, 0x71, 0xca, 0x93, 0x50, 0x18, 0x65, 0x53,
0x22, 0x6d, 0xcb, 0x19, 0x2a, 0xc2, 0xe7, 0x3f, 0x52, 0x5a, 0x18, 0xd9, 0xef, 0x57, 0x23, 0x3b,
0xe7, 0xd4, 0x1b, 0xaf, 0x2f, 0x3c, 0x63, 0xe6, 0x3e, 0x6d, 0x4c, 0x0e, 0xdb, 0xb3, 0x01, 0xfe,
0x33, 0x20, 0x17, 0x35, 0x2f, 0xe4, 0x62, 0x6f, 0x7b, 0x77, 0x6b, 0x67, 0xf7, 0xeb, 0xbe, 0x43,
0xba, 0xd0, 0x1a, 0x8e, 0x46, 0xdb, 0x7b, 0x3a, 0x33, 0x35, 0x4d, 0x6d, 0x6d, 0x8f, 0x5e, 0xec,
0xec, 0x6e, 0x6f, 0xf5, 0xeb, 0x9a, 0x1a, 0x0d, 0x77, 0x47, 0xdb, 0x2f, 0xb6, 0xb7, 0xfa, 0x0d,
0xf7, 0x9f, 0x8e, 0x99, 0xec, 0xa3, 0xca, 0x4b, 0x68, 0x8b, 0xfb, 0x42, 0x2e, 0xfe, 0x17, 0xc4,
0x2d, 0x68, 0xdb, 0x78, 0xee, 0xe4, 0x95, 0x56, 0x30, 0xc8, 0x2f, 0x61, 0x25, 0xb0, 0xfa, 0x5e,
0xa5, 0xf2, 0x1e, 0x9d, 0xc7, 0x48, 0xf3, 0x3e, 0xb9, 0x91, 0x2f, 0x6c, 0x78, 0x7a, 0x41, 0x85,
0x76, 0x1f, 0x42, 0xaf, 0x2a, 0x51, 0x39, 0xec, 0x7b, 0x95, 0xc3, 0x3a, 0xee, 0x77, 0x0e, 0xac,
0x9c, 0xfb, 0xd7, 0xea, 0xe2, 0x69, 0x73, 0x17, 0xba, 0x81, 0x90, 0x49, 0xc8, 0x32, 0xaf, 0xd4,
0x8f, 0x3a, 0x96, 0x87, 0x38, 0xf9, 0x21, 0x90, 0xb2, 0x88, 0x57, 0x46, 0xd9, 0xfd, 0x92, 0x20,
0xb6, 0x93, 0xca, 0xf8, 0x6a, 0xbc, 0xd3, 0xf8, 0x92, 0x00, 0x94, 0xbd, 0xb5, 0x50, 0xaf, 0x3c,
0xd6, 0x9d, 0xea, 0x58, 0x7f, 0x0e, 0x1d, 0xfb, 0xdb, 0xc0, 0x81, 0x9e, 0x3d, 0x35, 0x8c, 0xf3,
0xff, 0x17, 0x1f, 0x19, 0x16, 0xbf, 0x26, 0xbc, 0xb4, 0x3f, 0x26, 0x58, 0xa3, 0x1b, 0x5a, 0x81,
0x96, 0xb5, 0x75, 0x2d, 0xf4, 0xb4, 0x57, 0xa5, 0x2f, 0xff, 0x10, 0x3a, 0xe9, 0x8c, 0xca, 0xa7,
0xc0, 0xf5, 0xc2, 0x7e, 0x21, 0x4a, 0xcb, 0x82, 0x64, 0x13, 0xae, 0xcb, 0xe9, 0x51, 0x3e, 0x49,
0x9e, 0xc9, 0x38, 0x7a, 0x92, 0x29, 0x9e, 0xcf, 0xd7, 0xb9, 0x7b, 0xe4, 0x21, 0xbc, 0x9f, 0x3f,
0xba, 0x0a, 0x05, 0xf3, 0x12, 0xbd, 0xb8, 0x41, 0x3e, 0x85, 0xd5, 0x28, 0x0e, 0xf8, 0x28, 0x8e,
0x8e, 0xc5, 0x49, 0x21, 0x6f, 0x1e, 0xa6, 0xf3, 0xb6, 0x9e, 0x2c, 0xff, 0xa2, 0xb3, 0xf1, 0xc9,
0xe3, 0xdc, 0xf5, 0xa3, 0x25, 0x5c, 0x3d, 0xfa, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0x9e, 0x40,
0xe7, 0x8f, 0xa0, 0x19, 0x00, 0x00,
// 2368 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x19, 0x4d, 0x73, 0x1b, 0x49,
0x75, 0x47, 0x92, 0x2d, 0xe9, 0x49, 0x96, 0x95, 0x76, 0x76, 0xa3, 0xd8, 0xde, 0x8a, 0x33, 0xcb,
0xd6, 0x86, 0xaa, 0xc5, 0xbb, 0x95, 0x00, 0x0b, 0x9b, 0x4d, 0xed, 0x2a, 0xb2, 0xd9, 0x38, 0x1f,
0x8e, 0xab, 0x6d, 0x27, 0x40, 0x51, 0x35, 0xd5, 0x9e, 0x69, 0x5b, 0x8d, 0x47, 0x33, 0xc3, 0x74,
0xcb, 0x41, 0xfc, 0x00, 0x7e, 0x00, 0x17, 0xae, 0x7b, 0xe7, 0x46, 0xd5, 0x72, 0xe2, 0x07, 0x70,
0xe3, 0xc0, 0x85, 0x2a, 0x28, 0x7e, 0x00, 0xbf, 0x82, 0xea, 0xd7, 0x3d, 0x9a, 0x19, 0x59, 0x32,
0x4e, 0x71, 0xe2, 0xe4, 0x79, 0xaf, 0xdf, 0x7b, 0xfd, 0xfa, 0x7d, 0x3f, 0x19, 0x56, 0x12, 0x26,
0x52, 0x11, 0x9d, 0x6d, 0x27, 0x69, 0xac, 0x62, 0xd2, 0xc0, 0x3f, 0x27, 0xe3, 0xd3, 0xf5, 0x35,
0x39, 0x89, 0x7c, 0x4f, 0x72, 0xa5, 0x44, 0x74, 0x26, 0xcd, 0xf1, 0xba, 0xcb, 0x92, 0x24, 0x14,
0x3e, 0x53, 0x22, 0x8e, 0xbc, 0x11, 0x57, 0x2c, 0x60, 0x8a, 0x79, 0x23, 0x2e, 0x25, 0x3b, 0xe3,
0x86, 0xc6, 0x65, 0xb0, 0xf1, 0x13, 0xae, 0xfc, 0xa1, 0x88, 0xce, 0x1e, 0x33, 0xff, 0x9c, 0x07,
0xc7, 0xc9, 0x0e, 0x53, 0x6c, 0x87, 0x2b, 0x26, 0x42, 0x49, 0xee, 0x40, 0x0b, 0x99, 0xa2, 0xf1,
0xe8, 0x84, 0xa7, 0x3d, 0x67, 0xcb, 0xb9, 0xb7, 0x42, 0x41, 0xa3, 0xf6, 0x11, 0x43, 0xee, 0x42,
0x5b, 0xc5, 0x8a, 0x85, 0x19, 0x45, 0x05, 0x29, 0x5a, 0x88, 0x33, 0x24, 0xee, 0xdf, 0x6b, 0xb0,
0xac, 0x65, 0x8f, 0x13, 0x72, 0x13, 0x96, 0xfc, 0x30, 0xf6, 0xcf, 0x51, 0x50, 0x8d, 0x1a, 0x80,
0x74, 0xa0, 0x22, 0x02, 0xe4, 0x6c, 0xd2, 0x8a, 0x08, 0xc8, 0x97, 0xd0, 0xf0, 0xe3, 0x48, 0x31,
0x5f, 0xc9, 0x5e, 0x75, 0xab, 0x7a, 0xaf, 0x75, 0xff, 0x83, 0xed, 0xec, 0xa5, 0xdb, 0x87, 0x93,
0xc8, 0xdf, 0x8b, 0xa4, 0x62, 0x61, 0x88, 0x0f, 0x1b, 0x18, 0xca, 0x57, 0xf7, 0xe9, 0x94, 0x89,
0xfc, 0x18, 0x5a, 0x7e, 0x3c, 0x1a, 0x8d, 0x23, 0xa1, 0x04, 0x97, 0xbd, 0x1a, 0xca, 0xb8, 0x55,
0x96, 0x31, 0xb0, 0x04, 0x13, 0x5a, 0xa4, 0x25, 0x2f, 0x61, 0x35, 0x13, 0x63, 0x6d, 0xd0, 0x5b,
0xda, 0x72, 0xee, 0xb5, 0xee, 0x7f, 0x98, 0xb3, 0x5f, 0x61, 0x30, 0x3a, 0xcb, 0x4d, 0x8e, 0x81,
0x14, 0xe4, 0x67, 0x32, 0x97, 0xdf, 0x46, 0xe6, 0x1c, 0x01, 0xe4, 0x01, 0xd4, 0x93, 0x34, 0x3e,
0x15, 0x21, 0xef, 0xd5, 0x51, 0xd6, 0xed, 0x5c, 0x56, 0x26, 0xe3, 0xc0, 0x10, 0xd0, 0x8c, 0x92,
0xbc, 0x80, 0x8e, 0xfd, 0xcc, 0xf4, 0x68, 0xbc, 0x8d, 0x1e, 0x33, 0xcc, 0xe4, 0x13, 0xa8, 0xdb,
0x88, 0xeb, 0x35, 0x51, 0xce, 0xbb, 0x65, 0x13, 0x1f, 0x9a, 0x43, 0x9a, 0x51, 0x69, 0xe3, 0x66,
0x21, 0x9a, 0x29, 0x00, 0x6f, 0x65, 0xdc, 0x19, 0x6e, 0xf7, 0xcf, 0x35, 0x68, 0xbf, 0x18, 0x87,
0x4a, 0xf4, 0x7d, 0x3f, 0x1e, 0x47, 0x8a, 0x10, 0xa8, 0x45, 0x6c, 0xc4, 0x31, 0xbe, 0x9a, 0x14,
0xbf, 0xc9, 0x26, 0x34, 0x95, 0x18, 0x71, 0xa9, 0xd8, 0x28, 0xc1, 0x28, 0xab, 0xd2, 0x1c, 0xa1,
0x4f, 0x45, 0xc0, 0x23, 0x25, 0xfc, 0x38, 0xea, 0x55, 0x91, 0x2d, 0x47, 0x90, 0xaf, 0x00, 0xfc,
0x38, 0x8c, 0x53, 0x6f, 0xc8, 0xe4, 0xd0, 0x06, 0xd2, 0xdd, 0x5c, 0xd9, 0xe2, 0xdd, 0xdb, 0x83,
0x38, 0x8c, 0xc7, 0xe9, 0x13, 0x26, 0x87, 0xb4, 0x89, 0x4c, 0xfa, 0x93, 0xf4, 0xa0, 0x8e, 0xc0,
0x5e, 0x80, 0x81, 0x54, 0xa5, 0x19, 0x48, 0x3e, 0x82, 0xd5, 0x73, 0x3e, 0xf1, 0x59, 0x1a, 0x78,
0x36, 0xad, 0x31, 0x2c, 0x9a, 0xb4, 0x63, 0xd1, 0x07, 0x06, 0x4b, 0x6e, 0x41, 0xfd, 0x9c, 0x4f,
0xbc, 0xb1, 0x08, 0xd0, 0xd7, 0x4d, 0xba, 0x7c, 0xce, 0x27, 0xc7, 0x22, 0x20, 0x5f, 0xc0, 0xb2,
0x18, 0xb1, 0x33, 0xae, 0xfd, 0xa8, 0x35, 0xfb, 0xce, 0x02, 0xcd, 0xf6, 0xf0, 0x3d, 0x6a, 0xb2,
0xa7, 0x89, 0xa9, 0xe5, 0x59, 0x77, 0x01, 0x72, 0x95, 0x75, 0x6a, 0x8a, 0x28, 0xe0, 0xbf, 0xee,
0x39, 0x5b, 0xd5, 0x7b, 0x55, 0x6a, 0x80, 0xf5, 0x7f, 0x38, 0xb0, 0x52, 0xe2, 0x2e, 0x2a, 0xe3,
0x94, 0x94, 0xc9, 0x4c, 0x5f, 0x29, 0x98, 0xbe, 0x07, 0xf5, 0x84, 0x4d, 0xc2, 0x98, 0x05, 0x68,
0xda, 0x36, 0xcd, 0x40, 0x7d, 0xdd, 0x1b, 0x11, 0x28, 0x6d, 0x53, 0x6d, 0x14, 0x03, 0x90, 0xf7,
0x60, 0x79, 0xc8, 0xc5, 0xd9, 0x50, 0x59, 0x5b, 0x59, 0x88, 0xac, 0x43, 0x43, 0x07, 0x9e, 0x14,
0xbf, 0xe1, 0x68, 0xa3, 0x2a, 0x9d, 0xc2, 0xe4, 0x03, 0x58, 0x49, 0xf1, 0xcb, 0x53, 0x2c, 0x3d,
0xe3, 0x0a, 0x6d, 0x54, 0xa5, 0x6d, 0x83, 0x3c, 0x42, 0x5c, 0x5e, 0x78, 0x1a, 0x85, 0xc2, 0xe3,
0xfe, 0xcd, 0x81, 0xb5, 0xe7, 0xb1, 0xcf, 0x42, 0x6b, 0xe9, 0x03, 0xab, 0xdc, 0x0f, 0xa0, 0x76,
0xce, 0x27, 0x12, 0x4d, 0x51, 0xf2, 0xf7, 0x1c, 0xe2, 0xed, 0x67, 0x7c, 0x42, 0x91, 0x9c, 0x7c,
0x0e, 0xed, 0x91, 0x36, 0x3b, 0x33, 0x66, 0x47, 0x4b, 0xb4, 0xee, 0xbf, 0x37, 0xdf, 0x29, 0xb4,
0x44, 0xab, 0x5f, 0x98, 0x30, 0x29, 0xdf, 0xc4, 0x69, 0x60, 0xa3, 0x70, 0x0a, 0xaf, 0x7f, 0x0f,
0xaa, 0xcf, 0xf8, 0x64, 0x6e, 0x6c, 0x13, 0xa8, 0xe9, 0x62, 0x8c, 0x57, 0xb5, 0x29, 0x7e, 0xbb,
0xbf, 0x75, 0xa0, 0xab, 0x75, 0x2c, 0x56, 0xc9, 0x05, 0x95, 0xf7, 0x23, 0x58, 0x15, 0x05, 0x2a,
0x6f, 0x5a, 0x86, 0x3b, 0x45, 0xf4, 0x5e, 0x80, 0x7d, 0x80, 0x5f, 0x08, 0x9f, 0x7b, 0x6a, 0x92,
0x70, 0xab, 0x21, 0x18, 0xd4, 0xd1, 0x24, 0xe1, 0x53, 0xe5, 0x6a, 0xb9, 0x72, 0xee, 0xbf, 0x1d,
0xb8, 0xb5, 0xa0, 0x5c, 0x5f, 0xb3, 0x13, 0x7c, 0x00, 0x2b, 0xb6, 0xe6, 0x78, 0x18, 0xb4, 0xf6,
0xe2, 0xb6, 0x45, 0x9a, 0x88, 0xbc, 0x0d, 0x0d, 0x1e, 0x49, 0xaf, 0x70, 0x7d, 0x9d, 0x47, 0x72,
0x5f, 0x9b, 0xe7, 0x2e, 0xb4, 0x43, 0x26, 0x95, 0x37, 0x4e, 0x02, 0xa6, 0xb8, 0xc9, 0xc0, 0x1a,
0x6d, 0x69, 0xdc, 0xb1, 0x41, 0xe9, 0x97, 0xc9, 0x89, 0x54, 0x7c, 0xe4, 0x29, 0x76, 0xa6, 0x0b,
0x73, 0x55, 0xbf, 0xcc, 0xa0, 0x8e, 0xd8, 0x99, 0x24, 0x1f, 0x42, 0x27, 0xd4, 0x6e, 0xf7, 0x22,
0xe1, 0x9f, 0xe3, 0x25, 0x26, 0x09, 0x57, 0x10, 0xbb, 0x6f, 0x91, 0xee, 0xbf, 0x96, 0xe0, 0xf6,
0xc2, 0xde, 0x44, 0x3e, 0x85, 0x9b, 0x45, 0x45, 0x3c, 0xe4, 0x0d, 0x27, 0xf6, 0xf5, 0xa4, 0xa0,
0xd0, 0x73, 0x73, 0xf2, 0x7f, 0x6c, 0x0a, 0xed, 0x5b, 0x16, 0x04, 0x3c, 0xc0, 0xae, 0xd0, 0xa0,
0x06, 0xd0, 0xb5, 0xe0, 0x44, 0x3b, 0x99, 0x07, 0x58, 0xf4, 0x1b, 0x34, 0x03, 0x35, 0xfd, 0x68,
0xac, 0x75, 0x6a, 0x19, 0x7a, 0x04, 0x34, 0x7d, 0xca, 0x47, 0xf1, 0x05, 0x0f, 0x7a, 0x6d, 0x43,
0x6f, 0x41, 0xb2, 0x05, 0xed, 0x21, 0x93, 0x1e, 0x8a, 0xf5, 0xc6, 0xb2, 0xb7, 0x82, 0xc7, 0x30,
0x64, 0xb2, 0xaf, 0x51, 0xc7, 0xba, 0x33, 0xad, 0x5d, 0xf0, 0x54, 0x9c, 0x66, 0xc3, 0x8f, 0x54,
0x4c, 0x8d, 0x65, 0xaf, 0x83, 0x95, 0x81, 0x14, 0x8f, 0x0e, 0xf1, 0x04, 0xc7, 0x98, 0x74, 0x2c,
0x55, 0x46, 0xb9, 0x8a, 0x94, 0x2d, 0xc4, 0x59, 0x92, 0x47, 0xb0, 0x61, 0x7b, 0xbb, 0x97, 0xf2,
0x5f, 0x8d, 0xb9, 0x54, 0xc6, 0x8b, 0xc8, 0xc2, 0x7b, 0x5d, 0xe4, 0xe8, 0x59, 0x12, 0x6a, 0x28,
0xd0, 0x99, 0x9a, 0x9f, 0x2f, 0x66, 0x37, 0x69, 0x70, 0x63, 0x21, 0xfb, 0x00, 0x33, 0xe3, 0x4b,
0xd8, 0x9c, 0x65, 0xd7, 0xe6, 0x50, 0xdc, 0x5e, 0x4f, 0x90, 0xff, 0x76, 0x99, 0x9f, 0x22, 0x85,
0xb9, 0x7f, 0xb1, 0x00, 0xa3, 0xc0, 0xda, 0x62, 0x01, 0xa8, 0x81, 0xfb, 0xe6, 0x72, 0x32, 0x67,
0x5d, 0x77, 0x7e, 0x32, 0x5f, 0x8a, 0xd8, 0xca, 0x9c, 0x88, 0x9d, 0x0d, 0xcb, 0xea, 0xa5, 0xb0,
0x74, 0x1f, 0xc3, 0xfa, 0xec, 0xc5, 0x07, 0xe3, 0x93, 0x50, 0xf8, 0x83, 0x21, 0xbb, 0x66, 0x21,
0x71, 0xbf, 0xad, 0xc2, 0x4a, 0x69, 0xea, 0xfb, 0xaf, 0x7c, 0x6d, 0xcc, 0xba, 0x3b, 0xd0, 0x4a,
0x52, 0x71, 0xc1, 0x14, 0xf7, 0xce, 0xf9, 0xc4, 0x36, 0x31, 0xb0, 0x28, 0x5d, 0x94, 0xb7, 0x74,
0x61, 0x94, 0x7e, 0x2a, 0x12, 0xad, 0x17, 0x26, 0x5d, 0x9b, 0x16, 0x51, 0xba, 0xa7, 0xfd, 0x32,
0x16, 0x91, 0x4d, 0xb9, 0x06, 0xb5, 0x90, 0xae, 0xf8, 0x26, 0x10, 0x79, 0x80, 0x3d, 0xad, 0x41,
0xa7, 0x70, 0x9e, 0x11, 0xf5, 0x62, 0x46, 0xbc, 0x84, 0xae, 0x75, 0x9d, 0xf4, 0x54, 0xec, 0x69,
0x39, 0xb6, 0xf1, 0x7f, 0xb8, 0x68, 0xb6, 0xb5, 0xe4, 0x47, 0xf1, 0xd3, 0x58, 0x44, 0xb4, 0x93,
0x96, 0x60, 0xf2, 0x10, 0x1a, 0xd9, 0x44, 0x65, 0x27, 0xb8, 0x3b, 0x0b, 0x04, 0xd9, 0x51, 0x4e,
0xd2, 0x29, 0x83, 0x1e, 0x9c, 0x78, 0xe4, 0xa7, 0x93, 0x44, 0x4d, 0x33, 0x3a, 0x47, 0xe8, 0x53,
0x99, 0x70, 0x5f, 0xb1, 0x3c, 0xaf, 0x73, 0x84, 0xee, 0x3b, 0x96, 0x54, 0x67, 0x27, 0xf6, 0xda,
0x36, 0x5a, 0xae, 0x93, 0xa3, 0x9f, 0xf1, 0x89, 0x74, 0xff, 0xea, 0xc0, 0xc6, 0x15, 0x2f, 0xb2,
0xfe, 0x72, 0xa6, 0xfe, 0x7a, 0x1f, 0x20, 0xc1, 0xd8, 0x40, 0x77, 0x19, 0xff, 0x37, 0x0d, 0x46,
0x7b, 0x6b, 0xea, 0xf4, 0x6a, 0xd1, 0xe9, 0x57, 0x54, 0xcd, 0x5b, 0x50, 0xf7, 0x87, 0x4c, 0xe9,
0xc6, 0xb8, 0x64, 0xa6, 0x1d, 0x0d, 0xee, 0x05, 0x3a, 0x6e, 0xb3, 0xa9, 0x7c, 0xa2, 0x4f, 0x97,
0x8d, 0xe3, 0xa7, 0xb8, 0x3d, 0x74, 0xa2, 0xc9, 0xcd, 0xba, 0xb9, 0x0c, 0x01, 0xf7, 0x77, 0x15,
0xe8, 0xce, 0x86, 0x33, 0x79, 0x54, 0xd8, 0x78, 0x2e, 0x0d, 0x1d, 0x0b, 0xba, 0x4a, 0x61, 0xdf,
0xf9, 0x1a, 0xda, 0xf6, 0xd5, 0x5a, 0x3b, 0xd9, 0xab, 0xcc, 0x4e, 0x83, 0x8b, 0xf3, 0x87, 0xb6,
0x92, 0xe9, 0xb7, 0x24, 0x0f, 0xa1, 0x9e, 0x0d, 0x2f, 0x55, 0x8c, 0x87, 0x2b, 0xd4, 0xc8, 0xe6,
0x98, 0x8c, 0xe3, 0x7f, 0xd8, 0xba, 0xdc, 0xcf, 0x60, 0x15, 0x4f, 0xb5, 0x42, 0xb6, 0xc8, 0x5f,
0x2f, 0xaf, 0xbf, 0x80, 0x9b, 0x19, 0xe3, 0x0b, 0xb3, 0xd7, 0x4a, 0xca, 0xd9, 0x75, 0xb9, 0xbf,
0x82, 0xf7, 0x34, 0x77, 0xdf, 0x57, 0xe2, 0x42, 0xa8, 0xc9, 0x80, 0x47, 0x8a, 0xa7, 0x57, 0xf0,
0x77, 0xa1, 0x2a, 0x02, 0x63, 0xde, 0x36, 0xd5, 0x9f, 0xee, 0x8e, 0xa9, 0x4d, 0x65, 0x09, 0x7d,
0xdf, 0xe7, 0x98, 0x04, 0xd7, 0x95, 0xb2, 0x6b, 0x82, 0xbc, 0x2c, 0x65, 0x47, 0xc8, 0x91, 0x90,
0xf2, 0x2d, 0xc4, 0x7c, 0xe3, 0x40, 0x5b, 0xcb, 0x79, 0x1c, 0xc7, 0xe7, 0x23, 0x96, 0x9e, 0x2f,
0x66, 0x1c, 0xa7, 0xa1, 0x35, 0x83, 0xfe, 0x9c, 0x0e, 0x6f, 0xd5, 0xc2, 0x64, 0xb9, 0x01, 0x4d,
0xac, 0xda, 0x9e, 0xa6, 0x35, 0x59, 0xd1, 0x40, 0xc4, 0x71, 0x1a, 0x16, 0x7b, 0xf3, 0x52, 0xb9,
0x37, 0xbf, 0x0f, 0x10, 0xf0, 0x90, 0xeb, 0x19, 0x87, 0x29, 0xcc, 0x8a, 0x1a, 0x6d, 0x5a, 0x4c,
0x5f, 0xb9, 0x4f, 0x4d, 0xf0, 0x0f, 0x42, 0xce, 0xd2, 0x27, 0x42, 0xaa, 0x38, 0x9d, 0x14, 0x73,
0xcc, 0x29, 0xe5, 0xd8, 0xfb, 0x00, 0xbe, 0x26, 0x34, 0xb2, 0x2a, 0x46, 0x96, 0xc5, 0xf4, 0x95,
0xfb, 0x17, 0x07, 0x88, 0x16, 0x66, 0xd7, 0xdc, 0x03, 0xe1, 0xab, 0x71, 0xca, 0xe7, 0x8e, 0xc9,
0x85, 0x3d, 0xa4, 0xb2, 0x60, 0x0f, 0xa9, 0xe2, 0x0f, 0x17, 0x97, 0xf6, 0x90, 0x1a, 0xa2, 0xb3,
0x3d, 0x64, 0x03, 0x9a, 0xd8, 0xcf, 0x70, 0x11, 0x59, 0xc2, 0x23, 0x5c, 0x44, 0x0e, 0xe7, 0x2e,
0x22, 0xcb, 0x48, 0xb0, 0x60, 0x11, 0xa9, 0x17, 0x17, 0x91, 0x21, 0xac, 0x5d, 0x7e, 0x89, 0x5c,
0xbc, 0x6b, 0xfd, 0x08, 0x1a, 0x89, 0x25, 0xb2, 0xc9, 0xbe, 0x59, 0xce, 0xb3, 0xb2, 0x24, 0x3a,
0xa5, 0x76, 0xff, 0x50, 0x81, 0x1b, 0x9a, 0xe0, 0x35, 0x0b, 0x43, 0xae, 0xae, 0x6e, 0xe0, 0x3d,
0xa8, 0xb3, 0x20, 0x48, 0xb9, 0x94, 0x99, 0xd5, 0x2c, 0xa8, 0xed, 0xf3, 0x06, 0x05, 0xa0, 0xd9,
0x1a, 0xd4, 0x42, 0xda, 0xf6, 0xda, 0x77, 0x68, 0xb5, 0x06, 0xc5, 0x6f, 0x8d, 0xc3, 0x9d, 0xc1,
0xd4, 0x4f, 0xfc, 0xd6, 0x92, 0xb5, 0xef, 0xf5, 0x50, 0x60, 0x56, 0xde, 0x0c, 0xd4, 0xd4, 0x09,
0x53, 0x43, 0x3b, 0x58, 0xe2, 0xb7, 0xee, 0x25, 0xd3, 0x12, 0x8e, 0x0b, 0x5c, 0xbb, 0x58, 0xd3,
0x33, 0x7f, 0x37, 0x0b, 0xfe, 0xd6, 0xef, 0xd1, 0x5b, 0x36, 0xf6, 0xa5, 0x26, 0x35, 0x00, 0x7a,
0x55, 0x04, 0x01, 0x8f, 0x6c, 0x43, 0xb2, 0xd0, 0xe2, 0x49, 0xd3, 0x7d, 0x61, 0x22, 0xac, 0x64,
0x2c, 0x49, 0x3e, 0x83, 0x86, 0xad, 0x79, 0x59, 0xb5, 0xde, 0x28, 0x5b, 0xbf, 0x44, 0x4f, 0xa7,
0xc4, 0xee, 0x9f, 0x1c, 0x13, 0xfe, 0x87, 0xec, 0x82, 0x07, 0x7d, 0x6b, 0xcb, 0x82, 0x95, 0x9d,
0xb2, 0x95, 0xe7, 0x6d, 0xd4, 0x9b, 0xd0, 0x3c, 0x65, 0x17, 0xf1, 0x38, 0x15, 0x8a, 0x5b, 0xe3,
0xe7, 0x08, 0xdd, 0xc9, 0xfc, 0x21, 0x13, 0xb8, 0xc8, 0xd5, 0xd0, 0x95, 0x75, 0x84, 0xf7, 0x82,
0x2b, 0x52, 0xf6, 0x2e, 0xb4, 0xcd, 0xf4, 0xe5, 0x15, 0x23, 0xb3, 0x65, 0x70, 0x66, 0xf6, 0xfb,
0xbd, 0x03, 0xef, 0xce, 0x9d, 0x07, 0x16, 0x44, 0xce, 0x6c, 0x77, 0x34, 0x2f, 0x28, 0x75, 0xc7,
0x5d, 0xb8, 0x33, 0x34, 0x05, 0xc0, 0x63, 0xa9, 0x3f, 0x14, 0x17, 0xdc, 0x93, 0xe3, 0x24, 0x89,
0x53, 0xe5, 0xf1, 0x88, 0x9d, 0x84, 0x76, 0x16, 0x6c, 0xd0, 0x4d, 0x4b, 0xd6, 0x37, 0x54, 0x87,
0x86, 0x68, 0xd7, 0xd0, 0xb8, 0x7f, 0x74, 0x4c, 0xeb, 0x38, 0xd2, 0x93, 0xba, 0x9e, 0xfd, 0x79,
0x7a, 0xcd, 0xdd, 0xf2, 0x11, 0x2c, 0xdb, 0x61, 0x5f, 0xdf, 0xd3, 0x99, 0x9d, 0xa1, 0x0a, 0x02,
0xb7, 0x8f, 0xf2, 0x35, 0x80, 0x5a, 0x26, 0xf7, 0x73, 0x68, 0x15, 0xd0, 0xa4, 0x05, 0xf5, 0xe3,
0xfd, 0x67, 0xfb, 0x2f, 0x5f, 0xef, 0x77, 0xdf, 0xd1, 0xc0, 0x11, 0x3d, 0x3e, 0x3c, 0xda, 0xdd,
0xe9, 0x3a, 0xe4, 0x06, 0xac, 0x1c, 0xef, 0x23, 0xf8, 0xfa, 0x25, 0x3d, 0x7a, 0xf2, 0xb3, 0x6e,
0xc5, 0xfd, 0xa6, 0x6a, 0x66, 0xe9, 0x57, 0x85, 0x45, 0xc4, 0x0e, 0x36, 0x0b, 0x94, 0x27, 0x50,
0x3b, 0x4d, 0xe3, 0x51, 0x16, 0x0a, 0xfa, 0x5b, 0x3f, 0x48, 0xc5, 0xb6, 0x66, 0x57, 0x54, 0xac,
0x43, 0xc3, 0x1f, 0xea, 0xc8, 0x8b, 0xce, 0xb2, 0x39, 0x26, 0x47, 0x68, 0x97, 0xd8, 0xe9, 0xcf,
0x94, 0x53, 0xbb, 0xff, 0x4d, 0x71, 0x7d, 0xfc, 0x0d, 0x22, 0xe5, 0x32, 0x89, 0x23, 0x99, 0xa5,
0xe5, 0x14, 0xd6, 0xb5, 0x38, 0xe5, 0x49, 0x28, 0x0c, 0xb3, 0x09, 0x91, 0xa6, 0xc5, 0xf4, 0x15,
0xe1, 0xf3, 0x17, 0xae, 0x06, 0x5a, 0xf6, 0xfb, 0x65, 0xcb, 0xce, 0x79, 0xf5, 0xf6, 0xab, 0x4b,
0x2b, 0xd9, 0xdc, 0x35, 0xcd, 0xf8, 0xb0, 0x39, 0x6d, 0xe0, 0x3f, 0x05, 0x72, 0x99, 0xf3, 0x92,
0x2f, 0x0e, 0x76, 0xf7, 0x77, 0xf6, 0xf6, 0xbf, 0xee, 0x3a, 0xa4, 0x0d, 0x8d, 0xfe, 0x60, 0xb0,
0x7b, 0xa0, 0x3d, 0x53, 0xd1, 0xd0, 0xce, 0xee, 0xe0, 0xf9, 0xde, 0xfe, 0xee, 0x4e, 0xb7, 0xaa,
0xa1, 0x41, 0x7f, 0x7f, 0xb0, 0xfb, 0x7c, 0x77, 0xa7, 0x5b, 0x73, 0xff, 0xe9, 0x98, 0xce, 0x3e,
0x28, 0xed, 0x43, 0x3b, 0xdc, 0x17, 0x72, 0xf1, 0xcf, 0x29, 0x9b, 0xd0, 0xb4, 0xf6, 0xdc, 0xcb,
0x22, 0x2d, 0x47, 0x90, 0x5f, 0xc0, 0x6a, 0x60, 0xf9, 0xbd, 0x52, 0xe4, 0x3d, 0x98, 0x9d, 0x91,
0xe6, 0x5d, 0xb9, 0x9d, 0x7d, 0x58, 0xf3, 0x74, 0x82, 0x12, 0xec, 0x7e, 0x0c, 0x9d, 0x32, 0x45,
0xe9, 0xb1, 0xef, 0x94, 0x1e, 0xeb, 0xb8, 0xdf, 0x3a, 0xb0, 0x3a, 0xf3, 0x33, 0xf1, 0xe2, 0x6e,
0x73, 0x17, 0xda, 0x81, 0x90, 0x49, 0xc8, 0x26, 0x5e, 0xa1, 0x1e, 0xb5, 0x2c, 0x0e, 0xe7, 0xe4,
0x8f, 0x81, 0x14, 0x49, 0xbc, 0xe2, 0x94, 0xdd, 0x2d, 0x10, 0x9a, 0x65, 0xb6, 0xd8, 0xbe, 0x6a,
0x6f, 0xd5, 0xbe, 0x24, 0x00, 0x65, 0x6f, 0xec, 0xa8, 0x57, 0x6c, 0xeb, 0x4e, 0xb9, 0xad, 0x3f,
0x83, 0x96, 0xfd, 0x3f, 0xc7, 0x91, 0xee, 0x3d, 0x15, 0xb4, 0xf3, 0x77, 0xf3, 0x4b, 0xfa, 0xf9,
0x7f, 0x46, 0x5e, 0xd8, 0x7f, 0x8c, 0x58, 0xa1, 0xdb, 0x9a, 0x81, 0x16, 0xb9, 0x75, 0x2c, 0x74,
0xb4, 0x56, 0x85, 0x9b, 0x7f, 0x08, 0xad, 0x74, 0x0a, 0x65, 0x5d, 0xe0, 0x66, 0x2e, 0x3f, 0x27,
0xa5, 0x45, 0x42, 0x72, 0x1f, 0x6e, 0xca, 0xf1, 0x49, 0xd6, 0x49, 0x9e, 0xca, 0x38, 0x7a, 0x3c,
0x51, 0x3c, 0xeb, 0xaf, 0x73, 0xcf, 0xc8, 0xc7, 0x70, 0x23, 0x5b, 0xba, 0x72, 0x06, 0xb3, 0x89,
0x5e, 0x3e, 0x20, 0x9f, 0xc2, 0x5a, 0x14, 0x07, 0x7c, 0x10, 0x47, 0xa7, 0xe2, 0x2c, 0xa7, 0x37,
0x8b, 0xe9, 0xbc, 0xa3, 0xc7, 0x2b, 0x3f, 0x6f, 0x6d, 0x7f, 0xf2, 0x30, 0x53, 0xfd, 0x64, 0x19,
0xbf, 0x1e, 0xfc, 0x27, 0x00, 0x00, 0xff, 0xff, 0x86, 0x34, 0x55, 0x7f, 0x6c, 0x1a, 0x00, 0x00,
}

View file

@ -97,7 +97,10 @@ message SyncInstallationContactV2 {
bool has_added_us = 13;
int64 verification_status = 14;
int64 trust_status = 15;
int64 contact_request_state = 16;
int64 contact_request_local_state = 16;
int64 contact_request_local_clock = 17;
int64 contact_request_remote_state = 18;
int64 contact_request_remote_clock = 19;
}
message SyncInstallationAccount {

View file

@ -55,16 +55,16 @@ func (StatusUpdate_StatusType) EnumDescriptor() ([]byte, []int) {
}
// Specs:
// :AUTOMATIC
// To Send - "AUTOMATIC" status ping every 5 minutes
// Display - Online for up to 5 minutes from the last clock, after that Offline
// :ALWAYS_ONLINE
// To Send - "ALWAYS_ONLINE" status ping every 5 minutes
// Display - Online for up to 2 weeks from the last clock, after that Offline
// :INACTIVE
// To Send - A single "INACTIVE" status ping
// Display - Offline forever
// Note: Only send pings if the user interacted with the app in the last x minutes.
//:AUTOMATIC
//To Send - "AUTOMATIC" status ping every 5 minutes
//Display - Online for up to 5 minutes from the last clock, after that Offline
//:ALWAYS_ONLINE
//To Send - "ALWAYS_ONLINE" status ping every 5 minutes
//Display - Online for up to 2 weeks from the last clock, after that Offline
//:INACTIVE
//To Send - A single "INACTIVE" status ping
//Display - Offline forever
//Note: Only send pings if the user interacted with the app in the last x minutes.
type StatusUpdate struct {
Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"`
StatusType StatusUpdate_StatusType `protobuf:"varint,2,opt,name=status_type,json=statusType,proto3,enum=protobuf.StatusUpdate_StatusType" json:"status_type,omitempty"`

View file

@ -85,7 +85,6 @@ type SyncSetting struct {
Type SyncSetting_Type `protobuf:"varint,1,opt,name=type,proto3,enum=protobuf.SyncSetting_Type" json:"type,omitempty"`
Clock uint64 `protobuf:"varint,2,opt,name=clock,proto3" json:"clock,omitempty"`
// Types that are valid to be assigned to Value:
//
// *SyncSetting_ValueString
// *SyncSetting_ValueBytes
// *SyncSetting_ValueBool

View file

@ -295,9 +295,9 @@ func (s *MessengerPushNotificationSuite) TestReceivePushNotificationFromContactO
// Add alice has a contact
aliceContact := &Contact{
ID: types.EncodeHex(crypto.FromECDSAPub(&alice.identity.PublicKey)),
EnsName: "Some Contact",
Added: true,
ID: types.EncodeHex(crypto.FromECDSAPub(&alice.identity.PublicKey)),
EnsName: "Some Contact",
ContactRequestLocalState: ContactRequestStateSent,
}
_, err = bob.AddContact(context.Background(), &requests.AddContact{ID: types.Hex2Bytes(aliceContact.ID)})
@ -441,9 +441,9 @@ func (s *MessengerPushNotificationSuite) TestReceivePushNotificationRetries() {
// Add alice has a contact
aliceContact := &Contact{
ID: types.EncodeHex(crypto.FromECDSAPub(&alice.identity.PublicKey)),
EnsName: "Some Contact",
Added: true,
ID: types.EncodeHex(crypto.FromECDSAPub(&alice.identity.PublicKey)),
EnsName: "Some Contact",
ContactRequestLocalState: ContactRequestStateSent,
}
_, err = bob.AddContact(context.Background(), &requests.AddContact{ID: types.Hex2Bytes(aliceContact.ID)})
@ -451,9 +451,9 @@ func (s *MessengerPushNotificationSuite) TestReceivePushNotificationRetries() {
// Add frank has a contact
frankContact := &Contact{
ID: types.EncodeHex(crypto.FromECDSAPub(&frank.identity.PublicKey)),
EnsName: "Some Contact",
Added: true,
ID: types.EncodeHex(crypto.FromECDSAPub(&frank.identity.PublicKey)),
EnsName: "Some Contact",
ContactRequestLocalState: ContactRequestStateSent,
}
_, err = bob.AddContact(context.Background(), &requests.AddContact{ID: types.Hex2Bytes(frankContact.ID)})

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(1673964300, 0)}
info := bindataFileInfo{name: "1593601729_initial_schema.down.sql", size: 144, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "1593601729_initial_schema.up.sql", size: 1773, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "1597909626_add_server_type.down.sql", size: 0, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "1597909626_add_server_type.up.sql", size: 145, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "1599053776_add_chat_id_and_type.down.sql", size: 0, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "1599053776_add_chat_id_and_type.up.sql", size: 264, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "doc.go", size: 382, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "1593601728_initial_schema.down.sql", size: 200, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "1593601728_initial_schema.up.sql", size: 675, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "1598419937_add_push_notifications_table.down.sql", size: 51, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "1598419937_add_push_notifications_table.up.sql", size: 104, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "doc.go", size: 382, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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

@ -1,21 +0,0 @@
package requests
import (
"errors"
"github.com/status-im/status-go/eth-node/types"
)
var ErrRejectContactRequestInvalidID = errors.New("reject-contact-request: invalid id")
type RejectContactRequest struct {
ID types.HexBytes `json:"id"`
}
func (a *RejectContactRequest) Validate() error {
if len(a.ID) == 0 {
return ErrRejectContactRequestInvalidID
}
return 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(1673964300, 0)}
info := bindataFileInfo{name: "1561059284_add_waku_keys.down.sql", size: 22, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "1561059284_add_waku_keys.up.sql", size: 109, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "1616691080_add_wakuV2_keys.down.sql", size: 24, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "1616691080_add_wakuV2_keys.up.sql", size: 111, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "1634723014_add_wakuV2_keys.up.sql", size: 125, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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(1673964300, 0)}
info := bindataFileInfo{name: "doc.go", size: 373, mode: os.FileMode(0644), modTime: time.Unix(1652264632, 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

@ -719,10 +719,6 @@ func (api *PublicAPI) RetractContactRequest(ctx context.Context, request *reques
return api.service.messenger.RetractContactRequest(request)
}
func (api *PublicAPI) RejectContactRequest(ctx context.Context, request *requests.RejectContactRequest) (*protocol.MessengerResponse, error) {
return api.service.messenger.RejectContactRequest(ctx, request)
}
func (api *PublicAPI) DismissContactRequest(ctx context.Context, request *requests.DismissContactRequest) (*protocol.MessengerResponse, error) {
return api.service.messenger.DismissContactRequest(ctx, request)
}

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(1673964300, 0)}
info := bindataFileInfo{name: "emojis.txt", size: 28134, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "../config/README.md", size: 3031, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "../config/cli/anon-metric-node-client.json", size: 857, mode: os.FileMode(0644), modTime: time.Unix(1648117578, 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(1673964300, 0)}
info := bindataFileInfo{name: "../config/cli/anon-metric-node-server.json", size: 696, mode: os.FileMode(0644), modTime: time.Unix(1648117578, 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(1673964300, 0)}
info := bindataFileInfo{name: "../config/cli/fleet-eth.prod.json", size: 4470, mode: os.FileMode(0644), modTime: time.Unix(1648117578, 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(1673964300, 0)}
info := bindataFileInfo{name: "../config/cli/fleet-eth.staging.json", size: 2145, mode: os.FileMode(0644), modTime: time.Unix(1648117578, 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(1673964300, 0)}
info := bindataFileInfo{name: "../config/cli/fleet-eth.test.json", size: 2174, mode: os.FileMode(0644), modTime: time.Unix(1648117578, 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(1673964300, 0)}
info := bindataFileInfo{name: "../config/cli/fleet-status.prod.json", size: 1920, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "../config/cli/fleet-status.test.json", size: 937, mode: os.FileMode(0644), modTime: time.Unix(1650884918, 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(1673964300, 0)}
info := bindataFileInfo{name: "../config/cli/fleet-wakuv2.prod.json", size: 747, mode: os.FileMode(0644), modTime: time.Unix(1648117578, 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(1673964300, 0)}
info := bindataFileInfo{name: "../config/cli/fleet-wakuv2.test.json", size: 748, mode: os.FileMode(0644), modTime: time.Unix(1648117578, 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(1673964300, 0)}
info := bindataFileInfo{name: "../config/cli/les-enabled.json", size: 58, mode: os.FileMode(0644), modTime: time.Unix(1648117578, 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(1673964300, 0)}
info := bindataFileInfo{name: "../config/cli/mailserver-enabled.json", size: 176, mode: os.FileMode(0644), modTime: time.Unix(1648117578, 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(1673964300, 0)}
info := bindataFileInfo{name: "../config/status-chain-genesis.json", size: 612, mode: os.FileMode(0644), modTime: time.Unix(1648117578, 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(1673964300, 0)}
info := bindataFileInfo{name: "keys/bootnode.key", size: 65, mode: os.FileMode(0644), modTime: time.Unix(1648117579, 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(1673964300, 0)}
info := bindataFileInfo{name: "keys/firebaseauthkey", size: 153, mode: os.FileMode(0644), modTime: time.Unix(1648117579, 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(1673964300, 0)}
info := bindataFileInfo{name: "keys/test-account1-status-chain.pk", size: 489, mode: os.FileMode(0644), modTime: time.Unix(1648117579, 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(1673964300, 0)}
info := bindataFileInfo{name: "keys/test-account1.pk", size: 491, mode: os.FileMode(0644), modTime: time.Unix(1648117579, 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(1673964300, 0)}
info := bindataFileInfo{name: "keys/test-account2-status-chain.pk", size: 489, mode: os.FileMode(0644), modTime: time.Unix(1648117579, 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(1673964300, 0)}
info := bindataFileInfo{name: "keys/test-account2.pk", size: 491, mode: os.FileMode(0644), modTime: time.Unix(1648117579, 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(1673964300, 0)}
info := bindataFileInfo{name: "keys/test-account3-before-eip55.pk", size: 489, mode: os.FileMode(0644), modTime: time.Unix(1648117579, 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(1673964300, 0)}
info := bindataFileInfo{name: "config/public-chain-accounts.json", size: 307, mode: os.FileMode(0644), modTime: time.Unix(1648117579, 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(1673964300, 0)}
info := bindataFileInfo{name: "config/status-chain-accounts.json", size: 543, mode: os.FileMode(0644), modTime: time.Unix(1648117579, 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(1673964300, 0)}
info := bindataFileInfo{name: "config/test-data.json", size: 84, mode: os.FileMode(0644), modTime: time.Unix(1648117579, 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
}