Add mentioned field

This commit adds a Mentioned field to Message, which indicates whether
the receiving user is mentioned in the message.
This commit is contained in:
Andrea Maria Piana 2021-05-25 11:40:02 +02:00
parent d1dc5f1e27
commit dfd4668087
13 changed files with 93 additions and 50 deletions

View File

@ -1 +1 @@
0.79.4
0.79.5

View File

@ -822,7 +822,7 @@ func _0022_pending_transfersUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "0022_pending_transfers.up.sql", size: 706, mode: os.FileMode(0644), modTime: time.Unix(1621335496, 0)}
info := bindataFileInfo{name: "0022_pending_transfers.up.sql", size: 706, mode: os.FileMode(0644), modTime: time.Unix(1621583900, 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
}

View File

@ -129,7 +129,7 @@ func (s *ChatTestSuite) TestSerializeJSON() {
message.Clock = 1
message.Text = "`some markdown text`"
s.Require().NoError(message.PrepareContent())
s.Require().NoError(message.PrepareContent(""))
message.ParsedTextAst = nil
chat.LastMessage = message

View File

@ -145,6 +145,9 @@ type Message struct {
// Mentions is an array of mentions for a given message
Mentions []string
// Mentioned is whether the user is mentioned in the message
Mentioned bool `json:"mentioned"`
// Links is an array of links within given message
Links []string
}
@ -185,6 +188,7 @@ func (m *Message) MarshalJSON() ([]byte, error) {
ContentType protobuf.ChatMessage_ContentType `json:"contentType"`
MessageType protobuf.MessageType `json:"messageType"`
Mentions []string `json:"mentions,omitempty"`
Mentioned bool `json:"mentioned,omitempty"`
Links []string `json:"links,omitempty"`
}{
ID: m.ID,
@ -212,6 +216,7 @@ func (m *Message) MarshalJSON() ([]byte, error) {
Timestamp: m.Timestamp,
ContentType: m.ContentType,
Mentions: m.Mentions,
Mentioned: m.Mentioned,
Links: m.Links,
MessageType: m.MessageType,
CommandParameters: m.CommandParameters,
@ -377,8 +382,10 @@ func (v *SimplifiedTextVisitor) Visit(node ast.Node, entering bool) ast.WalkStat
// implement interface of https://github.com/status-im/markdown/blob/b9fe921681227b1dace4b56364e15edb3b698308/ast/node.go#L701
type MentionsAndLinksVisitor struct {
mentions []string
links []string
identity string
mentioned bool
mentions []string
links []string
}
func (v *MentionsAndLinksVisitor) Visit(node ast.Node, entering bool) ast.WalkStatus {
@ -388,7 +395,11 @@ func (v *MentionsAndLinksVisitor) Visit(node ast.Node, entering bool) ast.WalkSt
}
switch n := node.(type) {
case *ast.Mention:
v.mentions = append(v.mentions, string(n.Literal))
mention := string(n.Literal)
if mention == v.identity {
v.mentioned = true
}
v.mentions = append(v.mentions, mention)
case *ast.Link:
v.links = append(v.links, string(n.Destination))
}
@ -396,17 +407,24 @@ func (v *MentionsAndLinksVisitor) Visit(node ast.Node, entering bool) ast.WalkSt
return ast.GoToNext
}
func extractMentionsAndLinks(parsedText ast.Node) ([]string, []string) {
visitor := &MentionsAndLinksVisitor{}
func runMentionsAndLinksVisitor(parsedText ast.Node, identity string) *MentionsAndLinksVisitor {
visitor := &MentionsAndLinksVisitor{identity: identity}
ast.Walk(parsedText, visitor)
return visitor.mentions, visitor.links
return visitor
}
// PrepareContent return the parsed content of the message, the line-count and whether
// is a right-to-left message
func (m *Message) PrepareContent() error {
func (m *Message) PrepareContent(identity string) error {
parsedText := markdown.Parse([]byte(m.Text), nil)
m.Mentions, m.Links = extractMentionsAndLinks(parsedText)
visitor := runMentionsAndLinksVisitor(parsedText, identity)
m.Mentions = visitor.mentions
m.Links = visitor.links
// Leave it set if already set, as sometimes we might run this without
// an identity
if !m.Mentioned {
m.Mentioned = visitor.mentioned
}
jsonParsedText, err := json.Marshal(parsedText)
if err != nil {
return err
@ -423,7 +441,7 @@ func (m *Message) PrepareContent() error {
// GetSimplifiedText returns a the text stripped of all the markdown and with mentions
// replaced by canonical names
func (m *Message) GetSimplifiedText(canonicalNames map[string]string) (string, error) {
func (m *Message) GetSimplifiedText(identity string, canonicalNames map[string]string) (string, error) {
if m.ContentType == protobuf.ChatMessage_AUDIO {
return "Audio", nil
@ -439,7 +457,7 @@ func (m *Message) GetSimplifiedText(canonicalNames map[string]string) (string, e
}
if m.ParsedTextAst == nil {
err := m.PrepareContent()
err := m.PrepareContent(identity)
if err != nil {
return "", err
}

View File

@ -31,7 +31,7 @@ func TestPrepareContentImage(t *testing.T) {
}
message.Payload = &protobuf.ChatMessage_Image{Image: &image}
require.NoError(t, message.PrepareContent())
require.NoError(t, message.PrepareContent(""))
require.Equal(t, expectedJPEG, message.Base64Image)
}
@ -51,7 +51,7 @@ func TestPrepareContentAudio(t *testing.T) {
}
message.Payload = &protobuf.ChatMessage_Audio{Audio: &audio}
require.NoError(t, message.PrepareContent())
require.NoError(t, message.PrepareContent(""))
require.Equal(t, expectedAAC, message.Base64Audio)
}
@ -79,10 +79,11 @@ func TestPrepareContentMentions(t *testing.T) {
message.Text = "hey @" + pk1String + " @" + pk2String
require.NoError(t, message.PrepareContent())
require.NoError(t, message.PrepareContent(pk2String))
require.Len(t, message.Mentions, 2)
require.Equal(t, message.Mentions[0], pk1String)
require.Equal(t, message.Mentions[1], pk2String)
require.True(t, message.Mentioned)
}
func TestPrepareContentLinks(t *testing.T) {
@ -93,7 +94,7 @@ func TestPrepareContentLinks(t *testing.T) {
message.Text = "Just look at that repo " + link1 + " . And watch this video - " + link2
require.NoError(t, message.PrepareContent())
require.NoError(t, message.PrepareContent(""))
require.Len(t, message.Links, 2)
require.Equal(t, message.Links[0], link1)
require.Equal(t, message.Links[1], link2)
@ -114,7 +115,7 @@ func TestPrepareSimplifiedText(t *testing.T) {
message.Text = "hey @" + pk1String + " @" + pk2String
require.NoError(t, message.PrepareContent())
require.NoError(t, message.PrepareContent(""))
require.Len(t, message.Mentions, 2)
require.Equal(t, message.Mentions[0], pk1String)
require.Equal(t, message.Mentions[1], pk2String)
@ -123,7 +124,7 @@ func TestPrepareSimplifiedText(t *testing.T) {
canonicalNames[pk1String] = canonicalName1
canonicalNames[pk2String] = canonicalName2
simplifiedText, err := message.GetSimplifiedText(canonicalNames)
simplifiedText, err := message.GetSimplifiedText("", canonicalNames)
require.NoError(t, err)
require.Equal(t, "hey "+canonicalName1+" "+canonicalName2, simplifiedText)
}

View File

@ -84,7 +84,8 @@ func eventToSystemMessage(e v1protocol.MembershipUpdateEvent, translations *syst
Seen: true,
ID: types.EncodeHex(crypto.Keccak256(e.Signature)),
}
_ = message.PrepareContent()
// We don't pass an identity here as system messages don't need the mentioned flag
_ = message.PrepareContent("")
return message
}

View File

@ -26,19 +26,12 @@ func showMessageNotification(publicKey ecdsa.PublicKey, message *common.Message,
return true
}
publicKeyString := common.PubkeyToHex(&publicKey)
mentioned := false
for _, mention := range message.Mentions {
if publicKeyString == mention {
mentioned = true
}
}
if mentioned {
if message.Mentioned {
return true
}
if responseTo != nil {
publicKeyString := common.PubkeyToHex(&publicKey)
return responseTo.From == publicKeyString
}
@ -92,7 +85,8 @@ func (n NotificationBody) toMessageNotification(id string, contacts *contactMap)
canonicalNames[mentionID] = contact.CanonicalName()
}
simplifiedText, err := n.Message.GetSimplifiedText(canonicalNames)
// We don't pass idenity as only interested in the simplified text
simplifiedText, err := n.Message.GetSimplifiedText("", canonicalNames)
if err != nil {
return nil, err
}

View File

@ -198,7 +198,7 @@ func (m *MessageHandler) handleCommandMessage(state *ReceivedMessageState, messa
message.Identicon = state.CurrentMessageState.Contact.Identicon
message.WhisperTimestamp = state.CurrentMessageState.WhisperTimestamp
if err := message.PrepareContent(); err != nil {
if err := message.PrepareContent(common.PubkeyToHex(&m.identity.PublicKey)); err != nil {
return fmt.Errorf("failed to prepare content: %v", err)
}
chat, err := m.matchChatEntity(message, state.AllChats, state.AllContacts, state.Timesource)
@ -579,7 +579,7 @@ func (m *MessageHandler) HandleChatMessage(state *ReceivedMessageState) error {
WhisperTimestamp: state.CurrentMessageState.WhisperTimestamp,
}
err := receivedMessage.PrepareContent()
err := receivedMessage.PrepareContent(common.PubkeyToHex(&m.identity.PublicKey))
if err != nil {
return fmt.Errorf("failed to prepare message content: %v", err)
}

View File

@ -51,7 +51,8 @@ func (db sqlitePersistence) tableUserMessagesAllFields() string {
line_count,
response_to,
gap_from,
gap_to`
gap_to,
mentioned`
}
func (db sqlitePersistence) tableUserMessagesAllFieldsJoin() string {
@ -91,6 +92,7 @@ func (db sqlitePersistence) tableUserMessagesAllFieldsJoin() string {
m1.response_to,
m1.gap_from,
m1.gap_to,
m1.mentioned,
m2.source,
m2.text,
m2.parsed_text,
@ -167,6 +169,7 @@ func (db sqlitePersistence) tableUserMessagesScanAllFields(row scanner, message
&message.ResponseTo,
&gapFrom,
&gapTo,
&message.Mentioned,
&quotedFrom,
&quotedText,
&quotedParsedText,
@ -320,6 +323,7 @@ func (db sqlitePersistence) tableUserMessagesAllValues(message *common.Message)
message.ResponseTo,
gapFrom,
gapTo,
message.Mentioned,
}, nil
}

View File

@ -2091,7 +2091,7 @@ func (m *Messenger) sendChatMessage(ctx context.Context, message *common.Message
message.OutgoingStatus = common.OutgoingStatusSent
}
message.ID = rawMessage.ID
err = message.PrepareContent()
err = message.PrepareContent(common.PubkeyToHex(&m.identity.PublicKey))
if err != nil {
return nil, err
}
@ -3181,7 +3181,7 @@ func (m *Messenger) RequestTransaction(ctx context.Context, chatID, value, contr
message.ID = messageID
message.CommandParameters.ID = messageID
err = message.PrepareContent()
err = message.PrepareContent(common.PubkeyToHex(&m.identity.PublicKey))
if err != nil {
return nil, err
}
@ -3255,7 +3255,7 @@ func (m *Messenger) RequestAddressForTransaction(ctx context.Context, chatID, fr
message.ID = messageID
message.CommandParameters.ID = messageID
err = message.PrepareContent()
err = message.PrepareContent(common.PubkeyToHex(&m.identity.PublicKey))
if err != nil {
return nil, err
}
@ -3348,7 +3348,7 @@ func (m *Messenger) AcceptRequestAddressForTransaction(ctx context.Context, mess
message.CommandParameters.Address = address
message.CommandParameters.CommandState = common.CommandStateRequestAddressForTransactionAccepted
err = message.PrepareContent()
err = message.PrepareContent(common.PubkeyToHex(&m.identity.PublicKey))
if err != nil {
return nil, err
}
@ -3428,7 +3428,7 @@ func (m *Messenger) DeclineRequestTransaction(ctx context.Context, messageID str
message.ID = rawMessage.ID
message.CommandParameters.CommandState = common.CommandStateRequestTransactionDeclined
err = message.PrepareContent()
err = message.PrepareContent(common.PubkeyToHex(&m.identity.PublicKey))
if err != nil {
return nil, err
}
@ -3508,7 +3508,7 @@ func (m *Messenger) DeclineRequestAddressForTransaction(ctx context.Context, mes
message.ID = rawMessage.ID
message.CommandParameters.CommandState = common.CommandStateRequestAddressForTransactionDeclined
err = message.PrepareContent()
err = message.PrepareContent(common.PubkeyToHex(&m.identity.PublicKey))
if err != nil {
return nil, err
}
@ -3605,7 +3605,7 @@ func (m *Messenger) AcceptRequestTransaction(ctx context.Context, transactionHas
message.CommandParameters.Signature = signature
message.CommandParameters.CommandState = common.CommandStateTransactionSent
err = message.PrepareContent()
err = message.PrepareContent(common.PubkeyToHex(&m.identity.PublicKey))
if err != nil {
return nil, err
}
@ -3684,7 +3684,7 @@ func (m *Messenger) SendTransaction(ctx context.Context, chatID, value, contract
CommandState: common.CommandStateTransactionSent,
}
err = message.PrepareContent()
err = message.PrepareContent(common.PubkeyToHex(&m.identity.PublicKey))
if err != nil {
return nil, err
}
@ -3766,7 +3766,7 @@ func (m *Messenger) ValidateTransactions(ctx context.Context, addresses []types.
message.CommandParameters.CommandState = common.CommandStateTransactionSent
message.CommandParameters.TransactionHash = validationResult.Transaction.TransactionHash
err = message.PrepareContent()
err = message.PrepareContent(common.PubkeyToHex(&m.identity.PublicKey))
if err != nil {
return nil, err
}

View File

@ -30,6 +30,7 @@
// 1618923660_create_pin_messages.up.sql (265B)
// 1619094007_add_joined_chat_field.up.sql (101B)
// 1619099821_add_last_synced_field.up.sql (226B)
// 1621933219_add_mentioned.up.sql (70B)
// README.md (554B)
// doc.go (850B)
@ -655,7 +656,7 @@ func _1618923660_create_pin_messagesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1618923660_create_pin_messages.up.sql", size: 265, mode: os.FileMode(0644), modTime: time.Unix(1621335496, 0)}
info := bindataFileInfo{name: "1618923660_create_pin_messages.up.sql", size: 265, mode: os.FileMode(0644), modTime: time.Unix(1621583900, 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
}
@ -675,7 +676,7 @@ func _1619094007_add_joined_chat_fieldUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1619094007_add_joined_chat_field.up.sql", size: 101, mode: os.FileMode(0644), modTime: time.Unix(1621335574, 0)}
info := bindataFileInfo{name: "1619094007_add_joined_chat_field.up.sql", size: 101, mode: os.FileMode(0644), modTime: time.Unix(1621583900, 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
}
@ -695,11 +696,31 @@ func _1619099821_add_last_synced_fieldUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1619099821_add_last_synced_field.up.sql", size: 226, mode: os.FileMode(0644), modTime: time.Unix(1621335717, 0)}
info := bindataFileInfo{name: "1619099821_add_last_synced_field.up.sql", size: 226, mode: os.FileMode(0644), modTime: time.Unix(1621583900, 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
}
var __1621933219_add_mentionedUpSql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x04\xc0\x31\x0a\x80\x30\x0c\x05\xd0\xdd\x53\xfc\x7b\x38\xa5\x36\x9d\x62\x0b\x9a\xce\x22\x18\xc4\xa1\x15\x8c\xde\xdf\x47\xa2\xbc\x40\x29\x08\xe3\x73\x7b\xb6\x66\xee\xfb\x69\x0e\x8a\x11\x53\x91\x3a\x67\x34\xeb\xef\x75\x77\x3b\x10\x4a\x11\xa6\x8c\xc8\x89\xaa\x28\x12\xc9\xca\xe3\xf0\x07\x00\x00\xff\xff\x76\x1d\xdd\xab\x46\x00\x00\x00")
func _1621933219_add_mentionedUpSqlBytes() ([]byte, error) {
return bindataRead(
__1621933219_add_mentionedUpSql,
"1621933219_add_mentioned.up.sql",
)
}
func _1621933219_add_mentionedUpSql() (*asset, error) {
bytes, err := _1621933219_add_mentionedUpSqlBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "1621933219_add_mentioned.up.sql", size: 70, mode: os.FileMode(0644), modTime: time.Unix(1621933243, 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
}
var _readmeMd = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x54\x91\xc1\xce\xd3\x30\x10\x84\xef\x7e\x8a\x91\x7a\x01\xa9\x2a\x8f\xc0\x0d\x71\x82\x03\x48\x1c\xc9\x36\x9e\x36\x96\x1c\x6f\xf0\xae\x93\xe6\xed\x91\xa3\xc2\xdf\xff\x66\xed\xd8\x33\xdf\x78\x4f\xa7\x13\xbe\xea\x06\x57\x6c\x35\x39\x31\xa7\x7b\x15\x4f\x5a\xec\x73\x08\xbf\x08\x2d\x79\x7f\x4a\x43\x5b\x86\x17\xfd\x8c\x21\xea\x56\x5e\x47\x90\x4a\x14\x75\x48\xde\x64\x37\x2c\x6a\x96\xae\x99\x48\x05\xf6\x27\x77\x13\xad\x08\xae\x8a\x51\xe7\x25\xf3\xf1\xa9\x9f\xf9\x58\x58\x2c\xad\xbc\xe0\x8b\x56\xf0\x21\x5d\xeb\x4c\x95\xb3\xae\x84\x60\xd4\xdc\xe6\x82\x5d\x1b\x36\x6d\x39\x62\x92\xf5\xb8\x11\xdb\x92\xd3\x28\xce\xe0\x13\xe1\x72\xcd\x3c\x63\xd4\x65\x87\xae\xac\xe8\xc3\x28\x2e\x67\x44\x66\x3a\x21\x25\xa2\x72\xac\x14\x67\xbc\x84\x9f\x53\x32\x8c\x52\x70\x25\x56\xd6\xfd\x8d\x05\x37\xad\x30\x9d\x9f\xa6\x86\x0f\xcd\x58\x7f\xcf\x34\x93\x3b\xed\x90\x9f\xa4\x1f\xcf\x30\x85\x4d\x07\x58\xaf\x7f\x25\xc4\x9d\xf3\x72\x64\x84\xd0\x7f\xf9\x9b\x3a\x2d\x84\xef\x85\x48\x66\x8d\xd8\x88\x9b\x8c\x8c\x98\x5b\xf6\x74\x14\x4e\x33\x0d\xc9\xe0\x93\x38\xda\x12\xc5\x69\xbd\xe4\xf0\x2e\x7a\x78\x07\x1c\xfe\x13\x9f\x91\x29\x31\x95\x7b\x7f\x62\x59\x37\xb4\xe5\x5e\x25\xfe\x33\xee\xd5\x53\x71\xd6\xda\x3a\xd8\xcb\xde\x2e\xf8\xa1\x90\x55\x53\x0c\xc7\xaa\x0d\xe9\x76\x14\x29\x1c\x7b\x68\xdd\x2f\xe1\x6f\x00\x00\x00\xff\xff\x3c\x0a\xc2\xfe\x2a\x02\x00\x00")
func readmeMdBytes() ([]byte, error) {
@ -891,6 +912,8 @@ var _bindata = map[string]func() (*asset, error){
"1619099821_add_last_synced_field.up.sql": _1619099821_add_last_synced_fieldUpSql,
"1621933219_add_mentioned.up.sql": _1621933219_add_mentionedUpSql,
"README.md": readmeMd,
"doc.go": docGo,
@ -967,8 +990,9 @@ var _bintree = &bintree{nil, map[string]*bintree{
"1618923660_create_pin_messages.up.sql": &bintree{_1618923660_create_pin_messagesUpSql, map[string]*bintree{}},
"1619094007_add_joined_chat_field.up.sql": &bintree{_1619094007_add_joined_chat_fieldUpSql, map[string]*bintree{}},
"1619099821_add_last_synced_field.up.sql": &bintree{_1619099821_add_last_synced_fieldUpSql, map[string]*bintree{}},
"README.md": &bintree{readmeMd, map[string]*bintree{}},
"doc.go": &bintree{docGo, map[string]*bintree{}},
"1621933219_add_mentioned.up.sql": &bintree{_1621933219_add_mentionedUpSql, map[string]*bintree{}},
"README.md": &bintree{readmeMd, map[string]*bintree{}},
"doc.go": &bintree{docGo, map[string]*bintree{}},
}}
// RestoreAsset restores an asset under the given directory.

View File

@ -0,0 +1 @@
ALTER TABLE user_messages ADD COLUMN mentioned BOOLEAN DEFAULT FALSE;

View File

@ -86,7 +86,7 @@ func _1561059284_add_waku_keysDownSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1561059284_add_waku_keys.down.sql", size: 22, mode: os.FileMode(0644), modTime: time.Unix(1621335496, 0)}
info := bindataFileInfo{name: "1561059284_add_waku_keys.down.sql", size: 22, mode: os.FileMode(0644), modTime: time.Unix(1621583900, 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
}
@ -106,7 +106,7 @@ func _1561059284_add_waku_keysUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1561059284_add_waku_keys.up.sql", size: 109, mode: os.FileMode(0644), modTime: time.Unix(1621335496, 0)}
info := bindataFileInfo{name: "1561059284_add_waku_keys.up.sql", size: 109, mode: os.FileMode(0644), modTime: time.Unix(1621583900, 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
}
@ -126,7 +126,7 @@ func docGo() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "doc.go", size: 373, mode: os.FileMode(0644), modTime: time.Unix(1621335496, 0)}
info := bindataFileInfo{name: "doc.go", size: 373, mode: os.FileMode(0644), modTime: time.Unix(1621583900, 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
}