diff --git a/client/react-native/common/components/Library/Filters.js b/client/react-native/common/components/Library/Filters.js
new file mode 100644
index 0000000000..b028777421
--- /dev/null
+++ b/client/react-native/common/components/Library/Filters.js
@@ -0,0 +1,72 @@
+import React from 'react'
+import { StackActions } from 'react-navigation'
+import ModalScreen from './ModalScreen'
+import { Switch, Text } from 'react-native'
+import { Rows, Cols } from './Flex'
+import { Text as FlexText } from './Text'
+import Button from './Button'
+import { padding } from '../../styles'
+
+export class FilterModal extends React.Component {
+ constructor (props) {
+ super(props)
+
+ this.state = {
+ ...this.props.defaultData,
+ }
+ }
+
+ onDismiss = () => {
+ this.resetState()
+ this.close()
+ }
+
+ onFilter = () => {
+ const onSave = this.props.navigation.getParam('onSave')
+
+ if (!onSave) {
+ console.error('onSave is not defined')
+ }
+
+ onSave(this.state)
+
+ this.close()
+ }
+
+ close = () => {
+ this.props.navigation.dispatch(StackActions.pop({
+ n: 1,
+ }))
+ }
+
+ resetState = () => {
+ this.setState({
+ ...this.state,
+ ...this.props.defaultData,
+ })
+ }
+
+ render = () => this.onDismiss()}>
+
+ {this.props.title ? {this.props.title} : null}
+ {React.Children.map(this.props.children, child => React.cloneElement(child, {
+ onChange: value => this.setState({ [child.props.name]: value }),
+ value: this.state[child.props.name],
+ }))}
+
+
+
+
+
+
+}
+
+// Impl for this is really bad, move to radio buttons instead
+export const PickerFilter = ({ value, onChange, choices }) =>
+ {choices.map(({ value: choiceValue, label }) =>
+
+ onChange(choiceValue)} style={{ width: 50 }} />
+ {label}
+ ,
+ )}
+
diff --git a/client/react-native/common/components/Library/Header.js b/client/react-native/common/components/Library/Header.js
index b2a6b5feba..0362e74bc8 100644
--- a/client/react-native/common/components/Library/Header.js
+++ b/client/react-native/common/components/Library/Header.js
@@ -1,10 +1,8 @@
import React, { PureComponent } from 'react'
-import { TextInput, View, Platform } from 'react-native'
-import { Button, Flex, Text } from '.'
+import { View } from 'react-native'
+import { Button, Flex, Text, SearchBar } from '.'
import { colors } from '../../constants'
import {
- paddingLeft,
- paddingRight,
padding,
borderBottom,
paddingBottom,
@@ -42,6 +40,13 @@ export default class Header extends PureComponent {
? defaultTextColor
: this.props.colorBtnRight
+ let searchBarComponent = null
+ if (searchBar === true) {
+ searchBarComponent = searchHandler(text)} />
+ } else if (searchBar !== undefined && searchBar !== false) {
+ searchBarComponent = searchBar
+ }
+
return (
- {searchBar === true && (
-
- searchHandler(text)}
- />
-
- )}
+ {searchBarComponent}
)
diff --git a/client/react-native/common/components/Library/ModalScreen.js b/client/react-native/common/components/Library/ModalScreen.js
index 34fdd2051f..fc879fe6f4 100644
--- a/client/react-native/common/components/Library/ModalScreen.js
+++ b/client/react-native/common/components/Library/ModalScreen.js
@@ -27,10 +27,15 @@ const ModalScreen = props => {
backgroundColor: colors.white,
flex: 1,
}}>
-
+
{children}
diff --git a/client/react-native/common/components/Library/SearchBar.js b/client/react-native/common/components/Library/SearchBar.js
new file mode 100644
index 0000000000..3ee2d86819
--- /dev/null
+++ b/client/react-native/common/components/Library/SearchBar.js
@@ -0,0 +1,28 @@
+import { paddingBottom, paddingLeft, paddingRight } from '../../styles'
+import { TextInput, Platform } from 'react-native'
+import { colors } from '../../constants'
+import React from 'react'
+import { Flex } from '.'
+
+export default props =>
+
+ {props.children}
+
diff --git a/client/react-native/common/components/Library/index.js b/client/react-native/common/components/Library/index.js
index 65a0b97c36..e540419982 100644
--- a/client/react-native/common/components/Library/index.js
+++ b/client/react-native/common/components/Library/index.js
@@ -12,3 +12,4 @@ export Button from './Button'
export CustomTextInput from './CustomTextInput.js'
export Badge from './Badge'
export ModalScreen from './ModalScreen'
+export SearchBar from './SearchBar'
diff --git a/client/react-native/common/components/Screens/Settings/Devtools/EventList.js b/client/react-native/common/components/Screens/Settings/Devtools/EventList.js
index 2a91bfdf59..77cd13ddc1 100644
--- a/client/react-native/common/components/Screens/Settings/Devtools/EventList.js
+++ b/client/react-native/common/components/Screens/Settings/Devtools/EventList.js
@@ -1,16 +1,12 @@
-import {
- ActivityIndicator,
- FlatList,
- Text,
- TouchableOpacity,
-} from 'react-native'
+import { ActivityIndicator, FlatList, Text, TouchableOpacity } from 'react-native'
import React, { PureComponent } from 'react'
-import { Flex, Header, Screen, Separator } from '../../../Library'
+import { Flex, Header, Icon, Screen, SearchBar, Separator } from '../../../Library'
import { QueryReducer } from '../../../../relay'
import { colors } from '../../../../constants'
import { marginLeft, padding } from '../../../../styles'
-import { queries, fragments } from '../../../../graphql'
+import { fragments, queries } from '../../../../graphql'
+import { FilterModal, PickerFilter } from '../../../Library/Filters'
const Item = fragments.Event(({ data, navigation }) => (
entry.id.toLowerCase().indexOf(search.toLowerCase()) > -1 ||
entry.kind.toLowerCase().indexOf(search.toLowerCase()) > -1 ||
- entry.createdAt.toLowerCase().indexOf(search.toLowerCase()) > -1
+ entry.createdAt.toLowerCase().indexOf(search.toLowerCase()) > -1,
)
}
}
@@ -115,28 +111,63 @@ const List = fragments.EventList(
/>
)
}
- }
+ },
)
export default class EventList extends PureComponent {
- static navigationOptions = ({ navigation }) => ({
- header: (
-
- ),
- })
+ constructor (props) {
+ super(props)
+
+ this.state = {
+ filters: {},
+ }
+ }
+
+ componentWillMount () {
+ this.props.navigation.setParams({
+ component: this,
+ })
+ }
+
+ static navigationOptions ({ navigation }) {
+ return {
+ header: (
+
+ {
+ navigation.push('modal/devtools/event/list/filters', {
+ defaultData: navigation.getParam('component').state.filters,
+ onSave: filters => navigation.getParam('component').setState({ filters: filters }),
+ })
+ }}>
+
+
+
+ }
+ backBtn
+ />
+ ),
+ }
+ }
+
render () {
+ console.log(['EventListFilter', {
+ ...queries.EventList.defaultVariables,
+ ...this.state.filters,
+ }])
+
const { navigation } = this.props
return (
{(state, retry) => {
console.log(state)
@@ -166,3 +197,14 @@ export default class EventList extends PureComponent {
)
}
}
+
+export const EventListFilterModal = ({ navigation }) =>
+
+
+
diff --git a/client/react-native/common/components/Screens/Settings/Devtools/index.js b/client/react-native/common/components/Screens/Settings/Devtools/index.js
index e3037781de..c8d8e2822d 100644
--- a/client/react-native/common/components/Screens/Settings/Devtools/index.js
+++ b/client/react-native/common/components/Screens/Settings/Devtools/index.js
@@ -2,7 +2,7 @@ import { createSubStackNavigator } from '../../../../helpers/react-navigation'
import List from './List'
import Database from './Database'
import Network from './Network'
-import EventList from './EventList'
+import EventList, { EventListFilterModal } from './EventList'
import EventDetails from './EventDetails'
import DeviceInfos from './DeviceInfos'
import Tests from './Tests'
@@ -14,6 +14,7 @@ export default createSubStackNavigator(
'devtools/database': Database,
'devtools/network': Network,
'devtools/eventlist': EventList,
+ 'devtools/eventlistfilter': EventListFilterModal,
'devtools/eventdetails': EventDetails,
'devtools/deviceinfos': DeviceInfos,
'devtools/tests': Tests,
diff --git a/client/react-native/common/components/Screens/Settings/List.js b/client/react-native/common/components/Screens/Settings/List.js
index 92b7c88258..1869372489 100644
--- a/client/react-native/common/components/Screens/Settings/List.js
+++ b/client/react-native/common/components/Screens/Settings/List.js
@@ -29,6 +29,13 @@ export default class List extends PureComponent {
onPress={() => navigation.push('settings/my-account')}
/>
+
+ navigation.push('settings/devtools')}
+ />
+
navigation.push('settings/legal')}
/>
-
- navigation.push('settings/devtools')}
- />
-
)
diff --git a/client/react-native/common/components/Screens/index.js b/client/react-native/common/components/Screens/index.js
index 2fbe052d15..5838ff63b2 100644
--- a/client/react-native/common/components/Screens/index.js
+++ b/client/react-native/common/components/Screens/index.js
@@ -7,6 +7,7 @@ import Settings from './Settings'
import { colors } from '../../constants'
import { borderTop, shadow } from '../../styles'
import { ByPublicKeyModal } from './Contacts/Add/ByPublicKey'
+import { EventListFilterModal } from './Settings/Devtools/EventList'
export const mainTabs = createTabNavigator(
{
@@ -46,6 +47,9 @@ export default createStackNavigator(
'modal/contacts/add/by-public-key': {
screen: ByPublicKeyModal,
},
+ 'modal/devtools/event/list/filters': {
+ screen: EventListFilterModal,
+ },
},
{
mode: 'card',
diff --git a/client/react-native/common/graphql/queries/EventList.js b/client/react-native/common/graphql/queries/EventList.js
index 7fc194057f..2750caa0fb 100644
--- a/client/react-native/common/graphql/queries/EventList.js
+++ b/client/react-native/common/graphql/queries/EventList.js
@@ -6,8 +6,9 @@ const EventList = graphql`
$filter: BertyP2pEventInput
$count: Int32
$cursor: String
+ $onlyWithoutAckedAt: Enum
) {
- ...EventList @arguments(filter: $filter, count: $count, cursor: $cursor)
+ ...EventList @arguments(filter: $filter, count: $count, cursor: $cursor, onlyWithoutAckedAt: $onlyWithoutAckedAt)
}
`
diff --git a/client/react-native/common/schema.graphql b/client/react-native/common/schema.graphql
index 2ea4d40784..cc01e8bdec 100644
--- a/client/react-native/common/schema.graphql
+++ b/client/react-native/common/schema.graphql
@@ -408,6 +408,7 @@ type BertyPkgDeviceinfoDeviceInfo {
+
type BertyNodePingDestination {
destination: String!
}
@@ -615,6 +616,7 @@ type Query {
): BertyP2pPeerPayload
EventList(
filter: BertyP2pEventInput
+ onlyWithoutAckedAt: Enum
orderBy: String!
orderDesc: Bool!
first: Int32
diff --git a/core/api/node/graphql/gqlgen.gen.yml b/core/api/node/graphql/gqlgen.gen.yml
index 49e231fa7d..1a8ac06ab9 100644
--- a/core/api/node/graphql/gqlgen.gen.yml
+++ b/core/api/node/graphql/gqlgen.gen.yml
@@ -1303,11 +1303,13 @@ models:
model: berty.tech/core/api/node.EventListInput
fields:
filter:
+ onlyWithoutAckedAt:
paginate:
BertyNodeEventListInputPayload:
model: berty.tech/core/api/node.EventListInput
fields:
filter:
+ onlyWithoutAckedAt:
paginate:
BertyNodeEventEdge:
diff --git a/core/api/node/graphql/graph/generated/generated.go b/core/api/node/graphql/graph/generated/generated.go
index d13543001d..db093b62f1 100644
--- a/core/api/node/graphql/graph/generated/generated.go
+++ b/core/api/node/graphql/graph/generated/generated.go
@@ -588,7 +588,7 @@ type ComplexityRoot struct {
Query struct {
Node func(childComplexity int, id string) int
Id func(childComplexity int, T bool) int
- EventList func(childComplexity int, filter *p2p.Event, orderBy string, orderDesc bool, first *int32, after *string, last *int32, before *string) int
+ EventList func(childComplexity int, filter *p2p.Event, onlyWithoutAckedAt *int32, orderBy string, orderDesc bool, first *int32, after *string, last *int32, before *string) int
GetEvent func(childComplexity int, id string, senderId string, createdAt *time.Time, updatedAt *time.Time, deletedAt *time.Time, sentAt *time.Time, receivedAt *time.Time, ackedAt *time.Time, direction *int32, senderApiVersion uint32, receiverApiVersion uint32, receiverId string, kind *int32, attributes []byte, conversationId string) int
ContactList func(childComplexity int, filter *entity.Contact, orderBy string, orderDesc bool, first *int32, after *string, last *int32, before *string) int
GetContact func(childComplexity int, id string, createdAt *time.Time, updatedAt *time.Time, deletedAt *time.Time, sigchain []byte, status *int32, devices []*entity.Device, displayName string, displayStatus string, overrideDisplayName string, overrideDisplayStatus string) int
@@ -675,7 +675,7 @@ type MutationResolver interface {
type QueryResolver interface {
Node(ctx context.Context, id string) (models.Node, error)
ID(ctx context.Context, T bool) (*p2p.Peer, error)
- EventList(ctx context.Context, filter *p2p.Event, orderBy string, orderDesc bool, first *int32, after *string, last *int32, before *string) (*node.EventListConnection, error)
+ EventList(ctx context.Context, filter *p2p.Event, onlyWithoutAckedAt *int32, orderBy string, orderDesc bool, first *int32, after *string, last *int32, before *string) (*node.EventListConnection, error)
GetEvent(ctx context.Context, id string, senderId string, createdAt *time.Time, updatedAt *time.Time, deletedAt *time.Time, sentAt *time.Time, receivedAt *time.Time, ackedAt *time.Time, direction *int32, senderApiVersion uint32, receiverApiVersion uint32, receiverId string, kind *int32, attributes []byte, conversationId string) (*p2p.Event, error)
ContactList(ctx context.Context, filter *entity.Contact, orderBy string, orderDesc bool, first *int32, after *string, last *int32, before *string) (*node.ContactListConnection, error)
GetContact(ctx context.Context, id string, createdAt *time.Time, updatedAt *time.Time, deletedAt *time.Time, sigchain []byte, status *int32, devices []*entity.Device, displayName string, displayStatus string, overrideDisplayName string, overrideDisplayStatus string) (*entity.Contact, error)
@@ -1422,80 +1422,94 @@ func field_Query_EventList_args(rawArgs map[string]interface{}) (map[string]inte
}
}
args["filter"] = arg0
- var arg1 string
+ var arg1 *int32
+ if tmp, ok := rawArgs["onlyWithoutAckedAt"]; ok {
+ var err error
+ var ptr1 int32
+ if tmp != nil {
+ ptr1, err = models.UnmarshalEnum(tmp)
+ arg1 = &ptr1
+ }
+
+ if err != nil {
+ return nil, err
+ }
+ }
+ args["onlyWithoutAckedAt"] = arg1
+ var arg2 string
if tmp, ok := rawArgs["orderBy"]; ok {
var err error
- arg1, err = models.UnmarshalString(tmp)
+ arg2, err = models.UnmarshalString(tmp)
if err != nil {
return nil, err
}
}
- args["orderBy"] = arg1
- var arg2 bool
+ args["orderBy"] = arg2
+ var arg3 bool
if tmp, ok := rawArgs["orderDesc"]; ok {
var err error
- arg2, err = models.UnmarshalBool(tmp)
+ arg3, err = models.UnmarshalBool(tmp)
if err != nil {
return nil, err
}
}
- args["orderDesc"] = arg2
- var arg3 *int32
+ args["orderDesc"] = arg3
+ var arg4 *int32
if tmp, ok := rawArgs["first"]; ok {
var err error
var ptr1 int32
if tmp != nil {
ptr1, err = models.UnmarshalInt32(tmp)
- arg3 = &ptr1
+ arg4 = &ptr1
}
if err != nil {
return nil, err
}
}
- args["first"] = arg3
- var arg4 *string
+ args["first"] = arg4
+ var arg5 *string
if tmp, ok := rawArgs["after"]; ok {
var err error
var ptr1 string
if tmp != nil {
ptr1, err = models.UnmarshalString(tmp)
- arg4 = &ptr1
+ arg5 = &ptr1
}
if err != nil {
return nil, err
}
}
- args["after"] = arg4
- var arg5 *int32
+ args["after"] = arg5
+ var arg6 *int32
if tmp, ok := rawArgs["last"]; ok {
var err error
var ptr1 int32
if tmp != nil {
ptr1, err = models.UnmarshalInt32(tmp)
- arg5 = &ptr1
+ arg6 = &ptr1
}
if err != nil {
return nil, err
}
}
- args["last"] = arg5
- var arg6 *string
+ args["last"] = arg6
+ var arg7 *string
if tmp, ok := rawArgs["before"]; ok {
var err error
var ptr1 string
if tmp != nil {
ptr1, err = models.UnmarshalString(tmp)
- arg6 = &ptr1
+ arg7 = &ptr1
}
if err != nil {
return nil, err
}
}
- args["before"] = arg6
+ args["before"] = arg7
return args, nil
}
@@ -4751,7 +4765,7 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in
return 0, false
}
- return e.complexity.Query.EventList(childComplexity, args["filter"].(*p2p.Event), args["orderBy"].(string), args["orderDesc"].(bool), args["first"].(*int32), args["after"].(*string), args["last"].(*int32), args["before"].(*string)), true
+ return e.complexity.Query.EventList(childComplexity, args["filter"].(*p2p.Event), args["onlyWithoutAckedAt"].(*int32), args["orderBy"].(string), args["orderDesc"].(bool), args["first"].(*int32), args["after"].(*string), args["last"].(*int32), args["before"].(*string)), true
case "Query.GetEvent":
if e.complexity.Query.GetEvent == nil {
@@ -17141,7 +17155,7 @@ func (ec *executionContext) _Query_EventList(ctx context.Context, field graphql.
ctx = graphql.WithResolverContext(ctx, rctx)
resTmp := ec.FieldMiddleware(ctx, nil, func(rctx context.Context) (interface{}, error) {
ctx = rctx // use context from middleware stack in children
- return ec.resolvers.Query().EventList(rctx, args["filter"].(*p2p.Event), args["orderBy"].(string), args["orderDesc"].(bool), args["first"].(*int32), args["after"].(*string), args["last"].(*int32), args["before"].(*string))
+ return ec.resolvers.Query().EventList(rctx, args["filter"].(*p2p.Event), args["onlyWithoutAckedAt"].(*int32), args["orderBy"].(string), args["orderDesc"].(bool), args["first"].(*int32), args["after"].(*string), args["last"].(*int32), args["before"].(*string))
})
if resTmp == nil {
return graphql.Null
@@ -19981,6 +19995,7 @@ type BertyPkgDeviceinfoDeviceInfo {
+
type BertyNodePingDestination {
destination: String!
}
@@ -20188,6 +20203,7 @@ type Query {
): BertyP2pPeerPayload
EventList(
filter: BertyP2pEventInput
+ onlyWithoutAckedAt: Enum
orderBy: String!
orderDesc: Bool!
first: Int32
diff --git a/core/api/node/graphql/resolver.go b/core/api/node/graphql/resolver.go
index 8e1493d4d2..c95432281a 100644
--- a/core/api/node/graphql/resolver.go
+++ b/core/api/node/graphql/resolver.go
@@ -263,7 +263,12 @@ func (r *queryResolver) Protocols(ctx context.Context, id string, _ []string, _
})
}
-func (r *queryResolver) EventList(ctx context.Context, filter *p2p.Event, orderBy string, orderDesc bool, first *int32, after *string, last *int32, before *string) (*node.EventListConnection, error) {
+func (r *queryResolver) EventList(ctx context.Context, filter *p2p.Event, rawOnlyWithoutAckedAt *int32, orderBy string, orderDesc bool, first *int32, after *string, last *int32, before *string) (*node.EventListConnection, error) {
+ onlyWithoutAckedAt := node.NullableTrueFalse_Null
+ if rawOnlyWithoutAckedAt != nil {
+ onlyWithoutAckedAt = node.NullableTrueFalse(*rawOnlyWithoutAckedAt)
+ }
+
if filter != nil {
if filter.ID != "" {
filter.ID = strings.SplitN(filter.ID, ":", 2)[1]
@@ -283,7 +288,10 @@ func (r *queryResolver) EventList(ctx context.Context, filter *p2p.Event, orderB
input.Paginate.First++ // querying one more field to fullfil HasNextPage, FIXME: optimize this
+ input.OnlyWithoutAckedAt = onlyWithoutAckedAt
+
stream, err := r.client.EventList(ctx, input)
+
if err != nil {
return nil, err
}
diff --git a/core/api/node/graphql/service.gen.graphql b/core/api/node/graphql/service.gen.graphql
index 2ea4d40784..cc01e8bdec 100644
--- a/core/api/node/graphql/service.gen.graphql
+++ b/core/api/node/graphql/service.gen.graphql
@@ -408,6 +408,7 @@ type BertyPkgDeviceinfoDeviceInfo {
+
type BertyNodePingDestination {
destination: String!
}
@@ -615,6 +616,7 @@ type Query {
): BertyP2pPeerPayload
EventList(
filter: BertyP2pEventInput
+ onlyWithoutAckedAt: Enum
orderBy: String!
orderDesc: Bool!
first: Int32
diff --git a/core/api/node/service.pb.go b/core/api/node/service.pb.go
index be6eb12504..ca00a0515b 100644
--- a/core/api/node/service.pb.go
+++ b/core/api/node/service.pb.go
@@ -36,6 +36,32 @@ var _ = time.Kitchen
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
+type NullableTrueFalse int32
+
+const (
+ NullableTrueFalse_Null NullableTrueFalse = 0
+ NullableTrueFalse_True NullableTrueFalse = 1
+ NullableTrueFalse_False NullableTrueFalse = 2
+)
+
+var NullableTrueFalse_name = map[int32]string{
+ 0: "Null",
+ 1: "True",
+ 2: "False",
+}
+var NullableTrueFalse_value = map[string]int32{
+ "Null": 0,
+ "True": 1,
+ "False": 2,
+}
+
+func (x NullableTrueFalse) String() string {
+ return proto.EnumName(NullableTrueFalse_name, int32(x))
+}
+func (NullableTrueFalse) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_service_fea80af72a06dc0a, []int{0}
+}
+
type ProtocolsOutput struct {
Protocols []string `protobuf:"bytes,1,rep,name=protocols" json:"protocols,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -47,7 +73,7 @@ func (m *ProtocolsOutput) Reset() { *m = ProtocolsOutput{} }
func (m *ProtocolsOutput) String() string { return proto.CompactTextString(m) }
func (*ProtocolsOutput) ProtoMessage() {}
func (*ProtocolsOutput) Descriptor() ([]byte, []int) {
- return fileDescriptor_service_2df938565fd84e6f, []int{0}
+ return fileDescriptor_service_fea80af72a06dc0a, []int{0}
}
func (m *ProtocolsOutput) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -94,7 +120,7 @@ func (m *AppVersionOutput) Reset() { *m = AppVersionOutput{} }
func (m *AppVersionOutput) String() string { return proto.CompactTextString(m) }
func (*AppVersionOutput) ProtoMessage() {}
func (*AppVersionOutput) Descriptor() ([]byte, []int) {
- return fileDescriptor_service_2df938565fd84e6f, []int{1}
+ return fileDescriptor_service_fea80af72a06dc0a, []int{1}
}
func (m *AppVersionOutput) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -141,7 +167,7 @@ func (m *PingDestination) Reset() { *m = PingDestination{} }
func (m *PingDestination) String() string { return proto.CompactTextString(m) }
func (*PingDestination) ProtoMessage() {}
func (*PingDestination) Descriptor() ([]byte, []int) {
- return fileDescriptor_service_2df938565fd84e6f, []int{2}
+ return fileDescriptor_service_fea80af72a06dc0a, []int{2}
}
func (m *PingDestination) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -189,7 +215,7 @@ func (m *ContactRequestInput) Reset() { *m = ContactRequestInput{} }
func (m *ContactRequestInput) String() string { return proto.CompactTextString(m) }
func (*ContactRequestInput) ProtoMessage() {}
func (*ContactRequestInput) Descriptor() ([]byte, []int) {
- return fileDescriptor_service_2df938565fd84e6f, []int{3}
+ return fileDescriptor_service_fea80af72a06dc0a, []int{3}
}
func (m *ContactRequestInput) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -244,7 +270,7 @@ func (m *ConversationAddMessageInput) Reset() { *m = ConversationAddMess
func (m *ConversationAddMessageInput) String() string { return proto.CompactTextString(m) }
func (*ConversationAddMessageInput) ProtoMessage() {}
func (*ConversationAddMessageInput) Descriptor() ([]byte, []int) {
- return fileDescriptor_service_2df938565fd84e6f, []int{4}
+ return fileDescriptor_service_fea80af72a06dc0a, []int{4}
}
func (m *ConversationAddMessageInput) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -298,7 +324,7 @@ func (m *EventStreamInput) Reset() { *m = EventStreamInput{} }
func (m *EventStreamInput) String() string { return proto.CompactTextString(m) }
func (*EventStreamInput) ProtoMessage() {}
func (*EventStreamInput) Descriptor() ([]byte, []int) {
- return fileDescriptor_service_2df938565fd84e6f, []int{5}
+ return fileDescriptor_service_fea80af72a06dc0a, []int{5}
}
func (m *EventStreamInput) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -338,18 +364,19 @@ func (m *EventStreamInput) GetFilter() *p2p.Event {
// EventList
//
type EventListInput struct {
- Filter *p2p.Event `protobuf:"bytes,1,opt,name=filter" json:"filter,omitempty"`
- Paginate *Pagination `protobuf:"bytes,99,opt,name=paginate" json:"paginate,omitempty"`
- XXX_NoUnkeyedLiteral struct{} `json:"-"`
- XXX_unrecognized []byte `json:"-"`
- XXX_sizecache int32 `json:"-"`
+ Filter *p2p.Event `protobuf:"bytes,1,opt,name=filter" json:"filter,omitempty"`
+ OnlyWithoutAckedAt NullableTrueFalse `protobuf:"varint,2,opt,name=only_without_acked_at,json=onlyWithoutAckedAt,proto3,enum=berty.node.NullableTrueFalse" json:"only_without_acked_at,omitempty"`
+ Paginate *Pagination `protobuf:"bytes,99,opt,name=paginate" json:"paginate,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
func (m *EventListInput) Reset() { *m = EventListInput{} }
func (m *EventListInput) String() string { return proto.CompactTextString(m) }
func (*EventListInput) ProtoMessage() {}
func (*EventListInput) Descriptor() ([]byte, []int) {
- return fileDescriptor_service_2df938565fd84e6f, []int{6}
+ return fileDescriptor_service_fea80af72a06dc0a, []int{6}
}
func (m *EventListInput) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -385,6 +412,13 @@ func (m *EventListInput) GetFilter() *p2p.Event {
return nil
}
+func (m *EventListInput) GetOnlyWithoutAckedAt() NullableTrueFalse {
+ if m != nil {
+ return m.OnlyWithoutAckedAt
+ }
+ return NullableTrueFalse_Null
+}
+
func (m *EventListInput) GetPaginate() *Pagination {
if m != nil {
return m.Paginate
@@ -404,7 +438,7 @@ func (m *EventEdge) Reset() { *m = EventEdge{} }
func (m *EventEdge) String() string { return proto.CompactTextString(m) }
func (*EventEdge) ProtoMessage() {}
func (*EventEdge) Descriptor() ([]byte, []int) {
- return fileDescriptor_service_2df938565fd84e6f, []int{7}
+ return fileDescriptor_service_fea80af72a06dc0a, []int{7}
}
func (m *EventEdge) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -459,7 +493,7 @@ func (m *EventListConnection) Reset() { *m = EventListConnection{} }
func (m *EventListConnection) String() string { return proto.CompactTextString(m) }
func (*EventListConnection) ProtoMessage() {}
func (*EventListConnection) Descriptor() ([]byte, []int) {
- return fileDescriptor_service_2df938565fd84e6f, []int{8}
+ return fileDescriptor_service_fea80af72a06dc0a, []int{8}
}
func (m *EventListConnection) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -514,7 +548,7 @@ func (m *ContactListInput) Reset() { *m = ContactListInput{} }
func (m *ContactListInput) String() string { return proto.CompactTextString(m) }
func (*ContactListInput) ProtoMessage() {}
func (*ContactListInput) Descriptor() ([]byte, []int) {
- return fileDescriptor_service_2df938565fd84e6f, []int{9}
+ return fileDescriptor_service_fea80af72a06dc0a, []int{9}
}
func (m *ContactListInput) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -569,7 +603,7 @@ func (m *ContactEdge) Reset() { *m = ContactEdge{} }
func (m *ContactEdge) String() string { return proto.CompactTextString(m) }
func (*ContactEdge) ProtoMessage() {}
func (*ContactEdge) Descriptor() ([]byte, []int) {
- return fileDescriptor_service_2df938565fd84e6f, []int{10}
+ return fileDescriptor_service_fea80af72a06dc0a, []int{10}
}
func (m *ContactEdge) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -624,7 +658,7 @@ func (m *ContactListConnection) Reset() { *m = ContactListConnection{} }
func (m *ContactListConnection) String() string { return proto.CompactTextString(m) }
func (*ContactListConnection) ProtoMessage() {}
func (*ContactListConnection) Descriptor() ([]byte, []int) {
- return fileDescriptor_service_2df938565fd84e6f, []int{11}
+ return fileDescriptor_service_fea80af72a06dc0a, []int{11}
}
func (m *ContactListConnection) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -679,7 +713,7 @@ func (m *ConversationListInput) Reset() { *m = ConversationListInput{} }
func (m *ConversationListInput) String() string { return proto.CompactTextString(m) }
func (*ConversationListInput) ProtoMessage() {}
func (*ConversationListInput) Descriptor() ([]byte, []int) {
- return fileDescriptor_service_2df938565fd84e6f, []int{12}
+ return fileDescriptor_service_fea80af72a06dc0a, []int{12}
}
func (m *ConversationListInput) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -734,7 +768,7 @@ func (m *ConversationEdge) Reset() { *m = ConversationEdge{} }
func (m *ConversationEdge) String() string { return proto.CompactTextString(m) }
func (*ConversationEdge) ProtoMessage() {}
func (*ConversationEdge) Descriptor() ([]byte, []int) {
- return fileDescriptor_service_2df938565fd84e6f, []int{13}
+ return fileDescriptor_service_fea80af72a06dc0a, []int{13}
}
func (m *ConversationEdge) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -789,7 +823,7 @@ func (m *ConversationListConnection) Reset() { *m = ConversationListConn
func (m *ConversationListConnection) String() string { return proto.CompactTextString(m) }
func (*ConversationListConnection) ProtoMessage() {}
func (*ConversationListConnection) Descriptor() ([]byte, []int) {
- return fileDescriptor_service_2df938565fd84e6f, []int{14}
+ return fileDescriptor_service_fea80af72a06dc0a, []int{14}
}
func (m *ConversationListConnection) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -845,7 +879,7 @@ func (m *ConversationCreateInput) Reset() { *m = ConversationCreateInput
func (m *ConversationCreateInput) String() string { return proto.CompactTextString(m) }
func (*ConversationCreateInput) ProtoMessage() {}
func (*ConversationCreateInput) Descriptor() ([]byte, []int) {
- return fileDescriptor_service_2df938565fd84e6f, []int{15}
+ return fileDescriptor_service_fea80af72a06dc0a, []int{15}
}
func (m *ConversationCreateInput) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -907,7 +941,7 @@ func (m *ConversationManageMembersInput) Reset() { *m = ConversationMana
func (m *ConversationManageMembersInput) String() string { return proto.CompactTextString(m) }
func (*ConversationManageMembersInput) ProtoMessage() {}
func (*ConversationManageMembersInput) Descriptor() ([]byte, []int) {
- return fileDescriptor_service_2df938565fd84e6f, []int{16}
+ return fileDescriptor_service_fea80af72a06dc0a, []int{16}
}
func (m *ConversationManageMembersInput) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -968,7 +1002,7 @@ func (m *Pagination) Reset() { *m = Pagination{} }
func (m *Pagination) String() string { return proto.CompactTextString(m) }
func (*Pagination) ProtoMessage() {}
func (*Pagination) Descriptor() ([]byte, []int) {
- return fileDescriptor_service_2df938565fd84e6f, []int{17}
+ return fileDescriptor_service_fea80af72a06dc0a, []int{17}
}
func (m *Pagination) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1055,7 +1089,7 @@ func (m *PageInfo) Reset() { *m = PageInfo{} }
func (m *PageInfo) String() string { return proto.CompactTextString(m) }
func (*PageInfo) ProtoMessage() {}
func (*PageInfo) Descriptor() ([]byte, []int) {
- return fileDescriptor_service_2df938565fd84e6f, []int{18}
+ return fileDescriptor_service_fea80af72a06dc0a, []int{18}
}
func (m *PageInfo) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1130,7 +1164,7 @@ func (m *IntegrationTestInput) Reset() { *m = IntegrationTestInput{} }
func (m *IntegrationTestInput) String() string { return proto.CompactTextString(m) }
func (*IntegrationTestInput) ProtoMessage() {}
func (*IntegrationTestInput) Descriptor() ([]byte, []int) {
- return fileDescriptor_service_2df938565fd84e6f, []int{19}
+ return fileDescriptor_service_fea80af72a06dc0a, []int{19}
}
func (m *IntegrationTestInput) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1181,7 +1215,7 @@ func (m *IntegrationTestOutput) Reset() { *m = IntegrationTestOutput{} }
func (m *IntegrationTestOutput) String() string { return proto.CompactTextString(m) }
func (*IntegrationTestOutput) ProtoMessage() {}
func (*IntegrationTestOutput) Descriptor() ([]byte, []int) {
- return fileDescriptor_service_2df938565fd84e6f, []int{20}
+ return fileDescriptor_service_fea80af72a06dc0a, []int{20}
}
func (m *IntegrationTestOutput) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1256,7 +1290,7 @@ func (m *Void) Reset() { *m = Void{} }
func (m *Void) String() string { return proto.CompactTextString(m) }
func (*Void) ProtoMessage() {}
func (*Void) Descriptor() ([]byte, []int) {
- return fileDescriptor_service_2df938565fd84e6f, []int{21}
+ return fileDescriptor_service_fea80af72a06dc0a, []int{21}
}
func (m *Void) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1315,6 +1349,7 @@ func init() {
proto.RegisterType((*IntegrationTestInput)(nil), "berty.node.IntegrationTestInput")
proto.RegisterType((*IntegrationTestOutput)(nil), "berty.node.IntegrationTestOutput")
proto.RegisterType((*Void)(nil), "berty.node.Void")
+ proto.RegisterEnum("berty.node.NullableTrueFalse", NullableTrueFalse_name, NullableTrueFalse_value)
}
// Reference imports to suppress errors if they are not otherwise used.
@@ -2681,6 +2716,11 @@ func (m *EventListInput) MarshalTo(dAtA []byte) (int, error) {
}
i += n5
}
+ if m.OnlyWithoutAckedAt != 0 {
+ dAtA[i] = 0x10
+ i++
+ i = encodeVarintService(dAtA, i, uint64(m.OnlyWithoutAckedAt))
+ }
if m.Paginate != nil {
dAtA[i] = 0x9a
i++
@@ -3478,6 +3518,9 @@ func (m *EventListInput) Size() (n int) {
l = m.Filter.Size()
n += 1 + l + sovService(uint64(l))
}
+ if m.OnlyWithoutAckedAt != 0 {
+ n += 1 + sovService(uint64(m.OnlyWithoutAckedAt))
+ }
if m.Paginate != nil {
l = m.Paginate.Size()
n += 2 + l + sovService(uint64(l))
@@ -4451,6 +4494,25 @@ func (m *EventListInput) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field OnlyWithoutAckedAt", wireType)
+ }
+ m.OnlyWithoutAckedAt = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowService
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.OnlyWithoutAckedAt |= (NullableTrueFalse(b) & 0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
case 99:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Paginate", wireType)
@@ -6488,109 +6550,114 @@ var (
ErrIntOverflowService = fmt.Errorf("proto: integer overflow")
)
-func init() { proto.RegisterFile("api/node/service.proto", fileDescriptor_service_2df938565fd84e6f) }
-
-var fileDescriptor_service_2df938565fd84e6f = []byte{
- // 1616 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0x4d, 0x6f, 0xdb, 0x46,
- 0x13, 0x0e, 0x13, 0xc9, 0x91, 0x46, 0x76, 0xac, 0x77, 0xfd, 0x11, 0x49, 0xf1, 0xeb, 0x0f, 0xbe,
- 0x2f, 0x5a, 0xd7, 0x4d, 0xa4, 0xd4, 0x06, 0xfa, 0x85, 0xa0, 0x80, 0x6d, 0xb9, 0xae, 0xd1, 0xba,
- 0x75, 0x68, 0x37, 0x87, 0xa0, 0x80, 0x40, 0x91, 0x23, 0x8a, 0xb5, 0x44, 0x32, 0xe4, 0xca, 0xb5,
- 0x91, 0x43, 0x7b, 0x29, 0x90, 0x5e, 0x8a, 0x1e, 0x7b, 0xe8, 0xaf, 0xe8, 0xa1, 0x40, 0xff, 0x41,
- 0x8e, 0x45, 0x7e, 0x40, 0x5b, 0xa4, 0xc7, 0x5e, 0xdc, 0x6b, 0x4f, 0x05, 0x97, 0x4b, 0x72, 0x49,
- 0x51, 0x4a, 0x02, 0xa7, 0x27, 0x71, 0x67, 0x67, 0x9e, 0x99, 0x79, 0x76, 0xb8, 0x33, 0x22, 0xcc,
- 0xab, 0x8e, 0xd9, 0xb0, 0x6c, 0x1d, 0x1b, 0x1e, 0xba, 0x27, 0xa6, 0x86, 0x75, 0xc7, 0xb5, 0xa9,
- 0x4d, 0xa0, 0x8d, 0x2e, 0x3d, 0xab, 0xfb, 0x3b, 0x35, 0xd9, 0xd7, 0x61, 0xe2, 0xf6, 0xa0, 0xd3,
- 0x30, 0x5c, 0xd5, 0xe9, 0x3e, 0xe8, 0x85, 0xbf, 0x81, 0x7e, 0x6d, 0x86, 0xe9, 0xac, 0x3b, 0x0d,
- 0x3c, 0x41, 0x8b, 0x72, 0xe1, 0x5c, 0x28, 0xec, 0x23, 0x75, 0x4d, 0xcd, 0xe3, 0x62, 0x12, 0x8a,
- 0x1d, 0x44, 0x97, 0xcb, 0x66, 0xd1, 0xa2, 0x26, 0x3d, 0x6b, 0x68, 0xb6, 0x45, 0x55, 0x2d, 0x04,
- 0xa8, 0xc6, 0xd2, 0x13, 0x74, 0x3d, 0x95, 0x9a, 0xb6, 0x95, 0x32, 0xe8, 0xa3, 0xe7, 0xa9, 0x06,
- 0x0f, 0xbb, 0xb6, 0xe4, 0x1c, 0x1b, 0x0d, 0x1d, 0xfd, 0x44, 0x4c, 0xab, 0x63, 0x0b, 0x8f, 0xa1,
- 0x99, 0x61, 0x1b, 0x36, 0x7b, 0x6c, 0xf8, 0x4f, 0xa1, 0x99, 0x61, 0xdb, 0x46, 0x0f, 0xe3, 0x24,
- 0xa9, 0xd9, 0x47, 0x8f, 0xaa, 0x7d, 0x27, 0x50, 0x90, 0x1b, 0x30, 0x7d, 0xe0, 0x3f, 0x68, 0x76,
- 0xcf, 0xfb, 0x64, 0x40, 0x9d, 0x01, 0x25, 0x0b, 0x50, 0x74, 0x42, 0x51, 0x45, 0x5a, 0xbe, 0xb2,
- 0x5a, 0x54, 0x62, 0x81, 0x7c, 0x13, 0xca, 0x9b, 0x8e, 0x73, 0x0f, 0x5d, 0xcf, 0xb4, 0x2d, 0x6e,
- 0x51, 0x81, 0xab, 0x27, 0x81, 0xa0, 0x22, 0x2d, 0x4b, 0xab, 0x45, 0x25, 0x5c, 0xca, 0x1b, 0x30,
- 0x7d, 0x60, 0x5a, 0x46, 0x13, 0x3d, 0x6a, 0x5a, 0x2c, 0x4b, 0xb2, 0x0c, 0x25, 0x3d, 0x5e, 0x72,
- 0x03, 0x51, 0x24, 0x23, 0xcc, 0x6c, 0x07, 0x6c, 0x29, 0xf8, 0x60, 0x80, 0x1e, 0xdd, 0xb3, 0x7c,
- 0x2f, 0x0d, 0xb8, 0xca, 0x49, 0x64, 0x46, 0xa5, 0xf5, 0xb9, 0x7a, 0x70, 0x96, 0x01, 0x61, 0xf5,
- 0xd0, 0x26, 0xd4, 0x22, 0xff, 0x05, 0x30, 0x2d, 0xea, 0xda, 0x2d, 0x8a, 0xa7, 0xb4, 0x72, 0x99,
- 0x39, 0x2a, 0x32, 0xc9, 0x11, 0x9e, 0x52, 0xf9, 0x5b, 0x09, 0x6e, 0x6c, 0x0b, 0xfc, 0x6f, 0xea,
- 0xfa, 0x7e, 0xc0, 0x79, 0xe0, 0xef, 0x3d, 0x98, 0x14, 0x8f, 0x87, 0x3b, 0xad, 0x0d, 0x39, 0x8d,
- 0x34, 0x94, 0x84, 0xbe, 0x1f, 0x2f, 0x3f, 0x43, 0xe6, 0x7b, 0x28, 0x5e, 0xee, 0x4c, 0x09, 0xb5,
- 0xe4, 0x3b, 0x50, 0xde, 0xf1, 0x8b, 0xec, 0x90, 0xba, 0xa8, 0xf6, 0x83, 0x20, 0x56, 0x61, 0xa2,
- 0x63, 0xf6, 0x28, 0xba, 0xdc, 0x7d, 0x99, 0x63, 0x38, 0xeb, 0x4e, 0x9d, 0x29, 0x2b, 0x7c, 0x5f,
- 0xa6, 0x70, 0x8d, 0x09, 0x3e, 0x32, 0x43, 0xc2, 0x9e, 0xdb, 0x96, 0xbc, 0x0d, 0x05, 0x47, 0x35,
- 0x7c, 0xfe, 0xb1, 0xa2, 0x31, 0xdd, 0xf9, 0x7a, 0xfc, 0x9e, 0xd4, 0x0f, 0x82, 0x3d, 0xd3, 0xb6,
- 0xb6, 0x72, 0xe7, 0xe7, 0x55, 0x49, 0x89, 0xb4, 0xe5, 0x3d, 0x28, 0x32, 0xa8, 0x1d, 0xdd, 0x40,
- 0xf2, 0x7f, 0xc8, 0xf9, 0xfa, 0x23, 0xdd, 0xb1, 0x5d, 0x32, 0x0f, 0x13, 0xda, 0xc0, 0xf5, 0x6c,
- 0x97, 0x1f, 0x09, 0x5f, 0xc9, 0x0f, 0x61, 0x26, 0x4a, 0x60, 0xdb, 0xb6, 0x2c, 0xd4, 0x18, 0x8d,
- 0xaf, 0x43, 0x1e, 0x75, 0x03, 0x83, 0x52, 0x8c, 0x49, 0x64, 0x81, 0x45, 0xae, 0x95, 0x40, 0x87,
- 0xbc, 0x05, 0x45, 0x47, 0x35, 0xb0, 0xe5, 0xbf, 0x18, 0x3c, 0x93, 0xd9, 0x54, 0x26, 0xb8, 0x67,
- 0x75, 0xec, 0xad, 0xdc, 0xa3, 0xbf, 0x78, 0x1e, 0x6c, 0x2d, 0x3f, 0x84, 0x32, 0xaf, 0x9f, 0x98,
- 0xbf, 0x5b, 0x29, 0xfe, 0x46, 0xd4, 0xdb, 0xc5, 0x49, 0x3c, 0x80, 0x12, 0x07, 0x63, 0x34, 0xbe,
- 0x96, 0xa0, 0x71, 0x84, 0xd7, 0xf1, 0x5c, 0x7e, 0x09, 0x73, 0x42, 0x3a, 0x02, 0x9b, 0xb7, 0x92,
- 0x6c, 0x5e, 0x17, 0x23, 0x14, 0x62, 0xb8, 0x30, 0x9f, 0x5f, 0x4b, 0x2c, 0x82, 0xe8, 0x6d, 0x88,
- 0x59, 0x5d, 0x4f, 0xb1, 0x3a, 0xee, 0x85, 0xba, 0x38, 0xb5, 0xf7, 0xd9, 0xb9, 0x46, 0x88, 0x8c,
- 0xdf, 0x7a, 0x82, 0xdf, 0x71, 0xfe, 0xc7, 0x93, 0xfc, 0x8d, 0x04, 0xb5, 0x74, 0x8e, 0x02, 0xd5,
- 0xeb, 0x49, 0xaa, 0x17, 0x52, 0x54, 0x27, 0x62, 0xba, 0x30, 0xdf, 0xa7, 0x70, 0x5d, 0xc4, 0xdc,
- 0x76, 0x51, 0xa5, 0xfc, 0x1e, 0x7b, 0x03, 0x0a, 0xfc, 0x46, 0x4c, 0xbf, 0x43, 0xa9, 0x92, 0x8a,
- 0xd4, 0xc8, 0x2c, 0xe4, 0xa9, 0x49, 0x7b, 0xc8, 0x13, 0x0e, 0x16, 0x4c, 0x6a, 0x3b, 0xa6, 0x56,
- 0xb9, 0xc2, 0xa5, 0xfe, 0x42, 0xfe, 0x41, 0x82, 0x45, 0xd1, 0xf5, 0xbe, 0x6a, 0xa9, 0x06, 0xee,
- 0x63, 0xbf, 0x8d, 0xae, 0xf7, 0x72, 0x6e, 0xd2, 0x77, 0xfd, 0x9b, 0x94, 0xe1, 0x55, 0x2e, 0xb3,
- 0x04, 0x96, 0x47, 0x9b, 0x06, 0x8e, 0x95, 0xd0, 0x40, 0xfe, 0x49, 0x02, 0x88, 0xeb, 0x83, 0x54,
- 0xa1, 0x60, 0xbb, 0x3a, 0xba, 0xad, 0xf6, 0x59, 0xd8, 0xab, 0xd8, 0x7a, 0xeb, 0xcc, 0x6f, 0x17,
- 0xc1, 0x96, 0x8e, 0x9e, 0xc6, 0x32, 0x2f, 0x28, 0x45, 0x26, 0x69, 0xa2, 0xa7, 0x91, 0x1a, 0xe4,
- 0x3b, 0xa6, 0xeb, 0xd1, 0x4a, 0x69, 0x59, 0x5a, 0xcd, 0x6f, 0xe5, 0xbe, 0xf2, 0x0f, 0x20, 0x10,
- 0xf9, 0x7b, 0x6a, 0xc7, 0x2f, 0xe9, 0x49, 0x1f, 0x32, 0xdc, 0x63, 0x22, 0x52, 0x81, 0x5c, 0x4f,
- 0xf5, 0x68, 0x65, 0x4a, 0x30, 0x63, 0x12, 0xb2, 0x00, 0x13, 0x6d, 0xec, 0xd8, 0x2e, 0x56, 0xae,
- 0x09, 0x66, 0x5c, 0x26, 0xff, 0x28, 0x41, 0x21, 0x3c, 0x6e, 0xb2, 0x02, 0x93, 0x1e, 0x55, 0x5d,
- 0xda, 0xe2, 0x85, 0xc8, 0xbb, 0x26, 0x93, 0x6d, 0x33, 0x91, 0x1f, 0x3e, 0x5a, 0x7a, 0x2b, 0x51,
- 0xa9, 0x45, 0xb4, 0x74, 0xbe, 0x2d, 0xc3, 0x54, 0x57, 0xf5, 0x5a, 0x16, 0x9e, 0xd2, 0x96, 0x5f,
- 0x35, 0xec, 0x10, 0x0b, 0x4a, 0xa9, 0xab, 0x7a, 0x1f, 0xe3, 0x29, 0xf5, 0x3d, 0x91, 0x35, 0xf8,
- 0x8f, 0xaf, 0xe3, 0xb8, 0x78, 0x62, 0xda, 0x03, 0x2f, 0xd0, 0xcb, 0x31, 0xbd, 0xe9, 0xae, 0xea,
- 0x1d, 0x70, 0x39, 0xd3, 0x9d, 0x85, 0xbc, 0x66, 0x0f, 0x2c, 0x5a, 0xc9, 0x2f, 0x4b, 0xab, 0x53,
- 0x4a, 0xb0, 0x90, 0xd7, 0x60, 0x76, 0xcf, 0xa2, 0x68, 0xb8, 0x8c, 0xed, 0xa3, 0xa8, 0x77, 0x13,
- 0xc8, 0x59, 0x6a, 0x1f, 0x79, 0xdc, 0xec, 0x59, 0xfe, 0x53, 0x82, 0xb9, 0x94, 0x32, 0x9f, 0x27,
- 0x32, 0xb4, 0xfd, 0x19, 0xc3, 0x1b, 0x68, 0x1a, 0x7a, 0x1e, 0x3f, 0x9a, 0x70, 0xc9, 0xa7, 0x8f,
- 0xb6, 0xed, 0x21, 0x2f, 0xcc, 0x70, 0x49, 0xb6, 0x01, 0x18, 0x43, 0xa8, 0xb7, 0x54, 0xca, 0x12,
- 0xf1, 0xab, 0x2e, 0x18, 0x89, 0xea, 0xe1, 0x48, 0x54, 0x3f, 0x0a, 0x47, 0xa2, 0xad, 0xc2, 0xe3,
- 0x5f, 0x97, 0x2e, 0x7d, 0xf7, 0xdb, 0x92, 0xa4, 0x14, 0xb9, 0xdd, 0x26, 0x25, 0x3b, 0x50, 0xea,
- 0x98, 0x96, 0xe9, 0x75, 0x03, 0x94, 0xfc, 0x0b, 0xa0, 0x40, 0x68, 0xb8, 0x49, 0xe5, 0x59, 0xc8,
- 0xdd, 0xb3, 0x4d, 0x9d, 0x4c, 0x82, 0x74, 0xc4, 0x12, 0x2b, 0x28, 0xd2, 0xd1, 0xfa, 0xcf, 0x04,
- 0xae, 0x1e, 0x06, 0xf3, 0x29, 0x59, 0x87, 0xcb, 0x7b, 0x4d, 0x52, 0x16, 0x5f, 0x77, 0xdf, 0xa2,
- 0x36, 0x2d, 0xf4, 0xd1, 0x03, 0x44, 0x57, 0x2e, 0x3e, 0x39, 0xaf, 0xe6, 0xef, 0x0e, 0xd0, 0x3d,
- 0x23, 0x77, 0xa1, 0x24, 0x8c, 0x0c, 0x64, 0x61, 0xa8, 0x39, 0x0a, 0xb3, 0x44, 0x6d, 0xa8, 0x21,
- 0xcb, 0xe5, 0x27, 0xe7, 0xd5, 0xc9, 0xc3, 0x41, 0xdb, 0xd3, 0x5c, 0xd3, 0xf1, 0x0f, 0xe1, 0xb6,
- 0x44, 0x4c, 0xde, 0xd1, 0xfd, 0xdb, 0x8c, 0xd4, 0x86, 0x00, 0xa3, 0x8b, 0x3c, 0x03, 0xee, 0x66,
- 0x14, 0xd8, 0xdf, 0xe7, 0xd5, 0xa5, 0x4c, 0xd3, 0xf8, 0x7e, 0xbc, 0x2d, 0x91, 0x77, 0xa0, 0xb0,
- 0x8b, 0x94, 0xed, 0x91, 0x21, 0xb4, 0x0c, 0x7c, 0x21, 0xf1, 0x7b, 0x70, 0x2d, 0x39, 0x23, 0x92,
- 0xa5, 0x8c, 0x56, 0x26, 0xce, 0x8f, 0xb5, 0xec, 0x5b, 0x4f, 0x9e, 0x7c, 0x72, 0x5e, 0x2d, 0xec,
- 0x0f, 0x68, 0x70, 0x3f, 0x28, 0x30, 0xcb, 0x37, 0x36, 0x35, 0x0d, 0x9d, 0x08, 0x3d, 0xdb, 0xf8,
- 0xf9, 0x30, 0x3f, 0x84, 0xa9, 0x28, 0x9e, 0xbe, 0x7d, 0x82, 0x2f, 0x09, 0xec, 0x53, 0x47, 0x57,
- 0xe9, 0xc5, 0xc0, 0x68, 0x34, 0x78, 0xb0, 0xd3, 0x5e, 0xc8, 0xa0, 0x30, 0x3e, 0xef, 0x11, 0x88,
- 0x75, 0xf1, 0xd0, 0x57, 0x46, 0x20, 0x24, 0x8e, 0x7d, 0x07, 0x60, 0x17, 0x29, 0xdf, 0x7d, 0xc1,
- 0xf8, 0x85, 0x12, 0xd0, 0x80, 0x0c, 0xb7, 0x3c, 0xf2, 0xbf, 0x51, 0x6d, 0x56, 0x68, 0x89, 0xb5,
- 0x31, 0xad, 0x27, 0xc5, 0xd0, 0x23, 0x29, 0x39, 0x40, 0x30, 0x9e, 0x56, 0x46, 0xf9, 0x88, 0xc9,
- 0x1a, 0xe7, 0x61, 0x43, 0x64, 0xec, 0x95, 0x71, 0x58, 0x09, 0xda, 0x3e, 0x4f, 0xe6, 0xbb, 0x67,
- 0x9d, 0x98, 0x14, 0xc9, 0xda, 0x28, 0xfb, 0xe1, 0x3e, 0xfc, 0x02, 0x69, 0x1f, 0xb3, 0xbf, 0x60,
- 0xf1, 0x88, 0x72, 0xaa, 0xf5, 0x06, 0xfa, 0xbf, 0xe5, 0x4c, 0x85, 0xf9, 0xec, 0xff, 0x61, 0xe4,
- 0xd5, 0x51, 0xfe, 0x52, 0xff, 0xd5, 0x32, 0xee, 0x8a, 0xa4, 0x8b, 0x23, 0x98, 0x0e, 0x4a, 0x2e,
- 0x1e, 0x2a, 0xc6, 0xc4, 0x37, 0x36, 0x76, 0xa1, 0x02, 0x3b, 0x30, 0x97, 0x42, 0x0d, 0x18, 0x20,
- 0xcf, 0x9c, 0x4f, 0x6a, 0xcf, 0xd4, 0x10, 0xfd, 0x6c, 0x40, 0xe9, 0x03, 0xd5, 0xd2, 0x7b, 0xf8,
- 0xac, 0xab, 0x32, 0x6a, 0x1a, 0xf2, 0x25, 0xd2, 0x84, 0xf2, 0x2e, 0x5a, 0xe8, 0xaa, 0x14, 0xdf,
- 0x57, 0x8f, 0xb1, 0xa9, 0x52, 0x35, 0xa3, 0xb9, 0x0c, 0x5b, 0x26, 0x89, 0xeb, 0xc2, 0x8c, 0x32,
- 0xb0, 0x52, 0x6d, 0xda, 0x8b, 0x12, 0x64, 0x66, 0x59, 0x1d, 0xbf, 0xb6, 0x32, 0x46, 0x23, 0x68,
- 0xf3, 0x29, 0x4f, 0x77, 0xa0, 0xd8, 0xc4, 0xf6, 0xc0, 0x38, 0x30, 0x2d, 0x83, 0xdc, 0x48, 0x0c,
- 0xbd, 0xc9, 0x2f, 0x08, 0x99, 0xd9, 0xee, 0x43, 0xa9, 0xc9, 0x3e, 0x89, 0xf8, 0xe3, 0x92, 0x97,
- 0x91, 0x68, 0x18, 0x8f, 0x73, 0x6c, 0xd4, 0x85, 0x8f, 0x27, 0x82, 0x91, 0xc8, 0xf8, 0x2e, 0x40,
- 0xfc, 0x95, 0x23, 0x03, 0x2d, 0x71, 0x53, 0xa6, 0xbf, 0x87, 0x88, 0x40, 0x6f, 0x42, 0xde, 0xef,
- 0xd9, 0xde, 0x18, 0xea, 0xc3, 0xbe, 0x9e, 0x08, 0xa0, 0x09, 0xc5, 0xe8, 0xbb, 0x0c, 0x49, 0x4f,
- 0x00, 0xb5, 0x24, 0x3d, 0xc9, 0xef, 0x37, 0x22, 0xca, 0x67, 0x50, 0xde, 0xb7, 0x2d, 0x93, 0xda,
- 0xee, 0x96, 0x6a, 0xe9, 0x5f, 0x98, 0x3a, 0xed, 0x92, 0xaa, 0x00, 0x16, 0x49, 0x0f, 0xa9, 0x4a,
- 0xbd, 0xda, 0xe8, 0xad, 0xcc, 0x49, 0x61, 0x07, 0x26, 0x39, 0xfa, 0xa8, 0x14, 0x87, 0x46, 0x97,
- 0x2c, 0x18, 0x9f, 0x22, 0xd5, 0x32, 0xb5, 0xe7, 0xaa, 0xce, 0x38, 0xb9, 0xad, 0xb5, 0xc7, 0x4f,
- 0x17, 0xa5, 0x5f, 0x9e, 0x2e, 0x4a, 0xbf, 0x3f, 0x5d, 0x94, 0xbe, 0xff, 0x63, 0xf1, 0xd2, 0xfd,
- 0x4a, 0xa0, 0x4d, 0x51, 0xeb, 0x36, 0x34, 0xdb, 0xc5, 0x46, 0xf8, 0x0d, 0xb0, 0x3d, 0xc1, 0xe6,
- 0xb4, 0x8d, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x04, 0x5f, 0x80, 0x38, 0x16, 0x14, 0x00, 0x00,
+func init() { proto.RegisterFile("api/node/service.proto", fileDescriptor_service_fea80af72a06dc0a) }
+
+var fileDescriptor_service_fea80af72a06dc0a = []byte{
+ // 1696 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0x4f, 0x6f, 0x23, 0x49,
+ 0x15, 0x9f, 0x9e, 0xb5, 0x67, 0xec, 0xe7, 0xcc, 0xc4, 0x5b, 0x93, 0xcc, 0x3a, 0xde, 0x6c, 0x92,
+ 0x69, 0x10, 0x84, 0xb0, 0x6b, 0x2f, 0x1e, 0x89, 0x7f, 0x5a, 0x21, 0xe5, 0xdf, 0x0e, 0x11, 0x64,
+ 0xc9, 0xf6, 0x84, 0x41, 0x5a, 0x21, 0x59, 0xe5, 0xee, 0xe7, 0x76, 0x13, 0xa7, 0xba, 0xb7, 0xab,
+ 0x3a, 0x9b, 0x68, 0x0f, 0x70, 0x41, 0x5a, 0x2e, 0x88, 0x23, 0x07, 0x3e, 0x05, 0x07, 0x24, 0xbe,
+ 0x00, 0xda, 0x23, 0x9a, 0x0f, 0x00, 0x68, 0x38, 0x72, 0x09, 0x57, 0x4e, 0xa8, 0xaa, 0xab, 0xdb,
+ 0xd5, 0x76, 0xdb, 0x33, 0xc3, 0x0c, 0x27, 0x57, 0xbd, 0x7a, 0x7f, 0x7f, 0xef, 0x75, 0xbd, 0xe7,
+ 0x82, 0xfb, 0x34, 0x0a, 0xba, 0x2c, 0xf4, 0xb0, 0xcb, 0x31, 0xbe, 0x08, 0x5c, 0xec, 0x44, 0x71,
+ 0x28, 0x42, 0x02, 0x03, 0x8c, 0xc5, 0x55, 0x47, 0x9e, 0xb4, 0x6d, 0xc9, 0xa3, 0xc8, 0x83, 0x64,
+ 0xd8, 0xf5, 0x63, 0x1a, 0x8d, 0x3e, 0x1d, 0x67, 0xbf, 0x29, 0x7f, 0xfb, 0x9e, 0xe2, 0xe9, 0x45,
+ 0x5d, 0xbc, 0x40, 0x26, 0x34, 0x71, 0x35, 0x23, 0x9e, 0xa3, 0x88, 0x03, 0x97, 0x6b, 0x32, 0xc9,
+ 0xc8, 0x11, 0x62, 0xac, 0x69, 0x2b, 0xc8, 0x44, 0x20, 0xae, 0xba, 0x6e, 0xc8, 0x04, 0x75, 0x33,
+ 0x05, 0x6b, 0x13, 0xea, 0x05, 0xc6, 0x9c, 0x8a, 0x20, 0x64, 0x53, 0x02, 0xe7, 0xc8, 0x39, 0xf5,
+ 0xb5, 0xdb, 0xed, 0xcd, 0xe8, 0xcc, 0xef, 0x7a, 0x28, 0x03, 0x09, 0xd8, 0x30, 0x34, 0x96, 0x99,
+ 0x98, 0x1f, 0xfa, 0xa1, 0x5a, 0x76, 0xe5, 0x2a, 0x13, 0xf3, 0xc3, 0xd0, 0x1f, 0xe3, 0x24, 0x48,
+ 0x11, 0x9c, 0x23, 0x17, 0xf4, 0x3c, 0x4a, 0x19, 0xec, 0x2e, 0x2c, 0x9f, 0xc8, 0x85, 0x1b, 0x8e,
+ 0xf9, 0x4f, 0x12, 0x11, 0x25, 0x82, 0xac, 0x43, 0x3d, 0xca, 0x48, 0x2d, 0x6b, 0xeb, 0x8d, 0xed,
+ 0xba, 0x33, 0x21, 0xd8, 0xef, 0x42, 0x73, 0x37, 0x8a, 0x9e, 0x60, 0xcc, 0x83, 0x90, 0x69, 0x89,
+ 0x16, 0xdc, 0xbe, 0x48, 0x09, 0x2d, 0x6b, 0xcb, 0xda, 0xae, 0x3b, 0xd9, 0xd6, 0x7e, 0x08, 0xcb,
+ 0x27, 0x01, 0xf3, 0x0f, 0x90, 0x8b, 0x80, 0xa9, 0x28, 0xc9, 0x16, 0x34, 0xbc, 0xc9, 0x56, 0x0b,
+ 0x98, 0x24, 0x1b, 0xe1, 0xde, 0x7e, 0x8a, 0x96, 0x83, 0x9f, 0x26, 0xc8, 0xc5, 0x11, 0x93, 0x56,
+ 0xba, 0x70, 0x5b, 0x83, 0xa8, 0x84, 0x1a, 0xbd, 0xd5, 0x4e, 0x9a, 0xcb, 0x14, 0xb0, 0x4e, 0x26,
+ 0x93, 0x71, 0x91, 0x77, 0x00, 0x02, 0x26, 0xe2, 0xb0, 0x2f, 0xf0, 0x52, 0xb4, 0x6e, 0x2a, 0x43,
+ 0x75, 0x45, 0x39, 0xc5, 0x4b, 0x61, 0xff, 0xd6, 0x82, 0xb7, 0xf7, 0x0d, 0xfc, 0x77, 0x3d, 0xef,
+ 0x38, 0xc5, 0x3c, 0xb5, 0xf7, 0x03, 0x58, 0x32, 0xd3, 0xa3, 0x8d, 0xb6, 0x67, 0x8c, 0xe6, 0x1c,
+ 0x4e, 0x81, 0x5f, 0xfa, 0xab, 0x73, 0xa8, 0x6c, 0xcf, 0xf8, 0xab, 0x8d, 0x39, 0x19, 0x97, 0xfd,
+ 0x01, 0x34, 0x0f, 0x65, 0x91, 0x3d, 0x16, 0x31, 0xd2, 0xf3, 0xd4, 0x89, 0x6d, 0xb8, 0x35, 0x0c,
+ 0xc6, 0x02, 0x63, 0x6d, 0xbe, 0xa9, 0x75, 0x44, 0xbd, 0xa8, 0xa3, 0x98, 0x1d, 0x7d, 0x6e, 0xff,
+ 0xc5, 0x82, 0xbb, 0x8a, 0xf2, 0xe3, 0x20, 0x43, 0xec, 0x85, 0x85, 0xc9, 0x09, 0xac, 0x86, 0x6c,
+ 0x7c, 0xd5, 0xff, 0x2c, 0x10, 0xa3, 0x30, 0x11, 0x7d, 0xea, 0x9e, 0xa1, 0xd7, 0xa7, 0x29, 0x6a,
+ 0x77, 0x7b, 0xef, 0x74, 0x26, 0x5f, 0x4d, 0xe7, 0xa3, 0x64, 0x3c, 0xa6, 0x83, 0x31, 0x9e, 0xc6,
+ 0x09, 0x7e, 0x48, 0xc7, 0x1c, 0x1d, 0x22, 0x65, 0x7f, 0x96, 0x8a, 0xee, 0x4a, 0xc9, 0x5d, 0x41,
+ 0xbe, 0x0b, 0xb5, 0x88, 0xfa, 0x32, 0xa5, 0xd8, 0x72, 0x95, 0xf5, 0xfb, 0xa6, 0x92, 0x93, 0xf4,
+ 0x2c, 0x08, 0xd9, 0x5e, 0xe5, 0xfa, 0x7a, 0xcd, 0x72, 0x72, 0x6e, 0xfb, 0x08, 0xea, 0xca, 0xb9,
+ 0x43, 0xcf, 0x47, 0xf2, 0x55, 0xa8, 0x48, 0xfe, 0xb9, 0x01, 0xa8, 0x53, 0x72, 0x1f, 0x6e, 0xb9,
+ 0x49, 0xcc, 0xc3, 0x58, 0x67, 0x59, 0xef, 0xec, 0xcf, 0xe1, 0x5e, 0x0e, 0xc9, 0x7e, 0xc8, 0x18,
+ 0xba, 0x2a, 0x33, 0xdf, 0x84, 0x2a, 0x7a, 0x3e, 0xa6, 0xd5, 0x3d, 0xc9, 0x8b, 0x72, 0x2c, 0x37,
+ 0xed, 0xa4, 0x3c, 0xe4, 0x3b, 0x50, 0x8f, 0xa8, 0x8f, 0x7d, 0xf9, 0xad, 0xe9, 0x48, 0x56, 0xa6,
+ 0x22, 0xc1, 0x23, 0x36, 0x0c, 0xf7, 0x2a, 0x5f, 0xfc, 0x5b, 0xc7, 0xa1, 0xf6, 0xf6, 0xe7, 0xd0,
+ 0xd4, 0x25, 0x39, 0xc9, 0xc8, 0x7b, 0x53, 0x19, 0x99, 0x53, 0xc2, 0x59, 0x5a, 0xfe, 0x77, 0x10,
+ 0x4f, 0xa0, 0xa1, 0x95, 0x29, 0x18, 0xbf, 0x51, 0x80, 0x71, 0x8e, 0xd5, 0xc5, 0x58, 0xfe, 0x12,
+ 0x56, 0x8d, 0x70, 0x0c, 0x34, 0xdf, 0x2b, 0xa2, 0xf9, 0x96, 0xe9, 0xa1, 0xe1, 0xc3, 0x2b, 0xe3,
+ 0xf9, 0x6b, 0x4b, 0x79, 0x90, 0x7f, 0x60, 0x13, 0x54, 0x7b, 0x53, 0xa8, 0x2e, 0xfa, 0x46, 0x5f,
+ 0x1d, 0xda, 0x4f, 0x54, 0x5e, 0x73, 0x8d, 0x0a, 0xdf, 0x4e, 0x01, 0xdf, 0x45, 0xf6, 0x17, 0x83,
+ 0xfc, 0x1b, 0x0b, 0xda, 0xd3, 0x31, 0x1a, 0x50, 0xf7, 0x8a, 0x50, 0xaf, 0x4f, 0x41, 0x5d, 0xf0,
+ 0xe9, 0x95, 0xf1, 0xbe, 0x84, 0xb7, 0x4c, 0x9d, 0xfb, 0x31, 0x52, 0xa1, 0xaf, 0xc6, 0x6f, 0x41,
+ 0x4d, 0x5f, 0xb2, 0xd3, 0xdf, 0xd0, 0x54, 0x49, 0xe5, 0x6c, 0x64, 0x05, 0xaa, 0x22, 0x10, 0x63,
+ 0xd4, 0x01, 0xa7, 0x1b, 0x45, 0x0d, 0xa3, 0xc0, 0x6d, 0xbd, 0xa1, 0xa9, 0x72, 0x63, 0xff, 0xc1,
+ 0x82, 0x0d, 0xd3, 0xf4, 0x31, 0x65, 0xd4, 0xc7, 0x63, 0x3c, 0x1f, 0x60, 0xcc, 0x5f, 0xcf, 0xe5,
+ 0xfc, 0x7d, 0x79, 0x39, 0x2b, 0x7d, 0xad, 0x9b, 0x2a, 0x80, 0xad, 0xf9, 0xa2, 0xa9, 0x61, 0x27,
+ 0x13, 0xb0, 0xff, 0x64, 0x01, 0x4c, 0xea, 0x83, 0xac, 0x41, 0x2d, 0x8c, 0x3d, 0x8c, 0xfb, 0x83,
+ 0xab, 0xac, 0xfd, 0xa9, 0xfd, 0xde, 0x95, 0xec, 0x40, 0xe9, 0x91, 0x87, 0xdc, 0x55, 0x91, 0xd7,
+ 0x9c, 0xba, 0xa2, 0x1c, 0x20, 0x77, 0x49, 0x1b, 0xaa, 0xc3, 0x20, 0xe6, 0xa2, 0xd5, 0xd8, 0xb2,
+ 0xb6, 0xab, 0x7b, 0x95, 0x5f, 0xc9, 0x04, 0xa4, 0x24, 0x79, 0x46, 0x87, 0xb2, 0xa4, 0x97, 0xa4,
+ 0xca, 0xec, 0x4c, 0x91, 0x48, 0x0b, 0x2a, 0x63, 0xca, 0x45, 0xeb, 0x8e, 0x21, 0xa6, 0x28, 0x64,
+ 0x1d, 0x6e, 0x0d, 0x70, 0x18, 0xc6, 0xd8, 0xba, 0x6b, 0x88, 0x69, 0x9a, 0xfd, 0x47, 0x0b, 0x6a,
+ 0x59, 0xba, 0xc9, 0x03, 0x58, 0xe2, 0x82, 0xc6, 0xa2, 0xaf, 0x0b, 0x51, 0x37, 0x62, 0x45, 0xdb,
+ 0x57, 0x24, 0xe9, 0x3e, 0x32, 0xaf, 0x5f, 0xa8, 0xd4, 0x3a, 0x32, 0x4f, 0x1f, 0xdb, 0x70, 0x67,
+ 0x44, 0x79, 0x9f, 0xe1, 0xa5, 0xe8, 0xcb, 0xaa, 0x51, 0x49, 0xac, 0x39, 0x8d, 0x11, 0xe5, 0x1f,
+ 0xe1, 0xa5, 0x90, 0x96, 0xc8, 0x0e, 0xbc, 0x29, 0x79, 0xa2, 0x18, 0x2f, 0x82, 0x30, 0xe1, 0x29,
+ 0x5f, 0x45, 0xf1, 0x2d, 0x8f, 0x28, 0x3f, 0xd1, 0x74, 0xc5, 0xbb, 0x02, 0x55, 0x37, 0x4c, 0x98,
+ 0x68, 0x55, 0xb7, 0xac, 0xed, 0x3b, 0x4e, 0xba, 0xb1, 0x77, 0x60, 0xe5, 0x88, 0x09, 0xf4, 0x63,
+ 0x85, 0xf6, 0x69, 0x3e, 0x0e, 0x10, 0xa8, 0x30, 0x7a, 0x8e, 0xda, 0x6f, 0xb5, 0xb6, 0xff, 0x65,
+ 0xc1, 0xea, 0x14, 0xb3, 0x1e, 0x51, 0x4a, 0xb8, 0xe5, 0xd8, 0xc2, 0x13, 0xd7, 0x45, 0xce, 0x75,
+ 0x6a, 0xb2, 0xad, 0x1e, 0x68, 0x06, 0x21, 0x47, 0x5d, 0x98, 0xd9, 0x96, 0xec, 0x03, 0x28, 0x84,
+ 0xd2, 0xee, 0x58, 0xd1, 0x55, 0x97, 0x4e, 0x59, 0x9d, 0x6c, 0xca, 0xea, 0x9c, 0x66, 0x53, 0xd6,
+ 0x5e, 0xed, 0xcb, 0xbf, 0x6d, 0xde, 0xf8, 0xdd, 0xdf, 0x37, 0x2d, 0xa7, 0xae, 0xe5, 0x76, 0x05,
+ 0x39, 0x84, 0xc6, 0x30, 0x60, 0x01, 0x1f, 0xa5, 0x5a, 0xaa, 0x2f, 0xa1, 0x05, 0x32, 0xc1, 0x5d,
+ 0x61, 0xaf, 0x40, 0xe5, 0x49, 0x18, 0x78, 0x64, 0x09, 0xac, 0x53, 0x15, 0x58, 0xcd, 0xb1, 0x4e,
+ 0x77, 0x7a, 0xf0, 0xe6, 0x4c, 0x87, 0x26, 0x35, 0xa8, 0x48, 0x62, 0xf3, 0x86, 0x5c, 0x49, 0x72,
+ 0xd3, 0x22, 0x75, 0xa8, 0xaa, 0xc3, 0xe6, 0xcd, 0xde, 0x9f, 0x09, 0xdc, 0x7e, 0x9c, 0x8e, 0xc9,
+ 0xa4, 0x07, 0x37, 0x8f, 0x0e, 0x48, 0xd3, 0xbc, 0x22, 0xa4, 0x95, 0xf6, 0xb2, 0xd1, 0x7b, 0x4f,
+ 0x10, 0x63, 0xbb, 0xfe, 0xf4, 0x7a, 0xad, 0xfa, 0x71, 0x82, 0xf1, 0x15, 0xf9, 0x18, 0x1a, 0xc6,
+ 0xe4, 0x42, 0xd6, 0x67, 0x1a, 0xaa, 0x31, 0xd2, 0xb4, 0x67, 0x9a, 0xb8, 0xdd, 0x7c, 0x7a, 0xbd,
+ 0xb6, 0xf4, 0x38, 0x19, 0x70, 0x37, 0x0e, 0x22, 0x99, 0xb8, 0xf7, 0x2d, 0x12, 0xe8, 0x29, 0x40,
+ 0xde, 0x80, 0xa4, 0x3d, 0xa3, 0x30, 0xbf, 0xfc, 0x4b, 0xd4, 0xbd, 0x9b, 0x3b, 0xf6, 0x9f, 0xeb,
+ 0xb5, 0xcd, 0x52, 0xd1, 0xc9, 0x9d, 0xfa, 0xbe, 0x45, 0xbe, 0x07, 0xb5, 0x47, 0x28, 0xd4, 0x19,
+ 0x99, 0xd1, 0x56, 0xa2, 0xdf, 0x08, 0xfc, 0x09, 0xdc, 0x2d, 0x8e, 0xaa, 0x64, 0xb3, 0xa4, 0xfd,
+ 0x99, 0x63, 0x6c, 0xbb, 0xfc, 0xa6, 0xb4, 0x97, 0x9e, 0x5e, 0xaf, 0xd5, 0x8e, 0x13, 0x91, 0xde,
+ 0x29, 0x0e, 0xac, 0xe8, 0x83, 0x5d, 0xd7, 0xc5, 0x28, 0xd7, 0x5e, 0x2e, 0xfc, 0x62, 0x3a, 0x7f,
+ 0x04, 0x77, 0x72, 0x7f, 0xce, 0xc3, 0x0b, 0x7c, 0x4d, 0xca, 0x7e, 0x1a, 0x79, 0x54, 0xbc, 0x9a,
+ 0x32, 0x91, 0x0f, 0x2b, 0x2a, 0xdb, 0xeb, 0x25, 0x10, 0x4e, 0xf2, 0x3d, 0x47, 0x63, 0xc7, 0x4c,
+ 0xfa, 0x83, 0x39, 0x1a, 0x0a, 0x69, 0x3f, 0x04, 0x78, 0x84, 0x42, 0x9f, 0xbe, 0xa4, 0xff, 0x46,
+ 0x09, 0xb8, 0x40, 0x66, 0xdb, 0x24, 0xf9, 0xca, 0xbc, 0xd6, 0x6c, 0xb4, 0xd1, 0xf6, 0x82, 0x76,
+ 0x35, 0x85, 0xd0, 0x17, 0x56, 0x71, 0xe8, 0x50, 0x38, 0x3d, 0x98, 0x67, 0x63, 0x02, 0xd6, 0x22,
+ 0x0b, 0x0f, 0x4d, 0xc4, 0xbe, 0xb6, 0x48, 0x57, 0x01, 0xb6, 0x5f, 0x14, 0xe3, 0x3d, 0x62, 0x17,
+ 0x81, 0x40, 0xb2, 0x33, 0x4f, 0x7e, 0xb6, 0x77, 0xbf, 0x44, 0xd8, 0x67, 0xea, 0x9f, 0xe0, 0x64,
+ 0xac, 0xb9, 0x74, 0xc7, 0x89, 0xf7, 0xff, 0x32, 0x46, 0xe1, 0x7e, 0xf9, 0xdf, 0x41, 0xf2, 0xf5,
+ 0x79, 0xf6, 0xa6, 0xfe, 0x32, 0x96, 0xdc, 0x15, 0x45, 0x13, 0xa7, 0xb0, 0x9c, 0x96, 0xdc, 0x64,
+ 0x10, 0x59, 0xe0, 0xdf, 0x42, 0xdf, 0x8d, 0x0a, 0x1c, 0xc2, 0xea, 0x94, 0xd6, 0x14, 0x01, 0xf2,
+ 0xdc, 0x99, 0xa6, 0xfd, 0x5c, 0x0e, 0xd3, 0xce, 0x43, 0x68, 0xfc, 0x90, 0x32, 0x6f, 0x8c, 0xcf,
+ 0xbb, 0x2a, 0xf3, 0xa6, 0x61, 0xdf, 0x20, 0x07, 0xd0, 0x7c, 0x84, 0x0c, 0x63, 0x2a, 0xf0, 0x43,
+ 0x7a, 0x86, 0x07, 0x54, 0xd0, 0x92, 0xe6, 0x32, 0x2b, 0x59, 0x04, 0x6e, 0x04, 0xf7, 0x9c, 0x84,
+ 0x4d, 0xb5, 0x76, 0x9e, 0x07, 0xa8, 0xc4, 0xca, 0xa6, 0x84, 0xf6, 0x83, 0x05, 0x1c, 0xe9, 0x68,
+ 0x30, 0x65, 0xe9, 0x03, 0xa8, 0x1f, 0xe0, 0x20, 0xf1, 0x4f, 0x02, 0xe6, 0x93, 0xb7, 0x0b, 0x83,
+ 0x72, 0xf1, 0x21, 0xa3, 0x34, 0xda, 0x63, 0x68, 0x1c, 0xa8, 0x97, 0x19, 0x39, 0x62, 0xf1, 0x92,
+ 0x40, 0x33, 0x7f, 0xa2, 0x33, 0xbf, 0x63, 0xbc, 0xe1, 0x18, 0x42, 0x26, 0xe2, 0x8f, 0x00, 0x26,
+ 0x8f, 0x2d, 0x25, 0xda, 0x0a, 0x37, 0xe5, 0xf4, 0xb3, 0x8c, 0xa9, 0xe8, 0xdb, 0x50, 0x95, 0x3d,
+ 0x9b, 0x2f, 0x80, 0x3e, 0xeb, 0xeb, 0x05, 0x07, 0x0e, 0xa0, 0x9e, 0x3f, 0x0f, 0x91, 0xe9, 0x09,
+ 0xa0, 0x5d, 0x84, 0xa7, 0xf8, 0x8c, 0x64, 0x6a, 0xf9, 0x39, 0x34, 0x8f, 0x43, 0x16, 0x88, 0x30,
+ 0xde, 0xa3, 0xcc, 0xfb, 0x2c, 0xf0, 0xc4, 0x88, 0xac, 0x19, 0xca, 0x72, 0xea, 0x63, 0x41, 0x05,
+ 0x6f, 0xcf, 0x3f, 0x2a, 0x9d, 0x14, 0x0e, 0x61, 0x49, 0x6b, 0x9f, 0x17, 0xe2, 0xcc, 0xe8, 0x52,
+ 0xa6, 0x46, 0x42, 0x44, 0x59, 0xe0, 0xbe, 0x50, 0x75, 0x4e, 0x82, 0xdb, 0xdb, 0xf9, 0xf2, 0xd9,
+ 0x86, 0xf5, 0xd7, 0x67, 0x1b, 0xd6, 0x3f, 0x9e, 0x6d, 0x58, 0xbf, 0xff, 0xe7, 0xc6, 0x8d, 0x4f,
+ 0x5a, 0x29, 0xb7, 0x40, 0x77, 0xd4, 0x75, 0xc3, 0x18, 0xbb, 0xd9, 0x53, 0xe4, 0xe0, 0x96, 0x9a,
+ 0xed, 0x1e, 0xfe, 0x37, 0x00, 0x00, 0xff, 0xff, 0xb4, 0x7c, 0x2d, 0xa4, 0x9d, 0x14, 0x00, 0x00,
}
diff --git a/core/api/node/service.proto b/core/api/node/service.proto
index e49f24799e..dd7bf5ba3b 100644
--- a/core/api/node/service.proto
+++ b/core/api/node/service.proto
@@ -180,6 +180,7 @@ message EventStreamInput {
//
message EventListInput {
berty.p2p.Event filter = 1;
+ NullableTrueFalse only_without_acked_at = 2;
Pagination paginate = 99 [(gql.graphql_spread) = true];
}
message EventEdge {
@@ -279,3 +280,9 @@ message IntegrationTestOutput {
message Void {
bool T = 1;
}
+
+enum NullableTrueFalse {
+ Null = 0;
+ True = 1;
+ False = 2;
+}
diff --git a/core/go.mod b/core/go.mod
index 31ac40998f..dc9c9b57d1 100644
--- a/core/go.mod
+++ b/core/go.mod
@@ -119,7 +119,7 @@ require (
github.com/uber-go/atomic v1.3.2 // indirect
github.com/uber/jaeger-client-go v2.15.0+incompatible
github.com/uber/jaeger-lib v1.5.0 // indirect
- github.com/vektah/gqlparser v0.0.0-20181002002754-f119686bf1d4
+ github.com/vektah/gqlparser v0.0.0-20181002002754-f119686bf1d4 // indirect
github.com/whyrusleeping/base32 v0.0.0-20170828182744-c30ac30633cc // indirect
github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1 // indirect
github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc
@@ -136,7 +136,6 @@ require (
go.uber.org/multierr v1.1.0 // indirect
go.uber.org/zap v1.9.1
golang.org/x/crypto v0.0.0-20181015023909-0c41d7ab0a0e // indirect
- golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1
golang.org/x/sys v0.0.0-20181011152604-fa43e7bc11ba // indirect
google.golang.org/appengine v1.2.0 // indirect
google.golang.org/genproto v0.0.0-20181004005441-af9cb2a35e7f // indirect
diff --git a/core/node/nodeapi.go b/core/node/nodeapi.go
index c6c62fac38..6d4ef6578c 100644
--- a/core/node/nodeapi.go
+++ b/core/node/nodeapi.go
@@ -30,6 +30,12 @@ func (n *Node) EventList(input *node.EventListInput, stream node.Service_EventLi
// prepare query
query := n.sql.Model(p2p.Event{}).Where(input.Filter)
+ if input.OnlyWithoutAckedAt == node.NullableTrueFalse_True {
+ query = query.Where("acked_at IS NULL")
+ } else if input.OnlyWithoutAckedAt == node.NullableTrueFalse_False {
+ query = query.Where("acked_at IS NOT NULL")
+ }
+
// pagination
var err error
query, err = paginate(query, input.Paginate)