Metadata-Version: 2.1
Name: sympla-tools
Version: 0.3.1
Summary: SDK para integração com a API da Sympla
Author: Maicol K. Oliveira
Author-email: tbh.maicol.oliveira@sympla.com.br
Requires-Python: ==3.10.14
Classifier: Programming Language :: Python :: 3
Requires-Dist: ecdsa (>=0.19.0,<0.20.0)
Requires-Dist: eth-account (>=0.13.4,<0.14.0)
Requires-Dist: pyinstaller (>=6.11.1,<7.0.0)
Requires-Dist: pysha3 (>=1.0.2,<2.0.0)
Requires-Dist: pytest-benchmark (>=5.1.0,<6.0.0)
Requires-Dist: web3 (>=7.5.0,<8.0.0)
Description-Content-Type: text/markdown

# SymplaTools SDK

SymplaTools é um SDK para integração com a plataforma Sympla, atualmente incluindo funcionalidades como:

* Validação de QR codes assinados com ECDSA.

---

# Pypi

Este projeto está em um repositório público, e tem como objetivo facilitar o uso das funcionalidades da Sympla.

https://pypi.org/project/sympla_tools/

###  Também disponível no package registry do gitlab

https://gitlab.com/symplax/sympla-tools/-/packages

---

## Instalação

Para instalar as dependências, use [Poetry](https://python-poetry.org/):

```bash
### Pypy
poetry add sympla-tools


### Package registry Gitlab
poetry add git+ssh://git@gitlab.com:gitlab.com/symplax/sympla-tools/-/packages#0.1.5
```

## Configuração

Para validar a assinatura, é necessário definir o endereço Ethereum conhecido (`KNOWN_ETHEREUM_ADDRESS`) como uma variável de ambiente. Este será o endereço usado para verificar a autenticidade da assinatura do QR code.

Configure o endereço Ethereum conhecido com o seguinte comando:

```bash
export KNOWN_ETHEREUM_ADDRESS="0xdB074b3c323A7Ad418EBBe66baD231f43f680563"
```

## Uso

Após configurar o endereço Ethereum, você pode usar o SDK para validar a assinatura de um QR code Ethereum.


### Você vai precisar ler o Qrcode

Para realizar a validação, será necessário construir o json contendo os campo em ordem:

* address
* ItemTypeId

Além do json, é necessário resgatar a assinatura (signature)

### Exemplo de uso via linha de comando

Para validar uma assinatura via linha de comando, execute:

```bash
python -m sympla_tools.tickets.signature.ethereum_token validate '{"address": "0x3e3857e99BE213aA914942C6482c33161Df51E16", "ItemTypeId": "37884525610813"}' '0x1e6912e765694db61b5291c94469ba339f1b7da3e921d5c3acd8ced279565053120e3e866c0158fe0eeddefdd113303adc1e56e79a9f1503386251786d4881f31b'
```

Substitua `"ASSINATURA"` pela assinatura que deseja validar. O SDK verificará se a assinatura corresponde ao endereço Ethereum configurado.

### Gerando um binário 

Este projeto consegue rodar através de um binário, para isto você precisa gerar o build do pacote

```bash
python sympla_tools/scripts/build_binary.py

### depois copie o binario gerado para a pasta bin
/usr/local/bin
```

### Funções Principais

- **validate**: Função principal para validar uma assinatura Ethereum. A função compara a assinatura com o endereço configurado e retorna se a assinatura é válida.


