👷#[ink(constructor)]

Aplicável a um método.

Indica um método (ou vários métodos) para a struct de armazenamento ink! como construtor, tornando-o disponível para a API para instanciar o contrato.

Deve haver pelo menos um método #[ink(constructor)] definido.

Métodos marcados com #[ink(constructor)] são especiais, pois são despacháveis ​​ao instanciar o contrato. Um contrato pode definir vários construtores desse tipo, o que permite aos usuários do contrato instanciar o contrato de várias maneiras diferentes.

Exemplo

#[ink::contract]
mod erc20 {
    #[ink(storage)]
    pub struct Erc20 { ... }

    impl Erc20 {
        #[ink(constructor)]
        pub fn new(initial_supply: Balance) -> Self { .. }

        #[ink(constructor)]
        pub fn total_supply(&self) -> Balance { .. }

        // etc.
    }
}

Last updated

Was this helpful?