diff --git a/VERSION b/VERSION index 52afba835..5fea17685 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.112.1 +0.113.0 diff --git a/appdatabase/migrations/bindata.go b/appdatabase/migrations/bindata.go index d84e8cd6a..ea46d4ab3 100644 --- a/appdatabase/migrations/bindata.go +++ b/appdatabase/migrations/bindata.go @@ -121,7 +121,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(1661332898, 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 } @@ -141,7 +141,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(1661332898, 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 } @@ -161,7 +161,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(1661332898, 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 } @@ -181,7 +181,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(1661332898, 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 } @@ -201,7 +201,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(1661332898, 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 } @@ -221,7 +221,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(1661332898, 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 } @@ -241,7 +241,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(1661332898, 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 } @@ -261,7 +261,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(1661332898, 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 } @@ -281,7 +281,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(1661332898, 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 } @@ -301,7 +301,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(1661332898, 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 } @@ -321,7 +321,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(1661332898, 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 } @@ -341,7 +341,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(1661332898, 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 } @@ -361,7 +361,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(1661332898, 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 } @@ -381,7 +381,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(1661332898, 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 } @@ -401,7 +401,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(1661332898, 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 } @@ -421,7 +421,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(1661332898, 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 } @@ -441,7 +441,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(1661332898, 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 } @@ -461,7 +461,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(1661332898, 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 } @@ -481,7 +481,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(1661332898, 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 } @@ -501,7 +501,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(1661332898, 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 } @@ -521,7 +521,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(1661332898, 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 } @@ -541,7 +541,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(1661332898, 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 } @@ -561,7 +561,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(1661332898, 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 } @@ -581,7 +581,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(1661332898, 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 } @@ -601,7 +601,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(1661332898, 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 } @@ -621,7 +621,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(1661332898, 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 } @@ -641,7 +641,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(1664380759, 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 } @@ -661,7 +661,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(1664380759, 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 } @@ -681,7 +681,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(1664380759, 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 } @@ -701,7 +701,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(1664380759, 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 } @@ -721,7 +721,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(1664380759, 0)} + info := bindataFileInfo{name: "1662365868_add_key_uid_accounts.up.sql", size: 68, mode: os.FileMode(0644), modTime: time.Unix(1666081963, 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 } @@ -741,7 +741,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(1664380759, 0)} + info := bindataFileInfo{name: "1662447680_add_keypairs_table.up.sql", size: 218, mode: os.FileMode(0644), modTime: time.Unix(1666192022, 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 } @@ -761,7 +761,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(1664380759, 0)} + info := bindataFileInfo{name: "1662460056_move_favourites_to_saved_addresses.up.sql", size: 233, mode: os.FileMode(0644), modTime: time.Unix(1666081963, 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 } @@ -781,7 +781,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(1664380759, 0)} + info := bindataFileInfo{name: "1662738097_add_base_fee_transaction.up.sql", size: 112, mode: os.FileMode(0644), modTime: time.Unix(1666081963, 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 } @@ -801,7 +801,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(1664380759, 0)} + info := bindataFileInfo{name: "1662972194_add_keypairs_table.up.sql", size: 345, mode: os.FileMode(0644), modTime: time.Unix(1666192022, 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 } @@ -821,7 +821,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(1664788444, 0)} + info := bindataFileInfo{name: "1664392661_add_third_party_id_to_waku_messages.up.sql", size: 70, mode: os.FileMode(0644), modTime: time.Unix(1666195802, 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 } @@ -841,7 +841,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(1665488554, 0)} + info := bindataFileInfo{name: "1664783660_add_sync_info_to_saved_addresses.up.sql", size: 388, mode: os.FileMode(0644), modTime: time.Unix(1666357469, 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 } @@ -861,7 +861,7 @@ func docGo() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "doc.go", size: 74, mode: os.FileMode(0644), modTime: time.Unix(1661332898, 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 } diff --git a/appdatabase/migrationsprevnodecfg/bindata.go b/appdatabase/migrationsprevnodecfg/bindata.go index 90ea5a198..00c3298ad 100644 --- a/appdatabase/migrationsprevnodecfg/bindata.go +++ b/appdatabase/migrationsprevnodecfg/bindata.go @@ -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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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 } diff --git a/mailserver/migrations/bindata.go b/mailserver/migrations/bindata.go index c642e391d..baa514686 100644 --- a/mailserver/migrations/bindata.go +++ b/mailserver/migrations/bindata.go @@ -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(1661332898, 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(1661332898, 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(1661332898, 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 } diff --git a/multiaccounts/migrations/bindata.go b/multiaccounts/migrations/bindata.go index 8e03b7b2b..e12197633 100644 --- a/multiaccounts/migrations/bindata.go +++ b/multiaccounts/migrations/bindata.go @@ -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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1664788444, 0)} + info := bindataFileInfo{name: "1660238799_accounts_kdf.up.sql", size: 115, mode: os.FileMode(0644), modTime: time.Unix(1666195802, 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(1661332898, 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 } diff --git a/protocol/activity_center.go b/protocol/activity_center.go index 42552a74e..6a228c48f 100644 --- a/protocol/activity_center.go +++ b/protocol/activity_center.go @@ -6,6 +6,7 @@ import ( "github.com/status-im/status-go/eth-node/types" "github.com/status-im/status-go/protocol/common" + "github.com/status-im/status-go/protocol/verification" ) // The activity center is a place where we store incoming notifications before @@ -25,6 +26,7 @@ const ( ActivityCenterNotificationTypeCommunityRequest ActivityCenterNotificationTypeCommunityMembershipRequest ActivityCenterNotificationTypeCommunityKicked + ActivityCenterNotificationTypeContactVerification ) type ActivityCenterMembershipStatus int @@ -53,6 +55,7 @@ type ActivityCenterNotification struct { Read bool `json:"read"` Dismissed bool `json:"dismissed"` Accepted bool `json:"accepted"` + ContactVerificationStatus verification.RequestStatus `json:"contactVerificationStatus"` } type ActivityCenterPaginationResponse struct { diff --git a/protocol/activity_center_persistence.go b/protocol/activity_center_persistence.go index b1377c13e..8ab0a49f7 100644 --- a/protocol/activity_center_persistence.go +++ b/protocol/activity_center_persistence.go @@ -9,6 +9,7 @@ import ( "github.com/status-im/status-go/eth-node/types" "github.com/status-im/status-go/protocol/common" + "github.com/status-im/status-go/protocol/verification" ) func (db sqlitePersistence) DeleteActivityCenterNotification(id []byte) error { @@ -34,7 +35,12 @@ func (db sqlitePersistence) DeleteActivityCenterNotificationForMessage(chatID st _ = tx.Rollback() }() - _, notifications, err := db.buildActivityCenterQuery(tx, "", 0, nil, chatID, "", ActivityCenterNotificationNoType) + params := activityCenterQueryParams{ + chatID: chatID, + activityCenterType: ActivityCenterNotificationNoType, + } + + _, notifications, err := db.buildActivityCenterQuery(tx, params) if err != nil { return err @@ -142,6 +148,7 @@ func (db sqlitePersistence) unmarshalActivityCenterNotificationRow(row *sql.Row) &messageBytes, &lastMessageBytes, &replyMessageBytes, + ¬ification.ContactVerificationStatus, &name, &author) @@ -193,7 +200,6 @@ func (db sqlitePersistence) unmarshalActivityCenterNotificationRow(row *sql.Row) } return notification, nil - } func (db sqlitePersistence) unmarshalActivityCenterNotificationRows(rows *sql.Rows) (string, []*ActivityCenterNotification, error) { @@ -221,6 +227,7 @@ func (db sqlitePersistence) unmarshalActivityCenterNotificationRows(rows *sql.Ro &messageBytes, &lastMessageBytes, &replyMessageBytes, + ¬ification.ContactVerificationStatus, &name, &author, &latestCursor) @@ -277,14 +284,36 @@ func (db sqlitePersistence) unmarshalActivityCenterNotificationRows(rows *sql.Ro return latestCursor, notifications, nil } -func (db sqlitePersistence) buildActivityCenterQuery(tx *sql.Tx, cursor string, limit int, ids []types.HexBytes, chatID string, author string, activityCenterType ActivityCenterType) (string, []*ActivityCenterNotification, error) { + +type activityCenterQueryParamsRead uint + +const ( + activityCenterQueryParamsReadRead = iota + 1 + activityCenterQueryParamsReadUnread +) + +type activityCenterQueryParams struct { + cursor string + limit uint64 + ids []types.HexBytes + chatID string + author string + read activityCenterQueryParamsRead + activityCenterType ActivityCenterType +} + +func (db sqlitePersistence) buildActivityCenterQuery(tx *sql.Tx, params activityCenterQueryParams) (string, []*ActivityCenterNotification, error) { var args []interface{} - cursorWhere := "" - inQueryWhere := "" - inChatWhere := "" - fromAuthorWhere := "" - ofTypeWhere := "" + var cursorWhere, inQueryWhere, inChatWhere, fromAuthorWhere, ofTypeWhere, readWhere string + + cursor := params.cursor + ids := params.ids + author := params.author + activityCenterType := params.activityCenterType + limit := params.limit + chatID := params.chatID + read := params.read if cursor != "" { cursorWhere = "AND cursor <= ?" //nolint: goconst @@ -301,6 +330,13 @@ func (db sqlitePersistence) buildActivityCenterQuery(tx *sql.Tx, cursor string, } + switch read { + case activityCenterQueryParamsReadRead: + readWhere = "AND a.read = 1" + case activityCenterQueryParamsReadUnread: + readWhere = "AND NOT(a.read)" + } + if chatID != "" { inChatWhere = "AND a.chat_id = ?" //nolint: goconst args = append(args, chatID) @@ -331,6 +367,7 @@ func (db sqlitePersistence) buildActivityCenterQuery(tx *sql.Tx, cursor string, a.message, c.last_message, a.reply_message, + a.contact_verification_status, c.name, a.author, substr('0000000000000000000000000000000000000000000000000000000000000000' || a.timestamp, -64, 64) || a.id as cursor @@ -344,7 +381,8 @@ func (db sqlitePersistence) buildActivityCenterQuery(tx *sql.Tx, cursor string, %s %s %s - ORDER BY cursor DESC`, cursorWhere, inQueryWhere, inChatWhere, fromAuthorWhere, ofTypeWhere) + %s + ORDER BY cursor DESC`, cursorWhere, inQueryWhere, inChatWhere, fromAuthorWhere, ofTypeWhere, readWhere) if limit != 0 { args = append(args, limit) @@ -449,6 +487,7 @@ func (db sqlitePersistence) GetActivityCenterNotificationByID(id types.HexBytes) a.message, c.last_message, a.reply_message, + a.contact_verification_status, c.name, a.author FROM activity_center_notifications a @@ -464,11 +503,34 @@ func (db sqlitePersistence) GetActivityCenterNotificationByID(id types.HexBytes) return notification, err } -func (db sqlitePersistence) ActivityCenterNotifications(currCursor string, limit uint64) (string, []*ActivityCenterNotification, error) { +func (db sqlitePersistence) UnreadActivityCenterNotifications(cursor string, limit uint64, activityType ActivityCenterType) (string, []*ActivityCenterNotification, error) { + params := activityCenterQueryParams{ + activityCenterType: activityType, + cursor: cursor, + limit: limit, + read: activityCenterQueryParamsReadUnread, + } + + return db.activityCenterNotifications(params) +} + +func (db sqlitePersistence) ReadActivityCenterNotifications(cursor string, limit uint64, activityType ActivityCenterType) (string, []*ActivityCenterNotification, error) { + params := activityCenterQueryParams{ + activityCenterType: activityType, + cursor: cursor, + limit: limit, + read: activityCenterQueryParamsReadRead, + } + + return db.activityCenterNotifications(params) +} + +func (db sqlitePersistence) activityCenterNotifications(params activityCenterQueryParams) (string, []*ActivityCenterNotification, error) { var tx *sql.Tx var err error // We fetch limit + 1 to check for pagination - incrementedLimit := int(limit) + 1 + nonIncrementedLimit := params.limit + incrementedLimit := int(params.limit) + 1 tx, err = db.db.BeginTx(context.Background(), &sql.TxOptions{}) if err != nil { return "", nil, err @@ -482,13 +544,14 @@ func (db sqlitePersistence) ActivityCenterNotifications(currCursor string, limit _ = tx.Rollback() }() - latestCursor, notifications, err := db.buildActivityCenterQuery(tx, currCursor, incrementedLimit, nil, "", "", ActivityCenterNotificationNoType) + params.limit = uint64(incrementedLimit) + latestCursor, notifications, err := db.buildActivityCenterQuery(tx, params) if err != nil { return "", nil, err } if len(notifications) == incrementedLimit { - notifications = notifications[0:limit] + notifications = notifications[0:nonIncrementedLimit] } else { latestCursor = "" } @@ -496,6 +559,14 @@ func (db sqlitePersistence) ActivityCenterNotifications(currCursor string, limit return latestCursor, notifications, nil } +func (db sqlitePersistence) ActivityCenterNotifications(currCursor string, limit uint64) (string, []*ActivityCenterNotification, error) { + params := activityCenterQueryParams{ + cursor: currCursor, + limit: limit, + } + return db.activityCenterNotifications(params) +} + func (db sqlitePersistence) DismissAllActivityCenterNotifications() error { _, err := db.db.Exec(`UPDATE activity_center_notifications SET read = 1, dismissed = 1 WHERE NOT dismissed AND NOT accepted`) return err @@ -574,7 +645,11 @@ func (db sqlitePersistence) AcceptAllActivityCenterNotifications() ([]*ActivityC _ = tx.Rollback() }() - _, notifications, err := db.buildActivityCenterQuery(tx, "", 0, nil, "", "", ActivityCenterNotificationNoType) + params := activityCenterQueryParams{ + activityCenterType: ActivityCenterNotificationNoType, + } + + _, notifications, err := db.buildActivityCenterQuery(tx, params) _, err = tx.Exec(`UPDATE activity_center_notifications SET read = 1, accepted = 1 WHERE NOT accepted AND NOT dismissed`) if err != nil { @@ -601,7 +676,12 @@ func (db sqlitePersistence) AcceptActivityCenterNotifications(ids []types.HexByt _ = tx.Rollback() }() - _, notifications, err := db.buildActivityCenterQuery(tx, "", 0, ids, "", "", ActivityCenterNotificationNoType) + params := activityCenterQueryParams{ + ids: ids, + activityCenterType: ActivityCenterNotificationNoType, + } + + _, notifications, err := db.buildActivityCenterQuery(tx, params) if err != nil { return nil, err @@ -629,6 +709,13 @@ func (db sqlitePersistence) UpdateActivityCenterNotificationMessage(id types.Hex } +func (db sqlitePersistence) UpdateActivityCenterNotificationContactVerificationStatus(id types.HexBytes, status verification.RequestStatus) error { + _, err := db.db.Exec(`UPDATE activity_center_notifications SET contact_verification_status = ? WHERE id = ?`, status, id) + return err + +} + + func (db sqlitePersistence) AcceptActivityCenterNotificationsForInvitesFromUser(userPublicKey string) ([]*ActivityCenterNotification, error) { var tx *sql.Tx var err error @@ -646,7 +733,12 @@ func (db sqlitePersistence) AcceptActivityCenterNotificationsForInvitesFromUser( _ = tx.Rollback() }() - _, notifications, err := db.buildActivityCenterQuery(tx, "", 0, nil, "", userPublicKey, ActivityCenterNotificationTypeNewPrivateGroupChat) + params := activityCenterQueryParams{ + author: userPublicKey, + activityCenterType: ActivityCenterNotificationTypeNewPrivateGroupChat, + } + + _, notifications, err := db.buildActivityCenterQuery(tx, params) if err != nil { return nil, err @@ -715,6 +807,7 @@ func (db sqlitePersistence) ActiveContactRequestNotification(contactID string) ( a.message, c.last_message, a.reply_message, + a.contact_verification_status, c.name, a.author FROM activity_center_notifications a @@ -731,7 +824,7 @@ func (db sqlitePersistence) ActiveContactRequestNotification(contactID string) ( func (db sqlitePersistence) RemoveAllContactRequestActivityCenterNotifications(chatID string) error { _, err := db.db.Exec(` - DELETE FROM activity_center_notifications + DELETE FROM activity_center_notifications WHERE chat_id = ? AND notification_type = ? diff --git a/protocol/anonmetrics/migrations/migrations.go b/protocol/anonmetrics/migrations/migrations.go index 5391d238e..c02a2132d 100644 --- a/protocol/anonmetrics/migrations/migrations.go +++ b/protocol/anonmetrics/migrations/migrations.go @@ -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(1661332898, 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(1661332898, 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(1661332898, 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 } diff --git a/protocol/common/message.go b/protocol/common/message.go index 411ff8bbd..086f65c41 100644 --- a/protocol/common/message.go +++ b/protocol/common/message.go @@ -59,6 +59,14 @@ const ( ContactRequestStateDismissed ) +type ContactVerificationState int + +const ( + ContactVerificationStatePending ContactVerificationState = iota + 1 + ContactVerificationStateAccepted + ContactVerificationStateDismissed +) + type CommandParameters struct { // ID is the ID of the initial message ID string `json:"id"` @@ -184,6 +192,9 @@ type Message struct { // ContactRequestState is the state of the contact request message ContactRequestState ContactRequestState `json:"contactRequestState,omitempty"` + // ContactVerificationState is the state of the identity verification process + ContactVerificationState ContactVerificationState `json:"contactVerificationState,omitempty"` + DiscordMessage *protobuf.DiscordMessage `json:"discordMessage,omitempty"` } @@ -194,80 +205,82 @@ func (m *Message) MarshalJSON() ([]byte, error) { URL string `json:"url"` } item := struct { - ID string `json:"id"` - WhisperTimestamp uint64 `json:"whisperTimestamp"` - From string `json:"from"` - Alias string `json:"alias"` - Identicon string `json:"identicon"` - Seen bool `json:"seen"` - OutgoingStatus string `json:"outgoingStatus,omitempty"` - QuotedMessage *QuotedMessage `json:"quotedMessage"` - RTL bool `json:"rtl"` - ParsedText json.RawMessage `json:"parsedText,omitempty"` - LineCount int `json:"lineCount"` - Text string `json:"text"` - ChatID string `json:"chatId"` - LocalChatID string `json:"localChatId"` - Clock uint64 `json:"clock"` - Replace string `json:"replace"` - ResponseTo string `json:"responseTo"` - New bool `json:"new,omitempty"` - EnsName string `json:"ensName"` - DisplayName string `json:"displayName"` - Image string `json:"image,omitempty"` - Audio string `json:"audio,omitempty"` - AudioDurationMs uint64 `json:"audioDurationMs,omitempty"` - CommunityID string `json:"communityId,omitempty"` - Sticker *StickerAlias `json:"sticker,omitempty"` - CommandParameters *CommandParameters `json:"commandParameters,omitempty"` - GapParameters *GapParameters `json:"gapParameters,omitempty"` - Timestamp uint64 `json:"timestamp"` - ContentType protobuf.ChatMessage_ContentType `json:"contentType"` - MessageType protobuf.MessageType `json:"messageType"` - Mentions []string `json:"mentions,omitempty"` - Mentioned bool `json:"mentioned,omitempty"` - Links []string `json:"links,omitempty"` - EditedAt uint64 `json:"editedAt,omitempty"` - Deleted bool `json:"deleted,omitempty"` - DeletedForMe bool `json:"deletedForMe,omitempty"` - ContactRequestState ContactRequestState `json:"contactRequestState,omitempty"` - DiscordMessage *protobuf.DiscordMessage `json:"discordMessage,omitempty"` + ID string `json:"id"` + WhisperTimestamp uint64 `json:"whisperTimestamp"` + From string `json:"from"` + Alias string `json:"alias"` + Identicon string `json:"identicon"` + Seen bool `json:"seen"` + OutgoingStatus string `json:"outgoingStatus,omitempty"` + QuotedMessage *QuotedMessage `json:"quotedMessage"` + RTL bool `json:"rtl"` + ParsedText json.RawMessage `json:"parsedText,omitempty"` + LineCount int `json:"lineCount"` + Text string `json:"text"` + ChatID string `json:"chatId"` + LocalChatID string `json:"localChatId"` + Clock uint64 `json:"clock"` + Replace string `json:"replace"` + ResponseTo string `json:"responseTo"` + New bool `json:"new,omitempty"` + EnsName string `json:"ensName"` + DisplayName string `json:"displayName"` + Image string `json:"image,omitempty"` + Audio string `json:"audio,omitempty"` + AudioDurationMs uint64 `json:"audioDurationMs,omitempty"` + CommunityID string `json:"communityId,omitempty"` + Sticker *StickerAlias `json:"sticker,omitempty"` + CommandParameters *CommandParameters `json:"commandParameters,omitempty"` + GapParameters *GapParameters `json:"gapParameters,omitempty"` + Timestamp uint64 `json:"timestamp"` + ContentType protobuf.ChatMessage_ContentType `json:"contentType"` + MessageType protobuf.MessageType `json:"messageType"` + Mentions []string `json:"mentions,omitempty"` + Mentioned bool `json:"mentioned,omitempty"` + Links []string `json:"links,omitempty"` + EditedAt uint64 `json:"editedAt,omitempty"` + Deleted bool `json:"deleted,omitempty"` + DeletedForMe bool `json:"deletedForMe,omitempty"` + ContactRequestState ContactRequestState `json:"contactRequestState,omitempty"` + ContactVerificationState ContactVerificationState `json:"contactVerificationState,omitempty"` + DiscordMessage *protobuf.DiscordMessage `json:"discordMessage,omitempty"` }{ - ID: m.ID, - WhisperTimestamp: m.WhisperTimestamp, - From: m.From, - Alias: m.Alias, - Identicon: m.Identicon, - Seen: m.Seen, - OutgoingStatus: m.OutgoingStatus, - QuotedMessage: m.QuotedMessage, - RTL: m.RTL, - ParsedText: m.ParsedText, - LineCount: m.LineCount, - Text: m.Text, - Replace: m.Replace, - ChatID: m.ChatId, - LocalChatID: m.LocalChatID, - Clock: m.Clock, - ResponseTo: m.ResponseTo, - New: m.New, - EnsName: m.EnsName, - DisplayName: m.DisplayName, - Image: m.ImageLocalURL, - Audio: m.AudioLocalURL, - CommunityID: m.CommunityID, - Timestamp: m.Timestamp, - ContentType: m.ContentType, - Mentions: m.Mentions, - Mentioned: m.Mentioned, - Links: m.Links, - MessageType: m.MessageType, - CommandParameters: m.CommandParameters, - GapParameters: m.GapParameters, - EditedAt: m.EditedAt, - Deleted: m.Deleted, - DeletedForMe: m.DeletedForMe, - ContactRequestState: m.ContactRequestState, + ID: m.ID, + WhisperTimestamp: m.WhisperTimestamp, + From: m.From, + Alias: m.Alias, + Identicon: m.Identicon, + Seen: m.Seen, + OutgoingStatus: m.OutgoingStatus, + QuotedMessage: m.QuotedMessage, + RTL: m.RTL, + ParsedText: m.ParsedText, + LineCount: m.LineCount, + Text: m.Text, + Replace: m.Replace, + ChatID: m.ChatId, + LocalChatID: m.LocalChatID, + Clock: m.Clock, + ResponseTo: m.ResponseTo, + New: m.New, + EnsName: m.EnsName, + DisplayName: m.DisplayName, + Image: m.ImageLocalURL, + Audio: m.AudioLocalURL, + CommunityID: m.CommunityID, + Timestamp: m.Timestamp, + ContentType: m.ContentType, + Mentions: m.Mentions, + Mentioned: m.Mentioned, + Links: m.Links, + MessageType: m.MessageType, + CommandParameters: m.CommandParameters, + GapParameters: m.GapParameters, + EditedAt: m.EditedAt, + Deleted: m.Deleted, + DeletedForMe: m.DeletedForMe, + ContactRequestState: m.ContactRequestState, + ContactVerificationState: m.ContactVerificationState, } if sticker := m.GetSticker(); sticker != nil { item.Sticker = &StickerAlias{ diff --git a/protocol/encryption/migrations/migrations.go b/protocol/encryption/migrations/migrations.go index 5dcd062f0..9330795c3 100644 --- a/protocol/encryption/migrations/migrations.go +++ b/protocol/encryption/migrations/migrations.go @@ -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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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 } diff --git a/protocol/message_persistence.go b/protocol/message_persistence.go index b7abbd22b..14dfac894 100644 --- a/protocol/message_persistence.go +++ b/protocol/message_persistence.go @@ -88,6 +88,7 @@ func (db sqlitePersistence) tableUserMessagesAllFields() string { gap_from, gap_to, contact_request_state, + contact_verification_status, mentioned, discord_message_id` } @@ -133,6 +134,7 @@ func (db sqlitePersistence) tableUserMessagesAllFieldsJoin() string { m1.gap_from, m1.gap_to, m1.contact_request_state, + m1.contact_verification_status, m1.mentioned, COALESCE(m1.discord_message_id, ""), COALESCE(dm.author_id, ""), @@ -189,6 +191,7 @@ func (db sqlitePersistence) tableUserMessagesScanAllFields(row scanner, message var deleted sql.NullBool var deletedForMe sql.NullBool var contactRequestState sql.NullInt64 + var contactVerificationState sql.NullInt64 sticker := &protobuf.StickerMessage{} command := &common.CommandParameters{} @@ -243,6 +246,7 @@ func (db sqlitePersistence) tableUserMessagesScanAllFields(row scanner, message &gapFrom, &gapTo, &contactRequestState, + &contactVerificationState, &message.Mentioned, &discordMessage.Id, &discordMessage.Author.Id, @@ -292,6 +296,10 @@ func (db sqlitePersistence) tableUserMessagesScanAllFields(row scanner, message message.ContactRequestState = common.ContactRequestState(contactRequestState.Int64) } + if contactVerificationState.Valid { + message.ContactVerificationState = common.ContactVerificationState(contactVerificationState.Int64) + } + if quotedText.Valid { message.QuotedMessage = &common.QuotedMessage{ ID: quotedID.String, @@ -458,6 +466,7 @@ func (db sqlitePersistence) tableUserMessagesAllValues(message *common.Message) gapFrom, gapTo, message.ContactRequestState, + message.ContactVerificationState, message.Mentioned, discordMessage.Id, }, nil diff --git a/protocol/messenger.go b/protocol/messenger.go index 0d379f4b4..7d7ab59ad 100644 --- a/protocol/messenger.go +++ b/protocol/messenger.go @@ -2815,6 +2815,7 @@ func (m *Messenger) SyncVerificationRequest(ctx context.Context, vr *verificatio clock, chat := m.getLastClockWithRelatedChat() syncMessage := &protobuf.SyncVerificationRequest{ + Id: vr.ID, Clock: clock, From: vr.From, To: vr.To, @@ -5725,17 +5726,13 @@ func ToVerificationRequest(message protobuf.SyncVerificationRequest) *verificati func (m *Messenger) handleSyncVerificationRequest(state *ReceivedMessageState, message protobuf.SyncVerificationRequest) error { verificationRequest := ToVerificationRequest(message) - shouldSync, err := m.verificationDatabase.UpsertVerificationRequest(verificationRequest) + err := m.verificationDatabase.SaveVerificationRequest(verificationRequest) if err != nil { return err } myPubKey := hexutil.Encode(crypto.FromECDSAPub(&m.identity.PublicKey)) - if !shouldSync { - return nil - } - state.AllVerificationRequests = append(state.AllVerificationRequests, verificationRequest) if message.From == myPubKey { // Verification requests we sent diff --git a/protocol/messenger_activity_center.go b/protocol/messenger_activity_center.go index b923cd37c..46da7e1c0 100644 --- a/protocol/messenger_activity_center.go +++ b/protocol/messenger_activity_center.go @@ -243,6 +243,30 @@ func (m *Messenger) ActivityCenterNotifications(cursor string, limit uint64) (*A }, nil } +func (m *Messenger) ReadActivityCenterNotifications(cursor string, limit uint64, activityType ActivityCenterType) (*ActivityCenterPaginationResponse, error) { + cursor, notifications, err := m.persistence.ReadActivityCenterNotifications(cursor, limit, activityType) + if err != nil { + return nil, err + } + + return &ActivityCenterPaginationResponse{ + Cursor: cursor, + Notifications: notifications, + }, nil +} + +func (m *Messenger) UnreadActivityCenterNotifications(cursor string, limit uint64, activityType ActivityCenterType) (*ActivityCenterPaginationResponse, error) { + cursor, notifications, err := m.persistence.UnreadActivityCenterNotifications(cursor, limit, activityType) + if err != nil { + return nil, err + } + + return &ActivityCenterPaginationResponse{ + Cursor: cursor, + Notifications: notifications, + }, nil +} + func (m *Messenger) handleActivityCenterRead(state *ReceivedMessageState, message protobuf.SyncActivityCenterRead) error { resp, err := m.MarkActivityCenterNotificationsRead(context.TODO(), toHexBytes(message.Ids), false) diff --git a/protocol/messenger_auto_message.go b/protocol/messenger_auto_message.go index 98a315c78..f038b0a3d 100644 --- a/protocol/messenger_auto_message.go +++ b/protocol/messenger_auto_message.go @@ -15,7 +15,7 @@ import ( // autoMessageInterval is how often we should send a message const autoMessageInterval = 120 * time.Second -const chatID = "status-bot" +const autoMessageChatID = "status-bot" func (m *Messenger) AutoMessageEnabled() (bool, error) { return m.settings.AutoMessageEnabled() @@ -44,8 +44,8 @@ func (m *Messenger) startAutoMessageLoop() error { msg := &common.Message{} msg.Text = fmt.Sprintf("%d\n%s", count, timestamp) - msg.ChatId = chatID - msg.LocalChatID = chatID + msg.ChatId = autoMessageChatID + msg.LocalChatID = autoMessageChatID msg.ContentType = protobuf.ChatMessage_TEXT_PLAIN resp, err := m.SendChatMessage(context.Background(), msg) if err != nil { @@ -62,7 +62,7 @@ func (m *Messenger) startAutoMessageLoop() error { //send signal to client that message status updated if m.config.messengerSignalsHandler != nil { - m.config.messengerSignalsHandler.MessageDelivered(chatID, msg.ID) + m.config.messengerSignalsHandler.MessageDelivered(autoMessageChatID, msg.ID) } case <-m.quit: ticker.Stop() diff --git a/protocol/messenger_contact_verification.go b/protocol/messenger_contact_verification.go index f64bd036e..2c31ab50c 100644 --- a/protocol/messenger_contact_verification.go +++ b/protocol/messenger_contact_verification.go @@ -12,6 +12,8 @@ import ( "github.com/golang/protobuf/proto" "github.com/status-im/status-go/eth-node/crypto" + "github.com/status-im/status-go/eth-node/types" + "github.com/status-im/status-go/protocol/common" "github.com/status-im/status-go/protocol/protobuf" "github.com/status-im/status-go/protocol/verification" @@ -20,44 +22,29 @@ import ( const minContactVerificationMessageLen = 1 const maxContactVerificationMessageLen = 280 -func (m *Messenger) SendContactVerificationRequest(ctx context.Context, contactID string, challenge string) error { +func (m *Messenger) SendContactVerificationRequest(ctx context.Context, contactID string, challenge string) (*MessengerResponse, error) { if len(challenge) < minContactVerificationMessageLen || len(challenge) > maxContactVerificationMessageLen { - return errors.New("invalid verification request challenge length") + return nil, errors.New("invalid verification request challenge length") } contact, ok := m.allContacts.Load(contactID) if !ok || !contact.Added || !contact.HasAddedUs { - return errors.New("must be a mutual contact") + return nil, errors.New("must be a mutual contact") } - verifRequest, err := m.verificationDatabase.GetVerificationRequestFrom(contactID) - if err != nil { - return err - } - - if verifRequest != nil && verifRequest.RequestStatus == verification.RequestStatusACCEPTED { - return errors.New("verification request already accepted") - } - - if verifRequest != nil && verifRequest.RequestStatus == verification.RequestStatusPENDING { - return errors.New("verification request already sent") - } - - if verifRequest == nil { - verifRequest = &verification.Request{ - From: common.PubkeyToHex(&m.identity.PublicKey), - To: contact.ID, - Challenge: challenge, - RequestStatus: verification.RequestStatusPENDING, - RepliedAt: 0, - } + verifRequest := &verification.Request{ + From: common.PubkeyToHex(&m.identity.PublicKey), + To: contact.ID, + Challenge: challenge, + RequestStatus: verification.RequestStatusPENDING, + RepliedAt: 0, } chat, ok := m.allChats.Load(contactID) if !ok { publicKey, err := contact.PublicKey() if err != nil { - return err + return nil, err } chat = OneToOneFromPublicKey(publicKey, m.getTimesource()) // We don't want to show the chat to the user @@ -74,10 +61,10 @@ func (m *Messenger) SendContactVerificationRequest(ctx context.Context, contactI encodedMessage, err := proto.Marshal(request) if err != nil { - return err + return nil, err } - _, err = m.dispatchMessage(ctx, common.RawMessage{ + rawMessage, err := m.dispatchMessage(ctx, common.RawMessage{ LocalChatID: chat.ID, Payload: encodedMessage, MessageType: protobuf.ApplicationMetadataMessage_REQUEST_CONTACT_VERIFICATION, @@ -85,7 +72,7 @@ func (m *Messenger) SendContactVerificationRequest(ctx context.Context, contactI }) if err != nil { - return err + return nil, err } contact.VerificationStatus = VerificationStatusVERIFYING @@ -93,25 +80,49 @@ func (m *Messenger) SendContactVerificationRequest(ctx context.Context, contactI err = m.persistence.SaveContact(contact, nil) if err != nil { - return err + return nil, err } // We sync the contact with the other devices err = m.syncContact(context.Background(), contact) if err != nil { - return err + return nil, err } m.allContacts.Store(contact.ID, contact) verifRequest.RequestedAt = clock + verifRequest.ID = rawMessage.ID err = m.verificationDatabase.SaveVerificationRequest(verifRequest) if err != nil { - return err + return nil, err } - return m.SyncVerificationRequest(context.Background(), verifRequest) + err = m.SyncVerificationRequest(context.Background(), verifRequest) + if err != nil { + return nil, err + } + + chatMessage, err := m.createLocalContactVerificationMessage(request.Challenge, chat, rawMessage.ID, common.ContactVerificationStatePending) + if err != nil { + return nil, err + } + + err = m.persistence.SaveMessages([]*common.Message{chatMessage}) + if err != nil { + return nil, err + } + + response := &MessengerResponse{ + VerificationRequests: []*verification.Request{verifRequest}, + } + + response.AddMessage(chatMessage) + + m.prepareMessages(response.messages) + + return response, nil } func (m *Messenger) GetVerificationRequestSentTo(ctx context.Context, contactID string) (*verification.Request, error) { @@ -123,15 +134,6 @@ func (m *Messenger) GetVerificationRequestSentTo(ctx context.Context, contactID return m.verificationDatabase.GetVerificationRequestSentTo(contactID) } -func (m *Messenger) GetVerificationRequestFrom(ctx context.Context, contactID string) (*verification.Request, error) { - _, ok := m.allContacts.Load(contactID) - if !ok { - return nil, errors.New("contact not found") - } - - return m.verificationDatabase.GetVerificationRequestFrom(contactID) -} - func (m *Messenger) GetReceivedVerificationRequests(ctx context.Context) ([]*verification.Request, error) { myPubKey := hexutil.Encode(crypto.FromECDSAPub(&m.identity.PublicKey)) return m.verificationDatabase.GetReceivedVerificationRequests(myPubKey) @@ -185,26 +187,30 @@ func (m *Messenger) CancelVerificationRequest(ctx context.Context, contactID str return nil } -func (m *Messenger) AcceptContactVerificationRequest(ctx context.Context, contactID string, response string) error { - contact, ok := m.allContacts.Load(contactID) - if !ok || !contact.Added || !contact.HasAddedUs { - return errors.New("must be a mutual contact") - } +func (m *Messenger) AcceptContactVerificationRequest(ctx context.Context, id string, response string) (*MessengerResponse, error) { - verifRequest, err := m.verificationDatabase.GetVerificationRequestFrom(contactID) + verifRequest, err := m.verificationDatabase.GetVerificationRequest(id) if err != nil { - return err + return nil, err } if verifRequest == nil { - return errors.New("no contact verification found") + m.logger.Error("could not find verification request with id", zap.String("id", id)) + return nil, verification.ErrVerificationRequestNotFound + } + + contactID := verifRequest.From + + contact, ok := m.allContacts.Load(contactID) + if !ok || !contact.Added || !contact.HasAddedUs { + return nil, errors.New("must be a mutual contact") } chat, ok := m.allChats.Load(contactID) if !ok { publicKey, err := contact.PublicKey() if err != nil { - return err + return nil, err } chat = OneToOneFromPublicKey(publicKey, m.getTimesource()) // We don't want to show the chat to the user @@ -214,29 +220,33 @@ func (m *Messenger) AcceptContactVerificationRequest(ctx context.Context, contac m.allChats.Store(chat.ID, chat) clock, _ := chat.NextClockAndTimestamp(m.getTimesource()) - verifRequest.RequestStatus = verification.RequestStatusACCEPTED - verifRequest.RepliedAt = clock - err = m.verificationDatabase.SaveVerificationRequest(verifRequest) + err = m.verificationDatabase.AcceptContactVerificationRequest(id, response) if err != nil { - return err + return nil, err + } + + verifRequest, err = m.verificationDatabase.GetVerificationRequest(id) + if err != nil { + return nil, err } err = m.SyncVerificationRequest(context.Background(), verifRequest) if err != nil { - return err + return nil, err } request := &protobuf.AcceptContactVerification{ Clock: clock, + Id: verifRequest.ID, Response: response, } encodedMessage, err := proto.Marshal(request) if err != nil { - return err + return nil, err } - _, err = m.dispatchMessage(ctx, common.RawMessage{ + rawMessage, err := m.dispatchMessage(ctx, common.RawMessage{ LocalChatID: chat.ID, Payload: encodedMessage, MessageType: protobuf.ApplicationMetadataMessage_ACCEPT_CONTACT_VERIFICATION, @@ -244,10 +254,49 @@ func (m *Messenger) AcceptContactVerificationRequest(ctx context.Context, contac }) if err != nil { - return err + return nil, err } - return m.verificationDatabase.AcceptContactVerificationRequest(contactID, response) + // Pull one from the db if there + notification, err := m.persistence.GetActivityCenterNotificationByID(types.FromHex(id)) + if err != nil { + return nil, err + } + resp := &MessengerResponse{ + VerificationRequests: []*verification.Request{verifRequest}, + } + + chatMessage, err := m.createLocalContactVerificationMessage(response, chat, rawMessage.ID, common.ContactVerificationStateAccepted) + if err != nil { + return nil, err + } + + err = m.persistence.SaveMessages([]*common.Message{chatMessage}) + if err != nil { + return nil, err + } + + resp.AddMessage(chatMessage) + + if notification != nil { + // TODO: Should we update only the message or only the notification or both? + err := m.persistence.UpdateActivityCenterNotificationContactVerificationStatus(notification.ID, verification.RequestStatusACCEPTED) + if err != nil { + return nil, err + } + + notification.ContactVerificationStatus = verification.RequestStatusACCEPTED + message := notification.Message + message.ContactVerificationState = common.ContactVerificationStateAccepted + err = m.persistence.UpdateActivityCenterNotificationMessage(notification.ID, message) + if err != nil { + return nil, err + } + resp.AddActivityCenterNotification(notification) + + } + + return resp, nil } func (m *Messenger) VerifiedTrusted(ctx context.Context, contactID string) error { @@ -367,22 +416,27 @@ func (m *Messenger) VerifiedUntrustworthy(ctx context.Context, contactID string) return nil } -func (m *Messenger) DeclineContactVerificationRequest(ctx context.Context, contactID string) error { - contact, ok := m.allContacts.Load(contactID) - if !ok || !contact.Added || !contact.HasAddedUs { - return errors.New("must be a mutual contact") - } - - verifRequest, err := m.verificationDatabase.GetVerificationRequestFrom(contactID) +func (m *Messenger) DeclineContactVerificationRequest(ctx context.Context, id string) error { + verifRequest, err := m.verificationDatabase.GetVerificationRequest(id) if err != nil { return err } + if verifRequest == nil { + m.logger.Error("could not find verification request with id", zap.String("id", id)) + return verification.ErrVerificationRequestNotFound + } + + contact, ok := m.allContacts.Load(verifRequest.From) + if !ok || !contact.Added || !contact.HasAddedUs { + return errors.New("must be a mutual contact") + } + if verifRequest == nil { return errors.New("no contact verification found") } - chat, ok := m.allChats.Load(contactID) + chat, ok := m.allChats.Load(verifRequest.From) if !ok { publicKey, err := contact.PublicKey() if err != nil { @@ -409,6 +463,7 @@ func (m *Messenger) DeclineContactVerificationRequest(ctx context.Context, conta } request := &protobuf.DeclineContactVerification{ + Id: id, Clock: clock, } @@ -428,7 +483,7 @@ func (m *Messenger) DeclineContactVerificationRequest(ctx context.Context, conta return err } - return m.verificationDatabase.DeclineContactVerificationRequest(contactID) + return m.verificationDatabase.DeclineContactVerificationRequest(verifRequest.From) } func (m *Messenger) MarkAsTrusted(ctx context.Context, contactID string) error { @@ -477,6 +532,8 @@ func (m *Messenger) HandleRequestContactVerification(state *ReceivedMessageState return err } + id := state.CurrentMessageState.MessageID + if common.IsPubKeyEqual(state.CurrentMessageState.PublicKey, &m.identity.PublicKey) { return nil // Is ours, do nothing } @@ -490,7 +547,7 @@ func (m *Messenger) HandleRequestContactVerification(state *ReceivedMessageState return errors.New("must be a mutual contact") } - persistedVR, err := m.verificationDatabase.GetVerificationRequestFrom(contactID) + persistedVR, err := m.verificationDatabase.GetVerificationRequest(id) if err != nil { m.logger.Debug("Error obtaining verification request", zap.Error(err)) return err @@ -503,11 +560,16 @@ func (m *Messenger) HandleRequestContactVerification(state *ReceivedMessageState if persistedVR == nil { // This is a new verification request, and we have not received its acceptance/decline before persistedVR = &verification.Request{} + persistedVR.ID = id persistedVR.From = contactID persistedVR.To = myPubKey persistedVR.RequestStatus = verification.RequestStatusPENDING } + if persistedVR.From != contactID { + return errors.New("mismatch contactID and ID") + } + persistedVR.Challenge = request.Challenge persistedVR.RequestedAt = request.Clock @@ -516,17 +578,37 @@ func (m *Messenger) HandleRequestContactVerification(state *ReceivedMessageState m.logger.Debug("Error storing verification request", zap.Error(err)) return err } + m.logger.Info("SAVED", zap.String("id", persistedVR.ID)) err = m.SyncVerificationRequest(context.Background(), persistedVR) if err != nil { return err } + chat, ok := m.allChats.Load(contactID) + if !ok { + publicKey, err := contact.PublicKey() + if err != nil { + return err + } + chat = OneToOneFromPublicKey(publicKey, m.getTimesource()) + // We don't want to show the chat to the user + chat.Active = false + } + + m.allChats.Store(chat.ID, chat) + + chatMessage, err := m.createContactVerificationMessage(request.Challenge, chat, state, common.ContactVerificationStatePending) + if err != nil { + return err + } + + state.Response.AddMessage(chatMessage) + state.AllVerificationRequests = append(state.AllVerificationRequests, persistedVR) - // TODO: create or update activity center notification - - return nil + // TODO: update activity center notification, this only creates a new one + return m.createContactVerificationNotification(contact, state, persistedVR, chatMessage) } func ValidateAcceptContactVerification(request protobuf.AcceptContactVerification) error { @@ -557,11 +639,12 @@ func (m *Messenger) HandleAcceptContactVerification(state *ReceivedMessageState, return errors.New("must be a mutual contact") } - persistedVR, err := m.verificationDatabase.GetVerificationRequestSentTo(contactID) + persistedVR, err := m.verificationDatabase.GetVerificationRequest(request.Id) if err != nil { m.logger.Debug("Error obtaining verification request", zap.Error(err)) return err } + m.logger.Info("PAST 1") if persistedVR != nil && persistedVR.RepliedAt > request.Clock { return nil // older message, ignore it @@ -570,10 +653,13 @@ func (m *Messenger) HandleAcceptContactVerification(state *ReceivedMessageState, if persistedVR.RequestStatus == verification.RequestStatusCANCELED { return nil // Do nothing, We have already cancelled the verification request } + m.logger.Info("PAST 2") if persistedVR == nil { + m.logger.Info("PAST 3") // This is a response for which we have not received its request before persistedVR = &verification.Request{} + persistedVR.ID = request.Id persistedVR.From = contactID persistedVR.To = myPubKey } @@ -587,12 +673,40 @@ func (m *Messenger) HandleAcceptContactVerification(state *ReceivedMessageState, m.logger.Debug("Error storing verification request", zap.Error(err)) return err } + m.logger.Info("PAST 4") err = m.SyncVerificationRequest(context.Background(), persistedVR) if err != nil { return err } + m.logger.Info("PAST 5") + + chat, ok := m.allChats.Load(contactID) + if !ok { + publicKey, err := contact.PublicKey() + if err != nil { + return err + } + chat = OneToOneFromPublicKey(publicKey, m.getTimesource()) + // We don't want to show the chat to the user + chat.Active = false + } + + m.allChats.Store(chat.ID, chat) + + chatMessage, err := m.createContactVerificationMessage(request.Response, chat, state, common.ContactVerificationStateAccepted) + if err != nil { + return err + } + + state.Response.AddMessage(chatMessage) + + err = m.createContactVerificationNotification(contact, state, persistedVR, chatMessage) + if err != nil { + return err + } + state.AllVerificationRequests = append(state.AllVerificationRequests, persistedVR) // TODO: create or update activity center notification @@ -661,6 +775,10 @@ func (m *Messenger) HandleContactVerificationTrusted(state *ReceivedMessageState return nil // Is ours, do nothing } + if len(request.Id) == 0 { + return errors.New("invalid ContactVerificationTrusted") + } + myPubKey := hexutil.Encode(crypto.FromECDSAPub(&m.identity.PublicKey)) contactID := hexutil.Encode(crypto.FromECDSAPub(state.CurrentMessageState.PublicKey)) @@ -680,7 +798,7 @@ func (m *Messenger) HandleContactVerificationTrusted(state *ReceivedMessageState return err } - persistedVR, err := m.verificationDatabase.GetVerificationRequestFrom(contactID) + persistedVR, err := m.verificationDatabase.GetVerificationRequest(request.Id) if err != nil { m.logger.Debug("Error obtaining verification request", zap.Error(err)) return err @@ -735,3 +853,65 @@ func (m *Messenger) HandleContactVerificationTrusted(state *ReceivedMessageState return nil } + +func (m *Messenger) createContactVerificationNotification(contact *Contact, messageState *ReceivedMessageState, vr *verification.Request, chatMessage *common.Message) error { + notification := &ActivityCenterNotification{ + ID: types.FromHex(vr.ID), + Name: contact.CanonicalName(), + Type: ActivityCenterNotificationTypeContactVerification, + Author: messageState.CurrentMessageState.Contact.ID, + Message: chatMessage, + Timestamp: messageState.CurrentMessageState.WhisperTimestamp, + ChatID: contact.ID, + ContactVerificationStatus: vr.RequestStatus, + } + + return m.addActivityCenterNotification(messageState, notification) +} + +func (m *Messenger) createContactVerificationMessage(challenge string, chat *Chat, state *ReceivedMessageState, verificationStatus common.ContactVerificationState) (*common.Message, error) { + + chatMessage := &common.Message{} + chatMessage.ID = state.CurrentMessageState.MessageID + chatMessage.From = state.CurrentMessageState.Contact.ID + chatMessage.Alias = state.CurrentMessageState.Contact.Alias + chatMessage.SigPubKey = state.CurrentMessageState.PublicKey + chatMessage.Identicon = state.CurrentMessageState.Contact.Identicon + chatMessage.WhisperTimestamp = state.CurrentMessageState.WhisperTimestamp + + chatMessage.ChatId = chat.ID + chatMessage.Text = challenge + chatMessage.ContentType = protobuf.ChatMessage_IDENTITY_VERIFICATION + chatMessage.ContactVerificationState = verificationStatus + + err := chatMessage.PrepareContent(common.PubkeyToHex(&m.identity.PublicKey)) + if err != nil { + return nil, err + } + return chatMessage, nil +} + +func (m *Messenger) createLocalContactVerificationMessage(challenge string, chat *Chat, id string, status common.ContactVerificationState) (*common.Message, error) { + + chatMessage := &common.Message{} + chatMessage.ID = id + err := extendMessageFromChat(chatMessage, chat, &m.identity.PublicKey, m.getTimesource()) + if err != nil { + return nil, err + } + + chatMessage.ChatId = chat.ID + chatMessage.Text = challenge + chatMessage.ContentType = protobuf.ChatMessage_IDENTITY_VERIFICATION + chatMessage.ContactVerificationState = status + err = extendMessageFromChat(chatMessage, chat, &m.identity.PublicKey, m.getTimesource()) + if err != nil { + return nil, err + } + + err = chatMessage.PrepareContent(common.PubkeyToHex(&m.identity.PublicKey)) + if err != nil { + return nil, err + } + return chatMessage, nil +} diff --git a/protocol/messenger_contact_verification_test.go b/protocol/messenger_contact_verification_test.go new file mode 100644 index 000000000..3307e194e --- /dev/null +++ b/protocol/messenger_contact_verification_test.go @@ -0,0 +1,254 @@ +package protocol + +import ( + "context" + "crypto/ecdsa" + "testing" + + gethbridge "github.com/status-im/status-go/eth-node/bridge/geth" + "github.com/status-im/status-go/eth-node/crypto" + "github.com/status-im/status-go/protocol/common" + "github.com/status-im/status-go/protocol/requests" + "github.com/status-im/status-go/protocol/tt" + "github.com/status-im/status-go/protocol/verification" + "github.com/status-im/status-go/waku" + + "github.com/stretchr/testify/suite" + "go.uber.org/zap" + + "github.com/status-im/status-go/eth-node/types" +) + +func TestMessengerVerificationRequests(t *testing.T) { + suite.Run(t, new(MessengerVerificationRequests)) +} + +type MessengerVerificationRequests struct { + suite.Suite + m *Messenger // main instance of Messenger + privateKey *ecdsa.PrivateKey // private key for the main instance of Messenger + + // If one wants to send messages between different instances of Messenger, + // a single Waku service should be shared. + shh types.Waku + + logger *zap.Logger +} + +func (s *MessengerVerificationRequests) SetupTest() { + s.logger = tt.MustCreateTestLogger() + config := waku.DefaultConfig + config.MinimumAcceptedPoW = 0 + shh := waku.New(&config, s.logger) + s.shh = gethbridge.NewGethWakuWrapper(shh) + s.Require().NoError(shh.Start()) + s.m = s.newMessenger(s.shh) + s.privateKey = s.m.identity + // We start the messenger in order to receive installations + _, err := s.m.Start() + s.Require().NoError(err) +} + +func (s *MessengerVerificationRequests) mutualContact(theirMessenger *Messenger) { + messageText := "hello!" + + contactID := types.EncodeHex(crypto.FromECDSAPub(&theirMessenger.identity.PublicKey)) + request := &requests.SendContactRequest{ + ID: types.Hex2Bytes(contactID), + Message: messageText, + } + + // Send contact request + resp, err := s.m.SendContactRequest(context.Background(), request) + s.Require().NoError(err) + + s.Require().NotNil(resp) + s.Require().Len(resp.Messages(), 1) + s.Require().Equal(common.ContactRequestStatePending, resp.Messages()[0].ContactRequestState) + + // Make sure it's not returned as coming from us + contactRequests, _, err := s.m.PendingContactRequests("", 10) + s.Require().NoError(err) + s.Require().Len(contactRequests, 0) + + // 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) + + // Wait for the message to reach its destination + resp, err = WaitOnMessengerResponse( + theirMessenger, + 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].ContactRequestState) + + // Make sure it's the pending contact requests + contactRequests, _, err = theirMessenger.PendingContactRequests("", 10) + s.Require().NoError(err) + s.Require().Len(contactRequests, 1) + s.Require().Equal(contactRequests[0].ContactRequestState, common.ContactRequestStatePending) + + // Accept contact request, receiver side + resp, err = theirMessenger.AcceptContactRequest(context.Background(), &requests.AcceptContactRequest{ID: types.Hex2Bytes(contactRequests[0].ID)}) + s.Require().NoError(err) + + // Make sure the message is updated + 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) + + s.Require().Len(resp.ActivityCenterNotifications(), 1) + s.Require().Equal(resp.ActivityCenterNotifications()[0].ID.String(), contactRequests[0].ID) + s.Require().NotNil(resp.ActivityCenterNotifications()[0].Message) + s.Require().Equal(common.ContactRequestStateAccepted, resp.ActivityCenterNotifications()[0].Message.ContactRequestState) + + // Check the contact state is correctly set + s.Require().Len(resp.Contacts, 1) + s.Require().Equal(ContactRequestStateMutual, resp.Contacts[0].ContactRequestState) + + // Make sure the sender is added to our contacts + contacts = theirMessenger.AddedContacts() + s.Require().Len(contacts, 1) + + // Make sure we consider them a mutual contact, receiver side + mutualContacts := theirMessenger.MutualContacts() + s.Require().Len(mutualContacts, 1) + + // Wait for the message to reach its destination + resp, err = WaitOnMessengerResponse( + s.m, + func(r *MessengerResponse) bool { + return len(r.Contacts) > 0 && len(r.Messages()) > 0 && len(r.ActivityCenterNotifications()) > 0 + }, + "no messages", + ) + 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 + 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) + + // 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) + +} + +func (s *MessengerVerificationRequests) TestVerificationRequests() { + theirMessenger := s.newMessenger(s.shh) + _, err := theirMessenger.Start() + s.Require().NoError(err) + + s.mutualContact(theirMessenger) + + theirPk := types.EncodeHex(crypto.FromECDSAPub(&theirMessenger.identity.PublicKey)) + challenge := "challenge" + + resp, err := s.m.SendContactVerificationRequest(context.Background(), theirPk, challenge) + s.Require().NoError(err) + s.Require().Len(resp.VerificationRequests, 1) + verificationRequestID := resp.VerificationRequests[0].ID + + s.Require().Len(resp.Messages(), 1) + s.Require().Equal(challenge, resp.Messages()[0].Text) + s.Require().Equal(common.ContactVerificationStatePending, resp.Messages()[0].ContactVerificationState) + + // Wait for the message to reach its destination + resp, err = WaitOnMessengerResponse( + theirMessenger, + func(r *MessengerResponse) bool { + return len(r.VerificationRequests) > 0 && len(r.ActivityCenterNotifications()) > 0 + }, + "no messages", + ) + s.Require().NoError(err) + s.Require().Len(resp.VerificationRequests, 1) + s.Require().Equal(resp.VerificationRequests[0].ID, verificationRequestID) + s.Require().Equal(resp.ActivityCenterNotifications()[0].Type, ActivityCenterNotificationTypeContactVerification) + s.Require().Equal(resp.ActivityCenterNotifications()[0].ContactVerificationStatus, verification.RequestStatusPENDING) + + s.Require().NotNil(resp.ActivityCenterNotifications()[0].Message) + s.Require().Equal(challenge, resp.ActivityCenterNotifications()[0].Message.Text) + s.Require().Equal(common.ContactVerificationStatePending, resp.ActivityCenterNotifications()[0].Message.ContactVerificationState) + s.Require().Len(resp.Messages(), 1) + s.Require().Equal(challenge, resp.Messages()[0].Text) + s.Require().Equal(common.ContactVerificationStatePending, resp.Messages()[0].ContactVerificationState) + + resp, err = theirMessenger.AcceptContactVerificationRequest(context.Background(), verificationRequestID, "hello back") + + s.Require().NoError(err) + + s.Require().NoError(err) + s.Require().Len(resp.VerificationRequests, 1) + s.Require().Equal(resp.VerificationRequests[0].ID, verificationRequestID) + s.Require().Equal(resp.VerificationRequests[0].RequestStatus, verification.RequestStatusACCEPTED) + s.Require().NotEmpty(resp.VerificationRequests[0].RepliedAt) + + s.Require().Len(resp.ActivityCenterNotifications(), 1) + s.Require().Equal(resp.ActivityCenterNotifications()[0].ID.String(), verificationRequestID) + + s.Require().Equal(resp.ActivityCenterNotifications()[0].ContactVerificationStatus, verification.RequestStatusACCEPTED) + s.Require().Equal(common.ContactVerificationStateAccepted, resp.ActivityCenterNotifications()[0].Message.ContactVerificationState) + s.Require().Len(resp.Messages(), 1) + s.Require().Equal(common.ContactVerificationStateAccepted, resp.Messages()[0].ContactVerificationState) + + // Wait for the message to reach its destination + resp, err = WaitOnMessengerResponse( + s.m, + func(r *MessengerResponse) bool { + return len(r.VerificationRequests) > 0 + }, + "no messages", + ) + s.Require().NoError(err) + s.Require().Len(resp.VerificationRequests, 1) + s.Require().Equal(resp.VerificationRequests[0].ID, verificationRequestID) + + s.Require().Len(resp.Messages(), 1) + s.Require().Equal(common.ContactVerificationStateAccepted, resp.Messages()[0].ContactVerificationState) + + s.Require().Len(resp.ActivityCenterNotifications(), 1) + s.Require().Equal(resp.ActivityCenterNotifications()[0].ID.String(), verificationRequestID) + s.Require().Equal(resp.ActivityCenterNotifications()[0].ContactVerificationStatus, verification.RequestStatusACCEPTED) + s.Require().Equal(common.ContactVerificationStateAccepted, resp.ActivityCenterNotifications()[0].Message.ContactVerificationState) +} + +func (s *MessengerVerificationRequests) TearDownTest() { + s.Require().NoError(s.m.Shutdown()) +} + +func (s *MessengerVerificationRequests) newMessenger(shh types.Waku) *Messenger { + privateKey, err := crypto.GenerateKey() + s.Require().NoError(err) + messenger, err := newMessengerWithKey(s.shh, privateKey, s.logger, nil) + s.Require().NoError(err) + return messenger +} diff --git a/protocol/migrations/migrations.go b/protocol/migrations/migrations.go index 8906bfdcb..f73e71f7a 100644 --- a/protocol/migrations/migrations.go +++ b/protocol/migrations/migrations.go @@ -66,6 +66,7 @@ // 1665079662_add_spectated_column_in_communities.up.sql (86B) // 1665479047_add_community_id_in_notifications.up.sql (169B) // 1665484435_add_encrypted_messages.up.sql (402B) +// 1665560200_add_contact_verification_individual.up.sql (474B) // README.md (554B) // doc.go (850B) @@ -151,7 +152,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(1661332898, 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 } @@ -171,7 +172,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(1661332898, 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 } @@ -191,7 +192,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(1661332898, 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 } @@ -211,7 +212,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(1661332898, 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 } @@ -231,7 +232,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(1661332898, 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 } @@ -251,7 +252,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(1661332898, 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 } @@ -271,7 +272,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(1661332898, 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 } @@ -291,7 +292,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(1661332898, 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 } @@ -311,7 +312,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(1661332898, 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 } @@ -331,7 +332,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(1661332898, 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 } @@ -351,7 +352,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(1661332898, 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 } @@ -371,7 +372,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(1661332898, 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 } @@ -391,7 +392,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(1661332898, 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 } @@ -411,7 +412,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(1661332898, 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 } @@ -431,7 +432,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(1661332898, 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 } @@ -451,7 +452,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(1661332898, 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 } @@ -471,7 +472,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(1661332898, 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 } @@ -491,7 +492,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(1661332898, 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 } @@ -511,7 +512,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(1661332898, 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 } @@ -531,7 +532,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(1661332898, 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 } @@ -551,7 +552,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(1661332898, 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 } @@ -571,7 +572,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(1661332898, 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 } @@ -591,7 +592,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(1661332898, 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 } @@ -611,7 +612,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(1661332898, 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 } @@ -631,7 +632,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(1661332898, 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 } @@ -651,7 +652,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(1661332898, 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 } @@ -671,7 +672,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(1661332898, 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 } @@ -691,7 +692,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(1661332898, 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 } @@ -711,7 +712,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(1661332898, 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 } @@ -731,7 +732,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(1661332898, 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 } @@ -751,7 +752,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(1661332898, 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 } @@ -771,7 +772,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(1661332898, 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 } @@ -791,7 +792,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(1661332898, 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 } @@ -811,7 +812,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(1661332898, 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 } @@ -831,7 +832,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(1661332898, 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 } @@ -851,7 +852,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(1661332898, 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 } @@ -871,7 +872,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(1661332898, 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 } @@ -891,7 +892,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(1661332898, 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 } @@ -911,7 +912,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(1661332898, 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 } @@ -931,7 +932,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(1661332898, 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 } @@ -951,7 +952,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(1661332898, 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 } @@ -971,7 +972,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(1661332898, 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 } @@ -991,7 +992,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(1661332898, 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 } @@ -1011,7 +1012,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(1661332898, 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 } @@ -1031,7 +1032,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(1661332898, 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 } @@ -1051,7 +1052,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(1661332898, 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 } @@ -1071,7 +1072,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(1661332898, 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 } @@ -1091,7 +1092,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(1661332898, 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 } @@ -1111,7 +1112,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(1661332898, 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 } @@ -1131,7 +1132,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(1661332898, 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 } @@ -1151,7 +1152,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(1661332898, 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 } @@ -1171,7 +1172,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(1661332898, 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 } @@ -1191,7 +1192,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(1661332898, 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 } @@ -1211,7 +1212,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(1661332898, 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 } @@ -1231,7 +1232,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(1661332898, 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 } @@ -1251,7 +1252,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(1664380759, 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 } @@ -1271,7 +1272,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(1664380759, 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 } @@ -1291,7 +1292,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(1664380759, 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 } @@ -1311,7 +1312,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(1664380759, 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 } @@ -1331,7 +1332,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(1664380759, 0)} + info := bindataFileInfo{name: "1662106895_add_chat_first_message_timestamp.up.sql", size: 113, mode: os.FileMode(0644), modTime: time.Unix(1666081963, 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 } @@ -1351,7 +1352,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(1664380759, 0)} + info := bindataFileInfo{name: "1662723928_add_discord_author_image_fields.up.sql", size: 75, mode: os.FileMode(0644), modTime: time.Unix(1666192022, 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 } @@ -1371,7 +1372,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(1664788444, 0)} + info := bindataFileInfo{name: "1664195977_add_deleted_for_mes.up.sql", size: 352, mode: os.FileMode(0644), modTime: time.Unix(1666195802, 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 } @@ -1391,7 +1392,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(1664788444, 0)} + info := bindataFileInfo{name: "1664367420_add_discord_attachments_table.up.sql", size: 350, mode: os.FileMode(0644), modTime: time.Unix(1666195802, 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 } @@ -1411,7 +1412,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(1665392898, 0)} + info := bindataFileInfo{name: "1665079662_add_spectated_column_in_communities.up.sql", size: 86, mode: os.FileMode(0644), modTime: time.Unix(1666357469, 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 } @@ -1431,7 +1432,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(1666611564, 0)} + info := bindataFileInfo{name: "1665479047_add_community_id_in_notifications.up.sql", size: 169, mode: os.FileMode(0644), modTime: time.Unix(1666784613, 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 } @@ -1451,11 +1452,31 @@ 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(1666354658, 0)} + info := bindataFileInfo{name: "1665484435_add_encrypted_messages.up.sql", size: 402, mode: os.FileMode(0644), modTime: time.Unix(1666784613, 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 } +var __1665560200_add_contact_verification_individualUpSql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x94\x8f\xc1\x6a\xf3\x30\x10\x84\xef\x7a\x8a\x3d\xfe\x3f\xf4\xd0\xbb\x4f\xaa\x2d\x83\xa9\x22\x07\x47\x86\xe4\x24\x84\xbc\x49\x05\x8e\x94\x4a\x6b\x43\xdf\xbe\xc4\x49\xd3\x06\x5a\x4a\x8f\xd2\xce\x7c\x33\xc3\xa5\x16\x1d\x68\xfe\x24\x05\x4c\x19\x93\x39\x62\xce\xf6\x80\x19\x78\x55\x41\xd9\xca\x7e\xa5\xc0\xc5\x40\xd6\x91\x99\x31\xf9\xbd\x77\x96\x7c\x0c\x26\x93\xa5\x29\x43\xa3\x74\xc1\xbe\x52\xac\x23\x3f\x7b\x7a\x33\x0e\x03\x61\x32\x21\xd2\xcd\xf4\x17\x2a\x54\xa2\xe6\xbd\xd4\xf0\x58\x30\x56\x76\x82\x6b\x71\x4d\x68\x6a\x50\xad\x06\xb1\x6d\x36\x7a\x03\x77\xf6\x84\xaf\x13\x66\xca\xc6\x87\xc1\xcf\x7e\x98\xec\x08\xff\x18\xc0\x3e\xc5\xa3\x39\xef\x03\x2d\xb6\xfa\x81\x01\x50\xbc\x7f\xbb\x17\x3b\x8e\x18\x0e\xb8\xfc\x2c\x01\xaa\x97\xf2\x7c\xba\x42\x71\x30\x96\x96\x66\x1f\xc7\xcf\x8a\x17\x59\x3e\xc5\x90\xf1\x86\x4c\x78\x1a\xfd\x6f\xae\x9f\xd6\x7f\xaf\xf6\xc3\xa5\xde\xba\x6b\x56\xbc\xdb\xc1\xb3\xd8\x41\xab\xa0\x6c\x55\x2d\x9b\x52\x43\x27\xd6\x92\x97\x82\xfd\x2f\xd8\x7b\x00\x00\x00\xff\xff\xe0\x53\x96\x59\xda\x01\x00\x00") + +func _1665560200_add_contact_verification_individualUpSqlBytes() ([]byte, error) { + return bindataRead( + __1665560200_add_contact_verification_individualUpSql, + "1665560200_add_contact_verification_individual.up.sql", + ) +} + +func _1665560200_add_contact_verification_individualUpSql() (*asset, error) { + bytes, err := _1665560200_add_contact_verification_individualUpSqlBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "1665560200_add_contact_verification_individual.up.sql", size: 474, mode: os.FileMode(0644), modTime: time.Unix(1666784614, 0)} + a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x1a, 0x9e, 0x80, 0x24, 0xd3, 0xd5, 0x19, 0x52, 0x28, 0x9f, 0xe6, 0x60, 0x3a, 0xd9, 0x8e, 0x32, 0x86, 0x7b, 0x43, 0x35, 0x9e, 0x21, 0x6e, 0x2b, 0xe5, 0x86, 0xf3, 0xcf, 0xe4, 0x6b, 0x91, 0x2f}} + 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) { @@ -1471,7 +1492,7 @@ func readmeMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "README.md", size: 554, mode: os.FileMode(0644), modTime: time.Unix(1661332898, 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 } @@ -1491,7 +1512,7 @@ func docGo() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "doc.go", size: 850, mode: os.FileMode(0644), modTime: time.Unix(1661332898, 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 } @@ -1719,6 +1740,8 @@ var _bindata = map[string]func() (*asset, error){ "1665484435_add_encrypted_messages.up.sql": _1665484435_add_encrypted_messagesUpSql, + "1665560200_add_contact_verification_individual.up.sql": _1665560200_add_contact_verification_individualUpSql, + "README.md": readmeMd, "doc.go": docGo, @@ -1831,6 +1854,7 @@ var _bintree = &bintree{nil, map[string]*bintree{ "1665079662_add_spectated_column_in_communities.up.sql": &bintree{_1665079662_add_spectated_column_in_communitiesUpSql, map[string]*bintree{}}, "1665479047_add_community_id_in_notifications.up.sql": &bintree{_1665479047_add_community_id_in_notificationsUpSql, map[string]*bintree{}}, "1665484435_add_encrypted_messages.up.sql": &bintree{_1665484435_add_encrypted_messagesUpSql, map[string]*bintree{}}, + "1665560200_add_contact_verification_individual.up.sql": &bintree{_1665560200_add_contact_verification_individualUpSql, map[string]*bintree{}}, "README.md": &bintree{readmeMd, map[string]*bintree{}}, "doc.go": &bintree{docGo, map[string]*bintree{}}, }} diff --git a/protocol/migrations/sqlite/1665560200_add_contact_verification_individual.up.sql b/protocol/migrations/sqlite/1665560200_add_contact_verification_individual.up.sql new file mode 100644 index 000000000..ccc3359df --- /dev/null +++ b/protocol/migrations/sqlite/1665560200_add_contact_verification_individual.up.sql @@ -0,0 +1,13 @@ +ALTER TABLE user_messages ADD COLUMN contact_verification_status INT; +ALTER TABLE activity_center_notifications ADD COLUMN contact_verification_status INT DEFAULT 0; + +CREATE TABLE IF NOT EXISTS verification_requests_individual ( + from_user TEXT, + to_user TEXT, + challenge TEXT NOT NULL, + requested_at INT NOT NULL DEFAULT 0, + response TEXT, + replied_at INT NOT NULL DEFAULT 0, + verification_status INT NOT NULL DEFAULT 0, + id TEXT PRIMARY KEY ON CONFLICT REPLACE +); diff --git a/protocol/persistence_test.go b/protocol/persistence_test.go index 40d9173e7..4598794a6 100644 --- a/protocol/persistence_test.go +++ b/protocol/persistence_test.go @@ -765,7 +765,7 @@ func TestPersistenceEmojiReactions(t *testing.T) { } func openTestDB() (*sql.DB, error) { - dbPath, err := ioutil.TempFile("", "") + dbPath, err := ioutil.TempFile("", "status-go-test-db-") if err != nil { return nil, err } @@ -1323,6 +1323,233 @@ func TestConfirmationsAtLeastOne(t *testing.T) { require.Equal(t, types.HexBytes(messageID1), messageID) } +func TestActivityCenterReadUnread(t *testing.T) { + nID1 := types.HexBytes([]byte("1")) + nID2 := types.HexBytes([]byte("2")) + // nID3 := types.HexBytes([]byte("3")) + // nID4 := types.HexBytes([]byte("4")) + + db, err := openTestDB() + require.NoError(t, err) + p := newSQLitePersistence(db) + + chat := CreatePublicChat("test-chat", &testTimeSource{}) + message := &common.Message{} + message.Text = "sample text" + chat.LastMessage = message + err = p.SaveChat(*chat) + require.NoError(t, err) + + notification := &ActivityCenterNotification{ + ID: nID1, + Type: ActivityCenterNotificationTypeNewOneToOne, + ChatID: chat.ID, + Timestamp: 1, + } + + err = p.SaveActivityCenterNotification(notification) + require.NoError(t, err) + + notification = &ActivityCenterNotification{ + ID: nID2, + Type: ActivityCenterNotificationTypeNewOneToOne, + ChatID: chat.ID, + Timestamp: 1, + } + + err = p.SaveActivityCenterNotification(notification) + require.NoError(t, err) + + // Mark the notification as read + err = p.MarkActivityCenterNotificationsRead([]types.HexBytes{nID2}) + require.NoError(t, err) + + cursor, notifications, err := p.UnreadActivityCenterNotifications("", 2, ActivityCenterNotificationTypeNewOneToOne) + require.NoError(t, err) + require.Empty(t, cursor) + require.Len(t, notifications, 1) + require.Equal(t, nID1, notifications[0].ID) + + cursor, notifications, err = p.ReadActivityCenterNotifications("", 2, ActivityCenterNotificationTypeNewOneToOne) + require.NoError(t, err) + require.Empty(t, cursor) + require.Len(t, notifications, 1) + require.Equal(t, nID2, notifications[0].ID) +} + +func TestActivityCenterReadUnreadFilterByType(t *testing.T) { + db, err := openTestDB() + require.NoError(t, err) + p := newSQLitePersistence(db) + + chat := CreatePublicChat("test-chat", &testTimeSource{}) + message := &common.Message{} + message.Text = "sample text" + chat.LastMessage = message + err = p.SaveChat(*chat) + require.NoError(t, err) + + initialCursor := "" + limit := uint64(3) + + nID1 := types.HexBytes([]byte("1")) + nID2 := types.HexBytes([]byte("2")) + nID3 := types.HexBytes([]byte("3")) + + allNotifications := []*ActivityCenterNotification{ + { + ID: nID1, + Type: ActivityCenterNotificationTypeMention, + ChatID: chat.ID, + Timestamp: 1, + }, + { + ID: nID2, + Type: ActivityCenterNotificationTypeNewOneToOne, + ChatID: chat.ID, + Timestamp: 1, + }, + { + ID: nID3, + Type: ActivityCenterNotificationTypeMention, + ChatID: chat.ID, + Timestamp: 1, + }, + } + + for _, notification := range allNotifications { + err = p.SaveActivityCenterNotification(notification) + require.NoError(t, err) + } + + _, notifications, err := p.UnreadActivityCenterNotifications(initialCursor, limit, ActivityCenterNotificationTypeNewOneToOne) + require.NoError(t, err) + require.Len(t, notifications, 1) + require.Equal(t, nID2, notifications[0].ID) + + _, notifications, err = p.UnreadActivityCenterNotifications(initialCursor, limit, ActivityCenterNotificationTypeMention) + require.NoError(t, err) + require.Len(t, notifications, 2) + require.Equal(t, nID3, notifications[0].ID) + require.Equal(t, nID1, notifications[1].ID) + + // Mark all notifications as read. + for _, notification := range allNotifications { + err = p.MarkActivityCenterNotificationsRead([]types.HexBytes{notification.ID}) + require.NoError(t, err) + } + + _, notifications, err = p.ReadActivityCenterNotifications(initialCursor, limit, ActivityCenterNotificationTypeNewOneToOne) + require.NoError(t, err) + require.Len(t, notifications, 1) + require.Equal(t, nID2, notifications[0].ID) + + _, notifications, err = p.ReadActivityCenterNotifications(initialCursor, limit, ActivityCenterNotificationTypeMention) + require.NoError(t, err) + require.Len(t, notifications, 2) + require.Equal(t, nID3, notifications[0].ID) + require.Equal(t, nID1, notifications[1].ID) +} + +func TestActivityCenterReadUnreadPagination(t *testing.T) { + db, err := openTestDB() + require.NoError(t, err) + p := newSQLitePersistence(db) + + initialOrFinalCursor := "" + + chat := CreatePublicChat("test-chat", &testTimeSource{}) + message := &common.Message{} + message.Text = "sample text" + chat.LastMessage = message + err = p.SaveChat(*chat) + require.NoError(t, err) + + nID1 := types.HexBytes([]byte("1")) + nID2 := types.HexBytes([]byte("2")) + nID3 := types.HexBytes([]byte("3")) + nID4 := types.HexBytes([]byte("4")) + nID5 := types.HexBytes([]byte("5")) + + allNotifications := []*ActivityCenterNotification{ + { + ID: nID1, + Type: ActivityCenterNotificationTypeNewOneToOne, + ChatID: chat.ID, + Timestamp: 1, + }, + { + ID: nID2, + Type: ActivityCenterNotificationTypeNewOneToOne, + ChatID: chat.ID, + Timestamp: 1, + }, + { + ID: nID3, + Type: ActivityCenterNotificationTypeNewOneToOne, + ChatID: chat.ID, + Timestamp: 1, + }, + { + ID: nID4, + Type: ActivityCenterNotificationTypeNewOneToOne, + ChatID: chat.ID, + Timestamp: 1, + }, + { + ID: nID5, + Type: ActivityCenterNotificationTypeNewOneToOne, + ChatID: chat.ID, + Timestamp: 1, + }, + } + + for _, notification := range allNotifications { + err = p.SaveActivityCenterNotification(notification) + require.NoError(t, err) + } + + // Mark the notification as read + err = p.MarkActivityCenterNotificationsRead([]types.HexBytes{nID2}) + require.NoError(t, err) + err = p.MarkActivityCenterNotificationsRead([]types.HexBytes{nID4}) + require.NoError(t, err) + + // Fetch UNREAD notifications, first page. + cursor, notifications, err := p.UnreadActivityCenterNotifications(initialOrFinalCursor, 1, ActivityCenterNotificationTypeNewOneToOne) + require.NoError(t, err) + require.Len(t, notifications, 1) + require.Equal(t, nID5, notifications[0].ID) + require.NotEmpty(t, cursor) + + // Fetch next pages. + cursor, notifications, err = p.UnreadActivityCenterNotifications(cursor, 1, ActivityCenterNotificationTypeNewOneToOne) + require.NoError(t, err) + require.Len(t, notifications, 1) + require.Equal(t, nID3, notifications[0].ID) + require.NotEmpty(t, cursor) + + cursor, notifications, err = p.UnreadActivityCenterNotifications(cursor, 1, ActivityCenterNotificationTypeNewOneToOne) + require.NoError(t, err) + require.Len(t, notifications, 1) + require.Equal(t, nID1, notifications[0].ID) + require.Empty(t, cursor) + + // Fetch READ notifications, first page. + cursor, notifications, err = p.ReadActivityCenterNotifications(initialOrFinalCursor, 1, ActivityCenterNotificationTypeNewOneToOne) + require.NoError(t, err) + require.Len(t, notifications, 1) + require.Equal(t, nID4, notifications[0].ID) + require.NotEmpty(t, cursor) + + // Fetch next page. + cursor, notifications, err = p.ReadActivityCenterNotifications(cursor, 1, ActivityCenterNotificationTypeNewOneToOne) + require.NoError(t, err) + require.Len(t, notifications, 1) + require.Equal(t, nID2, notifications[0].ID) + require.Empty(t, cursor) +} + func TestActivityCenterPersistence(t *testing.T) { nID1 := types.HexBytes([]byte("1")) nID2 := types.HexBytes([]byte("2")) diff --git a/protocol/protobuf/chat_message.pb.go b/protocol/protobuf/chat_message.pb.go index 4d6b33337..2e7c0f2d0 100644 --- a/protocol/protobuf/chat_message.pb.go +++ b/protocol/protobuf/chat_message.pb.go @@ -63,9 +63,10 @@ const ( ChatMessage_AUDIO ChatMessage_ContentType = 8 ChatMessage_COMMUNITY ChatMessage_ContentType = 9 // Only local - ChatMessage_SYSTEM_MESSAGE_GAP ChatMessage_ContentType = 10 - ChatMessage_CONTACT_REQUEST ChatMessage_ContentType = 11 - ChatMessage_DISCORD_MESSAGE ChatMessage_ContentType = 12 + ChatMessage_SYSTEM_MESSAGE_GAP ChatMessage_ContentType = 10 + ChatMessage_CONTACT_REQUEST ChatMessage_ContentType = 11 + ChatMessage_DISCORD_MESSAGE ChatMessage_ContentType = 12 + ChatMessage_IDENTITY_VERIFICATION ChatMessage_ContentType = 13 ) var ChatMessage_ContentType_name = map[int32]string{ @@ -82,6 +83,7 @@ var ChatMessage_ContentType_name = map[int32]string{ 10: "SYSTEM_MESSAGE_GAP", 11: "CONTACT_REQUEST", 12: "DISCORD_MESSAGE", + 13: "IDENTITY_VERIFICATION", } var ChatMessage_ContentType_value = map[string]int32{ @@ -98,6 +100,7 @@ var ChatMessage_ContentType_value = map[string]int32{ "SYSTEM_MESSAGE_GAP": 10, "CONTACT_REQUEST": 11, "DISCORD_MESSAGE": 12, + "IDENTITY_VERIFICATION": 13, } func (x ChatMessage_ContentType) String() string { @@ -822,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 @@ -1113,82 +1115,83 @@ func init() { } var fileDescriptor_263952f55fd35689 = []byte{ - // 1219 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0x5f, 0x8f, 0xdb, 0x44, - 0x10, 0xbf, 0xfc, 0x8f, 0xc7, 0xb9, 0x9c, 0xd9, 0x96, 0x9e, 0x29, 0xa5, 0x4d, 0xad, 0x4a, 0xcd, - 0x53, 0x90, 0x4a, 0x41, 0x95, 0x78, 0x40, 0x6e, 0x62, 0xae, 0xa6, 0x24, 0xb9, 0xae, 0x1d, 0xa0, - 0xbc, 0x44, 0x5b, 0x7b, 0xef, 0x62, 0x5d, 0x62, 0x07, 0x7b, 0x53, 0x11, 0xde, 0xf9, 0x38, 0xbc, - 0xf2, 0x4d, 0xf8, 0x0a, 0x7c, 0x00, 0xc4, 0x07, 0x40, 0xbb, 0xf6, 0xc6, 0x76, 0xb8, 0x5c, 0xab, - 0x3e, 0x79, 0x67, 0x3c, 0x7f, 0x7f, 0x33, 0x3b, 0x3b, 0x80, 0xbc, 0x05, 0x61, 0xf3, 0x15, 0x4d, - 0x12, 0x72, 0x49, 0x07, 0xeb, 0x38, 0x62, 0x11, 0x6a, 0x8b, 0xcf, 0x9b, 0xcd, 0xc5, 0x5d, 0x95, - 0x86, 0x9b, 0x55, 0x92, 0xb2, 0x8d, 0x67, 0xd0, 0x75, 0x58, 0xe0, 0x5d, 0xd1, 0x78, 0x9c, 0x8a, - 0x23, 0x04, 0xf5, 0x05, 0x49, 0x16, 0x7a, 0xa5, 0x57, 0xe9, 0x2b, 0x58, 0x9c, 0x39, 0x6f, 0x4d, - 0xbc, 0x2b, 0xbd, 0xda, 0xab, 0xf4, 0x1b, 0x58, 0x9c, 0x8d, 0x57, 0xd0, 0xb1, 0x57, 0xe4, 0x92, - 0x4a, 0x3d, 0x1d, 0x5a, 0x6b, 0xb2, 0x5d, 0x46, 0xc4, 0x17, 0xaa, 0x1d, 0x2c, 0x49, 0xf4, 0x18, - 0xea, 0x6c, 0xbb, 0xa6, 0x42, 0xbb, 0xfb, 0xe4, 0xd6, 0x40, 0x46, 0x32, 0x10, 0xfa, 0xee, 0x76, - 0x4d, 0xb1, 0x10, 0x30, 0xfe, 0xac, 0x40, 0xc7, 0xdc, 0xf8, 0x41, 0xf4, 0x6e, 0x9b, 0x4f, 0x4b, - 0x36, 0x7b, 0xb9, 0xcd, 0xa2, 0x7e, 0x4a, 0xe4, 0x0e, 0xd0, 0x03, 0x50, 0xfd, 0x4d, 0x4c, 0x58, - 0x10, 0x85, 0xf3, 0x55, 0xa2, 0xd7, 0x7a, 0x95, 0x7e, 0x1d, 0x83, 0x64, 0x8d, 0x13, 0xe3, 0x4b, - 0x50, 0x76, 0x3a, 0xe8, 0x0e, 0xa0, 0xd9, 0xe4, 0xe5, 0x64, 0xfa, 0xe3, 0x64, 0x6e, 0xce, 0x46, - 0xf6, 0x74, 0xee, 0xbe, 0x3e, 0xb7, 0xb4, 0x23, 0xd4, 0x82, 0x9a, 0x69, 0x0e, 0xb5, 0x8a, 0x38, - 0x8c, 0xb1, 0x56, 0x35, 0x7e, 0xaf, 0x82, 0x6a, 0xf9, 0x01, 0x93, 0x71, 0xdf, 0x86, 0x86, 0xb7, - 0x8c, 0xbc, 0x2b, 0x11, 0x75, 0x1d, 0xa7, 0x04, 0x47, 0x91, 0xd1, 0x5f, 0x99, 0x88, 0x59, 0xc1, - 0xe2, 0x8c, 0x4e, 0xa1, 0x25, 0x8a, 0x15, 0xf8, 0x22, 0x1a, 0x05, 0x37, 0x39, 0x69, 0xfb, 0xe8, - 0x33, 0x80, 0xac, 0x80, 0xfc, 0x5f, 0x5d, 0xfc, 0x53, 0x32, 0x8e, 0xed, 0x73, 0x0f, 0x97, 0x31, - 0x09, 0x99, 0xde, 0x10, 0xb8, 0xa4, 0x04, 0x7a, 0x06, 0x1d, 0xa9, 0x24, 0xd0, 0x69, 0x0a, 0x74, - 0x3e, 0xce, 0xd1, 0xc9, 0x02, 0x14, 0x90, 0xa8, 0xab, 0x9c, 0x40, 0x23, 0xe8, 0x78, 0x51, 0xc8, - 0x68, 0xc8, 0x52, 0xcd, 0x96, 0xd0, 0x7c, 0x98, 0x6b, 0x0e, 0x17, 0x44, 0xa6, 0x37, 0x18, 0xa6, - 0x92, 0xa9, 0x15, 0x2f, 0x27, 0x8c, 0x3f, 0x2a, 0x70, 0x3c, 0xa2, 0x4b, 0xca, 0xe8, 0xcd, 0x48, - 0x14, 0xb2, 0xae, 0xde, 0x90, 0x75, 0xed, 0x60, 0xd6, 0xf5, 0x9b, 0xb2, 0x6e, 0xbc, 0x6f, 0xd6, - 0x86, 0x0d, 0x28, 0x0d, 0xf7, 0xdb, 0x28, 0x1e, 0xbf, 0x23, 0xe6, 0x72, 0x68, 0xd5, 0xbd, 0xd0, - 0x8c, 0xbf, 0xaa, 0xd0, 0x1d, 0x05, 0x89, 0x17, 0xc5, 0xbe, 0xb4, 0xd3, 0x85, 0x6a, 0xe0, 0x67, - 0xf7, 0xa8, 0x1a, 0xf8, 0xa2, 0xfe, 0xb2, 0x67, 0x95, 0xac, 0x23, 0xef, 0x81, 0xc2, 0x82, 0x15, - 0x4d, 0x18, 0x59, 0xad, 0x65, 0xbe, 0x3b, 0x06, 0xea, 0xc3, 0xc9, 0x8e, 0xe0, 0xfd, 0x45, 0x65, - 0x27, 0xec, 0xb3, 0xf9, 0x4d, 0xc9, 0x0a, 0x21, 0xd2, 0x57, 0xb0, 0x24, 0xd1, 0x57, 0xd0, 0x24, - 0x1b, 0xb6, 0x88, 0x62, 0xd1, 0x0d, 0xea, 0x93, 0xfb, 0x39, 0x2e, 0xe5, 0x78, 0x4d, 0x21, 0x85, - 0x33, 0x69, 0xf4, 0x0d, 0x28, 0x31, 0xbd, 0xa0, 0x31, 0x0d, 0xbd, 0xb4, 0x1d, 0xd4, 0x62, 0x3b, - 0x94, 0x55, 0xb1, 0x14, 0xc4, 0xb9, 0x0e, 0x1a, 0x81, 0x4a, 0x18, 0x23, 0xde, 0x62, 0x45, 0x43, - 0x96, 0xe8, 0xed, 0x5e, 0xad, 0xaf, 0x3e, 0x31, 0x0e, 0x7a, 0xdf, 0x89, 0xe2, 0xa2, 0x9a, 0xf1, - 0x77, 0x05, 0x6e, 0x5f, 0x17, 0xe7, 0x75, 0xe8, 0x86, 0x64, 0xb5, 0x43, 0x97, 0x9f, 0xd1, 0x23, - 0x38, 0xf6, 0x83, 0xc4, 0x8b, 0x83, 0x55, 0x10, 0x12, 0x16, 0xc5, 0x19, 0xc2, 0x65, 0x26, 0xba, - 0x0b, 0xed, 0x30, 0xf0, 0xae, 0x84, 0x76, 0x0a, 0xef, 0x8e, 0xe6, 0xf5, 0x21, 0x6f, 0x09, 0x23, - 0xf1, 0x2c, 0x5e, 0x66, 0xc8, 0xe6, 0x0c, 0x34, 0x00, 0x94, 0x12, 0x62, 0x92, 0x9d, 0x67, 0xa3, - 0xaa, 0x29, 0x9a, 0xf3, 0x9a, 0x3f, 0xdc, 0xd3, 0x32, 0xf2, 0xc8, 0x92, 0x1b, 0x6b, 0xa5, 0x9e, - 0x24, 0x6d, 0x44, 0x70, 0x7a, 0x00, 0x54, 0x1e, 0xc4, 0xae, 0xd1, 0xb2, 0x8c, 0x0b, 0x97, 0xe2, - 0x1e, 0x28, 0xde, 0x82, 0x84, 0x21, 0x5d, 0xda, 0xbb, 0xbe, 0xdc, 0x31, 0x78, 0x63, 0x5c, 0x6e, - 0x82, 0xa5, 0x6f, 0xcb, 0xeb, 0x24, 0x49, 0xe3, 0xdf, 0x0a, 0xe8, 0x87, 0x6a, 0xf0, 0x3f, 0x74, - 0x4b, 0x21, 0xec, 0x37, 0x3f, 0xd2, 0xa0, 0xb6, 0x89, 0x97, 0x99, 0x03, 0x7e, 0xe4, 0x99, 0x5e, - 0x04, 0x4b, 0x3a, 0x29, 0x60, 0x2a, 0x69, 0x5e, 0x15, 0x7e, 0x76, 0x82, 0xdf, 0xe8, 0xf3, 0x2d, - 0xa3, 0x89, 0xc0, 0xb5, 0x8e, 0xcb, 0x4c, 0xd4, 0x83, 0xe2, 0x68, 0x11, 0xa0, 0x2a, 0xa5, 0x69, - 0x53, 0x7c, 0x1d, 0x5a, 0xe5, 0xd7, 0xa1, 0x88, 0x73, 0x7b, 0x0f, 0xe7, 0x7f, 0xda, 0xa0, 0x16, - 0x86, 0xd9, 0x81, 0xdb, 0x5e, 0xba, 0x97, 0x55, 0xf1, 0xa7, 0x70, 0x2f, 0xe5, 0x24, 0xaf, 0x15, - 0x26, 0xf9, 0x03, 0x50, 0x63, 0x9a, 0xac, 0xa3, 0x30, 0xa1, 0x73, 0x16, 0x65, 0x49, 0x83, 0x64, - 0xb9, 0x11, 0xfa, 0x04, 0xda, 0x34, 0x4c, 0xe6, 0xa2, 0xcd, 0xb2, 0x3b, 0x4a, 0xc3, 0x44, 0x20, - 0x52, 0x98, 0x87, 0xcd, 0xd2, 0x3c, 0xdc, 0x1f, 0x6d, 0xad, 0x0f, 0x1e, 0xe8, 0xed, 0x0f, 0x19, - 0xe8, 0xe8, 0x29, 0xb4, 0x92, 0x74, 0x3d, 0xd0, 0x15, 0x31, 0x02, 0xf4, 0xdc, 0x40, 0x79, 0x6f, - 0x78, 0x71, 0x84, 0xa5, 0x28, 0x1a, 0x40, 0x23, 0xe0, 0x6d, 0xaf, 0x83, 0xd0, 0xb9, 0xb3, 0xf7, - 0xe2, 0xe7, 0x1a, 0xa9, 0x18, 0x97, 0x27, 0xfc, 0xd5, 0xd5, 0xd5, 0x7d, 0xf9, 0xe2, 0x6b, 0xce, - 0xe5, 0x85, 0x18, 0xba, 0x0f, 0x8a, 0x17, 0xad, 0x56, 0x9b, 0x30, 0x60, 0x5b, 0xbd, 0xc3, 0x4b, - 0xff, 0xe2, 0x08, 0xe7, 0x2c, 0x34, 0x84, 0x13, 0x3f, 0x6d, 0x6c, 0xb9, 0x04, 0xe9, 0xde, 0x7e, - 0xf4, 0xe5, 0xce, 0x7f, 0x71, 0x84, 0xbb, 0x7e, 0x79, 0x7a, 0xef, 0xde, 0x9a, 0xe3, 0xe2, 0x5b, - 0xf3, 0x10, 0x3a, 0x7e, 0x90, 0xac, 0x97, 0x64, 0x9b, 0x16, 0xb2, 0x9b, 0xb6, 0x65, 0xc6, 0x13, - 0xc5, 0xbc, 0x80, 0xfb, 0x09, 0x87, 0x9d, 0xe3, 0x48, 0x3c, 0x36, 0x8f, 0xe9, 0x2f, 0x1b, 0x9a, - 0xb0, 0x79, 0x12, 0x5c, 0x86, 0x84, 0x6d, 0x62, 0xaa, 0x9f, 0xec, 0x4f, 0xd3, 0x61, 0x2a, 0x8a, - 0x53, 0x49, 0x47, 0x0a, 0xe2, 0x4f, 0xb9, 0xa1, 0x03, 0x3f, 0x51, 0x08, 0x46, 0x4c, 0x3d, 0x1a, - 0xbc, 0xa5, 0xfe, 0x0d, 0xbe, 0xb4, 0xf7, 0xf5, 0xf5, 0x40, 0x1a, 0x3b, 0xe4, 0xef, 0x31, 0x9c, - 0x48, 0x37, 0x12, 0xd5, 0x8f, 0x7a, 0x95, 0x7e, 0x1b, 0x77, 0x33, 0x76, 0x86, 0x9c, 0xd8, 0x86, - 0x86, 0xa5, 0x7b, 0x7a, 0x5b, 0xee, 0x51, 0xc3, 0xe9, 0xc4, 0xb5, 0x26, 0xae, 0xdc, 0xa4, 0xba, - 0x00, 0xae, 0xf5, 0x93, 0x3b, 0x3f, 0xff, 0xde, 0xb4, 0x27, 0x5a, 0x05, 0xa9, 0xd0, 0x72, 0x5c, - 0x7b, 0xf8, 0xd2, 0xc2, 0x5a, 0x15, 0x01, 0x34, 0x1d, 0xd7, 0x74, 0x67, 0x8e, 0x56, 0x43, 0x0a, - 0x34, 0xac, 0xf1, 0xf4, 0x3b, 0x5b, 0xab, 0xa3, 0x53, 0xb8, 0xe5, 0x62, 0x73, 0xe2, 0x98, 0x43, - 0xd7, 0x9e, 0x72, 0x8b, 0xe3, 0xb1, 0x39, 0x19, 0x69, 0x0d, 0xd4, 0x87, 0x47, 0xce, 0x6b, 0xc7, - 0xb5, 0xc6, 0xf3, 0xb1, 0xe5, 0x38, 0xe6, 0x99, 0xb5, 0xf3, 0x76, 0x8e, 0xed, 0x1f, 0x4c, 0xd7, - 0x9a, 0x9f, 0xe1, 0xe9, 0xec, 0x5c, 0x6b, 0x72, 0x6b, 0xf6, 0xd8, 0x3c, 0xb3, 0xb4, 0x16, 0x3f, - 0x8a, 0xdd, 0x4e, 0x6b, 0xa3, 0x63, 0x50, 0xb8, 0xb1, 0xd9, 0xc4, 0x76, 0x5f, 0x6b, 0x0a, 0xdf, - 0xfe, 0xf6, 0xcc, 0x9d, 0x99, 0xe7, 0x1a, 0xa0, 0x5b, 0x70, 0xc2, 0xed, 0x9a, 0x43, 0x77, 0x8e, - 0xad, 0x57, 0x33, 0xcb, 0x71, 0x35, 0x95, 0x33, 0x47, 0xb6, 0x33, 0x9c, 0xe2, 0x91, 0x94, 0xd6, - 0x3a, 0xcf, 0x95, 0xdd, 0x7c, 0x32, 0x66, 0x70, 0x7a, 0x08, 0xd6, 0x7b, 0xa0, 0xe4, 0xd5, 0x4a, - 0xb7, 0xdc, 0x9c, 0x71, 0xf3, 0x1c, 0x7a, 0x7e, 0xfc, 0xb3, 0x3a, 0xf8, 0xfc, 0x6b, 0x59, 0xda, - 0x37, 0x4d, 0x71, 0xfa, 0xe2, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xdb, 0xff, 0x5a, 0x16, 0x00, - 0x0c, 0x00, 0x00, + // 1245 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0xcb, 0x6e, 0xdb, 0x46, + 0x17, 0xb6, 0xee, 0xe2, 0xa1, 0x2c, 0xf3, 0x9f, 0x5c, 0xcc, 0xe4, 0x4f, 0x13, 0x85, 0x08, 0x10, + 0xad, 0x54, 0x20, 0x4d, 0x8b, 0x00, 0x5d, 0x14, 0x8c, 0xc4, 0x38, 0x6c, 0x2a, 0xc9, 0x19, 0x51, + 0x69, 0xdd, 0x0d, 0x31, 0x21, 0xc7, 0x16, 0x61, 0x89, 0x54, 0xc9, 0x51, 0x50, 0x77, 0xdf, 0x65, + 0xdf, 0xa1, 0x2f, 0xd0, 0x6d, 0xdf, 0xa4, 0xaf, 0xd0, 0x27, 0xe8, 0x03, 0x14, 0x33, 0xe4, 0x88, + 0xa4, 0x1a, 0x39, 0x41, 0x56, 0x9c, 0x73, 0x78, 0xae, 0xdf, 0xb9, 0xcc, 0x00, 0xf2, 0x16, 0x84, + 0xb9, 0x2b, 0x9a, 0x24, 0xe4, 0x82, 0x0e, 0xd6, 0x71, 0xc4, 0x22, 0xd4, 0x16, 0x9f, 0xb7, 0x9b, + 0xf3, 0xbb, 0x2a, 0x0d, 0x37, 0xab, 0x24, 0x65, 0x1b, 0xcf, 0xa0, 0x3b, 0x63, 0x81, 0x77, 0x49, + 0xe3, 0x71, 0x2a, 0x8e, 0x10, 0xd4, 0x17, 0x24, 0x59, 0xe8, 0x95, 0x5e, 0xa5, 0xaf, 0x60, 0x71, + 0xe6, 0xbc, 0x35, 0xf1, 0x2e, 0xf5, 0x6a, 0xaf, 0xd2, 0x6f, 0x60, 0x71, 0x36, 0x5e, 0x43, 0xc7, + 0x5e, 0x91, 0x0b, 0x2a, 0xf5, 0x74, 0x68, 0xad, 0xc9, 0xd5, 0x32, 0x22, 0xbe, 0x50, 0xed, 0x60, + 0x49, 0xa2, 0xc7, 0x50, 0x67, 0x57, 0x6b, 0x2a, 0xb4, 0xbb, 0x4f, 0x6e, 0x0c, 0x64, 0x24, 0x03, + 0xa1, 0xef, 0x5c, 0xad, 0x29, 0x16, 0x02, 0xc6, 0x9f, 0x15, 0xe8, 0x98, 0x1b, 0x3f, 0x88, 0x3e, + 0x6c, 0xf3, 0x69, 0xc9, 0x66, 0x2f, 0xb7, 0x59, 0xd4, 0x4f, 0x89, 0xdc, 0x01, 0x7a, 0x00, 0xaa, + 0xbf, 0x89, 0x09, 0x0b, 0xa2, 0xd0, 0x5d, 0x25, 0x7a, 0xad, 0x57, 0xe9, 0xd7, 0x31, 0x48, 0xd6, + 0x38, 0x31, 0xbe, 0x04, 0x65, 0xab, 0x83, 0x6e, 0x03, 0x9a, 0x4f, 0x5e, 0x4d, 0xa6, 0xdf, 0x4f, + 0x5c, 0x73, 0x3e, 0xb2, 0xa7, 0xae, 0x73, 0x76, 0x6a, 0x69, 0x07, 0xa8, 0x05, 0x35, 0xd3, 0x1c, + 0x6a, 0x15, 0x71, 0x18, 0x63, 0xad, 0x6a, 0xfc, 0x5a, 0x05, 0xd5, 0xf2, 0x03, 0x26, 0xe3, 0xbe, + 0x09, 0x0d, 0x6f, 0x19, 0x79, 0x97, 0x22, 0xea, 0x3a, 0x4e, 0x09, 0x8e, 0x22, 0xa3, 0x3f, 0x33, + 0x11, 0xb3, 0x82, 0xc5, 0x19, 0x1d, 0x43, 0x4b, 0x14, 0x2b, 0xf0, 0x45, 0x34, 0x0a, 0x6e, 0x72, + 0xd2, 0xf6, 0xd1, 0x67, 0x00, 0x59, 0x01, 0xf9, 0xbf, 0xba, 0xf8, 0xa7, 0x64, 0x1c, 0xdb, 0xe7, + 0x1e, 0x2e, 0x62, 0x12, 0x32, 0xbd, 0x21, 0x70, 0x49, 0x09, 0xf4, 0x0c, 0x3a, 0x52, 0x49, 0xa0, + 0xd3, 0x14, 0xe8, 0xdc, 0xca, 0xd1, 0xc9, 0x02, 0x14, 0x90, 0xa8, 0xab, 0x9c, 0x40, 0x23, 0xe8, + 0x78, 0x51, 0xc8, 0x68, 0xc8, 0x52, 0xcd, 0x96, 0xd0, 0x7c, 0x98, 0x6b, 0x0e, 0x17, 0x44, 0xa6, + 0x37, 0x18, 0xa6, 0x92, 0xa9, 0x15, 0x2f, 0x27, 0x8c, 0x3f, 0x2a, 0x70, 0x38, 0xa2, 0x4b, 0xca, + 0xe8, 0xf5, 0x48, 0x14, 0xb2, 0xae, 0x5e, 0x93, 0x75, 0x6d, 0x6f, 0xd6, 0xf5, 0xeb, 0xb2, 0x6e, + 0x7c, 0x6c, 0xd6, 0x86, 0x0d, 0x28, 0x0d, 0xf7, 0x45, 0x14, 0x8f, 0x3f, 0x10, 0x73, 0x39, 0xb4, + 0xea, 0x4e, 0x68, 0xc6, 0x5f, 0x55, 0xe8, 0x8e, 0x82, 0xc4, 0x8b, 0x62, 0x5f, 0xda, 0xe9, 0x42, + 0x35, 0xf0, 0xb3, 0x39, 0xaa, 0x06, 0xbe, 0xa8, 0xbf, 0xec, 0x59, 0x25, 0xeb, 0xc8, 0x7b, 0xa0, + 0xb0, 0x60, 0x45, 0x13, 0x46, 0x56, 0x6b, 0x99, 0xef, 0x96, 0x81, 0xfa, 0x70, 0xb4, 0x25, 0x78, + 0x7f, 0x51, 0xd9, 0x09, 0xbb, 0x6c, 0x3e, 0x29, 0x59, 0x21, 0x44, 0xfa, 0x0a, 0x96, 0x24, 0xfa, + 0x0a, 0x9a, 0x64, 0xc3, 0x16, 0x51, 0x2c, 0xba, 0x41, 0x7d, 0x72, 0x3f, 0xc7, 0xa5, 0x1c, 0xaf, + 0x29, 0xa4, 0x70, 0x26, 0x8d, 0xbe, 0x01, 0x25, 0xa6, 0xe7, 0x34, 0xa6, 0xa1, 0x97, 0xb6, 0x83, + 0x5a, 0x6c, 0x87, 0xb2, 0x2a, 0x96, 0x82, 0x38, 0xd7, 0x41, 0x23, 0x50, 0x09, 0x63, 0xc4, 0x5b, + 0xac, 0x68, 0xc8, 0x12, 0xbd, 0xdd, 0xab, 0xf5, 0xd5, 0x27, 0xc6, 0x5e, 0xef, 0x5b, 0x51, 0x5c, + 0x54, 0x33, 0xfe, 0xae, 0xc0, 0xcd, 0xf7, 0xc5, 0xf9, 0x3e, 0x74, 0x43, 0xb2, 0xda, 0xa2, 0xcb, + 0xcf, 0xe8, 0x11, 0x1c, 0xfa, 0x41, 0xe2, 0xc5, 0xc1, 0x2a, 0x08, 0x09, 0x8b, 0xe2, 0x0c, 0xe1, + 0x32, 0x13, 0xdd, 0x85, 0x76, 0x18, 0x78, 0x97, 0x42, 0x3b, 0x85, 0x77, 0x4b, 0xf3, 0xfa, 0x90, + 0x77, 0x84, 0x91, 0x78, 0x1e, 0x2f, 0x33, 0x64, 0x73, 0x06, 0x1a, 0x00, 0x4a, 0x09, 0xb1, 0xc9, + 0x4e, 0xb3, 0x55, 0xd5, 0x14, 0xcd, 0xf9, 0x9e, 0x3f, 0xdc, 0xd3, 0x32, 0xf2, 0xc8, 0x92, 0x1b, + 0x6b, 0xa5, 0x9e, 0x24, 0x6d, 0x44, 0x70, 0xbc, 0x07, 0x54, 0x1e, 0xc4, 0xb6, 0xd1, 0xb2, 0x8c, + 0x0b, 0x43, 0x71, 0x0f, 0x14, 0x6f, 0x41, 0xc2, 0x90, 0x2e, 0xed, 0x6d, 0x5f, 0x6e, 0x19, 0xbc, + 0x31, 0x2e, 0x36, 0xc1, 0xd2, 0xb7, 0xe5, 0x38, 0x49, 0xd2, 0xf8, 0xa7, 0x02, 0xfa, 0xbe, 0x1a, + 0xfc, 0x07, 0xdd, 0x52, 0x08, 0xbb, 0xcd, 0x8f, 0x34, 0xa8, 0x6d, 0xe2, 0x65, 0xe6, 0x80, 0x1f, + 0x79, 0xa6, 0xe7, 0xc1, 0x92, 0x4e, 0x0a, 0x98, 0x4a, 0x9a, 0x57, 0x85, 0x9f, 0x67, 0xc1, 0x2f, + 0xf4, 0xf9, 0x15, 0xa3, 0x89, 0xc0, 0xb5, 0x8e, 0xcb, 0x4c, 0xd4, 0x83, 0xe2, 0x6a, 0x11, 0xa0, + 0x2a, 0xa5, 0x6d, 0x53, 0xbc, 0x1d, 0x5a, 0xe5, 0xdb, 0xa1, 0x88, 0x73, 0x7b, 0x07, 0xe7, 0xdf, + 0x14, 0x50, 0x0b, 0xcb, 0x6c, 0xcf, 0xb4, 0x97, 0xe6, 0xb2, 0x2a, 0xfe, 0x14, 0xe6, 0x52, 0x6e, + 0xf2, 0x5a, 0x61, 0x93, 0x3f, 0x00, 0x35, 0xa6, 0xc9, 0x3a, 0x0a, 0x13, 0xea, 0xb2, 0x28, 0x4b, + 0x1a, 0x24, 0xcb, 0x89, 0xd0, 0x1d, 0x68, 0xd3, 0x30, 0x71, 0x45, 0x9b, 0x65, 0x33, 0x4a, 0xc3, + 0x44, 0x20, 0x52, 0xd8, 0x87, 0xcd, 0xd2, 0x3e, 0xdc, 0x5d, 0x6d, 0xad, 0x4f, 0x5e, 0xe8, 0xed, + 0x4f, 0x59, 0xe8, 0xe8, 0x29, 0xb4, 0x92, 0xf4, 0x79, 0xa0, 0x2b, 0x62, 0x05, 0xe8, 0xb9, 0x81, + 0xf2, 0xbb, 0xe1, 0xe5, 0x01, 0x96, 0xa2, 0x68, 0x00, 0x8d, 0x80, 0xb7, 0xbd, 0x0e, 0x42, 0xe7, + 0xf6, 0xce, 0x8d, 0x9f, 0x6b, 0xa4, 0x62, 0x5c, 0x9e, 0xf0, 0x5b, 0x57, 0x57, 0x77, 0xe5, 0x8b, + 0xb7, 0x39, 0x97, 0x17, 0x62, 0xe8, 0x3e, 0x28, 0x5e, 0xb4, 0x5a, 0x6d, 0xc2, 0x80, 0x5d, 0xe9, + 0x1d, 0x5e, 0xfa, 0x97, 0x07, 0x38, 0x67, 0xa1, 0x21, 0x1c, 0xf9, 0x69, 0x63, 0xcb, 0x47, 0x90, + 0xee, 0xed, 0x46, 0x5f, 0xee, 0xfc, 0x97, 0x07, 0xb8, 0xeb, 0x97, 0xb7, 0xf7, 0xf6, 0xae, 0x39, + 0x2c, 0xde, 0x35, 0x0f, 0xa1, 0xe3, 0x07, 0xc9, 0x7a, 0x49, 0xae, 0xd2, 0x42, 0x76, 0xd3, 0xb6, + 0xcc, 0x78, 0xa2, 0x98, 0xe7, 0x70, 0x3f, 0xe1, 0xb0, 0x73, 0x1c, 0x89, 0xc7, 0xdc, 0x98, 0xfe, + 0xb4, 0xa1, 0x09, 0x73, 0x93, 0xe0, 0x22, 0x24, 0x6c, 0x13, 0x53, 0xfd, 0x68, 0x77, 0x9b, 0x0e, + 0x53, 0x51, 0x9c, 0x4a, 0xce, 0xa4, 0x20, 0xfe, 0x3f, 0x37, 0xb4, 0xe7, 0x27, 0x0a, 0xc1, 0x88, + 0xa9, 0x47, 0x83, 0x77, 0xd4, 0xbf, 0xc6, 0x97, 0xf6, 0xb1, 0xbe, 0x1e, 0x48, 0x63, 0xfb, 0xfc, + 0x3d, 0x86, 0x23, 0xe9, 0x46, 0xa2, 0xfa, 0xbf, 0x5e, 0xa5, 0xdf, 0xc6, 0xdd, 0x8c, 0x9d, 0x21, + 0x67, 0xfc, 0x5e, 0x05, 0x75, 0x58, 0x9a, 0xd3, 0x9b, 0xf2, 0x1d, 0x35, 0x9c, 0x4e, 0x1c, 0x6b, + 0xe2, 0xc8, 0x97, 0x54, 0x17, 0xc0, 0xb1, 0x7e, 0x70, 0xdc, 0xd3, 0xef, 0x4c, 0x7b, 0xa2, 0x55, + 0x90, 0x0a, 0xad, 0x99, 0x63, 0x0f, 0x5f, 0x59, 0x58, 0xab, 0x22, 0x80, 0xe6, 0xcc, 0x31, 0x9d, + 0xf9, 0x4c, 0xab, 0x21, 0x05, 0x1a, 0xd6, 0x78, 0xfa, 0xad, 0xad, 0xd5, 0xd1, 0x31, 0xdc, 0x70, + 0xb0, 0x39, 0x99, 0x99, 0x43, 0xc7, 0x9e, 0x72, 0x8b, 0xe3, 0xb1, 0x39, 0x19, 0x69, 0x0d, 0xd4, + 0x87, 0x47, 0xb3, 0xb3, 0x99, 0x63, 0x8d, 0xdd, 0xb1, 0x35, 0x9b, 0x99, 0x27, 0xd6, 0xd6, 0xdb, + 0x29, 0xb6, 0xdf, 0x98, 0x8e, 0xe5, 0x9e, 0xe0, 0xe9, 0xfc, 0x54, 0x6b, 0x72, 0x6b, 0xf6, 0xd8, + 0x3c, 0xb1, 0xb4, 0x16, 0x3f, 0x8a, 0xb7, 0x9d, 0xd6, 0x46, 0x87, 0xa0, 0x70, 0x63, 0xf3, 0x89, + 0xed, 0x9c, 0x69, 0x0a, 0x7f, 0xfd, 0xed, 0x98, 0x3b, 0x31, 0x4f, 0x35, 0x40, 0x37, 0xe0, 0x88, + 0xdb, 0x35, 0x87, 0x8e, 0x8b, 0xad, 0xd7, 0x73, 0x6b, 0xe6, 0x68, 0x2a, 0x67, 0x8e, 0xec, 0xd9, + 0x70, 0x8a, 0x47, 0x52, 0x5a, 0xeb, 0xa0, 0x3b, 0x70, 0xcb, 0x1e, 0x59, 0x13, 0xc7, 0x76, 0xce, + 0xdc, 0x37, 0x16, 0xb6, 0x5f, 0xd8, 0x43, 0x93, 0xc7, 0xac, 0x1d, 0x3e, 0x57, 0xb6, 0xab, 0xcb, + 0x98, 0xc3, 0xf1, 0x3e, 0xc4, 0xef, 0x81, 0x92, 0x17, 0x32, 0x7d, 0x00, 0xe7, 0x8c, 0xeb, 0x57, + 0xd4, 0xf3, 0xc3, 0x1f, 0xd5, 0xc1, 0xe7, 0x5f, 0xcb, 0xaa, 0xbf, 0x6d, 0x8a, 0xd3, 0x17, 0xff, + 0x06, 0x00, 0x00, 0xff, 0xff, 0xb1, 0x6e, 0xb0, 0x0a, 0x1b, 0x0c, 0x00, 0x00, } diff --git a/protocol/protobuf/chat_message.proto b/protocol/protobuf/chat_message.proto index 971499f4a..acabaf5e5 100644 --- a/protocol/protobuf/chat_message.proto +++ b/protocol/protobuf/chat_message.proto @@ -157,6 +157,7 @@ message ChatMessage { SYSTEM_MESSAGE_GAP = 10; CONTACT_REQUEST = 11; DISCORD_MESSAGE = 12; + IDENTITY_VERIFICATION = 13; } } diff --git a/protocol/protobuf/contact_verification.pb.go b/protocol/protobuf/contact_verification.pb.go index b32cc47b2..daa5891ed 100644 --- a/protocol/protobuf/contact_verification.pb.go +++ b/protocol/protobuf/contact_verification.pb.go @@ -69,6 +69,7 @@ func (m *RequestContactVerification) GetChallenge() string { type AcceptContactVerification struct { Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` Response string `protobuf:"bytes,3,opt,name=response,proto3" json:"response,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -107,6 +108,13 @@ func (m *AcceptContactVerification) GetClock() uint64 { return 0 } +func (m *AcceptContactVerification) GetId() string { + if m != nil { + return m.Id + } + return "" +} + func (m *AcceptContactVerification) GetResponse() string { if m != nil { return m.Response @@ -116,6 +124,7 @@ func (m *AcceptContactVerification) GetResponse() string { type ContactVerificationTrusted struct { Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -153,8 +162,16 @@ func (m *ContactVerificationTrusted) GetClock() uint64 { return 0 } +func (m *ContactVerificationTrusted) GetId() string { + if m != nil { + return m.Id + } + return "" +} + type DeclineContactVerification struct { Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -192,6 +209,13 @@ func (m *DeclineContactVerification) GetClock() uint64 { return 0 } +func (m *DeclineContactVerification) GetId() string { + if m != nil { + return m.Id + } + return "" +} + func init() { proto.RegisterType((*RequestContactVerification)(nil), "protobuf.RequestContactVerification") proto.RegisterType((*AcceptContactVerification)(nil), "protobuf.AcceptContactVerification") @@ -204,17 +228,18 @@ func init() { } var fileDescriptor_d6997df64de39454 = []byte{ - // 182 bytes of a gzipped FileDescriptorProto + // 196 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4a, 0xce, 0xcf, 0x2b, 0x49, 0x4c, 0x2e, 0x89, 0x2f, 0x4b, 0x2d, 0xca, 0x4c, 0xcb, 0x4c, 0x4e, 0x2c, 0xc9, 0xcc, 0xcf, 0xd3, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x00, 0x53, 0x49, 0xa5, 0x69, 0x4a, 0x01, 0x5c, 0x52, 0x41, 0xa9, 0x85, 0xa5, 0xa9, 0xc5, 0x25, 0xce, 0x10, 0xe5, 0x61, 0x48, 0xaa, 0x85, 0x44, 0xb8, 0x58, 0x93, 0x73, 0xf2, 0x93, 0xb3, 0x25, 0x18, 0x15, 0x18, 0x35, 0x58, 0x82, 0x20, 0x1c, 0x21, 0x19, 0x2e, 0xce, 0xe4, 0x8c, 0xc4, 0x9c, 0x9c, 0xd4, 0xbc, 0xf4, 0x54, 0x09, 0x66, 0x05, - 0x46, 0x0d, 0xce, 0x20, 0x84, 0x80, 0x92, 0x2f, 0x97, 0xa4, 0x63, 0x72, 0x72, 0x6a, 0x01, 0x09, - 0x06, 0x4a, 0x71, 0x71, 0x14, 0xa5, 0x16, 0x17, 0xe4, 0xe7, 0x15, 0xc3, 0xcc, 0x83, 0xf3, 0x95, - 0x8c, 0xb8, 0xa4, 0xb0, 0x18, 0x14, 0x52, 0x54, 0x5a, 0x5c, 0x92, 0x9a, 0x82, 0xdd, 0x3c, 0x90, - 0x1e, 0x97, 0xd4, 0xe4, 0x9c, 0xcc, 0xbc, 0x54, 0xa2, 0xdd, 0xe0, 0xc4, 0x1b, 0xc5, 0xad, 0xa7, - 0x6f, 0x0d, 0x0b, 0x97, 0x24, 0x36, 0x30, 0xcb, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, 0x4f, 0x25, - 0x40, 0xb3, 0x46, 0x01, 0x00, 0x00, + 0x46, 0x0d, 0xce, 0x20, 0x84, 0x80, 0x52, 0x2c, 0x97, 0xa4, 0x63, 0x72, 0x72, 0x6a, 0x01, 0x09, + 0x06, 0xf2, 0x71, 0x31, 0x65, 0xa6, 0x48, 0x30, 0x81, 0x4d, 0x62, 0xca, 0x4c, 0x11, 0x92, 0xe2, + 0xe2, 0x28, 0x4a, 0x2d, 0x2e, 0xc8, 0xcf, 0x2b, 0x86, 0x99, 0x0f, 0xe7, 0x2b, 0x39, 0x71, 0x49, + 0x61, 0x31, 0x38, 0xa4, 0xa8, 0xb4, 0xb8, 0x24, 0x35, 0x85, 0x38, 0xf3, 0x41, 0x66, 0xb8, 0xa4, + 0x26, 0xe7, 0x64, 0xe6, 0xa5, 0x92, 0xed, 0x46, 0x27, 0xde, 0x28, 0x6e, 0x3d, 0x7d, 0x6b, 0x58, + 0x38, 0x26, 0xb1, 0x81, 0x59, 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x70, 0x15, 0x72, 0xc2, + 0x76, 0x01, 0x00, 0x00, } diff --git a/protocol/protobuf/contact_verification.proto b/protocol/protobuf/contact_verification.proto index 0c5d20313..3b0095ff0 100644 --- a/protocol/protobuf/contact_verification.proto +++ b/protocol/protobuf/contact_verification.proto @@ -10,13 +10,16 @@ message RequestContactVerification { message AcceptContactVerification { uint64 clock = 1; + string id = 2; string response = 3; } message ContactVerificationTrusted { uint64 clock = 1; + string id = 2; } message DeclineContactVerification { uint64 clock = 1; + string id = 2; } diff --git a/protocol/protobuf/membership_update_message.pb.go b/protocol/protobuf/membership_update_message.pb.go index f49cfcd0e..418cb7cfe 100644 --- a/protocol/protobuf/membership_update_message.pb.go +++ b/protocol/protobuf/membership_update_message.pb.go @@ -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"` diff --git a/protocol/protobuf/pairing.pb.go b/protocol/protobuf/pairing.pb.go index 1b4f4a7f1..67a8f7ef0 100644 --- a/protocol/protobuf/pairing.pb.go +++ b/protocol/protobuf/pairing.pb.go @@ -2024,6 +2024,7 @@ type SyncVerificationRequest struct { Response string `protobuf:"bytes,6,opt,name=response,proto3" json:"response,omitempty"` RepliedAt uint64 `protobuf:"varint,7,opt,name=replied_at,json=repliedAt,proto3" json:"replied_at,omitempty"` VerificationStatus SyncVerificationRequest_VerificationStatus `protobuf:"varint,8,opt,name=verification_status,json=verificationStatus,proto3,enum=protobuf.SyncVerificationRequest_VerificationStatus" json:"verification_status,omitempty"` + Id string `protobuf:"bytes,9,opt,name=id,proto3" json:"id,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2110,6 +2111,13 @@ func (m *SyncVerificationRequest) GetVerificationStatus() SyncVerificationReques return SyncVerificationRequest_UNKNOWN } +func (m *SyncVerificationRequest) GetId() string { + if m != nil { + return m.Id + } + return "" +} + type SyncContactRequestDecision struct { Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` RequestId string `protobuf:"bytes,2,opt,name=requestId,proto3" json:"requestId,omitempty"` @@ -2206,128 +2214,128 @@ func init() { } var fileDescriptor_d61ab7221f0b5518 = []byte{ - // 1953 bytes of a gzipped FileDescriptorProto + // 1957 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x58, 0x4f, 0x73, 0x1b, 0x49, - 0x15, 0xdf, 0x91, 0x64, 0xfd, 0x79, 0x92, 0x6c, 0x6d, 0x27, 0x24, 0xb3, 0x8e, 0x53, 0x71, 0x26, - 0x6c, 0xad, 0x0f, 0xe0, 0xa5, 0xb2, 0x50, 0x0b, 0x9b, 0xdd, 0x62, 0x15, 0x59, 0xb5, 0x51, 0xfe, - 0x28, 0xae, 0xb1, 0x9d, 0x00, 0x45, 0xd5, 0x54, 0x7b, 0xa6, 0x6d, 0x35, 0x1a, 0xcd, 0x0c, 0xd3, - 0x2d, 0x87, 0xe1, 0x03, 0x70, 0xe2, 0x40, 0x71, 0xe1, 0xca, 0x19, 0x6e, 0x1c, 0x38, 0xf1, 0x01, - 0xb8, 0x71, 0xe0, 0x08, 0xc5, 0x07, 0xe0, 0x53, 0x50, 0xaf, 0xbb, 0x47, 0x9a, 0xb1, 0x25, 0x63, - 0x8a, 0xd3, 0x9e, 0xd4, 0xef, 0xcd, 0xeb, 0xd7, 0xaf, 0xdf, 0xdf, 0x5f, 0x0b, 0xba, 0x09, 0xe5, - 0x29, 0x8f, 0xce, 0xf7, 0x93, 0x34, 0x96, 0x31, 0x69, 0xaa, 0x9f, 0xd3, 0xf9, 0x99, 0xf3, 0x07, - 0x0b, 0xea, 0x4f, 0xa9, 0x3f, 0x9d, 0x27, 0xe4, 0x36, 0x6c, 0xf8, 0x61, 0xec, 0x4f, 0x6d, 0x6b, - 0xd7, 0xda, 0xab, 0xb9, 0x9a, 0x20, 0x9b, 0x50, 0xe1, 0x81, 0x5d, 0xd9, 0xb5, 0xf6, 0x5a, 0x6e, - 0x85, 0x07, 0xe4, 0x87, 0xd0, 0xf4, 0xe3, 0x48, 0x52, 0x5f, 0x0a, 0xbb, 0xba, 0x5b, 0xdd, 0x6b, - 0x3f, 0x7e, 0xb4, 0x9f, 0x6b, 0xdb, 0x3f, 0xca, 0x22, 0x7f, 0x14, 0x09, 0x49, 0xc3, 0x90, 0x4a, - 0x1e, 0x47, 0x03, 0x2d, 0xf9, 0xe6, 0xb1, 0xbb, 0xd8, 0x44, 0x7e, 0x00, 0x6d, 0x3f, 0x9e, 0xcd, - 0xe6, 0x11, 0x97, 0x9c, 0x09, 0xbb, 0xa6, 0x74, 0xdc, 0x2d, 0xeb, 0x18, 0x18, 0x81, 0xcc, 0x2d, - 0xca, 0x3a, 0x7f, 0xa9, 0x41, 0xe7, 0xd5, 0x3c, 0x94, 0xbc, 0xef, 0xfb, 0xf1, 0x3c, 0x92, 0x84, - 0x40, 0x2d, 0xa2, 0x33, 0xa6, 0x2c, 0x6e, 0xb9, 0x6a, 0x4d, 0x76, 0xa0, 0x25, 0xf9, 0x8c, 0x09, - 0x49, 0x67, 0x89, 0xb2, 0xbb, 0xea, 0x2e, 0x19, 0xf8, 0x95, 0x07, 0x2c, 0x92, 0xdc, 0x8f, 0x23, - 0xbb, 0xaa, 0xb6, 0x2d, 0x19, 0xe4, 0x4b, 0x00, 0x3f, 0x0e, 0xe3, 0xd4, 0x9b, 0x50, 0x31, 0x31, - 0xa6, 0x3d, 0x5c, 0x9a, 0x56, 0x3c, 0x7b, 0x7f, 0x10, 0x87, 0xf1, 0x3c, 0x7d, 0x46, 0xc5, 0xc4, - 0x6d, 0xa9, 0x4d, 0xb8, 0x24, 0x36, 0x34, 0x14, 0x31, 0x0a, 0xec, 0x0d, 0x75, 0x76, 0x4e, 0x92, - 0x8f, 0x60, 0x6b, 0xca, 0x32, 0x9f, 0xa6, 0x81, 0x67, 0x82, 0x61, 0xd7, 0xd5, 0xf9, 0x9b, 0x86, - 0x7d, 0xa8, 0xb9, 0xe4, 0x2e, 0x34, 0xa6, 0x2c, 0xf3, 0xe6, 0x3c, 0xb0, 0x1b, 0x4a, 0xa0, 0x3e, - 0x65, 0xd9, 0x09, 0x0f, 0xc8, 0xe7, 0x50, 0xe7, 0x33, 0x7a, 0xce, 0x84, 0xdd, 0x54, 0x96, 0x7d, - 0x73, 0x8d, 0x65, 0x23, 0x75, 0x1f, 0x99, 0x8d, 0x50, 0xd8, 0x35, 0x7b, 0xb6, 0x1d, 0x80, 0xa5, - 0xc9, 0x18, 0x6c, 0x1e, 0x05, 0xec, 0x17, 0xb6, 0xb5, 0x5b, 0xdd, 0xab, 0xba, 0x9a, 0xd8, 0xfe, - 0x87, 0x05, 0xdd, 0xd2, 0xee, 0xa2, 0x31, 0x56, 0xc9, 0x98, 0xdc, 0xf5, 0x95, 0x82, 0xeb, 0x6d, - 0x68, 0x24, 0x34, 0x0b, 0x63, 0x1a, 0x28, 0xd7, 0x76, 0xdc, 0x9c, 0xc4, 0xe3, 0xde, 0xf1, 0x40, - 0xa2, 0x4f, 0xd1, 0x29, 0x9a, 0x20, 0x77, 0xa0, 0x3e, 0x61, 0xfc, 0x7c, 0x22, 0x8d, 0xaf, 0x0c, - 0x45, 0xb6, 0xa1, 0x79, 0xc6, 0x43, 0x26, 0xf8, 0x2f, 0x99, 0xf2, 0x51, 0xd5, 0x5d, 0xd0, 0xe4, - 0x11, 0x74, 0x53, 0xb5, 0xf2, 0x24, 0x4d, 0xcf, 0x99, 0x54, 0x3e, 0xaa, 0xba, 0x1d, 0xcd, 0x3c, - 0x56, 0xbc, 0x65, 0x2a, 0x37, 0x0b, 0xa9, 0xec, 0xfc, 0xdd, 0x82, 0x5b, 0x2f, 0x63, 0x9f, 0x86, - 0xc6, 0xd3, 0x87, 0xc6, 0xb8, 0xef, 0x41, 0x6d, 0xca, 0x32, 0xa1, 0x5c, 0x51, 0x8a, 0xf7, 0x0a, - 0xe1, 0xfd, 0x17, 0x2c, 0x73, 0x95, 0x38, 0xf9, 0x0c, 0x3a, 0x33, 0x74, 0x3b, 0xd5, 0x6e, 0x57, - 0x9e, 0x68, 0x3f, 0xbe, 0xb3, 0x3a, 0x28, 0x6e, 0x49, 0x16, 0x6f, 0x98, 0x50, 0x21, 0xde, 0xc5, - 0x69, 0x60, 0xb2, 0x70, 0x41, 0x6f, 0x7f, 0x1b, 0xaa, 0x2f, 0x58, 0xb6, 0x32, 0xb7, 0x09, 0xd4, - 0x02, 0x2a, 0xa9, 0x3a, 0xaa, 0xe3, 0xaa, 0xb5, 0xf3, 0x2b, 0x0b, 0x7a, 0x68, 0x63, 0xb1, 0xee, - 0xd6, 0xd4, 0xf2, 0x47, 0xb0, 0xc5, 0x0b, 0x52, 0xde, 0xa2, 0xb0, 0x37, 0x8b, 0xec, 0x51, 0x40, - 0x1e, 0x40, 0x3b, 0x60, 0x17, 0xdc, 0x67, 0x9e, 0xcc, 0x12, 0x66, 0x2c, 0x04, 0xcd, 0x3a, 0xce, - 0x12, 0xb6, 0x30, 0xae, 0xb6, 0x34, 0xce, 0xf9, 0xb7, 0x05, 0x77, 0xd7, 0x34, 0x80, 0x1b, 0xf6, - 0x96, 0x47, 0xd0, 0x4d, 0xd2, 0x18, 0x43, 0xed, 0xa9, 0xa4, 0x35, 0x07, 0x77, 0x0c, 0x53, 0x67, - 0xe4, 0x07, 0xd0, 0x64, 0x91, 0xf0, 0x0a, 0xc7, 0x37, 0x58, 0x24, 0xc6, 0xe8, 0x9e, 0x87, 0xd0, - 0x09, 0xa9, 0x90, 0xde, 0x3c, 0x09, 0xa8, 0x64, 0xba, 0x02, 0x6b, 0x6e, 0x1b, 0x79, 0x27, 0x9a, - 0x85, 0x37, 0x13, 0x99, 0x90, 0x6c, 0xe6, 0x49, 0x7a, 0x2e, 0xec, 0xfa, 0x6e, 0x15, 0x6f, 0xa6, - 0x59, 0xc7, 0xf4, 0x5c, 0x90, 0x0f, 0x61, 0x33, 0xc4, 0xb0, 0x7b, 0x11, 0xf7, 0xa7, 0xea, 0x10, - 0x5d, 0x84, 0x5d, 0xc5, 0x1d, 0x1b, 0xa6, 0xf3, 0xaf, 0x2a, 0x7c, 0xb0, 0xb6, 0xdb, 0x91, 0xef, - 0xc0, 0xed, 0xa2, 0x21, 0x9e, 0xda, 0x1b, 0x66, 0xe6, 0xf6, 0xa4, 0x60, 0xd0, 0x4b, 0xfd, 0xe5, - 0x6b, 0xec, 0x0a, 0x8c, 0x2d, 0x0d, 0x02, 0x16, 0xd8, 0xad, 0x5d, 0x6b, 0xaf, 0xe9, 0x6a, 0x02, - 0x7b, 0xc1, 0x29, 0x06, 0x99, 0x05, 0x36, 0x28, 0x7e, 0x4e, 0xa2, 0xfc, 0x6c, 0x8e, 0x36, 0xb5, - 0xb5, 0xbc, 0x22, 0x50, 0x3e, 0x65, 0xb3, 0xf8, 0x82, 0x05, 0x76, 0x47, 0xcb, 0x1b, 0x92, 0xec, - 0x42, 0x67, 0x42, 0x85, 0xa7, 0xd4, 0x7a, 0x73, 0x61, 0x77, 0xd5, 0x67, 0x98, 0x50, 0xd1, 0x47, - 0xd6, 0x89, 0x20, 0x1f, 0xc3, 0xad, 0x0b, 0x96, 0xf2, 0x33, 0xee, 0xeb, 0xbc, 0x16, 0x92, 0xca, - 0xb9, 0xb0, 0x37, 0x55, 0x67, 0x20, 0xc5, 0x4f, 0x47, 0xea, 0x0b, 0x7a, 0x47, 0xa6, 0x73, 0x21, - 0x73, 0xc9, 0x2d, 0x25, 0xd9, 0x56, 0x3c, 0x2d, 0xe2, 0xbc, 0xbb, 0x9a, 0xcc, 0xf9, 0xd4, 0x59, - 0x9d, 0xcc, 0x57, 0x22, 0x56, 0x59, 0x11, 0xb1, 0xcb, 0x61, 0xa9, 0x5e, 0x09, 0x8b, 0xf3, 0x14, - 0xb6, 0x2f, 0x1f, 0x7c, 0x38, 0x3f, 0x0d, 0xb9, 0x3f, 0x98, 0xd0, 0x1b, 0x16, 0x92, 0xf3, 0xeb, - 0x2a, 0x74, 0x4b, 0x73, 0xf4, 0xbf, 0xee, 0xeb, 0xa8, 0xac, 0x7b, 0x00, 0xed, 0x24, 0xe5, 0x17, - 0x54, 0x32, 0x6f, 0xca, 0x32, 0xd3, 0xc4, 0xc1, 0xb0, 0xb0, 0x29, 0xed, 0x62, 0x63, 0x10, 0x7e, - 0xca, 0x13, 0xb4, 0x4b, 0x25, 0x5d, 0xc7, 0x2d, 0xb2, 0xb0, 0xa7, 0xff, 0x2c, 0xe6, 0x91, 0x49, - 0xb9, 0xa6, 0x6b, 0x28, 0xec, 0x78, 0x3a, 0x10, 0x2c, 0x50, 0x3d, 0xbd, 0xe9, 0x2e, 0xe8, 0x65, - 0x46, 0x34, 0x8a, 0x19, 0xf1, 0x1a, 0x7a, 0x29, 0xfb, 0xf9, 0x9c, 0x09, 0x29, 0x3c, 0x19, 0x7b, - 0xa8, 0xc7, 0x0c, 0xbe, 0x0f, 0xd7, 0xa1, 0x05, 0x23, 0x7e, 0x1c, 0x3f, 0x8f, 0x79, 0xe4, 0x6e, - 0xa6, 0x25, 0x9a, 0x3c, 0x81, 0xa6, 0x60, 0x52, 0xf2, 0xe8, 0x5c, 0xa8, 0x5c, 0x6d, 0x3f, 0x7e, - 0xb0, 0x46, 0xd1, 0x91, 0x11, 0x73, 0x17, 0x1b, 0x10, 0x38, 0xb0, 0xc8, 0x4f, 0xb3, 0x44, 0x2e, - 0x32, 0x7a, 0xc9, 0xc0, 0xaf, 0x22, 0x61, 0xbe, 0xa4, 0xcb, 0xbc, 0x5e, 0x32, 0x9c, 0xbf, 0x59, - 0x70, 0xef, 0x1a, 0x43, 0x4d, 0x18, 0xac, 0x45, 0x18, 0xee, 0x03, 0x24, 0x2a, 0xe4, 0x2a, 0x0a, - 0x3a, 0xac, 0x2d, 0xcd, 0xc1, 0x20, 0x2c, 0x62, 0x59, 0x2d, 0xc6, 0xf2, 0x9a, 0x66, 0x70, 0x17, - 0x1a, 0xfe, 0x84, 0x4a, 0xec, 0xf7, 0x1b, 0x7a, 0x88, 0x23, 0x39, 0x0a, 0x30, 0x1d, 0x73, 0x7c, - 0x95, 0xe1, 0xd7, 0xba, 0x8e, 0xe7, 0x82, 0x37, 0x52, 0xb1, 0xc1, 0x22, 0xd1, 0xb5, 0x5f, 0x73, - 0x35, 0xe1, 0xfc, 0xb6, 0x02, 0xbd, 0xcb, 0x59, 0x4a, 0xbe, 0x28, 0x40, 0xc3, 0x2b, 0xb3, 0x74, - 0x4d, 0xb3, 0x2c, 0x00, 0xc3, 0xaf, 0xa0, 0x63, 0x6e, 0x8d, 0xd6, 0x09, 0xbb, 0x72, 0x19, 0xe4, - 0xac, 0x2f, 0x0b, 0xb7, 0x9d, 0x2c, 0xd6, 0x82, 0x3c, 0x81, 0x46, 0x3e, 0x93, 0xab, 0x2a, 0xcc, - 0xd7, 0x98, 0x91, 0x8f, 0xe7, 0x7c, 0xc7, 0xff, 0x03, 0x4f, 0x3f, 0x85, 0x2d, 0xf5, 0x15, 0x0d, - 0x32, 0xbd, 0xeb, 0x66, 0xe5, 0xfa, 0x39, 0xdc, 0xce, 0x37, 0xbe, 0x62, 0x42, 0x20, 0x5c, 0x73, - 0x19, 0xbd, 0xe9, 0xee, 0x2f, 0xe1, 0x0e, 0xee, 0xee, 0xfb, 0x92, 0x5f, 0x70, 0x99, 0x0d, 0x58, - 0x24, 0x59, 0x7a, 0xcd, 0xfe, 0x1e, 0x54, 0x79, 0xa0, 0xdd, 0xdb, 0x71, 0x71, 0xe9, 0x1c, 0xe8, - 0x96, 0x53, 0xd6, 0xd0, 0xf7, 0x7d, 0xa6, 0x72, 0xfb, 0xa6, 0x5a, 0x86, 0x3a, 0xc9, 0xcb, 0x5a, - 0x0e, 0xb8, 0x98, 0x71, 0x21, 0xfe, 0x07, 0x35, 0xbf, 0xb7, 0xa0, 0x83, 0x7a, 0x9e, 0xc6, 0xf1, - 0x74, 0x46, 0xd3, 0xe9, 0xfa, 0x8d, 0xf3, 0x34, 0x34, 0x6e, 0xc0, 0xe5, 0x02, 0x93, 0x54, 0x0b, - 0x80, 0xe9, 0x1e, 0xb4, 0x54, 0x33, 0xf6, 0x50, 0x56, 0x57, 0x45, 0x53, 0x31, 0x4e, 0xd2, 0xb0, - 0x38, 0x72, 0x36, 0xca, 0x23, 0xe7, 0x3e, 0x40, 0xc0, 0x42, 0x86, 0xa3, 0x9b, 0x4a, 0x55, 0x15, - 0x35, 0xb7, 0x65, 0x38, 0x7d, 0xe9, 0x3c, 0xd7, 0xc9, 0x3f, 0x08, 0x19, 0x4d, 0x9f, 0x71, 0x21, - 0xe3, 0x34, 0x2b, 0xd6, 0x98, 0x55, 0xaa, 0xb1, 0xfb, 0x00, 0x3e, 0x0a, 0x6a, 0x5d, 0x15, 0xad, - 0xcb, 0x70, 0xfa, 0xd2, 0xf9, 0xab, 0x05, 0x04, 0x95, 0x1d, 0xea, 0x31, 0x71, 0xc8, 0x7d, 0x39, - 0x4f, 0xd9, 0x4a, 0xf4, 0x57, 0x80, 0xd7, 0x95, 0x35, 0xf0, 0x1a, 0xef, 0xde, 0xbd, 0x0a, 0xaf, - 0x6b, 0x8a, 0x9d, 0xc3, 0xeb, 0x7b, 0xd0, 0x52, 0x63, 0x4a, 0xe1, 0xeb, 0x0d, 0xf5, 0x49, 0xe1, - 0xeb, 0xa3, 0x95, 0xf8, 0xba, 0xae, 0x04, 0xd6, 0xe0, 0xeb, 0x46, 0x11, 0x5f, 0x4f, 0xe0, 0xd6, - 0xd5, 0x9b, 0x88, 0xf5, 0x4f, 0x88, 0xef, 0x43, 0x33, 0x31, 0x42, 0xa6, 0xd8, 0x77, 0xca, 0x75, - 0x56, 0xd6, 0xe4, 0x2e, 0xa4, 0x9d, 0x3f, 0x56, 0xe0, 0x7d, 0x14, 0x78, 0x4b, 0xc3, 0x90, 0xc9, - 0xeb, 0xe7, 0xb2, 0x0d, 0x0d, 0x1a, 0x04, 0x29, 0x13, 0x22, 0xf7, 0x9a, 0x21, 0xd1, 0x3f, 0xef, - 0x94, 0x02, 0xe5, 0xb6, 0xa6, 0x6b, 0x28, 0xf4, 0x3d, 0xc6, 0x4e, 0x79, 0xad, 0xe9, 0xaa, 0x35, - 0xf2, 0x14, 0x14, 0xd6, 0xfd, 0x53, 0xad, 0x51, 0x33, 0xc6, 0x1e, 0x67, 0xbd, 0x7e, 0xc9, 0xe5, - 0x24, 0x4a, 0x27, 0x54, 0x4e, 0x0c, 0x5e, 0x52, 0x6b, 0x1c, 0x11, 0x8b, 0x16, 0xae, 0xde, 0x25, - 0x9d, 0x62, 0x4f, 0xcf, 0xe3, 0xdd, 0x2a, 0xc4, 0x1b, 0xef, 0x83, 0x8f, 0x47, 0x35, 0x6e, 0x5a, - 0xae, 0x26, 0x54, 0x54, 0x79, 0x10, 0xb0, 0xc8, 0xcc, 0x19, 0x43, 0xad, 0x07, 0x50, 0xce, 0x2b, - 0x9d, 0x61, 0x25, 0x67, 0x09, 0xf2, 0x29, 0x34, 0x4d, 0xcf, 0xcb, 0xbb, 0xf5, 0xbd, 0xb2, 0xf7, - 0x4b, 0xf2, 0xee, 0x42, 0xd8, 0xf9, 0xb3, 0xa5, 0xd3, 0xff, 0x88, 0x5e, 0xb0, 0xa0, 0x6f, 0x7c, - 0x59, 0xf0, 0xb2, 0x55, 0xf6, 0xf2, 0xaa, 0x87, 0xe2, 0x0e, 0xb4, 0xce, 0xe8, 0x45, 0x3c, 0x4f, - 0xb9, 0x64, 0xc6, 0xf9, 0x4b, 0x06, 0x4e, 0x32, 0x7f, 0x42, 0xb9, 0x7a, 0x9f, 0xd4, 0x54, 0x28, - 0x1b, 0x8a, 0x1e, 0x05, 0xd7, 0x94, 0xec, 0x43, 0xe8, 0x68, 0x50, 0xe5, 0x15, 0x33, 0xb3, 0xad, - 0x79, 0x03, 0x95, 0x9f, 0xbf, 0xb3, 0xe0, 0x1b, 0x2b, 0xc7, 0xfc, 0x9a, 0xcc, 0xb9, 0x3c, 0x1d, - 0xf5, 0x0d, 0x4a, 0xd3, 0x71, 0x08, 0x0f, 0x26, 0xba, 0x01, 0x78, 0x34, 0xf5, 0x27, 0xfc, 0x82, - 0x79, 0x62, 0x9e, 0x24, 0x71, 0x2a, 0x3d, 0x16, 0xd1, 0xd3, 0xd0, 0x40, 0xbc, 0xa6, 0xbb, 0x63, - 0xc4, 0xfa, 0x5a, 0xea, 0x48, 0x0b, 0x0d, 0xb5, 0x8c, 0xf3, 0x27, 0x4b, 0x8f, 0x8e, 0x63, 0x04, - 0xa0, 0x08, 0x69, 0x59, 0x7a, 0xc3, 0x27, 0xd3, 0x17, 0x50, 0x37, 0x18, 0x16, 0xcf, 0xd9, 0xbc, - 0x0c, 0x8d, 0x0a, 0x0a, 0xf7, 0x8f, 0x97, 0xe8, 0xd6, 0x35, 0x9b, 0x9c, 0xcf, 0xa0, 0x5d, 0x60, - 0x93, 0x36, 0x34, 0x4e, 0xc6, 0x2f, 0xc6, 0xaf, 0xdf, 0x8e, 0x7b, 0xef, 0x21, 0x71, 0xec, 0x9e, - 0x1c, 0x1d, 0x0f, 0x0f, 0x7a, 0x16, 0x79, 0x1f, 0xba, 0x27, 0x63, 0x45, 0xbe, 0x7d, 0xed, 0x1e, - 0x3f, 0xfb, 0x71, 0xaf, 0xe2, 0xfc, 0xa6, 0xaa, 0x21, 0xf2, 0x9b, 0x02, 0xbe, 0x36, 0xc0, 0x66, - 0x8d, 0xf1, 0x04, 0x6a, 0x67, 0x69, 0x3c, 0xcb, 0x53, 0x01, 0xd7, 0x78, 0x21, 0x19, 0x9b, 0x9e, - 0x5d, 0x91, 0x31, 0xa6, 0x86, 0x3f, 0xc1, 0xcc, 0x8b, 0xce, 0x73, 0x1c, 0xb3, 0x64, 0x60, 0x48, - 0x0c, 0xa8, 0xd3, 0xed, 0xd4, 0x3c, 0x6b, 0x16, 0xbc, 0xbe, 0x7a, 0x5a, 0xa7, 0x4c, 0x24, 0x71, - 0x24, 0xf2, 0xb2, 0x5c, 0xd0, 0xd8, 0x8b, 0x53, 0x96, 0x84, 0x5c, 0x6f, 0xd6, 0x29, 0xd2, 0x32, - 0x9c, 0xbe, 0x24, 0x6c, 0xf5, 0x3b, 0xa2, 0xa9, 0x3c, 0xfb, 0xdd, 0xb2, 0x67, 0x57, 0xdc, 0x7a, - 0xff, 0xcd, 0x95, 0x97, 0xc6, 0xaa, 0xd7, 0x87, 0xf3, 0x23, 0x20, 0x57, 0x25, 0xaf, 0xf8, 0xfe, - 0x70, 0x38, 0x3e, 0x18, 0x8d, 0xbf, 0xea, 0x59, 0xa4, 0x03, 0xcd, 0xfe, 0x60, 0x30, 0x3c, 0xc4, - 0x48, 0x54, 0x90, 0x3a, 0x18, 0x0e, 0x5e, 0x8e, 0xc6, 0xc3, 0x83, 0x5e, 0x15, 0xa9, 0x41, 0x7f, - 0x3c, 0x18, 0xbe, 0x1c, 0x1e, 0xf4, 0x6a, 0xce, 0x3f, 0x2d, 0x3d, 0xc9, 0x73, 0x70, 0xa5, 0xed, - 0x3a, 0x60, 0x3e, 0x17, 0xeb, 0xff, 0x15, 0xd8, 0x81, 0x96, 0xf1, 0xdf, 0x28, 0xcf, 0xac, 0x25, - 0x83, 0xfc, 0x14, 0xb6, 0x02, 0xb3, 0xdf, 0x2b, 0x65, 0xda, 0x27, 0x97, 0x31, 0xd1, 0xaa, 0x23, - 0xf7, 0xf3, 0x85, 0x71, 0xc7, 0x66, 0x50, 0xa2, 0x9d, 0x6f, 0xc1, 0x66, 0x59, 0xa2, 0x74, 0xd9, - 0xf7, 0x4a, 0x97, 0xb5, 0x9e, 0x76, 0x7f, 0xd2, 0xde, 0xff, 0xf8, 0x49, 0x7e, 0xec, 0x69, 0x5d, - 0xad, 0x3e, 0xf9, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x16, 0x36, 0x08, 0xe9, 0xdd, 0x14, 0x00, - 0x00, + 0x15, 0xdf, 0xd1, 0xc8, 0xfa, 0xf3, 0x24, 0xd9, 0xda, 0x49, 0x48, 0x66, 0x1d, 0xa7, 0xe2, 0x4c, + 0xd8, 0x5a, 0x1f, 0xc0, 0x4b, 0x65, 0xa1, 0x16, 0x36, 0xbb, 0xc5, 0x2a, 0xb2, 0x6a, 0xa3, 0x4d, + 0xa2, 0xb8, 0xc6, 0x76, 0x02, 0x14, 0x55, 0x53, 0xed, 0x99, 0xb6, 0xd5, 0x68, 0x34, 0x33, 0x4c, + 0xb7, 0x1c, 0x86, 0x0f, 0xc0, 0x89, 0x13, 0x17, 0xae, 0x39, 0xc3, 0x8d, 0x03, 0x27, 0x3e, 0x00, + 0x37, 0x0e, 0x1c, 0xa1, 0xf8, 0x00, 0x7c, 0x0a, 0xea, 0x75, 0xf7, 0x8c, 0x66, 0x6c, 0xc9, 0x98, + 0xe2, 0xb4, 0x27, 0xf5, 0x7b, 0xf3, 0xfa, 0xf5, 0xeb, 0xf7, 0xf7, 0xd7, 0x82, 0x5e, 0x42, 0x58, + 0xca, 0xa2, 0xf3, 0xfd, 0x24, 0x8d, 0x45, 0x6c, 0xb5, 0xe4, 0xcf, 0xe9, 0xe2, 0xcc, 0xf9, 0x83, + 0x01, 0x8d, 0xa7, 0xc4, 0x9f, 0x2d, 0x12, 0xeb, 0x36, 0x6c, 0xf8, 0x61, 0xec, 0xcf, 0x6c, 0x63, + 0xd7, 0xd8, 0xab, 0xbb, 0x8a, 0xb0, 0x36, 0xa1, 0xc6, 0x02, 0xbb, 0xb6, 0x6b, 0xec, 0xb5, 0xdd, + 0x1a, 0x0b, 0xac, 0x1f, 0x43, 0xcb, 0x8f, 0x23, 0x41, 0x7c, 0xc1, 0x6d, 0x73, 0xd7, 0xdc, 0xeb, + 0x3c, 0x7e, 0xb4, 0x9f, 0x6b, 0xdb, 0x3f, 0xca, 0x22, 0x7f, 0x1c, 0x71, 0x41, 0xc2, 0x90, 0x08, + 0x16, 0x47, 0x43, 0x25, 0xf9, 0xfa, 0xb1, 0x5b, 0x6c, 0xb2, 0x7e, 0x04, 0x1d, 0x3f, 0x9e, 0xcf, + 0x17, 0x11, 0x13, 0x8c, 0x72, 0xbb, 0x2e, 0x75, 0xdc, 0xad, 0xea, 0x18, 0x6a, 0x81, 0xcc, 0x2d, + 0xcb, 0x3a, 0x7f, 0xa9, 0x43, 0xf7, 0xe5, 0x22, 0x14, 0x6c, 0xe0, 0xfb, 0xf1, 0x22, 0x12, 0x96, + 0x05, 0xf5, 0x88, 0xcc, 0xa9, 0xb4, 0xb8, 0xed, 0xca, 0xb5, 0xb5, 0x03, 0x6d, 0xc1, 0xe6, 0x94, + 0x0b, 0x32, 0x4f, 0xa4, 0xdd, 0xa6, 0xbb, 0x64, 0xe0, 0x57, 0x16, 0xd0, 0x48, 0x30, 0x3f, 0x8e, + 0x6c, 0x53, 0x6e, 0x5b, 0x32, 0xac, 0x2f, 0x01, 0xfc, 0x38, 0x8c, 0x53, 0x6f, 0x4a, 0xf8, 0x54, + 0x9b, 0xf6, 0x70, 0x69, 0x5a, 0xf9, 0xec, 0xfd, 0x61, 0x1c, 0xc6, 0x8b, 0xf4, 0x19, 0xe1, 0x53, + 0xb7, 0x2d, 0x37, 0xe1, 0xd2, 0xb2, 0xa1, 0x29, 0x89, 0x71, 0x60, 0x6f, 0xc8, 0xb3, 0x73, 0xd2, + 0xfa, 0x08, 0xb6, 0x66, 0x34, 0xf3, 0x49, 0x1a, 0x78, 0x3a, 0x18, 0x76, 0x43, 0x9e, 0xbf, 0xa9, + 0xd9, 0x87, 0x8a, 0x6b, 0xdd, 0x85, 0xe6, 0x8c, 0x66, 0xde, 0x82, 0x05, 0x76, 0x53, 0x0a, 0x34, + 0x66, 0x34, 0x3b, 0x61, 0x81, 0xf5, 0x39, 0x34, 0xd8, 0x9c, 0x9c, 0x53, 0x6e, 0xb7, 0xa4, 0x65, + 0xdf, 0x5e, 0x63, 0xd9, 0x58, 0xde, 0x47, 0x64, 0x63, 0x14, 0x76, 0xf5, 0x9e, 0x6d, 0x07, 0x60, + 0x69, 0x32, 0x06, 0x9b, 0x45, 0x01, 0xfd, 0x95, 0x6d, 0xec, 0x9a, 0x7b, 0xa6, 0xab, 0x88, 0xed, + 0x7f, 0x18, 0xd0, 0xab, 0xec, 0x2e, 0x1b, 0x63, 0x54, 0x8c, 0xc9, 0x5d, 0x5f, 0x2b, 0xb9, 0xde, + 0x86, 0x66, 0x42, 0xb2, 0x30, 0x26, 0x81, 0x74, 0x6d, 0xd7, 0xcd, 0x49, 0x3c, 0xee, 0x2d, 0x0b, + 0x04, 0xfa, 0x14, 0x9d, 0xa2, 0x08, 0xeb, 0x0e, 0x34, 0xa6, 0x94, 0x9d, 0x4f, 0x85, 0xf6, 0x95, + 0xa6, 0xac, 0x6d, 0x68, 0x9d, 0xb1, 0x90, 0x72, 0xf6, 0x6b, 0x2a, 0x7d, 0x64, 0xba, 0x05, 0x6d, + 0x3d, 0x82, 0x5e, 0x2a, 0x57, 0x9e, 0x20, 0xe9, 0x39, 0x15, 0xd2, 0x47, 0xa6, 0xdb, 0x55, 0xcc, + 0x63, 0xc9, 0x5b, 0xa6, 0x72, 0xab, 0x94, 0xca, 0xce, 0xdf, 0x0d, 0xb8, 0xf5, 0x22, 0xf6, 0x49, + 0xa8, 0x3d, 0x7d, 0xa8, 0x8d, 0xfb, 0x01, 0xd4, 0x67, 0x34, 0xe3, 0xd2, 0x15, 0x95, 0x78, 0xaf, + 0x10, 0xde, 0x7f, 0x4e, 0x33, 0x57, 0x8a, 0x5b, 0x9f, 0x41, 0x77, 0x8e, 0x6e, 0x27, 0xca, 0xed, + 0xd2, 0x13, 0x9d, 0xc7, 0x77, 0x56, 0x07, 0xc5, 0xad, 0xc8, 0xe2, 0x0d, 0x13, 0xc2, 0xf9, 0xdb, + 0x38, 0x0d, 0x74, 0x16, 0x16, 0xf4, 0xf6, 0x77, 0xc1, 0x7c, 0x4e, 0xb3, 0x95, 0xb9, 0x6d, 0x41, + 0x3d, 0x20, 0x82, 0xc8, 0xa3, 0xba, 0xae, 0x5c, 0x3b, 0xbf, 0x31, 0xa0, 0x8f, 0x36, 0x96, 0xeb, + 0x6e, 0x4d, 0x2d, 0x7f, 0x04, 0x5b, 0xac, 0x24, 0xe5, 0x15, 0x85, 0xbd, 0x59, 0x66, 0x8f, 0x03, + 0xeb, 0x01, 0x74, 0x02, 0x7a, 0xc1, 0x7c, 0xea, 0x89, 0x2c, 0xa1, 0xda, 0x42, 0x50, 0xac, 0xe3, + 0x2c, 0xa1, 0x85, 0x71, 0xf5, 0xa5, 0x71, 0xce, 0xbf, 0x0d, 0xb8, 0xbb, 0xa6, 0x01, 0xdc, 0xb0, + 0xb7, 0x3c, 0x82, 0x5e, 0x92, 0xc6, 0x18, 0x6a, 0x4f, 0x26, 0xad, 0x3e, 0xb8, 0xab, 0x99, 0x2a, + 0x23, 0x3f, 0x80, 0x16, 0x8d, 0xb8, 0x57, 0x3a, 0xbe, 0x49, 0x23, 0x3e, 0x41, 0xf7, 0x3c, 0x84, + 0x6e, 0x48, 0xb8, 0xf0, 0x16, 0x49, 0x40, 0x04, 0x55, 0x15, 0x58, 0x77, 0x3b, 0xc8, 0x3b, 0x51, + 0x2c, 0xbc, 0x19, 0xcf, 0xb8, 0xa0, 0x73, 0x4f, 0x90, 0x73, 0x6e, 0x37, 0x76, 0x4d, 0xbc, 0x99, + 0x62, 0x1d, 0x93, 0x73, 0x6e, 0x7d, 0x08, 0x9b, 0x21, 0x86, 0xdd, 0x8b, 0x98, 0x3f, 0x93, 0x87, + 0xa8, 0x22, 0xec, 0x49, 0xee, 0x44, 0x33, 0x9d, 0x7f, 0x99, 0xf0, 0xc1, 0xda, 0x6e, 0x67, 0x7d, + 0x0f, 0x6e, 0x97, 0x0d, 0xf1, 0xe4, 0xde, 0x30, 0xd3, 0xb7, 0xb7, 0x4a, 0x06, 0xbd, 0x50, 0x5f, + 0xbe, 0xc1, 0xae, 0xc0, 0xd8, 0x92, 0x20, 0xa0, 0x81, 0xdd, 0xde, 0x35, 0xf6, 0x5a, 0xae, 0x22, + 0xb0, 0x17, 0x9c, 0x62, 0x90, 0x69, 0x60, 0x83, 0xe4, 0xe7, 0x24, 0xca, 0xcf, 0x17, 0x68, 0x53, + 0x47, 0xc9, 0x4b, 0x02, 0xe5, 0x53, 0x3a, 0x8f, 0x2f, 0x68, 0x60, 0x77, 0x95, 0xbc, 0x26, 0xad, + 0x5d, 0xe8, 0x4e, 0x09, 0xf7, 0xa4, 0x5a, 0x6f, 0xc1, 0xed, 0x9e, 0xfc, 0x0c, 0x53, 0xc2, 0x07, + 0xc8, 0x3a, 0xe1, 0xd6, 0xc7, 0x70, 0xeb, 0x82, 0xa6, 0xec, 0x8c, 0xf9, 0x2a, 0xaf, 0xb9, 0x20, + 0x62, 0xc1, 0xed, 0x4d, 0xd9, 0x19, 0xac, 0xf2, 0xa7, 0x23, 0xf9, 0x05, 0xbd, 0x23, 0xd2, 0x05, + 0x17, 0xb9, 0xe4, 0x96, 0x94, 0xec, 0x48, 0x9e, 0x12, 0x71, 0xde, 0x5e, 0x4d, 0xe6, 0x7c, 0xea, + 0xac, 0x4e, 0xe6, 0x2b, 0x11, 0xab, 0xad, 0x88, 0xd8, 0xe5, 0xb0, 0x98, 0x57, 0xc2, 0xe2, 0x3c, + 0x85, 0xed, 0xcb, 0x07, 0x1f, 0x2e, 0x4e, 0x43, 0xe6, 0x0f, 0xa7, 0xe4, 0x86, 0x85, 0xe4, 0xfc, + 0xd6, 0x84, 0x5e, 0x65, 0x8e, 0xfe, 0xd7, 0x7d, 0x5d, 0x99, 0x75, 0x0f, 0xa0, 0x93, 0xa4, 0xec, + 0x82, 0x08, 0xea, 0xcd, 0x68, 0xa6, 0x9b, 0x38, 0x68, 0x16, 0x36, 0xa5, 0x5d, 0x6c, 0x0c, 0xdc, + 0x4f, 0x59, 0x82, 0x76, 0xc9, 0xa4, 0xeb, 0xba, 0x65, 0x16, 0xf6, 0xf4, 0x5f, 0xc4, 0x2c, 0xd2, + 0x29, 0xd7, 0x72, 0x35, 0x85, 0x1d, 0x4f, 0x05, 0x82, 0x06, 0xb2, 0xa7, 0xb7, 0xdc, 0x82, 0x5e, + 0x66, 0x44, 0xb3, 0x9c, 0x11, 0xaf, 0xa0, 0x9f, 0xd2, 0x5f, 0x2e, 0x28, 0x17, 0xdc, 0x13, 0xb1, + 0x87, 0x7a, 0xf4, 0xe0, 0xfb, 0x70, 0x1d, 0x5a, 0xd0, 0xe2, 0xc7, 0xf1, 0xd7, 0x31, 0x8b, 0xdc, + 0xcd, 0xb4, 0x42, 0x5b, 0x4f, 0xa0, 0xc5, 0xa9, 0x10, 0x2c, 0x3a, 0xe7, 0x32, 0x57, 0x3b, 0x8f, + 0x1f, 0xac, 0x51, 0x74, 0xa4, 0xc5, 0xdc, 0x62, 0x03, 0x02, 0x07, 0x1a, 0xf9, 0x69, 0x96, 0x88, + 0x22, 0xa3, 0x97, 0x0c, 0xfc, 0xca, 0x13, 0xea, 0x0b, 0xb2, 0xcc, 0xeb, 0x25, 0xc3, 0xf9, 0x9b, + 0x01, 0xf7, 0xae, 0x31, 0x54, 0x87, 0xc1, 0x28, 0xc2, 0x70, 0x1f, 0x20, 0x91, 0x21, 0x97, 0x51, + 0x50, 0x61, 0x6d, 0x2b, 0x0e, 0x06, 0xa1, 0x88, 0xa5, 0x59, 0x8e, 0xe5, 0x35, 0xcd, 0xe0, 0x2e, + 0x34, 0xfd, 0x29, 0x11, 0xd8, 0xef, 0x37, 0xd4, 0x10, 0x47, 0x72, 0x1c, 0x60, 0x3a, 0xe6, 0xf8, + 0x2a, 0xc3, 0xaf, 0x0d, 0x15, 0xcf, 0x82, 0x37, 0x96, 0xb1, 0xc1, 0x22, 0x51, 0xb5, 0x5f, 0x77, + 0x15, 0xe1, 0xfc, 0xae, 0x06, 0xfd, 0xcb, 0x59, 0x6a, 0x7d, 0x51, 0x82, 0x86, 0x57, 0x66, 0xe9, + 0x9a, 0x66, 0x59, 0x02, 0x86, 0x5f, 0x41, 0x57, 0xdf, 0x1a, 0xad, 0xe3, 0x76, 0xed, 0x32, 0xc8, + 0x59, 0x5f, 0x16, 0x6e, 0x27, 0x29, 0xd6, 0xdc, 0x7a, 0x02, 0xcd, 0x7c, 0x26, 0x9b, 0x32, 0xcc, + 0xd7, 0x98, 0x91, 0x8f, 0xe7, 0x7c, 0xc7, 0xff, 0x03, 0x4f, 0x3f, 0x85, 0x2d, 0xf9, 0x15, 0x0d, + 0xd2, 0xbd, 0xeb, 0x66, 0xe5, 0xfa, 0x39, 0xdc, 0xce, 0x37, 0xbe, 0xa4, 0x9c, 0x23, 0x5c, 0x73, + 0x29, 0xb9, 0xe9, 0xee, 0x2f, 0xe1, 0x0e, 0xee, 0x1e, 0xf8, 0x82, 0x5d, 0x30, 0x91, 0x0d, 0x69, + 0x24, 0x68, 0x7a, 0xcd, 0xfe, 0x3e, 0x98, 0x2c, 0x50, 0xee, 0xed, 0xba, 0xb8, 0x74, 0x0e, 0x54, + 0xcb, 0xa9, 0x6a, 0x18, 0xf8, 0x3e, 0x95, 0xb9, 0x7d, 0x53, 0x2d, 0x23, 0x95, 0xe4, 0x55, 0x2d, + 0x07, 0x8c, 0xcf, 0x19, 0xe7, 0xff, 0x83, 0x9a, 0x77, 0x06, 0x74, 0x51, 0xcf, 0xd3, 0x38, 0x9e, + 0xcd, 0x49, 0x3a, 0x5b, 0xbf, 0x71, 0x91, 0x86, 0xda, 0x0d, 0xb8, 0x2c, 0x30, 0x89, 0x59, 0x02, + 0x4c, 0xf7, 0xa0, 0x2d, 0x9b, 0xb1, 0x87, 0xb2, 0xaa, 0x2a, 0x5a, 0x92, 0x71, 0x92, 0x86, 0xe5, + 0x91, 0xb3, 0x51, 0x1d, 0x39, 0xf7, 0x01, 0x02, 0x1a, 0x52, 0x1c, 0xdd, 0x44, 0xc8, 0xaa, 0xa8, + 0xbb, 0x6d, 0xcd, 0x19, 0x08, 0xe7, 0x6b, 0x95, 0xfc, 0xc3, 0x90, 0x92, 0xf4, 0x19, 0xe3, 0x22, + 0x4e, 0xb3, 0x72, 0x8d, 0x19, 0x95, 0x1a, 0xbb, 0x0f, 0xe0, 0xa3, 0xa0, 0xd2, 0x55, 0x53, 0xba, + 0x34, 0x67, 0x20, 0x9c, 0xbf, 0x1a, 0x60, 0xa1, 0xb2, 0x43, 0x35, 0x26, 0x0e, 0x99, 0x2f, 0x16, + 0x29, 0x5d, 0x89, 0xfe, 0x4a, 0xf0, 0xba, 0xb6, 0x06, 0x5e, 0xe3, 0xdd, 0x7b, 0x57, 0xe1, 0x75, + 0x5d, 0xb2, 0x73, 0x78, 0x7d, 0x0f, 0xda, 0x72, 0x4c, 0x49, 0x7c, 0xbd, 0x21, 0x3f, 0x49, 0x7c, + 0x7d, 0xb4, 0x12, 0x5f, 0x37, 0xa4, 0xc0, 0x1a, 0x7c, 0xdd, 0x2c, 0xe3, 0xeb, 0x29, 0xdc, 0xba, + 0x7a, 0x13, 0xbe, 0xfe, 0x09, 0xf1, 0x43, 0x68, 0x25, 0x5a, 0x48, 0x17, 0xfb, 0x4e, 0xb5, 0xce, + 0xaa, 0x9a, 0xdc, 0x42, 0xda, 0xf9, 0x63, 0x0d, 0xde, 0x47, 0x81, 0x37, 0x24, 0x0c, 0xa9, 0xb8, + 0x7e, 0x2e, 0xdb, 0xd0, 0x24, 0x41, 0x90, 0x52, 0xce, 0x73, 0xaf, 0x69, 0x12, 0xfd, 0xf3, 0x56, + 0x2a, 0x90, 0x6e, 0x6b, 0xb9, 0x9a, 0x42, 0xdf, 0x63, 0xec, 0xa4, 0xd7, 0x5a, 0xae, 0x5c, 0x23, + 0x4f, 0x42, 0x61, 0xd5, 0x3f, 0xe5, 0x1a, 0x35, 0x63, 0xec, 0x71, 0xd6, 0xab, 0x97, 0x5c, 0x4e, + 0xa2, 0x74, 0x42, 0xc4, 0x54, 0xe3, 0x25, 0xb9, 0xc6, 0x11, 0x51, 0xb4, 0x70, 0xf9, 0x2e, 0xe9, + 0x96, 0x7b, 0x7a, 0x1e, 0xef, 0x76, 0x29, 0xde, 0x78, 0x1f, 0x7c, 0x3c, 0xca, 0x71, 0xd3, 0x76, + 0x15, 0x21, 0xa3, 0xca, 0x82, 0x80, 0x46, 0x7a, 0xce, 0x68, 0x6a, 0x3d, 0x80, 0x72, 0x5e, 0xaa, + 0x0c, 0xab, 0x38, 0x8b, 0x5b, 0x9f, 0x42, 0x4b, 0xf7, 0xbc, 0xbc, 0x5b, 0xdf, 0xab, 0x7a, 0xbf, + 0x22, 0xef, 0x16, 0xc2, 0xce, 0x9f, 0x0d, 0x95, 0xfe, 0x47, 0xe4, 0x82, 0x06, 0x03, 0xed, 0xcb, + 0x92, 0x97, 0x8d, 0xaa, 0x97, 0x57, 0x3d, 0x14, 0x77, 0xa0, 0x7d, 0x46, 0x2e, 0xe2, 0x45, 0xca, + 0x04, 0xd5, 0xce, 0x5f, 0x32, 0x70, 0x92, 0xf9, 0x53, 0xc2, 0xe4, 0xfb, 0xa4, 0x2e, 0x43, 0xd9, + 0x94, 0xf4, 0x38, 0xb8, 0xa6, 0x64, 0x1f, 0x42, 0x57, 0x81, 0x2a, 0xaf, 0x9c, 0x99, 0x1d, 0xc5, + 0x1b, 0xca, 0xfc, 0xfc, 0xbd, 0x01, 0xdf, 0x5a, 0x39, 0xe6, 0xd7, 0x64, 0xce, 0xe5, 0xe9, 0xa8, + 0x6e, 0x50, 0x99, 0x8e, 0x23, 0x78, 0x30, 0x55, 0x0d, 0xc0, 0x23, 0xa9, 0x3f, 0x65, 0x17, 0xd4, + 0xe3, 0x8b, 0x24, 0x89, 0x53, 0xe1, 0xd1, 0x88, 0x9c, 0x86, 0x1a, 0xe2, 0xb5, 0xdc, 0x1d, 0x2d, + 0x36, 0x50, 0x52, 0x47, 0x4a, 0x68, 0xa4, 0x64, 0x9c, 0x3f, 0x19, 0x6a, 0x74, 0x1c, 0x23, 0x00, + 0x45, 0x48, 0x4b, 0xd3, 0x1b, 0x3e, 0x99, 0xbe, 0x80, 0x86, 0xc6, 0xb0, 0x78, 0xce, 0xe6, 0x65, + 0x68, 0x54, 0x52, 0xb8, 0x7f, 0xbc, 0x44, 0xb7, 0xae, 0xde, 0xe4, 0x7c, 0x06, 0x9d, 0x12, 0xdb, + 0xea, 0x40, 0xf3, 0x64, 0xf2, 0x7c, 0xf2, 0xea, 0xcd, 0xa4, 0xff, 0x1e, 0x12, 0xc7, 0xee, 0xc9, + 0xd1, 0xf1, 0xe8, 0xa0, 0x6f, 0x58, 0xef, 0x43, 0xef, 0x64, 0x22, 0xc9, 0x37, 0xaf, 0xdc, 0xe3, + 0x67, 0x3f, 0xed, 0xd7, 0x9c, 0x77, 0xa6, 0x82, 0xc8, 0xaf, 0x4b, 0xf8, 0x5a, 0x03, 0x9b, 0x35, + 0xc6, 0x5b, 0x50, 0x3f, 0x4b, 0xe3, 0x79, 0x9e, 0x0a, 0xb8, 0xc6, 0x0b, 0x89, 0x58, 0xf7, 0xec, + 0x9a, 0x88, 0x31, 0x35, 0xfc, 0x29, 0x66, 0x5e, 0x74, 0x9e, 0xe3, 0x98, 0x25, 0x03, 0x43, 0xa2, + 0x41, 0x9d, 0x6a, 0xa7, 0xfa, 0x59, 0x53, 0xf0, 0x06, 0xf2, 0x69, 0x9d, 0x52, 0x9e, 0xc4, 0x11, + 0xcf, 0xcb, 0xb2, 0xa0, 0xb1, 0x17, 0xa7, 0x34, 0x09, 0x99, 0xda, 0xac, 0x52, 0xa4, 0xad, 0x39, + 0x03, 0x61, 0xd1, 0xd5, 0xef, 0x88, 0x96, 0xf4, 0xec, 0xf7, 0xab, 0x9e, 0x5d, 0x71, 0xeb, 0xfd, + 0xd7, 0x57, 0x5e, 0x1a, 0x2b, 0x5f, 0x1f, 0x2a, 0x86, 0xed, 0x62, 0x80, 0xff, 0x04, 0xac, 0xab, + 0x3b, 0xaf, 0xc4, 0xe2, 0x70, 0x34, 0x39, 0x18, 0x4f, 0xbe, 0xea, 0x1b, 0x56, 0x17, 0x5a, 0x83, + 0xe1, 0x70, 0x74, 0x88, 0x91, 0xa9, 0x21, 0x75, 0x30, 0x1a, 0xbe, 0x18, 0x4f, 0x46, 0x07, 0x7d, + 0x13, 0xa9, 0xe1, 0x60, 0x32, 0x1c, 0xbd, 0x18, 0x1d, 0xf4, 0xeb, 0xce, 0x3f, 0x0d, 0x35, 0xd9, + 0x73, 0xb0, 0xa5, 0xec, 0x3c, 0xa0, 0x3e, 0xe3, 0xeb, 0xff, 0x25, 0xd8, 0x81, 0xb6, 0xf6, 0xe7, + 0x38, 0xcf, 0xb4, 0x25, 0xc3, 0xfa, 0x39, 0x6c, 0x05, 0x7a, 0xbf, 0x57, 0xc9, 0xbc, 0x4f, 0x2e, + 0x63, 0xa4, 0x55, 0x47, 0xee, 0xe7, 0x0b, 0xed, 0x9e, 0xcd, 0xa0, 0x42, 0x3b, 0xdf, 0x81, 0xcd, + 0xaa, 0x44, 0xe5, 0xb2, 0xef, 0x55, 0x2e, 0x6b, 0x3c, 0xed, 0xfd, 0xac, 0xb3, 0xff, 0xf1, 0x93, + 0xfc, 0xd8, 0xd3, 0x86, 0x5c, 0x7d, 0xf2, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd6, 0x51, 0x05, + 0xae, 0xed, 0x14, 0x00, 0x00, } diff --git a/protocol/protobuf/pairing.proto b/protocol/protobuf/pairing.proto index 838457b9d..897138813 100644 --- a/protocol/protobuf/pairing.proto +++ b/protocol/protobuf/pairing.proto @@ -233,6 +233,7 @@ message SyncVerificationRequest { string response = 6; uint64 replied_at = 7; VerificationStatus verification_status = 8; + string id = 9; enum VerificationStatus { UNKNOWN = 0; diff --git a/protocol/protobuf/status_update.pb.go b/protocol/protobuf/status_update.pb.go index 399b7d5a1..8a6358c5c 100644 --- a/protocol/protobuf/status_update.pb.go +++ b/protocol/protobuf/status_update.pb.go @@ -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"` diff --git a/protocol/protobuf/sync_settings.pb.go b/protocol/protobuf/sync_settings.pb.go index 16d909e18..b05dd8835 100644 --- a/protocol/protobuf/sync_settings.pb.go +++ b/protocol/protobuf/sync_settings.pb.go @@ -82,7 +82,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 diff --git a/protocol/pushnotificationclient/migrations/migrations.go b/protocol/pushnotificationclient/migrations/migrations.go index d5c5ac452..6c77eeda1 100644 --- a/protocol/pushnotificationclient/migrations/migrations.go +++ b/protocol/pushnotificationclient/migrations/migrations.go @@ -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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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 } diff --git a/protocol/pushnotificationserver/migrations/migrations.go b/protocol/pushnotificationserver/migrations/migrations.go index cba4ec973..7183c741e 100644 --- a/protocol/pushnotificationserver/migrations/migrations.go +++ b/protocol/pushnotificationserver/migrations/migrations.go @@ -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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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 } diff --git a/protocol/transport/migrations/migrations.go b/protocol/transport/migrations/migrations.go index 259178ae6..41ec048c6 100644 --- a/protocol/transport/migrations/migrations.go +++ b/protocol/transport/migrations/migrations.go @@ -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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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 } diff --git a/protocol/verification/persistence.go b/protocol/verification/persistence.go index 43f77d249..b1d38c270 100644 --- a/protocol/verification/persistence.go +++ b/protocol/verification/persistence.go @@ -40,6 +40,7 @@ const ( ) type Request struct { + ID string `json:"id"` From string `json:"from"` To string `json:"to"` Challenge string `json:"challenge"` @@ -50,7 +51,7 @@ type Request struct { } func (p *Persistence) GetVerificationRequests() ([]Request, error) { - rows, err := p.db.Query("SELECT from_user, to_user, challenge, response, requested_at, verification_status, replied_at FROM verification_requests") + rows, err := p.db.Query("SELECT id, from_user, to_user, challenge, response, requested_at, verification_status, replied_at FROM verification_requests_individual") if err != nil { return nil, err } @@ -59,7 +60,7 @@ func (p *Persistence) GetVerificationRequests() ([]Request, error) { var result []Request for rows.Next() { var vr Request - err = rows.Scan(&vr.From, &vr.To, &vr.Challenge, &vr.Response, &vr.RequestedAt, &vr.RepliedAt, &vr.RequestStatus) + err = rows.Scan(&vr.ID, &vr.From, &vr.To, &vr.Challenge, &vr.Response, &vr.RequestedAt, &vr.RepliedAt, &vr.RequestStatus) if err != nil { return nil, err } @@ -68,9 +69,10 @@ func (p *Persistence) GetVerificationRequests() ([]Request, error) { return result, nil } -func (p *Persistence) GetVerificationRequestFrom(contactID string) (*Request, error) { +func (p *Persistence) GetVerificationRequest(id string) (*Request, error) { var vr Request - err := p.db.QueryRow(`SELECT from_user, to_user, challenge, response, requested_at, verification_status, replied_at FROM verification_requests WHERE from_user = ?`, contactID).Scan( + err := p.db.QueryRow(`SELECT id, from_user, to_user, challenge, response, requested_at, verification_status, replied_at FROM verification_requests_individual WHERE id = ?`, id).Scan( + &vr.ID, &vr.From, &vr.To, &vr.Challenge, @@ -93,7 +95,7 @@ func (p *Persistence) GetVerificationRequestFrom(contactID string) (*Request, er func (p *Persistence) GetReceivedVerificationRequests(myPublicKey string) ([]*Request, error) { response := make([]*Request, 0) - query := `SELECT from_user, to_user, challenge, response, requested_at, verification_status, replied_at FROM verification_requests WHERE to_user = ?` + query := `SELECT id, from_user, to_user, challenge, response, requested_at, verification_status, replied_at FROM verification_requests_individual WHERE to_user = ?` rows, err := p.db.Query(query, myPublicKey) if err == sql.ErrNoRows { return nil, nil @@ -105,6 +107,7 @@ func (p *Persistence) GetReceivedVerificationRequests(myPublicKey string) ([]*Re var vr Request err := rows.Scan( + &vr.ID, &vr.From, &vr.To, &vr.Challenge, @@ -125,7 +128,8 @@ func (p *Persistence) GetReceivedVerificationRequests(myPublicKey string) ([]*Re func (p *Persistence) GetVerificationRequestSentTo(contactID string) (*Request, error) { var vr Request - err := p.db.QueryRow(`SELECT from_user, to_user, challenge, response, requested_at, verification_status, replied_at FROM verification_requests WHERE to_user = ?`, contactID).Scan( + err := p.db.QueryRow(`SELECT id, from_user, to_user, challenge, response, requested_at, verification_status, replied_at FROM verification_requests_individual WHERE to_user = ?`, contactID).Scan( + &vr.ID, &vr.From, &vr.To, &vr.Challenge, @@ -149,12 +153,12 @@ func (p *Persistence) SaveVerificationRequest(vr *Request) error { if vr == nil { return errors.New("invalid verification request provided") } - _, err := p.db.Exec(`INSERT INTO verification_requests (from_user, to_user, challenge, response, requested_at, verification_status, replied_at) VALUES (?, ?, ?, ?, ?, ?, ?)`, vr.From, vr.To, vr.Challenge, vr.Response, vr.RequestedAt, vr.RequestStatus, vr.RepliedAt) + _, err := p.db.Exec(`INSERT INTO verification_requests_individual (id, from_user, to_user, challenge, response, requested_at, verification_status, replied_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?)`, vr.ID, vr.From, vr.To, vr.Challenge, vr.Response, vr.RequestedAt, vr.RequestStatus, vr.RepliedAt) return err } -func (p *Persistence) AcceptContactVerificationRequest(contactID string, response string) error { - result, err := p.db.Exec("UPDATE verification_requests SET response = ?, replied_at = ?, verification_status = ? WHERE from_user = ?", response, time.Now().Unix(), RequestStatusACCEPTED, contactID) +func (p *Persistence) AcceptContactVerificationRequest(id string, response string) error { + result, err := p.db.Exec("UPDATE verification_requests_individual SET response = ?, replied_at = ?, verification_status = ? WHERE id = ?", response, time.Now().Unix(), RequestStatusACCEPTED, id) if err != nil { return err } @@ -171,8 +175,8 @@ func (p *Persistence) AcceptContactVerificationRequest(contactID string, respons return nil } -func (p *Persistence) DeclineContactVerificationRequest(contactID string) error { - result, err := p.db.Exec("UPDATE verification_requests SET response = '', replied_at = ?, verification_status = ? WHERE from_user = ?", time.Now().Unix(), RequestStatusDECLINED, contactID) +func (p *Persistence) DeclineContactVerificationRequest(id string) error { + result, err := p.db.Exec("UPDATE verification_requests_individual SET response = '', replied_at = ?, verification_status = ? WHERE id = ?", time.Now().Unix(), RequestStatusDECLINED, id) if err != nil { return err } @@ -189,32 +193,6 @@ func (p *Persistence) DeclineContactVerificationRequest(contactID string) error return nil } -func (p *Persistence) UpsertVerificationRequest(request *Request) (shouldSync bool, err error) { - var dbRequestedAt uint64 - var dbRepliedAt uint64 - err = p.db.QueryRow(`SELECT requested_at, replied_at FROM verification_requests WHERE from_user = ? AND to_user = ?`, request.From, request.To).Scan(&dbRequestedAt, &dbRepliedAt) - if err == sql.ErrNoRows { - return true, p.SaveVerificationRequest(request) - } - - if err == nil && ((dbRequestedAt < request.RequestedAt) || (dbRepliedAt < request.RepliedAt && dbRepliedAt != 0)) { - _, err := p.db.Exec("UPDATE verification_requests SET challenge = ?, response = ?, requested_at = ?, replied_at = ?, verification_status = ? WHERE from_user = ? AND to_user = ?", - request.Challenge, - request.Response, - request.RequestedAt, - request.RepliedAt, - request.RequestStatus, - request.From, - request.To) - if err == nil { - shouldSync = true - } - return shouldSync, err - } - - return false, err -} - func (p *Persistence) SetTrustStatus(contactID string, trust TrustStatus, updatedAt uint64) error { _, err := p.db.Exec(`INSERT INTO trusted_users (id, trust_status, updated_at) VALUES (?, ?, ?)`, contactID, trust, updatedAt) return err diff --git a/protocol/verification/persistence_test.go b/protocol/verification/persistence_test.go index 4e8641381..f6a755699 100644 --- a/protocol/verification/persistence_test.go +++ b/protocol/verification/persistence_test.go @@ -34,6 +34,7 @@ func (s *PersistenceSuite) SetupTest() { func (s *PersistenceSuite) TestVerificationRequests() { request := &Request{ + ID: "0xabc", From: "0x01", To: "0x02", Challenge: "ABC", @@ -48,20 +49,15 @@ func (s *PersistenceSuite) TestVerificationRequests() { s.NoError(err) // Test Found - dbRequest, err := s.db.GetVerificationRequestFrom("0x01") + dbRequest, err := s.db.GetVerificationRequest("0xabc") s.NoError(err) s.Equal(request, dbRequest) // Test Not Found - dbRequest2, err := s.db.GetVerificationRequestFrom("0x02") + dbRequest2, err := s.db.GetVerificationRequestFrom("0xdef") s.NoError(err) s.Nil(dbRequest2) - // Test Found - dbRequest3, err := s.db.GetVerificationRequestSentTo("0x02") - s.NoError(err) - s.Equal(request, dbRequest3) - // Test Accept err = s.db.AcceptContactVerificationRequest("0x01", "XYZ") s.NoError(err) diff --git a/services/ext/api.go b/services/ext/api.go index fa2199cbe..9153a582a 100644 --- a/services/ext/api.go +++ b/services/ext/api.go @@ -777,14 +777,10 @@ func (api *PublicAPI) GetTrustStatus(ctx context.Context, contactID string) (ver return api.service.messenger.GetTrustStatus(contactID) } -func (api *PublicAPI) SendContactVerificationRequest(ctx context.Context, contactID string, challenge string) error { +func (api *PublicAPI) SendContactVerificationRequest(ctx context.Context, contactID string, challenge string) (*protocol.MessengerResponse, error) { return api.service.messenger.SendContactVerificationRequest(ctx, contactID, challenge) } -func (api *PublicAPI) GetVerificationRequestFrom(ctx context.Context, contactID string) (*verification.Request, error) { - return api.service.messenger.GetVerificationRequestFrom(ctx, contactID) -} - func (api *PublicAPI) GetReceivedVerificationRequests(ctx context.Context) ([]*verification.Request, error) { return api.service.messenger.GetReceivedVerificationRequests(ctx) } @@ -797,7 +793,7 @@ func (api *PublicAPI) CancelVerificationRequest(ctx context.Context, contactID s return api.service.messenger.CancelVerificationRequest(ctx, contactID) } -func (api *PublicAPI) AcceptContactVerificationRequest(ctx context.Context, contactID string, response string) error { +func (api *PublicAPI) AcceptContactVerificationRequest(ctx context.Context, contactID string, response string) (*protocol.MessengerResponse, error) { return api.service.messenger.AcceptContactVerificationRequest(ctx, contactID, response) } @@ -1062,6 +1058,14 @@ func (api *PublicAPI) ActivityCenterNotifications(cursor string, limit uint64) ( return api.service.messenger.ActivityCenterNotifications(cursor, limit) } +func (api *PublicAPI) ReadActivityCenterNotifications(cursor string, limit uint64, activityType protocol.ActivityCenterType) (*protocol.ActivityCenterPaginationResponse, error) { + return api.service.messenger.ReadActivityCenterNotifications(cursor, limit, activityType) +} + +func (api *PublicAPI) UnreadActivityCenterNotifications(cursor string, limit uint64, activityType protocol.ActivityCenterType) (*protocol.ActivityCenterPaginationResponse, error) { + return api.service.messenger.UnreadActivityCenterNotifications(cursor, limit, activityType) +} + func (api *PublicAPI) RequestAllHistoricMessages() (*protocol.MessengerResponse, error) { return api.service.messenger.RequestAllHistoricMessages() } diff --git a/static/bindata.go b/static/bindata.go index 8f518daec..c3e233444 100644 --- a/static/bindata.go +++ b/static/bindata.go @@ -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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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(1661332898, 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 } diff --git a/t/bindata.go b/t/bindata.go index 673aff815..ad4d2f2b5 100644 --- a/t/bindata.go +++ b/t/bindata.go @@ -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(1661332898, 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(1661332898, 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(1661332898, 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 }