当前位置: 首页 > wzjs >正文

个人网站样式即给做网站又给我们做推广的公司呢

个人网站样式,即给做网站又给我们做推广的公司呢,天津公司网站制作公司,磁力网站怎么做的源码/ pure: 纯纯牛马 function addPure(uint256 _number) external pure returns(uint256 new_number){ new_number _number 1; }不会消耗gas对吧。传的不是状态变量 你的理解基本对了,但我们来更严谨、深入地回答这个问题。 ✅ 你这段 pure 函数代码: …

/ pure: 纯纯牛马 function addPure(uint256 _number) external pure returns(uint256 new_number){ new_number = _number + 1; }不会消耗gas对吧。传的不是状态变量

你的理解基本对了,但我们来更严谨、深入地回答这个问题。


✅ 你这段 pure 函数代码:

function addPure(uint256 _number) external pure returns(uint256 new_number) {new_number = _number + 1;
}

这是一个非常典型的 pure 函数:

  • ✅ 不读取任何链上状态变量

  • ✅ 不写入链上状态变量

  • ✅ 只是计算输入值 _number + 1,然后返回


❓会不会消耗 gas?

场景是否消耗 gas原因解释
用 call 调用(比如 Remix 蓝色按钮、本地调用)❌ 不消耗函数在本地执行,不上链,不发交易
用 sendTransaction 发交易调用✅ 会消耗虽然函数是 pure,但只要发了交易、上了链,就会消耗 gas(因为 EVM 要执行它)

✅ 举例说明:

1. 使用 Remix 调用(或 web3/ethers call):
const result = await contract.addPure(123); // ✅ 不消耗 gas

这是 本地仿真运行,不发交易,完全不花钱。适合做链下计算。


2. 使用 sendTransaction 方式调用:
await contract.addPure(123, { from: user });

就算函数是 pure,因为你发了交易,EVM 还是要执行它、打包进区块,所以:

  • ✅ 会消耗 gas(比如 21,000 ~ 30,000)

  • ❌ 不会改链上状态

  • ⚠️ 不推荐这么用,没意义还浪费 gas


🧠 小结:

函数类型pure
是否能读状态❌ 不行
是否能改状态❌ 不行
是否消耗 gas?✅ 发交易才消耗;❌ 用 call 就不消耗

🚀 一句话总结:
只要你调用 pure/view 函数时用的是 call,不发交易,就不花 gas。


需要我帮你写一个对比:pure、view、write 三种函数并观察 Remix 上 gas 消耗差异的完整演示代码吗?

二、call和sendTransaction区别

你问得非常好!这是很多 Solidity 初学者在实际调用合约时都会混淆的核心概念。我们现在来彻底讲清楚什么是 sendTransaction 方式,以及为什么你写的那种方式就是。


✅ 先定义:什么是 sendTransaction?

在以太坊中:

sendTransaction 是指:向区块链发起一笔真实交易(transaction),从一个地址调用一个合约函数,消耗 gas,可能改变链上状态。


🔍 举个类比说明:

操作方式类似于做什么会不会上链会不会花 gas使用函数类型
call查看数据、模拟执行❌ 否❌ 否view / pure
sendTransaction正式签名 + 发交易 + 广播✅ 是✅ 是(一定会)non-view/任意

✅ 回到你的例子:

await contract.addPure(123, { from: user });

这行代码,在 web3.jsethers.js 中,如果你用 await 调用了一个合约的函数,并且它不是 .call().staticCall(),那么默认行为就是发起一笔真实交易,也就是 sendTransaction


🧨 它其实等价于这样:

await contract.methods.addPure(123).send({ from: user });
  • 这就会触发一笔链上交易

  • 即使 addPure()pure 函数

  • 你也会花 gas(比如 21,000)

  • 但结果你无法直接拿到返回值,因为链上交易不返回值


⚠️ 非常重要的对比:

用法是否发交易(sendTransaction)能不能返回结果是否消耗 gas
contract.methods.foo().call()❌ 否(只读模拟)✅ 可以获取结果❌ 不花钱
contract.methods.foo().send()✅ 是(发交易)❌ 无法直接获取✅ 要花 gas

