• Stars
    star
    114
  • Rank 308,031 (Top 7 %)
  • Language
    Swift
  • License
    GNU General Publi...
  • Created over 4 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Safe Multisig iOS app.

safe-multisig-ios

Safe Multisig iOS app.

Coding Style

As of 18.03.2021, this project adopted the Google's Swift Style Guide as well as Apple's Swift API Design Guidelines.

We adopt the following modifications to the above guidelines:

  • 4-space indentation instead of 2-space
  • Line wrapping at 120 characters

Inconsistencies and differences between the project's source code and the aforementioned guidelines shall be corrected as a by-product of the normal work on feature development and bug fixes.

Notable differences that we should look for:

  • alphabetical sorting of import statements
  • separation of testable import with blank line
  • one statement per line
  • trailing commas after last array or dictionary element
  • Add documentation to every (public) declaration.
  • Delegate methods: first object is the source.
  • force-try! Is forbidden except in unit test, test-only code, or in case of programmer error.
  • Force-unwrap and force-cast is strongly discouraged (except unit tests or programmer error).
  • Implicitly unwrapped optionals should be avoided whenever possible.
    • Except in @IBOutlet, Objective-C APIs, unit tests or programmer error.
  • Access level is specified on each member of the extension (if it is not default).
  • Graphical playground literals - use only in Playgrounds, not in code.

Configuration

In order for the app to be functional, you need to create the protected configuration file with API keys in it (at least the INFURA_API_KEY).

You can find an example of unprotected configuration file at Multisig/Cross-layer/Configurations/apis-staging.example.json

You then encrypt that file using the secconfig tool:

$> bin/secconfig encrypt Multisig/Cross-layer/Configurations/apis-staging.example.json Multisig/Cross-layer/Configuration/apis.bundle/apis-staging.enc.json
<TOOL OUTPUT ENDING WITH '='>

The tool outputs the encryption key with which the configuration was encrypted. Export that value as an environment variable $> export CONFIG_KEY_STAGING="..."

Then, repeat the same for the production environment (in that case the files would be named apis-prod.example.json and apis-prod.enc.json, and the environment variable is CONFIG_KEY_PROD).

NOTE: Do not commit unencrypted files with real API keys apis-staging.exmaple.json or apis-prod.example.json to git! Otherwise you will compromise them.

You can find more details about the secconfig tool in the script Pakcages/SecureConfig/Sources/secconfig/main.swift

Optional. If you use the encrypted Firebase.dat configuration, provide the encryption key as environment variable.

$> export ENCRYPTION_KEY="..."

The app will work without it, so that step can be skipped.

Then, run the configure script to install the Config.xcconfig

$> bin/configure.sh

Now you are ready to build the project.

More Repositories

1

safe-smart-account

Safe allows secure management of blockchain assets.
TypeScript
1,827
star
2

safe-wallet-web

Safe{Wallet} – multisig EVM wallet
TypeScript
352
star
3

safe-apps-sdk

Client-side SDKs to create third-party Safe Apps
TypeScript
205
star
4

safe-core-sdk

The Safe{Core} Account Abstraction SDK allows builders to add account abstraction functionality into their apps.
TypeScript
202
star
5

safe-transaction-service

Keeps track of transactions sent via Safe contacts and confirmed transactions. It also keeps track of Ether and ERC20 token transfers to Safe contracts.
Python
184
star
6

safe-modules

A collection of modules that can be used with the Safe contract
TypeScript
140
star
7

safe-cli

Command line utility for Gnosis Safe
Python
138
star
8

safe-deployments

A collection of Safe singleton deployments
TypeScript
131
star
9

safe-eth-py

Safe-eth-py includes a set of libraries to work with Ethereum and relevant Ethereum projects
Python
118
star
10

safe-react-apps

A repository for applications for Safe Web Interface
TypeScript
99
star
11

safe-android

🔐 App to manage and interact with Safe
Kotlin
90
star
12

safe-singleton-factory

Singleton factory used by Safe related contracts
TypeScript
77
star
13

safe-docs

Developer Docs for building on Safe.
MDX
51
star
14

safe-react-components

Gnosis Safe component library
TypeScript
35
star
15

safe-user-allocation-reports

Python
34
star
16

account-abstraction-sdk

TypeScript
31
star
17

safe-config-service

The safe-config-service is a service that provides configuration information in the context of the Safe clients environment
Python
31
star
18

safe-client-gateway

Serves as a bridge for the Safe{Wallet} clients (Android, iOS, Web)
TypeScript
23
star
19

safe-gateway-typescript-sdk

Safe Gateway TypeScript SDK
TypeScript
20
star
20

safe-token

TypeScript
19
star
21

safe-infrastructure

One `docker-compose.yml` file to rule them all
Shell
19
star
22

safe-modules-deployments

This repo contains a collection of deployments of audited contracts from the Safe modules repository.
TypeScript
9
star
23

safe-ecosystem-database

Safe ecosystem database
HTML
6
star
24

safe-homepage

Safe homepage
TypeScript
6
star
25

safe-gelato-relay-service

The Safe Gelato Relay Service is a web service which allows relaying transactions via the Gelato Relay Service.
TypeScript
6
star
26

safe-services-status

📈 Uptime monitor and status page for Safe, powered by @upptime
Markdown
5
star
27

claiming-app-data

Vesting data converter and proofs generator.
Python
5
star
28

safe-dao-governance-app

The portal to Safe{DAO} governance, voting power delegation and allocation claiming.
TypeScript
3
star
29

safe-pm

Production coordination for the Safe team primarily focused on Problems that need to be solved
2
star
30

safe-locking

Safe Token Locking Contracts
TypeScript
2
star
31

safe-guardians-page

This page is dedicated to the Safe Guardians program, a program designed to reward active members of the Safe community, who use their powers to contribute positively to the ecosystem.
TypeScript
2
star
32

safecon-landing-page

Safe{Con} landing page
CSS
1
star
33

cla-signatures

CLA signatures repository
1
star
34

token-list

This repo contain the Safe default token list. This list contains tokens which appear by default in the Safe wallet interface and are not part of the imported default token lists.
Shell
1
star