秒合约交易系统自定义行情周期技术开发原理及源码分析

简介: 秒合约交易系统自定义行情周期技术开发原理及源码分析

在这个技术教程中,你会学习到怎样开发一个end-to-end的dApp。在dApp中,用户可以通过一个智能合约,获取和存储ETH的当前价格。这个教程demo代码存储在Github中系统开发
编译之后,就可以部署到区块链上。
在migrations文件夹下已经有一个1_initial_migration.js部署脚本,用来部署Migrations.sol合约。
Migrations.sol用来确保不会部署相同的合约。
现在我们来创建一个自己的部署脚本2_deploy_contracts.js
var Adoption=artifacts.require("Adoption");
module.exports=function(deployer){
deployer.deploy(Adoption);
};
在执行部署之前,需要确保有一个区块链运行,可以使用
Ganache来开启一个私链来进行开发测试,默认会在7545端口上运行一个开发链。
DAPP代码:
//SPDX-License-Identifier:UNLICENSED
pragma solidity^0.8.17;
import"hardhat/console.sol";
contract WavePortal{
uint256 totalWaves;//wave次数计数器
uint256 private seed;//随机种子
//新的wave事件,调用wave()方法时emit
event NewWave(address indexed from,uint256 timestamp,string message);
//Wave结构体【更全面的开发源码搭建可看我昵称】
struct Wave{
address waver;
string message;
uint256 timestamp;
}
Wave[]waves;//在合约里,存放所有wave数据的数组
//存放每个wave的人最后一次执行合约交易的时间,每个人15分钟只能wave一次
mapping(address=>uint256)public lastWavedAt;
//合约的构造函数,payable表示合约可以支付ETH给其他地址
constructor()payable{
console.log("Hello,this a smart contract!");
seed=(block.timestamp+block.difficulty)%100;//seed初始化
}
//核心方法【更全面的开发源码搭建可看我昵称】
function wave(string memory _message)public{
//require前面的表达式必须为真,否则抛后面异常信息;这里是如果该地址距上次交易不到15分钟则不允许再次发起交易
require(lastWavedAt[msg.sender]+15 minutes<block.timestamp,"Error:Wait 15 Minutes please");
lastWavedAt[msg.sender]=block.timestamp;//更新mapping
totalWaves+=1;
console.log("%s has waved!",msg.sender);
waves.push(Wave(msg.sender,_message,block.timestamp));//数组里新push一个Wave
seed=(block.timestamp+block.difficulty+seed)%100;//计算seed
console.log("Random#generated:d%",seed);
if(seed<=50){//本次seed<=50则向发起wave交易的地址发放奖励0.0001 ETH
console.log("%s won!",msg.sender);
uint256 prizeAmount=0.0001 ether;

相关文章
备案成功以后,也解析了为什么没办法通过域名收到网站呢
网站备案成功后仍无法通过域名访问,可能涉及解析设置错误、服务器配置问题或网络限制等原因。本文将详细分析常见原因并提供解决方案。
|
7月前
|
网络协议 算法 物联网
Go语言的WebSocket与实时通信
本文介绍了 WebSocket 技术及其在 Go 语言中的实现。WebSocket 是一种基于 TCP 的协议,支持客户端与服务器间的持久连接和实时通信,相比传统 HTTP 更高效。文章详细讲解了 WebSocket 的核心概念、Go 语言中的相关库(如 `gorilla/websocket`),以及其实现步骤和应用场景。通过代码示例展示了如何构建 WebSocket 服务器和客户端,并探讨了其在聊天应用、实时更新、游戏和物联网等领域的实际用途。此外,还推荐了相关工具和学习资源,帮助开发者更好地掌握这一技术。
282 3
|
存储 Java 开发工具
在Eclipse配置安装Android详细教程(新手)
在Eclipse配置安装Android详细教程(新手)
505 1
|
前端开发
纯 CSS 实现十个还不错的 Loading 效果,可直接用!
纯 CSS 实现十个还不错的 Loading 效果,可直接用!
|
前端开发
React组件通信:如何优雅地实现组件间的数据传递
React组件通信:如何优雅地实现组件间的数据传递
472 0
|
人工智能 安全 数据库
AI日报:这种病毒从生成式AI工具中窃取您的数据
AI日报:这种病毒从生成式AI工具中窃取您的数据
AI日报:这种病毒从生成式AI工具中窃取您的数据
|
Ubuntu 网络协议 Linux
【Linux】Android平板上远程连接Ubuntu服务器code-server进行代码开发
【Linux】Android平板上远程连接Ubuntu服务器code-server进行代码开发
473 0
|
存储 运维 Kubernetes
《云计算加速开源创新》——开放应用架构助力金融企业云原生治理
《云计算加速开源创新》——开放应用架构助力金融企业云原生治理
|
弹性计算 小程序 双11
阿里云服务器优惠活动99元一年(老用户敞开买)
阿里云服务器优惠活动99元一年(老用户敞开买)2023阿里云服务器双11优惠价格99元一年经济型e实例,并且续费不涨价,云服务器ECS-经济型e实例2核2G配置、3M带宽、40G ESSD entry系统盘优惠价99元一年,原价956.64元/年,可用于中小型网站建设、开发测试、小程序或app搭建,阿里云百科分享阿里云双十一服务器99元优惠
966 0