- 博客(14)
- 收藏
- 关注
原创 solana开发框架anchor入门工程tic_tac_toe源码解析(一,RUST宏)
rust ,宏, solana, anchor, 区块链
2022-08-21 16:54:44
729
原创 使用expess监听web3事件之二(完结篇):使用WEB3 监听合约事件,并在服务内使用mitt事件总线进行事件分发
在上一章使用expess监听web3事件之一:环境搭建_lixiaodog的博客-CSDN博客中我们搭建好了EXPRESS的开发框架,在本章我们将在这个框架下调用WEB3模块监听目标合约。实际上如果单纯为监听合约,并不需要EXPRESS,但是一个真正的DAPP会有相当数量数据会存储到本地,而并不是使用的时候才去链上查找 ,那样太慢了,正常是做法是把链上数据同步到本地的数据库,客户使用时,直接查询本地数据。而为客户提供这个查询能力一般是通过提供一组供客户调用的API来实现的。这个时候EXPRESS就会提供大量
2022-05-11 23:11:21
415
原创 solidity智能合约if 语句报错, Error: Returned error: Error: Transaction reverted without a reason string
原始语句如下:bool isTimeOut = block.timestamp - _playerInfos[cur_opseatid].endOpTime > waitTime * 1000 * 50;但本语句在执行时一直回滚,看了下逻辑,没有问题。其实出错的原因在表达默认的返回类型_playerInfos[cur_opseatid].endOpTime与 block.timestamp都是Uint256,他们相减的返回值也是uint256,如果此时两值相减为负,则会出错,如果一定要使用这个
2022-05-07 09:19:02
1231
原创 rust中的函数参数传递与&运算符
让我们先来看一段代码:fn main() { let s1 = gives_ownership(); let s2 = String::from("hello"); let s3 = takes_and_gives_back(s1); println!("{}", s1); println!("{}", s2); println!("{}", s3); } fn gives_ownership() -> String
2022-05-05 16:09:08
1074
原创 使用solidity与web3创作一个在线小游戏之六:VUE的响应式数据,数组与对象的区别
在我的上一篇文章使用solidity与web3创作一个在线小游戏之五:VUE中的嵌套table,动态数据绑定,slot插槽与slot-scope_lixiaodog的博客-CSDN博客中我们使用了VUE中基础的几个特性,在本章中我们会深入了解VUE。...
2022-05-04 21:50:58
1241
原创 使用solidity与web3创作一个在线小游戏之五:VUE中的嵌套table,动态数据绑定,slot插槽与slot-scope
在本系列的上一篇文章使用solidity与web3创作一个在线小游戏之四:基于VUE的DAPP,与智能合约的交互_lixiaodog的博客-CSDN博客_vue智能合约中我们实现了一个Login页面,在这一章中,我们将实现HOME页面,在其中生成一个动态表格,表格中再嵌套表格,并实现动态的数据绑定。同时还将实现一drawer来添加数据...
2022-04-25 13:05:23
3569
原创 使用solidity与web3创作一个在线小游戏之四:基于VUE的DAPP,与智能合约的交互
在我的上一篇文章使用solidity与web3创作一个在线小游戏之三:(在VUE中使用WEB3,并使用Truffle包装对象与智能合约交互)_lixiaodog的博客-CSDN博客中,我们完成了VUE框架的搭建,并成功编写了myWeb3对象,然后用这个对象成功获取到了我们当前的地址。在这章中,我们将使用VUE编写一个简单的LOGIN页面,并使用这个页面与GameManage合约完成登录这个交互动作。首先在GameManage合约中,加入代码: function adminLogin(
2022-04-20 11:46:24
1069
原创 使用solidity与web3创作一个在线小游戏之三:(在VUE中使用WEB3,并使用Truffle包装对象与智能合约交互)
在我的上一篇文章使用solidity与web3创作一个在线小游戏之二:(proxy合约,solidity中的数组与mapping,状态变量的存储模型)_lixiaodog的博客-CSDN博客中,我们完成了proxy合约以及一个可更新的合约,并了解了solidity的存储模型,在本章中,我们将使用vue做框架,并引入web3与truffle-constract,并与我们编写好的合约进行交互。接下来,让我们出发!1。安装vue开发环境:在命令行中输入:$ npm install vue@nex..
2022-04-19 22:09:41
821
1
原创 使用solidity与web3创作一个在线小游戏之二:(proxy合约,solidity中的数组与mapping,状态变量的存储模型)
在上一章(solidity教程)使用solidity与web3创作一个在线小游戏之一:proxy合约,call, delegatecall与callcode_lixiaodog的博客-CSDN博客中,我们了解了可更新合约的基本原理,与solidity的三种函数调用方法,在本章中我们将完成一个基本的proxy,并写一个与之相配的可更新合约。在编写的过程中,我们还会接解到solidity的数组与mapping。请看下面代码:pragma solidity >0.4.24;contract
2022-04-17 17:57:55
6608
1
原创 使用solidity与web3创作一个在线小游戏之一:(proxy合约,call, delegatecall与callcode)
在我们的上个系列文章跟我一起阅读并修复某知名DEX交易所源码的最后,我们提到了proxy合约与admin合约,在这个新系列中,我将和大家一起使用solidity完成一个小游戏,并使用web3做一个客户的游戏客户端,并与之完成交互。现在让我们开始吧!首先我们考虑到,一个游戏具有相当复杂的逻辑,而如果使用solidity编写,一旦合约部署到链上,那将无法更改,此时如果游戏要更新怎么办?那有没有什么办法可以让我们的合约可以更新呢?这样不就可以解决这个问题了吗?答案是有的,就是使用PROXCY合约。下面让我们看
2022-04-13 16:05:02
6995
原创 跟我一起阅读并修复源码(3:编译工程,源码分析)之六
在上一章跟我一起阅读并修复某知名DEX交易所源码(3:编译工程,源码分析)之五_lixiaodog的博客-CSDN博客中我们详细分析了 contract MdexPair的源码,本章将继续编译的进程,来吧,少年,出发吧!!输入编译命令truffle compileproject:/contracts/mainnet/CoinChef.sol:48:43: TypeError: Operator ** not compatible with types int_const 100 and int
2022-04-11 07:50:25
2294
原创 跟我一起阅读并修复某知名DEX交易所源码(3:编译工程,源码分析)之五
在上一章中我们分析了contract MdexERC20,在本章中我们将分析contract MdexPair,我们注意到本合约与MdexERC20合约非常相似,相同的函数我们将不再分析。usingSafeMathforuint;usingUQ112x112foruint224;把SafeMath,UQ112x112附加到相应的数据结构上,这样只要数据类型为uint,uint224就可以以var.libfun()的形式直接调库函数。而libaray是一组逻辑代码。...
2022-04-10 18:17:54
703
原创 跟我一起阅读并修复源码(3:编译工程,源码分析)之四
在上一章跟我一起阅读并修复某知名DEX交易所源码(3:编译工程)之三_lixiaodog的博客-CSDN博客q中我们修复了 Factory.sol文件,在本章中我们将阅读Factory.sol中的代码,找到其中的调用关系。import "../library/SafeMath.sol";import "../interface/IERC20.sol";import "../interface/IMdexFactory.sol";import "../interface/IMdexPair
2022-04-10 15:42:58
457
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人