🏟️Tipos de Ambiente de Cadeia
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!
O ink! define um traço Environment
e também uma implementação padrão desse traço - DefaultEnvironment
.
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))]
pub enum DefaultEnvironment {}
impl Environment for DefaultEnvironment {
const MAX_EVENT_TOPICS: usize = 4;
type AccountId = ink_primitives::AccountId;
type Balance = u128;
type Hash = ink_primitives::Hash;
type Timestamp = u64;
type BlockNumber = u32;
type ChainExtension = 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):
#[ink::contract(env = MyCustomTypes)]
Last updated
Was this helpful?