- web3.js
- web3.version - 版本信息
- web3.modules - 子模块集合对象
- web3.setProvider - 设置服务提供器
- web3.providers - 服务提供器集合对象
- web3.givenProvider - 原生服务提供器
- web3.currentProvider - 当前服务提供器
- web3.BatchRequest - 批量请求
- web3.extend - 模块继承
- web3.eth.defaultAccount - 默认账户
- web3.eth.defaultBlock - 默认块
- web3.eth.getProtocolVersion - 返回协议版本信息
- web3.eth.isSyncing - 检查节点是否同步
- web3.eth.getCoinbase - 返回挖矿收益账户
- web3.eth.isMining - 检查节点是否在挖矿
- web3.eth.getHashrate - 返回节点旳哈希计算速度
- web3.eth.getGasPrice - 返回当前gas价格
- web3.eth.getAccounts - 返回账户列表
- web3.eth.getBlockNumber - 返回当前块编号
- web3.eth.getBalance - 返回指定账户余额
- web3.eth.getStorageAt - 返回指定地址存储内容
- web3.eth.getCode - 返回指定地址的代码
- web3.eth.getBlock - 返回指定块
- web3.eth.getBlockTransactionCount - 返回指定块中的交易数量
- web3.eth.getUncle - 返回指定叔伯块
- web3.eth.getTransaction - 返回指定交易对象
- web3.eth.getTransactionFromBlock - 返回块中指定交易对象
- web3.eth.getTransactionReceipt - 返回指定交易的收据
- web3.eth.getTransactionCount - 返回指定地址发生的交易数量
- web3.eth.sendTransaction - 发送交易
- web3.eth.sendSignedTransaction - 发送已签名交易
- web3.eth.sign - 为数据生成签名
- web3.eth.signTransaction - 为交易生成签名
- web3.eth.call - 执行消息调用
- web3.eth.estimateGas - 估算gas用量
- web3.eth.getPastLogs - 返回历史日志
- web3.eth.getCompilers - 返回可用编译器清单
- web3.eth.getWork - 返回当前挖矿工作情况
- web3.eth.subscribe - 订阅链上事件
- web3.eth.Contract - 合约构造函数
- web3.eth.accounts - 账户管理与交易签名
- web3.eth.accounts.create - 创建账户
- web3.eth.accounts.privateKeyToAccount - 使用指定私钥创建账户
- web3.eth.accounts.recoverTransaction - 提取交易的签名账户
- web3.eth.accounts.hashMessage - 计算消息的哈希
- web3.eth.accounts.sign - 为数据生成签名
- web3.eth.accounts.recover - 提取数据的签名账户
- web3.eth.accounts.encrypt - 加密指定私钥
- web3.eth.accounts.decrypt - 解密keystore对象
- web3.eth.accounts.wallet - 钱包对象
- web3.eth.accounts.wallet.create - 在钱包中创建账户
- web3.eth.accounts.wallet.add - 向钱包添加已有账户
- web3.eth.accounts.wallet.remove - 从钱包中移除指定账户
- web3.eth.accounts.wallet.clear - 清空钱包
- web3.eth.accounts.wallet.encrypt - 加密钱包
- web3.eth.accounts.wallet.decrypt - 解密钱包
- web3.eth.accounts.wallet.save - 保存钱包
- web3.eth.accounts.wallet.load - 载入钱包
- web3.eth.personal - 账户交互
- web3.eth.abi - ABI管理
- web3.utils - 辅助工具函数集
- web3.utils.randomHex - 生成伪随机16进制字符串
- web3.utils._ - underscore接口
- web3.utils.BN - BN.js接口
- web3.utils.isBN - 检查给定参数是否BN对象
- web3.utils.isBigNumber - 检查给定参数是否为BigNumber对象
- web3.utils.sha3 - 计算sha3哈希值
- web3.utils.soliditySha3 - solidity方式计算sha3哈希
- web3.utils.isHex - 检查给定参数是否为16进制
- web3.utils.isHexStrict - 严格模式16进制检查
- web3.utils.isAddress - 检查给定参数是否为有效地址
- web3.utils.toChecksumAddress - 转换为校验和地址
- web3.utils.checkAddressChecksum - 校验地址
- web3.utils.toHex - 转换为16进制字符串
- web3.utils.hexToNumberString - 转换为10进制数值字符串
- web3.utils.hexToNumber - 转换为数值
- web3.utils.numberToHex - 数值转换为16进制表示
- web3.utils.hexToUtf8 - 16进制字符串转换为utf-8
- web3.utils.hexToAscii - 16进制字符串转换为ascii
- web3.utils.utf8ToHex - utf-8字符串转换为16进制
- web3.utils.asciiToHex - ascii字符串转换为16进制
- web3.utils.hexToBytes - 16进制字符串转换为字节数组
- web3.utils.toWei - 转换到wei
- web3.utils.fromWei - 从wei转换到其他以太单位
- web3.utils.unitMap - 以太单位换算表
- web3.utils.padLeft - 左侧零补齐
- web3.utils.padRight - 右侧零补齐
- web3.*.net - 网络交互
- web3.eth.Iban - 创建Iban对象
- web3.eth.Iban.toAddress - 将iban对象转换为以太坊地址
- web3.eth.Iban.toIban - 将以太坊地址转换为Iban对象
- web3.eth.Iban.toAddress - 将iban对象转换为以太坊地址
- web3.eth.Iban.fromEthereumAddress - 将以太坊地址转换为Iban对象
- web3.eth.Iban.fromBban - 使用Bban地址创建Iban对象
- web3.eth.Iban.createIndirect - 创建间接Iban对象
- web3.eth.Iban.isValid - 检查给定Iban地址是否有效
- web3.eth.Iban.isDirect - 检查是否采用直接编码方案
- web3.eth.Iban.isIndirect - 检查是否采用间接编码方案
- web3.eth.Iban.institution - 返回Iban的机构名称
- web3.eth.Iban.client - 返回Iban的客户账号
- web3.eth.Iban.toAddress - 实例方法
- web3.eth.Iban.toString - 返回Iban地址字符串
- web3.shh - whisper协议交互
- web3.shh.getVersion - 返回whisper协议版本
- web3.shh.getInfo - 返回whisper节点信息
- web3.shh.setMaxMessageSize - 设置whisper消息大小上限
- web3.shh.setMinPoW - 设置节点最小PoW
- web3.shh.markTrustedPeer - 标记可信节点
- web3.shh.newKeyPair - 创建密钥对
- web3.shh.addPrivateKey - 使用私钥创建密钥对
- web3.shh.deleteKeyPair - 删除指定密钥对
- web3.shh.hasKeyPair - 检查节点是否有指定密钥对
- web3.shh.getPublicKey - 返回公钥
- web3.shh.getPrivateKey - 返回私钥
- web3.shh.newSymKey - 创建对称密钥
- web3.shh.addSymKey - 添加对称密钥
- web3.shh.generateSymKeyFromPassword - 使用指定密码生成对称密钥
- web3.shh.hasSymKey - 检查是否有指定对称密钥
- web3.shh.getSymKey - 返回对称密钥
- web3.shh.post - 发送whisper消息
- web3.shh.subscribe - 订阅whisper消息
- web3.shh.clearSubscriptions - 清理订阅
- web3.shh.newMessageFilter - 创建消息过滤器
- web3.shh.deleteMessageFilter - 删除消息过滤器
- web3.shh.getFilterMessages - 读取新消息
- web3.bzz - Swarm交互
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
web3.utils.soliditySha3 - solidity方式计算sha3哈希
采用和solidity同样的方式计算给定参数的sha3哈希值,也就是说, 在计算哈希之前,需要首先对参数进行ABI编码,并进行字节紧凑化处理。
调用:
web3.utils.soliditySha3(param1 [, param2, ...])
参数:
paramX
- Mixed: 任意类型,或是一个具有如下结构的对象:{type: 'uint', value: '123456'} 或 {t: 'bytes', v: '0xfff456'}。 可以自动识别基本数据类型并解析为对应的solidity类型:
- String 非数值的UTF-8字符串将解释为string
- String|Number|BN|HEX 正数将解释为uint256
- String|Number|BN 负数将解释为int256
- Boolean 解释为bool.
- String HEX 具有前缀0x的字符串将解释为bytes
- HEX 16进制表示的数值将解释为uint256.
返回值:
String
: 结果哈希值
示例代码:
web3.utils.soliditySha3('234564535', '0xfff23243', true, -10);
// 自动检测: uint256, bytes, bool, int256
> "0x3e27a893dc40ef8a7f0841d96639de2f58a132be5ae466d40087a2cfa83b7179"
web3.utils.soliditySha3('Hello!%'); // 自动检测: string
> "0x661136a4267dba9ccdf6bfddb7c00e714de936674c4bdb065a531cf1cb15c7fc"
web3.utils.soliditySha3('234'); // 自动检测: uint256
> "0x61c831beab28d67d1bb40b5ae1a11e2757fa842f031a2d0bc94a7867bc5d26c2"
web3.utils.soliditySha3(0xea); // 同上
> "0x61c831beab28d67d1bb40b5ae1a11e2757fa842f031a2d0bc94a7867bc5d26c2"
web3.utils.soliditySha3(new BN('234')); // 同上
> "0x61c831beab28d67d1bb40b5ae1a11e2757fa842f031a2d0bc94a7867bc5d26c2"
web3.utils.soliditySha3({type: 'uint256', value: '234'})); // 同上
> "0x61c831beab28d67d1bb40b5ae1a11e2757fa842f031a2d0bc94a7867bc5d26c2"
web3.utils.soliditySha3({t: 'uint', v: new BN('234')})); // 同上
> "0x61c831beab28d67d1bb40b5ae1a11e2757fa842f031a2d0bc94a7867bc5d26c2"
web3.utils.soliditySha3('0x407D73d8a49eeb85D32Cf465507dd71d507100c1');
> "0x4e8ebbefa452077428f93c9520d3edd60594ff452a29ac7d2ccc11d47f3ab95b"
web3.utils.soliditySha3({t: 'bytes', v: '0x407D73d8a49eeb85D32Cf465507dd71d507100c1'});
> "0x4e8ebbefa452077428f93c9520d3edd60594ff452a29ac7d2ccc11d47f3ab95b" // 结果同上
web3.utils.soliditySha3({t: 'address', v: '0x407D73d8a49eeb85D32Cf465507dd71d507100c1'});
> "0x4e8ebbefa452077428f93c9520d3edd60594ff452a29ac7d2ccc11d47f3ab95b" // 同上,但首先会检查校验和
web3.utils.soliditySha3({t: 'bytes32', v: '0x407D73d8a49eeb85D32Cf465507dd71d507100c1'});
> "0x3c69a194aaf415ba5d6afca734660d0a3d45acdc05d54cd1ca89a8988e7625b4" // 不同的类型得到不同的哈希值
web3.utils.soliditySha3({t: 'string', v: 'Hello!%'}, {t: 'int8', v:-23}, {t: 'address', v: '0x85F43D8a49eeB85d32Cf465507DD71d507100C1d'});
> "0xa13b31627c1ed7aaded5aecec71baf02fe123797fffd45e662eac8e06fbe4955"
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论