最近,由于使用Unable to create Enum via index 128, in Alive, Tombstone,在使用api.query.contracts.contractInfoOf时,我无法查询现有合同。我在命令行和polkadot应用程序资源管理器中都得到了这个错误。
以下是我所采取的步骤:
salt部署合同deployedAddresscontractInfoOfconst contractInfo = await api.query.contracts.contractInfoOf(deployedAddress);我试过将ink!降级为3.0-rc5、3.0-rc4、3.0-rc3,然后编译,但这似乎没有什么区别。每当我的合同构建时,它都会在顶部引用rc6:
{"metadataVersion":"0.1.0","source":{"hash":"0x...","language":"ink! 3.0.0-rc6","compiler":"rustc 1.58.0-nightly",这意味着它忽略了我的.toml,并使用rc6编译契约。
我将我的cargo-contract版本更改为0.14,但这会导致polkadot在阅读协议abi时失败。
我尝试使用基板.契约.节点,使用来自主服务器的最新提交,也使用v0.1.0发行版。这两种情况下都有相同的错误。
> rustup info
stable-x86_64-unknown-linux-gnu (default)
rustc 1.56.1 (59eed8a2a 2021-11-01)在关于polkadot js的问题中有更多的细节。
任何关于如何获得工作设置的提示都是非常有用的!
发布于 2021-11-03 19:59:41
这里的问题是substrate-contracts-node使用元数据的旧版本。
在恢复元数据合并并在本地构建(cargo build)之前,我能够检出repo。
因此,请签出8d91b8e,让节点使用polkadot-js包的7.7.1和6.6.1版本。
> git checkout 8d91b8e578065a7c06433cbd41ac059bf478a0bd
> cargo build
> ./target/debug/substrate-contracts-node --dev --tmp --version
substrate-contracts-node 0.1.0-8d91b8e-x86_64-linux-gnuhttps://stackoverflow.com/questions/69826769
复制相似问题