Web3 处理智能合约部署到本地区块链,并在本地进行测试

这篇具有很好参考价值的文章主要介绍了Web3 处理智能合约部署到本地区块链,并在本地进行测试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

上文 Web3 在Truffle项目中编写出自己的第一个solidity智能合约我们演示了 在Truffle环境下写一个智能合约并编译的功能
编译出的文件夹中的这个JSON就非常重要了 我们就可以通过 它这个ABI链接到需要的智能合约程序上去
Web3 处理智能合约部署到本地区块链,并在本地进行测试,web3,智能合约,区块链
但这也仅仅是编译完了 我们的智能合约还没有部署到我们的区块链上

然后 我们在根目录下的 migrations 目录下创建一个 1_contract.js 注意 这里的文件 一定要以数字开头
Web3 处理智能合约部署到本地区块链,并在本地进行测试,web3,智能合约,区块链
就我们在这个目录创建文件时 就 1 什么什么 2 什么什么 3什么什么 以此类推 不然 我们在部署时 就会报错
因为 如果你不遵循它的规范 它找不到 它只认识以数字开头的

我们编写1_contract.js代码如下

const Contacts = artifacts.require("StudentStorage.sol")
module.exports = function(deployer) {
    deployer.deploy(Contacts)
}

这里 我们artifacts.require中的路径 你只需要写合约文件的名字 因为 他会自动帮你在contracts目录下去找
然后 我们这里 如果你有多个只能合约
那就

const 合约1名称 = artifacts.require("文件路径")
const 合约2名称 = artifacts.require("文件路径")
const 合约3名称 = artifacts.require("文件路径")
module.exports = function(deployer) {
    deployer.deploy(合约1名称)
    deployer.deploy(合约2名称)
    deployer.deploy(合约3名称)
}

这样就可以了

然后 我们在终端执行

truffle migrate

这个命令的话 是先编译 再执行 所以 其实 他也包含了之前我们用的truffle compile 的功能

执行之前 我们先通过 MetaMask 查看一下ganache环境中第一个用户的ETH
Web3 处理智能合约部署到本地区块链,并在本地进行测试,web3,智能合约,区块链
然后 我们执行命令

通过控制台 我们可以看到 这个确实是先编译 再部署
Web3 处理智能合约部署到本地区块链,并在本地进行测试,web3,智能合约,区块链
再回来看 MetaMask 我们第一个用户的数据确实是变化了
Web3 处理智能合约部署到本地区块链,并在本地进行测试,web3,智能合约,区块链
那么 我们web3调用肯定现在是做不了 但是 我们如果作为一个后端开发人员 我们开发一个程序 自己也肯定要测试啊

我们先在终端执行

truffle console

Web3 处理智能合约部署到本地区块链,并在本地进行测试,web3,智能合约,区块链
进入truffle控制台

然后 我们输入

const obj = await StudentStorage.deployed()

注意 StudentStorage是智能合约的名字 如果你的命名和我不一样 就要根据自己合约的名字去改
Web3 处理智能合约部署到本地区块链,并在本地进行测试,web3,智能合约,区块链
这个命令执行之后 我们就能拿到智能合约的一个对象了

执行完之后 我们在终端输入

obj

进行对象访问
Web3 处理智能合约部署到本地区块链,并在本地进行测试,web3,智能合约,区块链
可以看到 是一个非常大的对象

将来Web3 连接智能合约 拿到的一个对象 就是这样的
我们可以在终端通过 合约对象.address
例如我这里

obj.address

看到他在链上的地址
Web3 处理智能合约部署到本地区块链,并在本地进行测试,web3,智能合约,区块链
那么 我们还是试试 调用我们的方法吧

终端输入

obj.setData(33,"小猫猫")

这里就输出了对应内容
Web3 处理智能合约部署到本地区块链,并在本地进行测试,web3,智能合约,区块链
这其实就是输出了 你这个数据上链 消耗的燃料等信息
存都存了
那么 我们获取一下吧

obj.getData()

我们的数据就回来了
Web3 处理智能合约部署到本地区块链,并在本地进行测试,web3,智能合约,区块链
通过年龄的返回 我们可以看到 uint 的处理相对特殊一点 但这个不用担心 之后我们用web3 还是能将他处理成正常的数值类型

那么 我们合约中有一个 name 和 age 我们能不能直接通过合约对象去拿呢?
显然拿不到
Web3 处理智能合约部署到本地区块链,并在本地进行测试,web3,智能合约,区块链
如果你想让他也能直接访问 那就还是public设置一下
Web3 处理智能合约部署到本地区块链,并在本地进行测试,web3,智能合约,区块链文章来源地址https://www.toymoban.com/news/detail-540782.html

