位置: IT常识 - 正文

关于web3.js中与交易发送、交易签名、智能合约函数调用相关api的理解(关于javascript)

编辑:rootadmin
关于web3.js中与交易发送、交易签名、智能合约函数调用相关api的理解

推荐整理分享关于web3.js中与交易发送、交易签名、智能合约函数调用相关api的理解(关于javascript),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:web3.js文档,web3js approve,关于javascript,关于javascript,web3.0举例,web3js approve,web3js,web3js approve,内容如对您有帮助,希望把文章链接给更多的朋友!

web3.js中有一些与交易发送、签名、合约函数调用相关的api,初学者(如me)常常搞不清什么情况下应该调用哪个,以及它们之间的区别。现将个人浅见记录如下,备忘。

sendTransaction

web3.eth.sendTransaction(transactionObject [, callback])

transactionObject对象设置交易的各种参数(不包括签名r,s,v),签名过程由api根据from地址自动完成。

sendSignedTransactionweb3.eth.sendSignedTransaction(signedTransactionData [, callback])

发送已签名的交易,交易签名可以通过 web3.eth.accounts.signTransaction 生成。

 signTransactionweb3.eth.signTransaction(transactionObject, address [, callback])

 签名交易,由address指定对应的账户进行签名。

signweb3.eth.sign(dataToSign, address [, callback])

使用指定账户对数据进行签名

callweb3.eth.call(callObject [, defaultBlock] [, callback])关于web3.js中与交易发送、交易签名、智能合约函数调用相关api的理解(关于javascript)

执行一个消息调用交易,消息调用交易直接在节点旳 VM 中而不需要通过区块链挖矿来执行。

callObject交易对象的data属性包含合约函数调用数据的 ABI 字节字符串 ,对合约创建交易来说,其值为合约初始化代码。

new contractnew web3.eth.Contract(jsonInterface[, address][, options])

生成合约实例,若不设置address参数,则部署新的合约实例到网络中。

methods.myMethod.callmyContract.methods.myMethod([param1[, param2[, ...]]]).call(options[, callback])

将在不发送交易的情况下调用该“常量”方法并在 EVM 中执行其智能合约方法。注意此种调用方式无法改变智能合约状态。

methods.myMethod.sendmyContract.methods.myMethod([param1[, param2[, ...]]]).send(options[, callback])

向合约发送交易来执行其方法。注意这会改变合约状态。

methods.myMethod.encodeABImyContract.methods.myMethod([param1[, param2[, ...]]]).encodeABI()

为指定的合约方法进行 ABI 编码,可用于发送交易、调用方法或向另一个合约方法传递参数。

signTransactionweb3.eth.accounts.signTransaction(tx, privateKey [, callback]);

使用给定的私钥签名以太坊交易。

signweb3.eth.accounts.sign(data, privateKey);

签名任意数据。注意,此函数与web3.eth.sign(dataToSign, address [, callback])的区别,后者只需要通过地址来指定由谁来签名,api内部必定可以获取其私钥。

上述函数具体用法请参照对应版本web3.js的文档说明,如:web3.eth.accounts — web3.js 中文文档 — 登链社区https://learnblockchain.cn/docs/web3.js/web3-eth-accounts.html#sign

 注:理论上,所有发起交易的函数都必须有私钥进行签名操作。但上述某些函数只需指定公钥地址就能完成该功能,原因是web3.js所连接的providers为指定的公钥地址保存了对应的私钥,在后台可以自动完成签名动作,当然这种情形多见于使用ganache等测试环境中。正常情况下(如在Dapp中)需要web3.js连接用户的私钥钱包,签名动作由用户手动确认完成。

补充:web3.js会在底层将函数调用转为json-rpc的请求,其中不用创建交易的使用eth_call,创建交易的使用eth_sendTransaction,若需要在本地签名然后发送交易则使用eth_sendRawTransaction

本文链接地址:https://www.jiuchutong.com/zhishi/283815.html 转载请保留说明!

上一篇:McWCECfg.exe是什么进程 McWCECfg进程查询(mc office是什么意思)

