Skip to content

MoonfishApp/Moonfish

Repository files navigation

Moonfish: Wallet as a Platfrom

How to install and use

Pull the Moonfish repo (this one) and the following repos containing Swift Packages in the same parent directory (E.g. Developer):

Place all repos in a shared directory like so:

Developer
|- Moonfish
|- MFShared
|- Wallet
|- Ethereum
|- MimeParser

Open Moonfish.xcodeproj and the MFShared, Wallet, Ethereum, and MimeParser packages should automatically appear as a local dependency in the Moonfish Xcode project. Edit the packages in the Moonfish Xcode project. You shouldn't be able to open MFShared separately when Moonfish.xcodeproj is open.

Repo architecture

  • Moonfish is the main repo. The idea is to limit the code in this repo to UI related code as much as possible, as merging .xcodeproj files is a PITA. Moonfish contains the app extensions, such as the Safari Extension and the Mail Extension.
  • MFShared contains non-crypto code shared by the containing app and the extensions.
  • Wallet contains the keystore and BIP32 related code that is shared by all blockchains
  • Ethereum contains all Ethereum specific code.
  • MimeParser contains all Mime parsing code.

Moonfish Repo

Containing app

The containing app provides basic wallet services for coins, tokens and NFTs.

Source

Safari extension

Source

Mail extension (MacOS only)

Signed and/or encrypted messages are wrapped in a RFC 3156 compliant MIME format. The signature and encrypted data are stored in armor format as described in RFC 4880. Note that RFC 4880 doesn't support Ethereum signed or encrypted messages. The way Moonfish stores data in the armor is not final yet. Relevant code can be found in package Wallet.

Signing is conform EIP 712. Relevant code can be found in package Ethereum.

Ethereum login

As defined by login.xyz and EIP 4361

Source

Finder extension for IPFS

This finder extension makes using IPFS as easy as Dropbox of iCloud Drive.

Source

Settings pane (MacOS only)

Create new keys, add new blockchains to your wallet. Long term goal: to get Moonfish in the Internet Account Settings pane in Settings.

Source

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages