- 博客(68)
- 收藏
- 关注
原创 hardhat3 框架源码修改后如何使用
本文介绍了在Hardhat项目中使用修改后的hardhat-verify框架的两种方法:1)通过npm link命令构建并链接本地修改的包;2)直接在package.json中指定本地路径。同时提供了验证是否成功的方法,以及如何切换回官方版本的操作步骤。这种方法允许开发者只替换特定插件而不影响其他官方组件。
2025-09-07 08:41:02
201
原创 GitHub提交到公共项目流程
本文介绍了GitHub项目提交的两种流程:自己的项目和公共开源项目。对比表格显示公共项目需遵循更严格的PR流程和规范。自己的项目操作简单,包括添加、提交、推送三步;公共项目贡献需Fork、创建分支、PR审核等步骤。特别讲解了Changeset工具的使用,用于版本管理和变更记录,包括交互式和手动创建方法。文章还提供了版本类型选择指南(Major、Minor、Patch)和常见问题解决方案。
2025-09-07 07:59:12
678
原创 hardhat3 源神 -- 启动!
本文档详细介绍了Hardhat Verify项目从环境配置到运行测试的完整流程。主要内容包括:1) 环境准备(安装Node.js 18+、Yarn及配置镜像);2) 项目构建(克隆仓库、安装依赖和编译);3) 测试运行(进入hardhat-verify目录执行测试);4) 常见问题解决方案。所有操作需在项目根目录执行,确保依赖正确安装和构建。通过yarn test可验证环境配置,183项测试通过即表示环境正确。文档最后提供命令速查表,方便快速查阅关键操作步骤。
2025-09-03 17:36:13
598
原创 hardhat 3 测试框架选择
项目目录结构 ✅Hardhat 配置文件结构 ✅所有 CLI 指令 ✅Solidity 合约代码 ✅package.json 中的脚本命令 ✅测试文件的导入和语法部署脚本的库调用方式package.json 中的依赖包(一个用 viem,一个用 ethers)hardhat.config.ts 中可能有不同的插件配置这两个选项本质上提供了相同的开发体验和工作流程,只是在具体的代码实现语法上有差异。
2025-08-31 13:29:59
634
原创 Hardhat 中 Solidity 版本冲突问题及解决方案
摘要:本文介绍了Hardhat开发中遇到的Solidity版本冲突问题及解决方案。推荐两种方法:一是配置多个编译器版本(方案1),适用于不同合约依赖不同版本的情况;二是统一使用单一版本(方案2,推荐方案)。文章详细说明了具体配置步骤,并分析了单一版本的优势在于避免冲突、提高兼容性和编译效率。对于必须使用多版本的情况,提供了配置注意事项,包括版本精确匹配和清理缓存的建议。最后强调统一版本能带来更稳定可靠的开发体验。
2025-08-02 01:42:32
1190
原创 solidity 中 Eth 和 Usd 到底如何转换
本文详细介绍了如何在Solidity中通过Chainlink预言机实现ETH与USD的换算。核心原理是利用整数运算处理精度问题,通过预言机获取放大后的ETH/USD价格数据。文章提供了完整的实现步骤和代码示例,包括初始化预言机、获取实时价格、实现ETH转USD和USD转ETH函数。关键点在于理解价格数据的放大倍数处理和单位转换逻辑,并强调了价格新鲜度检查、精度匹配等注意事项。该方案适用于需要链上价格换算的DeFi应用开发。
2025-07-30 13:43:28
1327
原创 solidity中如何接受资金(2)
以太坊中,向合约地址发送ETH分为"纯转账"和"带数据转账"两种方式。纯转账仅发送ETH金额,不携带额外数据,触发合约的receive()函数;带数据转账则附加二进制数据(如函数调用信息),触发指定函数或fallback()函数。二者的核心区别在于msg.data是否为空,决定了合约如何响应资金接收。理解这一机制对Solidity开发至关重要,直接影响合约的资金处理逻辑和函数调用方式。
2025-07-30 10:48:34
1051
原创 solidity中如何接收资金(1)
Solidity 合约接收以太币(ETH)的三种方式: 显式 payable 函数:最常用方式,允许自定义验证逻辑(如金额检查),适合业务场景中灵活处理 ETH 转入。 receive() 函数:专用于被动接收纯 ETH 转账(无数据),适合简单接收场景(如捐款)。 fallback() 函数:处理无法匹配的调用或带数据的转账,作为默认逻辑。 优先级:显式函数 > receive() > fallback()。需注意安全限制和 gas 消耗,避免重入攻击。
2025-07-30 10:29:45
1022
原创 solidity中payable的使用方法
Solidity中payable函数的安全实践要点:1)严格权限控制(如onlyOwner修饰符);2)防范重入攻击(状态锁+Checks-Effects-Interactions模式);3)输入验证(金额限制、溢出检查);4)优先使用call转账并控制gas;5)关键操作记录事件;6)设置紧急停止和资金回收机制;7)避免与未经验证合约交互。同时需进行专业审计和全面测试(边界条件、攻击场景等),通过多重防护确保资金流转安全。
2025-07-30 10:11:47
1179
原创 debug设置
远程调试:nohup java -Xms128m -Xmx1024m -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=18008 -Djava.library.path=lib jar/easyweb-ai.jar --spring.profiles.active=test > log/ai.log 2>&1 &
2023-09-14 10:50:01
214
原创 java修改版本不生效的解决办法
1、jdk安装使用了.exe文件直接运行安装,这个不用配置环境变量,惠子动生成运行的文件,将查到的文件按照路径删掉(不要删除安装的文件,删除自动生成的文件)这里我删除了前两个的Oracle文件夹及其内容。dos命令页——>输入where java。4、修改环境变量,测试一下。
2023-09-06 14:54:26
815
原创 shell 脚本无法找到已有的文件
shell 脚本中有个行命令 if[!-f ${file_path}]我用echo在这行命令之前打印了echo “${file_path}” 打印文件路径,根据路径在达访中可以找到,但是执行shell时报错 file not fount加了文件权限后还是找不到文件 chmod 777 file然后想会不会是路径中有中文的原因,修改之后,正常了,文件找的到了...
2022-05-29 11:48:21
1117
原创 spi机制中使用restTimeplate
spi机制中使用restTimeplate时,容易造成项目中引用了spi同时又调用restTimeplate注入两次的问题。解决方案://spi中bean注入 @Bean("logRestTemplate") @LoadBalanced public RestTemplate getRestTemplate(){ return new RestTemplate(); }引用的时候使用@Resource@Resource(name="logRestTe
2022-03-30 10:43:55
421
原创 枚举类做常量
使用枚举代替静态变量作为常量,易扩展,枚举类是数组存储,连续空间运行快package com.demo.enum;/** * 平台类型枚举类 * (0:用户名 1:手机号 2:邮箱 3:QQ 4:微信 5:支付宝 6:新浪微博 * * @author czy * @date 2021/4/14 */public enum PlatFormTypeEnum { ACCOUNT(0, "用户账号"), PHONE(1, "手机号"), EMAIL(2, "邮箱"),
2022-03-29 16:38:49
537
原创 Failed to determine a suitable driver class
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
2022-03-29 14:00:04
445
原创 @Resource和@Autowired的区别
相同点:@Resource的作用相当于@Autowired,字段注入属性的setter方法上注入。不同点:来源不同@Autowired是spring提供@Resource是jdk提供的注入方式不同@Autower根据类型注入@Resource根据名称和类型注入细节选择@Autowired中有required字段可以设注入属性null@Autowired配合@Qualifire注解根据名称注入@Resource中有两个重要字段name和type有name有type注入唯一的
2022-03-25 09:29:22
1241
原创 数据库统计sql
分组统计:1、使用count+case来用字段的值来做统计标准2、使用"$"来填充日期格式,将日期格式直接拼接到sql中3、循环拆分带“,”的字符串,最好在代码中变为list,在sql中循环if (this.type.equals("1")){ this.sqlType = "'yyyy-MM-dd hh24'"; } if (this.type.equals("2")){ this.sqlType = "'yyyy-M
2022-03-15 17:11:12
1478
原创 RestTemplate集群内外同时调用的问题
使用rest Template调用外网//bean注入@Configurationpublic class BeanConfig { @Bean @Primary public RestTemplate getRestTemplate(){ return new RestTemplate(); }}//bean引用@Autowiredprivate RestTemplate restTemplate;使用rest Template进..
2022-02-28 14:54:26
496
原创 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):XXX
检查映射是否错误xml文件和dao文件之间的映射<mapper namespace="com.zrar.XXX.log.dao.ApiInfoConfigDao">xml方法和dao方法的映射<select id="getList" resultMap="apiMap">返回值之间的映射,如果返回list,最好补充resultMap <resultMap id="apiMap" type="com.zrar.easyweb.log.bo.ApiCollectio.
2022-02-21 10:24:55
478
原创 Cannot Deserialize From Object Value (No Delegate- or Property-Based Creator)
rpc调用报错:Cannot Deserialize From Object Value (No Delegate- or Property-Based Creator)原因:使用lombok在类上加了@Getter,@Setter注解,没有无参构造三种解决方案:用@Data代替上面两个注解手动添加无参构造(快捷键:alt+insert)添加无参构造注解@NoArgsConstructor...
2022-02-21 09:49:09
1302
原创 docker 运行的redis如何进入控制台
1、docker -ps查找docker运行的进程2、docker exec -it [CONTAINER ID] redis进入redis,下方显示root@66c502ac64ea:/data#3、redis-cli 进入客户端4、auth password 输入密码5、ping 测试链接下方显示PONG
2021-11-11 14:23:25
1976
原创 无图无真相,字符串相加原来是这样做的
面试官问我字符串想加如何和操作?我:字符串相加有常见的有三种方法:1、使用String +String2、使用StringBuffer3、使用StringBulider先说第一种,两个字符串用“+”相连,过程是创建新的String对象,将字符串按照顺序复制进来,这种操作时候少量的新增操作,如果相加次数多就会频繁创建数组,效率低下,第二种第三种,StringBuffer,StringBulider都实现了AbstractStringBuffer接口,相当于字符串的一个工具类,其中维护了一个valu
2021-09-09 16:57:29
1761
原创 桥接模式,要从《诛仙》说起!
弟弟抱怨:今天的业务有好多类啊!好烦啊!我:业务不是有好多可以归类的吗?你可以使用桥接模式来减少代码量!弟弟:说说看!我:要说桥接模式,还需从《诛仙》和修真说起!弟弟:这个好,这个好,玄幻修真是吾平生所爱。我:你应该知道,修真的辅助职业有多条路可走弟弟:炼丹,练器,练阵,御兽…我:没错,修真界还有门派之分,比如《诛仙》弟弟:我知道,青云门,天音寺,焚香谷…我:那这些和桥接模式有什么关系呢?先来看张图从图中我们可以看出,丹药分为青云门丹药,天音寺丹药,焚香谷丹药;阵法分为青云门阵法,.
2021-06-22 18:43:09
176
windos 11 配置hardhat开发环境
2025-08-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
2