# SemanticSBT部署工具

## Quick Start

### 下载工具

进入github，clone对应仓库

```
git clone git@github.com:relationlabs/sbt-deployment-utils.git
```

### 安装相关依赖

```
yarn
```

### 运行项目

```
yarn dev
```

运行成功后，可以在浏览器输入地址<http://localhost:3000>项目

## 合约部署

### 通过metamask登录

<figure><img src="https://3668324987-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdqevFF76s9Kq7JWAPlD3%2Fuploads%2Fgit-blob-6dc61bcd1e8f27a29cbd3119d13d5be7a4668331%2Fmint-tools-connect-wallet.png?alt=media" alt=""><figcaption><p>图 9-1 Connect Wallet</p></figcaption></figure>

### 选择合约要部署的链

这里以Polygon为例

<figure><img src="https://3668324987-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdqevFF76s9Kq7JWAPlD3%2Fuploads%2Fgit-blob-d1e4d19af1c5cf9ca3e291f73558606482eb55d9%2Fmint-tools-select-a-network.png?alt=media" alt=""><figcaption><p>图 9-2 Select a Network</p></figcaption></figure>

### 创建新的SBT合约并进行部署

<figure><img src="https://3668324987-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdqevFF76s9Kq7JWAPlD3%2Fuploads%2Fgit-blob-73295340a0356dc22b0bbe613522cc8b96a9c3c1%2Fmint-tools-start-deploy.png?alt=media" alt=""><figcaption><p>图 9-3 Start Deploy</p></figcaption></figure>

#### 合约的部署流程包括：1.SBT和Verification合约的部署 2. 初始化SBT合约 3. 初始化Verification合约 4. 添加百名单 5. Mint SBT （后续的这些操作需要保证钱包里有足够的gas费）

#### 1. 部署合约

部署SBT合约和对应的Verification合约

<figure><img src="https://3668324987-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdqevFF76s9Kq7JWAPlD3%2Fuploads%2Fgit-blob-9ffa7012cea31398d56f395b8c37fe32d6a634ff%2Fmint-tools-deploy-contract.png?alt=media" alt=""><figcaption><p>图 9-4 Deploy Contract</p></figcaption></figure>

#### 2. 初始化SBT合约

合约部署成功后，可以看到对应的合约地址，然后就可以进行SBT的初始化步骤了

<figure><img src="https://3668324987-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdqevFF76s9Kq7JWAPlD3%2Fuploads%2Fgit-blob-4ef632242118a9f12248afc648f49c0ade76f068%2Fmint-tools-start-init-contract.png?alt=media" alt=""><figcaption><p>图 9-5 Start Init Contract</p></figcaption></figure>

在初始化SBT时，需要根据项目需要填写相应SBT的属性，这里以TestSBT作为例子

<figure><img src="https://3668324987-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdqevFF76s9Kq7JWAPlD3%2Fuploads%2Fgit-blob-aee70d235f82de23ecb71126eb3a387abc2534c8%2Fmint-tools-init-contract.png?alt=media" alt=""><figcaption><p>图 9-6 Init Contract</p></figcaption></figure>

#### 3. 初始化Verification合约

根据项目需求，填写对应Object名称，这里以Token2049作为例子

<figure><img src="https://3668324987-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdqevFF76s9Kq7JWAPlD3%2Fuploads%2Fgit-blob-3c91fb3b60d5ff6511c843106d2ea1f569c0e377%2Fmint-tools-init-verification-contract.png?alt=media" alt=""><figcaption><p>图 9-7 Init Verification Contract</p></figcaption></figure>

#### 4. 添加白名单

指定可以mint SBT的地址，支持批量添加

<figure><img src="https://3668324987-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdqevFF76s9Kq7JWAPlD3%2Fuploads%2Fgit-blob-3b2849af9a32fac8202120fadedc3548b6c77a31%2Fmint-tools-add-whitelist.png?alt=media" alt=""><figcaption><p>图 9-8 Add Whitelist</p></figcaption></figure>

#### 5. Mint SBT

<figure><img src="https://3668324987-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdqevFF76s9Kq7JWAPlD3%2Fuploads%2Fgit-blob-3a7cb3209d5bad2f772f2dcfc36cee87a7322fd3%2Fmint-tools-mint-SBT.png?alt=media" alt=""><figcaption><p>图 9-9 Mint SBT</p></figcaption></figure>
