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

  • 年底了,公关营销人内心的独白……(做公关的那几年)

    年底了,公关营销人内心的独白……(做公关的那几年)

  • 电话手表长续航模式怎么退出(电话手表长续航模式怎么设置)

    电话手表长续航模式怎么退出(电话手表长续航模式怎么设置)

  • qq聊天字体的怎么设置(qq聊天字体怎么设置的和系统一样)

    qq聊天字体的怎么设置(qq聊天字体怎么设置的和系统一样)

  • 微博拉黑对方还会收到提醒吗(微博拉黑对方还会推送)

    微博拉黑对方还会收到提醒吗(微博拉黑对方还会推送)

  • 苹果7plus和苹果11对比(苹果7plus和苹果14pro哪个大)

    苹果7plus和苹果11对比(苹果7plus和苹果14pro哪个大)

  • 快手确认收货后还能退货吗(快手确认收货后多久到账)

    快手确认收货后还能退货吗(快手确认收货后多久到账)

  • 运行应用程序时,需要操作系统提供哪些支持(运行应用程序时如果内存不够怎么解决)

    运行应用程序时,需要操作系统提供哪些支持(运行应用程序时如果内存不够怎么解决)

  • 指纹识别是计算机在什么方面的应用(指纹识别是计算机软件吗)

    指纹识别是计算机在什么方面的应用(指纹识别是计算机软件吗)

  • 华为nova5与荣耀20对比(nova5和荣耀20)

    华为nova5与荣耀20对比(nova5和荣耀20)

  • 对方快手号匹配啥意思(快手号匹配怎么回事)

    对方快手号匹配啥意思(快手号匹配怎么回事)

  • 微信扫码出现一串数字怎么解决(微信扫码出现一行数字怎么解决)

    微信扫码出现一串数字怎么解决(微信扫码出现一行数字怎么解决)

  • 苹果11的分辨率为什么这么低(苹果11的分辨率是多少)

    苹果11的分辨率为什么这么低(苹果11的分辨率是多少)

  • 华为nova5有没有语音唤醒功能(华为nova5有没有录音功能)

    华为nova5有没有语音唤醒功能(华为nova5有没有录音功能)

  • 6.57英寸手机长宽是多少(6.57英寸手机长宽是多少像素)

    6.57英寸手机长宽是多少(6.57英寸手机长宽是多少像素)

  • word2010纸型设置为16开(word在哪设置纸型)

    word2010纸型设置为16开(word在哪设置纸型)

  • 矢量图怎么做(logo矢量图怎么做)

    矢量图怎么做(logo矢量图怎么做)

  • 三星m2071怎么换硒鼓(三星m2071怎么换搓纸轮)

    三星m2071怎么换硒鼓(三星m2071怎么换搓纸轮)

  • word目录怎么添加一行(word目录怎么添加下级目录)

    word目录怎么添加一行(word目录怎么添加下级目录)

  • 华为手机耳机孔在哪里(华为手机耳机孔是3.5还是2.5)

    华为手机耳机孔在哪里(华为手机耳机孔是3.5还是2.5)

  • vivoy85分辨率在哪里设置(vivoy85a分辨率)

    vivoy85分辨率在哪里设置(vivoy85a分辨率)

  • 在CAD中怎么复制(在cad中如何复制)

    在CAD中怎么复制(在cad中如何复制)

  • 微信怎么开启红包提醒功能(微信怎么开启红色感叹号)

    微信怎么开启红包提醒功能(微信怎么开启红色感叹号)

  • 简单掌握Linux中用于更改访问控制的chacl命令(手把手教你linux)

    简单掌握Linux中用于更改访问控制的chacl命令(手把手教你linux)

  • 最早的手机短信是什么(手机短信是哪一年开始的)

    最早的手机短信是什么(手机短信是哪一年开始的)

  • 从零开始,打造属于你的 ChatGPT 机器人!(从零开始打造神级文明)

    从零开始,打造属于你的 ChatGPT 机器人!(从零开始打造神级文明)

  • 所得税汇算清缴调整项目
  • 留抵税额下月抵扣的分录
  • 总账和总分类账的区别图片
  • 购销合同印花税怎么算
  • 分公司独立核算的利弊
  • 两免三减半的范围
  • 财务报表的资产负债表怎么填
  • 小公司可以不交五险一金吗
  • 食堂外包服务费
  • 建筑企业发生分包业务如何确认收入
  • 购置办公用品有什么好处
  • 土地返还款属于政府补助吗
  • 企业支付个人借款利息要扣个税吗
  • 怎么结转销项税额
  • 在建的项目
  • 国家金库为什么扣我银行里的钱
  • 预缴税款个人所得税如何计算
  • 个体户经营所得怎么申报
  • 行政单位库存物资管理办法
  • 低价购买债权后可否向债务人全额主张债务
  • 个人取得的股票转让所得暂不征收个人所得税
  • 企业年金企业所得税扣除标准
  • 收入税金账务处理
  • edge浏览器总是打开新的网页
  • 图解 http
  • mac dash
  • 证券公司佣金是买卖都要收吗
  • php5.4+mysql
  • 转出未交增值税会计科目
  • 股东帮公司垫付货款
  • 一般纳税人企业注销流程
  • 公司出租房屋怎样开发票的税务局率?
  • 哈雷6号
  • 专业初审
  • 外商投资企业 外资企业
  • 技术服务费可以计入成本吗
  • 向客户收费
  • 借款合同印花税怎么做账
  • yii框架连接数据库
  • 特征提取原理
  • javascript常用的数据类型
  • addr指令
  • scala实例
  • Sql Server 2005的1433端口打开局域网访问和进行远程连接
  • 税前弥补以前年度亏损对递延所得税影响
  • mysql主从复制实现原理
  • 制造费用怎么登账
  • 行政事业单位过节费发放规定
  • 简易计税办法的有
  • 员工拿发票报销怎么做账
  • 外贸企业面对人民币升值应该采取什么的避险措施
  • 合并报表怎么合并
  • 销售商品一批,销售价格为4520000
  • 收到劳务费
  • 建筑企业案例
  • win帮助系统在哪里
  • centos8复制文件
  • windows8.
  • win10访问局域网电脑需要用户名和密码
  • linux 图形
  • centos编译环境
  • windows7找不到无线
  • win7连接路由器设置
  • linux的命令行界面是什么意思
  • ajax请求数据放到页面
  • android 程序开发
  • 查看进程pid的命令是
  • cmd打开telnet
  • javascript的核心语言对象包括
  • js继承原型链
  • [置顶]电影名字《收件人不详》
  • framework res.apk
  • js的变量
  • unity大神
  • python语句分为哪两种
  • 安卓art set
  • android设计模式书籍
  • 征求意见稿 讨论稿 送审稿
  • 岗位能手竞赛
  • 出口退税账户标识是否怎么选
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设