河南漫云科技有限公司
主营产品: 元宇宙系统开发、元宇宙源码、NFT数字藏品软件开发,nft智能合约开发,盲盒系统app开发搭建,nft源码系统,网络技术开发,软件技术开发,软件定制,技术开发,信息技术服务
链游定制开发丨链游dapp系统开发

    各行业都在实现qukuailian化,qukuailian的发展日益加快。游戏+资产的模式代表着加密市场的应用机会与时代机遇。在qukuailian上,玩家可以拥有游戏内的资产,而这些资产则有更广泛意义上的流通性。相较传统游戏中心化的管理模式,链上游戏使得游戏资产可在内外部市场流通交易,从技术层面赋予了更多应用场景。

    qukuailian不可篡改的特点可以为游戏行业带来全新的可信、公平、透明的信任机制。游戏规则及具体数据通过qukuailian实现公开透明记录,数据不可篡改,提高游戏可信度、公平性及透明度。同时用户的游戏数据由用户掌控,提高数据保护能力。

    以qukuailian为核心的数字科技可以推动信息技术服务,从而促进数字产业化;元宇宙可以创造和创新更广泛的应用场景,拉动信息消费促进产业数字化。因此,以qukuailian为核心的Web3.0技术体系推动形成的元宇宙数字生态,将对数字产业化和产业数字化提供有力支撑,为数字经济高质量发展打造新引擎。

    一、智能合约python基础

    1、连接环境

    #web3对象与已部署的用户合约进行通信

    rpc="HTTP合约通讯地址(httpurl)"

    web3=Web3(HTTPProvider(rpc))

    2、区块相关:链游系统kaifa流程I35源码7O98kaifaO7I8

    #当前区块高度

    blockNumber=web3.eth.blockNumber

    print(blockNumber)

    #获取新的区块

    block=web3.eth.getBlock('latest')

    print(block)

    #输出默认区块

    print(web3.eth.defaultBlock)

    3、账户相关

    #将个测试账户设置为默认账户

    web3.eth.defaultAccount=web3.eth.accounts[0:1]

    #输出默认账户

    print(web3.eth.defaultAccount)

    #获取账号信息

    accounts=web3.eth.accounts

    print("账户列表:",accounts)

    #获取当前gas的价格

    print(web3.eth.gasPrice)

    address1="你的钱包地址"

    #获取eth余额

    balance1=web3.fromWei(web3.eth.getBalance(address1),"ether")

    print(balance1)

    二、智能合约ABI简易介绍DAPP系统kaifa唯:MrsFu123

    “合约ABI是以太坊生态系统中与合约交互的标准方式,不论是外部客户端与合约的交互还是合约与合约之间的交互。”上述是以太坊官方文档给出的定义,更通俗的理解,包含两方面内容:

    ABI是合约接口的说明。

    ABI定义与合约进行交互数据编码规则

    在测试合约接口的时候我们会用到

    三、测试合约前提

    1、熟悉项目业务层逻辑

    2、kaifa提供智能合约接口文档

    (1)、确认我们要在那个链上测试,让kaifa提供对应的测试币

    (2)、提供测试地址(类似于web2的url)

    (3)、提供新合约地址(这个地址kaifa每次部署到链上都会变更)

    (4)、提供ABI(合约接口的说明)如果kaifa不给可以在ethqukuailian浏览器上获得

    (5)、我们自己测试钱包的秘钥

    四、智能合约转账(单元脚本)

    fromweb3importWeb3,HTTPProvider

    importjson,os

    rpc="HTTP合约通讯地址(httpurl)"

    address1="个人合约地址"

    address2="智能合约地址"

    test_key="个人钱包秘钥地址"

    #连接钱包地址

    web3=Web3(HTTPProvider(rpc))

    #结果为true表示连接成功

    connect=web3.isConnected()

    print(connect)

    #转账

    deftransfer_eth(amount,gas_price=20,gas_limit=21000):

    #带签名的合约写操作

    params={

    #发送代币地址

    'from':address1,

    #接收代币的地址

    'to':address2,

    #代币数量,以wei为单位,可以是字符串和int类型web3.toWei(数值,代币单位)

    #为了方便调通代码,我们这里用wei来做单位,正常都是用ether。

    #1ether=1x10^18wei=1x10^9Gwei

    'value':web3.toWei(amount,'wei'),

    #每个在链上可以执行的命令都设置了一个消耗的gas值,例:PUSH操作需要消耗3个gas,一次转账一般要消耗21000gas,gas使用ether来支付

    #1ether=1x10^18wei=1x10^9Gwei,无论您执行的命令是成功还是失败,都需要支付计算费用

    #简易理解:gas_limit是一次交易中gas的可用上限

    'gas':gas_limit,

    #通过gasPrice可以节省矿工费用,但也会减慢矿工打包的速度。因为,矿工会优先打包gasprice设置高的交易,如果您想加快转账,您可以把gasprice设置得更高,这样您就可以插队靠前

    #一次转账一般要消耗21000gas,如果你设置的gasPrice=1000000000wei=1Gwei,则此次转账的交易手续费为:TxFee=21000Gwei=0.000021ether

    #A账户欲向B账户转账4ether,则要求A账户至少要有4+0.000021=4.000021ethrer

    #简易理解:gasPrice就是你想用多少气费进行交易,为什么设置20,是因为当前市场价20就够了。如果你有钱,想更快也可以设置成25甚至更高

    'gasPrice':web3.toWei(gas_price,'gwei'),

    #'nonce':web3.eth.getTransactionCount(主钱包地址),主要标记当前新的交易号是多少,算是记录在交易队列中的位置

    'nonce':web3.eth.getTransactionCount(address1),

    }

    #web3.eth.account.signTransaction用账户对交易签名(转账需要的参数,from钱包地址的秘钥)

    signed_tx=web3.eth.account.signTransaction(params,private_key=test_key)

    #交易发送并获取交易hash

    tx_hash=web3.eth.sendRawTransaction(signed_tx.rawTransaction)

    returntx_hash

    print("运行转账后的交易hash值:",transfer_eth(100))作者:pV_MrsFu123https://www.bilibili.com/read/cv21066560/出处:bilibili


展开全文
拨打电话 微信咨询 发送询价