0

したがって、契約には次の外部関数があります。

    #[ink(message)]
    pub fn advance_time_seconds(&mut self, seconds: u64)

この関数の主な目的は、時間関連の値をテストできるようにコントラクトの時間を進めることですが、本番環境に残すことはお勧めできません。

だから私はさびた条件付きコンパイルの魔法をやろうとしていて、コントラクトが --release フラグでビルドされているときにそれを除外しようとしています。

#[cfg(debug_assertions)] が #[ink(message)] と競合しているようで、コンパイル中に関数が見つかりません。

私が試したもう1つのことは、関数自体の中でマクロを使用することです:

    if cfg!(debug_assertions) {
      return "not allowed in prod"
    }

コントラクトをコンパイルできるようになりましたが、--release フラグを使用してコントラクトをコンパイルしたかどうかに関係なく、wasm をターゲットにしているという事実に関連していると思われるマクロは常に false を返すようです。

私がやろうとしていることをどのように達成できるか知っている人はいますか?

4

0 に答える 0