TandaPay mobile is a mobile application with a rich web3 integration for interacting with the TandaPay smart contract and organizing communities that use the TandaPay protocol.
TandaPay mobile is built on top of Zulip Mobile, a free and open source chat application that uses a federated deployment approach and works similarly to slack. Zulip has excellent features for communication and community organization, and adding a TandaPay integration to it serves to be an ideal application and one-stop-shop for communication, community organization, and web3 interactions.
Features of TandaPay Mobile include:
- A custom built-in ethereum wallet:
- can send/receive ethereum or any ERC-20 token, including a "MAX" button to transfer all funds that is gas-price aware
- can estimate gas prices and display the potential transaction fees to the user with EIP 1559
- supports QR code generation for receiving funds as well as QR code scanning for sending funds
- supports any ERC-20 token, with a few default options (USDC, USDT, DAI) + user-defined custom tokens
- supports any EVM compatible network, with a few defaults (mainnet, arbitrum, polygon) + user-defined custom rpc networks
- supports chronological transaction history including ERC20 token transfers
- supports securely generating new wallet mnemonic or importing existing ones
- supports detailed transaction information and block explorer integrations
- can be configured with an Alchemy API key (free to obtain) for enhanced transaction data and better performance
- if an alchemy api key is provided, RPC urls will fall back to alchemy endpoints for better performance
- has a built-in integration with TandaPay so that TandaPay contract transactions show up in a user friendly manner
- Configurable Network Settings:
- Can select which network you want to use among the defaults (ethereum, polygon, arbitrum), with sane default RPC providers that allow free use with no API key with rate limits that are generous enough for this use case.
- Can create a custom RPC configuration to connect to any provider or use a URL with an api-key for higher rate limits
- Can deploy the TandaPay contract or specify the address of it
- supports configuration of network performance settings
- can set a cache expiration time for cached data
- can configure delays to avoid exceeding rate limits
- can configure the number of retry attempts for graceful error handling if a network call fails
- displays information about the current network configuration
- Configurable user-defined ERC-20 tokens:
- can specify custom token symbols, contract addresses, token names, and decimal counts
- shows what tokens are already configured and allows the user to copy their addresses
- A rich TandaPay information display, with all of the information required to interact with the smart contract
- A comprehensive dashboard for sending any transaction to the TandaPay smart contract
- Heuristic guidance to suggest potentially relevant transactions to users and help them filter transactions for the ones that they are most likely to use to interact with the TandaPay smart contract, given it's current state
- Macros to help users send sequences of transactions and reduce tedium when doing multi-step smart contract interactions
- Auto reorganize all members into valid subgroups workflow
- Adding required number of members to exit initialization state workflow
- Defining secretary successors workflow
- intelligent default state initialization macro
- exiting the initialization state workflow (chained macro)
- a refined user onboarding experience using the existing server infrastructure, but with modifications to make sign-up go more smoothly within TandaPay mobile's application
Zulip Mobile is the official mobile Zulip client, supporting both iOS and Android.
Release versions of the app are available here:
- Zulip for iOS on the iTunes App Store
- Zulip for Android
on the Google Play Store
- Or if you don't use Google Play, you can download an APK from the official build we post on GitHub, or get the app on F-Droid.
You can also help out by running beta versions of the app, and reporting bugs!
This codebase built on React Native is a legacy app, which is in maintenance mode as we focus on building a new Zulip mobile app with Flutter. This means:
-
This repository is the source code of the app we're still distributing and recommending for most users, until the new app is fully built and ready to replace it.
-
Feedback is still welcome. Some bugs and feature requests will be naturally resolved by the new app; others won't, and we'll transfer them over when the time comes as issues on the new app. We're happy to do the work of identifying which is which — it's usually easy for us, given the time we've spent in both codebases.
-
The development work we do in this repo is kept to a minimum: we fix critical bugs, and we add support for a few of the new features being added to Zulip on the web and desktop, those where the leverage from mobile support is highest.
-
We aren't able to spend significant time investigating other bugs, or reviewing PRs from contributors. We're investing that time instead in getting the new Flutter app finished and into all our users' hands as soon as possible.
If you're interested in contributing to Zulip's mobile apps, see the new Flutter-based app.
Details below are from when this app was in active development. Some details may still be useful, but bear in mind that this app is in maintenance mode as described above.
To get involved in Zulip Mobile development, please join us on the Zulip community Zulip server, in the #mobile-dev-help channel. Come say hello, discuss areas to work on, and ask and answer questions.
Bug reports and feedback from using the app are welcome. For those, please use the #mobile channel; that helps a wider set of Zulip contributors see your feedback.
One important way to contribute is to run beta versions of the app, and report bugs! To get the beta:
- Android: install the app, then just
join the testing program
on Google Play.
- Or if you don't use Google Play, you can download an APK; the latest release on GitHub (including "pre-releases") is the current beta.
- iOS: install TestFlight, then open this public invitation link on your device.
Bug reports are welcome either in the #mobile stream or on this GitHub repo.
Zulip Mobile is written in JavaScript with React Native. To get started with the code, follow this doc:
Then see our Contribution Guidelines, and come say hello in the #mobile-dev-help stream.
For more reading, take a look at our developer docs.
Zulip Mobile supersedes two legacy Zulip apps, zulip-ios and zulip-android (more history).
Copyright (c) 2016-2024 Kandra Labs, Inc., and contributors, and 2016 Dropbox, Inc.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
The software includes some works released by third parties under other free and open source licenses. Those works are redistributed under the license terms under which the works were received.