👺

ASTAR Network(local)上に Ink! を使って RUST製 smart contract をデプロイ - その2

2022/02/07に公開

前置き

以下の記事。
https://zenn.dev/polonity/articles/ddffad4663a04e

前回は、 ink! のサンプルプロジェクト flipper を astar-collator にデプロイしようとしたが
失敗してしまった。

前回は心が折れたので、数日おいて再チャレンジしてみる。

実技

できるまでやめない心でエラー原因を調べる。
すると、以下の issue を見つける。
https://github.com/paritytech/ink/issues/1108

無心で flipper に以下のとおり追記をする。


    impl Flipper {
        /// Constructor that initializes the `bool` value to the given `init_value`.
-        #[ink(constructor)]
+        #[ink(constructor, payable)]
        pub fn new(init_value: bool) -> Self {
            Self { value: init_value }
        }

        /// Constructor that initializes the `bool` value to `false`.
        ///
        /// Constructors can delegate to other constructors.
-        #[ink(constructor)]
+        #[ink(constructor, payable)]
        pub fn default() -> Self {
            Self::new(Default::default())
        }

        /// A message that can be called on instantiated contracts.
        /// This one flips the value of the stored `bool` from `true`
        /// to `false` and vice versa.
        #[ink(message)]
        pub fn flip(&mut self) {
            self.value = !self.value;
        }

        /// Simply returns the current value of our `bool`.
        #[ink(message)]

これでプロジェクトをリビルドし、再度wasm をデプロイしてみる。

Alice ちゃんが払える範囲の適当な額で試す。

「Sign and Submit」を押下

キターーーーーーーー!!

だが、 substrate-contracts-nodeでは読めていた値が読めていない。

うん、なんか、エラー出てる。
(恐らく astar が wasm に対応していないため?)

次回へ続く

Discussion