位置: 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入门学习)

  • 支付宝限制7天怎么弄(支付宝限制7天后,还能恢复吗)

    支付宝限制7天怎么弄(支付宝限制7天后,还能恢复吗)

  • 为啥用微信号搜索不到(为啥用微信号搜不到好友)

    为啥用微信号搜索不到(为啥用微信号搜不到好友)

  • 微信免流量的手机卡(微信免流量的手机卡移动)

    微信免流量的手机卡(微信免流量的手机卡移动)

  • 闲鱼联系不上卖家怎么办(闲鱼 联系不到卖家)

    闲鱼联系不上卖家怎么办(闲鱼 联系不到卖家)

  • sd wan到底是什么(sd-wan sdn)

    sd wan到底是什么(sd-wan sdn)

  • 苹果11有必要更新系统吗(苹果11有必要更换原装电池吗)

    苹果11有必要更新系统吗(苹果11有必要更换原装电池吗)

  • 华为p40黑名单在哪(华为p40手机联系人黑名单哪里)

    华为p40黑名单在哪(华为p40手机联系人黑名单哪里)

  • i3 2350m什么水平(i3 2350m性能怎么样)

    i3 2350m什么水平(i3 2350m性能怎么样)

  • 5gwifi4g手机能用吗(5gwifi4g手机可以用吗)

    5gwifi4g手机能用吗(5gwifi4g手机可以用吗)

  • 抖音为什么显示回关(抖音为什么显示ip地址未知)

    抖音为什么显示回关(抖音为什么显示ip地址未知)

  • 怎么阻止58同城打电话(怎么阻止58同城给我发短信)

    怎么阻止58同城打电话(怎么阻止58同城给我发短信)

  • lon-al00是华为什么型号手机(lon-al00是华为什么型号手r)

    lon-al00是华为什么型号手机(lon-al00是华为什么型号手r)

  • oppo手机屏上时间怎么显示(oppo手机屏时间没有了怎么显示设置)

    oppo手机屏上时间怎么显示(oppo手机屏时间没有了怎么显示设置)

  • 微信的微笑表情代表啥(微信的微笑表情为什么不好)

    微信的微笑表情代表啥(微信的微笑表情为什么不好)

  • 什么是通信网(通信网概念)

    什么是通信网(通信网概念)

  • oppoa5充电慢咋办(oppoa5充电速度慢怎么办)

    oppoa5充电慢咋办(oppoa5充电速度慢怎么办)

  • 电脑网络连接感叹号(电脑网络连接感叹号怎么办)

    电脑网络连接感叹号(电脑网络连接感叹号怎么办)

  • 拼多多退货怎么寄回去(拼多多退货怎么退)

    拼多多退货怎么寄回去(拼多多退货怎么退)

  • 苹果x怎么关掉相机声音(苹果X怎么关掉下载密码)

    苹果x怎么关掉相机声音(苹果X怎么关掉下载密码)

  • 拼多多怎么扫二维码找商品(拼多多怎么扫二维)

    拼多多怎么扫二维码找商品(拼多多怎么扫二维)

  • 淘宝主页被收藏是什么意思(淘宝宝贝被收藏)

    淘宝主页被收藏是什么意思(淘宝宝贝被收藏)

  • 荣耀10充电器多少瓦(荣耀10充电器多少A)

    荣耀10充电器多少瓦(荣耀10充电器多少A)

  • relme手机是什么(remlme是什么手机)

    relme手机是什么(remlme是什么手机)

  • 微信朋友圈视频怎么自动播放视频(微信朋友圈视频怎么发高清)

    微信朋友圈视频怎么自动播放视频(微信朋友圈视频怎么发高清)

  • 苹果6怎么设置微信加锁(苹果6怎么设置id账号和密码)

    苹果6怎么设置微信加锁(苹果6怎么设置id账号和密码)

  • 帝国cms 7.0怎么调用本信息所属专题,专题带链接(帝国cms php8.0)

    帝国cms 7.0怎么调用本信息所属专题,专题带链接(帝国cms php8.0)

  • 23年一般纳税人税收政策是什么
  • 专用发票和普通票有区别吗
  • 残保金计入管理费用还是营业税金及附加
  • 出口业务运费可以抵扣吗
  • 其他债券投资有减值,为什么其他权益工具投资没有减值
  • 实收资本账
  • 装载机折旧年限是几年
  • 季度企业所得税可以不预缴吗
  • 利润表管理费用怎么算
  • 小企业会计准则适用于哪些企业
  • 计提固定资产折旧时可以先不考虑固定资产残值的方法是
  • 营改增服务
  • 盈余公积要是提多了能转回么
  • 企业如何认定
  • 票据权利的概念与性质
  • 携程电子发票可以发到QQ邮箱吗
  • 小区物业宿舍
  • 红冲发票显示发票状态不正常
  • 增值税附加税怎么计提
  • 浙江印花税税率
  • 平销返利税率
  • 小规模怎么查询
  • 企业购入一批材料卖价5万元
  • PHP:xml_set_processing_instruction_handler()的用法_XML解析器函数
  • php时间戳相减
  • php上传进度条
  • 公司资产总额怎么算的啊
  • linux 定时删除文件
  • phpunicode
  • PHP:pcntl_fork()的用法_PCNTL函数
  • 酒店行业存货周转率多少合适
  • 命令行查看ip地址
  • 外币存款业务
  • 基于springboot的毕设
  • 银行承兑汇票背书什么意思
  • 用smart原则改写年底前完善客户资料
  • 计提本月房产税的纳税基数怎么算的
  • 未取得增值税发票开具二手车发票
  • 企业转让股权如何缴纳企业所得税
  • 个体工商户怎么变更法人
  • ibm.data.db2
  • 删除mysql数据库用户
  • 哪些属于费用发票类型
  • 待摊费用和预提费用都属于资产类科目
  • 跨月发票税率开错了如何处理合适?
  • 合并报表存货抵消
  • 独立核算分公司与总公司的账务处理
  • 向投资者分配现金股利的会计分录?
  • 法院拍卖得来的物品有发票吗
  • 代扣和代缴的区别
  • 单位定期存款起存金额为1万元,多存不限,存期分为
  • 预收账款计入应收账款怎么弄
  • 小规模纳税人减按1%账务处理
  • 预付账款要设明细科目吗
  • 固定资产折旧四种方法的优缺点
  • 小规模附加税减半征收什么时候开始
  • 公司购买垃圾袋纸巾摘要怎么写好
  • 备抵法核算坏账损失
  • 原始凭证的主要内容包括
  • sql中的递归
  • win8.1无法进入系统
  • win7鼠标右键一闪就没了
  • win10系统迅雷
  • fedora vlc
  • xp系统被锁定怎么解除锁定
  • 设计制作个性化文集答案
  • win7开始菜单在哪里
  • linux服务器如何配置ip
  • 怎么用windows
  • linux怎么安装rz
  • log4j 日志文件太大
  • perl里怎么对数组实现一次遍历
  • js原型继承和构造继承
  • 简述android中色值原理与表示形式
  • react 系列
  • 用js实现一个复杂对象深拷贝的算法
  • win10安装python2.7
  • 上海小规模纳税人企业所得税
  • 云南烟草税收是多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设