- 博客(909)
- 资源 (121)
- 收藏
- 关注
原创 Python Dict数据的格式化显示
Python里的Dict是一个非常规则的数据,这里介绍将Dict格式化。比如,将一行很长的Dict字符串进行格式化,进入专门的python格式化网站: https://www.xhcode.com/pythonformat/,输入字符串后,再点击[Python code formatting]按钮 --> OK。原文[AttributeDict({'address': '0x8E870D67F660D95d5be530380D0eC0bd388289E1', 'blockHash':
2022-01-18 16:52:24 3101
原创 win10 Powershell与CMD模式切换
Win10的命令行有2种模式:powershell模式、CMD模式。1 Powershell模式 按Win+R快捷键,呼出【运行】窗口 --> 输入: powershell ,即可打开powershell模式,如图(1)所示:图(1) 打开PowerShell模式 将Powershell模式切换到CMD模式,输入命令: cmd即可;如果要返回Powershell模式,则输入exit即可,如图(2)所示:图(2) Powershell与CMD切换 2 CMD
2022-01-08 09:42:42 7137
原创 go语言设置GOROOT、GOPATH、GOProxy等属性
这里介绍在Mac系统上,设置go语言的GOROOT、GOPATH、GOProxy等属性。1 设置GOROOT和GOPATH GOROOT默认为/usr/local/go,不用修改。 GOPATH默认为/usr/local/gocode,可改成自己的工程路径,比如, /Users/apple/Documents/myProject/godemo,如图(1)所示。## 在~/.bash_profile里的添加GOROOT、GOPATH变量vi ~/.bash_profileex
2021-12-31 11:18:58 8985 1
原创 解决Heroku“ name is already taken“问题
在将项目部署到Heroku时,有时出现"name is already taken"问题,如图(1)所示,出现这种现象的原因是: 部署的项目名称太知名,已被他人抢先占用。 图(1) heroku项目无法命名 解决方法:改用一个比较冷门的名字,或者在名字后面加666、520等好记的数字,或者在名字前面加修饰符: do+name, to+name, for+name。 图(2) 改用一个冷门的名字,避免重复...
2021-12-30 18:47:38 1922
原创 部署streamlit工程到Heroku
streamlit是一个非常简洁的python语言web框架,用于机器学习、数据可视化等。这里介绍在将streamlit工程部署到Heroku。系统环境:Mac电脑 + streamlit 1.3.01)安装Git和Heroku CLi2)安装Git sudo apt-get install git3)安装Heroku Cli 在Heroku官网下载 Heroku CLi,...
2021-12-30 17:45:54 1281
原创 解决“源引用规格 master 没有匹配“问题
从2021年11月开始,新项目github默认的主分支从master 变成了main,而在2021年之前创建的项目(老项目),主分支仍使用master。当使用 git push origin master 对新项目(2021年之后的项目)上传代码时,就会报"源引用规格 master 没有匹配"错误。 解决方法:本地分支的名称与远程分支的名称要保持一致,新项目要推送main分支,老项目要推送master。 命令如下:git push origin main1、查看远程分支git
2021-12-28 20:35:25 22794
原创 解决“from sha3 import keccak_256“包引用问题
sha3包是用C语言编写的计算字符串哈稀的包,在win10上安装时需要使用VS2017编译成python格式,再进行安装,但这个包已经5年没有更新了,并且在win10上安装时,报"sha3.c(33): error C2016: C 要求一个结构或联合至少有一个成员"错误。 解决方法:使用等效的包 eth-utils 替换 sha31 安装eth_utilspip install eth-utils==1.10.02 修改包引用与函数调用方式 修改包引用: from s
2021-12-25 15:09:12 1500
原创 win10安装streamlit软件包
streamlit是一个开源的python语言的web前端框架,常用于机器学习、数据分析、数据展示等。使用streamlit可以非常方便的创建网页、图表、Markdown文档。这里介绍在win10的Anaconda里安装streamlit软件包。1、安装Anaconda 安装方法请看这篇文章: Anaconda设置环境变量与镜像源2、创建python 3.9虚拟环境## 创建python v3.9虚拟环境conda create -n py39 python=3.9yes##
2021-12-25 13:07:05 3872
原创 beyond compare过滤指定文件或文件夹
在编写代码时往往需要将新代码与之前的老代码进行比较,而这些代码里有一些配置文件是IDE自动生成的,不需要比较,比如,.gitignore、__pycharm__,这时,可以在Beyond Compare的过滤栏里将这些不需要的文件或文件夹过滤掉。1 文件过滤规则 在文件名file前面加-(英文横杠),尾部加;(英文分号) ,形如: -file;## 过滤 .gitignore文件-.gitignore;## 过滤 .DS_Store文件-.DS_Store;2 文件夹过滤规则
2021-12-25 09:05:29 3434
原创 UniswapV2路由合约的函数选择器和事件选择器
UniswapV2路由合约UniswapV2Router02,其继承于IUniswapV2Router02, 而IUniswapV2Router02又继承于IUniswapV2Router01。路由合约用于在原Token与目标Token之间找到一条兑换路径,比如 TokenA --> TokenB --> TokenC,把TokenA兑换TokenC,需要通过TokenB来继续转接。实际是2个交易对: (TokenA,TokenB),(Token B,TokenC) 。路由合约的继承图表如下:
2021-12-22 16:33:10 851
原创 UniswapV2工厂合约里的函数选择器和事件选择器
UniswapV2工厂合约 UniswapV2Factory,继承于IUniswapV2Factory,如图(1)所示,用于创建配对合约。 图(2) UniswapV2Factroy工厂合约的继承图表UniswapV2Factory函数选择器和事件选择器functionselectconstructor(address)0xf8a6c595allPairs(uint256)0x1e3dd18ballPairsLength()0x574f2ba3
2021-12-22 16:02:20 404
原创 UniswapV2配对合约里的函数选择器与事件选择器
UniswapV2的配对合约UniswapV2Pair,继承IUniswapV2ERC20、IUniswapV2Pair这2个合约,如图(1)所示。UniswapV2ERC20 是ERC20合约,用于设置配对合约的Token名称、精度、符号等。IUniswapV2Pair用于获取交易对的价格、储备量、token0、token1的地址等 配对合约的继承表IUniswapV2ERC20的函数选择器、事件选择器functionselectDOMAIN_SEPARAT
2021-12-22 15:33:49 780
原创 ethers计算函数选择器与事件选择器
在Solidity中,函数选择器是对函数头进行keccak256()计算取前4个字节,事件选择器是对事件头进行keccak256()计算取完整的32字节。在ethers.js里对这个keccak256进行了封装,变成了ethers.utils.id()
2021-12-22 10:49:19 1148
原创 解决“ipfshttpclient 0.7.0 which is incompatible“问题
在python中使用pip安装依赖包时,有时报" xxx which is incompatible"错误,出现该问题的原因是,A包用了高版本的lib,而B包使用低版本的lib,这2个lib兼容。按照软件的最小优先原则,将A包和高版本的lib卸载,然后选用一个低版本的A包安装即可。
2021-12-18 23:03:35 1253
原创 解决“No Moduled named http.client“问题
http.client模块找不到的原因是:当前工程目录下有个与系统package同名的文件夹http或者http.py,即用户定义的package屏蔽了系统的package,导致报错。解决方法:将http改成其他名称即可,比如,http --> tohttp, http.py --> tohttp.py。
2021-12-18 15:48:01 5305
原创 vscode里安装json插件
vscode使用跨平台的轻量级、支持各种编程语言插件、可插拔的IDE,安装语言对应的插件,即可开发该语言。这里介绍json插件使用。 点击vscdoe左边的田字按钮 —> 输入关键字json --> 找到Prettify JSON --> 安装即可。查看JSON里的{}元素个数 图(1) 使用Prettify JSON 查看JSON的层次与{}元素个数...
2021-12-17 16:40:34 7105
原创 解决“function call to a non-contract account“问题
出现这种情况的原因是:**函数调用的合约找不到**,可能的原因有: - 合约没有部署; - 合约地址错误; - api-key缺少访问权限; - codeHash没有配置; - 调用的合约在主网,而被调用的合约在测试网,即两合约没有在同一个网络。
2021-12-11 17:43:53 4093
原创 hardhat同时编译不同版本的智能合约
hardhat可以同时编译不同版本的.sol智能合约,只需要在hardhat.config.ts或hardhat.config.js配置文件的compilers/version字段添加对应的版本号即可。比如,同时编译 solc-v0.4.26、v0.5.12、v0.6.12的sol智能合约,则新增一个compilers/version字段,在该字段里添加版本号即可。这里以hardhat v2.6.5为例进行说明。修改前 require("@nomiclabs/hardhat-waffle");
2021-12-07 23:48:08 5211
原创 Anaconda设置环境变量与镜像源
Anoconda一个非常方便的python包管理工具,这里介绍Anoconda v3在win10上的环境配置与镜像源配置。1 安装Anaconda, 官网地址: https://www.anaconda.com/products/individual2 设置环境变量, 在path里添加2条路径:D:\ProgramData\Anaconda3;D:\ProgramData\Anaconda3\Scripts;
2021-12-04 09:51:09 1171
原创 Anaconda创建python v2或v3 虚拟环境
在项目开发中,有时会用到多个python环境,比如python2,python3,这时就需要使用python虚拟环境了。通过Anaconda可以非常方便的在同一个主机上,创建多个不同版本的python环境,比如创建v3.9环境: conda create -n py39 python=3.9, 创建v2.7环境:conda create -n py27 python=2.7
2021-12-04 09:23:53 1810
原创 vscode去掉txt里的空白行
vscode是一个轻量级、跨平台的IDE,支持非常的插件,对于代码编译、调试、入库提交非常友好,下面介绍使用vscode通过正则表达式去掉txt里的空白行。用vscode里打开txt,按Ctrl+H,输入 ^\n 选中 [.*] 点击[全部替换] 即可
2021-12-03 11:54:00 1530 1
原创 解决“@openzeppelin/contracts/proxy/ not find“问题
今天在slither测试智能合约时,发现"@openzeppelin/contracts/proxy " File not found问题,如图(1)所示。解决方法如下:1) 安装@openzepplin/contracs、@openzeppelin/contracts-upgradge依赖包2) 将slither的加载路径设置package.json的同级目录3)修改.sol的库文件引用路径,将@openzeppelin 改成 ../node_modules/@openzeppelin
2021-11-26 17:45:08 2336 2
原创 解决“Timeout of 2000ms exceeded“问题
在nodejs测试中,有时弹出"Timeout of 2000ms exceeded"错误,如图(1)所示。出现这种情况的原因是,nodejs默认加载时间为2000ms,若加载一个库或者搜索一个文件超过2000ms,则会报错。 解决方法:将package.json的scripts字段里,添加一个超时时间 --time XXX,把它改大一点,比如,改成30000000。
2021-11-26 00:06:52 16205
原创 使用ethers.js执行读函数与写函数
ethers.js是一个简洁的以太坊操作库,使用它非常方便的执行读函数、写函数。下面介绍使用ethers.js执行CountOne.sol里的读写函数。
2021-11-19 16:35:27 5750 1
原创 解决“VirtualBox VERR_NEM_INIT_FAILED“问题
在win10上使用VirtualBox创建虚拟机时,有时报"VERR_NEM_INIT_FAILED "错误,出现这种情况的原因是,Hyper-V、Container等选项卡没有关闭,VirtualBox软件版本过高等照成的。解决方法如下: - 屏蔽Windows选项卡里的相应功能 - 屏蔽"内存完整性" - 选择低版本的VirtualBox,例如VirtualBox v6.1.16
2021-11-14 11:15:01 6972 1
原创 解决“VirtualBox 只显示32-bit系统版本“问题
在win10上安装VirtualBox后,点击VirtualBox工具栏上的[创建] 发现系统版本只有32-bit,如图(1)所示。解决方法:若要使VirtualBox支持64-bit系统,则需要满足4个条件:- VirtualBox需要64位的CPU- BIOS要开启虚拟化功能- Hyper-V选项卡要关闭- “适用于Linux的Windows子系统”也要关闭。
2021-11-14 09:03:26 6252
原创 解决“brownie控制台print打印失效‘问题
在使用brownie测试智能合约时,有时出现print函数在控制台没有输出的情况。问题原因:没有开启 -s 参数。解决方法:在brownie test命令后面添加-s参数
2021-11-10 18:01:11 320
原创 在json里查看Solidity的版本
智能合约使用truffle compile、npx hardhat compile、brownie compile这3种工具编译后,都会得到一个json文件,该json文件有合约的abi、bytecode、compiler等字段。 - abi 应用程序二进制接口,是合约提供外界调用的接口。 - bytecoe 字节码,合约代码编译之后得到的字节码,最后会部署到链上。 - compiler 是Solidtiy的编译信息,包含链分叉的版本、solc版本、是否优化。
2021-11-09 16:51:11 3370
原创 brownie部署与测试智能合约
brownie是一种Python语言的开发与测试框架,它可以部署.sol、.py格式的智能合约。- 完全支持Solidity和Vyper- 通过pytest进行智能合约测试,包括基于跟踪的覆盖率评估- 通过hypothesis进行基于属性和状态的测试- 强大的调试工具,包括python风格的跟踪和自定义错误字符串- 内置控制台,用于快速项目互动- 支持ethPM软件包
2021-11-09 16:14:37 2084 2
原创 解决“requires XXX which is not installed“
在pip安装依赖包时,有时报”requires XXX, which is not installed“错误, 出现这种现象的原因是该依赖包没有安装。解决该问题的方法是缺啥就安装啥。比如”spyder 4.2.5 requires pyqt5<5.13, which is not installed.“
2021-11-08 16:20:37 10800
原创 解决“requires astroid<2.7,>=2.5.2 “问题
今天,在安装astroid,弹出"pylint 2.7.4 requires astroid<2.7,>=2.5.2, but you have astroid 2.5 which is incompatible."错误,出现该问题的原因是:astroid的版本太低。解决方法: 卸载当前的astroid,然后安装requires提示信息里需要的版本,上面的提示信息表示需要astroid的版本为v2.5.2 ~ v2.7, 这里选择astroid==2.5.2
2021-11-08 15:54:10 4068 1
原创 ERC20标准函数简介与测试方法
ERC20是以太坊上的一种合约标准,它包含5个函数、2个事件。具体如下:- totalSupply() 代币的总量- balanceOf() 某个地址上的余额- transfer() 发送代币- allowance() 额度、配额、津贴- approve() 批准给某个地址一定数量的代币(授予额度、授予津贴)- transferFrom() 提取approve授予的代币(提取额度、提取津贴)- Transfer() 代币发送事件- Approval() 额度批准事件
2021-11-04 16:42:49 4459
原创 解决“export NODE_ENV=test”不是外部或内部命令
今天在mocha编程中,运行测试ts脚本,报"export NODE_ENV=test"不是外部命令、内部命令,如图(1)所示。问题原因,export是Linux上的命令,在windows不支持,需要将它改成SET \"NODE_ENV=test\"。即用set代替export。
2021-11-01 23:08:51 631
原创 ethers.js读写合约里的状态变量
在ethers.js里,对合约状态变量的访问有2种方式:只读方式和读写方式。当访问合约里的状态变量时,需要知道该合约的地址、abi、provider(或signer)。只读方式,只能读取状态变量;而读写方式,既可以读取状态变量,还可以修改状态变量。
2021-10-31 17:30:57 6597
原创 解决“libproxychains4.so Error“问题
在编译ProxyChains-NG项目时,报“libproxychains4.so Error”错误,如图(1)所示。出现这种情况的原因是,当前系统上没有libproxychains4.so库文件,可以安装低版本的ProxyChains-NG来解决该问题,比如安装ProxyChains-NG v4.11。这里以在Mac系统,安装ProxyChains-NG v4.11为例进行说明。
2021-10-26 11:55:58 1790
原创 解决”recipient.call{value : amount}(““)“问题
今天,在编译Solidity智能合约时,报"ParserError: Expected ';' but got '{'"错误,如图(1)所示。 问题原因:.call()调用在不同的Solidity版本里,是不相同的。解决方法:根据Solidity版本,来更改.call()写法。
2021-10-25 16:21:31 1046
原创 监听Solidity合约事件
在ethers.js里,使用contractWithSigner.on()的方式,监听合约的某个事件或者地址上的交易。合约的事件,会通过emit event的方式发出,使用contractWithSigner.on() 注册了该事件,就可以实现监听了。下面以监听EventValue.sol里的ValueChanged事件为例,进行说明。
2021-10-24 12:50:41 4928
原创 使用ethers.js部署Solidity智能合约
ethers.js是一个非常精简的以太坊操作库,它包含如下四个模块:Ethers.provider,Ethers.contract,Ethers.utils,Ethers.wallets其中,Ethers.provider负责与以太坊节点进行连接,查询交易、广播交易,获取账户余额等功能;Ethers.contract负责与智能合约进行交互,包括部署合约、监听合约里的事件、获取合约里的信息,调用合约里的函数等功能;Ethers.utils是一个工具库,主要用于处理输入、输出数据,数据的进度与格式转换;
2021-10-24 10:57:53 4721 1
原创 Solidity状态变量的可见性
Solidity的状态变量,有private、public这2种,其中private表示私有,在本合约里可见;public表示公有,在本合约、以及它的子合约都可见。如果一个状态变量,既没有被private修饰、也没有被public修饰,则它默认私有的。
2021-10-23 18:25:39 1005
原创 Sushiswap的部署方法
Sushiswap是从UniswapV2分叉而来,加了MasterChef合约、SushiToken合约。下面介绍,使用truffle将Sushiswap部署到ganache本地私有链。
2021-10-22 13:35:40 1175
64位的jdk1.6_45 for Windows
2015-12-15
R调用C++代码
2015-12-11
RTools30与RTools33
2015-12-11
Rcpp_0.12.2
2015-12-10
深入浅出MySQL数据库开发优化与管理维护_第2版_唐汉明
2015-12-07
数据结构习题与解析B级_李春葆
2015-11-27
用MatLab GUI实现加减乘除
2015-11-26
Groceries数据集
2015-11-26
用Tab实现加减乘除
2015-11-25
数值与非数值分析VC++类库
2015-11-02
MatlabEngineTest
2015-10-27
APDL语法配置文件
2015-05-30
APDL编辑器
2015-05-29
VC6.0打开补丁
2015-05-15
IcofXSetup
2015-03-28
InnoSetup5.5
2015-03-28
C++标准程序库(pdf及源代码)
2015-01-19
数据结构使用C++标准模板库STL 陈本林版
2015-01-19
ZeroX64 v1.0.rar
2021-06-14
myColor v1.0.rar
2020-01-10
BoostTwo.rar
2019-12-08
Beyond compare右键菜单修复方法.rar
2019-09-08
ipmitool源码与编译说明.rar
2019-08-03
NewFileTime
2017-12-10
Just Manager_0.5.14
2017-03-19
Numpy1.10和Scipy0.16
2016-01-05
jython2.5.4_与jython2.7.0包
2016-01-01
Java通过JRI调用R
2015-12-28
Java调用R语言的实例
2015-12-28
基于用户的协同过滤算法Mahout实现
2015-12-23
commons-math3-3.5-bin包,有Gama、Beta函数
2015-12-23
JFreeChart和pdf操作
2015-12-21
itext5.0.6_itextasin1.5.2_jfreechar1.0.13_jcommon_1.0.16
2015-12-21
collections-generic-4.01_and_looks-2.1.4
2015-12-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人