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

  • 开关柜型号含义(开关柜设计)(开关柜型号含义图片)

    开关柜型号含义(开关柜设计)(开关柜型号含义图片)

  • 微信来语音不响铃怎么设置(微信来语音不响怎么回事)

    微信来语音不响铃怎么设置(微信来语音不响怎么回事)

  • reboot to bootloader的意思(reboot to bootloader投影仪)

    reboot to bootloader的意思(reboot to bootloader投影仪)

  • excel中提取部分数字(excel提取部分数据到另一文档)

    excel中提取部分数字(excel提取部分数据到另一文档)

  • 华为p30pro外屏碎了怎么换(华为p30pro外屏碎了多少钱)

    华为p30pro外屏碎了怎么换(华为p30pro外屏碎了多少钱)

  • 快手关注就是粉丝吗(快手关注就是粉丝怎么办)

    快手关注就是粉丝吗(快手关注就是粉丝怎么办)

  • 官方换新机是什么意思(什么叫官方换机)

    官方换新机是什么意思(什么叫官方换机)

  • 户户通t08频道为空原因(户户通出现t08怎样自己处理解决)

    户户通t08频道为空原因(户户通出现t08怎样自己处理解决)

  • y5s什么时候上市(y5s什么时候上市的手机)

    y5s什么时候上市(y5s什么时候上市的手机)

  • 手机存储权限什么意思(手机存储权限什么开启)

    手机存储权限什么意思(手机存储权限什么开启)

  • 四代计算机的特点(四代计算机典型代表分别是什么)

    四代计算机的特点(四代计算机典型代表分别是什么)

  • windows中回收站是指(Windows中回收站实际上是一个特殊的文件夹)

    windows中回收站是指(Windows中回收站实际上是一个特殊的文件夹)

  • 淘宝多少年了(淘宝多少年了?)

    淘宝多少年了(淘宝多少年了?)

  • 无线连接不可上网是什么意思(无线连接不可上网是什么原因)

    无线连接不可上网是什么意思(无线连接不可上网是什么原因)

  • 微信辅助注册一年几次(微信辅助注册一个月3次)

    微信辅助注册一年几次(微信辅助注册一个月3次)

  • 腾讯视频怎么扫描二维码登录(腾讯视频怎么扫二维码登录)

    腾讯视频怎么扫描二维码登录(腾讯视频怎么扫二维码登录)

  • 微信群合成头像怎么改(微信群合成头像图片)

    微信群合成头像怎么改(微信群合成头像图片)

  • cad2019里平方米怎么打(cad平方米符号怎么打)

    cad2019里平方米怎么打(cad平方米符号怎么打)

  • 苹果x初始系统是多少(苹果x最初系统)

    苹果x初始系统是多少(苹果x最初系统)

  • 苹果7p的耳机怎样使用(苹果7p的耳机怎么用)

    苹果7p的耳机怎样使用(苹果7p的耳机怎么用)

  • airpods无线和有线的区别(airpods无线和有线充电盒有什么区别)

    airpods无线和有线的区别(airpods无线和有线充电盒有什么区别)

  • 华为荣耀10lite是什么型号(honor荣耀10lite)

    华为荣耀10lite是什么型号(honor荣耀10lite)

  • 【蓝桥杯Web】第十四届蓝桥杯(Web 应用开发)模拟赛 1 期-职业院校组 | 精品题解(蓝桥杯b组2020)

    【蓝桥杯Web】第十四届蓝桥杯(Web 应用开发)模拟赛 1 期-职业院校组 | 精品题解(蓝桥杯b组2020)

  • 承兑汇票用开发票吗
  • 如何判断固定资产资本化还是费用化
  • 账载金额和实际金额的区别
  • 金税盘纳税申报流程
  • 小规模纳税人所得税费用怎么算
  • 收到投资款怎么做账
  • 房产代理经纪人
  • 公司购车预计净残值率怎么计算
  • 建造普通标准住宅出售,增值税超过扣除金额的
  • 往来票据怎么填写
  • 政府往来账
  • 银行本票超过付款期限可以向出票人追索吗
  • 工程成本哪些可以抵扣
  • 农户贷款免征增值税吗?
  • 图书发票没有明细能报销吗?
  • 进项发票和销项发票金额相同还需要交税金吗
  • 转账时开户行写错了钱转出去了对方收不到
  • 收到发票后怎么处理
  • 管理费用怎么记忆
  • 进口商品买卖的关键环节
  • 增值税进项转出后企业所得税调整是含税价还是不含税价
  • 小型微利企业收入超过300
  • 电脑怎么安装双显卡
  • 去除页眉的横线快捷方式
  • 主营业务成本是借方增加还是贷方增加
  • 上月库存占比怎么算
  • 产品试用装怎么做会计分录
  • 按产量和单价计算工业总产值
  • 2022年最新cpu天梯图手机
  • win10图片密码怎么全屏显示
  • 开机后网络连接很慢
  • 冲销多计提所得税
  • 财务指标有哪四类
  • 入固定资产含税吗
  • 房地产行业预售制度
  • 全资子公司取得注册证可以免临床
  • c#openxml
  • smart 变量表
  • 增值税和所得税区别
  • 出售土地账务如何处理
  • 注册资本认缴可以增加吗
  • 网易游戏二面
  • ajax跨域请求的原理是什么
  • modprobe operation not permitted
  • php 伪造HTTP_REFERER页面URL来源的三种方法
  • 计提坏账准备需要确认递延所得税吗
  • 小微企业所得额如何计算
  • 发现以前年度损益调整怎么记账
  • 律师跨省办案收取的费用叫什么
  • 主营业务收入和营业外收入均属于收入
  • 经济作物评估标准
  • 销售分哪几类
  • 工程中标费用放哪个科目
  • 财政补助结转结转的依据
  • 其他综合收益如何计算所得税
  • 现金日记账定金怎么算
  • 交通运输业安全经费提取的会计处理
  • 应收账款资产减值准备可以在所得税前扣除吗
  • 商业承兑汇票贴现流程
  • 缴纳工会经费的依据
  • 小微企业注册流程及注意事项
  • 如何查企业是否有问题
  • 正确使用气体钢瓶的原则
  • 重装机兵
  • linux服务器查找文件命令
  • linux中安装vim命令
  • efi shell有什么用
  • win8系统升级到win10东西还在吗
  • 动态设置class
  • js excel导入导出
  • main报错
  • angular中ui calendar的一些使用心得(推荐)
  • vue路由router
  • linux 定时任务
  • 关于Air端与android端的通信实现
  • 详解Python装饰器由浅入深
  • jquery怎么写
  • 发票查验结果怎么保存
  • 个人彩票收入属什么类别
  • 乌市沙区医保局电话是多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设