问题标签 [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 - 做墨水!智能合约还原
我正在用墨水调整!智能合约并通过https://polkadot.js.org/部署了一些测试合约。然而,尽管在智能合约中设置了条件语句,对它们的调用仍然通过而不会恢复。我在错误处理方面做错了吗?
示例代码:
substrate - 如何使用最新的 polkadot-js 和基板合约节点查询合约信息?
最近由于Unable to create Enum via index 128, in Alive, Tombstone
使用api.query.contracts.contractInfoOf
. 我在命令行和 polkadot-js 应用程序资源管理器中都收到此错误。
这些是我采取的步骤:
- 部署一个合约
salt
- 取回合同
deployedAddress
- 采用
contractInfoOf
const contractInfo = await api.query.contracts.contractInfoOf(deployedAddress);
我试过降级ink!
到3.0-rc5
, 3.0-rc4
,3.0-rc3
然后编译,但似乎没有任何区别。每当我的合同建立时,它都会rc6
在顶部引用:
这表明它忽略了我.toml
并使用rc6
来编译合同。
我将我的cargo-contract
版本更改为,0.14
但这会导致 polkadot-js 无法读取合约 abi。
我已经尝试使用来自 master 的最新提交以及使用release的substrate-contracts-node 。v0.1.0
两种情况下的错误相同。
有关 polkadot-js的问题中有更多详细信息。
有关如何获得工作设置的任何指示都会非常有帮助!
unit-testing - 如何在墨水中设置调用者!合约单元测试功能?
我正在为函数编写一个测试do_check
函数。在这里,我想设置一个调用者,但不知道该怎么做。
substrate - 如何在 rust-ink 中从另一个合同中调用现有合同?
我有两个非常基本rust-ink
的 dapp 合约:
应用程序 1
Dapp 1 将 dapp2 指定为toml
:
dapp2 = { version = "3.0.0-rc7", path ="../dapp2", default-features = false, features = ["ink-as-dependency"] }
应用程序 2
当我运行这个构建时,dapp2
编译但dapp1
失败了
甚至我的 IDE 在单击时也能找到dapp2
,那么这种导入样式有什么问题?
我已经看到了其他示例(1、2、3),其中合同只是导入到模块中,但这似乎对我不起作用。如果我这样做,我会得到:
墨水设置为master
分支。Rust nightly 是最新的。版本是2021。示例代码在github上
substrate - polkadot 画布测试网合约部署错误“contracts.contractTrapped”
我正在尝试在 rococo canvas 上部署基本的 erc20 示例合约,但部署时出现“contracts.ContractTrapped”错误?任何提示将不胜感激,谢谢!
substrate - 基材墨水!条件编译
所以我的合同中有以下外在功能:
此函数的主要目标是提前合约时间,以便我们可以测试一些与时间相关的值,但将其留在生产环境中并不是一个好主意。
因此,我正在尝试使用 rust 条件编译魔术并在使用 --release 标志构建合同时将其排除。
看来#[cfg(debug_assertions)] 与#[ink(message)] 有冲突,并且在编译期间找不到我的函数。
然后我尝试过的另一件事是在函数本身内部使用宏:
现在可以编译合约,但无论我是否使用 --release 标志编译合约,宏似乎总是返回 false,我认为这与我们针对 wasm 的事实有关。
有谁知道我怎样才能完成我想要做的事情?
rust - Rust 墨水,跨合约调用返回 ConctractTrapped 错误
正如标题所示,我正在尝试使用非常简单的字符串返回函数在已部署的合约上调用一个函数。
部署的contract1函数:
以下代码片段是 contract2 函数,用于从 contract1 返回值:
rust - Rust Ink - 使用调试缓冲区完成执行:在 `Err` 值上的“调用 `Result::unwrap()` 时出现恐慌:CalleeTrapped”
我试图对已部署的合约进行交叉合约调用,我在调试模式下运行本地 subtrate 节点,并且在尝试执行交叉合约时收到以下消息。
这是错误:
下面是DeployedContract1
交叉调用函数代码:
下面是 DeployedContract2 (erc20/lib.rs)
函数源代码: