Skip to content

Overflow permite que você escreva um pequeno script que simula interações com a Flow

License

Notifications You must be signed in to change notification settings

diegofornalha/overflow

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Visão Geral

Overflow é uma DSL (Linguagem Específica de Domínio) escrita em Go, projetada para ser utilizada com Cadence 1.0, facilitando testes e execução de scripts ou transações na blockchain Flow. Suas principais aplicações incluem:

  • Propósitos de demonstração: Ideal para demonstrar funcionalidades do Flow.
  • Testes de integração: Permite testar combinações de scripts e transações.
  • Execução de tarefas em lote: Automatiza operações repetitivas.

Uso e Configuração Básica

  1. Criação do Projeto

    • Primeiro, crie um diretório para o projeto e instale o módulo overflow:
    sh
    Copiar código
    mkdir test-overflow && cd test-overflow
    flow init
    go mod init example.com/test-overflow
    go get github.com/bjartek/overflow/v2
    
    
    • Crie um arquivo de tarefas:
    sh
    Copiar código
    touch tasks/main.go
    
    
  2. Importação e Uso

    • No arquivo criado, importe overflow:
    go
    Copiar código
    package main
    
    import (
        . "github.com/bjartek/overflow/v2"
    )
    
    func main() {
        o := Overflow()
    
        // Executando uma transação
        o.Tx("nome_da_transacao", SignProposeAndPayAs("bob"), Arg("nome", "bob")).Print()
    
        // Executando um script
        o.Script("nome_do_script", Arg("nome", "bob")).Print()
    }
    • Execute o script:
    sh
    Copiar código
    go run ./tasks/main.go
    
    

Principais Recursos

  • Builder Pattern: Usa um padrão de construção em Go para todas as interações, facilitando a reutilização de código.
  • Multi-Sign: Suporta várias combinações de autorização, onde diferentes contas podem ser proposer, payer e authorizer.
  • Execução em Memória: Permite executar o emulador em memória, implantar contratos, criar stakeholders, e rodar interações sem necessidade de persistência.
  • Suporte a Eventos: A DSL inclui a capacidade de buscar eventos e armazenar progresso opcionalmente, integrando-se a indexadores ou serviços de notificação.
  • Interações em Módulo NPM: Todas as interações podem ser transformadas em um módulo NPM, para que possam ser utilizadas no frontend.
  • Testes com Cobertura de Código: Suporta uma instância compartilhada em testes para coletar cobertura de código e fazer rollback de operações, permitindo realizar testes com segurança.

Exemplos e Casos de Uso

  • Consulte o exemplo standalone em flow-nft-overflow, que inclui uma demonstração interativa e testes unitários de um contrato NFT.
  • Exemplos comuns de uso incluem execução de scripts, transações e tarefas de integração que combinam scripts e transações.

"Gotchas" e Observações

  • Ordem Alfabética: Contas criadas no emulador local são sempre geradas em ordem alfabética. Por isso, recomenda-se nomear as contas, como admin, bob, charlie, etc.
  • Estrutura de Arquivos: Em testes de integração, certifique-se de que os arquivos flow.json, contratos e scripts estejam nas pastas corretas para garantir que o resolvedor de caminhos funcione apropriadamente.

Recursos Adicionais

  • Verifique outros projetos que usam o Overflow aqui.
  • Perguntas podem ser direcionadas ao @bjartek no Discord do Overflow: Link para o Discord.

Variáveis de Ambiente

Algumas variáveis que podem ser utilizadas:

  • OVERFLOW_ENV: Define o ambiente para rodar (emulator|embedded|testnet|mainnet|testing).
  • OVERFLOW_CONTINUE: Impede o Overflow de implantar contratos e contas no emulador.
  • OVERFLOW_LOGGING: Define o nível de logging de 0 a 4.

Essa versão oferece uma descrição detalhada, didática e organizada para você inserir no Notion, facilitando o entendimento e uso do Overflow, principalmente para desenvolvedores que desejam testar ou demonstrar funcionalidades na blockchain Flow.

About

Overflow permite que você escreva um pequeno script que simula interações com a Flow

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 75.2%
  • Cadence 24.6%
  • Makefile 0.2%