使用 api.rpc. payment.queryFeeDetails 获取外部费用

2024-01-06

我想用api.rpc.payment.queryFeeDetailsAPI 调用(https://polkadot.js.org/docs/substrate/rpc#queryfeedetailsextrinsic-bytes-at-blockhash-feedetails https://polkadot.js.org/docs/substrate/rpc#queryfeedetailsextrinsic-bytes-at-blockhash-feedetails)获取有关 Substrate 区块链中特定外部费用的信息。

我正在使用这段代码来做到这一点:

const blockHash = '0x8ad4960941190d155b22bf3c1c6aeacb4cdcfcc87b519a87106be7dfd342ae1d';
const { block } = await api.rpc.chain.getBlock(blockHash);
const info = await api.rpc.payment.queryFeeDetails(block.extrinsics[1], blockHash);
console.log(JSON.stringify(info, null, 2));

但我收到这个错误:

2021-04-05 18:37:35        RPC-CORE: queryInfo(extrinsic: Bytes, at?: BlockHash): RuntimeDispatchInfo:: 1: Unable to query dispatch info.: Execution, ApiCould not convert parameter `uxt` between node and runtime: Invalid transaction version
Error: 1: Unable to query dispatch info.: Execution, ApiCould not convert parameter `uxt` between node and runtime: Invalid transaction version
    at RpcCoder._checkError (/root/test/node_modules/@polkadot/rpc-provider/coder/index.cjs:84:13)
    at RpcCoder.decodeResponse (/root/test/node_modules/@polkadot/rpc-provider/coder/index.cjs:47:10)
    at WsProvider.value (/root/test/node_modules/@polkadot/rpc-provider/ws/index.cjs:231:90)
    at W3CWebSocket.value [as onmessage] (/root/test/node_modules/@polkadot/rpc-provider/ws/index.cjs:211:153)
    at W3CWebSocket._dispatchEvent [as dispatchEvent] (/root/test/node_modules/yaeti/lib/EventTarget.js:107:17)
    at W3CWebSocket.onMessage (/root/test/node_modules/websocket/lib/W3CWebSocket.js:234:14)
    at WebSocketConnection.<anonymous> (/root/test/node_modules/websocket/lib/W3CWebSocket.js:205:19)
    at WebSocketConnection.emit (events.js:315:20)
    at WebSocketConnection.processFrame (/root/test/node_modules/websocket/lib/WebSocketConnection.js:554:26)
    at /root/test/node_modules/websocket/lib/WebSocketConnection.js:323:40

我做错了什么?


基于@kiaenigma 答案的完整工作片段:

https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fkusama-rpc.polkadot.io#/js https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fkusama-rpc.polkadot.io#/js

const blockHash = '0x8ad4960941190d155b22bf3c1c6aeacb4cdcfcc87b519a87106be7dfd342ae1d';
const { block } = await api.rpc.chain.getBlock(blockHash);
console.log('extrinsic:', JSON.stringify(block.extrinsics[1].toHuman(), null, 2));
const queryFeeDetails = await api.rpc.payment.queryFeeDetails(block.extrinsics[1].toHex(), blockHash);
console.log('queryFeeDetails:', JSON.stringify(queryFeeDetails.toHuman(), null, 2));
const queryInfo = await api.rpc.payment.queryInfo(block.extrinsics[1].toHex(), blockHash);
console.log('queryInfo:', JSON.stringify(queryInfo.toHuman(), null, 2));

Output:

extrinsic: {
  "isSigned": true,
  "method": {
    "args": [
      {
        "Id": "FJLFJeKagZ8xkDxH4AneGN9tRe9NZM65CZFdbnhVz6Whm2u"
      },
      "12.9452 KSM"
    ],
    "method": "transferKeepAlive",
    "section": "balances"
  },
  "era": {
    "MortalEra": {
      "period": "1,024",
      "phase": "559"
    }
  },
  "nonce": "15,942",
  "signature": "0x63866b9d4dd0a5b2240c3a864bf1184ed764fb02eecc950a0c480e1a887c3643ea3625960a1e4e808a3171684c173a3eb099183433eaf54b4a94367406334d08",
  "signer": {
    "Id": "HmFYPT1btmi1T9qqs5WtuNJK93yNdnjjhReZh6emgNQvCHa"
  },
  "tip": "0"
}
queryFeeDetails: {
  "inclusionFee": {
    "baseFee": "166.6666 µKSM",
    "lenFee": "2.4666 mKSM",
    "adjustedWeightFee": "243.0000 pKSM"
  }
}
queryInfo: {
  "weight": "182,428,000",
  "class": "Normal",
  "partialFee": "2.6333 mKSM"
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 api.rpc. payment.queryFeeDetails 获取外部费用 的相关文章

  • 如何在 Firefox 控制台中访问附加内容脚本?

    我为 Firefox 和 Chrome 开发了一个插件 它有内容脚本 我想在浏览器选项卡的控制台中访问它们 在 Firefox 上网页控制台 https developer mozilla org en US docs Tools Web
  • javascript 中对象的“异步”循环

    通常 我们可以对数组和对象进行循环来迭代属性 值 但循环是阻塞的 但是 超时可用于模拟异步循环 我设法为数组做到了这一点 http jsfiddle net LHhy2 do stuff function asyncLoop i do st
  • 在 Javascript 中获取第一个数字出现后的子字符串

    我正在尝试提取第一个数字之后 并包括 的字符 ABC 123SD gt 123SD 123 gt 123 123SD gt 123SD ABC gt 我当前的解决方案如下 var string1 ABC 123SD var firstDig
  • Javascript DOM setAttribute 在函数调用中不起作用

    我有一个带有输入元素的 HTML 文件 我希望向其中添加一个名为 valid fieldset011 的新属性 该属性用作 AngularJS 验证器的链接 输入元素具有属性 id fieldset011 如果我使用以下脚本 包含在脚本标签
  • 定义 js-xlsx 单元格范围

    我正在尝试使用 js xlsx 读取 Excel 值 我可以使用以下代码从工作簿工作表中获取单元格值 if typeof require undefined XLSX require xlsx var workbook XLSX readF
  • window.onbeforeunload 在 Android Chrome 上不会触发 [alt.解决方案?]

    我开发了一个简单的聊天应用程序 我正在使用 window onbeforeunload当有人关闭选项卡 浏览器时 基本上是当用户离开房间时 通知其他用户 这是我的代码 scope onExit function scope chatstat
  • 以一定时间间隔连续重复运行 JavaScript 函数

    这是我的第一个问题 希望您尽快回答 我想要代码连续重复一个函数 我尝试了一些代码 但没有成功 我尝试了这段代码 我想在一段时间后重复这个功能 我努力了setInterval and setTimeout 但是 我还没有收到结果 这将重复该任
  • 为什么 length 是 `Array` 的属性而不是 `Array.prototype` 链

    所以我在 V8 控制台上玩了很多 我做到了 Object getOwnPropertyNames 我期望得到 结果 然而 length 所以这意味着不是成为原型链的一部分 length是所有人的成员财产Array对象 这是一个错误 还是有任
  • 启用/禁用由用户输入确定的复选框

    我有一个简单的表单 用户可以在其中输入他的联系号码 如果联系号码以 07 开头 则该复选框已启用 其他我需要禁用它的复选框 我已经编写了一些代码 但我面临的问题是 当用户键入 01 时 它会被禁用 但如果他们继续在 01 之后添加任何其他数
  • javascript jquery 使用脚本更改脚本的src

    我有一个 JavaScript 脚本 它有一个 src 元素 这个 src 是一个 url 我想使用 javascript 更改它 一次更改为其他内容 或者动态创建它 使用 javascript jquery 动态创建脚本元素的最佳方法是什
  • 如何动态突出显示网页上的字符串?

    我想创建带有 url 的页面 例如 http xyzcorp schedules 2015Aug24 Aug28 Jim Hawkins http xyzcorp schedules 2015Aug24 Aug28 Billy Bones
  • 确定元素是在页面折叠上方还是下方

    我有一些页面有多个输入框 用户可以在其中输入文本 在单击 下一步 按钮之前 需要填写其中一些内容 我弹出验证错误供用户查看 但是如果问题不在页面上 我希望页面滚动到它 而不是他们必须搜索丢失 错误的字段 我有一个滚动到位 但我无法确定要滚动
  • 将文本大小调整为矩形 在 Canvas HTML5 中调整大小

    我是 Canvas 新手 我正在创建一个网站 以在调整矩形大小时增加文本 我尝试了很多 但没有任何效果 实际上 我希望如果我仅按其宽度调整矩形大小 向左拉伸 向右拉伸 则仅应增加文本宽度而不是字体大小 我已经完成了字体大小 但发现增加孤立文
  • 如何使用 Angular JS 单击时将 html 模板附加到 div/指令?

    我有这种情况
  • 判断一个数字是否能被 3 或 5 整除 (FizzBu​​zz)

    如何根据输出是否能被 3 或 5 整除来更改输出 如果它能被 3 整除 我想显示 rock 如果它能被 5 整除 我想显示 star 类似于 FizzBu zz 如果两者都有 他们都会看到 这是我的代码 if var n Math floo
  • 如何更改自动完成中的结果过滤器?

    我不想进行字面匹配 而是想通过正则表达式选择结果 我可以覆盖自动完成的默认行为来完成此任务还是需要替代结构 有一个内置的方法可以做到这一点 只需提供一个函数source http jqueryui com demos autocomplet
  • Google 地图 API:忽略 DirectionService 请求中的季节性限制

    我目前正在开发一张地图 其中显示两点之间的最短路线 使用不同的交通工具 我注意到 有时 例如在冬季关闭的道路不会被考虑在内 我发现我可以使用方向服务 下面的代码 忽略高速公路 收费站和渡轮 但我一生都无法弄清楚如何 是否可以忽略季节性限制
  • 获取点击的的DOM路径

    HTML div class lol a class rightArrow href a div 伪代码 rightArrow click function rightArrowParents this dom dom is the pse
  • 如何打开弹出窗口并用父窗口中的数据填充它?

    如何使用 JavaScript jQuery 使用父页面中 JS 变量的数据填充弹出窗口 在我的示例中 我有一个文件名数组 我在父窗口中最多列出五个 如果还有更多 我想提供一个链接来打开弹出窗口并列出数组中的每个帖子 因此 如果我打开一个包
  • JavaScript 数组扩展语法的时间复杂度是多少?

    我想知道在 JavaScript 中使用数组扩展的时间复杂度是多少 是线性 O n 还是常数 O 1 下面的语法示例 let lar Math max nums 传播称为 Symbol iterator 有关对象的属性 对于数组 这将迭代数

随机推荐

  • React - 复选框全选

    我有一个项目列表 每个项目都有自己的复选框 我决定尝试添加一个 全选 复选框 以便用户更轻松地一次选择所有项目 不幸的是 我发现很难以 React 的方式弄清楚逻辑 我找到了一个 JSBIN 来说明我希望渲染结果如何工作 https jsb
  • 无法让 Atom Linter 工作

    我是 Atom 的新手 文本编辑 我安装了许多软件包 包括 Linter https github com AtomLinter Linter https github com AtomLinter Linter 但它没有显示错误或突出显示
  • 在 C# 中的页面之间传递复杂对象

    我正在使用此代码在我的 Windows 8 应用程序中传递值 以下代码在单击项目时将数据传递到页面 因此它将扇区 ID 传递到测验页面 private void quizbtn Click object sender RoutedEvent
  • 如何不序列化 POJO 中初始化的值?

    如果我有一个 POJO class Night int stars 10 getter and setter for stars 我和杰克逊一起序列化它 它将序列化stars场地 但是因为该字段是在创建对象时设置的 所以不需要序列化该字段
  • 使用 AltBeacon 格式在广告时添加自定义数据

    我正在学习 Android 应用程序开发 同时构建一个与物理网络交互的应用程序 我想基于 AltBeacon 规范进行广告并以以下形式添加小负载string or bytes 我碰到信标生成器 https altbeacon github
  • 未使用的导入和对象会对性能产生影响吗?

    Java 代码中未使用的导入和未使用的对象是否会对性能产生任何影响 假设一个对象被初始化但从未使用过 会发生什么 未使用的进口产品的成本是多少 这是一个非常常见的问题 与大多数性能问题一样 最好的方法是尽可能编写最清晰 最简单的代码 因为这
  • Java 12 intellij switch 表达式不起作用

    我尝试在 IntelliJ 中使用 Java 12 但是当我尝试运行我的应用程序时出现错误 Error 57 32 java switch expressions are a preview feature and are disabled
  • Clojure 中 ~' 或 '~ 的用途是什么?

    我正在学习 Clojure 宏 代码示例有时会有以下结构 symbol或者交替地 symbol 我知道 quote and 防止对表单进行求值 并且反引号还添加了命名空间限定 并且 导致对引用的表单进行求值 我的问题是 为什么停止然后开始评
  • gradle:Android Studio继承buildtype

    我在 gradle Android Studio 中有 4 种构建类型 android buildTypes release debug kindle kindle debug 我知道 我的src文件夹可以为每种构建类型拥有一个文件夹 所以
  • Java 编译速度 vs Scala 编译速度

    我已经用 Scala 编程有一段时间了 我喜欢它 但令我恼火的一件事是编译程序所需的时间 这似乎是一件小事 但使用 Java 我可以对我的程序进行一些小更改 单击 netbeans 中的运行按钮 然后 BOOM 它正在运行 随着时间的推移
  • 迭代 std::list 时擦除

    如果我使用的是iterator in a for循环 我用erase在迭代器的当前迭代中 for 循环应该继续良好并访问其余的list元素 根据我的阅读 情况应该是这样 并且是一个主要的区别特征list vs deque or vector
  • 快速过滤元组数组

    我有一个命名元组数组 我想根据元组数组的元素值对此数组应用过滤器 typealias Section sectionName String sectionInputs Input var defaultSectionsData Sectio
  • Numpy Vector (N,1) 维度 -> (N,) 维度转换

    我有一个关于 N 维数组和 N 1 维数组之间转换的问题 例如 y 是 2 维 A np array 1 2 3 4 x np array 1 2 y np dot A x y shape Out 6 2 但下面将显示 y2 为 2 1 维
  • 根据 xml 模式验证 xml 文件

    这是关于根据 XML 模式 例如 schemafile xsd 验证 XML 文件 例如 marshalledfile xml 我们使用 jaxb 将 java 对象编组到 xml 文件中 最好的方法是什么 有人可以举一个简单的例子来说明如
  • MySQL行子查询比较问题

    我有一个小的 mysql 表 MySQL 版本 5 6 23 Field Type Null Key Default Extra id int 6 unsigned NO PRI NULL auto increment dividends
  • 如何恢复Android Fragment视图状态

    我有申请titles片段和contents屏幕上的片段 当用户单击标题片段中的项目时 将创建相应的片段并将其插入到框架中 并且所选标题在标题片段中突出显示 交易完成fragment addToBackStack 所以当用户点击BACK键 恢
  • 如何开始构建 VSTi 插件?

    我想知道构建 VSTi 插件的确切方法是什么 我不希望在短短几周内编写下一个 Massive 因为我不了解 DSP 也没有非常基本的编程技能 我确信这可能高于我目前的水平 但我认为如果我给自己设定一个我非常感兴趣的高目标 我就会成长为一名程
  • Facebook Graph API:在调用 FB.init() 之前调用 FB.login()

    我正在尝试在我的网站上使用新的 Facebook Graph API 这就是我所拥有的 页面上的某处
  • 如何在 Javascript 中映射替换字符(类似于 Perl 中的“tr”函数)?

    我一直在试图弄清楚如何将字符串中的一组字符映射到另一组类似于trPerl 中的函数 I found 这个网站显示了 JS 和 Perl 中的等效功能 http www lemoda net perl perl js perl js html
  • 使用 api.rpc. payment.queryFeeDetails 获取外部费用

    我想用api rpc payment queryFeeDetailsAPI 调用 https polkadot js org docs substrate rpc queryfeedetailsextrinsic bytes at bloc