IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 区块链 -> web3入门-web3.js通过Ganache连接truffle智能合约 -> 正文阅读

[区块链]web3入门-web3.js通过Ganache连接truffle智能合约

//环境
Truffle v5.5.21 (core: 5.5.21)
Ganache v7.2.0
Solidity v0.5.16 (solc-js)
Node v14.17.3
Web3.js v1.7.4

一、用truffle框架在本地部署智能合约

1.建个文件夹?truffle_demo

mkdir truffle_demo

2.进入文件夹内,执行init命令,会搭建基本框架出来

truffle init

3.在contracts下新建一个文件,比如DataDemo.sol

// SPDX-License-Identifier: MIT
pragma solidity >=0.4.22 <0.9.0;
contract DataDemo{
    string public returnTest;
    //set方法
    function setData(string memory str ) public payable {
        returnTest = str;
    }
    //get方法
    function getData() public view returns (string memory) {
        return returnTest;
    }
}

4.修改migrations/1_initial_migration.js

const Migrations = artifacts.require("Migrations");
var DataDemo = artifacts.require("./DataDemo.sol");

module.exports = function(deployer) {
  deployer.deploy(Migrations);
  deployer.deploy(DataDemo);
};

5.修改truffle-config.js,把networks里的development放开

  networks: {
    development: {
     host: "127.0.0.1",     // Localhost (default: none)
     port: 7545,            // Standard Ethereum port (default: none)
     network_id: "*",       // Any network (default: none)
    },
  },

6.打开Ganache,选择QUICKSTART

7.truffle_demo文件夹下执行两个命令,执行migrate的时候会输出合约地址

truffle compile

truffle migrate

8.此时打开Ganache,点击TRANSACTIONS,可以看到合约已经部署成功

二、通过web3.js连接合约

1.建个文件夹web3_test,然后进入文件夹,执行npm初始化

mkdir web3_test

npm init

2.下载web3

npm install web3 --save

//如果网络问题下载不出来,先切换成淘宝地址。
//npm config set registry https://registry.npm.taobao.org
//再执行npm install web3 --save

3.在web3_test下建一个js文件(连接合约),一个json文件(存合约的abi json字符串)

?4.打开合约项目,在truffle_demo/build/contracts下找到DataDemo.json,打开该文件,把里面的abi复制到建好的abi.json中(只需要复制冒号后面的字符串)

?5.在js文件中输入

var Web3 = require("web3");
var web3 = new Web3();
web3.setProvider(new Web3.providers.HttpProvider("http://localhost:7545"));


var fs = require("fs");
var abi =JSON.parse(fs.readFileSync("./abi.json", "utf-8"));
//address取Ganache中的Created Contract Address
var address = '0x52c7917228D4b19b086d6E15efc5873e24096Dde';
var data = new web3.eth.Contract(abi,address);


data.methods.getData().call(null,function(error, result){
    console.log("1.   the data:"+result);
});
//fromAddress取Ganache中的From Address
data.methods.setData("hello").send({from: '0x00C47333aA9fa968D37c2fc99D4cc8ce59Cd94C4'}).on('transactionHash', function(hash){
    console.log("2.   hash:", hash);
    data.methods.getData().call(null,function(error, result){
        console.log("3.   the data:"+result);
    });
});

其中address和fromAddress分别在下图的位置

6.执行 node.exe index.js 查看结果

  区块链 最新文章
盘点具备盈利潜力的几大加密板块,以及潜在
阅读笔记|让区块空间成为商品,打造Web3云
区块链1.0-比特币的数据结构
Team Finance被黑分析|黑客自建Token“瞒天
区块链≠绿色?波卡或成 Web3“生态环保”标
期货从入门到高深之手动交易系列D1课
以太坊基础---区块验证
进入以太坊合并的五个数字
经典同态加密算法Paillier解读 - 原理、实现
IPFS/Filecoin学习知识科普(四)
上一篇文章      下一篇文章      查看所有文章
加:2022-07-20 18:55:32  更:2022-07-20 18:56:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 21:48:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码