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

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

可以看到其实是一个很简单的逻辑,里面定义了 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 });

相关文章
|
8天前
|
自然语言处理 机器人 语音技术
电销机器人源码搭建(各个版本机器人部署)
电销机器人源码搭建(各个版本机器人部署)
24 3
|
20天前
|
机器学习/深度学习 监控 机器人
量化交易机器人系统开发逻辑策略及源码示例
量化交易机器人是一种通过编程实现自动化交易决策的金融工具。其开发流程包括需求分析、系统设计、开发实现、测试优化、部署上线、风险管理及数据分析。示例中展示了使用Python实现的简单双均线策略,计算交易信号并输出累计收益率。
|
19天前
|
机器学习/深度学习 监控 算法
现货量化交易机器人系统开发策略逻辑及源码示例
现货量化交易机器人系统是一种基于计算机算法和数据分析的自动化交易工具。该系统通过制定交易策略、获取和处理数据、生成交易信号、执行交易操作和控制风险等环节,实现高效、精准的交易决策。系统架构可采用分布式或集中式,以满足不同需求。文中还提供了一个简单的双均线策略Python代码示例。
|
15天前
|
机器人 人机交互 语音技术
智能电销机器人源码部署安装好后怎么运行
销售打电销,其中90%电销都是无效的,都是不接,不要等被浪费了这些的精力,都属于忙于筛选意向客户,大量的人工时间都耗费在此了。那么,有这种新型的科技产品,能为你替代这些基本的工作,能为你提升10倍的电销效果。人们都在关心智能语音客服机器人如何高效率工作的问题,今天就为大家简单的介绍下:1、智能筛选系统:电销机器人目前已经达到一个真人式的专家级的销售沟通水平,可以跟客户沟通,筛选意向,记录语音和文字通话记录,快速帮助电销企业筛选意向客户,大大的节约了筛选时间成本和人工成本。2、高速运转:在工作效率上,人工电销员,肯定跟不上智能语音机器人,机器人自动拨出电话,跟客户交谈。电话机
92 0
|
7月前
|
传感器 人工智能 监控
智能耕耘机器人
智能耕耘机器人
141 3
|
8天前
|
自然语言处理 算法 机器人
智能电话销售机器人源码搭建部署系统电话机器人源码
智能电话销售机器人源码搭建部署系统电话机器人源码
19 4
|
18天前
|
机器学习/深度学习 传感器 算法
智能机器人在工业自动化中的应用与前景###
本文探讨了智能机器人在工业自动化领域的最新应用,包括其在制造业中的集成、操作灵活性和成本效益等方面的优势。通过分析当前技术趋势和案例研究,预测了智能机器人未来的发展方向及其对工业生产模式的潜在影响。 ###
73 9
|
10天前
|
机器学习/深度学习 人工智能 运维
电话机器人源码-智能ai系统-freeswitch-smartivr呼叫中心-crm
电话机器人源码-智能ai系统-freeswitch-smartivr呼叫中心-crm
29 0
|
2月前
|
人工智能 搜索推荐 机器人
挑战未来职场:亲手打造你的AI面试官——基于Agents的模拟面试机器人究竟有多智能?
【10月更文挑战第7天】基于Agent技术,本项目构建了一个AI模拟面试机器人,旨在帮助求职者提升面试表现。通过Python、LangChain和Hugging Face的transformers库,实现了自动提问、即时反馈等功能,提供灵活、个性化的模拟面试体验。相比传统方法,AI模拟面试机器人不受时间和地点限制,能够实时提供反馈,帮助求职者更好地准备面试。
63 2
|
4月前
|
人工智能 算法 机器人
机器人版的斯坦福小镇来了,专为具身智能研究打造
【8月更文挑战第12天】《GRUtopia:城市级具身智能仿真平台》新论文发布,介绍了一款由上海AI实验室主导的大规模3D城市模拟环境——GRUtopia。此平台包含十万级互动场景与大型语言模型驱动的NPC系统,旨在解决具身智能研究中的数据稀缺问题并提供全面的评估工具,为机器人技术的进步搭建重要桥梁。https://arxiv.org/pdf/2407.10943
221 60