Constructor

Los constructores son un tipo especial de función que se ejecuta solo una vez al implementar un contrato y se pueden usar para inicializar el estado del contrato. Su contrato no debe tener más de un constructor, y esa función constructora debe estar anotada con el atributo #[constructor]. Además, una buena práctica consiste en denominar a esa función constructor.

A continuación se muestra un ejemplo sencillo que demuestra cómo inicializar el estado de un contrato durante la implementación definiendo la lógica dentro de un constructor.

#[starknet::contract]
mod ExampleConstructor {
    use starknet::ContractAddress;

    #[storage]
    struct Storage {
        names: LegacyMap::<ContractAddress, felt252>,
    }

    // The constructor is decorated with a `#[constructor]` attribute.
    // It is not inside an `impl` block.
    #[constructor]
    fn constructor(ref self: ContractState, name: felt252, address: ContractAddress) {
        self.names.write(address, name);
    }
}

Visita el contrato en Voyager o juega con él en Remix.

Last change: 2023-10-12, commit: 90aa7c0