问题标签 [rust-ink]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2603 浏览

blockchain - 我应该什么时候构建一个 Substrate 运行时模块而不是一个 Substrate 智能合约?

开发 Substrate 运行时模块和开发 Substrate 智能合约(例如使用 ink! 语言)有什么区别?

有哪些应用程序最好以一种或另一种形式编写的示例?

0 投票
1 回答
501 浏览

blockchain - 在 Substrate 和 ink 中使用“u8”的问题

我正在尝试向u8我的 Substrate 运行时模块添加一个简单的:

但是,我得到一个编译器错误,它没有实现 Parity CodecEncodeDecode

当我尝试u8使用 ink 将 a 存储在 Substrate 智能合约中时,会出现类似的问题!:

错误:

为什么会这样,我能做些什么来解决这个问题?

0 投票
2 回答
494 浏览

substrate - 为什么在调用智能合约函数时显示错误消息“system.ExtrinsicFailed”?

我通过以下页面学习了如何部署合同: https ://substrate.dev/substrate-contracts-workshop/#/0/deploying-your-contract https://substrate.dev/docs/en/contracts/部署合同

但他们都在“调用合同”这一步失败了

这是我创建的链源代码(参考自https://substrate.dev/docs/en/tutorials/creating-your-first-substrate-chain): https ://github.com/coolcode/sux-contract -链

错误消息:system.ExtrinsicFailed 外部事件

0 投票
0 回答
289 浏览

substrate - 如何将呼叫数据编码到合同中

通读墨迹源代码(此处),我的理解是合约调用是与函数的任何参数连接的选择器。

在 Substrate 运行时模块测试中,我使用了 CallData 构建器,它按照描述进行操作

然后通过contracts frame模块进行调用

对一个合约函数签名


这将返回一个成功的执行 ( Ok(())) 但不调用合约函数。

值得一提的是,测试正在使用type AccountId = u64,并且 ink 使用 a struct AccountId([u8;32]),但我尝试将其作为 32 个字节传递,但并没有什么不同。

我已经验证了周围的测试代码应该可以通过调用一个用 wat here编写的 wasm 程序来工作,该程序能够在不传递任何参数的情况下调用导出的“调用”。

模块合约的完整存储库也在 github 上。

0 投票
1 回答
276 浏览

substrate - 无法部署合约(Substrate)系统。ExtrinsicFailed 其他

我从 Ink 存储库 (erc20) 下载了智能合约并构建它,并构建元数据。之后我下载了它,当我尝试部署时,出现这样的错误:更改图像

来自浏览器控制台的日志

sendExtrinsic:: {"args":["10.000M Unit","500,000","0x3e1d2b076ae57e296098e162294676e3ff41baa7bc0b78c0b8a826393775169d","0x5ebd88d600000000000000000000000000000000"],"callIndex":"0x1103","method":"instantiate","section":"contracts "} main.a12dd3e8.js:351 makeExtrinsicCall: extrinsic :: 0xad0284ff8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a480142424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242760008001103130000e8890423c78a82841e003e1d2b076ae57e296098e162294676e3ff41baa7bc0b78c0b8a826393775169d505ebd88d600000000000000000000000000000000 main.a12dd3e8.js:351 makeExtrinsicCall: updated status :: {"events":[],"status":{"就绪”:null}} main.a12dd3e8.js:351 makeExtrinsicCall:更新状态 :: {“事件”:[{“阶段”:{“应用外部”:2},“事件”:{“索引”:“0x0c06” ,"data":[1375382416168]},"topics":[]},{"phase":{"ApplyExtrinsic":2},"event":{"index":"0x0001","data":[{ "其他":null},{"weight":500000,"class":"Normal","paysFee":"Yes"}]},"topics":[]}],"status":{"InBlock" :"0x2deed44e09a1552c2b1594515d01e64a5f3753085b34a7dbd889ed5036c873e6"}}"data":[1375382416168]},"topics":[]},{"phase":{"ApplyExtrinsic":2},"event":{"index":"0x0001","data":[{"其他":null},{"weight":500000,"class":"Normal","paysFee":"Yes"}]},"topics":[]}],"status":{"InBlock": “0x2deed44e09a1552c2b1594515d01e64a5f3753085b34a7dbd889ed5036c873e6”}}"data":[1375382416168]},"topics":[]},{"phase":{"ApplyExtrinsic":2},"event":{"index":"0x0001","data":[{"其他":null},{"weight":500000,"class":"Normal","paysFee":"Yes"}]},"topics":[]}],"status":{"InBlock": “0x2deed44e09a1552c2b1594515d01e64a5f3753085b34a7dbd889ed5036c873e6”}}0x2deed44e09a1552c2b1594515d01e64a5f3753085b34a7dbd889ed5036c873e6"}}0x2deed44e09a1552c2b1594515d01e64a5f3753085b34a7dbd889ed5036c873e6"}}

0 投票
0 回答
299 浏览

substrate - 在 ink 中调用 HashMap/BTreeMap insert() 时外部失败!通过 Polkadot JS api 签订合同

从 Polkadot JS api 调用合约调用时出现问题。

如果该函数在合约中包含 HashMap insert() 或 BTreeMap insert(),当通过 api 调用它时,我会得到:

事件不会被正确触发。但如果我使用 HashMap/BTreeMap get() 或 contains_key(),我可以正确获取事件数据。

这是我在 lib.rs 中的合约代码:

这是 api 调用的 js 文件:

这是节点终端信息:

任何人都知道问题是什么?

0 投票
2 回答
481 浏览

substrate - 如何在 Substrate 的智能合约平台 ink 上保存字符串值?

  1. 我最初尝试了这个问题中教导的实现。(如何在 Substrate 上保存字符串值
  2. 但是,发生与“ink_abi”相关的错误,无法定义结构。
  3. 查看最新的“ink!example”(),我尝试复制它,因为结构已定义,但以下命令不起作用。(https://github.com/paritytech/ink/blob/master/examples/runtime-storage/lib.rs
  1. 如何使用“基板墨水!”将字符串数据保存到区块链?
  2. 如果可用,我想查看示例源。
0 投票
2 回答
180 浏览

substrate - 在基材墨水上!如何获取调试信息?

  1. 我想获取调试信息。
  2. 我实现了这段代码,但我无法得到。
  3. 请告诉我如何获得调试信息。
0 投票
2 回答
236 浏览

substrate - 基材墨水!编译错误“函数指针不能出现在常量函数中”

  1. 我尝试“https://substrate.dev/substrate-contracts-workshop/#/”
  2. 我按照教程创建了一个 Rust 环境。
  3. 我执行了“货物+夜间测试”
  4. 我得到以下错误。

请告诉我有什么问题???

0 投票
1 回答
206 浏览

rust - Ink :: 添加调试跟踪打印的正确方法是什么?ink_env::debug_println?

Ink :: 添加调试跟踪打印的正确方法是什么?ink_env::debug_println ?

正在尝试来自https://substrate.dev/substrate-contracts-workshop/#/2/transferring-tokens的 ERC20 示例

使用跟踪打印,执行了测试,但看不到跟踪输出。

注意::完整的代码片段位于路径...

https://gist.github.com/shamb0/aee23b7f4789b0cd57cbc1c8f3fa2538