CUIDADO: Se você escrever um contrato para uma cadeia que se desvia dos tipos padrão do Lunes, você deve garantir de configurar o Ambiente Environment dessa cadeia para o seu contrato!
Esses são os tipos que o ink! utiliza, se nenhuma etapa explícita for tomada:
/// The fundamental types of the default configuration.#[derive(Debug,Clone,PartialEq,Eq)]#[cfg_attr(feature ="std", derive(TypeInfo))]pubenumDefaultEnvironment{}implEnvironmentforDefaultEnvironment{constMAX_EVENT_TOPICS:usize=4;typeAccountId=ink_primitives::AccountId;typeBalance=u128;typeHash=ink_primitives::Hash;typeTimestamp=u64;typeBlockNumber=u32;typeChainExtension=NoChainExtension;}
O contexto aqui é que você pode usar o ink! na blockchain Lunes, que inclui o módulo pallet-contracts. Na rede Lunes você pode decidir quais tipos deseja usar, como o número de bloco da cadeia ou os identificadores de conta.
Por exemplo, as cadeias que pretendem ser compatíveis com a Ethereum geralmente usam o mesmo tipo de Ethereum para o AccountId. A cadeia na rede Lunes permanece com os tipos padrão, e o ink! também usa esses tipos por padrão.
No entanto, é possível configurar um ambiente diferente no macro do contrato. (documentação aqui):