簡體   English   中英

如何使用最新的 polkadot-js 和基板合約節點查詢合約信息?

[英]How can I query contract info with the latest polkadot-js and substrate contracts node?

由於使用api.query.contracts.contractInfoOfUnable to create Enum via index 128, in Alive, Tombstone我最近無法查詢我現有的合同。 我在命令行和 polkadot-js 應用程序資源管理器中都收到此錯誤。

這些是我采取的步驟:

  1. 使用salt部署合約
  2. 檢索合約deployedAddress
  3. 使用contractInfoOf
  4. const contractInfo = await api.query.contracts.contractInfoOf(deployedAddress);

我試過降級ink! 3.0-rc53.0-rc43.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。

我已經嘗試使用來自 master 的最新提交並使用v0.1.0版本使用基板合同節點 在這兩種情況下相同的錯誤。

> rustup info

stable-x86_64-unknown-linux-gnu (default)
rustc 1.56.1 (59eed8a2a 2021-11-01)

polkadot-js 上問題中有更多詳細信息。

關於如何獲得工作設置的任何指示都會非常有幫助!

這里的問題是使用 舊版本元數據的substrate-contracts-node

我能夠在元數據合並被恢復並在本地構建( cargo build )之前檢查存儲庫。

因此,請檢查8d91b8e以使其成為與 polkadot-js 包的7.7.16.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-gnu

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM