合约量化机器人系统开发源码搭建丨量化合约机器人系统开发技术流程

简介: 合约量化机器人系统开发源码搭建丨量化合约机器人系统开发技术流程

可以看到其实是一个很简单的逻辑,里面定义了 2 个变量,还有一个事件,以及一个调用方法,整个合约要实现的就是当事件满足一定条件的时候才可以从合约账号提现

下面,我们使用 hardhat 提供的命令对合约文件进行编译:

npx hardhat compile
hardhat 会帮我们编译 contracts 目录下面的所有合约文件

这时候我们可以看到在控制台已经输出了编译日志,如果编译不成功会提示相应的错误信息

在我们的项目目录里同时也会生成一些新的文件,如上图所示,其中 cache 目录为缓存文件,artifacts 目录下的 build-info 目录,存放的是构建项目的信息,contracts 下面存放的是编译的每个合约对应的 abi 接口信息

2、测试合约
通过上面的操作,我们已经成功的编译了合约文件,下面我们来对合约文件进行测试,一个好的测试流程可以避免我们的合约出现一些严重的 bug,特别是在区块链上,一旦合约部署上去就无法再次更新,所以我们在正式上线之前,必须将合约完全测试一遍

2.1 测试脚本介绍
我们回到 vscode,打开项目目录 test,这里已经有了一个名为 Lock.js 的脚本文件

让我们打开它,看一下它的主要构成

代码前 6 行定义了几个常用的测试辅助对象,其中 loadFixture,可以让我们在测试中都使用相同的配置,最常用的就是我们在测试类里会定义一个部署合约的方法,然后在需要使用合约对象的地方,通过 loadFixture(function) 获取部署合约的快照对象

在 hardhat 里,我们使用 chaijs Chaijs 官网[6] 来进行断言测试, 感兴趣的朋友,可以浏览 chai 官网获取更多信息,通过使用 expect 方法,进行断言测试

describe("Lock", function () {})
复制
这段代码就是标识测试的开始,其中第一个参数为测试标题,可以随便定义,第二个参数为要执行的函数体,我们在函数体里,进行具体测试逻辑的编写

describe 是可以嵌套使用的

所以我们一般测试会在第一个 describe 里定义一个合约部署方法,然后在 describe 里嵌套 describe,通过 loadFixture(function) 获取相同合约部署快照

2.2 合约部署方法
回到刚刚的测试文件,我们继续阅读代码

async function deployOneYearLockFixture() {

const ONE_YEAR_IN_SECS = 365 * 24 * 60 * 60;
const ONE_GWEI = 1_000_000_000;

const lockedAmount = ONE_GWEI;
const unlockTime = (await time.latest()) + ONE_YEAR_IN_SECS;

// Contracts are deployed using the first signer/account by default
const [owner, otherAccount] = await ethers.getSigners();

const Lock = await ethers.getContractFactory("Lock");
const lock = await Lock.deploy(unlockTime, { value: lockedAmount });

return { lock, unlockTime, lockedAmount, owner, otherAccount };

}
复制
这部分代码定义了一个合约部署方法,其中

第一个 owner 即为我们部署合约的账号,可以通过加入更多字段接受返回,获取其他的账号信息,如 otherAccount 这个定义

const [owner, otherAccount] = await ethers.getSigners();
const Lock = await ethers.getContractFactory("Lock");
复制
这句代码创建了一个合约对象 Lock,注意括号内的 Lock 对应的是合约文件内定义的名称,即

contract Lock {}
复制
请不要错把合约文件名当成该参数,否则会报错

const lock = await Lock.deploy(unlockTime, { value: lockedAmount });

相关文章
|
机器人 API 数据安全/隐私保护
QQ机器人插件源码,自动回复聊天机器人,python源码分享
消息接收处理:通过Flask搭建HTTP服务接收go-cqhttp推送的QQ消息47 智能回复逻辑
|
自然语言处理 算法 机器人
智能电话销售机器人源码搭建部署系统电话机器人源码
智能电话销售机器人源码搭建部署系统电话机器人源码
365 4
|
人工智能 自然语言处理 机器人
智能语音机器人底层系统设计逻辑机器人源码系统逻辑
简介: — 1 —智能客服背景智能语音客服机器人是在传统的客服系统基础上,集成了语音识别、语义理解、知识图谱、深度学习等多项智能交互技术,能准确理解用户的意图或提问,再根据丰富的内容和海量知识图谱,给予用户满意的回答。目前已广泛应用于金融、保险、汽车、房产、电商、政府等多个领域。
|
机器学习/深度学习 人工智能 运维
电话机器人源码-智能ai系统-freeswitch-smartivr呼叫中心-crm
电话机器人源码-智能ai系统-freeswitch-smartivr呼叫中心-crm
799 0
|
人工智能 自然语言处理 机器人
9.9K star!大模型原生即时通信机器人平台,这个开源项目让AI对话更智能!
"😎高稳定、🧩支持插件、🦄多模态 - 大模型原生即时通信机器人平台"
593 0
|
数据采集 自动驾驶 机器人
数据喂得好,机器人才能学得快:大数据对智能机器人训练的真正影响
数据喂得好,机器人才能学得快:大数据对智能机器人训练的真正影响
1210 1
|
弹性计算 自然语言处理 Ubuntu
从0开始在阿里云上搭建基于通义千问的钉钉智能问答机器人
本文描述在阿里云上从0开始构建一个LLM智能问答钉钉机器人。LLM直接调用了阿里云百炼平台提供的调用服务。
1270 4
从0开始在阿里云上搭建基于通义千问的钉钉智能问答机器人
|
机器人
陌陌自动回复消息脚本,陌陌自动打招呼回复机器人插件,自动聊天智能版
这是一款为陌陌用户设计的自动回复软件,旨在解决用户无法及时回复消息的问题,提高成交率和有效粉丝数。软件通过自动化操作实现消息检测与回复功能
|
机器学习/深度学习 人工智能 自然语言处理
TsingtaoAI具身智能机器人开发套件及实训方案
该产品套件创新性地融合了先进大模型技术、深度相机与多轴协作机械臂技术,构建了一个功能强大、灵活易用的人机协作解决方案。其核心在于将智能决策、精准感知与高效执行完美结合,为高校实训领域的发展注入新动力。
1449 10
|
人工智能 自然语言处理 算法
具身智能高校实训解决方案 ----从AI大模型+机器人到通用具身智能
在具身智能的发展历程中,AI 大模型的出现成为了关键的推动力量。高校作为培养未来科技人才的摇篮,需要紧跟这一前沿趋势,开展具身智能实训课程。通过将 AI 大模型与具备 3D 视觉的机器人相结合,为学生搭建一个实践平台。
2325 64

热门文章

最新文章