Каирский контракт с конструктором не компилируется

У меня есть очень простой контракт в Каире, который я хочу скомпилировать, используяscarb buildно он не скомпилируется, ниже мой код:

      use serde:: Serde;
use starknet:: ContractAddress;
use array:: ArrayTrait;
use option::OptionTrait;

#[derive(Drop, Serde)]
struct Call{
    to: ContractAddress,
    selector: felt252,
    calldata:Array<felt252>,
}

#[account_contract]
mod Account{
    use starknet::get_caller_address;
    use starknet::get_tx_info;
    use starknet:: call_contract_syscall;
    use starknet:: VALIDATED;
    use array:: ArrayTrait;
    use array::SpanTrait;
    use box::BoxTrait;
    use ecdsa :: check_ecdsa_signature;
    use option::OptionTrait;
    use super:: Call;
    use starknet::ContractAddress;
    use zeroable:: Zeroable;
    use serde::ArraySerde;

    struct Storage {
        fam_code: felt252,
    }
   

    #[constructor]
    fn constructor(_fam_key:felt252){
        fam_code::write(_fam_key);
        return();
    }
}

поскольку у нас не так много онлайн-ресурсов по Каиру, я надеюсь получить помощь здесь.

1 ответ

Мне нужно больше информации, чтобы воспроизвести ошибку. Можете ли вы поделиться следующим, пожалуйста?

  • Какую версию Scarb вы используете?
  • Что говорит ошибка

Изменить. Проблема, с которой вы столкнулись, заключается в том, что Scarb 0.4.0 использует новую версию компилятора Cairo, в которой изменен способ объявления и управления хранилищем. Пожалуйста, ознакомьтесь с этим сообщением для получения дополнительной информации. Удачного взлома!

Другие вопросы по тегам