【区块链】Ubuntu以太坊ganache和truffle增加一个新合约,并完成部署

2024-03-29 22:38

本文主要是介绍【区块链】Ubuntu以太坊ganache和truffle增加一个新合约,并完成部署,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在contracts下新建一个文件mathControl.sol

pragma solidity >=0.4.22 <0.9.0;contract MathContract {function add(uint a,uint b) public pure returns(uint){return a+b;}function sub(uint a,uint b) public pure returns(uint) {return a-b;}function mul(uint a,uint b) public pure returns(uint) {return a*b;}
}

在migrations下新建一个部署合约的js文件:2_initial_migration.js

//const Migrations = artifacts.require("Migrations");
var Math=artifacts.require("./MathContract.sol");module.exports = function (deployer) {deployer.deploy(Math);
};

在test目录下新建一个执行智能合约的js文件:mathcontract.js

var MathContract=artifacts.require("MathContract")contract('MathContract',function(accounts){it("first",function(){return MathContract.deployed().then(function(instance){console.log(instance.address)instance.add(1,1).then(function(result) {console.log(result)assert.equal(result,2,"add prompt");})instance.sub(5,1).then(function(result) {console.log(result)assert.equal(result,4,"sub prompt");})instance.mul(5,2).then(function(result) {console.log(result)assert.equal(result,10,"mul prompt");})})})it("sencode",function(){return MathContract.deployed().then(function(instance){console.log(instance.address)instance.add(1,1).then(function(result) {console.log(result.toNumber())assert.equal(result,2,"add prompt");})instance.sub(5,1).then(function(result) {console.log(result.toNumber())assert.equal(result,4,"sub prompt");})instance.mul(5,2).then(function(result) {console.log(result.toNumber())assert.equal(result,10,"mul prompt");})})})})

合约编译:

truffle compile

合约部署:

truffle migrate

合约调用:

truffle test ./test/mathcontract.js

运行结果:
在这里插入图片描述

这篇关于【区块链】Ubuntu以太坊ganache和truffle增加一个新合约,并完成部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/859829

相关文章

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

SpringBoot配置Ollama实现本地部署DeepSeek

《SpringBoot配置Ollama实现本地部署DeepSeek》本文主要介绍了在本地环境中使用Ollama配置DeepSeek模型,并在IntelliJIDEA中创建一个Sprin... 目录前言详细步骤一、本地配置DeepSeek二、SpringBoot项目调用本地DeepSeek前言随着人工智能技

新特性抢先看! Ubuntu 25.04 Beta 发布:Linux 6.14 内核

《新特性抢先看!Ubuntu25.04Beta发布:Linux6.14内核》Canonical公司近日发布了Ubuntu25.04Beta版,这一版本被赋予了一个活泼的代号——“Plu... Canonical 昨日(3 月 27 日)放出了 Beta 版 Ubuntu 25.04 系统镜像,代号“Pluc

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

CentOS 7部署主域名服务器 DNS的方法

《CentOS7部署主域名服务器DNS的方法》文章详细介绍了在CentOS7上部署主域名服务器DNS的步骤,包括安装BIND服务、配置DNS服务、添加域名区域、创建区域文件、配置反向解析、检查配置... 目录1. 安装 BIND 服务和工具2.  配置 BIND 服务3 . 添加你的域名区域配置4.创建区域

SpringBoot项目使用MDC给日志增加唯一标识的实现步骤

《SpringBoot项目使用MDC给日志增加唯一标识的实现步骤》本文介绍了如何在SpringBoot项目中使用MDC(MappedDiagnosticContext)为日志增加唯一标识,以便于日... 目录【Java】SpringBoot项目使用MDC给日志增加唯一标识,方便日志追踪1.日志效果2.实现步

OpenManus本地部署实战亲测有效完全免费(最新推荐)

《OpenManus本地部署实战亲测有效完全免费(最新推荐)》文章介绍了如何在本地部署OpenManus大语言模型,包括环境搭建、LLM编程接口配置和测试步骤,本文给大家讲解的非常详细,感兴趣的朋友一... 目录1.概况2.环境搭建2.1安装miniconda或者anaconda2.2 LLM编程接口配置2

Ubuntu中Nginx虚拟主机设置的项目实践

《Ubuntu中Nginx虚拟主机设置的项目实践》通过配置虚拟主机,可以在同一台服务器上运行多个独立的网站,本文主要介绍了Ubuntu中Nginx虚拟主机设置的项目实践,具有一定的参考价值,感兴趣的可... 目录简介安装 Nginx创建虚拟主机1. 创建网站目录2. 创建默认索引文件3. 配置 Nginx4