From 77ef0ac2a03508513a5668e6ba50e8cefc9155a8 Mon Sep 17 00:00:00 2001 From: Agustin Tena Date: Thu, 4 Aug 2022 13:00:34 +0200 Subject: [PATCH] chore: readme (#31) * add images * boilerplate readme * improve readme * improve readme header * add link in header * amend previous commit * amend * amend boxfish link * improve readme * improve readme * sort header data * improve readme * extend readme * improve readme * improve readme * improve readme * improve --- README.md | 109 ++++++++++++++++++++++++++++++++- doc/img/boxfish-logo-small.png | Bin 0 -> 8001 bytes doc/img/gh-splash.png | Bin 0 -> 24219 bytes 3 files changed, 107 insertions(+), 2 deletions(-) create mode 100644 doc/img/boxfish-logo-small.png create mode 100644 doc/img/gh-splash.png diff --git a/README.md b/README.md index e3ccfb5..4a108a1 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,107 @@ -# spl-token-faucet -Generic Solana spl-token faucet webapp +

+
+ +

+ +

Fontana

+ +

+fontana.boxfish.studio +

+ +

A simple dashboard to manage Solana SPL tokens

+ + +

+ + + + + + + + + + + + +

+ +--- + +## Features + +- Create, mint, and transfer SPL tokens +- Mainnet and devnet support +- Configurable RPCs +- Compatible with Phantom, Solflare, Torus, Sollet, Glow and Slope wallets +- 2 different operation modes: wallet-based and server-based + + +## Using the program + +### Wallet-based mode + +This mode is only operational when a wallet is connected. + +When using this mode, the creation, minting and transfer of tokens will be performed by the connected wallet account. +The displayed available tokens will be the ones belonging to the wallet account plus the ones available in server mode. + +### Server-based mode + +This mode is only operational when no wallet is connected. + +When using this mode, the creation, minting and transfer of tokens is performed by a account configured in the server. +Newly created tokens will be stored in a dedicated database. The displayed tokens will be those configured within the application config file, plus the later added tokens found in the database. + +When using mainnet with this mode, the creation of new tokens is not enabled by default, since it would require for an account with real funds configured in the server. + +## Run + +Clone the repo, and run the development server: + +```bash +yarn dev +``` + +The app will open at [http://localhost:3000](http://localhost:3000). + + +## Configuration + +The app needs the following environment variables: + +``` + NEXT_PUBLIC_RPC_API_DEVNET = Url of your preferred devnet RPC + NEXT_PUBLIC_RPC_API_MAINNET = Url of your preferred mainnet RPC + NEXT_PUBLIC_DATABASE_URL = Url of your mongodb cluster (for data persistance) +``` + +Then additionally, if you want to configure the app to manage certain tokens by default, you need to configure them in the [config file](fontana.config.ts) and add the corresponding environment variables. + +``` +const config: Config[] = [ + { + keypair: "WALLET_1", + owner: "Token owner public account", + token: "Token mint account", + network: "Devnet" or "Mainnet", + } +]; +``` + +Which will require for a new environment variable `NEXT_PUBLIC_WALLET_1` corresponding to the `WALLET_1` keypair. + +``` + NEXT_PUBLIC_WALLET_1 = [Private key for token owner account] +``` + +You will need to add as many new environment variables as wallet ids are used in your configuration file. + +## License + +[Apache 2.0](./LICENSE) © [Boxfish Studio] + + +[Boxfish Studio]: https://boxfish.studio + diff --git a/doc/img/boxfish-logo-small.png b/doc/img/boxfish-logo-small.png new file mode 100644 index 0000000000000000000000000000000000000000..cad9c1fcb143602158699c6b8a9fa58b75bb2622 GIT binary patch literal 8001 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