如何使用最新的 polkadot-js 和 substrate 合约节点查询合约信息?
How can I query contract info with the latest polkadot-js and substrate contracts node?
由于使用 api.query.contracts.contractInfoOf
时 Unable to create Enum via index 128, in Alive, Tombstone
,我最近无法查询我现有的合同。我在命令行和 polkadot-js 应用程序浏览器中都收到此错误。
这些是我采取的步骤:
- 使用
salt
部署合约
- 检索合同
deployedAddress
- 使用
contractInfoOf
const 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-js 无法读取合约 abi。
我已经尝试使用 substrate-contracts-node 使用来自 master 的最新提交并使用 v0.1.0
版本。两种情况都出现相同的错误。
> rustup info
stable-x86_64-unknown-linux-gnu (default)
rustc 1.56.1 (59eed8a2a 2021-11-01)
issue on polkadot-js 中有更多详细信息。
任何关于如何获得工作设置的指示都会非常有帮助!
这里的问题是 substrate-contracts-node
使用 old version of the metadata。
在还原元数据合并并在本地构建 (cargo build
) 之前,我能够检查回购协议。
因此请检查 8d91b8e 以使节点能够使用版本 7.7.1
和 6.6.1
的 polkadot-js 包。
> git checkout 8d91b8e578065a7c06433cbd41ac059bf478a0bd
> cargo build
> ./target/debug/substrate-contracts-node --dev --tmp --version
substrate-contracts-node 0.1.0-8d91b8e-x86_64-linux-gnu
由于使用 api.query.contracts.contractInfoOf
时 Unable to create Enum via index 128, in Alive, Tombstone
,我最近无法查询我现有的合同。我在命令行和 polkadot-js 应用程序浏览器中都收到此错误。
这些是我采取的步骤:
- 使用
salt
部署合约
- 检索合同
deployedAddress
- 使用
contractInfoOf
const 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-js 无法读取合约 abi。
我已经尝试使用 substrate-contracts-node 使用来自 master 的最新提交并使用 v0.1.0
版本。两种情况都出现相同的错误。
> rustup info
stable-x86_64-unknown-linux-gnu (default)
rustc 1.56.1 (59eed8a2a 2021-11-01)
issue on polkadot-js 中有更多详细信息。
任何关于如何获得工作设置的指示都会非常有帮助!
这里的问题是 substrate-contracts-node
使用 old version of the metadata。
在还原元数据合并并在本地构建 (cargo build
) 之前,我能够检查回购协议。
因此请检查 8d91b8e 以使节点能够使用版本 7.7.1
和 6.6.1
的 polkadot-js 包。
> git checkout 8d91b8e578065a7c06433cbd41ac059bf478a0bd
> cargo build
> ./target/debug/substrate-contracts-node --dev --tmp --version
substrate-contracts-node 0.1.0-8d91b8e-x86_64-linux-gnu