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

  • 房地产开发企业资质等级有几个
  • 一般纳税人劳务公司可以开3%的发票吗
  • 小规模纳税人进项可以抵扣吗
  • 佣金交税吗
  • 员工在外出差的说说
  • 文件柜材质
  • 自产自销农产品发票如何开具
  • 专项补助资金补助的领域包括
  • 公司章程上的出资时间2050年
  • 专票抵扣是税额吗
  • 企业发生的销售折让
  • 3%征收率的应税服务
  • 建筑企业财务制度及规范流程
  • 问福利费的发票如果是增值税专用发票,增值税可以抵扣吗?
  • 实物型产品的基础知识
  • 怎么判断分红前已提取足够法定公积金?
  • 代为持股有没有法律效应
  • 企业接受非现金资产投资的账务处理
  • 现金存入银行是付款还是转账
  • 解决口苦最快的方法
  • 不具备生产条件的生产经营单位
  • mac屏蔽显卡教程
  • 桌面图标被篡改怎么办
  • macbook版itunes
  • 如何设置鼠标移过超链接
  • PHP:curl_multi_init()的用法_cURL函数
  • 企业所得税会计利润
  • 1050ti 4g显卡
  • 销售折让双方会计分录
  • 解聘员工补偿金能拖欠吗
  • 交完社保
  • 以物易物怎么写分录
  • 外籍人员一次性奖金
  • php中session什么意思
  • php dao
  • 程序员神器
  • php面向对象的机制
  • 利润分配反映什么
  • python,array
  • 以股权抵债的会计分录
  • 委托境外机构销售开发产品
  • 发票必须在什么时候开
  • 室内装修专用什么意思
  • 三代手续费的税率
  • linux mint 下mysql中文支持问题
  • mysql底层是什么
  • 销售农产品是否交消费税
  • sql server 2008保存数据库
  • 建筑企业会计科目的设置及核算
  • 关于sql的问题
  • 国有控股企业和国有参股企业的区别
  • 发票申请退税隔两个月能去办理么
  • 购买员工团体意外险需要缴纳个税么
  • 固定资产不动产有哪些
  • 库存商品用于研发分录
  • 企业会计准则季度利润表本期数
  • 应付票据贴现借款
  • 快递费专票可以报销吗
  • 出口退税过期怎么处理
  • 资产负债表与利润表的勾稽关系公式
  • 生产成本怎么结转主营业务成本分录
  • 如何安装vmware10
  • 怎么给ubuntu扩容
  • 常见unix操作系统
  • linux ifconfig命令详解
  • outpost.exe - outpost是什么进程 有什么用
  • linux命令删除指定目录
  • cocos2dx游戏案例
  • html td 合并
  • 地形图高程点坐标高程提取
  • qt配置opengl
  • jquery插件使用
  • 江苏省高新区地图
  • 地税是地方税吗
  • 实木地板什么
  • 如果贸易后y产品的相对价格下降很大的话
  • 山东省级高新区什么级别
  • 广西纳税申报流程
  • 深圳代理记账公司赚钱吗
  • 非房地产企业转让旧房土地增值税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设