An Open ios client for Solana-based Wallet.
Version "0.1a Wormhole Hackathon"
Built on top of Solana, ProjectSerum, Bonfida API
- Create/Access Wallet with seed. Your private keys are only stored on your current computer or device.
- Displaying balances of SOL token and Wrapped tokens
- Displaying the value of assets in dollars.
- HD (BIP32,BIP39) support
- UI: darkmode, localization support for English, Russian, France and Vietnamese languages
- Create Wrapped tokens addresses
- Send and receive SOL token and Wrapped tokens
- Transaction history
- Transaction details
- QR code generation
- One-tap access to swap assets
- Improving security
- Wallet Connect integration
- Send/Receive Wrapped tokens to/from Ethereum Blockchain
- DeFi support
- Xcode 10.0 or later
- iOS 12.0 or later
- Cocoapods
- RxSwift, RxCocoa, MVVM
- PureLayout, layout WITHOUT using InterfaceBuilder (Storyboard, Xib)
- Clone the project and its dependencies
$ git clone git@github.com:p2p-org/p2p-wallet-ios.git p2p_wallet
$ cd p2p_wallet && pod install
- Run project
- UI/UX: Using BEPureLayout, which depends on PureLayout, which does NOT use any InterfaceBuilder (Storyboard, Xib)...
- Every new
UIViewController
must inherit fromBaseVC
orBaseVStackVC
(a predefinedUIViewController
that have ready-to-use verticalUIStackView
that can add as many arrangedSubviews as needed and flexibly grows height inside aContentHuggingScrollView
(inherited fromUIScrollView
) UIViewController
that contains a list can inherit from predefinedUICollectionView
-basedCollectionView<ItemType: Hasable, CellType>
, see the implementation of WalletVC for more details.- Use
SwiftGen
for automatic assets variables generation.
- Every new
- MVVM: The MVVM (Model-View-ViewModel) pattern helps to completely separate the business and presentation logic from the UI, and the business logic and UI can be clearly separated for easier testing and easier maintenance.
- Any
ViewModel
must inherit fromBaseVM<ItemType>
,ListViewModel
must inherit fromListViewModel<Element>
- Any
The best way to submit feedback and report bugs is to open a GitHub issue. Please be sure to include your operating system, device, version number, and steps to reproduce reported bugs.