---
# System prepended metadata

title: CreditScoreDistributor

---


本文档的作用是指引日本积分项目合约部分的部署流程

## 文件结构：

```
├── LICENSE
├── README.md
├── contracts
│   ├── CreditScoreDistributor.sol 可升级积分创建合约，用于增、删、查不同积分合约、设定 Distributor
│   └── CreditScoreSwap.sol 可升级兑换合约，用于增、删、改、查积分信息，遵循 amountA*priceA = amountB*priceB
├── hardhat.config.js 配置项，可配置网络、部署用钱包地址
├── package.json
├── scripts
│   ├── deploy.exe.js 合约部署脚本（用于hardhat测试事件）
│   └── deploy.js 合约部署脚本
├── task
│   ├── addPrice.task.js 向 CreditScoreSwap 合约添加积分信息
│   └── newCreditScore.task.js 使用 CreditScoreDistributor 合约创建积分信息
├── test
│   ├── CreditScoreDistributor.test.js CreditScoreDistributor合约测试脚本
│   └── CreditScoreSwap.test.js CreditScoreSwap合约测试脚本
└── yarn.lock
```

## 依赖环境
node
yarn
==外网环境==

## 部署

1. 获取代码
    > 该仓库是私有仓库，获取代码前请先向仓库所有者获取权限，然后创建 `access token`

    ```
    git clone https://<access_token>@github.com/TusimaNetwork/CreditScoreDistributor.git
    ```

2. 安装依赖：

    ```
    yarn
    ```

3. 创建并编辑 `.env` 文件
    ```
    cp .env.example .env
    
    # 编辑
    vim .env
    ```
    文件内容：
    ```shell=
    # 私钥
    PRIVATE_KEY=<your private_key>

    # RPC节点，如：http://example.com:8545
    RPC_End_Point=<your rpc>

    # 有分发积分权限的地址 string (一定要写在一行内，否则无法识别)
    Distributer="<distributor address>,<distributor address>"
    
    # 有积分合约部署权限的唯一地址
    TokenDeployer=<tokenDeployer address>

    # CreditScoreDistributor合约的代理地址，此参数只有升级合约时才需要填上
    CreditScoreDistributorProxy=<proxy address>
    ```
    ==注：提供的助记词对应的第一个地址需要有测试币，请找健哥==

4. 运行测试脚本：
    ```
    npx hardhat test
    ```
    如果测试没问题即可执行下一步，==如果有报错请联系开发者==

5. 部署：

    ```
    npx hardhat run scripts/deploy.js --network leviathan
    ```
    example:
    ```shell=
    npx hardhat run scripts/deploy.js --network leviathan
    
    ****** deploy start ******
    CreditScoreDistributor proxyAddress: 0x3169Cd234a07e698B77eb2aeAb5e5cc49F413Fbc
    ====set distributer successfully ====
    creditScoreSwapAddress proxyAddress: 0x8C81DD75C6bB3a605C6711ADd0a01ED2d08A14d1
    ```

6. 创建新积分
    创建新积分使用 `newCreditScore` 命令，用以下命令创建 5 个积分，分别为 A, B, C, D, E，命令中 `creditScoreDistributor proxyAddress` 参数应为步骤五中输出的 `CreditScoreDistributor proxyAddress`
    每个命令执行完后会输出对应积分的合约地址，请记录下来，在下一步中会用到
    
    ```
    # 积分 A
    npx hardhat newCreditScore --creditscoredistributor <creditScoreDistributor proxyAddress> --name A --symbol A --decimals 18 --tag A --network leviathan
    # 积分 B
    npx hardhat newCreditScore --creditscoredistributor <creditScoreDistributor proxyAddress> --name B --symbol B --decimals 18 --tag B --network leviathan
    # 积分 C
    npx hardhat newCreditScore --creditscoredistributor <creditScoreDistributor proxyAddress> --name C --symbol C --decimals 18 --tag C --network leviathan
    # 积分 D
    npx hardhat newCreditScore --creditscoredistributor <creditScoreDistributor proxyAddress> --name D --symbol D --decimals 18 --tag D --network leviathan
    # 积分 E
    npx hardhat newCreditScore --creditscoredistributor <creditScoreDistributor proxyAddress> --name E --symbol E --decimals 18 --tag E --network leviathan
    # 积分 Japan
    npx hardhat newCreditScore --creditscoredistributor <creditScoreDistributor proxyAddress> --name rwaJPY --symbol "rwaJPY Token" --decimals 2 --tag RWA --network leviathan
    ```
    ==注：在hardhat虚拟机测试中，只发送积分时，5种积分一笔distribute交易最多允许224个地址。同时发送积分、gas时：5种积分一笔distribute交易最多允许175个地址。请合理分配。==



7. 设置积分价格
    设置价格使用 `addPrice` 命令，用以下命令分别为 5 个积分设置价格，命令中 `creditscoreswap  proxyAddress` 参数应为 步骤五中输出的 `creditScoreSwap proxyAddress`，`creditScore address` 参数应为步骤六中的积分合约地址

    ```
    # 为积分 A 设置价格
    npx hardhat addPrice --creditscoreswap <creditScoreSwap proxyAddress> --creditscore <creditScoreA address>  --price 100000000 --network leviathan
    # 为积分 B 设置价格
    npx hardhat addPrice --creditscoreswap <creditScoreSwap proxyAddress> --creditscore <creditScoreB address>  --price 200000000 --network leviathan
    # 为积分 C 设置价格
    npx hardhat addPrice --creditscoreswap <creditScoreSwap proxyAddress> --creditscore <creditScoreC address>  --price 300000000 --network leviathan
    # 为积分 D 设置价格
    npx hardhat addPrice --creditscoreswap <creditScoreSwap proxyAddress> --creditscore <creditScoreD address>  --price 400000000 --network leviathan
    # 为积分 E 设置价格
    npx hardhat addPrice --creditscoreswap <creditScoreSwap proxyAddress> --creditscore <creditScoreE address>  --price 500000000 --network leviathan
    ```
