Introduce community history archive routine
This introduces logic needed to: - Create WakuMessageArchives and and indices from store waku messages - History archive torrent data to disk and create .torrent file from that - Seed and unseed history archive torrents as necessary - Starting/stopping the torrent client - Enabling/disabling community history support for individual components and starting/stopping the routine intervals accordingly This does not yet handle magnet links (#2568) Closes #2567
This commit is contained in:
parent
364838532f
commit
7032fc9dcc
|
@ -13,6 +13,7 @@
|
|||
// 1647882837_add_communities_settings_table.up.sql (206B)
|
||||
// 1647956635_add_waku_messages_table.up.sql (266B)
|
||||
// 1648554928_network_test.up.sql (132B)
|
||||
// 1649164719_add_community_archives_info_table.up.sql (208B)
|
||||
// doc.go (74B)
|
||||
|
||||
package migrations
|
||||
|
@ -33,7 +34,7 @@ import (
|
|||
func bindataRead(data []byte, name string) ([]byte, error) {
|
||||
gz, err := gzip.NewReader(bytes.NewBuffer(data))
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("read %q: %w", name, err)
|
||||
return nil, fmt.Errorf("read %q: %v", name, err)
|
||||
}
|
||||
|
||||
var buf bytes.Buffer
|
||||
|
@ -41,7 +42,7 @@ func bindataRead(data []byte, name string) ([]byte, error) {
|
|||
clErr := gz.Close()
|
||||
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("read %q: %w", name, err)
|
||||
return nil, fmt.Errorf("read %q: %v", name, err)
|
||||
}
|
||||
if clErr != nil {
|
||||
return nil, err
|
||||
|
@ -97,7 +98,7 @@ func _1640111208_dummyUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1640111208_dummy.up.sql", size: 258, mode: os.FileMode(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "1640111208_dummy.up.sql", size: 258, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -117,7 +118,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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "1642666031_add_removed_clock_to_bookmarks.up.sql", size: 117, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -137,7 +138,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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "1643644541_gif_api_key_setting.up.sql", size: 108, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -157,7 +158,7 @@ func _1644188994_recent_stickersUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1644188994_recent_stickers.up.sql", size: 79, mode: os.FileMode(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "1644188994_recent_stickers.up.sql", size: 79, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -177,7 +178,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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "1646659233_add_address_to_dapp_permisssion.up.sql", size: 700, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -197,7 +198,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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "1646841105_add_emoji_account.up.sql", size: 96, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -217,7 +218,7 @@ func _1647278782_display_nameUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1647278782_display_name.up.sql", size: 110, mode: os.FileMode(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "1647278782_display_name.up.sql", size: 110, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -237,7 +238,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(0664), modTime: time.Unix(1648554784, 0)}
|
||||
info := bindataFileInfo{name: "1647862838_reset_last_backup.up.sql", size: 37, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -257,7 +258,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(0664), modTime: time.Unix(1648554784, 0)}
|
||||
info := bindataFileInfo{name: "1647871652_add_settings_sync_clock_table.up.sql", size: 1044, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -277,7 +278,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(0664), modTime: time.Unix(1648554784, 0)}
|
||||
info := bindataFileInfo{name: "1647880168_add_torrent_config.up.sql", size: 211, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -297,7 +298,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(0664), modTime: time.Unix(1648554784, 0)}
|
||||
info := bindataFileInfo{name: "1647882837_add_communities_settings_table.up.sql", size: 206, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -317,7 +318,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(0664), modTime: time.Unix(1648554784, 0)}
|
||||
info := bindataFileInfo{name: "1647956635_add_waku_messages_table.up.sql", size: 266, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -337,11 +338,31 @@ func _1648554928_network_testUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1648554928_network_test.up.sql", size: 132, mode: os.FileMode(0664), modTime: time.Unix(1648554784, 0)}
|
||||
info := bindataFileInfo{name: "1648554928_network_test.up.sql", size: 132, mode: os.FileMode(0664), modTime: time.Unix(1649065141, 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
|
||||
}
|
||||
|
||||
var __1649164719_add_community_archives_info_tableUpSql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x74\xcd\xb1\x4a\xc5\x30\x18\xc5\xf1\x3d\x4f\x71\x46\x05\x07\x5f\x21\xc6\xaf\x10\x8c\xe9\x25\xf7\xbb\xd0\x4e\x21\xa4\xb1\x86\x36\x29\x98\x28\xf8\xf6\xa2\x43\x37\xe7\x73\xfe\xfc\x94\x23\xc9\x04\x96\x4f\x86\xa0\x07\xd8\x91\x41\x93\xbe\xf2\x15\xf1\x28\xe5\xb3\xe6\x9e\x53\xf3\xe1\x23\xbe\xe7\xaf\xe4\x73\x7d\x3b\x70\x27\x70\x8e\xdf\x3e\x2f\x60\x9a\x18\x17\xa7\x5f\xa5\x9b\xf1\x42\x33\x46\x0b\x35\xda\xc1\x68\xc5\x70\x74\x31\x52\xd1\x83\x00\x4a\x58\x6b\xea\x7b\xae\x9b\x8f\xfb\x11\x37\x68\xcb\x7f\xa2\xbd\x19\x83\x67\x1a\xe4\xcd\x30\x1e\x7f\xaf\x7b\x68\xdd\x97\xd4\x5a\x58\xd3\xa9\xa7\xba\xf8\x25\xf4\xf4\x4f\x27\xee\x85\xf8\x09\x00\x00\xff\xff\x74\x80\x98\x81\xd0\x00\x00\x00")
|
||||
|
||||
func _1649164719_add_community_archives_info_tableUpSqlBytes() ([]byte, error) {
|
||||
return bindataRead(
|
||||
__1649164719_add_community_archives_info_tableUpSql,
|
||||
"1649164719_add_community_archives_info_table.up.sql",
|
||||
)
|
||||
}
|
||||
|
||||
func _1649164719_add_community_archives_info_tableUpSql() (*asset, error) {
|
||||
bytes, err := _1649164719_add_community_archives_info_tableUpSqlBytes()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1649164719_add_community_archives_info_table.up.sql", size: 208, mode: os.FileMode(0664), modTime: time.Unix(1649165899, 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
|
||||
}
|
||||
|
||||
var _docGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x2c\xc9\xb1\x0d\xc4\x20\x0c\x05\xd0\x9e\x29\xfe\x02\xd8\xfd\x6d\xe3\x4b\xac\x2f\x44\x82\x09\x78\x7f\xa5\x49\xfd\xa6\x1d\xdd\xe8\xd8\xcf\x55\x8a\x2a\xe3\x47\x1f\xbe\x2c\x1d\x8c\xfa\x6f\xe3\xb4\x34\xd4\xd9\x89\xbb\x71\x59\xb6\x18\x1b\x35\x20\xa2\x9f\x0a\x03\xa2\xe5\x0d\x00\x00\xff\xff\x60\xcd\x06\xbe\x4a\x00\x00\x00")
|
||||
|
||||
func docGoBytes() ([]byte, error) {
|
||||
|
@ -357,7 +378,7 @@ func docGo() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "doc.go", size: 74, mode: os.FileMode(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "doc.go", size: 74, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -453,24 +474,36 @@ func AssetNames() []string {
|
|||
|
||||
// _bindata is a table, holding each asset generator, mapped to its name.
|
||||
var _bindata = map[string]func() (*asset, error){
|
||||
"1640111208_dummy.up.sql": _1640111208_dummyUpSql,
|
||||
"1642666031_add_removed_clock_to_bookmarks.up.sql": _1642666031_add_removed_clock_to_bookmarksUpSql,
|
||||
"1643644541_gif_api_key_setting.up.sql": _1643644541_gif_api_key_settingUpSql,
|
||||
"1644188994_recent_stickers.up.sql": _1644188994_recent_stickersUpSql,
|
||||
"1646659233_add_address_to_dapp_permisssion.up.sql": _1646659233_add_address_to_dapp_permisssionUpSql,
|
||||
"1646841105_add_emoji_account.up.sql": _1646841105_add_emoji_accountUpSql,
|
||||
"1647278782_display_name.up.sql": _1647278782_display_nameUpSql,
|
||||
"1647862838_reset_last_backup.up.sql": _1647862838_reset_last_backupUpSql,
|
||||
"1647871652_add_settings_sync_clock_table.up.sql": _1647871652_add_settings_sync_clock_tableUpSql,
|
||||
"1647880168_add_torrent_config.up.sql": _1647880168_add_torrent_configUpSql,
|
||||
"1647882837_add_communities_settings_table.up.sql": _1647882837_add_communities_settings_tableUpSql,
|
||||
"1647956635_add_waku_messages_table.up.sql": _1647956635_add_waku_messages_tableUpSql,
|
||||
"1648554928_network_test.up.sql": _1648554928_network_testUpSql,
|
||||
"doc.go": docGo,
|
||||
}
|
||||
"1640111208_dummy.up.sql": _1640111208_dummyUpSql,
|
||||
|
||||
// AssetDebug is true if the assets were built with the debug flag enabled.
|
||||
const AssetDebug = false
|
||||
"1642666031_add_removed_clock_to_bookmarks.up.sql": _1642666031_add_removed_clock_to_bookmarksUpSql,
|
||||
|
||||
"1643644541_gif_api_key_setting.up.sql": _1643644541_gif_api_key_settingUpSql,
|
||||
|
||||
"1644188994_recent_stickers.up.sql": _1644188994_recent_stickersUpSql,
|
||||
|
||||
"1646659233_add_address_to_dapp_permisssion.up.sql": _1646659233_add_address_to_dapp_permisssionUpSql,
|
||||
|
||||
"1646841105_add_emoji_account.up.sql": _1646841105_add_emoji_accountUpSql,
|
||||
|
||||
"1647278782_display_name.up.sql": _1647278782_display_nameUpSql,
|
||||
|
||||
"1647862838_reset_last_backup.up.sql": _1647862838_reset_last_backupUpSql,
|
||||
|
||||
"1647871652_add_settings_sync_clock_table.up.sql": _1647871652_add_settings_sync_clock_tableUpSql,
|
||||
|
||||
"1647880168_add_torrent_config.up.sql": _1647880168_add_torrent_configUpSql,
|
||||
|
||||
"1647882837_add_communities_settings_table.up.sql": _1647882837_add_communities_settings_tableUpSql,
|
||||
|
||||
"1647956635_add_waku_messages_table.up.sql": _1647956635_add_waku_messages_tableUpSql,
|
||||
|
||||
"1648554928_network_test.up.sql": _1648554928_network_testUpSql,
|
||||
|
||||
"1649164719_add_community_archives_info_table.up.sql": _1649164719_add_community_archives_info_tableUpSql,
|
||||
|
||||
"doc.go": docGo,
|
||||
}
|
||||
|
||||
// AssetDir returns the file names below a certain
|
||||
// directory embedded in the file by go-bindata.
|
||||
|
@ -513,20 +546,21 @@ type bintree struct {
|
|||
}
|
||||
|
||||
var _bintree = &bintree{nil, map[string]*bintree{
|
||||
"1640111208_dummy.up.sql": {_1640111208_dummyUpSql, map[string]*bintree{}},
|
||||
"1642666031_add_removed_clock_to_bookmarks.up.sql": {_1642666031_add_removed_clock_to_bookmarksUpSql, map[string]*bintree{}},
|
||||
"1643644541_gif_api_key_setting.up.sql": {_1643644541_gif_api_key_settingUpSql, map[string]*bintree{}},
|
||||
"1644188994_recent_stickers.up.sql": {_1644188994_recent_stickersUpSql, map[string]*bintree{}},
|
||||
"1646659233_add_address_to_dapp_permisssion.up.sql": {_1646659233_add_address_to_dapp_permisssionUpSql, map[string]*bintree{}},
|
||||
"1646841105_add_emoji_account.up.sql": {_1646841105_add_emoji_accountUpSql, map[string]*bintree{}},
|
||||
"1647278782_display_name.up.sql": {_1647278782_display_nameUpSql, map[string]*bintree{}},
|
||||
"1647862838_reset_last_backup.up.sql": {_1647862838_reset_last_backupUpSql, map[string]*bintree{}},
|
||||
"1647871652_add_settings_sync_clock_table.up.sql": {_1647871652_add_settings_sync_clock_tableUpSql, map[string]*bintree{}},
|
||||
"1647880168_add_torrent_config.up.sql": {_1647880168_add_torrent_configUpSql, map[string]*bintree{}},
|
||||
"1647882837_add_communities_settings_table.up.sql": {_1647882837_add_communities_settings_tableUpSql, map[string]*bintree{}},
|
||||
"1647956635_add_waku_messages_table.up.sql": {_1647956635_add_waku_messages_tableUpSql, map[string]*bintree{}},
|
||||
"1648554928_network_test.up.sql": {_1648554928_network_testUpSql, map[string]*bintree{}},
|
||||
"doc.go": {docGo, map[string]*bintree{}},
|
||||
"1640111208_dummy.up.sql": &bintree{_1640111208_dummyUpSql, map[string]*bintree{}},
|
||||
"1642666031_add_removed_clock_to_bookmarks.up.sql": &bintree{_1642666031_add_removed_clock_to_bookmarksUpSql, map[string]*bintree{}},
|
||||
"1643644541_gif_api_key_setting.up.sql": &bintree{_1643644541_gif_api_key_settingUpSql, map[string]*bintree{}},
|
||||
"1644188994_recent_stickers.up.sql": &bintree{_1644188994_recent_stickersUpSql, map[string]*bintree{}},
|
||||
"1646659233_add_address_to_dapp_permisssion.up.sql": &bintree{_1646659233_add_address_to_dapp_permisssionUpSql, map[string]*bintree{}},
|
||||
"1646841105_add_emoji_account.up.sql": &bintree{_1646841105_add_emoji_accountUpSql, map[string]*bintree{}},
|
||||
"1647278782_display_name.up.sql": &bintree{_1647278782_display_nameUpSql, map[string]*bintree{}},
|
||||
"1647862838_reset_last_backup.up.sql": &bintree{_1647862838_reset_last_backupUpSql, map[string]*bintree{}},
|
||||
"1647871652_add_settings_sync_clock_table.up.sql": &bintree{_1647871652_add_settings_sync_clock_tableUpSql, map[string]*bintree{}},
|
||||
"1647880168_add_torrent_config.up.sql": &bintree{_1647880168_add_torrent_configUpSql, map[string]*bintree{}},
|
||||
"1647882837_add_communities_settings_table.up.sql": &bintree{_1647882837_add_communities_settings_tableUpSql, map[string]*bintree{}},
|
||||
"1647956635_add_waku_messages_table.up.sql": &bintree{_1647956635_add_waku_messages_tableUpSql, map[string]*bintree{}},
|
||||
"1648554928_network_test.up.sql": &bintree{_1648554928_network_testUpSql, map[string]*bintree{}},
|
||||
"1649164719_add_community_archives_info_table.up.sql": &bintree{_1649164719_add_community_archives_info_tableUpSql, map[string]*bintree{}},
|
||||
"doc.go": &bintree{docGo, map[string]*bintree{}},
|
||||
}}
|
||||
|
||||
// RestoreAsset restores an asset under the given directory.
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
CREATE TABLE IF NOT EXISTS communities_archive_info (
|
||||
community_id TEXT PRIMARY KEY ON CONFLICT REPLACE,
|
||||
magnetlink_clock INT NOT NULL DEFAULT 0,
|
||||
last_message_archive_end_date INT NOT NULL DEFAULT 0
|
||||
)
|
||||
|
|
@ -73,7 +73,7 @@ import (
|
|||
func bindataRead(data []byte, name string) ([]byte, error) {
|
||||
gz, err := gzip.NewReader(bytes.NewBuffer(data))
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("read %q: %w", name, err)
|
||||
return nil, fmt.Errorf("read %q: %v", name, err)
|
||||
}
|
||||
|
||||
var buf bytes.Buffer
|
||||
|
@ -81,7 +81,7 @@ func bindataRead(data []byte, name string) ([]byte, error) {
|
|||
clErr := gz.Close()
|
||||
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("read %q: %w", name, err)
|
||||
return nil, fmt.Errorf("read %q: %v", name, err)
|
||||
}
|
||||
if clErr != nil {
|
||||
return nil, err
|
||||
|
@ -137,7 +137,7 @@ func _0001_appDownSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "0001_app.down.sql", size: 356, mode: os.FileMode(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "0001_app.down.sql", size: 356, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "0001_app.up.sql", size: 2967, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "0002_tokens.down.sql", size: 19, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "0002_tokens.up.sql", size: 248, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "0003_settings.down.sql", size: 118, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "0003_settings.up.sql", size: 1311, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "0004_pending_stickers.down.sql", size: 0, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "0004_pending_stickers.up.sql", size: 61, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "0005_waku_mode.down.sql", size: 0, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "0005_waku_mode.up.sql", size: 146, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "0006_appearance.up.sql", size: 67, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "0007_enable_waku_default.up.sql", size: 38, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "0008_add_push_notifications.up.sql", size: 349, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "0009_enable_sending_push_notifications.down.sql", size: 49, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "0009_enable_sending_push_notifications.up.sql", size: 49, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "0010_add_block_mentions.down.sql", size: 83, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "0010_add_block_mentions.up.sql", size: 89, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "0011_allow_webview_permission_requests.down.sql", size: 0, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "0011_allow_webview_permission_requests.up.sql", size: 88, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "0012_pending_transactions.down.sql", size: 33, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "0012_pending_transactions.up.sql", size: 321, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "0013_favourites.down.sql", size: 23, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "0013_favourites.up.sql", size: 132, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "0014_add_use_mailservers.down.sql", size: 0, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "0014_add_use_mailservers.up.sql", size: 111, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "0015_link_previews.down.sql", size: 0, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "0015_link_previews.up.sql", size: 203, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "0016_local_notifications_preferences.down.sql", size: 43, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "0016_local_notifications_preferences.up.sql", size: 204, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "0017_bookmarks.down.sql", size: 22, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "0017_bookmarks.up.sql", size: 147, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "0018_profile_pictures_visibility.up.sql", size: 84, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "0019_blocks_ranges_extra_data.up.sql", size: 89, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "0020_metrics.up.sql", size: 235, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "0021_add_session_id_to_metrics.up.sql", size: 55, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "0022_pending_transfers.up.sql", size: 706, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "1618237885_settings_anon_metrics_should_send.up.sql", size: 80, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "1618395756_contacts_only.up.sql", size: 136, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "1622184614_add_default_sync_period.up.sql", size: 125, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "1625872445_user_status.up.sql", size: 351, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "1627983977_add_gif_to_settings.up.sql", size: 102, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "1628580203_add_hidden_account.up.sql", size: 67, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "1629123384_add_id_to_app_metrics.up.sql", size: 589, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "1630401853_add_opensea_enabled_to_settings.up.sql", size: 70, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "1630464455_create-saved_addresses-table.down.sql", size: 28, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "1630464455_create-saved_addresses-table.up.sql", size: 187, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "1630485153_networks.down.sql", size: 21, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "1630485153_networks.up.sql", size: 394, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "1632262444_profile_pictures_show_to.up.sql", size: 81, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "1635942153_add_telemetry_server_url_to_settings.up.sql", size: 128, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "1635942154_add_backup_setting.up.sql", size: 287, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "1637745568_add_auto_message_setting.up.sql", size: 122, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "1640111208_nodeconfig.up.sql", size: 7659, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648541634, 0)}
|
||||
info := bindataFileInfo{name: "doc.go", size: 85, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -1293,64 +1293,114 @@ func AssetNames() []string {
|
|||
|
||||
// _bindata is a table, holding each asset generator, mapped to its name.
|
||||
var _bindata = map[string]func() (*asset, error){
|
||||
"0001_app.down.sql": _0001_appDownSql,
|
||||
"0001_app.up.sql": _0001_appUpSql,
|
||||
"0002_tokens.down.sql": _0002_tokensDownSql,
|
||||
"0002_tokens.up.sql": _0002_tokensUpSql,
|
||||
"0003_settings.down.sql": _0003_settingsDownSql,
|
||||
"0003_settings.up.sql": _0003_settingsUpSql,
|
||||
"0004_pending_stickers.down.sql": _0004_pending_stickersDownSql,
|
||||
"0004_pending_stickers.up.sql": _0004_pending_stickersUpSql,
|
||||
"0005_waku_mode.down.sql": _0005_waku_modeDownSql,
|
||||
"0005_waku_mode.up.sql": _0005_waku_modeUpSql,
|
||||
"0006_appearance.up.sql": _0006_appearanceUpSql,
|
||||
"0007_enable_waku_default.up.sql": _0007_enable_waku_defaultUpSql,
|
||||
"0008_add_push_notifications.up.sql": _0008_add_push_notificationsUpSql,
|
||||
"0009_enable_sending_push_notifications.down.sql": _0009_enable_sending_push_notificationsDownSql,
|
||||
"0009_enable_sending_push_notifications.up.sql": _0009_enable_sending_push_notificationsUpSql,
|
||||
"0010_add_block_mentions.down.sql": _0010_add_block_mentionsDownSql,
|
||||
"0010_add_block_mentions.up.sql": _0010_add_block_mentionsUpSql,
|
||||
"0011_allow_webview_permission_requests.down.sql": _0011_allow_webview_permission_requestsDownSql,
|
||||
"0011_allow_webview_permission_requests.up.sql": _0011_allow_webview_permission_requestsUpSql,
|
||||
"0012_pending_transactions.down.sql": _0012_pending_transactionsDownSql,
|
||||
"0012_pending_transactions.up.sql": _0012_pending_transactionsUpSql,
|
||||
"0013_favourites.down.sql": _0013_favouritesDownSql,
|
||||
"0013_favourites.up.sql": _0013_favouritesUpSql,
|
||||
"0014_add_use_mailservers.down.sql": _0014_add_use_mailserversDownSql,
|
||||
"0014_add_use_mailservers.up.sql": _0014_add_use_mailserversUpSql,
|
||||
"0015_link_previews.down.sql": _0015_link_previewsDownSql,
|
||||
"0015_link_previews.up.sql": _0015_link_previewsUpSql,
|
||||
"0016_local_notifications_preferences.down.sql": _0016_local_notifications_preferencesDownSql,
|
||||
"0016_local_notifications_preferences.up.sql": _0016_local_notifications_preferencesUpSql,
|
||||
"0017_bookmarks.down.sql": _0017_bookmarksDownSql,
|
||||
"0017_bookmarks.up.sql": _0017_bookmarksUpSql,
|
||||
"0018_profile_pictures_visibility.up.sql": _0018_profile_pictures_visibilityUpSql,
|
||||
"0019_blocks_ranges_extra_data.up.sql": _0019_blocks_ranges_extra_dataUpSql,
|
||||
"0020_metrics.up.sql": _0020_metricsUpSql,
|
||||
"0021_add_session_id_to_metrics.up.sql": _0021_add_session_id_to_metricsUpSql,
|
||||
"0022_pending_transfers.up.sql": _0022_pending_transfersUpSql,
|
||||
"1618237885_settings_anon_metrics_should_send.up.sql": _1618237885_settings_anon_metrics_should_sendUpSql,
|
||||
"1618395756_contacts_only.up.sql": _1618395756_contacts_onlyUpSql,
|
||||
"1622184614_add_default_sync_period.up.sql": _1622184614_add_default_sync_periodUpSql,
|
||||
"1625872445_user_status.up.sql": _1625872445_user_statusUpSql,
|
||||
"1627983977_add_gif_to_settings.up.sql": _1627983977_add_gif_to_settingsUpSql,
|
||||
"1628580203_add_hidden_account.up.sql": _1628580203_add_hidden_accountUpSql,
|
||||
"1629123384_add_id_to_app_metrics.up.sql": _1629123384_add_id_to_app_metricsUpSql,
|
||||
"1630401853_add_opensea_enabled_to_settings.up.sql": _1630401853_add_opensea_enabled_to_settingsUpSql,
|
||||
"1630464455_create-saved_addresses-table.down.sql": _1630464455_createSaved_addressesTableDownSql,
|
||||
"1630464455_create-saved_addresses-table.up.sql": _1630464455_createSaved_addressesTableUpSql,
|
||||
"1630485153_networks.down.sql": _1630485153_networksDownSql,
|
||||
"1630485153_networks.up.sql": _1630485153_networksUpSql,
|
||||
"1632262444_profile_pictures_show_to.up.sql": _1632262444_profile_pictures_show_toUpSql,
|
||||
"1635942153_add_telemetry_server_url_to_settings.up.sql": _1635942153_add_telemetry_server_url_to_settingsUpSql,
|
||||
"1635942154_add_backup_setting.up.sql": _1635942154_add_backup_settingUpSql,
|
||||
"1637745568_add_auto_message_setting.up.sql": _1637745568_add_auto_message_settingUpSql,
|
||||
"1640111208_nodeconfig.up.sql": _1640111208_nodeconfigUpSql,
|
||||
"doc.go": docGo,
|
||||
}
|
||||
"0001_app.down.sql": _0001_appDownSql,
|
||||
|
||||
// AssetDebug is true if the assets were built with the debug flag enabled.
|
||||
const AssetDebug = false
|
||||
"0001_app.up.sql": _0001_appUpSql,
|
||||
|
||||
"0002_tokens.down.sql": _0002_tokensDownSql,
|
||||
|
||||
"0002_tokens.up.sql": _0002_tokensUpSql,
|
||||
|
||||
"0003_settings.down.sql": _0003_settingsDownSql,
|
||||
|
||||
"0003_settings.up.sql": _0003_settingsUpSql,
|
||||
|
||||
"0004_pending_stickers.down.sql": _0004_pending_stickersDownSql,
|
||||
|
||||
"0004_pending_stickers.up.sql": _0004_pending_stickersUpSql,
|
||||
|
||||
"0005_waku_mode.down.sql": _0005_waku_modeDownSql,
|
||||
|
||||
"0005_waku_mode.up.sql": _0005_waku_modeUpSql,
|
||||
|
||||
"0006_appearance.up.sql": _0006_appearanceUpSql,
|
||||
|
||||
"0007_enable_waku_default.up.sql": _0007_enable_waku_defaultUpSql,
|
||||
|
||||
"0008_add_push_notifications.up.sql": _0008_add_push_notificationsUpSql,
|
||||
|
||||
"0009_enable_sending_push_notifications.down.sql": _0009_enable_sending_push_notificationsDownSql,
|
||||
|
||||
"0009_enable_sending_push_notifications.up.sql": _0009_enable_sending_push_notificationsUpSql,
|
||||
|
||||
"0010_add_block_mentions.down.sql": _0010_add_block_mentionsDownSql,
|
||||
|
||||
"0010_add_block_mentions.up.sql": _0010_add_block_mentionsUpSql,
|
||||
|
||||
"0011_allow_webview_permission_requests.down.sql": _0011_allow_webview_permission_requestsDownSql,
|
||||
|
||||
"0011_allow_webview_permission_requests.up.sql": _0011_allow_webview_permission_requestsUpSql,
|
||||
|
||||
"0012_pending_transactions.down.sql": _0012_pending_transactionsDownSql,
|
||||
|
||||
"0012_pending_transactions.up.sql": _0012_pending_transactionsUpSql,
|
||||
|
||||
"0013_favourites.down.sql": _0013_favouritesDownSql,
|
||||
|
||||
"0013_favourites.up.sql": _0013_favouritesUpSql,
|
||||
|
||||
"0014_add_use_mailservers.down.sql": _0014_add_use_mailserversDownSql,
|
||||
|
||||
"0014_add_use_mailservers.up.sql": _0014_add_use_mailserversUpSql,
|
||||
|
||||
"0015_link_previews.down.sql": _0015_link_previewsDownSql,
|
||||
|
||||
"0015_link_previews.up.sql": _0015_link_previewsUpSql,
|
||||
|
||||
"0016_local_notifications_preferences.down.sql": _0016_local_notifications_preferencesDownSql,
|
||||
|
||||
"0016_local_notifications_preferences.up.sql": _0016_local_notifications_preferencesUpSql,
|
||||
|
||||
"0017_bookmarks.down.sql": _0017_bookmarksDownSql,
|
||||
|
||||
"0017_bookmarks.up.sql": _0017_bookmarksUpSql,
|
||||
|
||||
"0018_profile_pictures_visibility.up.sql": _0018_profile_pictures_visibilityUpSql,
|
||||
|
||||
"0019_blocks_ranges_extra_data.up.sql": _0019_blocks_ranges_extra_dataUpSql,
|
||||
|
||||
"0020_metrics.up.sql": _0020_metricsUpSql,
|
||||
|
||||
"0021_add_session_id_to_metrics.up.sql": _0021_add_session_id_to_metricsUpSql,
|
||||
|
||||
"0022_pending_transfers.up.sql": _0022_pending_transfersUpSql,
|
||||
|
||||
"1618237885_settings_anon_metrics_should_send.up.sql": _1618237885_settings_anon_metrics_should_sendUpSql,
|
||||
|
||||
"1618395756_contacts_only.up.sql": _1618395756_contacts_onlyUpSql,
|
||||
|
||||
"1622184614_add_default_sync_period.up.sql": _1622184614_add_default_sync_periodUpSql,
|
||||
|
||||
"1625872445_user_status.up.sql": _1625872445_user_statusUpSql,
|
||||
|
||||
"1627983977_add_gif_to_settings.up.sql": _1627983977_add_gif_to_settingsUpSql,
|
||||
|
||||
"1628580203_add_hidden_account.up.sql": _1628580203_add_hidden_accountUpSql,
|
||||
|
||||
"1629123384_add_id_to_app_metrics.up.sql": _1629123384_add_id_to_app_metricsUpSql,
|
||||
|
||||
"1630401853_add_opensea_enabled_to_settings.up.sql": _1630401853_add_opensea_enabled_to_settingsUpSql,
|
||||
|
||||
"1630464455_create-saved_addresses-table.down.sql": _1630464455_createSaved_addressesTableDownSql,
|
||||
|
||||
"1630464455_create-saved_addresses-table.up.sql": _1630464455_createSaved_addressesTableUpSql,
|
||||
|
||||
"1630485153_networks.down.sql": _1630485153_networksDownSql,
|
||||
|
||||
"1630485153_networks.up.sql": _1630485153_networksUpSql,
|
||||
|
||||
"1632262444_profile_pictures_show_to.up.sql": _1632262444_profile_pictures_show_toUpSql,
|
||||
|
||||
"1635942153_add_telemetry_server_url_to_settings.up.sql": _1635942153_add_telemetry_server_url_to_settingsUpSql,
|
||||
|
||||
"1635942154_add_backup_setting.up.sql": _1635942154_add_backup_settingUpSql,
|
||||
|
||||
"1637745568_add_auto_message_setting.up.sql": _1637745568_add_auto_message_settingUpSql,
|
||||
|
||||
"1640111208_nodeconfig.up.sql": _1640111208_nodeconfigUpSql,
|
||||
|
||||
"doc.go": docGo,
|
||||
}
|
||||
|
||||
// AssetDir returns the file names below a certain
|
||||
// directory embedded in the file by go-bindata.
|
||||
|
@ -1393,60 +1443,60 @@ type bintree struct {
|
|||
}
|
||||
|
||||
var _bintree = &bintree{nil, map[string]*bintree{
|
||||
"0001_app.down.sql": {_0001_appDownSql, map[string]*bintree{}},
|
||||
"0001_app.up.sql": {_0001_appUpSql, map[string]*bintree{}},
|
||||
"0002_tokens.down.sql": {_0002_tokensDownSql, map[string]*bintree{}},
|
||||
"0002_tokens.up.sql": {_0002_tokensUpSql, map[string]*bintree{}},
|
||||
"0003_settings.down.sql": {_0003_settingsDownSql, map[string]*bintree{}},
|
||||
"0003_settings.up.sql": {_0003_settingsUpSql, map[string]*bintree{}},
|
||||
"0004_pending_stickers.down.sql": {_0004_pending_stickersDownSql, map[string]*bintree{}},
|
||||
"0004_pending_stickers.up.sql": {_0004_pending_stickersUpSql, map[string]*bintree{}},
|
||||
"0005_waku_mode.down.sql": {_0005_waku_modeDownSql, map[string]*bintree{}},
|
||||
"0005_waku_mode.up.sql": {_0005_waku_modeUpSql, map[string]*bintree{}},
|
||||
"0006_appearance.up.sql": {_0006_appearanceUpSql, map[string]*bintree{}},
|
||||
"0007_enable_waku_default.up.sql": {_0007_enable_waku_defaultUpSql, map[string]*bintree{}},
|
||||
"0008_add_push_notifications.up.sql": {_0008_add_push_notificationsUpSql, map[string]*bintree{}},
|
||||
"0009_enable_sending_push_notifications.down.sql": {_0009_enable_sending_push_notificationsDownSql, map[string]*bintree{}},
|
||||
"0009_enable_sending_push_notifications.up.sql": {_0009_enable_sending_push_notificationsUpSql, map[string]*bintree{}},
|
||||
"0010_add_block_mentions.down.sql": {_0010_add_block_mentionsDownSql, map[string]*bintree{}},
|
||||
"0010_add_block_mentions.up.sql": {_0010_add_block_mentionsUpSql, map[string]*bintree{}},
|
||||
"0011_allow_webview_permission_requests.down.sql": {_0011_allow_webview_permission_requestsDownSql, map[string]*bintree{}},
|
||||
"0011_allow_webview_permission_requests.up.sql": {_0011_allow_webview_permission_requestsUpSql, map[string]*bintree{}},
|
||||
"0012_pending_transactions.down.sql": {_0012_pending_transactionsDownSql, map[string]*bintree{}},
|
||||
"0012_pending_transactions.up.sql": {_0012_pending_transactionsUpSql, map[string]*bintree{}},
|
||||
"0013_favourites.down.sql": {_0013_favouritesDownSql, map[string]*bintree{}},
|
||||
"0013_favourites.up.sql": {_0013_favouritesUpSql, map[string]*bintree{}},
|
||||
"0014_add_use_mailservers.down.sql": {_0014_add_use_mailserversDownSql, map[string]*bintree{}},
|
||||
"0014_add_use_mailservers.up.sql": {_0014_add_use_mailserversUpSql, map[string]*bintree{}},
|
||||
"0015_link_previews.down.sql": {_0015_link_previewsDownSql, map[string]*bintree{}},
|
||||
"0015_link_previews.up.sql": {_0015_link_previewsUpSql, map[string]*bintree{}},
|
||||
"0016_local_notifications_preferences.down.sql": {_0016_local_notifications_preferencesDownSql, map[string]*bintree{}},
|
||||
"0016_local_notifications_preferences.up.sql": {_0016_local_notifications_preferencesUpSql, map[string]*bintree{}},
|
||||
"0017_bookmarks.down.sql": {_0017_bookmarksDownSql, map[string]*bintree{}},
|
||||
"0017_bookmarks.up.sql": {_0017_bookmarksUpSql, map[string]*bintree{}},
|
||||
"0018_profile_pictures_visibility.up.sql": {_0018_profile_pictures_visibilityUpSql, map[string]*bintree{}},
|
||||
"0019_blocks_ranges_extra_data.up.sql": {_0019_blocks_ranges_extra_dataUpSql, map[string]*bintree{}},
|
||||
"0020_metrics.up.sql": {_0020_metricsUpSql, map[string]*bintree{}},
|
||||
"0021_add_session_id_to_metrics.up.sql": {_0021_add_session_id_to_metricsUpSql, map[string]*bintree{}},
|
||||
"0022_pending_transfers.up.sql": {_0022_pending_transfersUpSql, map[string]*bintree{}},
|
||||
"1618237885_settings_anon_metrics_should_send.up.sql": {_1618237885_settings_anon_metrics_should_sendUpSql, map[string]*bintree{}},
|
||||
"1618395756_contacts_only.up.sql": {_1618395756_contacts_onlyUpSql, map[string]*bintree{}},
|
||||
"1622184614_add_default_sync_period.up.sql": {_1622184614_add_default_sync_periodUpSql, map[string]*bintree{}},
|
||||
"1625872445_user_status.up.sql": {_1625872445_user_statusUpSql, map[string]*bintree{}},
|
||||
"1627983977_add_gif_to_settings.up.sql": {_1627983977_add_gif_to_settingsUpSql, map[string]*bintree{}},
|
||||
"1628580203_add_hidden_account.up.sql": {_1628580203_add_hidden_accountUpSql, map[string]*bintree{}},
|
||||
"1629123384_add_id_to_app_metrics.up.sql": {_1629123384_add_id_to_app_metricsUpSql, map[string]*bintree{}},
|
||||
"1630401853_add_opensea_enabled_to_settings.up.sql": {_1630401853_add_opensea_enabled_to_settingsUpSql, map[string]*bintree{}},
|
||||
"1630464455_create-saved_addresses-table.down.sql": {_1630464455_createSaved_addressesTableDownSql, map[string]*bintree{}},
|
||||
"1630464455_create-saved_addresses-table.up.sql": {_1630464455_createSaved_addressesTableUpSql, map[string]*bintree{}},
|
||||
"1630485153_networks.down.sql": {_1630485153_networksDownSql, map[string]*bintree{}},
|
||||
"1630485153_networks.up.sql": {_1630485153_networksUpSql, map[string]*bintree{}},
|
||||
"1632262444_profile_pictures_show_to.up.sql": {_1632262444_profile_pictures_show_toUpSql, map[string]*bintree{}},
|
||||
"1635942153_add_telemetry_server_url_to_settings.up.sql": {_1635942153_add_telemetry_server_url_to_settingsUpSql, map[string]*bintree{}},
|
||||
"1635942154_add_backup_setting.up.sql": {_1635942154_add_backup_settingUpSql, map[string]*bintree{}},
|
||||
"1637745568_add_auto_message_setting.up.sql": {_1637745568_add_auto_message_settingUpSql, map[string]*bintree{}},
|
||||
"1640111208_nodeconfig.up.sql": {_1640111208_nodeconfigUpSql, map[string]*bintree{}},
|
||||
"doc.go": {docGo, map[string]*bintree{}},
|
||||
"0001_app.down.sql": &bintree{_0001_appDownSql, map[string]*bintree{}},
|
||||
"0001_app.up.sql": &bintree{_0001_appUpSql, map[string]*bintree{}},
|
||||
"0002_tokens.down.sql": &bintree{_0002_tokensDownSql, map[string]*bintree{}},
|
||||
"0002_tokens.up.sql": &bintree{_0002_tokensUpSql, map[string]*bintree{}},
|
||||
"0003_settings.down.sql": &bintree{_0003_settingsDownSql, map[string]*bintree{}},
|
||||
"0003_settings.up.sql": &bintree{_0003_settingsUpSql, map[string]*bintree{}},
|
||||
"0004_pending_stickers.down.sql": &bintree{_0004_pending_stickersDownSql, map[string]*bintree{}},
|
||||
"0004_pending_stickers.up.sql": &bintree{_0004_pending_stickersUpSql, map[string]*bintree{}},
|
||||
"0005_waku_mode.down.sql": &bintree{_0005_waku_modeDownSql, map[string]*bintree{}},
|
||||
"0005_waku_mode.up.sql": &bintree{_0005_waku_modeUpSql, map[string]*bintree{}},
|
||||
"0006_appearance.up.sql": &bintree{_0006_appearanceUpSql, map[string]*bintree{}},
|
||||
"0007_enable_waku_default.up.sql": &bintree{_0007_enable_waku_defaultUpSql, map[string]*bintree{}},
|
||||
"0008_add_push_notifications.up.sql": &bintree{_0008_add_push_notificationsUpSql, map[string]*bintree{}},
|
||||
"0009_enable_sending_push_notifications.down.sql": &bintree{_0009_enable_sending_push_notificationsDownSql, map[string]*bintree{}},
|
||||
"0009_enable_sending_push_notifications.up.sql": &bintree{_0009_enable_sending_push_notificationsUpSql, map[string]*bintree{}},
|
||||
"0010_add_block_mentions.down.sql": &bintree{_0010_add_block_mentionsDownSql, map[string]*bintree{}},
|
||||
"0010_add_block_mentions.up.sql": &bintree{_0010_add_block_mentionsUpSql, map[string]*bintree{}},
|
||||
"0011_allow_webview_permission_requests.down.sql": &bintree{_0011_allow_webview_permission_requestsDownSql, map[string]*bintree{}},
|
||||
"0011_allow_webview_permission_requests.up.sql": &bintree{_0011_allow_webview_permission_requestsUpSql, map[string]*bintree{}},
|
||||
"0012_pending_transactions.down.sql": &bintree{_0012_pending_transactionsDownSql, map[string]*bintree{}},
|
||||
"0012_pending_transactions.up.sql": &bintree{_0012_pending_transactionsUpSql, map[string]*bintree{}},
|
||||
"0013_favourites.down.sql": &bintree{_0013_favouritesDownSql, map[string]*bintree{}},
|
||||
"0013_favourites.up.sql": &bintree{_0013_favouritesUpSql, map[string]*bintree{}},
|
||||
"0014_add_use_mailservers.down.sql": &bintree{_0014_add_use_mailserversDownSql, map[string]*bintree{}},
|
||||
"0014_add_use_mailservers.up.sql": &bintree{_0014_add_use_mailserversUpSql, map[string]*bintree{}},
|
||||
"0015_link_previews.down.sql": &bintree{_0015_link_previewsDownSql, map[string]*bintree{}},
|
||||
"0015_link_previews.up.sql": &bintree{_0015_link_previewsUpSql, map[string]*bintree{}},
|
||||
"0016_local_notifications_preferences.down.sql": &bintree{_0016_local_notifications_preferencesDownSql, map[string]*bintree{}},
|
||||
"0016_local_notifications_preferences.up.sql": &bintree{_0016_local_notifications_preferencesUpSql, map[string]*bintree{}},
|
||||
"0017_bookmarks.down.sql": &bintree{_0017_bookmarksDownSql, map[string]*bintree{}},
|
||||
"0017_bookmarks.up.sql": &bintree{_0017_bookmarksUpSql, map[string]*bintree{}},
|
||||
"0018_profile_pictures_visibility.up.sql": &bintree{_0018_profile_pictures_visibilityUpSql, map[string]*bintree{}},
|
||||
"0019_blocks_ranges_extra_data.up.sql": &bintree{_0019_blocks_ranges_extra_dataUpSql, map[string]*bintree{}},
|
||||
"0020_metrics.up.sql": &bintree{_0020_metricsUpSql, map[string]*bintree{}},
|
||||
"0021_add_session_id_to_metrics.up.sql": &bintree{_0021_add_session_id_to_metricsUpSql, map[string]*bintree{}},
|
||||
"0022_pending_transfers.up.sql": &bintree{_0022_pending_transfersUpSql, map[string]*bintree{}},
|
||||
"1618237885_settings_anon_metrics_should_send.up.sql": &bintree{_1618237885_settings_anon_metrics_should_sendUpSql, map[string]*bintree{}},
|
||||
"1618395756_contacts_only.up.sql": &bintree{_1618395756_contacts_onlyUpSql, map[string]*bintree{}},
|
||||
"1622184614_add_default_sync_period.up.sql": &bintree{_1622184614_add_default_sync_periodUpSql, map[string]*bintree{}},
|
||||
"1625872445_user_status.up.sql": &bintree{_1625872445_user_statusUpSql, map[string]*bintree{}},
|
||||
"1627983977_add_gif_to_settings.up.sql": &bintree{_1627983977_add_gif_to_settingsUpSql, map[string]*bintree{}},
|
||||
"1628580203_add_hidden_account.up.sql": &bintree{_1628580203_add_hidden_accountUpSql, map[string]*bintree{}},
|
||||
"1629123384_add_id_to_app_metrics.up.sql": &bintree{_1629123384_add_id_to_app_metricsUpSql, map[string]*bintree{}},
|
||||
"1630401853_add_opensea_enabled_to_settings.up.sql": &bintree{_1630401853_add_opensea_enabled_to_settingsUpSql, map[string]*bintree{}},
|
||||
"1630464455_create-saved_addresses-table.down.sql": &bintree{_1630464455_createSaved_addressesTableDownSql, map[string]*bintree{}},
|
||||
"1630464455_create-saved_addresses-table.up.sql": &bintree{_1630464455_createSaved_addressesTableUpSql, map[string]*bintree{}},
|
||||
"1630485153_networks.down.sql": &bintree{_1630485153_networksDownSql, map[string]*bintree{}},
|
||||
"1630485153_networks.up.sql": &bintree{_1630485153_networksUpSql, map[string]*bintree{}},
|
||||
"1632262444_profile_pictures_show_to.up.sql": &bintree{_1632262444_profile_pictures_show_toUpSql, map[string]*bintree{}},
|
||||
"1635942153_add_telemetry_server_url_to_settings.up.sql": &bintree{_1635942153_add_telemetry_server_url_to_settingsUpSql, map[string]*bintree{}},
|
||||
"1635942154_add_backup_setting.up.sql": &bintree{_1635942154_add_backup_settingUpSql, map[string]*bintree{}},
|
||||
"1637745568_add_auto_message_setting.up.sql": &bintree{_1637745568_add_auto_message_settingUpSql, map[string]*bintree{}},
|
||||
"1640111208_nodeconfig.up.sql": &bintree{_1640111208_nodeconfigUpSql, map[string]*bintree{}},
|
||||
"doc.go": &bintree{docGo, map[string]*bintree{}},
|
||||
}}
|
||||
|
||||
// RestoreAsset restores an asset under the given directory.
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
package types
|
||||
|
||||
import (
|
||||
"github.com/ethereum/go-ethereum/common/hexutil"
|
||||
)
|
||||
|
||||
const (
|
||||
// TopicLength is the expected length of the topic, in bytes
|
||||
TopicLength = 4
|
||||
|
@ -84,3 +88,16 @@ func MakeFullNodeBloom() []byte {
|
|||
}
|
||||
return bloom
|
||||
}
|
||||
|
||||
func StringToTopic(s string) (t TopicType) {
|
||||
str, _ := hexutil.Decode(s)
|
||||
return BytesToTopic(str)
|
||||
}
|
||||
|
||||
func TopicTypeToByteArray(t TopicType) []byte {
|
||||
topic := make([]byte, 4)
|
||||
for i, b := range t {
|
||||
topic[i] = b
|
||||
}
|
||||
return topic
|
||||
}
|
||||
|
|
|
@ -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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1557732988_initialize_db.down.sql", size: 72, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1557732988_initialize_db.up.sql", size: 278, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "static.go", size: 178, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
|
|
@ -6,6 +6,8 @@ import (
|
|||
"github.com/status-im/status-go/eth-node/types"
|
||||
"github.com/status-im/status-go/multiaccounts/errors"
|
||||
"github.com/status-im/status-go/multiaccounts/settings"
|
||||
"github.com/status-im/status-go/nodecfg"
|
||||
"github.com/status-im/status-go/params"
|
||||
)
|
||||
|
||||
const (
|
||||
|
@ -214,3 +216,7 @@ func (db *Database) AddressExists(address types.Address) (exists bool, err error
|
|||
err = db.db.QueryRow("SELECT EXISTS (SELECT 1 FROM accounts WHERE address = ?)", address).Scan(&exists)
|
||||
return exists, err
|
||||
}
|
||||
|
||||
func (db *Database) GetNodeConfig() (*params.NodeConfig, error) {
|
||||
return nodecfg.GetNodeConfig(db.db)
|
||||
}
|
||||
|
|
|
@ -90,7 +90,7 @@ func _0001_accountsDownSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "0001_accounts.down.sql", size: 21, mode: os.FileMode(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "0001_accounts.down.sql", size: 21, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -110,7 +110,7 @@ func _0001_accountsUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "0001_accounts.up.sql", size: 163, mode: os.FileMode(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "0001_accounts.up.sql", size: 163, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -130,7 +130,7 @@ func _1605007189_identity_imagesDownSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1605007189_identity_images.down.sql", size: 29, mode: os.FileMode(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1605007189_identity_images.down.sql", size: 29, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -150,7 +150,7 @@ func _1605007189_identity_imagesUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1605007189_identity_images.up.sql", size: 268, mode: os.FileMode(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1605007189_identity_images.up.sql", size: 268, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -170,7 +170,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1606224181_drop_photo_path_from_accounts.down.sql", size: 892, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -190,7 +190,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1606224181_drop_photo_path_from_accounts.up.sql", size: 866, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -210,7 +210,7 @@ func docGo() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "doc.go", size: 74, mode: os.FileMode(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "doc.go", size: 74, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
|
|
@ -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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1619446565_postgres_make_anon_metrics_table.down.sql", size: 24, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1619446565_postgres_make_anon_metrics_table.up.sql", size: 443, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "doc.go", size: 380, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
|
|
@ -4,15 +4,14 @@ import (
|
|||
"crypto/ecdsa"
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
// These will be used in the following commit
|
||||
// The reason import and usage is done in multiple commits
|
||||
// is to make reviewing the changes easier
|
||||
_ "github.com/anacrolix/torrent"
|
||||
_ "github.com/anacrolix/torrent/bencode"
|
||||
_ "github.com/anacrolix/torrent/metainfo"
|
||||
"github.com/anacrolix/torrent"
|
||||
"github.com/anacrolix/torrent/bencode"
|
||||
"github.com/anacrolix/torrent/metainfo"
|
||||
"github.com/golang/protobuf/proto"
|
||||
|
||||
"github.com/google/uuid"
|
||||
|
@ -21,23 +20,38 @@ import (
|
|||
|
||||
"github.com/status-im/status-go/eth-node/crypto"
|
||||
"github.com/status-im/status-go/eth-node/types"
|
||||
"github.com/status-im/status-go/params"
|
||||
"github.com/status-im/status-go/protocol/common"
|
||||
"github.com/status-im/status-go/protocol/ens"
|
||||
"github.com/status-im/status-go/protocol/protobuf"
|
||||
"github.com/status-im/status-go/protocol/requests"
|
||||
"github.com/status-im/status-go/protocol/transport"
|
||||
"github.com/status-im/status-go/signal"
|
||||
)
|
||||
|
||||
var defaultAnnounceList = [][]string{
|
||||
{"udp://tracker.opentrackr.org:1337/announce"},
|
||||
{"udp://tracker.openbittorrent.com:6969/announce"},
|
||||
}
|
||||
var pieceLength = 100 * 1024
|
||||
|
||||
type Manager struct {
|
||||
persistence *Persistence
|
||||
ensSubscription chan []*ens.VerificationRecord
|
||||
subscriptions []chan *Subscription
|
||||
ensVerifier *ens.Verifier
|
||||
identity *ecdsa.PublicKey
|
||||
logger *zap.Logger
|
||||
quit chan struct{}
|
||||
persistence *Persistence
|
||||
ensSubscription chan []*ens.VerificationRecord
|
||||
subscriptions []chan *Subscription
|
||||
ensVerifier *ens.Verifier
|
||||
identity *ecdsa.PublicKey
|
||||
logger *zap.Logger
|
||||
transport *transport.Transport
|
||||
quit chan struct{}
|
||||
torrentConfig *params.TorrentConfig
|
||||
torrentClient *torrent.Client
|
||||
historyArchiveTasksWaitGroup sync.WaitGroup
|
||||
historyArchiveTasks map[string]chan struct{}
|
||||
torrentTasks map[string]metainfo.Hash
|
||||
}
|
||||
|
||||
func NewManager(identity *ecdsa.PublicKey, db *sql.DB, logger *zap.Logger, verifier *ens.Verifier) (*Manager, error) {
|
||||
func NewManager(identity *ecdsa.PublicKey, db *sql.DB, logger *zap.Logger, verifier *ens.Verifier, transport *transport.Transport, torrentConfig *params.TorrentConfig) (*Manager, error) {
|
||||
if identity == nil {
|
||||
return nil, errors.New("empty identity")
|
||||
}
|
||||
|
@ -50,9 +64,13 @@ func NewManager(identity *ecdsa.PublicKey, db *sql.DB, logger *zap.Logger, verif
|
|||
}
|
||||
|
||||
manager := &Manager{
|
||||
logger: logger,
|
||||
identity: identity,
|
||||
quit: make(chan struct{}),
|
||||
logger: logger,
|
||||
identity: identity,
|
||||
quit: make(chan struct{}),
|
||||
transport: transport,
|
||||
torrentConfig: torrentConfig,
|
||||
historyArchiveTasks: make(map[string]chan struct{}),
|
||||
torrentTasks: make(map[string]metainfo.Hash),
|
||||
persistence: &Persistence{
|
||||
logger: logger,
|
||||
db: db,
|
||||
|
@ -70,8 +88,14 @@ func NewManager(identity *ecdsa.PublicKey, db *sql.DB, logger *zap.Logger, verif
|
|||
}
|
||||
|
||||
type Subscription struct {
|
||||
Community *Community
|
||||
Invitations []*protobuf.CommunityInvitation
|
||||
Community *Community
|
||||
Invitations []*protobuf.CommunityInvitation
|
||||
CreatingHistoryArchivesSignal *signal.CreatingHistoryArchivesSignal
|
||||
HistoryArchivesCreatedSignal *signal.HistoryArchivesCreatedSignal
|
||||
NoHistoryArchivesCreatedSignal *signal.NoHistoryArchivesCreatedSignal
|
||||
HistoryArchivesSeedingSignal *signal.HistoryArchivesSeedingSignal
|
||||
HistoryArchivesUnseededSignal *signal.HistoryArchivesUnseededSignal
|
||||
HistoryArchiveDownloadedSignal *signal.HistoryArchiveDownloadedSignal
|
||||
}
|
||||
|
||||
type CommunityResponse struct {
|
||||
|
@ -89,6 +113,12 @@ func (m *Manager) Start() error {
|
|||
if m.ensVerifier != nil {
|
||||
m.runENSVerificationLoop()
|
||||
}
|
||||
|
||||
if m.torrentConfig != nil && m.torrentConfig.Enabled {
|
||||
err := m.StartTorrentClient()
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -116,9 +146,64 @@ func (m *Manager) Stop() error {
|
|||
for _, c := range m.subscriptions {
|
||||
close(c)
|
||||
}
|
||||
m.StopTorrentClient()
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *Manager) SetTorrentConfig(config *params.TorrentConfig) {
|
||||
m.torrentConfig = config
|
||||
}
|
||||
|
||||
func (m *Manager) StartTorrentClient() error {
|
||||
if m.torrentConfig == nil {
|
||||
return fmt.Errorf("Can't start torrent client: missing torrentConfig")
|
||||
}
|
||||
|
||||
if m.TorrentClientStarted() {
|
||||
return nil
|
||||
}
|
||||
|
||||
config := torrent.NewDefaultClientConfig()
|
||||
config.SetListenAddr(":" + fmt.Sprint(m.torrentConfig.Port))
|
||||
config.Seed = true
|
||||
|
||||
config.DataDir = m.torrentConfig.DataDir
|
||||
|
||||
if _, err := os.Stat(m.torrentConfig.DataDir); os.IsNotExist(err) {
|
||||
err := os.MkdirAll(m.torrentConfig.DataDir, 0700)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
m.logger.Info("Starting torrent client", zap.Any("port", m.torrentConfig.Port))
|
||||
// Instantiating the client will make it bootstrap and listen eagerly,
|
||||
// so no go routine is needed here
|
||||
client, err := torrent.NewClient(config)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
m.torrentClient = client
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *Manager) StopTorrentClient() []error {
|
||||
if m.TorrentClientStarted() {
|
||||
m.StopHistoryArchiveTasksIntervals()
|
||||
m.logger.Info("Stopping torrent client")
|
||||
errs := m.torrentClient.Close()
|
||||
if len(errs) > 0 {
|
||||
return errs
|
||||
}
|
||||
m.torrentClient = nil
|
||||
}
|
||||
return make([]error, 0)
|
||||
}
|
||||
|
||||
func (m *Manager) TorrentClientStarted() bool {
|
||||
return m.torrentClient != nil
|
||||
}
|
||||
|
||||
func (m *Manager) publish(subscription *Subscription) {
|
||||
for _, s := range m.subscriptions {
|
||||
select {
|
||||
|
@ -724,6 +809,23 @@ func (m *Manager) JoinCommunity(id types.HexBytes) (*Community, error) {
|
|||
return community, nil
|
||||
}
|
||||
|
||||
func (m *Manager) GetMagnetlinkMessageClock(communityID types.HexBytes) (uint64, error) {
|
||||
return m.persistence.GetMagnetlinkMessageClock(communityID)
|
||||
}
|
||||
|
||||
func (m *Manager) UpdateCommunityDescriptionMagnetlinkMessageClock(communityID types.HexBytes, clock uint64) error {
|
||||
community, err := m.GetByIDString(communityID.String())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
community.config.CommunityDescription.ArchiveMagnetlinkClock = clock
|
||||
return m.persistence.SaveCommunity(community)
|
||||
}
|
||||
|
||||
func (m *Manager) UpdateMagnetlinkMessageClock(communityID types.HexBytes, clock uint64) error {
|
||||
return m.persistence.UpdateMagnetlinkMessageClock(communityID, clock)
|
||||
}
|
||||
|
||||
func (m *Manager) LeaveCommunity(id types.HexBytes) (*Community, error) {
|
||||
community, err := m.GetByID(id)
|
||||
if err != nil {
|
||||
|
@ -964,6 +1066,545 @@ func (m *Manager) GetAdminCommunitiesChatIDs() (map[string]bool, error) {
|
|||
return chatIDs, nil
|
||||
}
|
||||
|
||||
func (m *Manager) GetCommunityChatsFilters(communityID types.HexBytes) ([]*transport.Filter, error) {
|
||||
chatIDs, err := m.persistence.GetCommunityChatIDs(communityID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
filters := []*transport.Filter{}
|
||||
for _, cid := range chatIDs {
|
||||
filters = append(filters, m.transport.FilterByChatID(cid))
|
||||
}
|
||||
return filters, nil
|
||||
}
|
||||
|
||||
func (m *Manager) GetCommunityChatsTopics(communityID types.HexBytes) ([]types.TopicType, error) {
|
||||
filters, err := m.GetCommunityChatsFilters(communityID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
topics := []types.TopicType{}
|
||||
for _, filter := range filters {
|
||||
topics = append(topics, filter.Topic)
|
||||
}
|
||||
|
||||
return topics, nil
|
||||
}
|
||||
|
||||
func (m *Manager) StoreWakuMessage(message *types.Message) error {
|
||||
return m.persistence.SaveWakuMessage(message)
|
||||
}
|
||||
|
||||
func (m *Manager) GetLatestWakuMessageTimestamp(topics []types.TopicType) (uint64, error) {
|
||||
return m.persistence.GetLatestWakuMessageTimestamp(topics)
|
||||
}
|
||||
|
||||
func (m *Manager) GetOldestWakuMessageTimestamp(topics []types.TopicType) (uint64, error) {
|
||||
return m.persistence.GetOldestWakuMessageTimestamp(topics)
|
||||
}
|
||||
|
||||
func (m *Manager) GetLastMessageArchiveEndDate(communityID types.HexBytes) (uint64, error) {
|
||||
return m.persistence.GetLastMessageArchiveEndDate(communityID)
|
||||
}
|
||||
|
||||
func (m *Manager) GetHistoryArchivePartitionStartTimestamp(communityID types.HexBytes) (uint64, error) {
|
||||
filters, err := m.GetCommunityChatsFilters(communityID)
|
||||
if err != nil {
|
||||
m.logger.Warn("failed to get community chats filters", zap.Error(err))
|
||||
return 0, err
|
||||
}
|
||||
|
||||
if len(filters) == 0 {
|
||||
// If we don't have chat filters, we likely don't have any chats
|
||||
// associated to this community, which means there's nothing more
|
||||
// to do here
|
||||
return 0, nil
|
||||
}
|
||||
|
||||
topics := []types.TopicType{}
|
||||
|
||||
for _, filter := range filters {
|
||||
topics = append(topics, filter.Topic)
|
||||
}
|
||||
|
||||
lastArchiveEndDateTimestamp, err := m.GetLastMessageArchiveEndDate(communityID)
|
||||
if err != nil {
|
||||
m.logger.Debug("failed to get last archive end date", zap.Error(err))
|
||||
return 0, err
|
||||
}
|
||||
|
||||
if lastArchiveEndDateTimestamp == 0 {
|
||||
// If we don't have a tracked last message archive end date, it
|
||||
// means we haven't created an archive before, which means
|
||||
// the next thing to look at is the oldest waku message timestamp for
|
||||
// this community
|
||||
lastArchiveEndDateTimestamp, err = m.GetOldestWakuMessageTimestamp(topics)
|
||||
if err != nil {
|
||||
m.logger.Warn("failed to get oldest waku message timestamp", zap.Error(err))
|
||||
return 0, err
|
||||
}
|
||||
if lastArchiveEndDateTimestamp == 0 {
|
||||
// This means there's no waku message stored for this community so far
|
||||
// (even after requesting possibly missed messages), so no messages exist yet that can be archived
|
||||
return 0, nil
|
||||
}
|
||||
}
|
||||
|
||||
return lastArchiveEndDateTimestamp, nil
|
||||
}
|
||||
|
||||
func (m *Manager) CreateAndSeedHistoryArchive(communityID types.HexBytes, topics []types.TopicType, startDate time.Time, endDate time.Time, partition time.Duration) error {
|
||||
m.UnseedHistoryArchiveTorrent(communityID)
|
||||
err := m.CreateHistoryArchiveTorrent(communityID, topics, startDate, endDate, partition)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return m.SeedHistoryArchiveTorrent(communityID)
|
||||
}
|
||||
|
||||
func (m *Manager) StartHistoryArchiveTasksInterval(community *Community, interval time.Duration) {
|
||||
id := community.IDString()
|
||||
_, exists := m.historyArchiveTasks[id]
|
||||
|
||||
if exists {
|
||||
m.logger.Debug("History archive tasks interval already runs for community: ", zap.Any("id", id))
|
||||
return
|
||||
}
|
||||
|
||||
cancel := make(chan struct{})
|
||||
m.historyArchiveTasks[id] = cancel
|
||||
m.historyArchiveTasksWaitGroup.Add(1)
|
||||
|
||||
ticker := time.NewTicker(interval)
|
||||
defer ticker.Stop()
|
||||
|
||||
m.logger.Debug("Starting history archive tasks interval", zap.Any("id", id))
|
||||
for {
|
||||
select {
|
||||
case <-ticker.C:
|
||||
m.logger.Debug("Executing history archive tasks", zap.Any("id", id))
|
||||
lastArchiveEndDateTimestamp, err := m.GetHistoryArchivePartitionStartTimestamp(community.ID())
|
||||
if err != nil {
|
||||
m.logger.Debug("failed to get last archive end date", zap.Error(err))
|
||||
continue
|
||||
}
|
||||
|
||||
if lastArchiveEndDateTimestamp == 0 {
|
||||
// This means there are no waku messages for this community,
|
||||
// so nothing to do here
|
||||
continue
|
||||
}
|
||||
|
||||
topics, err := m.GetCommunityChatsTopics(community.ID())
|
||||
if err != nil {
|
||||
m.logger.Debug("failed to get community chats topics", zap.Error(err))
|
||||
continue
|
||||
}
|
||||
|
||||
ts := time.Now().Unix()
|
||||
to := time.Unix(ts, 0)
|
||||
lastArchiveEndDate := time.Unix(int64(lastArchiveEndDateTimestamp), 0)
|
||||
|
||||
err = m.CreateAndSeedHistoryArchive(community.ID(), topics, lastArchiveEndDate, to, interval)
|
||||
if err != nil {
|
||||
m.logger.Debug("failed to create and seed history archive", zap.Error(err))
|
||||
continue
|
||||
}
|
||||
case <-cancel:
|
||||
m.UnseedHistoryArchiveTorrent(community.ID())
|
||||
delete(m.historyArchiveTasks, id)
|
||||
m.historyArchiveTasksWaitGroup.Done()
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (m *Manager) StopHistoryArchiveTasksIntervals() {
|
||||
for _, t := range m.historyArchiveTasks {
|
||||
close(t)
|
||||
}
|
||||
// Stoping archive interval tasks is async, so we need
|
||||
// to wait for all of them to be closed before we shutdown
|
||||
// the torrent client
|
||||
m.historyArchiveTasksWaitGroup.Wait()
|
||||
}
|
||||
|
||||
func (m *Manager) StopHistoryArchiveTasksInterval(communityID types.HexBytes) {
|
||||
task, ok := m.historyArchiveTasks[communityID.String()]
|
||||
if ok {
|
||||
m.logger.Info("Stopping history archive tasks interval", zap.Any("id", communityID.String()))
|
||||
close(task)
|
||||
}
|
||||
}
|
||||
|
||||
type EncodedArchiveData struct {
|
||||
padding int
|
||||
bytes []byte
|
||||
}
|
||||
|
||||
func (m *Manager) CreateHistoryArchiveTorrent(communityID types.HexBytes, topics []types.TopicType, startDate time.Time, endDate time.Time, partition time.Duration) error {
|
||||
|
||||
from := startDate
|
||||
to := from.Add(partition)
|
||||
if to.After(endDate) {
|
||||
to = endDate
|
||||
}
|
||||
|
||||
archiveDir := m.torrentConfig.DataDir + "/" + communityID.String()
|
||||
torrentDir := m.torrentConfig.TorrentDir
|
||||
indexPath := archiveDir + "/index"
|
||||
dataPath := archiveDir + "/data"
|
||||
|
||||
wakuMessageArchiveIndexProto := &protobuf.WakuMessageArchiveIndex{}
|
||||
wakuMessageArchiveIndex := make(map[string]*protobuf.WakuMessageArchiveIndexMetadata)
|
||||
|
||||
if _, err := os.Stat(archiveDir); os.IsNotExist(err) {
|
||||
err := os.MkdirAll(archiveDir, 0700)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
if _, err := os.Stat(torrentDir); os.IsNotExist(err) {
|
||||
err := os.MkdirAll(torrentDir, 0700)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
_, err := os.Stat(indexPath)
|
||||
if err == nil {
|
||||
wakuMessageArchiveIndexProto, err = m.loadHistoryArchiveIndexFromFile(communityID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
var offset uint64 = 0
|
||||
|
||||
for hash, metadata := range wakuMessageArchiveIndexProto.Archives {
|
||||
offset = offset + metadata.Size
|
||||
wakuMessageArchiveIndex[hash] = metadata
|
||||
}
|
||||
|
||||
var encodedArchives []*EncodedArchiveData
|
||||
topicsAsByteArrays := topicsAsByteArrays(topics)
|
||||
|
||||
m.publish(&Subscription{CreatingHistoryArchivesSignal: &signal.CreatingHistoryArchivesSignal{
|
||||
CommunityID: communityID.String(),
|
||||
}})
|
||||
|
||||
m.logger.Debug("Creating archives...",
|
||||
zap.Any("startDate", startDate),
|
||||
zap.Any("endDate", endDate),
|
||||
zap.Duration("partition", partition),
|
||||
)
|
||||
for {
|
||||
if from.Equal(endDate) || from.After(endDate) {
|
||||
break
|
||||
}
|
||||
m.logger.Debug("Creating message archive",
|
||||
zap.Duration("partition", partition),
|
||||
zap.Any("from", from),
|
||||
zap.Any("to", to),
|
||||
)
|
||||
messages, err := m.persistence.GetWakuMessagesByFilterTopic(topics, uint64(from.Unix()), uint64(to.Unix()))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if len(messages) == 0 {
|
||||
// No need to create an archive with zero messages
|
||||
m.logger.Debug("No messages in this partition")
|
||||
from = to
|
||||
to = to.Add(partition)
|
||||
if to.After(endDate) {
|
||||
to = endDate
|
||||
}
|
||||
continue
|
||||
}
|
||||
|
||||
wakuMessageArchive := m.createWakuMessageArchive(from, to, messages, topicsAsByteArrays)
|
||||
encodedArchive, err := proto.Marshal(wakuMessageArchive)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
rawSize := len(encodedArchive)
|
||||
padding := 0
|
||||
size := 0
|
||||
|
||||
if rawSize > pieceLength {
|
||||
size = rawSize + pieceLength - (rawSize % pieceLength)
|
||||
padding = size - rawSize
|
||||
} else {
|
||||
padding = pieceLength - rawSize
|
||||
size = rawSize + padding
|
||||
}
|
||||
|
||||
wakuMessageArchiveIndexMetadata := &protobuf.WakuMessageArchiveIndexMetadata{
|
||||
Metadata: wakuMessageArchive.Metadata,
|
||||
Offset: offset,
|
||||
Size: uint64(size),
|
||||
Padding: uint64(padding),
|
||||
}
|
||||
|
||||
wakuMessageArchiveIndexMetadataBytes, err := proto.Marshal(wakuMessageArchiveIndexMetadata)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
wakuMessageArchiveIndex[crypto.Keccak256Hash(wakuMessageArchiveIndexMetadataBytes).String()] = wakuMessageArchiveIndexMetadata
|
||||
encodedArchives = append(encodedArchives, &EncodedArchiveData{bytes: encodedArchive, padding: padding})
|
||||
from = to
|
||||
to = to.Add(partition)
|
||||
if to.After(endDate) {
|
||||
to = endDate
|
||||
}
|
||||
offset = offset + uint64(rawSize) + uint64(padding)
|
||||
}
|
||||
|
||||
if len(encodedArchives) > 0 {
|
||||
|
||||
dataBytes := make([]byte, 0)
|
||||
if _, err := os.Stat(dataPath); err == nil {
|
||||
dataBytes, err = os.ReadFile(dataPath)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
for _, encodedArchiveData := range encodedArchives {
|
||||
dataBytes = append(dataBytes, encodedArchiveData.bytes...)
|
||||
dataBytes = append(dataBytes, make([]byte, encodedArchiveData.padding)...)
|
||||
}
|
||||
|
||||
wakuMessageArchiveIndexProto.Archives = wakuMessageArchiveIndex
|
||||
indexBytes, err := proto.Marshal(wakuMessageArchiveIndexProto)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = os.WriteFile(indexPath, indexBytes, 0644) // nolint: gosec
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = os.WriteFile(dataPath, dataBytes, 0644) // nolint: gosec
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
metaInfo := metainfo.MetaInfo{
|
||||
AnnounceList: defaultAnnounceList,
|
||||
}
|
||||
metaInfo.SetDefaults()
|
||||
metaInfo.CreatedBy = common.PubkeyToHex(m.identity)
|
||||
|
||||
info := metainfo.Info{
|
||||
PieceLength: int64(pieceLength),
|
||||
}
|
||||
|
||||
err = info.BuildFromFilePath(archiveDir)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
metaInfo.InfoBytes, err = bencode.Marshal(info)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
metaInfoBytes, err := bencode.Marshal(metaInfo)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = os.WriteFile(m.torrentFile(communityID.String()), metaInfoBytes, 0644) // nolint: gosec
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
m.publish(&Subscription{
|
||||
HistoryArchivesCreatedSignal: &signal.HistoryArchivesCreatedSignal{
|
||||
CommunityID: communityID.String(),
|
||||
From: int(startDate.Unix()),
|
||||
To: int(endDate.Unix()),
|
||||
},
|
||||
})
|
||||
} else {
|
||||
m.logger.Debug("No archives created")
|
||||
m.publish(&Subscription{
|
||||
NoHistoryArchivesCreatedSignal: &signal.NoHistoryArchivesCreatedSignal{
|
||||
CommunityID: communityID.String(),
|
||||
From: int(startDate.Unix()),
|
||||
To: int(endDate.Unix()),
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
lastMessageArchiveEndDate, err := m.persistence.GetLastMessageArchiveEndDate(communityID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if lastMessageArchiveEndDate > 0 {
|
||||
err = m.persistence.UpdateLastMessageArchiveEndDate(communityID, uint64(from.Unix()))
|
||||
} else {
|
||||
err = m.persistence.SaveLastMessageArchiveEndDate(communityID, uint64(from.Unix()))
|
||||
}
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *Manager) SeedHistoryArchiveTorrent(communityID types.HexBytes) error {
|
||||
m.UnseedHistoryArchiveTorrent(communityID)
|
||||
|
||||
id := communityID.String()
|
||||
torrentFile := m.torrentFile(id)
|
||||
|
||||
metaInfo, err := metainfo.LoadFromFile(torrentFile)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
info, err := metaInfo.UnmarshalInfo()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
hash := metaInfo.HashInfoBytes()
|
||||
m.torrentTasks[id] = hash
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
torrent, err := m.torrentClient.AddTorrent(metaInfo)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
torrent.DownloadAll()
|
||||
|
||||
m.publish(&Subscription{
|
||||
HistoryArchivesSeedingSignal: &signal.HistoryArchivesSeedingSignal{
|
||||
CommunityID: communityID.String(),
|
||||
},
|
||||
})
|
||||
m.logger.Info("Seeding torrent", zap.String("id", id))
|
||||
m.logger.Info(metaInfo.Magnet(nil, &info).String())
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *Manager) UnseedHistoryArchiveTorrent(communityID types.HexBytes) {
|
||||
id := communityID.String()
|
||||
hash, exists := m.torrentTasks[id]
|
||||
|
||||
if exists {
|
||||
torrent, ok := m.torrentClient.Torrent(hash)
|
||||
if ok {
|
||||
m.logger.Debug("Unseeding and dropping torrent for community: ", zap.Any("id", id))
|
||||
torrent.Drop()
|
||||
delete(m.torrentTasks, id)
|
||||
|
||||
m.publish(&Subscription{
|
||||
HistoryArchivesUnseededSignal: &signal.HistoryArchivesUnseededSignal{
|
||||
CommunityID: id,
|
||||
},
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (m *Manager) IsSeedingHistoryArchiveTorrent(communityID types.HexBytes) bool {
|
||||
id := communityID.String()
|
||||
hash := m.torrentTasks[id]
|
||||
torrent, ok := m.torrentClient.Torrent(hash)
|
||||
return ok && torrent.Seeding()
|
||||
}
|
||||
|
||||
func (m *Manager) GetHistoryArchiveMagnetlink(communityID types.HexBytes) (string, error) {
|
||||
id := communityID.String()
|
||||
torrentFile := m.torrentFile(id)
|
||||
|
||||
metaInfo, err := metainfo.LoadFromFile(torrentFile)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
info, err := metaInfo.UnmarshalInfo()
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
return metaInfo.Magnet(nil, &info).String(), nil
|
||||
}
|
||||
|
||||
func (m *Manager) createWakuMessageArchive(from time.Time, to time.Time, messages []types.Message, topics [][]byte) *protobuf.WakuMessageArchive {
|
||||
var wakuMessages []*protobuf.WakuMessage
|
||||
|
||||
for _, msg := range messages {
|
||||
topic := types.TopicTypeToByteArray(msg.Topic)
|
||||
wakuMessage := &protobuf.WakuMessage{
|
||||
Sig: msg.Sig,
|
||||
Timestamp: uint64(msg.Timestamp),
|
||||
Topic: topic,
|
||||
Payload: msg.Payload,
|
||||
Padding: msg.Padding,
|
||||
Hash: msg.Hash,
|
||||
}
|
||||
wakuMessages = append(wakuMessages, wakuMessage)
|
||||
}
|
||||
|
||||
metadata := protobuf.WakuMessageArchiveMetadata{
|
||||
From: uint64(from.Unix()),
|
||||
To: uint64(to.Unix()),
|
||||
ContentTopic: topics,
|
||||
}
|
||||
|
||||
wakuMessageArchive := &protobuf.WakuMessageArchive{
|
||||
Metadata: &metadata,
|
||||
Messages: wakuMessages,
|
||||
}
|
||||
return wakuMessageArchive
|
||||
}
|
||||
|
||||
func (m *Manager) loadHistoryArchiveIndexFromFile(communityID types.HexBytes) (*protobuf.WakuMessageArchiveIndex, error) {
|
||||
wakuMessageArchiveIndexProto := &protobuf.WakuMessageArchiveIndex{}
|
||||
|
||||
indexPath := m.archiveIndexFile(communityID.String())
|
||||
indexData, err := os.ReadFile(indexPath)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
err = proto.Unmarshal(indexData, wakuMessageArchiveIndexProto)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return wakuMessageArchiveIndexProto, nil
|
||||
}
|
||||
|
||||
func (m *Manager) torrentFile(communityID string) string {
|
||||
return m.torrentConfig.TorrentDir + "/" + communityID + ".torrent"
|
||||
}
|
||||
|
||||
func (m *Manager) archiveIndexFile(communityID string) string {
|
||||
return m.torrentConfig.DataDir + "/" + communityID + "/index"
|
||||
}
|
||||
|
||||
func (m *Manager) archiveDataFile(communityID string) string {
|
||||
return m.torrentConfig.DataDir + "/" + communityID + "/data"
|
||||
}
|
||||
|
||||
func topicsAsByteArrays(topics []types.TopicType) [][]byte {
|
||||
var topicsAsByteArrays [][]byte
|
||||
for _, t := range topics {
|
||||
topic := types.TopicTypeToByteArray(t)
|
||||
topicsAsByteArrays = append(topicsAsByteArrays, topic)
|
||||
}
|
||||
return topicsAsByteArrays
|
||||
}
|
||||
|
|
|
@ -2,9 +2,16 @@ package communities
|
|||
|
||||
import (
|
||||
"bytes"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/status-im/status-go/appdatabase"
|
||||
"github.com/status-im/status-go/eth-node/types"
|
||||
"github.com/status-im/status-go/params"
|
||||
"github.com/status-im/status-go/protocol/requests"
|
||||
"github.com/status-im/status-go/protocol/transport"
|
||||
|
||||
"github.com/golang/protobuf/proto"
|
||||
_ "github.com/mutecomm/go-sqlcipher" // require go-sqlcipher that overrides default implementation
|
||||
|
@ -26,12 +33,17 @@ type ManagerSuite struct {
|
|||
}
|
||||
|
||||
func (s *ManagerSuite) SetupTest() {
|
||||
db, err := sqlite.OpenInMemory()
|
||||
s.Require().NoError(err)
|
||||
dbPath, err := ioutil.TempFile("", "")
|
||||
s.NoError(err, "creating temp file for db")
|
||||
db, err := appdatabase.InitializeDB(dbPath.Name(), "")
|
||||
s.NoError(err, "creating sqlite db instance")
|
||||
err = sqlite.Migrate(db)
|
||||
s.NoError(err, "protocol migrate")
|
||||
|
||||
key, err := crypto.GenerateKey()
|
||||
s.Require().NoError(err)
|
||||
s.Require().NoError(err)
|
||||
m, err := NewManager(&key.PublicKey, db, nil, nil)
|
||||
m, err := NewManager(&key.PublicKey, db, nil, nil, nil, nil)
|
||||
s.Require().NoError(err)
|
||||
s.Require().NoError(m.Start())
|
||||
s.manager = m
|
||||
|
@ -107,16 +119,400 @@ func (s *ManagerSuite) TestEditCommunity() {
|
|||
|
||||
func (s *ManagerSuite) TestGetAdminCommuniesChatIDs() {
|
||||
|
||||
community, _, err := s.buildCommunityWithChat()
|
||||
s.Require().NoError(err)
|
||||
s.Require().NotNil(community)
|
||||
|
||||
adminChatIDs, err := s.manager.GetAdminCommunitiesChatIDs()
|
||||
s.Require().NoError(err)
|
||||
s.Require().Len(adminChatIDs, 1)
|
||||
}
|
||||
|
||||
func (s *ManagerSuite) TestStartAndStopTorrentClient() {
|
||||
torrentConfig := buildTorrentConfig()
|
||||
s.manager.SetTorrentConfig(&torrentConfig)
|
||||
|
||||
err := s.manager.StartTorrentClient()
|
||||
s.Require().NoError(err)
|
||||
s.Require().NotNil(s.manager.torrentClient)
|
||||
defer s.manager.StopTorrentClient()
|
||||
|
||||
_, err = os.Stat(torrentConfig.DataDir)
|
||||
s.Require().NoError(err)
|
||||
s.Require().Equal(s.manager.TorrentClientStarted(), true)
|
||||
}
|
||||
|
||||
func (s *ManagerSuite) TestStartHistoryArchiveTasksInterval() {
|
||||
|
||||
torrentConfig := buildTorrentConfig()
|
||||
s.manager.SetTorrentConfig(&torrentConfig)
|
||||
|
||||
err := s.manager.StartTorrentClient()
|
||||
s.Require().NoError(err)
|
||||
defer s.manager.StopTorrentClient()
|
||||
|
||||
community, _, err := s.buildCommunityWithChat()
|
||||
s.Require().NoError(err)
|
||||
|
||||
interval := 10 * time.Second
|
||||
go s.manager.StartHistoryArchiveTasksInterval(community, interval)
|
||||
// Due to async exec we need to wait a bit until we check
|
||||
// the task count.
|
||||
time.Sleep(5 * time.Second)
|
||||
s.Require().Len(s.manager.historyArchiveTasks, 1)
|
||||
|
||||
// We wait another 5 seconds to ensure the first tick has kicked in
|
||||
time.Sleep(5 * time.Second)
|
||||
|
||||
_, err = os.Stat(s.manager.torrentFile(community.IDString()))
|
||||
s.Require().Error(err)
|
||||
|
||||
s.manager.StopHistoryArchiveTasksInterval(community.ID())
|
||||
s.manager.historyArchiveTasksWaitGroup.Wait()
|
||||
s.Require().Len(s.manager.historyArchiveTasks, 0)
|
||||
}
|
||||
|
||||
func (s *ManagerSuite) TestStopHistoryArchiveTasksIntervals() {
|
||||
|
||||
torrentConfig := buildTorrentConfig()
|
||||
s.manager.SetTorrentConfig(&torrentConfig)
|
||||
|
||||
err := s.manager.StartTorrentClient()
|
||||
s.Require().NoError(err)
|
||||
defer s.manager.StopTorrentClient()
|
||||
|
||||
community, _, err := s.buildCommunityWithChat()
|
||||
s.Require().NoError(err)
|
||||
|
||||
interval := 10 * time.Second
|
||||
go s.manager.StartHistoryArchiveTasksInterval(community, interval)
|
||||
|
||||
time.Sleep(2 * time.Second)
|
||||
s.Require().Len(s.manager.historyArchiveTasks, 1)
|
||||
s.manager.StopHistoryArchiveTasksIntervals()
|
||||
s.Require().Len(s.manager.historyArchiveTasks, 0)
|
||||
}
|
||||
|
||||
func (s *ManagerSuite) TestStopTorrentClient_ShouldStopHistoryArchiveTasks() {
|
||||
torrentConfig := buildTorrentConfig()
|
||||
s.manager.SetTorrentConfig(&torrentConfig)
|
||||
|
||||
err := s.manager.StartTorrentClient()
|
||||
s.Require().NoError(err)
|
||||
defer s.manager.StopTorrentClient()
|
||||
|
||||
community, _, err := s.buildCommunityWithChat()
|
||||
s.Require().NoError(err)
|
||||
|
||||
interval := 10 * time.Second
|
||||
go s.manager.StartHistoryArchiveTasksInterval(community, interval)
|
||||
// Due to async exec we need to wait a bit until we check
|
||||
// the task count.
|
||||
time.Sleep(2 * time.Second)
|
||||
s.Require().Len(s.manager.historyArchiveTasks, 1)
|
||||
|
||||
errs := s.manager.StopTorrentClient()
|
||||
s.Require().Len(errs, 0)
|
||||
s.Require().Len(s.manager.historyArchiveTasks, 0)
|
||||
}
|
||||
|
||||
func (s *ManagerSuite) TestCreateHistoryArchiveTorrent_WithoutMessages() {
|
||||
|
||||
torrentConfig := buildTorrentConfig()
|
||||
s.manager.SetTorrentConfig(&torrentConfig)
|
||||
|
||||
community, chatID, err := s.buildCommunityWithChat()
|
||||
s.Require().NoError(err)
|
||||
|
||||
topic := types.BytesToTopic(transport.ToTopic(chatID))
|
||||
topics := []types.TopicType{topic}
|
||||
|
||||
// Time range of 7 days
|
||||
startDate := time.Date(2020, 1, 1, 00, 00, 00, 0, time.UTC)
|
||||
endDate := time.Date(2020, 1, 7, 00, 00, 00, 0, time.UTC)
|
||||
// Partition of 7 days
|
||||
partition := 7 * 24 * time.Hour
|
||||
|
||||
err = s.manager.CreateHistoryArchiveTorrent(community.ID(), topics, startDate, endDate, partition)
|
||||
s.Require().NoError(err)
|
||||
|
||||
// There are no waku messages in the database so we don't expect
|
||||
// any archives to be created
|
||||
_, err = os.Stat(s.manager.archiveDataFile(community.IDString()))
|
||||
s.Require().Error(err)
|
||||
_, err = os.Stat(s.manager.archiveIndexFile(community.IDString()))
|
||||
s.Require().Error(err)
|
||||
_, err = os.Stat(s.manager.torrentFile(community.IDString()))
|
||||
s.Require().Error(err)
|
||||
}
|
||||
|
||||
func (s *ManagerSuite) TestCreateHistoryArchiveTorrent_ShouldCreateArchive() {
|
||||
torrentConfig := buildTorrentConfig()
|
||||
s.manager.SetTorrentConfig(&torrentConfig)
|
||||
|
||||
community, chatID, err := s.buildCommunityWithChat()
|
||||
s.Require().NoError(err)
|
||||
|
||||
topic := types.BytesToTopic(transport.ToTopic(chatID))
|
||||
topics := []types.TopicType{topic}
|
||||
|
||||
// Time range of 7 days
|
||||
startDate := time.Date(2020, 1, 1, 00, 00, 00, 0, time.UTC)
|
||||
endDate := time.Date(2020, 1, 7, 00, 00, 00, 0, time.UTC)
|
||||
// Partition of 7 days, this should create a single archive
|
||||
partition := 7 * 24 * time.Hour
|
||||
|
||||
message1 := buildMessage(startDate.Add(1*time.Hour), topic, []byte{1})
|
||||
message2 := buildMessage(startDate.Add(2*time.Hour), topic, []byte{2})
|
||||
// This message is outside of the startDate-endDate range and should not
|
||||
// be part of the archive
|
||||
message3 := buildMessage(endDate.Add(2*time.Hour), topic, []byte{3})
|
||||
|
||||
err = s.manager.StoreWakuMessage(&message1)
|
||||
s.Require().NoError(err)
|
||||
err = s.manager.StoreWakuMessage(&message2)
|
||||
s.Require().NoError(err)
|
||||
err = s.manager.StoreWakuMessage(&message3)
|
||||
s.Require().NoError(err)
|
||||
|
||||
err = s.manager.CreateHistoryArchiveTorrent(community.ID(), topics, startDate, endDate, partition)
|
||||
s.Require().NoError(err)
|
||||
|
||||
_, err = os.Stat(s.manager.archiveDataFile(community.IDString()))
|
||||
s.Require().NoError(err)
|
||||
_, err = os.Stat(s.manager.archiveIndexFile(community.IDString()))
|
||||
s.Require().NoError(err)
|
||||
_, err = os.Stat(s.manager.torrentFile(community.IDString()))
|
||||
s.Require().NoError(err)
|
||||
|
||||
index, err := s.manager.loadHistoryArchiveIndexFromFile(community.ID())
|
||||
s.Require().NoError(err)
|
||||
s.Require().Len(index.Archives, 1)
|
||||
|
||||
totalData, err := os.ReadFile(s.manager.archiveDataFile(community.IDString()))
|
||||
s.Require().NoError(err)
|
||||
|
||||
for _, metadata := range index.Archives {
|
||||
archive := &protobuf.WakuMessageArchive{}
|
||||
data := totalData[metadata.Offset : metadata.Offset+metadata.Size-metadata.Padding]
|
||||
|
||||
err = proto.Unmarshal(data, archive)
|
||||
s.Require().NoError(err)
|
||||
|
||||
s.Require().Len(archive.Messages, 2)
|
||||
}
|
||||
}
|
||||
|
||||
func (s *ManagerSuite) TestCreateHistoryArchiveTorrent_ShouldCreateMultipleArchives() {
|
||||
torrentConfig := buildTorrentConfig()
|
||||
s.manager.SetTorrentConfig(&torrentConfig)
|
||||
|
||||
community, chatID, err := s.buildCommunityWithChat()
|
||||
s.Require().NoError(err)
|
||||
|
||||
topic := types.BytesToTopic(transport.ToTopic(chatID))
|
||||
topics := []types.TopicType{topic}
|
||||
|
||||
// Time range of 3 weeks
|
||||
startDate := time.Date(2020, 1, 1, 00, 00, 00, 0, time.UTC)
|
||||
endDate := time.Date(2020, 1, 21, 00, 00, 00, 0, time.UTC)
|
||||
// 7 days partition, this should create three archives
|
||||
partition := 7 * 24 * time.Hour
|
||||
|
||||
message1 := buildMessage(startDate.Add(1*time.Hour), topic, []byte{1})
|
||||
message2 := buildMessage(startDate.Add(2*time.Hour), topic, []byte{2})
|
||||
// We expect 2 archives to be created for startDate - endDate of each
|
||||
// 7 days of data. This message should end up in the second archive
|
||||
message3 := buildMessage(startDate.Add(8*24*time.Hour), topic, []byte{3})
|
||||
// This one should end up in the third archive
|
||||
message4 := buildMessage(startDate.Add(14*24*time.Hour), topic, []byte{4})
|
||||
|
||||
err = s.manager.StoreWakuMessage(&message1)
|
||||
s.Require().NoError(err)
|
||||
err = s.manager.StoreWakuMessage(&message2)
|
||||
s.Require().NoError(err)
|
||||
err = s.manager.StoreWakuMessage(&message3)
|
||||
s.Require().NoError(err)
|
||||
err = s.manager.StoreWakuMessage(&message4)
|
||||
s.Require().NoError(err)
|
||||
|
||||
err = s.manager.CreateHistoryArchiveTorrent(community.ID(), topics, startDate, endDate, partition)
|
||||
s.Require().NoError(err)
|
||||
|
||||
index, err := s.manager.loadHistoryArchiveIndexFromFile(community.ID())
|
||||
s.Require().NoError(err)
|
||||
s.Require().Len(index.Archives, 3)
|
||||
|
||||
totalData, err := os.ReadFile(s.manager.archiveDataFile(community.IDString()))
|
||||
s.Require().NoError(err)
|
||||
|
||||
// First archive has 2 messages
|
||||
// Second archive has 1 message
|
||||
// Third archive has 1 message
|
||||
fromMap := map[uint64]int{
|
||||
uint64(startDate.Unix()): 2,
|
||||
uint64(startDate.Add(partition).Unix()): 1,
|
||||
uint64(startDate.Add(partition * 2).Unix()): 1,
|
||||
}
|
||||
|
||||
for _, metadata := range index.Archives {
|
||||
archive := &protobuf.WakuMessageArchive{}
|
||||
data := totalData[metadata.Offset : metadata.Offset+metadata.Size-metadata.Padding]
|
||||
|
||||
err = proto.Unmarshal(data, archive)
|
||||
s.Require().NoError(err)
|
||||
s.Require().Len(archive.Messages, fromMap[metadata.Metadata.From])
|
||||
}
|
||||
}
|
||||
|
||||
func (s *ManagerSuite) TestCreateHistoryArchiveTorrent_ShouldAppendArchives() {
|
||||
torrentConfig := buildTorrentConfig()
|
||||
s.manager.SetTorrentConfig(&torrentConfig)
|
||||
|
||||
community, chatID, err := s.buildCommunityWithChat()
|
||||
s.Require().NoError(err)
|
||||
|
||||
topic := types.BytesToTopic(transport.ToTopic(chatID))
|
||||
topics := []types.TopicType{topic}
|
||||
|
||||
// Time range of 1 week
|
||||
startDate := time.Date(2020, 1, 1, 00, 00, 00, 0, time.UTC)
|
||||
endDate := time.Date(2020, 1, 7, 00, 00, 00, 0, time.UTC)
|
||||
// 7 days partition, this should create one archive
|
||||
partition := 7 * 24 * time.Hour
|
||||
|
||||
message1 := buildMessage(startDate.Add(1*time.Hour), topic, []byte{1})
|
||||
err = s.manager.StoreWakuMessage(&message1)
|
||||
s.Require().NoError(err)
|
||||
|
||||
err = s.manager.CreateHistoryArchiveTorrent(community.ID(), topics, startDate, endDate, partition)
|
||||
s.Require().NoError(err)
|
||||
|
||||
index, err := s.manager.loadHistoryArchiveIndexFromFile(community.ID())
|
||||
s.Require().NoError(err)
|
||||
s.Require().Len(index.Archives, 1)
|
||||
|
||||
// Time range of next week
|
||||
startDate = time.Date(2020, 1, 7, 00, 00, 00, 0, time.UTC)
|
||||
endDate = time.Date(2020, 1, 14, 00, 00, 00, 0, time.UTC)
|
||||
|
||||
message2 := buildMessage(startDate.Add(2*time.Hour), topic, []byte{2})
|
||||
err = s.manager.StoreWakuMessage(&message2)
|
||||
s.Require().NoError(err)
|
||||
|
||||
err = s.manager.CreateHistoryArchiveTorrent(community.ID(), topics, startDate, endDate, partition)
|
||||
s.Require().NoError(err)
|
||||
|
||||
index, err = s.manager.loadHistoryArchiveIndexFromFile(community.ID())
|
||||
s.Require().NoError(err)
|
||||
s.Require().Len(index.Archives, 2)
|
||||
}
|
||||
|
||||
func (s *ManagerSuite) TestSeedHistoryArchiveTorrent() {
|
||||
torrentConfig := buildTorrentConfig()
|
||||
s.manager.SetTorrentConfig(&torrentConfig)
|
||||
|
||||
err := s.manager.StartTorrentClient()
|
||||
s.Require().NoError(err)
|
||||
defer s.manager.StopTorrentClient()
|
||||
|
||||
community, chatID, err := s.buildCommunityWithChat()
|
||||
s.Require().NoError(err)
|
||||
|
||||
topic := types.BytesToTopic(transport.ToTopic(chatID))
|
||||
topics := []types.TopicType{topic}
|
||||
|
||||
startDate := time.Date(2020, 1, 1, 00, 00, 00, 0, time.UTC)
|
||||
endDate := time.Date(2020, 1, 7, 00, 00, 00, 0, time.UTC)
|
||||
partition := 7 * 24 * time.Hour
|
||||
|
||||
message1 := buildMessage(startDate.Add(1*time.Hour), topic, []byte{1})
|
||||
err = s.manager.StoreWakuMessage(&message1)
|
||||
s.Require().NoError(err)
|
||||
|
||||
err = s.manager.CreateHistoryArchiveTorrent(community.ID(), topics, startDate, endDate, partition)
|
||||
s.Require().NoError(err)
|
||||
|
||||
err = s.manager.SeedHistoryArchiveTorrent(community.ID())
|
||||
s.Require().NoError(err)
|
||||
s.Require().Len(s.manager.torrentTasks, 1)
|
||||
|
||||
metaInfoHash := s.manager.torrentTasks[community.IDString()]
|
||||
torrent, ok := s.manager.torrentClient.Torrent(metaInfoHash)
|
||||
defer torrent.Drop()
|
||||
|
||||
s.Require().Equal(ok, true)
|
||||
s.Require().Equal(torrent.Seeding(), true)
|
||||
}
|
||||
|
||||
func (s *ManagerSuite) TestUnseedHistoryArchiveTorrent() {
|
||||
torrentConfig := buildTorrentConfig()
|
||||
s.manager.SetTorrentConfig(&torrentConfig)
|
||||
|
||||
err := s.manager.StartTorrentClient()
|
||||
s.Require().NoError(err)
|
||||
defer s.manager.StopTorrentClient()
|
||||
|
||||
community, chatID, err := s.buildCommunityWithChat()
|
||||
s.Require().NoError(err)
|
||||
|
||||
topic := types.BytesToTopic(transport.ToTopic(chatID))
|
||||
topics := []types.TopicType{topic}
|
||||
|
||||
startDate := time.Date(2020, 1, 1, 00, 00, 00, 0, time.UTC)
|
||||
endDate := time.Date(2020, 1, 7, 00, 00, 00, 0, time.UTC)
|
||||
partition := 7 * 24 * time.Hour
|
||||
|
||||
message1 := buildMessage(startDate.Add(1*time.Hour), topic, []byte{1})
|
||||
err = s.manager.StoreWakuMessage(&message1)
|
||||
s.Require().NoError(err)
|
||||
|
||||
err = s.manager.CreateHistoryArchiveTorrent(community.ID(), topics, startDate, endDate, partition)
|
||||
s.Require().NoError(err)
|
||||
|
||||
err = s.manager.SeedHistoryArchiveTorrent(community.ID())
|
||||
s.Require().NoError(err)
|
||||
s.Require().Len(s.manager.torrentTasks, 1)
|
||||
|
||||
metaInfoHash := s.manager.torrentTasks[community.IDString()]
|
||||
|
||||
s.manager.UnseedHistoryArchiveTorrent(community.ID())
|
||||
_, ok := s.manager.torrentClient.Torrent(metaInfoHash)
|
||||
s.Require().Equal(ok, false)
|
||||
}
|
||||
|
||||
func buildTorrentConfig() params.TorrentConfig {
|
||||
torrentConfig := params.TorrentConfig{
|
||||
Enabled: true,
|
||||
DataDir: os.TempDir() + "/archivedata",
|
||||
TorrentDir: os.TempDir() + "/torrents",
|
||||
Port: 9999,
|
||||
}
|
||||
return torrentConfig
|
||||
}
|
||||
|
||||
func buildMessage(timestamp time.Time, topic types.TopicType, hash []byte) types.Message {
|
||||
message := types.Message{
|
||||
Sig: []byte{1},
|
||||
Timestamp: uint32(timestamp.Unix()),
|
||||
Topic: topic,
|
||||
Payload: []byte{1},
|
||||
Padding: []byte{1},
|
||||
Hash: hash,
|
||||
}
|
||||
return message
|
||||
}
|
||||
|
||||
func (s *ManagerSuite) buildCommunityWithChat() (*Community, string, error) {
|
||||
createRequest := &requests.CreateCommunity{
|
||||
Name: "status",
|
||||
Description: "status community description",
|
||||
Membership: protobuf.CommunityPermissions_NO_MEMBERSHIP,
|
||||
}
|
||||
|
||||
community, err := s.manager.CreateCommunity(createRequest)
|
||||
s.Require().NoError(err)
|
||||
s.Require().NotNil(community)
|
||||
|
||||
if err != nil {
|
||||
return nil, "", err
|
||||
}
|
||||
chat := &protobuf.CommunityChat{
|
||||
Identity: &protobuf.ChatIdentity{
|
||||
DisplayName: "added-chat",
|
||||
|
@ -127,11 +523,15 @@ func (s *ManagerSuite) TestGetAdminCommuniesChatIDs() {
|
|||
},
|
||||
Members: make(map[string]*protobuf.CommunityMember),
|
||||
}
|
||||
_, changes, err := s.manager.CreateChat(community.ID(), chat)
|
||||
if err != nil {
|
||||
return nil, "", err
|
||||
}
|
||||
|
||||
_, _, err = s.manager.CreateChat(community.ID(), chat)
|
||||
s.Require().NoError(err)
|
||||
|
||||
adminChatIDs, err := s.manager.GetAdminCommunitiesChatIDs()
|
||||
s.Require().NoError(err)
|
||||
s.Require().Len(adminChatIDs, 1)
|
||||
chatID := ""
|
||||
for cID := range changes.ChatsAdded {
|
||||
chatID = cID
|
||||
break
|
||||
}
|
||||
return community, chatID, nil
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ import (
|
|||
"crypto/ecdsa"
|
||||
"database/sql"
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"github.com/golang/protobuf/proto"
|
||||
"go.uber.org/zap"
|
||||
|
@ -22,6 +23,7 @@ type Persistence struct {
|
|||
|
||||
var ErrOldRequestToJoin = errors.New("old request to join")
|
||||
|
||||
const OR = " OR "
|
||||
const communitiesBaseQuery = `SELECT c.id, c.private_key, c.description,c.joined,c.verified,c.muted,r.clock FROM communities_communities c LEFT JOIN communities_requests_to_join r ON c.id = r.community_id AND r.public_key = ?`
|
||||
|
||||
func (p *Persistence) SaveCommunity(community *Community) error {
|
||||
|
@ -359,6 +361,114 @@ func (p *Persistence) SaveWakuMessage(message *types.Message) error {
|
|||
return err
|
||||
}
|
||||
|
||||
func wakuMessageTimestampQuery(topics []types.TopicType) string {
|
||||
query := " FROM waku_messages WHERE "
|
||||
for i, topic := range topics {
|
||||
query += `topic = "` + topic.String() + `"`
|
||||
if i < len(topics)-1 {
|
||||
query += OR
|
||||
}
|
||||
}
|
||||
return query
|
||||
}
|
||||
|
||||
func (p *Persistence) GetOldestWakuMessageTimestamp(topics []types.TopicType) (uint64, error) {
|
||||
var timestamp sql.NullInt64
|
||||
query := "SELECT MIN(timestamp)"
|
||||
query += wakuMessageTimestampQuery(topics)
|
||||
err := p.db.QueryRow(query).Scan(×tamp)
|
||||
return uint64(timestamp.Int64), err
|
||||
}
|
||||
|
||||
func (p *Persistence) GetLatestWakuMessageTimestamp(topics []types.TopicType) (uint64, error) {
|
||||
var timestamp sql.NullInt64
|
||||
query := "SELECT MAX(timestamp)"
|
||||
query += wakuMessageTimestampQuery(topics)
|
||||
err := p.db.QueryRow(query).Scan(×tamp)
|
||||
return uint64(timestamp.Int64), err
|
||||
}
|
||||
|
||||
func (p *Persistence) GetWakuMessagesByFilterTopic(topics []types.TopicType, from uint64, to uint64) ([]types.Message, error) {
|
||||
|
||||
query := "SELECT sig, timestamp, topic, payload, padding, hash FROM waku_messages WHERE timestamp >= " + fmt.Sprint(from) + " AND timestamp < " + fmt.Sprint(to) + " AND ("
|
||||
|
||||
for i, topic := range topics {
|
||||
query += `topic = "` + topic.String() + `"`
|
||||
if i < len(topics)-1 {
|
||||
query += OR
|
||||
}
|
||||
}
|
||||
query += ")"
|
||||
|
||||
rows, err := p.db.Query(query)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
messages := []types.Message{}
|
||||
|
||||
for rows.Next() {
|
||||
msg := types.Message{}
|
||||
var topicStr string
|
||||
var hashStr string
|
||||
err := rows.Scan(&msg.Sig, &msg.Timestamp, &topicStr, &msg.Payload, &msg.Padding, &hashStr)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
msg.Topic = types.StringToTopic(topicStr)
|
||||
msg.Hash = types.Hex2Bytes(hashStr)
|
||||
messages = append(messages, msg)
|
||||
}
|
||||
|
||||
return messages, nil
|
||||
}
|
||||
|
||||
func (p *Persistence) GetMagnetlinkMessageClock(communityID types.HexBytes) (uint64, error) {
|
||||
var magnetlinkClock uint64
|
||||
err := p.db.QueryRow(`SELECT magnetlink_clock FROM communities_archive_info WHERE community_id = ?`, communityID.String()).Scan(&magnetlinkClock)
|
||||
if err == sql.ErrNoRows {
|
||||
return 0, nil
|
||||
}
|
||||
return magnetlinkClock, err
|
||||
}
|
||||
|
||||
func (p *Persistence) UpdateMagnetlinkMessageClock(communityID types.HexBytes, clock uint64) error {
|
||||
_, err := p.db.Exec(`UPDATE communities_archive_info SET
|
||||
magnetlink_clock = ?
|
||||
WHERE community_id = ?`,
|
||||
clock,
|
||||
communityID.String())
|
||||
return err
|
||||
}
|
||||
|
||||
func (p *Persistence) SaveLastMessageArchiveEndDate(communityID types.HexBytes, endDate uint64) error {
|
||||
_, err := p.db.Exec(`INSERT INTO communities_archive_info (last_message_archive_end_date, community_id) VALUES (?, ?)`,
|
||||
endDate,
|
||||
communityID.String())
|
||||
return err
|
||||
}
|
||||
|
||||
func (p *Persistence) UpdateLastMessageArchiveEndDate(communityID types.HexBytes, endDate uint64) error {
|
||||
_, err := p.db.Exec(`UPDATE communities_archive_info SET
|
||||
last_message_archive_end_date = ?
|
||||
WHERE community_id = ?`,
|
||||
endDate,
|
||||
communityID.String())
|
||||
return err
|
||||
}
|
||||
|
||||
func (p *Persistence) GetLastMessageArchiveEndDate(communityID types.HexBytes) (uint64, error) {
|
||||
|
||||
var lastMessageArchiveEndDate uint64
|
||||
err := p.db.QueryRow(`SELECT last_message_archive_end_date FROM communities_archive_info WHERE community_id = ?`, communityID.String()).Scan(&lastMessageArchiveEndDate)
|
||||
if err == sql.ErrNoRows {
|
||||
return 0, nil
|
||||
} else if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
return lastMessageArchiveEndDate, nil
|
||||
}
|
||||
|
||||
func (p *Persistence) GetCommunitiesSettings() ([]CommunitySettings, error) {
|
||||
rows, err := p.db.Query("SELECT community_id, message_archive_seeding_enabled, message_archive_fetching_enabled FROM communities_settings")
|
||||
if err != nil {
|
||||
|
@ -427,3 +537,22 @@ func (p *Persistence) UpdateCommunitySettings(communitySettings CommunitySetting
|
|||
)
|
||||
return err
|
||||
}
|
||||
|
||||
func (p *Persistence) GetCommunityChatIDs(communityID types.HexBytes) ([]string, error) {
|
||||
rows, err := p.db.Query(`SELECT id FROM chats WHERE community_id = ?`, communityID.String())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
|
||||
ids := []string{}
|
||||
for rows.Next() {
|
||||
id := ""
|
||||
err := rows.Scan(&id)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
ids = append(ids, id)
|
||||
}
|
||||
return ids, nil
|
||||
}
|
||||
|
|
|
@ -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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1536754952_initial_schema.down.sql", size: 83, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1536754952_initial_schema.up.sql", size: 962, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1539249977_update_ratchet_info.down.sql", size: 311, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1539249977_update_ratchet_info.up.sql", size: 368, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1540715431_add_version.down.sql", size: 127, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1540715431_add_version.up.sql", size: 265, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1541164797_add_installations.down.sql", size: 26, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1541164797_add_installations.up.sql", size: 216, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1558084410_add_secret.down.sql", size: 56, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1558084410_add_secret.up.sql", size: 301, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1558588866_add_version.down.sql", size: 47, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1558588866_add_version.up.sql", size: 57, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1559627659_add_contact_code.down.sql", size: 32, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1559627659_add_contact_code.up.sql", size: 198, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1561368210_add_installation_metadata.down.sql", size: 35, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1561368210_add_installation_metadata.up.sql", size: 267, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1632236298_add_communities.down.sql", size: 151, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1632236298_add_communities.up.sql", size: 584, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1636536507_add_index_bundles.up.sql", size: 347, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "doc.go", size: 377, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
|
|
@ -150,10 +150,11 @@ type peerStatus struct {
|
|||
}
|
||||
type mailserverCycle struct {
|
||||
sync.RWMutex
|
||||
activeMailserver *mailserversDB.Mailserver
|
||||
peers map[string]peerStatus
|
||||
events chan *p2p.PeerEvent
|
||||
subscription event.Subscription
|
||||
activeMailserver *mailserversDB.Mailserver
|
||||
peers map[string]peerStatus
|
||||
events chan *p2p.PeerEvent
|
||||
subscription event.Subscription
|
||||
availabilitySubscriptions []chan struct{}
|
||||
}
|
||||
|
||||
type dbConfig struct {
|
||||
|
@ -379,7 +380,7 @@ func NewMessenger(
|
|||
|
||||
ensVerifier := ens.New(node, logger, transp, database, c.verifyENSURL, c.verifyENSContractAddress)
|
||||
|
||||
communitiesManager, err := communities.NewManager(&identity.PublicKey, database, logger, ensVerifier)
|
||||
communitiesManager, err := communities.NewManager(&identity.PublicKey, database, logger, ensVerifier, transp, c.torrentConfig)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -425,7 +426,8 @@ func NewMessenger(
|
|||
peerStore: peerStore,
|
||||
mailservers: mailservers,
|
||||
mailserverCycle: mailserverCycle{
|
||||
peers: make(map[string]peerStatus),
|
||||
peers: make(map[string]peerStatus),
|
||||
availabilitySubscriptions: make([]chan struct{}, 0),
|
||||
},
|
||||
mailserversDatabase: c.mailserversDatabase,
|
||||
account: c.account,
|
||||
|
@ -628,6 +630,7 @@ func (m *Messenger) Start() (*MessengerResponse, error) {
|
|||
|
||||
m.handleEncryptionLayerSubscriptions(subscriptions)
|
||||
m.handleCommunitiesSubscription(m.communitiesManager.Subscribe())
|
||||
m.handleCommunitiesHistoryArchivesSubscription(m.communitiesManager.Subscribe())
|
||||
m.handleConnectionChange(m.online())
|
||||
m.handleENSVerificationSubscription(ensSubscription)
|
||||
m.watchConnectionChange()
|
||||
|
@ -657,6 +660,17 @@ func (m *Messenger) Start() (*MessengerResponse, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
if m.config.torrentConfig != nil && m.config.torrentConfig.Enabled {
|
||||
adminCommunities, err := m.communitiesManager.Created()
|
||||
if err == nil && len(adminCommunities) > 0 {
|
||||
available := m.SubscribeMailserverAvailable()
|
||||
go func() {
|
||||
<-available
|
||||
m.InitHistoryArchiveTasks(adminCommunities)
|
||||
}()
|
||||
}
|
||||
}
|
||||
|
||||
err = m.httpServer.Start()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
|
@ -18,6 +18,9 @@ import (
|
|||
"github.com/status-im/status-go/protocol/transport"
|
||||
)
|
||||
|
||||
// 7 days interval
|
||||
var messageArchiveInterval = 7 * 24 * time.Hour
|
||||
|
||||
func (m *Messenger) publishOrg(org *communities.Community) error {
|
||||
m.logger.Debug("publishing org", zap.String("org-id", org.IDString()), zap.Any("org", org))
|
||||
payload, err := org.MarshaledDescription()
|
||||
|
@ -59,6 +62,64 @@ func (m *Messenger) publishOrgInvitation(org *communities.Community, invitation
|
|||
return err
|
||||
}
|
||||
|
||||
func (m *Messenger) handleCommunitiesHistoryArchivesSubscription(c chan *communities.Subscription) {
|
||||
|
||||
go func() {
|
||||
for {
|
||||
select {
|
||||
case sub, more := <-c:
|
||||
if !more {
|
||||
return
|
||||
}
|
||||
|
||||
if sub.CreatingHistoryArchivesSignal != nil {
|
||||
m.config.messengerSignalsHandler.CreatingHistoryArchives(sub.CreatingHistoryArchivesSignal.CommunityID)
|
||||
}
|
||||
|
||||
if sub.HistoryArchivesCreatedSignal != nil {
|
||||
m.config.messengerSignalsHandler.HistoryArchivesCreated(
|
||||
sub.HistoryArchivesCreatedSignal.CommunityID,
|
||||
sub.HistoryArchivesCreatedSignal.From,
|
||||
sub.HistoryArchivesCreatedSignal.To,
|
||||
)
|
||||
}
|
||||
|
||||
if sub.NoHistoryArchivesCreatedSignal != nil {
|
||||
m.config.messengerSignalsHandler.NoHistoryArchivesCreated(
|
||||
sub.NoHistoryArchivesCreatedSignal.CommunityID,
|
||||
sub.NoHistoryArchivesCreatedSignal.From,
|
||||
sub.NoHistoryArchivesCreatedSignal.To,
|
||||
)
|
||||
}
|
||||
|
||||
if sub.HistoryArchivesSeedingSignal != nil {
|
||||
|
||||
m.config.messengerSignalsHandler.HistoryArchivesSeeding(sub.HistoryArchivesSeedingSignal.CommunityID)
|
||||
|
||||
err := m.dispatchMagnetlinkMessage(sub.HistoryArchivesSeedingSignal.CommunityID)
|
||||
if err != nil {
|
||||
m.logger.Debug("failed to dispatch magnetlink message", zap.Error(err))
|
||||
}
|
||||
}
|
||||
|
||||
if sub.HistoryArchivesUnseededSignal != nil {
|
||||
m.config.messengerSignalsHandler.HistoryArchivesUnseeded(sub.HistoryArchivesUnseededSignal.CommunityID)
|
||||
}
|
||||
|
||||
if sub.HistoryArchiveDownloadedSignal != nil {
|
||||
m.config.messengerSignalsHandler.HistoryArchiveDownloaded(
|
||||
sub.HistoryArchiveDownloadedSignal.CommunityID,
|
||||
sub.HistoryArchiveDownloadedSignal.From,
|
||||
sub.HistoryArchiveDownloadedSignal.To,
|
||||
)
|
||||
}
|
||||
case <-m.quit:
|
||||
return
|
||||
}
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
// handleCommunitiesSubscription handles events from communities
|
||||
func (m *Messenger) handleCommunitiesSubscription(c chan *communities.Subscription) {
|
||||
|
||||
|
@ -417,6 +478,8 @@ func (m *Messenger) LeaveCommunity(communityID types.HexBytes) (*MessengerRespon
|
|||
return nil, err
|
||||
}
|
||||
|
||||
m.communitiesManager.StopHistoryArchiveTasksInterval(communityID)
|
||||
|
||||
if com, ok := mr.communities[communityID.String()]; ok {
|
||||
err = m.syncCommunity(context.Background(), com)
|
||||
if err != nil {
|
||||
|
@ -592,6 +655,10 @@ func (m *Messenger) CreateCommunity(request *requests.CreateCommunity) (*Messeng
|
|||
return nil, err
|
||||
}
|
||||
|
||||
if m.config.torrentConfig != nil && m.config.torrentConfig.Enabled && communitySettings.HistoryArchiveSupportEnabled {
|
||||
go m.communitiesManager.StartHistoryArchiveTasksInterval(community, messageArchiveInterval)
|
||||
}
|
||||
|
||||
return response, nil
|
||||
}
|
||||
|
||||
|
@ -614,6 +681,18 @@ func (m *Messenger) EditCommunity(request *requests.EditCommunity) (*MessengerRe
|
|||
return nil, err
|
||||
}
|
||||
|
||||
id := community.ID()
|
||||
|
||||
if m.config.torrentConfig.Enabled {
|
||||
if !communitySettings.HistoryArchiveSupportEnabled {
|
||||
m.communitiesManager.StopHistoryArchiveTasksInterval(id)
|
||||
} else if !m.communitiesManager.IsSeedingHistoryArchiveTorrent(id) {
|
||||
var communities []*communities.Community
|
||||
communities = append(communities, community)
|
||||
go m.InitHistoryArchiveTasks(communities)
|
||||
}
|
||||
}
|
||||
|
||||
response := &MessengerResponse{}
|
||||
response.AddCommunity(community)
|
||||
response.AddCommunitySettings(&communitySettings)
|
||||
|
@ -652,6 +731,11 @@ func (m *Messenger) ImportCommunity(ctx context.Context, key *ecdsa.PrivateKey)
|
|||
return nil, err
|
||||
}
|
||||
|
||||
if m.config.torrentConfig != nil && m.config.torrentConfig.Enabled {
|
||||
var communities []*communities.Community
|
||||
communities = append(communities, community)
|
||||
go m.InitHistoryArchiveTasks(communities)
|
||||
}
|
||||
return response, nil
|
||||
}
|
||||
|
||||
|
@ -1095,6 +1179,215 @@ func (m *Messenger) handleSyncCommunity(messageState *ReceivedMessageState, sync
|
|||
return nil
|
||||
}
|
||||
|
||||
func (m *Messenger) InitHistoryArchiveTasks(communities []*communities.Community) {
|
||||
|
||||
for _, c := range communities {
|
||||
|
||||
if c.Joined() {
|
||||
settings, err := m.communitiesManager.GetCommunitySettingsByID(c.ID())
|
||||
if err != nil {
|
||||
m.logger.Debug("failed to get community settings", zap.Error(err))
|
||||
continue
|
||||
}
|
||||
if !settings.HistoryArchiveSupportEnabled {
|
||||
continue
|
||||
}
|
||||
|
||||
filters, err := m.communitiesManager.GetCommunityChatsFilters(c.ID())
|
||||
if err != nil {
|
||||
m.logger.Debug("failed to get community chats filters", zap.Error(err))
|
||||
continue
|
||||
}
|
||||
|
||||
if len(filters) == 0 {
|
||||
m.logger.Debug("no filters or chats for this community starting interval", zap.String("id", c.IDString()))
|
||||
go m.communitiesManager.StartHistoryArchiveTasksInterval(c, messageArchiveInterval)
|
||||
continue
|
||||
}
|
||||
|
||||
topics := []types.TopicType{}
|
||||
|
||||
for _, filter := range filters {
|
||||
topics = append(topics, filter.Topic)
|
||||
}
|
||||
|
||||
// First we need to know the timestamp of the latest waku message
|
||||
// we've received for this community, so we can request messages we've
|
||||
// possibly missed since then
|
||||
latestWakuMessageTimestamp, err := m.communitiesManager.GetLatestWakuMessageTimestamp(topics)
|
||||
if err != nil {
|
||||
m.logger.Debug("failed to get Latest waku message timestamp", zap.Error(err))
|
||||
continue
|
||||
}
|
||||
|
||||
if latestWakuMessageTimestamp == 0 {
|
||||
// This means we don't have any waku messages for this community
|
||||
// yet, either because no messages were sent in the community so far,
|
||||
// or because messages haven't reached this node
|
||||
//
|
||||
// In this case we default to requesting messages from the store nodes
|
||||
// for the past 30 days
|
||||
latestWakuMessageTimestamp = uint64(time.Now().AddDate(0, 0, -30).Unix())
|
||||
}
|
||||
|
||||
// Request possibly missed waku messages for community
|
||||
_, err = m.syncFiltersFrom(filters, uint32(latestWakuMessageTimestamp))
|
||||
if err != nil {
|
||||
m.logger.Debug("failed to request missing messages", zap.Error(err))
|
||||
continue
|
||||
}
|
||||
|
||||
// We figure out the end date of the last created archive and schedule
|
||||
// the interval for creating future archives
|
||||
// If the last end date is at least `interval` ago, we create an archive immediately first
|
||||
lastArchiveEndDateTimestamp, err := m.communitiesManager.GetHistoryArchivePartitionStartTimestamp(c.ID())
|
||||
if err != nil {
|
||||
m.logger.Debug("failed to get archive partition start timestamp", zap.Error(err))
|
||||
continue
|
||||
}
|
||||
|
||||
to := time.Now()
|
||||
lastArchiveEndDate := time.Unix(int64(lastArchiveEndDateTimestamp), 0)
|
||||
durationSinceLastArchive := to.Sub(lastArchiveEndDate)
|
||||
|
||||
if lastArchiveEndDateTimestamp == 0 {
|
||||
// No prior messages to be archived, so we just kick off the archive creation loop
|
||||
// for future archives
|
||||
go m.communitiesManager.StartHistoryArchiveTasksInterval(c, messageArchiveInterval)
|
||||
} else if durationSinceLastArchive < messageArchiveInterval {
|
||||
// Last archive is less than `interval` old, wait until `interval` is complete,
|
||||
// then create archive and kick off archive creation loop for future archives
|
||||
// Seed current archive in the meantime
|
||||
err := m.communitiesManager.SeedHistoryArchiveTorrent(c.ID())
|
||||
if err != nil {
|
||||
m.logger.Debug("failed to seed history archive", zap.Error(err))
|
||||
}
|
||||
timeToNextInterval := messageArchiveInterval - durationSinceLastArchive
|
||||
|
||||
m.logger.Debug("Starting history archive tasks interval in", zap.Any("timeLeft", timeToNextInterval))
|
||||
time.AfterFunc(timeToNextInterval, func() {
|
||||
err := m.communitiesManager.CreateAndSeedHistoryArchive(c.ID(), topics, lastArchiveEndDate, to.Add(timeToNextInterval), messageArchiveInterval)
|
||||
if err != nil {
|
||||
m.logger.Debug("failed to get create and seed history archive", zap.Error(err))
|
||||
}
|
||||
go m.communitiesManager.StartHistoryArchiveTasksInterval(c, messageArchiveInterval)
|
||||
})
|
||||
} else {
|
||||
// Looks like the last archive was generated more than `interval`
|
||||
// ago, so lets create a new archive now and then schedule the archive
|
||||
// creation loop
|
||||
err := m.communitiesManager.CreateAndSeedHistoryArchive(c.ID(), topics, lastArchiveEndDate, to, messageArchiveInterval)
|
||||
if err != nil {
|
||||
m.logger.Debug("failed to get create and seed history archive", zap.Error(err))
|
||||
}
|
||||
|
||||
go m.communitiesManager.StartHistoryArchiveTasksInterval(c, messageArchiveInterval)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (m *Messenger) dispatchMagnetlinkMessage(communityID string) error {
|
||||
|
||||
community, err := m.communitiesManager.GetByIDString(communityID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
magnetlink, err := m.communitiesManager.GetHistoryArchiveMagnetlink(community.ID())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
magnetLinkMessage := &protobuf.CommunityMessageArchiveMagnetlink{
|
||||
Clock: m.getTimesource().GetCurrentTime(),
|
||||
MagnetUri: magnetlink,
|
||||
}
|
||||
|
||||
encodedMessage, err := proto.Marshal(magnetLinkMessage)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
chatID := community.MagnetlinkMessageChannelID()
|
||||
rawMessage := common.RawMessage{
|
||||
LocalChatID: chatID,
|
||||
Sender: community.PrivateKey(),
|
||||
Payload: encodedMessage,
|
||||
MessageType: protobuf.ApplicationMetadataMessage_COMMUNITY_ARCHIVE_MAGNETLINK,
|
||||
SkipGroupMessageWrap: true,
|
||||
}
|
||||
|
||||
_, err = m.sender.SendPublic(context.Background(), chatID, rawMessage)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = m.communitiesManager.UpdateCommunityDescriptionMagnetlinkMessageClock(community.ID(), magnetLinkMessage.Clock)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return m.communitiesManager.UpdateMagnetlinkMessageClock(community.ID(), magnetLinkMessage.Clock)
|
||||
}
|
||||
|
||||
func (m *Messenger) EnableCommunityHistoryArchiveProtocol() error {
|
||||
nodeConfig, err := m.settings.GetNodeConfig()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if nodeConfig.TorrentConfig.Enabled {
|
||||
return nil
|
||||
}
|
||||
|
||||
nodeConfig.TorrentConfig.Enabled = true
|
||||
err = m.settings.SaveSetting("node-config", nodeConfig)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
m.config.torrentConfig = &nodeConfig.TorrentConfig
|
||||
m.communitiesManager.SetTorrentConfig(&nodeConfig.TorrentConfig)
|
||||
err = m.communitiesManager.StartTorrentClient()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
communities, err := m.communitiesManager.Created()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if len(communities) > 0 {
|
||||
go m.InitHistoryArchiveTasks(communities)
|
||||
}
|
||||
m.config.messengerSignalsHandler.HistoryArchivesProtocolEnabled()
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *Messenger) DisableCommunityHistoryArchiveProtocol() error {
|
||||
|
||||
nodeConfig, err := m.settings.GetNodeConfig()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if !nodeConfig.TorrentConfig.Enabled {
|
||||
return nil
|
||||
}
|
||||
|
||||
m.communitiesManager.StopTorrentClient()
|
||||
|
||||
nodeConfig.TorrentConfig.Enabled = false
|
||||
err = m.settings.SaveSetting("node-config", nodeConfig)
|
||||
m.config.torrentConfig = &nodeConfig.TorrentConfig
|
||||
m.communitiesManager.SetTorrentConfig(&nodeConfig.TorrentConfig)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
m.config.messengerSignalsHandler.HistoryArchivesProtocolDisabled()
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *Messenger) GetCommunitiesSettings() ([]communities.CommunitySettings, error) {
|
||||
settings, err := m.communitiesManager.GetCommunitiesSettings()
|
||||
if err != nil {
|
||||
|
|
|
@ -34,6 +34,14 @@ type MessengerSignalsHandler interface {
|
|||
HistoryRequestCompleted(requestID string)
|
||||
HistoryRequestFailed(requestID string, err error)
|
||||
BackupPerformed(uint64)
|
||||
HistoryArchivesProtocolEnabled()
|
||||
HistoryArchivesProtocolDisabled()
|
||||
CreatingHistoryArchives(communityID string)
|
||||
NoHistoryArchivesCreated(communityID string, from int, to int)
|
||||
HistoryArchivesCreated(communityID string, from int, to int)
|
||||
HistoryArchivesSeeding(communityID string)
|
||||
HistoryArchivesUnseeded(communityID string)
|
||||
HistoryArchiveDownloaded(communityID string, from int, to int)
|
||||
}
|
||||
|
||||
type config struct {
|
||||
|
|
|
@ -332,7 +332,7 @@ func getPrioritizedBatches() []int {
|
|||
return []int{1, 5, 10}
|
||||
}
|
||||
|
||||
func (m *Messenger) syncFilters(filters []*transport.Filter) (*MessengerResponse, error) {
|
||||
func (m *Messenger) syncFiltersFrom(filters []*transport.Filter, lastRequest uint32) (*MessengerResponse, error) {
|
||||
response := &MessengerResponse{}
|
||||
topicInfo, err := m.mailserversDatabase.Topics()
|
||||
if err != nil {
|
||||
|
@ -380,11 +380,18 @@ func (m *Messenger) syncFilters(filters []*transport.Filter) (*MessengerResponse
|
|||
}
|
||||
|
||||
topicData, ok := topicsData[filter.Topic.String()]
|
||||
var capToDefaultSyncPeriod = true
|
||||
if !ok {
|
||||
if lastRequest == 0 {
|
||||
lastRequest = defaultPeriodFromNow
|
||||
}
|
||||
topicData = mailservers.MailserverTopic{
|
||||
Topic: filter.Topic.String(),
|
||||
LastRequest: int(defaultPeriodFromNow),
|
||||
}
|
||||
} else if lastRequest != 0 {
|
||||
topicData.LastRequest = int(lastRequest)
|
||||
capToDefaultSyncPeriod = false
|
||||
}
|
||||
|
||||
batchID := topicData.LastRequest
|
||||
|
@ -411,11 +418,13 @@ func (m *Messenger) syncFilters(filters []*transport.Filter) (*MessengerResponse
|
|||
|
||||
batch, ok := batches[batchID]
|
||||
if !ok {
|
||||
from, err := m.capToDefaultSyncPeriod(uint32(topicData.LastRequest))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
from := uint32(topicData.LastRequest)
|
||||
if capToDefaultSyncPeriod {
|
||||
from, err = m.capToDefaultSyncPeriod(uint32(topicData.LastRequest))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
batch = MailserverBatch{From: from, To: to}
|
||||
}
|
||||
|
||||
|
@ -508,6 +517,10 @@ func (m *Messenger) syncFilters(filters []*transport.Filter) (*MessengerResponse
|
|||
return response, nil
|
||||
}
|
||||
|
||||
func (m *Messenger) syncFilters(filters []*transport.Filter) (*MessengerResponse, error) {
|
||||
return m.syncFiltersFrom(filters, 0)
|
||||
}
|
||||
|
||||
func (m *Messenger) calculateGapForChat(chat *Chat, from uint32) (*common.Message, error) {
|
||||
// Chat was never synced, no gap necessary
|
||||
if chat.SyncedTo == 0 {
|
||||
|
|
|
@ -486,6 +486,7 @@ func (m *Messenger) handleMailserverCycleEvent(connectedPeers []ConnectedPeer) e
|
|||
|
||||
if m.mailserverCycle.activeMailserver != nil && id == m.mailserverCycle.activeMailserver.ID {
|
||||
m.logger.Info("mailserver available", zap.String("address", connectedPeer.UniqueID))
|
||||
m.EmitMailserverAvailable()
|
||||
signal.SendMailserverAvailable(m.mailserverCycle.activeMailserver.Address, m.mailserverCycle.activeMailserver.ID)
|
||||
}
|
||||
// Query mailserver
|
||||
|
@ -650,3 +651,18 @@ func (m *Messenger) getPinnedMailserver() (*mailservers.Mailserver, error) {
|
|||
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (m *Messenger) EmitMailserverAvailable() {
|
||||
for _, s := range m.mailserverCycle.availabilitySubscriptions {
|
||||
s <- struct{}{}
|
||||
close(s)
|
||||
l := len(m.mailserverCycle.availabilitySubscriptions)
|
||||
m.mailserverCycle.availabilitySubscriptions = m.mailserverCycle.availabilitySubscriptions[:l-1]
|
||||
}
|
||||
}
|
||||
|
||||
func (m *Messenger) SubscribeMailserverAvailable() chan struct{} {
|
||||
c := make(chan struct{})
|
||||
m.mailserverCycle.availabilitySubscriptions = append(m.mailserverCycle.availabilitySubscriptions, c)
|
||||
return c
|
||||
}
|
||||
|
|
|
@ -135,7 +135,7 @@ func _000001_initDownDbSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "000001_init.down.db.sql", size: 65, mode: os.FileMode(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "000001_init.down.db.sql", size: 65, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -155,7 +155,7 @@ func _000001_initUpDbSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "000001_init.up.db.sql", size: 2719, mode: os.FileMode(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "000001_init.up.db.sql", size: 2719, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -175,7 +175,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "000002_add_last_ens_clock_value.up.sql", size: 77, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -195,7 +195,7 @@ func _1586358095_add_replaceUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1586358095_add_replace.up.sql", size: 224, mode: os.FileMode(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1586358095_add_replace.up.sql", size: 224, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -215,7 +215,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1588665364_add_image_data.up.sql", size: 186, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -235,7 +235,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1589365189_add_pow_target.up.sql", size: 66, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -255,7 +255,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1591277220_add_index_messages.up.sql", size: 240, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -275,7 +275,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1593087212_add_mute_chat_and_raw_message_fields.up.sql", size: 215, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -295,7 +295,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1595862781_add_audio_data.up.sql", size: 246, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -315,7 +315,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1595865249_create_emoji_reactions_table.up.sql", size: 300, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -335,7 +335,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1596805115_create_group_chat_invitations_table.up.sql", size: 231, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -355,7 +355,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1597322655_add_invitation_admin_chat_field.up.sql", size: 54, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -375,7 +375,7 @@ func _1597757544_add_nicknameUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1597757544_add_nickname.up.sql", size: 52, mode: os.FileMode(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1597757544_add_nickname.up.sql", size: 52, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -395,7 +395,7 @@ func _1598955122_add_mentionsUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1598955122_add_mentions.up.sql", size: 52, mode: os.FileMode(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1598955122_add_mentions.up.sql", size: 52, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -415,7 +415,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1599641390_add_emoji_reactions_index.up.sql", size: 126, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -435,7 +435,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1599720851_add_seen_index_remove_long_messages.up.sql", size: 150, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -455,7 +455,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1603198582_add_profile_chat_field.up.sql", size: 45, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -475,7 +475,7 @@ func _1603816533_add_linksUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1603816533_add_links.up.sql", size: 48, mode: os.FileMode(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1603816533_add_links.up.sql", size: 48, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -495,7 +495,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1603888149_create_chat_identity_last_published_table.up.sql", size: 407, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -515,7 +515,7 @@ func _1605075346_add_communitiesUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1605075346_add_communities.up.sql", size: 6971, mode: os.FileMode(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1605075346_add_communities.up.sql", size: 6971, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -535,7 +535,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1610117927_add_message_cache.up.sql", size: 142, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -555,7 +555,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1610959908_add_dont_wrap_to_raw_messages.up.sql", size: 83, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -575,7 +575,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1610960912_add_send_on_personal_topic.up.sql", size: 82, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -595,7 +595,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1612870480_add_datasync_id.up.sql", size: 111, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -615,7 +615,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1614152139_add_communities_request_to_join.up.sql", size: 831, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -635,7 +635,7 @@ func _1615374373_add_confirmationsUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1615374373_add_confirmations.up.sql", size: 227, mode: os.FileMode(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1615374373_add_confirmations.up.sql", size: 227, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -655,7 +655,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1617694931_add_notification_center.up.sql", size: 572, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -675,7 +675,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1618923660_create_pin_messages.up.sql", size: 265, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -695,7 +695,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1619094007_add_joined_chat_field.up.sql", size: 101, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -715,7 +715,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1619099821_add_last_synced_field.up.sql", size: 226, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -735,7 +735,7 @@ func _1621933219_add_mentionedUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1621933219_add_mentioned.up.sql", size: 70, mode: os.FileMode(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1621933219_add_mentioned.up.sql", size: 70, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -755,7 +755,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1622010048_add_unviewed_mentions_count.up.sql", size: 114, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -775,7 +775,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1622061278_add_message_activity_center_notification_field.up.sql", size: 80, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -795,7 +795,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1622464518_set_synced_to_from.up.sql", size: 105, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -815,7 +815,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1622464519_add_chat_description.up.sql", size: 93, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -835,7 +835,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1622622253_add_pinned_by_to_pin_messages.up.sql", size: 52, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -855,7 +855,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1623938329_add_author_activity_center_notification_field.up.sql", size: 66, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -875,7 +875,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1623938330_add_edit_messages.up.sql", size: 369, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -895,7 +895,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1624978434_add_muted_community.up.sql", size: 82, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -915,7 +915,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1625018910_add_repply_message_activity_center_notification_field.up.sql", size: 86, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -935,7 +935,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1625762506_add_deleted_messages.up.sql", size: 357, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -955,7 +955,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1627388946_add_communities_synced_at.up.sql", size: 87, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -975,7 +975,7 @@ func _1628280060_createUsermessagesIndexSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1628280060_create-usermessages-index.sql", size: 80, mode: os.FileMode(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1628280060_create-usermessages-index.sql", size: 80, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -995,7 +995,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1632303896_modify_contacts_table.up.sql", size: 1574, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -1015,7 +1015,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1633349838_add_emoji_column_in_chats.up.sql", size: 52, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -1035,7 +1035,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1634831235_add_highlight_column_in_chats.up.sql", size: 62, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -1055,7 +1055,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1634896007_add_last_updated_locally_and_removed.up.sql", size: 131, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -1075,7 +1075,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1635840039_add_clock_read_at_column_in_chats.up.sql", size: 245, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -1095,7 +1095,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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1637852321_add_received_invitation_admin_column_in_chats.up.sql", size: 72, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -1115,7 +1115,7 @@ func _1645034601_display_nameUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1645034601_display_name.up.sql", size: 110, mode: os.FileMode(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1645034601_display_name.up.sql", size: 110, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -1135,7 +1135,7 @@ func readmeMd() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "README.md", size: 554, mode: os.FileMode(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "README.md", size: 554, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
@ -1155,7 +1155,7 @@ func docGo() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "doc.go", size: 850, mode: os.FileMode(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "doc.go", size: 850, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
|
|
@ -66,6 +66,7 @@ const (
|
|||
ApplicationMetadataMessage_SYNC_BOOKMARK ApplicationMetadataMessage_Type = 40
|
||||
ApplicationMetadataMessage_SYNC_CLEAR_HISTORY ApplicationMetadataMessage_Type = 41
|
||||
ApplicationMetadataMessage_SYNC_SETTING ApplicationMetadataMessage_Type = 42
|
||||
ApplicationMetadataMessage_COMMUNITY_ARCHIVE_MAGNETLINK ApplicationMetadataMessage_Type = 43
|
||||
)
|
||||
|
||||
var ApplicationMetadataMessage_Type_name = map[int32]string{
|
||||
|
@ -112,6 +113,7 @@ var ApplicationMetadataMessage_Type_name = map[int32]string{
|
|||
40: "SYNC_BOOKMARK",
|
||||
41: "SYNC_CLEAR_HISTORY",
|
||||
42: "SYNC_SETTING",
|
||||
43: "COMMUNITY_ARCHIVE_MAGNETLINK",
|
||||
}
|
||||
|
||||
var ApplicationMetadataMessage_Type_value = map[string]int32{
|
||||
|
@ -158,6 +160,7 @@ var ApplicationMetadataMessage_Type_value = map[string]int32{
|
|||
"SYNC_BOOKMARK": 40,
|
||||
"SYNC_CLEAR_HISTORY": 41,
|
||||
"SYNC_SETTING": 42,
|
||||
"COMMUNITY_ARCHIVE_MAGNETLINK": 43,
|
||||
}
|
||||
|
||||
func (x ApplicationMetadataMessage_Type) String() string {
|
||||
|
@ -236,50 +239,51 @@ func init() {
|
|||
}
|
||||
|
||||
var fileDescriptor_ad09a6406fcf24c7 = []byte{
|
||||
// 715 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x54, 0x5d, 0x53, 0x5b, 0x37,
|
||||
0x10, 0xad, 0x13, 0x0a, 0x61, 0x0d, 0x44, 0x28, 0x7c, 0x18, 0x13, 0xc0, 0x71, 0xd2, 0x84, 0xa4,
|
||||
0x33, 0xee, 0x4c, 0xfb, 0xd8, 0xe9, 0x83, 0x2c, 0x2d, 0xb6, 0xb0, 0xaf, 0x74, 0x91, 0x74, 0xdd,
|
||||
0x71, 0x5f, 0x34, 0x97, 0xe2, 0x32, 0xcc, 0x00, 0xf6, 0x80, 0x79, 0xe0, 0x1f, 0xf5, 0x57, 0xf4,
|
||||
0xb7, 0x75, 0x74, 0xaf, 0xbf, 0x00, 0x13, 0x9e, 0x6c, 0x9d, 0x73, 0xb4, 0xab, 0x3d, 0xbb, 0x7b,
|
||||
0xa1, 0x9a, 0x0e, 0x06, 0x97, 0x17, 0x7f, 0xa7, 0xc3, 0x8b, 0xfe, 0xb5, 0xbf, 0xea, 0x0d, 0xd3,
|
||||
0xb3, 0x74, 0x98, 0xfa, 0xab, 0xde, 0xed, 0x6d, 0x7a, 0xde, 0xab, 0x0d, 0x6e, 0xfa, 0xc3, 0x3e,
|
||||
0x7d, 0x93, 0xfd, 0x9c, 0xde, 0xfd, 0x53, 0xfd, 0x0f, 0xa0, 0xcc, 0xa6, 0x17, 0xa2, 0x91, 0x3e,
|
||||
0xca, 0xe5, 0xf4, 0x3d, 0x2c, 0xdf, 0x5e, 0x9c, 0x5f, 0xa7, 0xc3, 0xbb, 0x9b, 0x5e, 0xa9, 0x50,
|
||||
0x29, 0x1c, 0xae, 0x98, 0x29, 0x40, 0x4b, 0xb0, 0x34, 0x48, 0xef, 0x2f, 0xfb, 0xe9, 0x59, 0xe9,
|
||||
0x55, 0xc6, 0x8d, 0x8f, 0xf4, 0x0f, 0x58, 0x18, 0xde, 0x0f, 0x7a, 0xa5, 0xd7, 0x95, 0xc2, 0xe1,
|
||||
0xda, 0xaf, 0x5f, 0x6b, 0xe3, 0x7c, 0xb5, 0xe7, 0x73, 0xd5, 0xdc, 0xfd, 0xa0, 0x67, 0xb2, 0x6b,
|
||||
0xd5, 0x7f, 0x97, 0x61, 0x21, 0x1c, 0x69, 0x11, 0x96, 0x12, 0xd5, 0x52, 0xfa, 0x4f, 0x45, 0x7e,
|
||||
0xa0, 0x04, 0x56, 0x78, 0x93, 0x39, 0x1f, 0xa1, 0xb5, 0xac, 0x81, 0xa4, 0x40, 0x29, 0xac, 0x71,
|
||||
0xad, 0x1c, 0xe3, 0xce, 0x27, 0xb1, 0x60, 0x0e, 0xc9, 0x2b, 0xba, 0x07, 0x3b, 0x11, 0x46, 0x75,
|
||||
0x34, 0xb6, 0x29, 0xe3, 0x11, 0x3c, 0xb9, 0xf2, 0x9a, 0x6e, 0xc2, 0x7a, 0xcc, 0xa4, 0xf1, 0x52,
|
||||
0x59, 0xc7, 0xda, 0x6d, 0xe6, 0xa4, 0x56, 0x64, 0x21, 0xc0, 0xb6, 0xab, 0xf8, 0x43, 0xf8, 0x47,
|
||||
0xfa, 0x11, 0x0e, 0x0c, 0x9e, 0x24, 0x68, 0x9d, 0x67, 0x42, 0x18, 0xb4, 0xd6, 0x1f, 0x69, 0xe3,
|
||||
0x9d, 0x61, 0xca, 0x32, 0x9e, 0x89, 0x16, 0xe9, 0x37, 0xf8, 0xcc, 0x38, 0xc7, 0xd8, 0xf9, 0x97,
|
||||
0xb4, 0x4b, 0xf4, 0x67, 0xf8, 0x22, 0x90, 0xb7, 0xa5, 0xc2, 0x17, 0xc5, 0x6f, 0xe8, 0x36, 0xbc,
|
||||
0x1b, 0x8b, 0x66, 0x89, 0x65, 0xba, 0x01, 0xc4, 0xa2, 0x12, 0x0f, 0x50, 0xa0, 0x07, 0xb0, 0xfb,
|
||||
0x38, 0xf6, 0xac, 0xa0, 0x18, 0xac, 0x79, 0x52, 0xa4, 0x1f, 0x19, 0x48, 0x56, 0xe6, 0xd3, 0x8c,
|
||||
0x73, 0x9d, 0x28, 0x47, 0x56, 0xe9, 0x07, 0xd8, 0x7b, 0x4a, 0xc7, 0x49, 0xbd, 0x2d, 0xb9, 0x0f,
|
||||
0x7d, 0x21, 0x6b, 0x74, 0x1f, 0xca, 0xe3, 0x7e, 0x70, 0x2d, 0xd0, 0x33, 0xd1, 0x41, 0xe3, 0xa4,
|
||||
0xc5, 0x08, 0x95, 0x23, 0x6f, 0x69, 0x15, 0xf6, 0xe3, 0xc4, 0x36, 0xbd, 0xd2, 0x4e, 0x1e, 0x49,
|
||||
0x9e, 0x87, 0x30, 0xd8, 0x90, 0xd6, 0x99, 0xdc, 0x72, 0x12, 0x1c, 0xfa, 0xbe, 0xc6, 0x1b, 0xb4,
|
||||
0xb1, 0x56, 0x16, 0xc9, 0x3a, 0xdd, 0x85, 0xed, 0xa7, 0xe2, 0x93, 0x04, 0x4d, 0x97, 0x50, 0xfa,
|
||||
0x09, 0x2a, 0xcf, 0x90, 0xd3, 0x10, 0xef, 0x42, 0xd5, 0xf3, 0xf2, 0x65, 0xfe, 0x91, 0x8d, 0x50,
|
||||
0xd2, 0x3c, 0x7a, 0x74, 0x7d, 0x33, 0x8c, 0x20, 0x46, 0xfa, 0x58, 0x7a, 0x83, 0x23, 0x9f, 0xb7,
|
||||
0xe8, 0x0e, 0x6c, 0x36, 0x8c, 0x4e, 0xe2, 0xcc, 0x16, 0x2f, 0x55, 0x47, 0xba, 0xbc, 0xba, 0x6d,
|
||||
0xba, 0x0e, 0xab, 0x39, 0x28, 0x50, 0x39, 0xe9, 0xba, 0xa4, 0x14, 0xd4, 0x5c, 0x47, 0x51, 0xa2,
|
||||
0xa4, 0xeb, 0x7a, 0x81, 0x96, 0x1b, 0x19, 0x67, 0xea, 0x1d, 0x5a, 0x82, 0x8d, 0x29, 0x35, 0x13,
|
||||
0xa7, 0x1c, 0x5e, 0x3d, 0x65, 0x26, 0xdd, 0xd6, 0xfe, 0x58, 0x4b, 0x45, 0x76, 0xe9, 0x5b, 0x28,
|
||||
0xc6, 0x52, 0x4d, 0xc6, 0xfe, 0x7d, 0xd8, 0x1d, 0x14, 0x72, 0xba, 0x3b, 0x7b, 0xe1, 0x25, 0xd6,
|
||||
0x31, 0x97, 0xd8, 0xf1, 0xea, 0xec, 0x87, 0x5a, 0x04, 0xb6, 0x71, 0x66, 0x5f, 0x0e, 0xc2, 0x50,
|
||||
0xcd, 0x9b, 0x99, 0x51, 0x6a, 0x52, 0xa1, 0x65, 0xd8, 0x62, 0x4a, 0xab, 0x6e, 0xa4, 0x13, 0xeb,
|
||||
0x23, 0x74, 0x46, 0x72, 0x5f, 0x67, 0x8e, 0x37, 0xc9, 0x87, 0xc9, 0x56, 0x65, 0x25, 0x1b, 0x8c,
|
||||
0x74, 0x07, 0x05, 0xa9, 0x86, 0xae, 0x4d, 0xe1, 0x51, 0x2a, 0x1b, 0x0c, 0x14, 0xe4, 0x23, 0x05,
|
||||
0x58, 0xac, 0x33, 0xde, 0x4a, 0x62, 0xf2, 0x69, 0x32, 0x91, 0xc1, 0xd9, 0x4e, 0xa8, 0x94, 0xa3,
|
||||
0x72, 0x68, 0x72, 0xe9, 0x4f, 0x93, 0x89, 0x7c, 0x4c, 0xe7, 0xdb, 0x88, 0x82, 0x7c, 0x0e, 0x13,
|
||||
0x37, 0x57, 0x22, 0xa4, 0x8d, 0xa4, 0xb5, 0x28, 0xc8, 0x97, 0xcc, 0x89, 0xa0, 0xa9, 0x6b, 0xdd,
|
||||
0x8a, 0x98, 0x69, 0x91, 0x43, 0xba, 0x05, 0x34, 0x7f, 0x61, 0x1b, 0x99, 0xf1, 0x4d, 0x69, 0x9d,
|
||||
0x36, 0x5d, 0xf2, 0x35, 0xd8, 0x98, 0xe1, 0x16, 0x9d, 0x93, 0xaa, 0x41, 0xbe, 0xd5, 0x57, 0xff,
|
||||
0x2a, 0xd6, 0x7e, 0xf9, 0x7d, 0xfc, 0x7d, 0x3b, 0x5d, 0xcc, 0xfe, 0xfd, 0xf6, 0x7f, 0x00, 0x00,
|
||||
0x00, 0xff, 0xff, 0xab, 0x54, 0x29, 0x45, 0x86, 0x05, 0x00, 0x00,
|
||||
// 735 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x54, 0x5d, 0x53, 0x1b, 0x37,
|
||||
0x14, 0xad, 0x13, 0x0a, 0xe1, 0x1a, 0x88, 0x50, 0xf8, 0x30, 0xe6, 0xcb, 0x71, 0xd2, 0x84, 0x24,
|
||||
0x33, 0xee, 0x4c, 0xfb, 0xd8, 0xe9, 0x83, 0x2c, 0xdd, 0xd8, 0x8a, 0xbd, 0xd2, 0x46, 0xd2, 0xba,
|
||||
0xe3, 0xbe, 0x68, 0x36, 0x8d, 0xcb, 0x30, 0x03, 0xd8, 0x03, 0xe6, 0x81, 0xbf, 0xd8, 0x5f, 0xd1,
|
||||
0x9f, 0xd2, 0xd1, 0xae, 0xed, 0x35, 0x60, 0xca, 0x93, 0xad, 0x73, 0x8e, 0xee, 0xd5, 0x3d, 0xf7,
|
||||
0xde, 0x85, 0x7a, 0x3a, 0x1a, 0x9d, 0x9f, 0xfd, 0x95, 0x8e, 0xcf, 0x86, 0x97, 0xfe, 0x62, 0x30,
|
||||
0x4e, 0xbf, 0xa7, 0xe3, 0xd4, 0x5f, 0x0c, 0xae, 0xaf, 0xd3, 0xd3, 0x41, 0x63, 0x74, 0x35, 0x1c,
|
||||
0x0f, 0xe9, 0x8b, 0xec, 0xe7, 0xdb, 0xcd, 0xdf, 0xf5, 0x7f, 0x01, 0xaa, 0xac, 0xb8, 0x10, 0x4d,
|
||||
0xf4, 0x51, 0x2e, 0xa7, 0x07, 0xb0, 0x7a, 0x7d, 0x76, 0x7a, 0x99, 0x8e, 0x6f, 0xae, 0x06, 0x95,
|
||||
0x52, 0xad, 0x74, 0xb2, 0x66, 0x0a, 0x80, 0x56, 0x60, 0x65, 0x94, 0xde, 0x9e, 0x0f, 0xd3, 0xef,
|
||||
0x95, 0x67, 0x19, 0x37, 0x3d, 0xd2, 0xdf, 0x61, 0x69, 0x7c, 0x3b, 0x1a, 0x54, 0x9e, 0xd7, 0x4a,
|
||||
0x27, 0x1b, 0xbf, 0x7c, 0x68, 0x4c, 0xf3, 0x35, 0x1e, 0xcf, 0xd5, 0x70, 0xb7, 0xa3, 0x81, 0xc9,
|
||||
0xae, 0xd5, 0xff, 0x59, 0x85, 0xa5, 0x70, 0xa4, 0x65, 0x58, 0x49, 0x54, 0x47, 0xe9, 0x3f, 0x14,
|
||||
0xf9, 0x81, 0x12, 0x58, 0xe3, 0x6d, 0xe6, 0x7c, 0x84, 0xd6, 0xb2, 0x16, 0x92, 0x12, 0xa5, 0xb0,
|
||||
0xc1, 0xb5, 0x72, 0x8c, 0x3b, 0x9f, 0xc4, 0x82, 0x39, 0x24, 0xcf, 0xe8, 0x21, 0xec, 0x45, 0x18,
|
||||
0x35, 0xd1, 0xd8, 0xb6, 0x8c, 0x27, 0xf0, 0xec, 0xca, 0x73, 0xba, 0x0d, 0x9b, 0x31, 0x93, 0xc6,
|
||||
0x4b, 0x65, 0x1d, 0xeb, 0x76, 0x99, 0x93, 0x5a, 0x91, 0xa5, 0x00, 0xdb, 0xbe, 0xe2, 0x77, 0xe1,
|
||||
0x1f, 0xe9, 0x1b, 0x38, 0x36, 0xf8, 0x35, 0x41, 0xeb, 0x3c, 0x13, 0xc2, 0xa0, 0xb5, 0xfe, 0xb3,
|
||||
0x36, 0xde, 0x19, 0xa6, 0x2c, 0xe3, 0x99, 0x68, 0x99, 0x7e, 0x84, 0x77, 0x8c, 0x73, 0x8c, 0x9d,
|
||||
0x7f, 0x4a, 0xbb, 0x42, 0x3f, 0xc1, 0x7b, 0x81, 0xbc, 0x2b, 0x15, 0x3e, 0x29, 0x7e, 0x41, 0x77,
|
||||
0xe1, 0xd5, 0x54, 0x34, 0x4f, 0xac, 0xd2, 0x2d, 0x20, 0x16, 0x95, 0xb8, 0x83, 0x02, 0x3d, 0x86,
|
||||
0xfd, 0xfb, 0xb1, 0xe7, 0x05, 0xe5, 0x60, 0xcd, 0x83, 0x22, 0xfd, 0xc4, 0x40, 0xb2, 0xb6, 0x98,
|
||||
0x66, 0x9c, 0xeb, 0x44, 0x39, 0xb2, 0x4e, 0x5f, 0xc3, 0xe1, 0x43, 0x3a, 0x4e, 0x9a, 0x5d, 0xc9,
|
||||
0x7d, 0xe8, 0x0b, 0xd9, 0xa0, 0x47, 0x50, 0x9d, 0xf6, 0x83, 0x6b, 0x81, 0x9e, 0x89, 0x1e, 0x1a,
|
||||
0x27, 0x2d, 0x46, 0xa8, 0x1c, 0x79, 0x49, 0xeb, 0x70, 0x14, 0x27, 0xb6, 0xed, 0x95, 0x76, 0xf2,
|
||||
0xb3, 0xe4, 0x79, 0x08, 0x83, 0x2d, 0x69, 0x9d, 0xc9, 0x2d, 0x27, 0xc1, 0xa1, 0xff, 0xd7, 0x78,
|
||||
0x83, 0x36, 0xd6, 0xca, 0x22, 0xd9, 0xa4, 0xfb, 0xb0, 0xfb, 0x50, 0xfc, 0x35, 0x41, 0xd3, 0x27,
|
||||
0x94, 0xbe, 0x85, 0xda, 0x23, 0x64, 0x11, 0xe2, 0x55, 0xa8, 0x7a, 0x51, 0xbe, 0xcc, 0x3f, 0xb2,
|
||||
0x15, 0x4a, 0x5a, 0x44, 0x4f, 0xae, 0x6f, 0x87, 0x11, 0xc4, 0x48, 0x7f, 0x91, 0xde, 0xe0, 0xc4,
|
||||
0xe7, 0x1d, 0xba, 0x07, 0xdb, 0x2d, 0xa3, 0x93, 0x38, 0xb3, 0xc5, 0x4b, 0xd5, 0x93, 0x2e, 0xaf,
|
||||
0x6e, 0x97, 0x6e, 0xc2, 0x7a, 0x0e, 0x0a, 0x54, 0x4e, 0xba, 0x3e, 0xa9, 0x04, 0x35, 0xd7, 0x51,
|
||||
0x94, 0x28, 0xe9, 0xfa, 0x5e, 0xa0, 0xe5, 0x46, 0xc6, 0x99, 0x7a, 0x8f, 0x56, 0x60, 0xab, 0xa0,
|
||||
0xe6, 0xe2, 0x54, 0xc3, 0xab, 0x0b, 0x66, 0xd6, 0x6d, 0xed, 0xbf, 0x68, 0xa9, 0xc8, 0x3e, 0x7d,
|
||||
0x09, 0xe5, 0x58, 0xaa, 0xd9, 0xd8, 0x1f, 0x84, 0xdd, 0x41, 0x21, 0x8b, 0xdd, 0x39, 0x0c, 0x2f,
|
||||
0xb1, 0x8e, 0xb9, 0xc4, 0x4e, 0x57, 0xe7, 0x28, 0xd4, 0x22, 0xb0, 0x8b, 0x73, 0xfb, 0x72, 0x1c,
|
||||
0x86, 0x6a, 0xd1, 0xcc, 0x4c, 0x52, 0x93, 0x1a, 0xad, 0xc2, 0x0e, 0x53, 0x5a, 0xf5, 0x23, 0x9d,
|
||||
0x58, 0x1f, 0xa1, 0x33, 0x92, 0xfb, 0x26, 0x73, 0xbc, 0x4d, 0x5e, 0xcf, 0xb6, 0x2a, 0x2b, 0xd9,
|
||||
0x60, 0xa4, 0x7b, 0x28, 0x48, 0x3d, 0x74, 0xad, 0x80, 0x27, 0xa9, 0x6c, 0x30, 0x50, 0x90, 0x37,
|
||||
0x14, 0x60, 0xb9, 0xc9, 0x78, 0x27, 0x89, 0xc9, 0xdb, 0xd9, 0x44, 0x06, 0x67, 0x7b, 0xa1, 0x52,
|
||||
0x8e, 0xca, 0xa1, 0xc9, 0xa5, 0x3f, 0xcd, 0x26, 0xf2, 0x3e, 0x9d, 0x6f, 0x23, 0x0a, 0xf2, 0x2e,
|
||||
0x4c, 0xdc, 0x42, 0x89, 0x90, 0x36, 0x92, 0xd6, 0xa2, 0x20, 0xef, 0x33, 0x27, 0x82, 0xa6, 0xa9,
|
||||
0x75, 0x27, 0x62, 0xa6, 0x43, 0x4e, 0xe8, 0x0e, 0xd0, 0xfc, 0x85, 0x5d, 0x64, 0xc6, 0xb7, 0xa5,
|
||||
0x75, 0xda, 0xf4, 0xc9, 0x87, 0x60, 0x63, 0x86, 0x5b, 0x74, 0x4e, 0xaa, 0x16, 0xf9, 0x48, 0x6b,
|
||||
0x70, 0x50, 0x34, 0x82, 0x19, 0xde, 0x96, 0x3d, 0xf4, 0x11, 0x6b, 0x29, 0x74, 0x5d, 0xa9, 0x3a,
|
||||
0xe4, 0x53, 0x73, 0xfd, 0xcf, 0x72, 0xe3, 0xe7, 0xdf, 0xa6, 0x5f, 0xc0, 0x6f, 0xcb, 0xd9, 0xbf,
|
||||
0x5f, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0xb9, 0x43, 0x6c, 0x84, 0xa8, 0x05, 0x00, 0x00,
|
||||
}
|
||||
|
|
|
@ -56,5 +56,6 @@ message ApplicationMetadataMessage {
|
|||
SYNC_BOOKMARK = 40;
|
||||
SYNC_CLEAR_HISTORY = 41;
|
||||
SYNC_SETTING = 42;
|
||||
COMMUNITY_ARCHIVE_MAGNETLINK = 43;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -238,16 +238,17 @@ func (m *CommunityPermissions) GetAccess() CommunityPermissions_Access {
|
|||
}
|
||||
|
||||
type CommunityDescription struct {
|
||||
Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"`
|
||||
Members map[string]*CommunityMember `protobuf:"bytes,2,rep,name=members,proto3" json:"members,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
|
||||
Permissions *CommunityPermissions `protobuf:"bytes,3,opt,name=permissions,proto3" json:"permissions,omitempty"`
|
||||
Identity *ChatIdentity `protobuf:"bytes,5,opt,name=identity,proto3" json:"identity,omitempty"`
|
||||
Chats map[string]*CommunityChat `protobuf:"bytes,6,rep,name=chats,proto3" json:"chats,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
|
||||
BanList []string `protobuf:"bytes,7,rep,name=ban_list,json=banList,proto3" json:"ban_list,omitempty"`
|
||||
Categories map[string]*CommunityCategory `protobuf:"bytes,8,rep,name=categories,proto3" json:"categories,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"`
|
||||
Members map[string]*CommunityMember `protobuf:"bytes,2,rep,name=members,proto3" json:"members,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
|
||||
Permissions *CommunityPermissions `protobuf:"bytes,3,opt,name=permissions,proto3" json:"permissions,omitempty"`
|
||||
Identity *ChatIdentity `protobuf:"bytes,5,opt,name=identity,proto3" json:"identity,omitempty"`
|
||||
Chats map[string]*CommunityChat `protobuf:"bytes,6,rep,name=chats,proto3" json:"chats,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
|
||||
BanList []string `protobuf:"bytes,7,rep,name=ban_list,json=banList,proto3" json:"ban_list,omitempty"`
|
||||
Categories map[string]*CommunityCategory `protobuf:"bytes,8,rep,name=categories,proto3" json:"categories,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
|
||||
ArchiveMagnetlinkClock uint64 `protobuf:"varint,9,opt,name=archive_magnetlink_clock,json=archiveMagnetlinkClock,proto3" json:"archive_magnetlink_clock,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *CommunityDescription) Reset() { *m = CommunityDescription{} }
|
||||
|
@ -324,6 +325,13 @@ func (m *CommunityDescription) GetCategories() map[string]*CommunityCategory {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (m *CommunityDescription) GetArchiveMagnetlinkClock() uint64 {
|
||||
if m != nil {
|
||||
return m.ArchiveMagnetlinkClock
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
type CommunityChat struct {
|
||||
Members map[string]*CommunityMember `protobuf:"bytes,1,rep,name=members,proto3" json:"members,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
|
||||
Permissions *CommunityPermissions `protobuf:"bytes,2,opt,name=permissions,proto3" json:"permissions,omitempty"`
|
||||
|
@ -639,6 +647,360 @@ func (m *CommunityRequestToJoinResponse) GetGrant() []byte {
|
|||
return nil
|
||||
}
|
||||
|
||||
type CommunityMessageArchiveMagnetlink struct {
|
||||
Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"`
|
||||
MagnetUri string `protobuf:"bytes,2,opt,name=magnet_uri,json=magnetUri,proto3" json:"magnet_uri,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *CommunityMessageArchiveMagnetlink) Reset() { *m = CommunityMessageArchiveMagnetlink{} }
|
||||
func (m *CommunityMessageArchiveMagnetlink) String() string { return proto.CompactTextString(m) }
|
||||
func (*CommunityMessageArchiveMagnetlink) ProtoMessage() {}
|
||||
func (*CommunityMessageArchiveMagnetlink) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_f937943d74c1cd8b, []int{9}
|
||||
}
|
||||
|
||||
func (m *CommunityMessageArchiveMagnetlink) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_CommunityMessageArchiveMagnetlink.Unmarshal(m, b)
|
||||
}
|
||||
func (m *CommunityMessageArchiveMagnetlink) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_CommunityMessageArchiveMagnetlink.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *CommunityMessageArchiveMagnetlink) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_CommunityMessageArchiveMagnetlink.Merge(m, src)
|
||||
}
|
||||
func (m *CommunityMessageArchiveMagnetlink) XXX_Size() int {
|
||||
return xxx_messageInfo_CommunityMessageArchiveMagnetlink.Size(m)
|
||||
}
|
||||
func (m *CommunityMessageArchiveMagnetlink) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_CommunityMessageArchiveMagnetlink.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_CommunityMessageArchiveMagnetlink proto.InternalMessageInfo
|
||||
|
||||
func (m *CommunityMessageArchiveMagnetlink) GetClock() uint64 {
|
||||
if m != nil {
|
||||
return m.Clock
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *CommunityMessageArchiveMagnetlink) GetMagnetUri() string {
|
||||
if m != nil {
|
||||
return m.MagnetUri
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
type WakuMessage struct {
|
||||
Sig []byte `protobuf:"bytes,1,opt,name=sig,proto3" json:"sig,omitempty"`
|
||||
Timestamp uint64 `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
|
||||
Topic []byte `protobuf:"bytes,3,opt,name=topic,proto3" json:"topic,omitempty"`
|
||||
Payload []byte `protobuf:"bytes,4,opt,name=payload,proto3" json:"payload,omitempty"`
|
||||
Padding []byte `protobuf:"bytes,5,opt,name=padding,proto3" json:"padding,omitempty"`
|
||||
Hash []byte `protobuf:"bytes,6,opt,name=hash,proto3" json:"hash,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *WakuMessage) Reset() { *m = WakuMessage{} }
|
||||
func (m *WakuMessage) String() string { return proto.CompactTextString(m) }
|
||||
func (*WakuMessage) ProtoMessage() {}
|
||||
func (*WakuMessage) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_f937943d74c1cd8b, []int{10}
|
||||
}
|
||||
|
||||
func (m *WakuMessage) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_WakuMessage.Unmarshal(m, b)
|
||||
}
|
||||
func (m *WakuMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_WakuMessage.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *WakuMessage) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_WakuMessage.Merge(m, src)
|
||||
}
|
||||
func (m *WakuMessage) XXX_Size() int {
|
||||
return xxx_messageInfo_WakuMessage.Size(m)
|
||||
}
|
||||
func (m *WakuMessage) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_WakuMessage.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_WakuMessage proto.InternalMessageInfo
|
||||
|
||||
func (m *WakuMessage) GetSig() []byte {
|
||||
if m != nil {
|
||||
return m.Sig
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *WakuMessage) GetTimestamp() uint64 {
|
||||
if m != nil {
|
||||
return m.Timestamp
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *WakuMessage) GetTopic() []byte {
|
||||
if m != nil {
|
||||
return m.Topic
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *WakuMessage) GetPayload() []byte {
|
||||
if m != nil {
|
||||
return m.Payload
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *WakuMessage) GetPadding() []byte {
|
||||
if m != nil {
|
||||
return m.Padding
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *WakuMessage) GetHash() []byte {
|
||||
if m != nil {
|
||||
return m.Hash
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type WakuMessageArchiveMetadata struct {
|
||||
Version uint32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`
|
||||
From uint64 `protobuf:"varint,2,opt,name=from,proto3" json:"from,omitempty"`
|
||||
To uint64 `protobuf:"varint,3,opt,name=to,proto3" json:"to,omitempty"`
|
||||
ContentTopic [][]byte `protobuf:"bytes,4,rep,name=contentTopic,proto3" json:"contentTopic,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *WakuMessageArchiveMetadata) Reset() { *m = WakuMessageArchiveMetadata{} }
|
||||
func (m *WakuMessageArchiveMetadata) String() string { return proto.CompactTextString(m) }
|
||||
func (*WakuMessageArchiveMetadata) ProtoMessage() {}
|
||||
func (*WakuMessageArchiveMetadata) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_f937943d74c1cd8b, []int{11}
|
||||
}
|
||||
|
||||
func (m *WakuMessageArchiveMetadata) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_WakuMessageArchiveMetadata.Unmarshal(m, b)
|
||||
}
|
||||
func (m *WakuMessageArchiveMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_WakuMessageArchiveMetadata.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *WakuMessageArchiveMetadata) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_WakuMessageArchiveMetadata.Merge(m, src)
|
||||
}
|
||||
func (m *WakuMessageArchiveMetadata) XXX_Size() int {
|
||||
return xxx_messageInfo_WakuMessageArchiveMetadata.Size(m)
|
||||
}
|
||||
func (m *WakuMessageArchiveMetadata) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_WakuMessageArchiveMetadata.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_WakuMessageArchiveMetadata proto.InternalMessageInfo
|
||||
|
||||
func (m *WakuMessageArchiveMetadata) GetVersion() uint32 {
|
||||
if m != nil {
|
||||
return m.Version
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *WakuMessageArchiveMetadata) GetFrom() uint64 {
|
||||
if m != nil {
|
||||
return m.From
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *WakuMessageArchiveMetadata) GetTo() uint64 {
|
||||
if m != nil {
|
||||
return m.To
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *WakuMessageArchiveMetadata) GetContentTopic() [][]byte {
|
||||
if m != nil {
|
||||
return m.ContentTopic
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type WakuMessageArchive struct {
|
||||
Version uint32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`
|
||||
Metadata *WakuMessageArchiveMetadata `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata,omitempty"`
|
||||
Messages []*WakuMessage `protobuf:"bytes,3,rep,name=messages,proto3" json:"messages,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *WakuMessageArchive) Reset() { *m = WakuMessageArchive{} }
|
||||
func (m *WakuMessageArchive) String() string { return proto.CompactTextString(m) }
|
||||
func (*WakuMessageArchive) ProtoMessage() {}
|
||||
func (*WakuMessageArchive) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_f937943d74c1cd8b, []int{12}
|
||||
}
|
||||
|
||||
func (m *WakuMessageArchive) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_WakuMessageArchive.Unmarshal(m, b)
|
||||
}
|
||||
func (m *WakuMessageArchive) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_WakuMessageArchive.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *WakuMessageArchive) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_WakuMessageArchive.Merge(m, src)
|
||||
}
|
||||
func (m *WakuMessageArchive) XXX_Size() int {
|
||||
return xxx_messageInfo_WakuMessageArchive.Size(m)
|
||||
}
|
||||
func (m *WakuMessageArchive) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_WakuMessageArchive.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_WakuMessageArchive proto.InternalMessageInfo
|
||||
|
||||
func (m *WakuMessageArchive) GetVersion() uint32 {
|
||||
if m != nil {
|
||||
return m.Version
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *WakuMessageArchive) GetMetadata() *WakuMessageArchiveMetadata {
|
||||
if m != nil {
|
||||
return m.Metadata
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *WakuMessageArchive) GetMessages() []*WakuMessage {
|
||||
if m != nil {
|
||||
return m.Messages
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type WakuMessageArchiveIndexMetadata struct {
|
||||
Version uint32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`
|
||||
Metadata *WakuMessageArchiveMetadata `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata,omitempty"`
|
||||
Offset uint64 `protobuf:"varint,3,opt,name=offset,proto3" json:"offset,omitempty"`
|
||||
Size uint64 `protobuf:"varint,4,opt,name=size,proto3" json:"size,omitempty"`
|
||||
Padding uint64 `protobuf:"varint,5,opt,name=padding,proto3" json:"padding,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *WakuMessageArchiveIndexMetadata) Reset() { *m = WakuMessageArchiveIndexMetadata{} }
|
||||
func (m *WakuMessageArchiveIndexMetadata) String() string { return proto.CompactTextString(m) }
|
||||
func (*WakuMessageArchiveIndexMetadata) ProtoMessage() {}
|
||||
func (*WakuMessageArchiveIndexMetadata) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_f937943d74c1cd8b, []int{13}
|
||||
}
|
||||
|
||||
func (m *WakuMessageArchiveIndexMetadata) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_WakuMessageArchiveIndexMetadata.Unmarshal(m, b)
|
||||
}
|
||||
func (m *WakuMessageArchiveIndexMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_WakuMessageArchiveIndexMetadata.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *WakuMessageArchiveIndexMetadata) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_WakuMessageArchiveIndexMetadata.Merge(m, src)
|
||||
}
|
||||
func (m *WakuMessageArchiveIndexMetadata) XXX_Size() int {
|
||||
return xxx_messageInfo_WakuMessageArchiveIndexMetadata.Size(m)
|
||||
}
|
||||
func (m *WakuMessageArchiveIndexMetadata) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_WakuMessageArchiveIndexMetadata.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_WakuMessageArchiveIndexMetadata proto.InternalMessageInfo
|
||||
|
||||
func (m *WakuMessageArchiveIndexMetadata) GetVersion() uint32 {
|
||||
if m != nil {
|
||||
return m.Version
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *WakuMessageArchiveIndexMetadata) GetMetadata() *WakuMessageArchiveMetadata {
|
||||
if m != nil {
|
||||
return m.Metadata
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *WakuMessageArchiveIndexMetadata) GetOffset() uint64 {
|
||||
if m != nil {
|
||||
return m.Offset
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *WakuMessageArchiveIndexMetadata) GetSize() uint64 {
|
||||
if m != nil {
|
||||
return m.Size
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *WakuMessageArchiveIndexMetadata) GetPadding() uint64 {
|
||||
if m != nil {
|
||||
return m.Padding
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
type WakuMessageArchiveIndex struct {
|
||||
Archives map[string]*WakuMessageArchiveIndexMetadata `protobuf:"bytes,1,rep,name=archives,proto3" json:"archives,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *WakuMessageArchiveIndex) Reset() { *m = WakuMessageArchiveIndex{} }
|
||||
func (m *WakuMessageArchiveIndex) String() string { return proto.CompactTextString(m) }
|
||||
func (*WakuMessageArchiveIndex) ProtoMessage() {}
|
||||
func (*WakuMessageArchiveIndex) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_f937943d74c1cd8b, []int{14}
|
||||
}
|
||||
|
||||
func (m *WakuMessageArchiveIndex) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_WakuMessageArchiveIndex.Unmarshal(m, b)
|
||||
}
|
||||
func (m *WakuMessageArchiveIndex) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_WakuMessageArchiveIndex.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *WakuMessageArchiveIndex) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_WakuMessageArchiveIndex.Merge(m, src)
|
||||
}
|
||||
func (m *WakuMessageArchiveIndex) XXX_Size() int {
|
||||
return xxx_messageInfo_WakuMessageArchiveIndex.Size(m)
|
||||
}
|
||||
func (m *WakuMessageArchiveIndex) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_WakuMessageArchiveIndex.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_WakuMessageArchiveIndex proto.InternalMessageInfo
|
||||
|
||||
func (m *WakuMessageArchiveIndex) GetArchives() map[string]*WakuMessageArchiveIndexMetadata {
|
||||
if m != nil {
|
||||
return m.Archives
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func init() {
|
||||
proto.RegisterEnum("protobuf.CommunityMember_Roles", CommunityMember_Roles_name, CommunityMember_Roles_value)
|
||||
proto.RegisterEnum("protobuf.CommunityPermissions_Access", CommunityPermissions_Access_name, CommunityPermissions_Access_value)
|
||||
|
@ -655,64 +1017,92 @@ func init() {
|
|||
proto.RegisterType((*CommunityInvitation)(nil), "protobuf.CommunityInvitation")
|
||||
proto.RegisterType((*CommunityRequestToJoin)(nil), "protobuf.CommunityRequestToJoin")
|
||||
proto.RegisterType((*CommunityRequestToJoinResponse)(nil), "protobuf.CommunityRequestToJoinResponse")
|
||||
proto.RegisterType((*CommunityMessageArchiveMagnetlink)(nil), "protobuf.CommunityMessageArchiveMagnetlink")
|
||||
proto.RegisterType((*WakuMessage)(nil), "protobuf.WakuMessage")
|
||||
proto.RegisterType((*WakuMessageArchiveMetadata)(nil), "protobuf.WakuMessageArchiveMetadata")
|
||||
proto.RegisterType((*WakuMessageArchive)(nil), "protobuf.WakuMessageArchive")
|
||||
proto.RegisterType((*WakuMessageArchiveIndexMetadata)(nil), "protobuf.WakuMessageArchiveIndexMetadata")
|
||||
proto.RegisterType((*WakuMessageArchiveIndex)(nil), "protobuf.WakuMessageArchiveIndex")
|
||||
proto.RegisterMapType((map[string]*WakuMessageArchiveIndexMetadata)(nil), "protobuf.WakuMessageArchiveIndex.ArchivesEntry")
|
||||
}
|
||||
|
||||
func init() { proto.RegisterFile("communities.proto", fileDescriptor_f937943d74c1cd8b) }
|
||||
|
||||
var fileDescriptor_f937943d74c1cd8b = []byte{
|
||||
// 859 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0x6d, 0x8f, 0xdb, 0x44,
|
||||
0x10, 0xee, 0x26, 0x71, 0xe2, 0x4c, 0x72, 0x77, 0xbe, 0xbd, 0x6b, 0xeb, 0x5e, 0x45, 0x1b, 0x2c,
|
||||
0x90, 0x82, 0x10, 0xa9, 0x48, 0x85, 0x84, 0x78, 0x29, 0xa4, 0x87, 0x55, 0x4c, 0x73, 0x4e, 0xbb,
|
||||
0xc9, 0x81, 0xe8, 0x17, 0xcb, 0x71, 0x96, 0xb2, 0x6a, 0x62, 0x1b, 0xaf, 0x73, 0x52, 0x7e, 0x00,
|
||||
0x12, 0x3f, 0x01, 0x89, 0xef, 0xfc, 0x27, 0xbe, 0xf1, 0x53, 0xd0, 0xee, 0xc6, 0x2f, 0xc9, 0x25,
|
||||
0x6d, 0x25, 0xd4, 0x4f, 0xf1, 0xec, 0xee, 0x3c, 0xf3, 0xcc, 0x33, 0x93, 0x19, 0x38, 0x0e, 0xa2,
|
||||
0xc5, 0x62, 0x19, 0xb2, 0x94, 0x51, 0xde, 0x8b, 0x93, 0x28, 0x8d, 0xb0, 0x2e, 0x7f, 0xa6, 0xcb,
|
||||
0x5f, 0xce, 0x4e, 0x82, 0x5f, 0xfd, 0xd4, 0x63, 0x33, 0x1a, 0xa6, 0x2c, 0x5d, 0xa9, 0x6b, 0xeb,
|
||||
0x0a, 0xb4, 0x27, 0x89, 0x1f, 0xa6, 0xf8, 0x7d, 0x68, 0x67, 0xce, 0x2b, 0x8f, 0xcd, 0x4c, 0xd4,
|
||||
0x41, 0xdd, 0x36, 0x69, 0xe5, 0x67, 0xce, 0x0c, 0xdf, 0x85, 0xe6, 0x82, 0x2e, 0xa6, 0x34, 0x11,
|
||||
0xf7, 0x15, 0x79, 0xaf, 0xab, 0x03, 0x67, 0x86, 0x6f, 0x43, 0x63, 0x8d, 0x6f, 0x56, 0x3b, 0xa8,
|
||||
0xdb, 0x24, 0x75, 0x61, 0x3a, 0x33, 0x7c, 0x0a, 0x5a, 0x30, 0x8f, 0x82, 0x57, 0x66, 0xad, 0x83,
|
||||
0xba, 0x35, 0xa2, 0x0c, 0xeb, 0x0f, 0x04, 0x47, 0xe7, 0x19, 0xf6, 0x85, 0x04, 0xc1, 0x9f, 0x81,
|
||||
0x96, 0x44, 0x73, 0xca, 0x4d, 0xd4, 0xa9, 0x76, 0x0f, 0xfb, 0xf7, 0x7b, 0x19, 0xf5, 0xde, 0xd6,
|
||||
0xcb, 0x1e, 0x11, 0xcf, 0x88, 0x7a, 0x6d, 0x3d, 0x02, 0x4d, 0xda, 0xd8, 0x80, 0xf6, 0xa5, 0xfb,
|
||||
0xd4, 0x1d, 0xfd, 0xe4, 0x7a, 0x64, 0x34, 0xb4, 0x8d, 0x1b, 0xb8, 0x0d, 0xba, 0xf8, 0xf2, 0x06,
|
||||
0xc3, 0xa1, 0x81, 0xf0, 0x4d, 0x38, 0x96, 0xd6, 0xc5, 0xc0, 0x1d, 0x3c, 0xb1, 0xbd, 0xcb, 0xb1,
|
||||
0x4d, 0xc6, 0x46, 0xc5, 0xfa, 0x17, 0xc1, 0x69, 0x1e, 0xe0, 0x19, 0x4d, 0x16, 0x8c, 0x73, 0x16,
|
||||
0x85, 0x1c, 0xdf, 0x01, 0x9d, 0x86, 0xdc, 0x8b, 0xc2, 0xf9, 0x4a, 0xca, 0xa1, 0x93, 0x06, 0x0d,
|
||||
0xf9, 0x28, 0x9c, 0xaf, 0xb0, 0x09, 0x8d, 0x38, 0x61, 0x57, 0x7e, 0x4a, 0xa5, 0x10, 0x3a, 0xc9,
|
||||
0x4c, 0xfc, 0x35, 0xd4, 0xfd, 0x20, 0xa0, 0x9c, 0x4b, 0x19, 0x0e, 0xfb, 0x1f, 0xee, 0xc8, 0xa2,
|
||||
0x14, 0xa4, 0x37, 0x90, 0x8f, 0xc9, 0xda, 0xc9, 0x9a, 0x40, 0x5d, 0x9d, 0x60, 0x0c, 0x87, 0x59,
|
||||
0x36, 0x83, 0xf3, 0x73, 0x7b, 0x3c, 0x36, 0x6e, 0xe0, 0x63, 0x38, 0x70, 0x47, 0xde, 0x85, 0x7d,
|
||||
0xf1, 0xd8, 0x26, 0xe3, 0xef, 0x9d, 0x67, 0x06, 0xc2, 0x27, 0x70, 0xe4, 0xb8, 0x3f, 0x3a, 0x93,
|
||||
0xc1, 0xc4, 0x19, 0xb9, 0xde, 0xc8, 0x1d, 0xfe, 0x6c, 0x54, 0xf0, 0x21, 0xc0, 0xc8, 0xf5, 0x88,
|
||||
0xfd, 0xfc, 0xd2, 0x1e, 0x4f, 0x8c, 0xaa, 0xf5, 0x97, 0x56, 0x4a, 0xf1, 0x3b, 0xca, 0x83, 0x84,
|
||||
0xc5, 0x29, 0x8b, 0xc2, 0xa2, 0x38, 0xa8, 0x54, 0x1c, 0x6c, 0x43, 0x43, 0xd5, 0x95, 0x9b, 0x95,
|
||||
0x4e, 0xb5, 0xdb, 0xea, 0x7f, 0xbc, 0x23, 0x89, 0x12, 0x4c, 0x4f, 0x95, 0x85, 0xdb, 0x61, 0x9a,
|
||||
0xac, 0x48, 0xe6, 0x8b, 0xbf, 0x85, 0x56, 0x5c, 0x64, 0x2a, 0xf5, 0x68, 0xf5, 0xef, 0xbd, 0x5e,
|
||||
0x0f, 0x52, 0x76, 0xc1, 0x7d, 0xd0, 0xb3, 0x7e, 0x35, 0x35, 0xe9, 0x7e, 0xab, 0xe4, 0x2e, 0xfb,
|
||||
0x4b, 0xdd, 0x92, 0xfc, 0x1d, 0xfe, 0x06, 0x34, 0xd1, 0x79, 0xdc, 0xac, 0x4b, 0xea, 0x1f, 0xbd,
|
||||
0x81, 0xba, 0x40, 0x59, 0x13, 0x57, 0x7e, 0xa2, 0xec, 0x53, 0x3f, 0xf4, 0xe6, 0x8c, 0xa7, 0x66,
|
||||
0xa3, 0x53, 0xed, 0x36, 0x49, 0x63, 0xea, 0x87, 0x43, 0xc6, 0x53, 0xec, 0x02, 0x04, 0x7e, 0x4a,
|
||||
0x5f, 0x46, 0x09, 0xa3, 0xdc, 0xd4, 0x65, 0x80, 0xde, 0x9b, 0x02, 0xe4, 0x0e, 0x2a, 0x4a, 0x09,
|
||||
0xe1, 0xec, 0x12, 0xda, 0x65, 0xe9, 0xb0, 0x01, 0xd5, 0x57, 0x54, 0x35, 0x5b, 0x93, 0x88, 0x4f,
|
||||
0xfc, 0x00, 0xb4, 0x2b, 0x7f, 0xbe, 0x54, 0x6d, 0xd6, 0xea, 0xdf, 0xd9, 0xfb, 0x9f, 0x20, 0xea,
|
||||
0xdd, 0x17, 0x95, 0xcf, 0xd1, 0xd9, 0x73, 0x80, 0x22, 0xad, 0x1d, 0xa0, 0x9f, 0x6c, 0x82, 0xde,
|
||||
0xde, 0x01, 0x2a, 0xfc, 0xcb, 0x90, 0x2f, 0xe0, 0x68, 0x2b, 0x91, 0x1d, 0xb8, 0x9f, 0x6e, 0xe2,
|
||||
0xde, 0xdd, 0x85, 0xab, 0x40, 0x56, 0x25, 0x6c, 0xeb, 0x9f, 0x0a, 0x1c, 0x6c, 0x04, 0xc6, 0x8f,
|
||||
0x8a, 0x06, 0x44, 0x52, 0xe4, 0x0f, 0xf6, 0x50, 0x7c, 0xbb, 0xce, 0xab, 0xfc, 0xbf, 0xce, 0xab,
|
||||
0xbe, 0x65, 0xe7, 0xdd, 0x87, 0xd6, 0xba, 0xb6, 0x72, 0x82, 0xd6, 0xa4, 0x30, 0x59, 0xb9, 0xc5,
|
||||
0x00, 0x3d, 0x03, 0x3d, 0x8e, 0x38, 0x13, 0x6d, 0x21, 0xdb, 0x59, 0x23, 0xb9, 0xfd, 0x8e, 0x5a,
|
||||
0xc1, 0x9a, 0xc1, 0xf1, 0x35, 0xed, 0xb7, 0x89, 0xa2, 0x6b, 0x44, 0x31, 0xd4, 0x42, 0x7f, 0xa1,
|
||||
0x22, 0x35, 0x89, 0xfc, 0xde, 0x20, 0x5f, 0xdd, 0x24, 0x6f, 0xfd, 0x89, 0xe0, 0x24, 0x0f, 0xe3,
|
||||
0x84, 0x57, 0x2c, 0xf5, 0xe5, 0x78, 0x79, 0x08, 0x37, 0x8b, 0xa5, 0x32, 0x2b, 0xfe, 0x14, 0xeb,
|
||||
0xed, 0x72, 0x1a, 0xec, 0x99, 0x49, 0x2f, 0xc5, 0x4a, 0x5a, 0xaf, 0x18, 0x65, 0xec, 0xdf, 0x2f,
|
||||
0xef, 0x01, 0xc4, 0xcb, 0xe9, 0x9c, 0x05, 0x9e, 0xd0, 0xab, 0x26, 0x7d, 0x9a, 0xea, 0xe4, 0x29,
|
||||
0x5d, 0x59, 0xbf, 0x23, 0xb8, 0x95, 0x53, 0x23, 0xf4, 0xb7, 0x25, 0xe5, 0xe9, 0x24, 0xfa, 0x21,
|
||||
0x62, 0xfb, 0x86, 0xdf, 0x7a, 0xea, 0x97, 0xf2, 0x17, 0x53, 0xdf, 0x15, 0x12, 0xec, 0xe5, 0xb0,
|
||||
0xbd, 0x3c, 0x6b, 0xd7, 0x96, 0xa7, 0xf5, 0x37, 0x82, 0x7b, 0xbb, 0x79, 0x10, 0xca, 0xe3, 0x28,
|
||||
0xe4, 0x74, 0x0f, 0x9f, 0xaf, 0xa0, 0x99, 0xe3, 0xbc, 0xa6, 0x93, 0x4b, 0x0a, 0x92, 0xc2, 0x41,
|
||||
0x54, 0x4d, 0x6c, 0x96, 0x38, 0xa5, 0x8a, 0xb3, 0x4e, 0x72, 0xbb, 0x10, 0xba, 0x56, 0x12, 0xfa,
|
||||
0xf1, 0xc1, 0x8b, 0x56, 0xef, 0xc1, 0x97, 0x59, 0x80, 0x69, 0x5d, 0x7e, 0x3d, 0xfc, 0x2f, 0x00,
|
||||
0x00, 0xff, 0xff, 0x49, 0xd3, 0x7e, 0x3e, 0x5b, 0x08, 0x00, 0x00,
|
||||
// 1187 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0x5d, 0x6f, 0x1a, 0x47,
|
||||
0x17, 0xce, 0xf2, 0xb9, 0x1c, 0xb0, 0x83, 0x27, 0xfe, 0xd8, 0x90, 0x37, 0x31, 0x59, 0xbd, 0x95,
|
||||
0x88, 0xaa, 0x62, 0x85, 0xa8, 0x52, 0xd4, 0x8f, 0x24, 0xc4, 0x45, 0x29, 0xb5, 0x0d, 0xc9, 0x80,
|
||||
0x9b, 0x36, 0x37, 0xab, 0x65, 0x19, 0xe3, 0x91, 0x61, 0x97, 0xee, 0x0c, 0xa8, 0xf4, 0xa2, 0x77,
|
||||
0x95, 0xfa, 0x13, 0x2a, 0xf5, 0xb2, 0x52, 0xff, 0x48, 0xef, 0x7b, 0xd7, 0x8b, 0xde, 0xf5, 0xa7,
|
||||
0x54, 0x33, 0xb3, 0xbb, 0x2c, 0x18, 0x6c, 0x4b, 0x51, 0xaf, 0x98, 0x33, 0x33, 0xe7, 0x99, 0xe7,
|
||||
0x9c, 0xf3, 0xec, 0x39, 0xc0, 0x96, 0xe3, 0x8d, 0x46, 0x13, 0x97, 0x72, 0x4a, 0x58, 0x75, 0xec,
|
||||
0x7b, 0xdc, 0x43, 0xba, 0xfc, 0xe9, 0x4d, 0xce, 0x4a, 0x77, 0x9c, 0x73, 0x9b, 0x5b, 0xb4, 0x4f,
|
||||
0x5c, 0x4e, 0xf9, 0x4c, 0x1d, 0x9b, 0x53, 0x48, 0xbf, 0xf2, 0x6d, 0x97, 0xa3, 0x87, 0x50, 0x08,
|
||||
0x9d, 0x67, 0x16, 0xed, 0x1b, 0x5a, 0x59, 0xab, 0x14, 0x70, 0x3e, 0xda, 0x6b, 0xf6, 0xd1, 0x3d,
|
||||
0xc8, 0x8d, 0xc8, 0xa8, 0x47, 0x7c, 0x71, 0x9e, 0x90, 0xe7, 0xba, 0xda, 0x68, 0xf6, 0xd1, 0x1e,
|
||||
0x64, 0x03, 0x7c, 0x23, 0x59, 0xd6, 0x2a, 0x39, 0x9c, 0x11, 0x66, 0xb3, 0x8f, 0xb6, 0x21, 0xed,
|
||||
0x0c, 0x3d, 0xe7, 0xc2, 0x48, 0x95, 0xb5, 0x4a, 0x0a, 0x2b, 0xc3, 0xfc, 0x59, 0x83, 0xdb, 0x87,
|
||||
0x21, 0xf6, 0x89, 0x04, 0x41, 0x1f, 0x43, 0xda, 0xf7, 0x86, 0x84, 0x19, 0x5a, 0x39, 0x59, 0xd9,
|
||||
0xac, 0xed, 0x57, 0x43, 0xea, 0xd5, 0xa5, 0x9b, 0x55, 0x2c, 0xae, 0x61, 0x75, 0xdb, 0x7c, 0x06,
|
||||
0x69, 0x69, 0xa3, 0x22, 0x14, 0x4e, 0x5b, 0x47, 0xad, 0xf6, 0xdb, 0x96, 0x85, 0xdb, 0xc7, 0x8d,
|
||||
0xe2, 0x2d, 0x54, 0x00, 0x5d, 0xac, 0xac, 0xfa, 0xf1, 0x71, 0x51, 0x43, 0x3b, 0xb0, 0x25, 0xad,
|
||||
0x93, 0x7a, 0xab, 0xfe, 0xaa, 0x61, 0x9d, 0x76, 0x1a, 0xb8, 0x53, 0x4c, 0x98, 0xff, 0x68, 0xb0,
|
||||
0x1d, 0x3d, 0xf0, 0x9a, 0xf8, 0x23, 0xca, 0x18, 0xf5, 0x5c, 0x86, 0xee, 0x82, 0x4e, 0x5c, 0x66,
|
||||
0x79, 0xee, 0x70, 0x26, 0xd3, 0xa1, 0xe3, 0x2c, 0x71, 0x59, 0xdb, 0x1d, 0xce, 0x90, 0x01, 0xd9,
|
||||
0xb1, 0x4f, 0xa7, 0x36, 0x27, 0x32, 0x11, 0x3a, 0x0e, 0x4d, 0xf4, 0x39, 0x64, 0x6c, 0xc7, 0x21,
|
||||
0x8c, 0xc9, 0x34, 0x6c, 0xd6, 0x3e, 0x58, 0x11, 0x45, 0xec, 0x91, 0x6a, 0x5d, 0x5e, 0xc6, 0x81,
|
||||
0x93, 0xd9, 0x85, 0x8c, 0xda, 0x41, 0x08, 0x36, 0xc3, 0x68, 0xea, 0x87, 0x87, 0x8d, 0x4e, 0xa7,
|
||||
0x78, 0x0b, 0x6d, 0xc1, 0x46, 0xab, 0x6d, 0x9d, 0x34, 0x4e, 0x5e, 0x36, 0x70, 0xe7, 0xcb, 0xe6,
|
||||
0xeb, 0xa2, 0x86, 0xee, 0xc0, 0xed, 0x66, 0xeb, 0xeb, 0x66, 0xb7, 0xde, 0x6d, 0xb6, 0x5b, 0x56,
|
||||
0xbb, 0x75, 0xfc, 0x6d, 0x31, 0x81, 0x36, 0x01, 0xda, 0x2d, 0x0b, 0x37, 0xde, 0x9c, 0x36, 0x3a,
|
||||
0xdd, 0x62, 0xd2, 0xfc, 0x2b, 0x1d, 0x0b, 0xf1, 0x0b, 0xc2, 0x1c, 0x9f, 0x8e, 0x39, 0xf5, 0xdc,
|
||||
0x79, 0x71, 0xb4, 0x58, 0x71, 0x50, 0x03, 0xb2, 0xaa, 0xae, 0xcc, 0x48, 0x94, 0x93, 0x95, 0x7c,
|
||||
0xed, 0xc3, 0x15, 0x41, 0xc4, 0x60, 0xaa, 0xaa, 0x2c, 0xac, 0xe1, 0x72, 0x7f, 0x86, 0x43, 0x5f,
|
||||
0xf4, 0x02, 0xf2, 0xe3, 0x79, 0xa4, 0x32, 0x1f, 0xf9, 0xda, 0x83, 0xab, 0xf3, 0x81, 0xe3, 0x2e,
|
||||
0xa8, 0x06, 0x7a, 0xa8, 0x57, 0x23, 0x2d, 0xdd, 0x77, 0x63, 0xee, 0x52, 0x5f, 0xea, 0x14, 0x47,
|
||||
0xf7, 0xd0, 0x73, 0x48, 0x0b, 0xe5, 0x31, 0x23, 0x23, 0xa9, 0x3f, 0xba, 0x86, 0xba, 0x40, 0x09,
|
||||
0x88, 0x2b, 0x3f, 0x51, 0xf6, 0x9e, 0xed, 0x5a, 0x43, 0xca, 0xb8, 0x91, 0x2d, 0x27, 0x2b, 0x39,
|
||||
0x9c, 0xed, 0xd9, 0xee, 0x31, 0x65, 0x1c, 0xb5, 0x00, 0x1c, 0x9b, 0x93, 0x81, 0xe7, 0x53, 0xc2,
|
||||
0x0c, 0x5d, 0x3e, 0x50, 0xbd, 0xee, 0x81, 0xc8, 0x41, 0xbd, 0x12, 0x43, 0x40, 0x4f, 0xc1, 0xb0,
|
||||
0x7d, 0xe7, 0x9c, 0x4e, 0x89, 0x35, 0xb2, 0x07, 0x2e, 0xe1, 0x43, 0xea, 0x5e, 0x58, 0xaa, 0x22,
|
||||
0x39, 0x59, 0x91, 0xdd, 0xe0, 0xfc, 0x24, 0x3a, 0x3e, 0x14, 0xa7, 0xa5, 0x53, 0x28, 0xc4, 0x93,
|
||||
0x8e, 0x8a, 0x90, 0xbc, 0x20, 0x4a, 0xa6, 0x39, 0x2c, 0x96, 0xe8, 0x00, 0xd2, 0x53, 0x7b, 0x38,
|
||||
0x51, 0x02, 0xcd, 0xd7, 0xee, 0xae, 0xfd, 0x9a, 0xb0, 0xba, 0xf7, 0x49, 0xe2, 0xa9, 0x56, 0x7a,
|
||||
0x03, 0x30, 0x4f, 0xc8, 0x0a, 0xd0, 0x8f, 0x16, 0x41, 0xf7, 0x56, 0x80, 0x0a, 0xff, 0x38, 0xe4,
|
||||
0x3b, 0xb8, 0xbd, 0x94, 0x82, 0x15, 0xb8, 0x8f, 0x17, 0x71, 0xef, 0xad, 0xc2, 0x55, 0x20, 0xb3,
|
||||
0x18, 0xb6, 0xf9, 0x77, 0x02, 0x36, 0x16, 0x1e, 0x46, 0xcf, 0xe6, 0xd2, 0xd5, 0x64, 0x79, 0xfe,
|
||||
0xbf, 0x86, 0xe2, 0xcd, 0x34, 0x9b, 0x78, 0x3f, 0xcd, 0x26, 0x6f, 0xa8, 0xd9, 0x7d, 0xc8, 0x07,
|
||||
0xaa, 0x90, 0xbd, 0x37, 0x25, 0x13, 0x13, 0x0a, 0x45, 0xb4, 0xde, 0x12, 0xe8, 0x63, 0x8f, 0x51,
|
||||
0x21, 0x28, 0xf9, 0x21, 0xa4, 0x71, 0x64, 0xff, 0x47, 0x52, 0x30, 0xfb, 0xb0, 0x75, 0x29, 0xf7,
|
||||
0xcb, 0x44, 0xb5, 0x4b, 0x44, 0x11, 0xa4, 0x5c, 0x7b, 0xa4, 0x5e, 0xca, 0x61, 0xb9, 0x5e, 0x20,
|
||||
0x9f, 0x5c, 0x24, 0x6f, 0xfe, 0xa2, 0xc1, 0x9d, 0xe8, 0x99, 0xa6, 0x3b, 0xa5, 0xdc, 0x96, 0x8d,
|
||||
0xe9, 0x09, 0xec, 0xcc, 0xc7, 0x51, 0x7f, 0xfe, 0x39, 0x05, 0x73, 0x69, 0xdb, 0x59, 0xd3, 0xcd,
|
||||
0x06, 0x62, 0x98, 0x05, 0xc3, 0x49, 0x19, 0xeb, 0x27, 0xd3, 0x7d, 0x80, 0xf1, 0xa4, 0x37, 0xa4,
|
||||
0x8e, 0x25, 0xf2, 0x95, 0x92, 0x3e, 0x39, 0xb5, 0x73, 0x44, 0x66, 0xe6, 0x4f, 0x1a, 0xec, 0x46,
|
||||
0xd4, 0x30, 0xf9, 0x6e, 0x42, 0x18, 0xef, 0x7a, 0x5f, 0x79, 0x74, 0x5d, 0xdb, 0x0c, 0xe6, 0x45,
|
||||
0x2c, 0x7e, 0x31, 0x2f, 0x5a, 0x22, 0x05, 0x6b, 0x39, 0x2c, 0x8f, 0xdd, 0xd4, 0xa5, 0xb1, 0x6b,
|
||||
0xfe, 0xae, 0xc1, 0x83, 0xd5, 0x3c, 0x30, 0x61, 0x63, 0xcf, 0x65, 0x64, 0x0d, 0x9f, 0xcf, 0x20,
|
||||
0x17, 0xe1, 0x5c, 0xa1, 0xe4, 0x58, 0x06, 0xf1, 0xdc, 0x41, 0x54, 0x4d, 0xcc, 0xa4, 0x31, 0x27,
|
||||
0x8a, 0xb3, 0x8e, 0x23, 0x7b, 0x9e, 0xe8, 0x54, 0x2c, 0xd1, 0xe6, 0x37, 0xf0, 0x30, 0xa6, 0x27,
|
||||
0xc6, 0xec, 0x01, 0xa9, 0x2f, 0x77, 0xaf, 0x35, 0x54, 0xef, 0x03, 0xa8, 0x06, 0x68, 0x4d, 0x7c,
|
||||
0x1a, 0x24, 0x2f, 0xa7, 0x76, 0x4e, 0x7d, 0x6a, 0xfe, 0xaa, 0x41, 0xfe, 0xad, 0x7d, 0x31, 0x09,
|
||||
0x50, 0x85, 0xc4, 0x19, 0x1d, 0x04, 0x5a, 0x10, 0x4b, 0xf4, 0x3f, 0xc8, 0x71, 0x3a, 0x22, 0x8c,
|
||||
0xdb, 0xa3, 0xb1, 0xf4, 0x4f, 0xe1, 0xf9, 0x86, 0x78, 0x94, 0x7b, 0x63, 0xea, 0xc8, 0x40, 0x0a,
|
||||
0x58, 0x19, 0x72, 0x88, 0xdb, 0xb3, 0xa1, 0x67, 0x87, 0x69, 0x0f, 0x4d, 0x75, 0xd2, 0xef, 0x53,
|
||||
0x77, 0x20, 0xbf, 0x36, 0x79, 0x22, 0x4d, 0xa1, 0xef, 0x73, 0x9b, 0x9d, 0x1b, 0x19, 0xb9, 0x2d,
|
||||
0xd7, 0xe6, 0x8f, 0x50, 0x8a, 0x91, 0x0b, 0x43, 0x26, 0xdc, 0xee, 0xdb, 0xdc, 0x16, 0x58, 0x53,
|
||||
0xe2, 0xb3, 0x50, 0xbb, 0x1b, 0x38, 0x34, 0x05, 0xd6, 0x99, 0xef, 0x8d, 0x02, 0xba, 0x72, 0x8d,
|
||||
0x36, 0x21, 0xc1, 0x3d, 0x49, 0x33, 0x85, 0x13, 0xdc, 0x43, 0xa6, 0xd0, 0x87, 0xcb, 0x89, 0xcb,
|
||||
0xbb, 0x32, 0x80, 0x54, 0x39, 0x59, 0x29, 0xe0, 0x85, 0x3d, 0xf3, 0x37, 0x0d, 0xd0, 0x65, 0x02,
|
||||
0x57, 0x3c, 0xfc, 0x02, 0xf4, 0x51, 0x40, 0x2f, 0xd0, 0x45, 0xac, 0x4b, 0xae, 0x0f, 0x05, 0x47,
|
||||
0x5e, 0xe8, 0xb1, 0x40, 0x90, 0x77, 0xc4, 0x5c, 0x17, 0x7d, 0x76, 0x67, 0x25, 0x02, 0x8e, 0xae,
|
||||
0x99, 0x7f, 0x68, 0xb0, 0x7f, 0x19, 0xbb, 0xe9, 0xf6, 0xc9, 0xf7, 0x37, 0xc8, 0xd5, 0xfb, 0x53,
|
||||
0xde, 0x85, 0x8c, 0x77, 0x76, 0xc6, 0x08, 0x0f, 0xb2, 0x1b, 0x58, 0xa2, 0x0a, 0x8c, 0xfe, 0x40,
|
||||
0x82, 0xbf, 0xa7, 0x72, 0xbd, 0x5c, 0xff, 0x54, 0x54, 0x7f, 0xf3, 0x4f, 0x0d, 0xf6, 0xd6, 0x44,
|
||||
0x81, 0x8e, 0x40, 0x0f, 0xa6, 0x75, 0x38, 0x7c, 0x0e, 0xae, 0xe2, 0x28, 0x9d, 0xaa, 0x81, 0x11,
|
||||
0xcc, 0xa1, 0x08, 0xa0, 0x74, 0x06, 0x1b, 0x0b, 0x47, 0x2b, 0xda, 0xfa, 0xf3, 0xc5, 0xb6, 0xfe,
|
||||
0xe8, 0xda, 0xc7, 0xa2, 0xac, 0xcc, 0xdb, 0xfc, 0xcb, 0x8d, 0x77, 0xf9, 0xea, 0xc1, 0xa7, 0xa1,
|
||||
0x67, 0x2f, 0x23, 0x57, 0x4f, 0xfe, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x8f, 0xe0, 0x31, 0x48, 0x4a,
|
||||
0x0c, 0x00, 0x00,
|
||||
}
|
||||
|
|
|
@ -43,6 +43,7 @@ message CommunityDescription {
|
|||
map<string,CommunityChat> chats = 6;
|
||||
repeated string ban_list = 7;
|
||||
map<string,CommunityCategory> categories = 8;
|
||||
uint64 archive_magnetlink_clock = 9;
|
||||
}
|
||||
|
||||
message CommunityChat {
|
||||
|
@ -79,3 +80,42 @@ message CommunityRequestToJoinResponse {
|
|||
bool accepted = 3;
|
||||
bytes grant = 4;
|
||||
}
|
||||
|
||||
message CommunityMessageArchiveMagnetlink {
|
||||
uint64 clock = 1;
|
||||
string magnet_uri = 2;
|
||||
}
|
||||
|
||||
message WakuMessage {
|
||||
bytes sig = 1;
|
||||
uint64 timestamp = 2;
|
||||
bytes topic = 3;
|
||||
bytes payload = 4;
|
||||
bytes padding = 5;
|
||||
bytes hash = 6;
|
||||
}
|
||||
|
||||
message WakuMessageArchiveMetadata {
|
||||
uint32 version = 1;
|
||||
uint64 from = 2;
|
||||
uint64 to = 3;
|
||||
repeated bytes contentTopic = 4;
|
||||
}
|
||||
|
||||
message WakuMessageArchive {
|
||||
uint32 version = 1;
|
||||
WakuMessageArchiveMetadata metadata = 2;
|
||||
repeated WakuMessage messages = 3;
|
||||
}
|
||||
|
||||
message WakuMessageArchiveIndexMetadata {
|
||||
uint32 version = 1;
|
||||
WakuMessageArchiveMetadata metadata = 2;
|
||||
uint64 offset = 3;
|
||||
uint64 size = 4;
|
||||
uint64 padding = 5;
|
||||
}
|
||||
|
||||
message WakuMessageArchiveIndex {
|
||||
map<string, WakuMessageArchiveIndexMetadata> archives = 1;
|
||||
}
|
||||
|
|
|
@ -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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1593601729_initial_schema.down.sql", size: 144, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1593601729_initial_schema.up.sql", size: 1773, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1597909626_add_server_type.down.sql", size: 0, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1597909626_add_server_type.up.sql", size: 145, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1599053776_add_chat_id_and_type.down.sql", size: 0, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1599053776_add_chat_id_and_type.up.sql", size: 264, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "doc.go", size: 382, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
|
|
@ -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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1593601728_initial_schema.down.sql", size: 200, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1593601728_initial_schema.up.sql", size: 675, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1598419937_add_push_notifications_table.down.sql", size: 51, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1598419937_add_push_notifications_table.up.sql", size: 104, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "doc.go", size: 382, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
|
|
@ -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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1561059284_add_waku_keys.down.sql", size: 22, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1561059284_add_waku_keys.up.sql", size: 109, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1616691080_add_wakuV2_keys.down.sql", size: 24, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1616691080_add_wakuV2_keys.up.sql", size: 111, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "1634723014_add_wakuV2_keys.up.sql", size: 125, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "doc.go", size: 373, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
|
|
@ -928,6 +928,14 @@ func (api *PublicAPI) GetCommunitiesSettings() ([]communities.CommunitySettings,
|
|||
return api.service.messenger.GetCommunitiesSettings()
|
||||
}
|
||||
|
||||
func (api *PublicAPI) EnableCommunityHistoryArchiveProtocol() error {
|
||||
return api.service.messenger.EnableCommunityHistoryArchiveProtocol()
|
||||
}
|
||||
|
||||
func (api *PublicAPI) DisableCommunityHistoryArchiveProtocol() error {
|
||||
return api.service.messenger.DisableCommunityHistoryArchiveProtocol()
|
||||
}
|
||||
|
||||
func (api *PublicAPI) AddStorePeer(address string) (string, error) {
|
||||
return api.service.messenger.AddStorePeer(address)
|
||||
}
|
||||
|
|
|
@ -86,3 +86,35 @@ func (m *MessengerSignalsHandler) HistoryRequestFailed(requestID string, err err
|
|||
func (m *MessengerSignalsHandler) HistoryRequestCompleted(requestID string) {
|
||||
signal.SendHistoricMessagesRequestCompleted(requestID)
|
||||
}
|
||||
|
||||
func (m *MessengerSignalsHandler) HistoryArchivesProtocolEnabled() {
|
||||
signal.SendHistoryArchivesProtocolEnabled()
|
||||
}
|
||||
|
||||
func (m *MessengerSignalsHandler) HistoryArchivesProtocolDisabled() {
|
||||
signal.SendHistoryArchivesProtocolDisabled()
|
||||
}
|
||||
|
||||
func (m *MessengerSignalsHandler) CreatingHistoryArchives(communityID string) {
|
||||
signal.SendCreatingHistoryArchives(communityID)
|
||||
}
|
||||
|
||||
func (m *MessengerSignalsHandler) NoHistoryArchivesCreated(communityID string, from int, to int) {
|
||||
signal.SendNoHistoryArchivesCreated(communityID, from, to)
|
||||
}
|
||||
|
||||
func (m *MessengerSignalsHandler) HistoryArchivesCreated(communityID string, from int, to int) {
|
||||
signal.SendHistoryArchivesCreated(communityID, from, to)
|
||||
}
|
||||
|
||||
func (m *MessengerSignalsHandler) HistoryArchivesSeeding(communityID string) {
|
||||
signal.SendHistoryArchivesSeeding(communityID)
|
||||
}
|
||||
|
||||
func (m *MessengerSignalsHandler) HistoryArchivesUnseeded(communityID string) {
|
||||
signal.SendHistoryArchivesUnseeded(communityID)
|
||||
}
|
||||
|
||||
func (m *MessengerSignalsHandler) HistoryArchiveDownloaded(communityID string, from int, to int) {
|
||||
signal.SendHistoryArchiveDownloaded(communityID, from, to)
|
||||
}
|
||||
|
|
|
@ -0,0 +1,104 @@
|
|||
package signal
|
||||
|
||||
const (
|
||||
|
||||
// EventHistoryArchivesEnabled triggered when the community history archive protocol
|
||||
// was enabled via the RPC API
|
||||
EventHistoryArchivesProtocolEnabled = "community.historyArchivesProtocolEnabled"
|
||||
// EventHistoryArchivesDisabled triggered when the community history archive protocol
|
||||
// was disabled via the RPC API
|
||||
EventHistoryArchivesProtocolDisabled = "community.historyArchivesProtocolDisabled"
|
||||
// EventCreatingHistoryArchives is triggered when the community owner node
|
||||
// starts to create archives torrents
|
||||
EventCreatingHistoryArchives = "community.creatingHistoryArchives"
|
||||
// EventHistoryArchivesCreated is triggered when the community owner node
|
||||
// has finished to create archives torrents
|
||||
EventHistoryArchivesCreated = "community.historyArchivesCreated"
|
||||
// EventNoHistoryArchivesCreated is triggered when the community owner node
|
||||
// tried to create archives but haven't because there were no new messages
|
||||
// to archive
|
||||
EventNoHistoryArchivesCreated = "community.noHistoryArchivesCreated"
|
||||
// EventHistoryArchivesSeeding is triggered when the community owner node
|
||||
// started seeding archives torrents
|
||||
EventHistoryArchivesSeeding = "community.historyArchivesSeeding"
|
||||
// EventHistoryArchivesUnseeded is triggered when the community owner node
|
||||
// drops a torrent for a particular community
|
||||
EventHistoryArchivesUnseeded = "community.historyArchivesUnseeded"
|
||||
// EventHistoryArchiveDownloaded is triggered when the community member node
|
||||
// has downloaded an individual community archive
|
||||
EventHistoryArchiveDownloaded = "community.historyArchiveDownloaded"
|
||||
)
|
||||
|
||||
type CreatingHistoryArchivesSignal struct {
|
||||
CommunityID string `json:"communityId"`
|
||||
}
|
||||
|
||||
type NoHistoryArchivesCreatedSignal struct {
|
||||
CommunityID string `json:"communityId"`
|
||||
From int `json:"from"`
|
||||
To int `json:"to"`
|
||||
}
|
||||
|
||||
type HistoryArchivesCreatedSignal struct {
|
||||
CommunityID string `json:"communityId"`
|
||||
From int `json:"from"`
|
||||
To int `json:"to"`
|
||||
}
|
||||
|
||||
type HistoryArchivesSeedingSignal struct {
|
||||
CommunityID string `json:"communityId"`
|
||||
}
|
||||
|
||||
type HistoryArchivesUnseededSignal struct {
|
||||
CommunityID string `json:"communityId"`
|
||||
}
|
||||
|
||||
type HistoryArchiveDownloadedSignal struct {
|
||||
CommunityID string `json:"communityId"`
|
||||
From int `json:"from"`
|
||||
To int `json:"to"`
|
||||
}
|
||||
|
||||
func SendHistoryArchivesProtocolEnabled() {
|
||||
send(EventHistoryArchivesProtocolEnabled, nil)
|
||||
}
|
||||
|
||||
func SendHistoryArchivesProtocolDisabled() {
|
||||
send(EventHistoryArchivesProtocolDisabled, nil)
|
||||
}
|
||||
|
||||
func SendCreatingHistoryArchives(communityID string) {
|
||||
send(EventCreatingHistoryArchives, CreatingHistoryArchivesSignal{CommunityID: communityID})
|
||||
}
|
||||
|
||||
func SendNoHistoryArchivesCreated(communityID string, from int, to int) {
|
||||
send(EventNoHistoryArchivesCreated, NoHistoryArchivesCreatedSignal{
|
||||
CommunityID: communityID,
|
||||
From: from,
|
||||
To: to,
|
||||
})
|
||||
}
|
||||
|
||||
func SendHistoryArchivesCreated(communityID string, from int, to int) {
|
||||
send(EventHistoryArchivesCreated, HistoryArchivesCreatedSignal{
|
||||
CommunityID: communityID,
|
||||
From: from,
|
||||
To: to,
|
||||
})
|
||||
}
|
||||
|
||||
func SendHistoryArchivesSeeding(communityID string) {
|
||||
send(EventHistoryArchivesSeeding, HistoryArchivesSeedingSignal{CommunityID: communityID})
|
||||
}
|
||||
|
||||
func SendHistoryArchivesUnseeded(communityID string) {
|
||||
send(EventHistoryArchivesUnseeded, HistoryArchivesUnseededSignal{CommunityID: communityID})
|
||||
}
|
||||
|
||||
func SendHistoryArchiveDownloaded(communityID string, from int, to int) {
|
||||
send(EventHistoryArchiveDownloaded, HistoryArchiveDownloadedSignal{
|
||||
CommunityID: communityID,
|
||||
From: from,
|
||||
To: to,
|
||||
})
|
||||
}
|
|
@ -104,7 +104,7 @@ func emojisTxt() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "emojis.txt", size: 28134, mode: os.FileMode(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "emojis.txt", size: 28134, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "../config/README.md", size: 3031, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "../config/cli/anon-metric-node-client.json", size: 857, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "../config/cli/anon-metric-node-server.json", size: 696, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "../config/cli/fleet-eth.prod.json", size: 4470, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "../config/cli/fleet-eth.staging.json", size: 2145, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "../config/cli/fleet-eth.test.json", size: 2174, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "../config/cli/fleet-status.prod.json", size: 1920, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "../config/cli/fleet-status.test.json", size: 937, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "../config/cli/fleet-wakuv2.prod.json", size: 747, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "../config/cli/fleet-wakuv2.test.json", size: 748, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "../config/cli/les-enabled.json", size: 58, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "../config/cli/mailserver-enabled.json", size: 176, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "../config/status-chain-genesis.json", size: 612, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "keys/bootnode.key", size: 65, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "keys/firebaseauthkey", size: 153, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "keys/test-account1-status-chain.pk", size: 489, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "keys/test-account1.pk", size: 491, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "keys/test-account2-status-chain.pk", size: 489, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "keys/test-account2.pk", size: 491, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "keys/test-account3-before-eip55.pk", size: 489, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
|
|
@ -86,7 +86,7 @@ func configPublicChainAccountsJson() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "config/public-chain-accounts.json", size: 307, mode: os.FileMode(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "config/public-chain-accounts.json", size: 307, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "config/status-chain-accounts.json", size: 543, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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(0664), modTime: time.Unix(1648106922, 0)}
|
||||
info := bindataFileInfo{name: "config/test-data.json", size: 84, mode: os.FileMode(0664), modTime: time.Unix(1649064826, 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
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue