-
Notifications
You must be signed in to change notification settings - Fork 984
RN GO
All status-react
to status-go
calls are centralized in StatusModule (android) or RCTStatus (ios).
General structure of methods is:
- caller provides a callback
- check for availability of current Activity
- if available: call a static method on
StatusGo
via an ExecutorService (or sometimes a Thread) and use its result as callback payload - else: ivoke callback with false as payload
From RN perspective calls do not block, result is provided through callback execution.
StatusGo is a C library generated from go cade embeded in Status apps. On android it is packaged as a JNI aar
(generated using xgo).
StatusGo directly expose status-go
methods marked for exportation.
Those methods are defined in cmd/statusd/library.go and marked as export
.
go
side calls are then dispatched to geth/api then geth/jail
Data is provided to the go layer as primitive types and retieved RN side as JSON.
status-go
can directly send events that will be received RN side. It achieves that by directly calling signal-event using some JNI glue.
StatusModule is also used as a react context listener that emits event to the RN layer.
status-react
listens to those events via gethEvent then dispatched by a re-frame handler.