make statusgomake status-backendOnce that is completed, you can start it straight away by running
./build/bin/status-backend --address=localhost:12345This will provide full API at http://localhost:12345.
Checkout status-backend docs for more details.
status-go can be build as a regular Go project, but requires to pre-generate some files first:
make status-go-deps- install required toolsmake generate- compile protobuf files, build SQL migrations, generate mocks
docker build .It is advised but not required to use Nix shell before executing other make targets. Nix shell will ensure that all dependencies are installed. You can enter the development shell by using either of two:
make shell
nix develop --extra-experimental-features 'nix-command flakes'make statusgo-library # Build static library
make statusgo-shared-library # Build shared libraryThe flake.nix file exposes multiple status-go packages that can be built using Nix. To view the available packages for different architectures, run:
nix flake showTo build a specific package, use:
nix build '#name-of-the-package'For example:
nix build '#status-go-library'This flake includes a dependency on nwaku, which is pinned to a specific commit to ensure reproducibility and control over its version.
Maintainers are responsible for tracking updates to nwaku and updating the pinned commit accordingly when new versions are released.
Continuous Integration (CI) will validate whether the status-go packages build successfully with Nix, and report the result on pull requests.
In order to see the log files while debugging on an Android device, do the following:
- Ensure that the app can write to disk by granting it file permissions. For that, you can for instance set your avatar from a file on disk.
- Connect a USB cable to your phone and make sure you can use adb. Run
adb shell tail -f sdcard/Android/data/im.status.ethereum.debug/files/Download/geth.logmake lintNext, run unit tests:
make testUnit tests can also be run using go test command. If you want to launch specific test, for instance RPCSendTransactions, use the following command:
go test -v ./api/ -testify.m ^RPCSendTransaction$Or use make test-single:
make test-single PKG=./messaging/controller/processor TEST=^TestSDSWrappedMessages$
Note -testify.m as testify/suite is used to group individual tests.
To run a single test in a test suite (e.g. TestTransferringKeystoreFiles, which is part of SyncDeviceSuite):
go test -v ./server/pairing -test.run TestSyncDeviceSuite -testify.m ^TestTransferringKeystoreFiles$Note: TestSyncDeviceSuite is not the name of the test suite, but the name of the test function that runs the SyncDeviceSuite suite.