小试牛刀-Telebot区块链游戏机器人

目录

1.编写目的

2.实现功能

2.1 Wallet功能

2.2  游戏功能

2.3  提出功能

2.4  辅助功能

3.功能实现详解

3.1 wallet功能

3.2 游戏功能

3.3 提出功能

3.4 辅助功能

4.测试视频 


Welcome to Code Block's blog

本篇文章主要介绍了

[Telebot区块链游戏机器人]
❤博主广交技术好友,喜欢文章的可以关注一下❤

1.编写目的

        本文章为记录自己开发基于区块链和Telebot实现的[石头、剪刀、布]游戏的过程,加深自己对区块链知识的理解和使用,加深对TeleBot依赖库的使用,同时希望可以帮助到有想实现相关功能的朋友.     

2.实现功能

2.1 Wallet功能

       用户可以通过/create命令命令创建游戏wallet,同时可以输入地址或扫码向该wallet发送一定数量的游戏代币,使用/wallet命令可以显示当前游戏wallet内的剩余代币数量。

2.2  游戏功能

        用户可以将bot机器人添加到公开群组,同时在群组内发送/game命令创建具有奖励随机结果的游戏,使用不同的人向群组内回复该游戏/pk进行对战,获取对战结果并向游戏wallet发送设定的奖励游戏代币,用户可以使用/del删除当前已创建游戏。

2.3  提出功能

        用户可以通过/bind命令绑定外部wallet并进行代币提出.

2.4  辅助功能

        用户可以输入/rules查看游戏规则,输入/help命令查看机器人命令及解释。

3.功能实现详解

3.1 wallet功能

        用户通过/create命令命令创建游戏wallet可以参考我的博客生成solana公私钥,/wallet显示wallet信息是通过solana.py根据保存的用户公钥查询.

def getBalance(publicKey:str):
    solana_client = Client(rpc_url)
    #公钥转换
    pubkey=Pubkey.from_string(publicKey)
    tokenPublicKey=Pubkey.from_string(BOGGY_TOKEN_MINT)
    #获取SOL余额
    sol_balance = solana_client.get_balance(pubkey)
    #获取SPL代币余额
    token_account=solana_client.get_token_accounts_by_owner_json_parsed(pubkey,TokenAccountOpts(mint=tokenPublicKey))
    if noTokenAccount(token_account):
        #不存在代币账户时,则余额为0
        token_balance=0.0
    else:
        token_account_json=token_account.value[0].account.to_json()
        token_balance=json.loads(token_account_json)['data']['parsed']['info']['tokenAmount']['uiAmount']
    sol_balance=(sol_balance.value/10**9)
    return sol_balance,token_balance

        同时为方便用户使用,这边会将用户公钥通过qrcode库转换为二维码供用户扫码,主要代码为:

import qrcode
from io import BytesIO
from PIL import Image
import qrcode.main

def generate_qr(data):
    # 生成普通二维码
    qr = qrcode.main.QRCode(
        version=1,
        box_size=10,
        border=4,
    )
    qr.add_data(data)
    qr.make(fit=True)
    qr_img = qr.make_image(fill_color="black", back_color="white")

    

    # 将二维码图片保存到 BytesIO 对象中
    img_io = BytesIO()
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盹猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值