到了这里,关于Web3 处理智能合约部署到本地区块链,并在本地进行测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 赛联区块链培训:Web3的核心要素——区块链、加密资产、智能合约和预言机

    在2008年,中本聪发布了比特币白皮书,彻底颠覆了我们对数字化交易的概念,并首次提出了一种无需可信中间方的安全在线交易模式。中本聪写道:“需要基于加密证明,而非信任,来建立电子支付系统。” 智能合约被发明后,去中心化的互联网模式进入公众视野。如果说

    2024年02月07日
    浏览(59)
  • 【区块链】走进web3的世界-合约交互中的异常/边界处理

    在以太坊智能合约中,异常处理是一个非常重要的问题,因为任何一个函数调用都有可能导致异常。常见的异常包括函数调用失败、无效参数、内部错误等。         在 Solidity 中,可以使用 require、assert 和 revert 等来处理异常。这些可以用于检查输入参

    2024年02月09日
    浏览(42)
  • 部署智能合约到 polygon 上(Web3项目三实战之三)

    在上一篇 为 Web3 项目撰写智能合约(Web3项目三实战之二) 中,我们已经为 Web3 项目编写好了 智能合约 ,而本文将要部署 智能合约 到 polygon 上。 您或许会问, polygon 到底是什么?其实它是 测试链 (也可以说是 测试网 ),由于 主链 (或 主网 )部署 智能合约 是需要 ga

    2024年01月23日
    浏览(49)
  • Web3.js在以太坊上部署和调用智能合约

    介绍如何使用Web3.js在以太坊上部署和调用智能合约;Web3.js是以太坊JavaScript API的实现,它可以与以太坊区块链进行交互 智能合约编写 使用Solidity编写一个简单的智能合约,然后使用Web3.js将其部署到以太坊区块链,通过JavaScript调用该智能合约 这个智能合约非常简单。它有两

    2024年02月16日
    浏览(46)
  • 以太坊Dapp通过web3js部署调用智能合约

    参考视频:https://www.bilibili.com/video/BV14z4y1Z7Jd?p=1 https://remix.ethereum.org/ 创建一个新的文件夹 mkdir MyDapp2 启动 ganache-cli 下载web3 npm install web3 ,注:ganache的启动和deploy.js要在同一个目录。 先进行测试 node deploy.js 部署合约 web3的版本:1.7.1 复制 WEB3DEPLOY 的内容到deploy.js == ganache需要

    2023年04月23日
    浏览(46)
  • 使用Ganache,web3js和remix在个人区块链上部署并调用合约

    Ganache是一个运行在本地的个人区块链,适用于以太坊的开发者。 首先我们需要下载Ganache web3js的中文文档 remix英文版的网址 有以上的准备之后我们就可以开始了 首先启动Ganache 这就是Ganache的主页面,下面有10个供我们使用的账号,上面有他们的地址以及余额,我们暂时需要

    2024年01月19日
    浏览(77)
  • java使用web3j,部署智能合约在测试链上,并调用(万字详细教程)

    最近在学区块链相关,想做点自己感兴趣的。网上关于这块部分的坑也比较多,最近也是问了很多行业从事者才慢慢填坑,因此记录下来分享一下。 钱包 :metemask、 solidity编译器 :remix 、 java ide :idea。 智能合约编写的我选择在remix上方便,而且部署的时候不需要自定义gasP

    2024年01月16日
    浏览(58)
  • 区块链合约交互 web3

    遵循ERC20规则, 钱包里可以有很多种类型的token:USDT,DFI,DFA 1.合约交互之前需要先判断是否仍允许purchasePool合约从账户(钱包里的账户) 中提取的ERC20dfaContract 这本合约里(DFA)的金额 await this.contract.ERC20dfaContract.methods.allowance(this.address,this.addressMap.AcceleratePool).call(); ERC20df

    2024年02月07日
    浏览(63)
  • 区块链-java对接web3合约

    本文章讲述了如何在合约已经部署并且能拿到合约abi文件的情况下,用java代码去进行调用合约 已经部署好的合约地址 编译合约后生成的abi文件  通过hardhat-build去编译 通过remix网站去编译获取(教程可自行百度查询) 引入web3的jar包 版本用最新的就行了 引入web3j-maven-plugin 将编

    2024年01月16日
    浏览(70)
  • web3: 智能合约

    2024年01月09日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包