跟着浅浅学开发——使用Shell制作批量转账工具

因为举办了 PlatON & Oasis 隐私巅峰对话活动的过程中,在多渠道多用户的进行抽奖活动,包括但不限于微信30位(实到19位),微博60位(抽到45位),B站直播40位(实际37位)。

因此我们迫切地需要一种能够批量转账的方案。

在神酷、笨笨熊猫锲而不舍地教导下,以及浅浅热爱学习的好奇心驱使下,我花了点功夫掌握了Shell用法,并重新编写了批量转账脚本,这个帖子记录如何使用这个工具。

首先,读者需要根据《成为主网验证节点》《PlatON_MTool在线教程》先部署一个主网普通节点【就是不要去质押十万LAT的那种节点,为什么不呢,因为浅浅没有那么多LAT​:rofl:】,并且安装好PlatON_MTool节点工具。

好,然后请读者进入到platon-node文件中,我这边的目录树如下图所示:

image

我们把hello.sh文件和lat_address.txt文件放在同一个目录中

接着使用

vim hello.sh

使用文本编辑工具vim打开这个shell控制脚本,在其中键入

#!/bin/bash
Index=1 #定义循环变量,当Index为是奇数时获取地址,当Index为偶数时获取转账数额
for i in `cat lat_address.txt`
do
	if (($(($Index % 2)) == 1))
	then
#		echo "正在获取LAT地址"
		lat_address=$i #获取LAT地址
		let "Index++"  #使得循环变量递增
	else
#		echo "正在获取转账金额"
		value=$i       #获取对该地址的转账数额
		echo "from QianQian to $lat_address transfer $value LAT"
		echo -e '你的密码(真的只需要填写你的钱包密码就可以了)' | platon_mtool tx transfer --keystore $PLATON_MTOOLDIR/keystore/QianQian.json --amount "$value" --recipient $lat_address --config $PLATON_MTOOLDIR/validator/validator_config.json
		let "Index++"  #上述操作完毕后,循环变量自增,使得Index成为奇数
	fi
done

该脚本内的每一条Shell指令都是简单的,可以参考我上午看的教程《菜鸟教程——Shell教程》

其中有几个地方我做个解释

1、第一次的循环判断时验证是否为奇数
2、你的密码就是钱包密码,不是私钥也不是助记词
3、QianQian.json这个位置,你应该替换为你当时希望使用的钱包名称,例如你的是ZhangZhang.json,那就是$PLATON_MTOOLDIR/keystore/ZhangZhang.json

然后是 lat_address.txt 文件的内容,类似于csv格式,但使用空格隔开,例如:

#lat_address.txt
lat10fkke6xtxzw2jn6sa69jz3g8jjxyjqqvmnezc6 0.1
lat1qqw465an2v9qjgq8djmpa95dutx2c8unfq3m0x 0.05
lat10l6g02r73faqwsqn5taqsyq3srgrfyl38vw00m 0.05

这些都准备好之后,在控制台输入 chmod +x ./hello.sh 变更文件权限,然后输入 ./hello.sh 执行该sh文件即可。

好喽,该教的教完了,下课吧。

2 Likes

什么时候 上NFT了吗

1 Like

还没上,在做基础的验证,下一步是NFT

踩坑重现:

起因:

需要向微博中奖45人发放10LAT奖励【实到34人】,然后我需要启动我的批量转账工具。

经过:

由于我三天前实在受不了高额的服务器费用,因此浅浅停止了该服务器的运行,只保留数据盘和带宽等基础服务,今天我重新启动了该服务器,发现批量转账工具出现异常,开始排查。

以下是正确步骤:

1、重新启动NTP时间同步服务
2、重新启动主网节点
3、变更hello.sh文件中的地址文件内容
4、运行即可

结果:

转账成功。

1 Like