下一篇:Linux 学习笔记——五、文件与目录(linux入门学习)

  • 什么样的域名具有投资价值?(什么样的域名一般比较有价值)

    什么样的域名具有投资价值?(什么样的域名一般比较有价值)

  • 微信收款码收的钱提现要手续费吗(微信收款码收的钱去哪了)

    微信收款码收的钱提现要手续费吗(微信收款码收的钱去哪了)

  • iphonex的小圆点怎样设置(iphone x小圆点在哪里)

    iphonex的小圆点怎样设置(iphone x小圆点在哪里)

  • excel打数字为什么变成E+(excel打数字为什么变成符号)

    excel打数字为什么变成E+(excel打数字为什么变成符号)

  • iphone11双卡能否设两个铃声(iphone11 能双卡)

    iphone11双卡能否设两个铃声(iphone11 能双卡)

  • 5g手机6g运行内存够用吗(运行6g的手机)

    5g手机6g运行内存够用吗(运行6g的手机)

  • 手机录像能录一天吗(手机录像录一天多大内存)

    手机录像能录一天吗(手机录像录一天多大内存)

  • 苹果8有面部解锁吗(苹果8面部解锁软件下载)

    苹果8有面部解锁吗(苹果8面部解锁软件下载)

  • 小米10青春版支持4g吗(小米10青春版支持5g吗)

    小米10青春版支持4g吗(小米10青春版支持5g吗)

  • 荣耀20pro是5g手机吗(荣耀20pro是不是5g)

    荣耀20pro是5g手机吗(荣耀20pro是不是5g)

  • 网线不亮灯怎么回事(网线的灯不亮了)

    网线不亮灯怎么回事(网线的灯不亮了)

  • oppo无障碍是什么意思(oppo无障碍模式是什么意思)

    oppo无障碍是什么意思(oppo无障碍模式是什么意思)

  • oppo三个键怎么设置(oppo三个键怎么设置导航键)

    oppo三个键怎么设置(oppo三个键怎么设置导航键)

  • 哈啰出行助力车怎么充电的(哈啰出行助力车是什么车)

    哈啰出行助力车怎么充电的(哈啰出行助力车是什么车)

  • 为什么qq会自动发广告(为什么qq会自动保存一些图片)

    为什么qq会自动发广告(为什么qq会自动保存一些图片)

  • 拼多多怎样搜索同城东西(拼多多怎样搜索商家店铺)

    拼多多怎样搜索同城东西(拼多多怎样搜索商家店铺)

  • 拼多多换货运费哪方出(拼多多换货运费谁承担)

    拼多多换货运费哪方出(拼多多换货运费谁承担)

  • 黑鲨小爱同学怎么打开(黑鲨helo的小爱同学)

    黑鲨小爱同学怎么打开(黑鲨helo的小爱同学)

  • 抖音抢镜怎么调画面大小(抖音里的抢镜怎么弄的)

    抖音抢镜怎么调画面大小(抖音里的抢镜怎么弄的)

  • 小米9光线感应器在哪(小米9光线感应器坏了)

    小米9光线感应器在哪(小米9光线感应器坏了)

  • 红米8和红米8A区别(红米8和红米8a区别在哪里)

    红米8和红米8A区别(红米8和红米8a区别在哪里)

  • 苹果手机怎么设置拍照有时间水印(苹果手机怎么设置手写)

    苹果手机怎么设置拍照有时间水印(苹果手机怎么设置手写)

  • 微信升级了 怎么变回原来的版本(微信升级了怎么切换语音通话)

    微信升级了 怎么变回原来的版本(微信升级了怎么切换语音通话)

  • qq红包如何强制退回(qq红包如何强制注销)

    qq红包如何强制退回(qq红包如何强制注销)

  • phpcms v9后台登录验证码不显示怎么办(phpcms v9官网)

    phpcms v9后台登录验证码不显示怎么办(phpcms v9官网)

  • 医疗机构销售药品需要销售记录吗
  • 挂车交车船税吗
  • 征信高风险是什么意思
  • 信息采集需要填两个家庭成员,但只能有一个监护人
  • 外派人员工资费用怎么算
  • 应交税金借方余额代表什么
  • 开发票高校是企业还是非企业单位
  • 公司购买汽车可以抵扣吗
  • 企业会计制准下增值税科目的核算
  • 银行的抵债资产是什么
  • 小微企业增值税减免账务处理
  • 销售额增加10%什么概念
  • 杭州增值税发票查询
  • 增值税如何进行抵扣
  • 资产负债表和利润表的利润不一致
  • 销售额是含税价还是不含税
  • 总公司签合同发票可以给子公司吗
  • 企业合并三种方式
  • 公司注销货币资金有余额要交税吗
  • 上年的费用本年能报销吗
  • 废料出售收入
  • 商标续展费用入什么科目
  • 解放双手神器说说
  • 代销返利业务会计处理
  • php脚本主要用于的三个领域
  • nvcpl.dll是什么
  • wlms.exe是什么
  • 一般纳税人收到小规模专票怎么抵扣
  • ConquerCam.exe进程的详细介绍 ConquerCam进程信息介绍
  • 公司收到财政拨付办公经费
  • 个体工商户如何给员工交社保
  • 房产土地税计提新规
  • 国税一证通
  • linux中php的作用
  • 元素鼠标失灵了怎么办
  • ruoyi框架快速入门
  • 公章盖的字不完整有效吗
  • 长期借款的主要成本包括
  • 减按10%的税率是什么意思
  • 开发产品的成本
  • sqlserver连接不到本地服务器
  • 水灾期间未生产怎么处理
  • 纳税人识别号是不是税号
  • 销售折扣单独开发票
  • 借调是原单位发工资吗
  • 会计处理要求
  • 进度款开票是开实收金额吗
  • 社保月费基数
  • 上年折旧没提今年可以补提吗
  • 资产减值准备怎么提
  • 现金流量表每月要报吗
  • 转帐支票遗失怎么办
  • 工资条上为什么不显示生育险
  • mysql索引的使用和原理
  • mysql5.7.22安装配置教程
  • w10预览版新功能
  • winxp文件夹选项在哪
  • centos更新命令
  • freebsd怎么安装软件
  • win7系统开启无线服务
  • xp系统个性化
  • linux系统崩溃了怎么办
  • windows search进程
  • win7旗舰版更改适配器没有蓝牙连接
  • openfiledialog怎么用
  • linux怎么格式化硬盘
  • 使用jquery插件的好处
  • 常用的批处理文件
  • bat vba
  • perl命令行参数内建数组
  • 骨骼动画程序设计
  • python 入门
  • 10分钟掌握心理学
  • jquery html5 视频播放控制代码
  • django modelform
  • python特性和属性
  • 云南人社医保缴费步骤
  • 国税局宁夏税务
  • 税务局领取发票后怎么操作
  • 代理记账公司账务处理
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设