Pillarwallet
Pillar Wallet: Community owned, self custodial, smart contract wallet.
Install / Use
/learn @pillarwallet/PillarwalletREADME
Pillar Wallet
💰 Looking for a job?
We're always on the lookout for talented and passionate developers. Check out our RECRUITMENT.md file to see how you can join us!
Pull Request Review
The following set of criteria and guideline has been set for code reviews Pillar Pull Request and Code Review Guidelines
Requirements
- Watchman
brew install watchman - node versions
9.11.1,10.x(The app was tested to run with those versions without problems)
android
- java v1.8
- android studio (suggested 3.2.1)
iOS
- Homebrew
- yarn v1.10.x
- XCode 9.4 (Please refer to notes below to understand the problem with XCode 10)
note: XCode 10 includes CommonCrypto as part of the sdk which triggers a Redefinition of module because rn-signal-protocol-messaging declares it as dependency,
currently there's a fix being tested to work with XCode 10 and XCode 9.4, however while this note is here please use XCode 9.4
Install and Run
To get started clone the repo and run
yarn install
This will download all the necessary packages to build the project. The project can be deployed using the simple command of yarn start. This will get your project running in development mode.
note: if you want to keep the metro server running on its own console just run yarn start
Running on iOS:
The project may be run from the directory using
yarn run ios
Running on Android:
Like yarn start, but also attempts to open your app in the iOS Simulator if you're on a Mac and have it installed.
yarn run android
note: after any compilation (i.e. after linking a native library) please restart the metro server
Debugging
Debug implies checking logs and be able to stop on specific breakpoints. For the first requirement (watch logs) there're two options. If you want to stop on breakpoints then only the first option is for you. However if what you want is just to track or set the logs, then Reactotron will be, probably, more effective.
React Native Debugger
First, you need to install the React Native Debugger
brew update && brew cask install react-native-debugger
Press ⌘+D on iOS simulator, ⌘+M on Android emulator, or shake real devices, you will see the in-app developer menu. Tap “Debug JS Remotely”. The React Native Debugger will be opened automatically. Open source files in the Sources tab, you can set breakpoints here.
Reactotron
Install Reactotron for your specific platform (here's the download page)
Start your application an open Reactotron, that's it!
There's one change, instead of adding console.log('something to log') you should use Reactotron.log('something to log')
Android
For android you'd probably need to execute following command adb reverse tcp:9090 tcp:9090
Redux State
In order to view the state go to the state window, here you need to add the view (subscription) first.
Press Cmd+n, no need to enter anything specific, just click on Subscribe.
Network Requests
If you head to the Network and find your XHR requests are not being logged, you will notice that you are unable to see any.
You must first enable them by right clicking in the React Devtools or Redux Devtools section and clicking Enable Network Inspect.
Useful Links on Debugging:
App configuration
Add your app configuration in the /src/configs/envConfig.js file.
const envVars = {
production: {
NETWORK_PROVIDER: 'lorem',
}
staging: {
NETWORK_PROVIDER: 'ipsum',
}
}
Add your local api keys and preferences in the /src/configs/buildConfig.js file.
Please do not commit changes of .env and buildConfig.js and be careful not to publish your local keys.
To avoid that use the following command after editing the files:
git update-index --assume-unchanged src/configs/buildConfig.js
git update-index --assume-unchanged .env
Now you can import it in your .js file.
import { getEnv } from 'configs/envConfig'
ApiClient.init(getEnv().NETWORK_PROVIDER, ANOTHER_CONFIG)
How does it work ?
The getEnv function loads the current environment variables defined in the /src/configs/envConfig.js file.
The example above will get evaluated as below when in 'staging' mode
ApiClient.init('ipsum', 'foobar')
In Production
When in production mode, the default environment is production. When in developer mode, the default environment is staging.
The app supports switching between environments by tapping the Welcome Screen logo a certain amount of times with a warning that will delete all stored items on the app before the switch.
Storybook
To start the storybook run:
yarn storybook
This should start a storybook server and open a new tab in your browser.
To enter storybook on your device go to Settings -> Storybook.
You can also set the env variable SHOW_ONLY_STORYBOOK - so you don't need to enter the settings every time you reload the app. In the browser or on your device you can now switch between components.
Old CRNA Readme
This project was bootstrapped with Create React Native App.
Below you'll find information about performing common tasks. The most recent version of this guide is available here.
Table of Contents
- Updating to New Releases
- Available Scripts
- Writing and Running Tests
- Environment Variables
- Adding Flow
- Customizing App Display Name and Icon
- Sharing and Deployment
- Troubleshooting
Updating to New Releases
You should only need to update the global installation of create-react-native-app very rarely, ideally never.
Updating the react-native-scripts dependency of your app should be as simple as bumping the version number in package.json and reinstalling your project's dependencies.
Upgrading to a new version of React Native requires updating the react-native, react, and expo package versions, and setting the correct sdkVersion in app.json. See the versioning guide for up-to-date information about package version compatibility.
Available Scripts
If Yarn was installed when the project was initialized, then dependencies will have been installed via Yarn, and you should probably use it to run these commands as well. Unlike dependency installation, command running syntax is identical for Yarn and NPM at the time of this writing.
npm start
Runs your app in development mode.
Open it in the Expo app on your phone to view it. It will reload if you save edits to your files, and you will see build errors and logs in the terminal.
npm test
Runs the jest test runner on your tests.
npm run ios
Like npm start, but also attempts to open your app in the iOS Simulator if you're on a Mac and have it installed.
npm run android
Like npm start, but also attempts to open your app on a connected Android device or emulator. Requires an installation of Android build tools (see React Native docs for detailed setup). We also recommend installing Genymotion as your Android emulator. Once you've finished setting up the native build environment, there are two options for making the right copy of adb available to Create React Native App:
Using Android Studio's adb
- Make sure that you can run adb from your terminal.
- Open Genymotion and navigate to
Settings -> ADB. Select “Use custom Android SDK tools” and update with your Android SDK directory.
Using Genymotion's adb
- Find Genymotion’s copy of adb. On macOS for example, this is normally
/Applications/Genymotion.app/Contents/MacOS/tools/. - Add the Genymotion tools directory to your path (instructions for Mac, Linux, and Windows).
- Make sure that you can run adb from your terminal.
npm run eject
This will start the process of "ejecting" from Create React Native
Related Skills
node-connect
343.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
92.1kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
343.3kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
343.3kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
