本文档的作用是指引日本积分项目合约部分的部署流程 ## 文件结构: ``` ├── 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 ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up