返回介绍

web3.extend - 模块继承

发布于 2020-01-19 11:52:16 字数 1650 浏览 1186 评论 0 收藏 0

使用web3.extend()方法来继承扩展web3的模块类。

调用:

web3.extend(methods)
web3.eth.extend(methods)
web3.shh.extend(methods)
web3.bzz.extend(methods)
...

参数:

methods - Object: 扩展对象,包含一组如下的方法描述对象:

  • property - String: 可选,要添加到模块上的属性名称。 如果没有设置属性,则直接添加到模块上。
  • methods - Array: 方法描述对象数组,每个描述对象包含以下字段:
    • name - String: 要添加的方法名称
    • call - String: RPC方法名称
    • params - Number: 可选,方法的参数个数,默认值为0
    • inputFormatter - Array: 可选,输入格式化函数数组,每个成员对应一个函数参数,或者使用null来对应不需要进行格式化处理的参数
    • outputFormatter - Function: 可选,用来格式化输出

返回值:

Object: 扩展后的模块

示例代码:

web3.extend({
    property: 'myModule',
    methods: [{
        name: 'getBalance',
        call: 'eth_getBalance',
        params: 2,
        inputFormatter: [web3.extend.formatters.inputAddressFormatter, web3.extend.formatters.inputDefaultBlockNumberFormatter],
        outputFormatter: web3.utils.hexToNumberString
    },{
        name: 'getGasPriceSuperFunction',
        call: 'eth_gasPriceSuper',
        params: 2,
        inputFormatter: [null, web3.utils.numberToHex]
    }]
});

web3.extend({
    methods: [{
        name: 'directCall',
        call: 'eth_callForFun',
    }]
});

console.log(web3);
> Web3 {
    myModule: {
        getBalance: function(){},
        getGasPriceSuperFunction: function(){}
    },
    directCall: function(){},
    eth: Eth {...},
    bzz: Bzz {...},
    ...
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文