开发
第一个 dApp

第一个 Rooch dApp

本篇教程主要介绍如何使用 Rooch 提供的前端模板来实现一个简易计数器 dApp。

模板 Repo (opens in a new tab)

克隆模板源码

git clone https://github.com/rooch-network/my-first-rooch-dapp

初始化项目

安装 dApp 所需依赖:

cd my-first-rooch-dapp
bun install
## if you are using yarn
yarn install

运行 dApp:

bun dev

当一切顺利完成后,在浏览器访问本地的预览链接,就能看到如下效果:

恭喜你!完成以上步骤后,说明你的 dApp 已经成功运行了,为了完成完整的链上交互,我们还需要部署合约。

确认 Rooch 当前的 Network

我们使用 Testnet 测试网来部署 Counter 应用,使用 rooch env switch 来切换网络:

rooch env switch --alias test
 
The active environment was successfully switched to `test`

部署合约

counter_contract 目录里,我们可以看到 Counter dApp 的合约源码。 进入 counter_contract 目录,使用如下命令来部署合约。

请注意,在部署前请确保自己的地址下有足够的 Gas Fee,我们可以使用如下命令来查询:

rooch account balance
 
## output
 
      Coin Type        |      Symbol      | Decimals |  Balance              
--------------------------------------------------------------------
0x3::gas_coin::RGas |       RGAS        |     8    | 1939625968

获取 Rooch Gas Coin

确认有足够的 Gas Fee 后,就可以使用下面的命令来部署合约了。

## in counter_contract directory
rooch move publish --named-addresses quick_start_counter=default

在部署完成后,我们可以看到命令行的输出:

BUILDING quick_start_counter
Publish modules to address: rooch1e7qm7jqangukl37qs49ckv7j4w47zyu5cr2gd9tmzal89q9sudqqzhy92t
(0xcf81bf481d9a396fc7c0854b8b33d2ababe11394c0d486957b177e7280b0e340)
...

如上命令行的输出,Counter 就被部署在了 0xcf81bf481d9a396fc7c0854b8b33d2ababe11394c0d486957b177e7280b0e340 这个地址上了。

修改前端配置

找到前端项目中的 src/App.tsx 文件,修改 counterAddress 这个常量:

// Publish address of the counter contract
const counterAddress = "YOUR_COUNTER_ADDRESS";

替换上一步部署的 Counter 合约地址:

const counterAddress = "0xcf81bf481d9a396fc7c0854b8b33d2ababe11394c0d486957b177e7280b0e340"

注意:这里的合约地址会与部署者的地址有关,请确认。

合约交互

连接上钱包,我们可以在 Session key 区域点击 Create 按钮,创建会话密钥:

关于会话密钥

创建完成后,即可看到 Session Key 的相关信息:

当替换完合约地址后, dApp Integration 区域里也可以看到 Counter Value 的计数。

完成上述步骤后,就可以在 dApp Integration 区域里点击 Increase Counter Value 按钮,调用合约并增加计数器的数值了。

总结

完成上述步骤后,你已经掌握了 创建 dApp部署合约 以及 前端与合约进行基本的交互 的技能了。