rename status-react to status-mobile
Signed-off-by: Jakub Sokołowski <jakub@status.im>
This commit is contained in:
parent
a8c8604745
commit
530f3c7a3a
|
@ -7,7 +7,7 @@ If you just have a question, don't open an issue but rather ask us on our [Disco
|
||||||
|
|
||||||
You just want to contribute something without reading tons of documentation, right? There're only a few useful links to start with.
|
You just want to contribute something without reading tons of documentation, right? There're only a few useful links to start with.
|
||||||
|
|
||||||
How [status-react](github.com/status-im/status-react) uses us:
|
How [status-mobile](github.com/status-im/status-mobile) uses us:
|
||||||
https://github.com/status-im/status-go/wiki/Notes-on-Bindings
|
https://github.com/status-im/status-go/wiki/Notes-on-Bindings
|
||||||
|
|
||||||
Architecture: TBD in [#238](https://github.com/status-im/status-go/issues/238)
|
Architecture: TBD in [#238](https://github.com/status-im/status-go/issues/238)
|
||||||
|
|
|
@ -15,7 +15,7 @@ We use `0` as the MAJOR version and bump only MINOR when there are breaking chan
|
||||||
1. Go to [Jenkins job](https://ci.status.im/job/status-go/job/manual/),
|
1. Go to [Jenkins job](https://ci.status.im/job/status-go/job/manual/),
|
||||||
1. Leave "RELEASE" **unchecked** and use your branch name.
|
1. Leave "RELEASE" **unchecked** and use your branch name.
|
||||||
|
|
||||||
After successful build, open it (https://ci.status.im/job/status-go/job/manual/$BUILD_ID/) in a browser. Artifacts will have a random ID, for example `status-go-android-181221-143603-5708af.aar`, means that `181221-143603-5708af` is a version you can use in [status-react](https://github.com/status-im/status-react).
|
After successful build, open it (https://ci.status.im/job/status-go/job/manual/$BUILD_ID/) in a browser. Artifacts will have a random ID, for example `status-go-android-181221-143603-5708af.aar`, means that `181221-143603-5708af` is a version you can use in [status-mobile](https://github.com/status-im/status-mobile).
|
||||||
|
|
||||||
## Releasing a new patch (no breaking changes or a hot-fix release)
|
## Releasing a new patch (no breaking changes or a hot-fix release)
|
||||||
|
|
||||||
|
|
|
@ -95,8 +95,8 @@ Transmission happens over Waku, and as of now, all data is deleted locally after
|
||||||
- [#2195 - Added Anonymous Metrics Send Opt-In Setting](https://github.com/status-im/status-go/pull/2195)
|
- [#2195 - Added Anonymous Metrics Send Opt-In Setting](https://github.com/status-im/status-go/pull/2195)
|
||||||
- [#2198 - Anon Metrics Broadcast](https://github.com/status-im/status-go/pull/2198)
|
- [#2198 - Anon Metrics Broadcast](https://github.com/status-im/status-go/pull/2198)
|
||||||
|
|
||||||
### `status-react`
|
### `status-mobile`
|
||||||
- [#11901 - Feature/anon metrics](https://github.com/status-im/status-react/pull/11901)
|
- [#11901 - Feature/anon metrics](https://github.com/status-im/status-mobile/pull/11901)
|
||||||
- [#11941 - Feature/anon metrics](https://github.com/status-im/status-react/pull/11941)
|
- [#11941 - Feature/anon metrics](https://github.com/status-im/status-mobile/pull/11941)
|
||||||
- [#11963 - 🗂️ Anon metrics batching](https://github.com/status-im/status-react/pull/11963)
|
- [#11963 - 🗂️ Anon metrics batching](https://github.com/status-im/status-mobile/pull/11963)
|
||||||
- [#12024 - 🔘 Anon metrics opt-in UI (disabled using feature flags)](https://github.com/status-im/status-react/pull/12024)
|
- [#12024 - 🔘 Anon metrics opt-in UI (disabled using feature flags)](https://github.com/status-im/status-mobile/pull/12024)
|
||||||
|
|
|
@ -38,7 +38,7 @@ type Page struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
// status-react navigation events
|
// status-mobile navigation events
|
||||||
NavigateTo AppMetricEventType = "navigate-to"
|
NavigateTo AppMetricEventType = "navigate-to"
|
||||||
ScreensOnWillFocus AppMetricEventType = "screens/on-will-focus"
|
ScreensOnWillFocus AppMetricEventType = "screens/on-will-focus"
|
||||||
)
|
)
|
||||||
|
|
|
@ -28,7 +28,7 @@ The db will be created in the `./tmp` directory
|
||||||
|
|
||||||
### How to import the db
|
### How to import the db
|
||||||
|
|
||||||
1) Create an account in status-react
|
1) Create an account in status-mobile
|
||||||
2) Login, copy the seed phrase
|
2) Login, copy the seed phrase
|
||||||
3) Create a db using this script using the seed phrase
|
3) Create a db using this script using the seed phrase
|
||||||
4) Copy the db to the import directory
|
4) Copy the db to the import directory
|
||||||
|
|
|
@ -30,7 +30,7 @@ var (
|
||||||
ResizeDimensions = []ResizeDimension{SmallDim, LargeDim}
|
ResizeDimensions = []ResizeDimension{SmallDim, LargeDim}
|
||||||
|
|
||||||
// DimensionSizeLimit the size limits imposed on each resize dimension
|
// DimensionSizeLimit the size limits imposed on each resize dimension
|
||||||
// Figures are based on the following sample data https://github.com/status-im/status-react/issues/11047#issuecomment-694970473
|
// Figures are based on the following sample data https://github.com/status-im/status-mobile/issues/11047#issuecomment-694970473
|
||||||
DimensionSizeLimit = map[ResizeDimension]DimensionLimits{
|
DimensionSizeLimit = map[ResizeDimension]DimensionLimits{
|
||||||
SmallDim: {
|
SmallDim: {
|
||||||
Ideal: 2560, // Base on the largest sample image at quality 60% (2,554 bytes ∴ 1024 * 2.5)
|
Ideal: 2560, // Base on the largest sample image at quality 60% (2,554 bytes ∴ 1024 * 2.5)
|
||||||
|
|
|
@ -4,7 +4,7 @@ Package mobile implements [gomobile](https://github.com/golang/mobile) bindings
|
||||||
|
|
||||||
Individual bindings and their descriptions are available in `status.go`.
|
Individual bindings and their descriptions are available in `status.go`.
|
||||||
|
|
||||||
The primary consumer of this package is [status-react project](https://github.com/status-im/status-react).
|
The primary consumer of this package is [status-mobile project](https://github.com/status-im/status-mobile).
|
||||||
|
|
||||||
The framework name is generated from the package name, hence these things are done intentionally:
|
The framework name is generated from the package name, hence these things are done intentionally:
|
||||||
(1) this package's name isn't equal to the directory name (`statusgo` vs `mobile` respectively);
|
(1) this package's name isn't equal to the directory name (`statusgo` vs `mobile` respectively);
|
||||||
|
|
|
@ -90,7 +90,7 @@ var (
|
||||||
reactFieldName: "gifs/favorite-gifs",
|
reactFieldName: "gifs/favorite-gifs",
|
||||||
dBColumnName: "gif_favorites",
|
dBColumnName: "gif_favorites",
|
||||||
valueHandler: JSONBlobHandler,
|
valueHandler: JSONBlobHandler,
|
||||||
// TODO resolve issue 8 https://github.com/status-im/status-react/pull/13053#issuecomment-1065179963
|
// TODO resolve issue 8 https://github.com/status-im/status-mobile/pull/13053#issuecomment-1065179963
|
||||||
// The reported issue is not directly related, but I suspect that gifs suffer the same issue
|
// The reported issue is not directly related, but I suspect that gifs suffer the same issue
|
||||||
syncProtobufFactory: &SyncProtobufFactory{
|
syncProtobufFactory: &SyncProtobufFactory{
|
||||||
inactive: true, // Remove after issue is resolved
|
inactive: true, // Remove after issue is resolved
|
||||||
|
@ -104,7 +104,7 @@ var (
|
||||||
reactFieldName: "gifs/recent-gifs",
|
reactFieldName: "gifs/recent-gifs",
|
||||||
dBColumnName: "gif_recents",
|
dBColumnName: "gif_recents",
|
||||||
valueHandler: JSONBlobHandler,
|
valueHandler: JSONBlobHandler,
|
||||||
// TODO resolve issue 8 https://github.com/status-im/status-react/pull/13053#issuecomment-1065179963
|
// TODO resolve issue 8 https://github.com/status-im/status-mobile/pull/13053#issuecomment-1065179963
|
||||||
// The reported issue is not directly related, but I suspect that gifs suffer the same issue
|
// The reported issue is not directly related, but I suspect that gifs suffer the same issue
|
||||||
syncProtobufFactory: &SyncProtobufFactory{
|
syncProtobufFactory: &SyncProtobufFactory{
|
||||||
inactive: true, // Remove after issue is resolved
|
inactive: true, // Remove after issue is resolved
|
||||||
|
@ -218,7 +218,7 @@ var (
|
||||||
PreferredName = SettingField{
|
PreferredName = SettingField{
|
||||||
reactFieldName: "preferred-name",
|
reactFieldName: "preferred-name",
|
||||||
dBColumnName: "preferred_name",
|
dBColumnName: "preferred_name",
|
||||||
// TODO resolve issue 9 https://github.com/status-im/status-react/pull/13053#issuecomment-1075336559
|
// TODO resolve issue 9 https://github.com/status-im/status-mobile/pull/13053#issuecomment-1075336559
|
||||||
syncProtobufFactory: &SyncProtobufFactory{
|
syncProtobufFactory: &SyncProtobufFactory{
|
||||||
inactive: true, // Remove after issue is resolved
|
inactive: true, // Remove after issue is resolved
|
||||||
fromInterface: preferredNameProtobufFactory,
|
fromInterface: preferredNameProtobufFactory,
|
||||||
|
@ -231,7 +231,7 @@ var (
|
||||||
reactFieldName: "preview-privacy?",
|
reactFieldName: "preview-privacy?",
|
||||||
dBColumnName: "preview_privacy",
|
dBColumnName: "preview_privacy",
|
||||||
valueHandler: BoolHandler,
|
valueHandler: BoolHandler,
|
||||||
// TODO resolved issue 7 https://github.com/status-im/status-react/pull/13053#issuecomment-1065179963
|
// TODO resolved issue 7 https://github.com/status-im/status-mobile/pull/13053#issuecomment-1065179963
|
||||||
syncProtobufFactory: &SyncProtobufFactory{
|
syncProtobufFactory: &SyncProtobufFactory{
|
||||||
inactive: true, // Remove after issue is resolved
|
inactive: true, // Remove after issue is resolved
|
||||||
fromInterface: previewPrivacyProtobufFactory,
|
fromInterface: previewPrivacyProtobufFactory,
|
||||||
|
@ -298,7 +298,7 @@ var (
|
||||||
reactFieldName: "send-status-updates?",
|
reactFieldName: "send-status-updates?",
|
||||||
dBColumnName: "send_status_updates",
|
dBColumnName: "send_status_updates",
|
||||||
valueHandler: BoolHandler,
|
valueHandler: BoolHandler,
|
||||||
// TODO resolve issue 10 https://github.com/status-im/status-react/pull/13053#issuecomment-1075352256
|
// TODO resolve issue 10 https://github.com/status-im/status-mobile/pull/13053#issuecomment-1075352256
|
||||||
syncProtobufFactory: &SyncProtobufFactory{
|
syncProtobufFactory: &SyncProtobufFactory{
|
||||||
inactive: true, // Remove after issue is resolved
|
inactive: true, // Remove after issue is resolved
|
||||||
fromInterface: sendStatusUpdatesProtobufFactory,
|
fromInterface: sendStatusUpdatesProtobufFactory,
|
||||||
|
|
|
@ -115,7 +115,7 @@ func (s *MessengerAnonMetricsSuite) TearDownTest() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *MessengerAnonMetricsSuite) TestReceiveAnonMetric() {
|
func (s *MessengerAnonMetricsSuite) TestReceiveAnonMetric() {
|
||||||
// Create the appmetrics API to simulate incoming metrics from `status-react`
|
// Create the appmetrics API to simulate incoming metrics from `status-mobile`
|
||||||
ama := appmetrics.NewAPI(appmetricsDB.NewDB(s.alice.database))
|
ama := appmetrics.NewAPI(appmetricsDB.NewDB(s.alice.database))
|
||||||
|
|
||||||
// Generate and store some metrics to Alice
|
// Generate and store some metrics to Alice
|
||||||
|
|
|
@ -89,7 +89,7 @@ func TestPrepareContentMentions(t *testing.T) {
|
||||||
func TestPrepareContentLinks(t *testing.T) {
|
func TestPrepareContentLinks(t *testing.T) {
|
||||||
message := &Message{}
|
message := &Message{}
|
||||||
|
|
||||||
link1 := "https://github.com/status-im/status-react"
|
link1 := "https://github.com/status-im/status-mobile"
|
||||||
link2 := "https://www.youtube.com/watch?v=6RYO8KCY6YE"
|
link2 := "https://www.youtube.com/watch?v=6RYO8KCY6YE"
|
||||||
|
|
||||||
message.Text = "Just look at that repo " + link1 + " . And watch this video - " + link2
|
message.Text = "Just look at that repo " + link1 + " . And watch this video - " + link2
|
||||||
|
|
|
@ -1201,7 +1201,7 @@ func (m *Messenger) HandleChatMessage(state *ReceivedMessageState) error {
|
||||||
return ErrMessageNotAllowed
|
return ErrMessageNotAllowed
|
||||||
}
|
}
|
||||||
|
|
||||||
// It looks like status-react created profile chats as public chats
|
// It looks like status-mobile created profile chats as public chats
|
||||||
// so for now we need to check for the presence of "@" in their chatID
|
// so for now we need to check for the presence of "@" in their chatID
|
||||||
if chat.Public() && !chat.ProfileUpdates() {
|
if chat.Public() && !chat.ProfileUpdates() {
|
||||||
switch receivedMessage.ContentType {
|
switch receivedMessage.ContentType {
|
||||||
|
|
|
@ -846,7 +846,7 @@ func TestSaveLinks(t *testing.T) {
|
||||||
LocalChatID: chatID,
|
LocalChatID: chatID,
|
||||||
ChatMessage: protobuf.ChatMessage{Text: "some-text"},
|
ChatMessage: protobuf.ChatMessage{Text: "some-text"},
|
||||||
From: "me",
|
From: "me",
|
||||||
Links: []string{"https://github.com/status-im/status-react"},
|
Links: []string{"https://github.com/status-im/status-mobile"},
|
||||||
}
|
}
|
||||||
|
|
||||||
err = p.SaveMessages([]*common.Message{&message})
|
err = p.SaveMessages([]*common.Message{&message})
|
||||||
|
|
|
@ -29,7 +29,7 @@ type AnonymousMetric struct {
|
||||||
Event string `protobuf:"bytes,2,opt,name=event,proto3" json:"event,omitempty"`
|
Event string `protobuf:"bytes,2,opt,name=event,proto3" json:"event,omitempty"`
|
||||||
// value is a filtered and validated raw json payload attached to the event
|
// value is a filtered and validated raw json payload attached to the event
|
||||||
Value []byte `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
|
Value []byte `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
|
||||||
// app_version is the version of the `status-react` app that the metric came from
|
// app_version is the version of the `status-mobile` app that the metric came from
|
||||||
AppVersion string `protobuf:"bytes,4,opt,name=app_version,json=appVersion,proto3" json:"app_version,omitempty"`
|
AppVersion string `protobuf:"bytes,4,opt,name=app_version,json=appVersion,proto3" json:"app_version,omitempty"`
|
||||||
// os is the operating system of the device the application is installed on
|
// os is the operating system of the device the application is installed on
|
||||||
Os string `protobuf:"bytes,5,opt,name=os,proto3" json:"os,omitempty"`
|
Os string `protobuf:"bytes,5,opt,name=os,proto3" json:"os,omitempty"`
|
||||||
|
|
|
@ -16,7 +16,7 @@ message AnonymousMetric {
|
||||||
// value is a filtered and validated raw json payload attached to the event
|
// value is a filtered and validated raw json payload attached to the event
|
||||||
bytes value=3;
|
bytes value=3;
|
||||||
|
|
||||||
// app_version is the version of the `status-react` app that the metric came from
|
// app_version is the version of the `status-mobile` app that the metric came from
|
||||||
string app_version=4;
|
string app_version=4;
|
||||||
|
|
||||||
// os is the operating system of the device the application is installed on
|
// os is the operating system of the device the application is installed on
|
||||||
|
|
|
@ -62,6 +62,6 @@ EOL
|
||||||
|
|
||||||
# Links
|
# Links
|
||||||
|
|
||||||
* https://github.com/status-im/status-react/issues/9394
|
* https://github.com/status-im/status-mobile/issues/9394
|
||||||
* https://github.com/status-im/status-go/pull/1672
|
* https://github.com/status-im/status-go/pull/1672
|
||||||
* https://github.com/status-im/tcp-shaker
|
* https://github.com/status-im/tcp-shaker
|
||||||
|
|
|
@ -168,7 +168,7 @@ func (s *Service) InitProtocol(nodeName string, identity *ecdsa.PrivateKey, db *
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Service) StartMessenger() (*protocol.MessengerResponse, error) {
|
func (s *Service) StartMessenger() (*protocol.MessengerResponse, error) {
|
||||||
// Start a loop that retrieves all messages and propagates them to status-react.
|
// Start a loop that retrieves all messages and propagates them to status-mobile.
|
||||||
s.cancelMessenger = make(chan struct{})
|
s.cancelMessenger = make(chan struct{})
|
||||||
response, err := s.messenger.Start()
|
response, err := s.messenger.Start()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -633,12 +633,12 @@ When a new multiaccount is created corresponding address will not contain any tr
|
||||||
1. Call `wallet_setInitialRange`
|
1. Call `wallet_setInitialRange`
|
||||||
2. Call `wallet_checkRecentHistory`
|
2. Call `wallet_checkRecentHistory`
|
||||||
3. On `recent-history-ready` request transactions via `wallet_getTransfersByAddress`
|
3. On `recent-history-ready` request transactions via `wallet_getTransfersByAddress`
|
||||||
4. Repeat `wallet_checkRecentHistory` in N minutes (currently 20 minutes in `status-react` for upstream RPC node. If a custom node is used interval can be arbitrary)
|
4. Repeat `wallet_checkRecentHistory` in N minutes (currently 20 minutes in `status-mobile` for upstream RPC node. If a custom node is used interval can be arbitrary)
|
||||||
|
|
||||||
### Logging into application
|
### Logging into application
|
||||||
1. Call `wallet_checkRecentHistory`
|
1. Call `wallet_checkRecentHistory`
|
||||||
2. On `recent-history-ready` request transactions via `wallet_getTransfersByAddress`
|
2. On `recent-history-ready` request transactions via `wallet_getTransfersByAddress`
|
||||||
3. Repeat `wallet_checkRecentHistory` in N minutes (currently 20 minutes in `status-react` for upstream RPC node. If a custom node is used interval can be arbitrary)
|
3. Repeat `wallet_checkRecentHistory` in N minutes (currently 20 minutes in `status-mobile` for upstream RPC node. If a custom node is used interval can be arbitrary)
|
||||||
|
|
||||||
### Watching transaction
|
### Watching transaction
|
||||||
1. Call `wallet_watchTransaction`
|
1. Call `wallet_watchTransaction`
|
||||||
|
|
|
@ -23,7 +23,7 @@ type CryptoOnRamp struct {
|
||||||
LogoURL string `json:"logoUrl"`
|
LogoURL string `json:"logoUrl"`
|
||||||
SiteURL string `json:"siteUrl"`
|
SiteURL string `json:"siteUrl"`
|
||||||
Hostname string `json:"hostname"`
|
Hostname string `json:"hostname"`
|
||||||
Params map[string]string `json:"params"` // TODO implement params in JSON and parsing status-react
|
Params map[string]string `json:"params"` // TODO implement params in JSON and parsing status-mobile
|
||||||
}
|
}
|
||||||
|
|
||||||
type DataSourceType int
|
type DataSourceType int
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// Package signal implements event-based signalling interface between status-go
|
// Package signal implements event-based signalling interface between status-go
|
||||||
// and externally linked codebases like status-react or status-desktop.
|
// and externally linked codebases like status-mobile or status-desktop.
|
||||||
// Events are send asynchronously using OS-specific linking mechanisms. See sources
|
// Events are send asynchronously using OS-specific linking mechanisms. See sources
|
||||||
// for implementation details.
|
// for implementation details.
|
||||||
package signal
|
package signal
|
||||||
|
|
|
@ -177,7 +177,7 @@ Additionally, the file contains `EnvelopeEvent{}`, which serves as a representat
|
||||||
|
|
||||||
#### Usage
|
#### Usage
|
||||||
|
|
||||||
A `status-go` node will install / register filters through RPC calls from a client (eg `status-react`). The basic implementation of a filter requires at least 2 things:
|
A `status-go` node will install / register filters through RPC calls from a client (eg `status-mobile`). The basic implementation of a filter requires at least 2 things:
|
||||||
|
|
||||||
1) An encryption key, example "`superSafeEncryptionKey`"
|
1) An encryption key, example "`superSafeEncryptionKey`"
|
||||||
2) A 4 byte topic (`TopicType`), example "`0x1234`"
|
2) A 4 byte topic (`TopicType`), example "`0x1234`"
|
||||||
|
@ -196,7 +196,7 @@ In addition to the basic example above `Filter{}` allows for richer filtering:
|
||||||
|`KeyAsym` |`*ecdsa.PrivateKey`|Private Key of recipient |
|
|`KeyAsym` |`*ecdsa.PrivateKey`|Private Key of recipient |
|
||||||
|`KeySym` |`[]byte` |Key associated with the Topic |
|
|`KeySym` |`[]byte` |Key associated with the Topic |
|
||||||
|`Topics` |`[][]byte` |Topics to filter messages with |
|
|`Topics` |`[][]byte` |Topics to filter messages with |
|
||||||
|`PoW` |`float64` |Proof of work as [described in the Waku specs](https://github.com/vacp2p/specs/blob/master/specs/waku/waku-1.md#pow-requirement-update) .<br/><br/>**Note:** *In `status-react` each client listens to the topic hash(pk), if a client wants to send a message to hash(pk1) they will also need to listen the hash(pk1) topic. However if the client doesn't want to receive envelopes for topic hash(pk1), the client may set the PoW to 1 so that all envelopes for topic hash(pk1) are discarded.*|
|
|`PoW` |`float64` |Proof of work as [described in the Waku specs](https://github.com/vacp2p/specs/blob/master/specs/waku/waku-1.md#pow-requirement-update) .<br/><br/>**Note:** *In `status-mobile` each client listens to the topic hash(pk), if a client wants to send a message to hash(pk1) they will also need to listen the hash(pk1) topic. However if the client doesn't want to receive envelopes for topic hash(pk1), the client may set the PoW to 1 so that all envelopes for topic hash(pk1) are discarded.*|
|
||||||
|`AllowP2P` |`bool` |Indicates whether this filter is interested in direct peer-to-peer messages.<br/><br/>**Note:** *Typically set to true, we always want to receive P2P envelopes on a filter from trusted peers*|
|
|`AllowP2P` |`bool` |Indicates whether this filter is interested in direct peer-to-peer messages.<br/><br/>**Note:** *Typically set to true, we always want to receive P2P envelopes on a filter from trusted peers*|
|
||||||
|`SymKeyHash`|`common.Hash` |The Keccak256Hash of the symmetric key, needed for optimization|
|
|`SymKeyHash`|`common.Hash` |The Keccak256Hash of the symmetric key, needed for optimization|
|
||||||
|
|
||||||
|
@ -242,7 +242,7 @@ Waku, by default, does not send a BloomFilter, instead sends the topic in a clea
|
||||||
|
|
||||||
`Peer` represents a remote Waku client with which the local host waku instance exchanges data / messages.
|
`Peer` represents a remote Waku client with which the local host waku instance exchanges data / messages.
|
||||||
|
|
||||||
`WakuHost` is the local instance of waku, which both interacts with remote clients (peers) and local clients (like `status-react`, via a RPC API).
|
`WakuHost` is the local instance of waku, which both interacts with remote clients (peers) and local clients (like `status-mobile`, via a RPC API).
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
@ -97,7 +97,7 @@ type WakuHost interface {
|
||||||
// this only works if the peer is a mailserver
|
// this only works if the peer is a mailserver
|
||||||
OnMessagesRequest(MessagesRequest, Peer) error
|
OnMessagesRequest(MessagesRequest, Peer) error
|
||||||
// OnDeprecatedMessagesRequest handles when the peer receive a message request
|
// OnDeprecatedMessagesRequest handles when the peer receive a message request
|
||||||
// using the *Envelope format. Currently the only production client (status-react)
|
// using the *Envelope format. Currently the only production client (status-mobile)
|
||||||
// is exclusively using this one.
|
// is exclusively using this one.
|
||||||
OnDeprecatedMessagesRequest(*Envelope, Peer) error
|
OnDeprecatedMessagesRequest(*Envelope, Peer) error
|
||||||
|
|
||||||
|
|
|
@ -177,7 +177,7 @@ Additionally, the file contains `EnvelopeEvent{}`, which serves as a representat
|
||||||
|
|
||||||
#### Usage
|
#### Usage
|
||||||
|
|
||||||
A `status-go` node will install / register filters through RPC calls from a client (eg `status-react`). The basic implementation of a filter requires at least 2 things:
|
A `status-go` node will install / register filters through RPC calls from a client (eg `status-mobile`). The basic implementation of a filter requires at least 2 things:
|
||||||
|
|
||||||
1) An encryption key, example "`superSafeEncryptionKey`"
|
1) An encryption key, example "`superSafeEncryptionKey`"
|
||||||
2) A 4 byte topic (`TopicType`), example "`0x1234`"
|
2) A 4 byte topic (`TopicType`), example "`0x1234`"
|
||||||
|
@ -196,7 +196,7 @@ In addition to the basic example above `Filter{}` allows for richer filtering:
|
||||||
|`KeyAsym` |`*ecdsa.PrivateKey`|Private Key of recipient |
|
|`KeyAsym` |`*ecdsa.PrivateKey`|Private Key of recipient |
|
||||||
|`KeySym` |`[]byte` |Key associated with the Topic |
|
|`KeySym` |`[]byte` |Key associated with the Topic |
|
||||||
|`Topics` |`[][]byte` |Topics to filter messages with |
|
|`Topics` |`[][]byte` |Topics to filter messages with |
|
||||||
|`PoW` |`float64` |Proof of work as [described in the Waku specs](https://github.com/vacp2p/specs/blob/master/specs/waku/waku-1.md#pow-requirement-update) .<br/><br/>**Note:** *In `status-react` each client listens to the topic hash(pk), if a client wants to send a message to hash(pk1) they will also need to listen the hash(pk1) topic. However if the client doesn't want to receive envelopes for topic hash(pk1), the client may set the PoW to 1 so that all envelopes for topic hash(pk1) are discarded.*|
|
|`PoW` |`float64` |Proof of work as [described in the Waku specs](https://github.com/vacp2p/specs/blob/master/specs/waku/waku-1.md#pow-requirement-update) .<br/><br/>**Note:** *In `status-mobile` each client listens to the topic hash(pk), if a client wants to send a message to hash(pk1) they will also need to listen the hash(pk1) topic. However if the client doesn't want to receive envelopes for topic hash(pk1), the client may set the PoW to 1 so that all envelopes for topic hash(pk1) are discarded.*|
|
||||||
|`AllowP2P` |`bool` |Indicates whether this filter is interested in direct peer-to-peer messages.<br/><br/>**Note:** *Typically set to true, we always want to receive P2P envelopes on a filter from trusted peers*|
|
|`AllowP2P` |`bool` |Indicates whether this filter is interested in direct peer-to-peer messages.<br/><br/>**Note:** *Typically set to true, we always want to receive P2P envelopes on a filter from trusted peers*|
|
||||||
|`SymKeyHash`|`common.Hash` |The Keccak256Hash of the symmetric key, needed for optimization|
|
|`SymKeyHash`|`common.Hash` |The Keccak256Hash of the symmetric key, needed for optimization|
|
||||||
|
|
||||||
|
@ -242,7 +242,7 @@ Waku, by default, does not send a BloomFilter, instead sends the topic in a clea
|
||||||
|
|
||||||
`Peer` represents a remote Waku client with which the local host waku instance exchanges data / messages.
|
`Peer` represents a remote Waku client with which the local host waku instance exchanges data / messages.
|
||||||
|
|
||||||
`WakuHost` is the local instance of waku, which both interacts with remote clients (peers) and local clients (like `status-react`, via a RPC API).
|
`WakuHost` is the local instance of waku, which both interacts with remote clients (peers) and local clients (like `status-mobile`, via a RPC API).
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue