Skip to content

Add Template / Edit Template

Add template abre o wizard de criação de template dentro do projeto. Este wizard ajuda a montar um cenário de subscrição para o utilizador por cima de triggers já existentes: descrever o template, definir inputs, criar topics e ligar cada topic a triggers através de rules.

A edição de um template existente usa o mesmo processo, mas o formulário abre com valores já guardados.

Antes de criar um template, normalmente vale a pena preparar os triggers: criá-los manualmente através de Add trigger / Edit trigger ou gerá-los através de Import triggers. Um template não cria triggers sozinho. Usa triggers que já existem no projeto.

Step 1. Metadata

Neste passo são definidos os principais dados do template. Eles aparecem ao utilizador na aba Templates do projeto e ajudam a perceber para que cenário o template foi criado.

Template title

Título visível do template. É melhor mantê-lo curto e significativo: por exemplo Token transfers, Governance events, Validator activity.

Template name

Slug interno do template dentro do projeto. É formado a partir do title, mas pode ser editado manualmente.

Name deve ser estável: é usado em URL e nas ligações de topics/rules. Depois de publicar um template, é melhor não alterar name sem necessidade.

Description

Descrição do template. Aqui vale a pena explicar que alerts o utilizador poderá receber através deste template e quando deve escolhê-lo.

Step 2. Inputs

Neste passo descrevem-se os inputs que o utilizador vai preencher ao criar uma subscription através do template.

Inputs nem sempre são necessários. Se um topic não exige parâmetros do utilizador e todas as rules usam condições fixas, o template pode não ter inputs.

Se um input for usado numa rule através de Use inputs, o utilizador terá de o preencher no subscription wizard.

Input

Cada input descreve um valor disponível para os topics/rules deste template.

Name

Nome técnico do input. É usado nas rules como inputs.<name>, por isso deve ser curto, estável e claro.

Type

Tipo de valor que o utilizador vai introduzir.

Tipos disponíveis:

  • string - string normal;
  • number - número;
  • boolean - true/false;
  • null - valor vazio;
  • object - objeto com campos aninhados;
  • array - array de valores do mesmo tipo;
  • tuple - array com um conjunto fixo de elementos;
  • address - blockchain address;
  • balance - token/native balance;
  • currency - valor monetário.

Para a maioria dos template inputs, é melhor escolher tipos simples. Quanto mais simples for o input, mais claro será para o utilizador criar uma subscription.

As restantes propriedades do input são configuradas através do mesmo schema editor usado em Add trigger / Edit trigger. Aí são descritas metadata dos campos, configurações de address/balance e estruturas aninhadas para object, array e tuple.

Step 3. Topics

Neste passo é apresentada a lista de topics dentro do template e as ações para os gerir.

Um topic é uma opção de subscrição dentro de um template. O utilizador pode escolher um ou vários topics ao criar uma subscription.

Add topic

Abre o wizard de criação de topic.

Se o template ainda não tiver sido guardado, a interface primeiro guarda as alterações do template e depois abre a criação de topic.

Topics table

A tabela mostra os topics do template atual.

Colunas:

  • Topic - title e name do topic;
  • Description - descrição do topic;
  • Rules - primeiro trigger/rule ligado e número de rules adicionais;
  • Actions - ações edit/delete.

Edit topic

Abre o topic wizard para o topic selecionado.

Delete topic

Elimina o topic e as rules ligadas a ele do template. Antes da eliminação, é apresentada uma confirmação.

Topic wizard

Topic wizard abre a partir do Step 3 do template wizard. É usado tanto para criar como para editar um topic.

Topic Step 1. Metadata

Neste passo define-se como o topic aparecerá ao utilizador no subscription wizard.

Title

Título visível do topic.

Por exemplo: Transfers, Mints, Burns, Large deposits.

Name

Nome interno do topic. É formado a partir do title, mas pode ser editado.

Topic name é normalizado pela interface: espaços e separadores são convertidos em pontos, por exemplo Balances transfer torna-se balances.transfer. Este não é o formato global de todos os slugs do serviço, mas o formato atual especificamente para topic keys, porque topics muitas vezes parecem namespaces de eventos. O requisito principal é que name seja curto, claro e estável.

Description

Descrição opcional do topic. Explica o que muda se o utilizador ativar este topic.

Selected by default

Define se o topic será selecionado automaticamente ao abrir o subscription wizard.

Isto é útil para o topic principal ou mais popular do template. Se demasiados topics forem selecionados por defeito, a subscription pode ficar ruidosa, por isso é melhor escolher apenas topics realmente básicos.

Topic Step 2. Rules

Neste passo o topic é ligado a um ou vários triggers.

Uma rule diz que trigger usar e que condições devem ser cumpridas para o evento entrar neste topic.

Rule

Uma rule liga o topic a um trigger.

Se o topic deve reagir a vários triggers, é possível adicionar várias rules através de Add rule.

Trigger category

Filtro da lista de triggers por categoria. Ajuda a encontrar mais depressa o trigger necessário num projeto grande.

Trigger

Trigger concreto que a rule vai usar.

Depois de escolher o trigger, o wizard carrega os campos disponíveis para filters a partir da trigger schema.

Filters

Condições opcionais da rule.

Se filters não forem definidos, a rule usa todos os eventos do trigger selecionado. Se filters forem definidos, o evento entra no topic apenas quando as condições forem cumpridas.

Add a filter

Adiciona uma condição de filtragem.

Num filter escolhe-se um campo de trigger output ou filters schema, um operador e um valor.

Select filter

Campo do trigger pelo qual o evento deve ser filtrado.

Para campos object, é possível entrar na estrutura e escolher um campo aninhado.

Operator

Operador de comparação.

Opções disponíveis:

  • equals;
  • not equal;
  • greater than;
  • greater or equal;
  • less than;
  • less or equal.

Para condições numéricas, a UI mostra switches compactos de operadores.

Value

Valor com o qual o campo selecionado é comparado.

Value pode ser definido de duas formas:

  • literal value - valor fixo diretamente na rule;
  • template input - valor dos inputs que o utilizador preenche ao criar a subscription.

Use inputs

Muda o filter de valor fixo para valor vindo de template inputs.

Por exemplo, um template pode ter input wallet. Então uma rule pode filtrar o campo from ou to por {{ inputs.wallet }}. O utilizador introduz o endereço uma vez no subscription wizard, e a topic rule usa-o como condição.

AND / OR logic

Vários filters dentro de um grupo funcionam como AND: o evento deve passar todas as condições do grupo.

Se as condições forem separadas com OR, o wizard cria vários grupos: o evento deve passar pelo menos um dos grupos.

Remove all filters

Elimina todos os filters da rule. Depois disso, a rule volta a aceitar todos os eventos do trigger selecionado.

Add rule

Adiciona mais uma rule ao topic.

Isto é necessário se um topic deve combinar vários triggers. Por exemplo, o topic Token activity pode incluir rules separadas para transfer, mint e burn events.

Save

Save template guarda metadata, inputs, topics e rules.

Save topic guarda o topic e devolve o utilizador ao template flow.

Depois de guardar, o template aparece na aba Templates do projeto. Se o template contiver pelo menos um topic e não tiver issues, os utilizadores poderão abrir Subscribe e criar uma subscription através deste template.