Let‘s Move 0基础web2向web3迁移指南 (5) sui zkSend红包 SDK

Let’s Move 0基础web2向web3迁移指南 (5) sui zkSend红包 SDK

手把手教您使用zkSend SDK 制作Sui红包

  • 最简化的 nodejs 开局

最近zkSend红包又更新改版了

zksend

界面漂亮,功能增加了可以发送NFT红包

zkSend红包有个优点就是支持zklogin,让更多的新人用户能更方便的体验web3,用户只需要访问链接并使用自己常用的账号即可登录并领取Sui红包,极大的减少用户注册和账户预留gas的步骤。

有了 zklogin 手机浏览器也能抢红包了

zkSend SDK 能帮助开发者通过 PTB 的方式生成自定义随机金额的红包链接,链接做成二维码后,印成小册子,在用户拿小册子后,直接扫描二维码即可领取红包。

开发指南

前置条件 node.js已经安装完毕 npm运行没问题

1. 安装依赖

零基础手工开局

step1

npm init

首先建个空的文件夹后 npm init 一路回车 最后yes 结束

接下来安装sui.js

npm i @mysten/sui.js

step1

安装zksend sdk

npm i @mysten/zksend

step1

准备工作结束

2. 编写代码

修改 package.json 文件

step1

由于是js直接启动所以要添加 type

"type": "module",

在scripts里添加启动项

"start": "node index.js"

新建 index.js 文件

step1

然后就可以开始愉快的编写红包代码了

3.设计随机数函数

function generateRandomNumber(x, y) {
    var randomNumber = Math.random() * (y - x) + x;
    return randomNumber.toFixed(2);
}

js生成随机数就比较方便了,还能保留小数点2位,相当nice

4. 设定红包范围

//最大Sui
const maxSui = 5;
//最小Sui
const minSui = 1;
//生成链接总数
const total_links = 5;

5.发送红包的地址和私钥

//发送者
const nowsender = '钱包地址';
//钱包私钥
const secretKey = "钱包私钥";

这里要注意,目前钱包导出的私钥是加过密的 是suiprivkey开头的一串字符串,需要先解密后才能使用

使用 命令行 keytool 来解密

sui keytool convert "你导出的suiprivkey开头的私钥"

拿取 hexWithoutFlag 后面的一串字符串 加 0x 就是实际可以使用的私钥了

6.生成链接

const keypair = Ed25519Keypair.fromSecretKey(fromHEX(secretKey));
const client = new SuiClient({ url: getFullnodeUrl('mainnet') });

const links = [];//生成的链接
let totalsui = 0;//总Sui
 
for (let i = 0; i < total_links; i++) {

    const link = new ZkSendLinkBuilder({
        client,
        sender: nowsender,
    });
    var randomNumber = generateRandomNumber(minSui,maxSui);
    
    // console.log(randomNumber);
    let result = Math.round(randomNumber * mist)
    console.log(result);
 
    link.addClaimableMist(BigInt(result));
    links.push(link);
    totalsui += result;
}
 
const urls = links.map((link) => link.getLink());

console.log(urls);

const txb = await ZkSendLinkBuilder.createLinks({
    links,
});

await client.signAndExecuteTransactionBlock({
    transactionBlock: txb,
    signer: keypair,
});

7. 运行

yarn start

不出意外的话,控制台会打印出生成的链接

然后愉快的发到各个群里吧

zksend

good luck !

(未完待续)

Let’s Move 中文社区

telegram: https://t.me/move_cn

QQ群: 79489587

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值