# truffle合约交互测试1 **Published by:** [想住大房子的java程序员](https://paragraph.com/@java-3/) **Published on:** 2022-10-27 **URL:** https://paragraph.com/@java-3/truffle-1 ## Content 看了许多教程,都是几年前的,走了许多弯路。实在是DDT。1.环境准备操作系统为ubuntu server 22.04 LTS。 安装truffle。(默认为root用户,如果不是,请自行添加魔法单词sudo)npm install -g truffle 如果出现安装不了,极大概率是网络原因。解决办法有很多。 我这边是安装nrm,然后手动切换至taobao或者鹅厂镜像。 安装成功后,使用 truffle version 命令检查是否安装成功。Truffle v5.6.2 (core: 5.6.2) Ganache v7.4.4 Solidity - 0.8.17 (solc-js) Node v16.18.0 Web3.js v1.7.4 2.安装测试环境以前的教程知识告诉你使用的是testrpc。现在已经改成了ganache-cli。 所以,可以使用命令进行安装npm install -g ganache-cli 使用命令ganache-cli 检查是否安装成功。如果安装成功,会有账户和私钥。3.新建一个helloworld工程。新建目录hellozz,并cd进入。 使用truffle命令进行初始化truffle init 成功后会有提示 Init successful, sweet! 目录下会有相关的文件。工程文件目录先不用去管它是什么意思。 进入contracts目录。新建一个合约文件HelloZZ.sol 然后写一点简单的代码。contract HelloZZ { mapping(address => uint) balances; address owner; constructor(){ owner = address(tx.origin); balances[tx.origin] = 13333; } function queryOwner() public view returns (address){ return owner; } function getOwnerBalance() public view returns (uint) { return balances[owner]; } // modifier modifier onlyOwner(){ require(address(msg.sender) == owner, "No authority"); _; } } 应该看得懂吧。。。?4.配置文件修改打开truffle-config.js文件进行编辑。networks下的development注释代码去掉,使他生效。 development: { host: "127.0.0.1", port: 8545, network_id: "*", }, 进入migrations目录下,创建1_deploy_contracts.js,然后添加以下内容const HelloZZ = artifacts.require("HelloZZ"); module.exports = function(deployer) { deployer.deploy(HelloZZ); }; 5.编译和部署工程回到项目目录下,使用命令进行编译truffle compile 提示成功后。这里先使用命令打开ganache-cli本地测试环境。后面再讲其他的环境。 启动成功后准备开始部署项目部署成功后,会有下面的提示。OK,接下来就可以使用truffle命令进行合约交互了~ ## Publication Information - [想住大房子的java程序员](https://paragraph.com/@java-3/): Publication homepage - [All Posts](https://paragraph.com/@java-3/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@java-3): Subscribe to updates