Skip to content

Eternal Safe is a decentralized fork of Safe{Wallet}.

License

Notifications You must be signed in to change notification settings

tetu-io/eternal-safe-wallet

 
 

Repository files navigation

Eternal Safe

License Tests

Eternal Safe is a decentralized fork of Safe{Wallet}, forked at v1.26.2. Funded by the Safe Grants Program.

The latest version is always accesible at https://eternalsafe.eth.limo. For the IPFS CID or pinned ENS subdomain, please check the latest release.

Differences from Safe{Wallet}

  • No analytics/tracking
  • No backend services needed, only an RPC URL
  • Easily runs on IPFS or locally
  • And more: full list of changes

You can view the diff from the original Safe{Wallet} here: https://github.com/eternalsafe/wallet/compare/eternalsafe..safe-global:safe-wallet-monorepo:v1.26.2.
Note: This diff is viewed backwards, i.e. additions in this diff are actually lines which are removed in Eternal Safe, and vice versa. Seems to be a bug in GitHub.

RPC

Eternal Safe relies completely on the provided RPC URL. It is very important to provide a stable and performant RPC node. Typically, public RPC URLs are not sufficient, and it is recommended to run against a private RPC URL or your own node directly.

Adding Custom Networks

You can add custom networks to Eternal Safe by including network parameters in the URL. Here's an example:

https://eternalsafe.eth.limo?chainId=100&rpc=https%3A%2F%2Frpc.gnosis.gateway.fm&currency=xDAI&symbol=xDAI&expAddr=https%3A%2F%2Fgnosisscan.io%2Faddress%2F%7B%7Baddress%7D%7D&expTx=https%3A%2F%2Fgnosisscan.io%2Ftx%2F%7B%7Bhash%7D%7D

Required URL parameters:

  • chainId: The chain ID of the network
  • chain: The short name of the network (e.g. 'eth')
  • rpc: The RPC URL (must be URL-encoded)
  • currency: The name of the native currency
  • symbol: The symbol of the native currency

Optional URL parameters:

  • logo: URL to the currency logo image (URL-encoded)
  • expAddr: Block explorer URL template for addresses (URL-encoded)
  • expTx: Block explorer URL template for transactions (URL-encoded)
  • l2: Whether the network is a Layer 2 network (boolean, defaults to false)
  • testnet: Whether the network is a testnet (boolean, defaults to false)

Note: For explorer URLs, use {{address}} and {{txHash}} as placeholders that will be replaced with actual values.

Contributing

Contributions, be it a bug report or a pull request, are very welcome. Please check our contribution guidelines beforehand.

Getting started with local development

Environment variables

Create a .env file with environment variables. You can use the .env.example file as a reference.

Here's the list of all the environment variables:

Env variable Description
NEXT_PUBLIC_IS_PRODUCTION Set to true to build a minified production app
NEXT_PUBLIC_SAFE_VERSION The latest version of the Safe contract, defaults to 1.3.0
NEXT_PUBLIC_WC_PROJECT_ID WalletConnect v2 project ID

If you don't provide some of the variables, the corresponding features will be disabled in the UI.

Running the app locally

Install the dependencies:

yarn

Run the development server:

yarn start

Open http://localhost:3000 with your browser to see the app.

Lint

ESLint:

yarn lint --fix

Prettier:

yarn prettier

Tests

Unit tests:

yarn test --watch

Component template

To create a new component from a template:

yarn cmp MyNewComponent

Frameworks

This app is built using the following frameworks:

About

Eternal Safe is a decentralized fork of Safe{Wallet}.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 95.6%
  • CSS 4.0%
  • Other 0.4%