Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add S3 command flags to CLI docs #103

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 66 additions & 1 deletion docs/dapp-publishing/publisher-and-app-nft.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
# Mint your Publisher and App NFT

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

If this is your first time publishing an app on the dApp Store, then you will need to mint a **Publisher NFT** and an **App NFT**.

:::tip
If you are looking to publish an update version of an existing app, then skip to [this step](/dapp-publishing/publishing_releases).
If you are looking to publish an update version of an existing app, then skip to [this step](/dapp-publishing/publishing-updates).
:::

A Publisher NFT:
Expand Down Expand Up @@ -58,10 +61,42 @@ To customize this value, use param `-p` or `--priority-fee-lamports <priority-fe

### 1. Create your publisher NFT

Run the following command to mint your NFT:

<Tabs>
<TabItem value="Arweave" label="Arweave">

By default the CLI uploads the NFT metadata using [Arweave](https://www.arweave.org/).

```shell
npx dapp-store create publisher -k <path_to_your_keypair> [-u <mainnet_beta_rpc_url>]
```

</TabItem>
<TabItem value="Amazon S3" label="Amazon S3">

Alternatively, you can instruct the CLI to upload the NFT metadata using [Amazon S3](https://aws.amazon.com/s3/), by passing in
the `-s` or `--storage-config` flag.

```shell
npx dapp-store create publisher -k <path_to_your_keypair> -s <s3_params> [-u <mainnet_beta_rpc_url>]
```

The `<s3_params>` is are an array of parameters in the expected format:

```
s3Params="[\"s3\", \"$releaseAwsAccessKey\", \"$releaseAwsSecretKey\", \"$releaseAwsS3Bucket\", \"$releaseAwsS3Region\"]"
```

An example of S3 parameters:

```shell
-s "[\"s3\", \"TestAccessKey\", \"TestSecret\", \"TestBucket\", \"us-east-1\"]"
```

</TabItem>
</Tabs>

:::info
This is a **one-time** operation. Once you have created your publisher, the mint address is recorded in your configuration file.

Expand All @@ -70,10 +105,40 @@ If you have already published an app, you should not mint a new Publisher NFT an

### 2. Create your app NFT

<Tabs>
<TabItem value="Arweave" label="Arweave">

By default the CLI uploads the NFT metadata using [Arweave](https://www.arweave.org/).

```shell
npx dapp-store create app -k <path_to_your_keypair> [-u <mainnet_beta_rpc_url>]
```

</TabItem>
<TabItem value="Amazon S3" label="Amazon S3">

Alternatively, you can instruct the CLI to upload the NFT metadata using [Amazon S3](https://aws.amazon.com/s3/), by passing in
the `-s` or `--storage-config` flag.

```shell
npx dapp-store create app -k <path_to_your_keypair> -s <s3_params> [-u <mainnet_beta_rpc_url>]
```

The `<s3_params>` is are an array of parameters in the expected format:

```
s3Params="[\"s3\", \"$releaseAwsAccessKey\", \"$releaseAwsSecretKey\", \"$releaseAwsS3Bucket\", \"$releaseAwsS3Region\"]"
```

An example of S3 parameters:

```shell
-s "[\"s3\", \"TestAccessKey\", \"TestSecret\", \"TestBucket\", \"us-east-1\"]"
```

</TabItem>
</Tabs>

:::info
This is a **one-time** operation per app. Once you have created your dApp, the mint address is recorded in your configuration file.
:::
38 changes: 0 additions & 38 deletions docs/dapp-publishing/publishing_releases.md

This file was deleted.

39 changes: 37 additions & 2 deletions docs/dapp-publishing/submit.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,55 @@
# Submit your dApp release

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

After minting a Publisher and App NFT, you will need to mint a **Release NFT** in order to submit for app review.

A Release NFT:

- Contains metadata that represents a specific release version of an app.
- Should be newly created each time an updated app version is submitted.

For reference, you can view this [sample](https://explorer.solana.com/address/EpYpJpFSKX6r5WyAGjhVk2hN8weeJF9XGJHFMvebBW8Q/metadata) of a Release NFT on the Solana Explorer.

## Mint a release NFT

Using the same wallet that contains your Publisher and App NFTs, run this command.
Using the same wallet that contains your Publisher and App NFTs, run this command to create the Release NFT and upload your app's Android APK.

<Tabs>
<TabItem value="Arweave" label="Arweave">

By default the CLI uploads both the Android APK and NFT metadata using [Arweave](https://www.arweave.org/).

```shell
npx dapp-store create release -k <path_to_your_keypair> -b <path_to_your_android_sdk_build_tools> [-u <mainnet_beta_rpc_url>]
```

</TabItem>
<TabItem value="Amazon S3" label="Amazon S3">

Alternatively, you can instruct the CLI to upload both the Android APK and NFT metadata using [Amazon S3](https://aws.amazon.com/s3/), by passing in
the `-s` or `--storage-config` flag.

```shell
npx dapp-store create release -k <path_to_your_keypair> -b <path_to_your_android_sdk_build_tools> -s <s3_params> [-u <mainnet_beta_rpc_url>]
```

The `<s3_params>` is are an array of parameters in the expected format:

```
s3Params="[\"s3\", \"$releaseAwsAccessKey\", \"$releaseAwsSecretKey\", \"$releaseAwsS3Bucket\", \"$releaseAwsS3Region\"]"
```

An example of S3 parameters:

```shell
-s "[\"s3\", \"TestAccessKey\", \"TestSecret\", \"TestBucket\", \"us-east-1\"]"
```

</TabItem>
</Tabs>

**You will repeat this step for each new version of your dApp you want to release**. The mint address of the latest release is recorded in your configuration file.

:::tip
Expand All @@ -29,7 +64,7 @@ Please make sure your network connection is reliable and has a minimum upload sp

## Submit your app

After minting a complete set of on-chain NFTs (publisher, dApp, and release), you may choose to submit them to the Solana dApp Publisher Portal, as a candidate for inclusion in the Solana dApp Store catalog:
After minting a complete set of on-chain NFTs (publisher, dApp, and release), you may choose to submit them to the Solana dApp Publisher Portal, as a candidate for inclusion in the Solana dApp Store catalog.

```shell
npx dapp-store publish submit -k <path_to_your_keypair> -u <mainnet_beta_rpc_url> --requestor-is-authorized --complies-with-solana-dapp-store-policies
Expand Down