问题标签 [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.
blockchain - 我应该什么时候构建一个 Substrate 运行时模块而不是一个 Substrate 智能合约?
开发 Substrate 运行时模块和开发 Substrate 智能合约(例如使用 ink! 语言)有什么区别?
有哪些应用程序最好以一种或另一种形式编写的示例?
blockchain - 在 Substrate 和 ink 中使用“u8”的问题
我正在尝试向u8
我的 Substrate 运行时模块添加一个简单的:
但是,我得到一个编译器错误,它没有实现 Parity CodecEncode
或Decode
:
当我尝试u8
使用 ink 将 a 存储在 Substrate 智能合约中时,会出现类似的问题!:
错误:
为什么会这样,我能做些什么来解决这个问题?
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 外部事件
substrate - 如何将呼叫数据编码到合同中
通读墨迹源代码(此处),我的理解是合约调用是与函数的任何参数连接的选择器。
在 Substrate 运行时模块测试中,我使用了 CallData 构建器,它按照描述进行操作
然后通过contracts frame模块进行调用
对一个合约函数签名
这将返回一个成功的执行 ( Ok(())
) 但不调用合约函数。
值得一提的是,测试正在使用type AccountId = u64
,并且 ink 使用 a struct AccountId([u8;32])
,但我尝试将其作为 32 个字节传递,但并没有什么不同。
我已经验证了周围的测试代码应该可以通过调用一个用 wat here编写的 wasm 程序来工作,该程序能够在不传递任何参数的情况下调用导出的“调用”。
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"}}
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 文件:
这是节点终端信息:
任何人都知道问题是什么?
substrate - 如何在 Substrate 的智能合约平台 ink 上保存字符串值?
- 我最初尝试了这个问题中教导的实现。(如何在 Substrate 上保存字符串值)
- 但是,发生与“ink_abi”相关的错误,无法定义结构。
- 查看最新的“ink!example”(),我尝试复制它,因为结构已定义,但以下命令不起作用。(https://github.com/paritytech/ink/blob/master/examples/runtime-storage/lib.rs)
- 如何使用“基板墨水!”将字符串数据保存到区块链?
- 如果可用,我想查看示例源。
substrate - 在基材墨水上!如何获取调试信息?
- 我想获取调试信息。
- 我实现了这段代码,但我无法得到。
- 请告诉我如何获得调试信息。
substrate - 基材墨水!编译错误“函数指针不能出现在常量函数中”
- 我尝试“https://substrate.dev/substrate-contracts-workshop/#/”
- 我按照教程创建了一个 Rust 环境。
- 我执行了“货物+夜间测试”
- 我得到以下错误。
请告诉我有什么问题???
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