跳到主要内容

单一提名者池

使用 mytonctrl

目前 mytonctrl 支持 single_nominator 合约,但首先需要安装 mytonctrl 2.0。

准备验证者

如果已经安装了 mytonctrl,只需使用 "更新 mytonctrl2 "命令。如果没有安装 mytonctrl,请按照以下步骤操作:

  1. 下载安装脚本:
wget https://raw.githubusercontent.com/ton-blockchain/mytonctrl/mytonctrl2/scripts/install.sh
  1. 运行安装脚本:
sudo bash ./install.sh -b mytonctrl2

设置单一提名人

创建并激活验证器钱包后,请按以下步骤操作:

  1. 启用单一提名模式
MyTonCtrl> enable_mode single-nominator
  1. 创建池
MyTonCtrl> new_single_pool <pool-name> <owner_address>
  1. 输入 pools_list 以显示池地址

  2. 发送1个TON到池子并激活它

MyTonCtrl> activate_single_pool <pool-name>

现在,你可以通过 mytonctrl 像使用标准提名池一样使用这个提名池。

没有 mytonctrl

准备已启动的验证者

如果您已安装 mytonctrl 并正在运行验证者:

  1. 停止验证并提取所有资金。

从一开始就做好准备

如果之前没有验证器,请执行以下操作:

  1. 运行验证器并确保同步。
  2. 停止验证并提取所有资金。

准备single_nominator

  1. 安装 nodejs v.16 及更高版本和 npm ( 详细说明)
  2. 安装 ts-nodearg 模块
$ sudo apt install ts-node
$ sudo npm i arg -g
  1. 创建符号链接:
$ sudo ln -s /usr/bin/ton/crypto/fift /usr/local/bin/fift
$ sudo ln -s /usr/bin/ton/crypto/func /usr/local/bin/func
  1. 运行测试,确保一切设置正确:
$ npm run test
  1. 替换 mytonctrl 提名者池脚本:https://raw.githubusercontent.com/orbs-network/single-nominator/main/mytonctrl-scripts/install-pool-scripts.sh

创建single_nominator池

  1. 从 Telegram [@tonapibot] 获取 Toncenter API 密钥(https://t.me/tonapibot)
  2. 设置环境变量:
export OWNER_ADDRESS=<owner_address>
export VALIDATOR_ADDRESS=<validator_wallet_address>
export TON_ENDPOINT=https://toncenter.com/api/v2/jsonRPC
export TON_API_KEY=<toncenter api key>
  1. 创建部署者地址:
$ npm run init-deploy-wallet
Insufficient Deployer [EQAo5U...yGgbvR] funds 0
  1. 为部署者地址充值2.1 TON
  2. 部署池合同,您将获得池地址:Ef-kC0..._WLqgs`:
$ npm run deploy
  1. 将地址转换为 .addr:
$ fift -s ./scripts/fift/str-to-addr.fif Ef-kC0..._WLqgs

(将地址保存到文件 single-nominator.addr 中)

  1. 备份部署器私钥"./build/deploy.config.json "和 "single-nominator.addr "文件
  2. 将 "single-nominator.addr "复制到 "mytoncore/spool/single-nominator-1.addr"。
  3. 将木桩从所有者地址发送至单一提名人地址

从单一提名者提款

使用钱包从single_nominator提取 Fift:

  1. 创建包含金额的 "withdraw.boc "申请:
$ fift -s ./scripts/fift/withdraw.fif <withdraw_amount>
  1. 从所有者的钱包创建和签署请求:
$ fift -s wallet-v3.fif <my-wallet> <single_nominator_address> <sub_wallet_id> <seqno> <amount=1> -B withdraw.boc
  1. 广播查询:
$ lite-client -C global.config.json -c 'sendfile wallet-query.boc'
tons
  1. 创建包含金额的 "withdraw.boc "申请:
$ fift -s ./scripts/fift/withdraw.fif <withdraw_amount>
  1. 将申请发送至单一提名人地址:

a.

$ tons wallet transfer <my-wallet> <single_nominator_address> <amount=1> --body withdraw.boc
tonkeeper

b.

npm link typescript

c.

npx ts-node scripts/ts/withdraw-deeplink.ts <single-nominator-addr> <withdraw-amount>

d.打开机主手机上的 deeplink

参阅