✅ 正确方式:调用 pureview 函数推荐用 .call()

const result = await contract.methods.addPure(123).call(); // ✅ 推荐方式
console.log(result); // 124
  • .call() 是本地调用,不会发交易

  • 不会花钱

  • 可以立刻获取返回值


✅ 总结一句话:

只要你用的是 .send() 或不带 .call() 的 await 函数调用,并且指定了 { from: ... },那就是发了交易(sendTransaction),会 上链、花 gas、不直接返回结果


如果你想,我可以再写一段完整的 ethers.js 示例,对比 .call.sendTransaction 两种方式的执行行为。需要吗?


文章转载自:

http://A19noLkG.dxrbp.cn
http://kx98BnOU.dxrbp.cn
http://eQhjqGJ6.dxrbp.cn
http://eklmcMTW.dxrbp.cn
http://90gNmOyd.dxrbp.cn
http://0ITKihqS.dxrbp.cn
http://Cz327NFP.dxrbp.cn
http://DDfMcJlc.dxrbp.cn
http://bkkzcskn.dxrbp.cn
http://dr7bQY03.dxrbp.cn
http://JH7tE2xU.dxrbp.cn
http://Q96j0hjC.dxrbp.cn
http://EZRaTPMl.dxrbp.cn
http://hzc6rZIl.dxrbp.cn
http://KtUW3cjB.dxrbp.cn
http://jjeKavqo.dxrbp.cn
http://RYOgFvIE.dxrbp.cn
http://IpwqRLJZ.dxrbp.cn
http://Ai6K6QNy.dxrbp.cn
http://nfPkDozG.dxrbp.cn
http://pNWL92a2.dxrbp.cn
http://uukE5K3W.dxrbp.cn
http://4zTY7tVu.dxrbp.cn
http://Buo5UaJf.dxrbp.cn
http://0t8b0ZvA.dxrbp.cn
http://A2FDJMLd.dxrbp.cn
http://SfOo8XNl.dxrbp.cn
http://CrJCNBen.dxrbp.cn
http://9MOfkSxm.dxrbp.cn
http://Uk5jDwiQ.dxrbp.cn
http://www.dtcms.com/wzjs/771528.html

相关文章:

  • 品牌外贸网站建设深圳知名seo公司
  • 国外有在线做设计方案的网站吗宣传广告设计模板
  • 建设银行安徽分行招聘网站成都网站建设推广详
  • 专业的营销网站建设公司排名wordpress 查询文章
  • 鲜花商城网站设计长沙软件开发公司
  • 个人做discuz网站备案wordpress 积分系统
  • 网站开发遇到的最大困难口红网站建设目标
  • 域名备案网站服务内容网站平台规划方案
  • 建网站打开需要验证长沙有实力seo优化
  • 网页设计如何建立网站珠海公众号开发
  • 做赚钱问卷调查的网站网站首页的概念
  • html5网站建设方案深圳网站建设招聘
  • 石家庄网站建设团队企业邮箱申请哪个
  • 无锡 网站制作 大公司wordpress哪里设置上传大小
  • 茂名网站制作计划中交路桥建设有限公司待遇怎么样
  • 电商网站开发用什么语言表达宝安品牌设计公司
  • 关键词网站排名软件建设微网站
  • 网站搭建及应用教程广州网站建设设计公司
  • 推广业务网站建设建设网站iss
  • 佛山做app网站网站开发公司云鲸互创实惠
  • 网站开发与没计是做什么文山州住房和城乡建设局网站
  • 石家庄网站建设与推广网站科普信息化建设的意义
  • 北京卓天下网站建设公司做网站去哪里可以找高清的图片
  • 品牌网站设计方案红盾工商信息查询网
  • 网站栏目设置完整度建设织梦网站分页问题
  • 有一个网站专门做促销小游戏网站建设公司制作网站
  • 共和县公司网站建设宁津网站开发
  • 制作简单门户网站步骤温州企业网站建设公司
  • 出口外贸网站建设免费网站空间和域名
  • 高大上公司网站如何免费制作微信小程序