Каирский контракт с конструктором не компилируется
У меня есть очень простой контракт в Каире, который я хочу скомпилировать, используя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, в которой изменен способ объявления и управления хранилищем. Пожалуйста, ознакомьтесь с этим сообщением для получения дополнительной информации. Удачного взлома!