前言
操作系统:MacBook Pro (16-inch, 2019)
官网 : https://www.trufflesuite.com/
文档:https://www.trufflesuite.com/docs/truffle/overview
简介
Truffle是什么?
Truffle是针对基于以太坊的Solidity语言的一套开发框架。本身基于Javascript。
Truffle有什么用?
Truffle到底为我们带来了什么呢,
- 首先对客户端做了深度集成。开发,测试,部署一行命令都可以搞定。不用再记那么多环境地址,繁重的配置更改,及记住诸多的命令。
- 它提供了一套类似
maven
或gradle
这样的项目构建机制,能自动生成相关目录,默认是基于Web的。当前这个打包机制是自定义的,比较简陋,不与当前流行打包方案兼容。但自已称会弃用,与主流兼容,好在它也支持自定义打包流程。 - 提供了合约抽象接口,可以直接通过
var meta = MetaCoin.deployed();
拿到合约对象后,在Javascript
中直接操作对应的合约函数。原理是使用了基于web3.js
封装的Ether Pudding
工具包。简化开发流程。 - 提供了控制台,使用框架构建后,可以直接在命令行调用输出结果,可极大方便开发调试。
- 提供了监控合约,配置变化的自动发布,部署流程。不用每个修改后都重走整个流程。
安装
npm install -g truffle
- 确认是否安装成功
truffle version
jingbao@MacBook-Pro demo1 % truffle version
Truffle v5.4.9 (core: 5.4.9)
Solidity v0.5.16 (solc-js)
Node v16.6.2
Web3.js v1.5.2
初始化truffle
- 1.随意找个文件夹即可
jingbao@MacBook-Pro example % mkdir demo1
jingbao@MacBook-Pro example % cd demo1
- 2.通过
truffle init
初始化项目
jingbao@MacBook-Pro demo1 % truffle init
Starting init...
================
> Copying project files to /Users/jingbao/IdeaProjects/smart-contract/example/demo1
Init successful, sweet!
Try our scaffold commands to get started:
$ truffle create contract YourContractName # scaffold a contract
$ truffle create test YourTestName # scaffold a test
http://trufflesuite.com/docs
jingbao@MacBook-Pro demo1 % ls -la
total 16
drwxr-xr-x 6 jingbao staff 192 9 25 01:31 .
drwxr-xr-x 3 jingbao staff 96 9 25 01:29 ..
drwxr-xr-x 3 jingbao staff 96 9 25 01:31 contracts
drwxr-xr-x 3 jingbao staff 96 9 25 01:31 migrations
drwxr-xr-x 3 jingbao staff 96 9 25 01:31 test
-rw-r--r-- 1 jingbao staff 4903 9 25 01:31 truffle-config.js
启动服务控制台
truffle develop
jingbao@MacBook-Pro demo1 % truffle develop
Truffle Develop started at http://127.0.0.1:9545/
Accounts:
(0) 0x95886d9241c643e6963c4f450779b9b0a974b8c7
(1) 0xfb5e22dbc4e1781288402742591ee4db9e421f27
(2) 0x1bdde20ed9d67c54db1fa2ec076f285c642c72ac
(3) 0xcec949420c4a64293a59f469c30e03bfedc0c164
(4) 0x3dd3362259647b7464884c63d38300fd0ed9cef4
(5) 0x1da9def45cb5b031d3e5a7a41109b8114776cdbf
(6) 0x89885efa3f8b2447bd53014b99005201b6ac5cd8
(7) 0xecdaaa2e827950d2c53e403a0e622cbdc6cc1bbe
(8) 0x74f83442988782669d0e5b51cf3a2e98d41f989e
(9) 0x3c49b0691ef704c66fc046febcaf6ab95973811e
Private Keys:
(0) ******3403eb5fb256bdf9cb5cc4317f178c807a55ae877c4b5141d8a2abb09a
(1) ******98256a5970a6e08e7c2d270434ffe364671a662d793d12e7d0be02739a
(2) ******204fb9b79bb3973289191c357393d832653fd12034143d440f352d8669
(3) ******c5215bb2cdfd006e70d400c2ba66d5399e7b830d00552348ffb3ba51d5
(4) ******776ba6cf0ca6ba3b37edf9b8f94eb1d8bc6e042b61570ab8fdc17c33b4
(5) ******8aec9592417398e5bf3769216701eba6dab249203d3aadfd3a67f8c4e1
(6) ******11b4151ccdfffd780053069c9fd2020ea03463f5174fd7654db5c23184
(7) ******30fda519ba5a73fa1ea6801afbe07ffd28640bd8007245d398fad1bdec
(8) ******469a66140fcebf3e92231cd6d9facb949d67347b57c511eea82820d305
(9) ******459a045073d1665fe196a9276cde0fe4b44257ba38849ab863f4375cd0
Mnemonic: frozen adjust history rubber crowd tiny door menu element yard green tissue
⚠️ Important ⚠️ : This mnemonic was created for you by Truffle. It is not secure.
Ensure you do not use it on production blockchains, or else you risk losing funds.
truffle(develop)>
默认初始化10个账号,每个账号100个以太币