Módulos

Contracts

Utilitários de baixo nível para interagir com contratos EVM na Arc.

arc_devkit.contracts.loader fornece funções utilitárias para carregar ABIs, fazer chamadas view, enviar transações e decodificar eventos de qualquer contrato EVM na Arc.

Importação

from arc_devkit.contracts.loader import (
    load_abi,
    call_view,
    send_tx,
    decode_events,
)

Carregando um ABI

Suporta tanto o formato {"abi": [...]} quanto o array raw [...]:

abi = load_abi("MyContract.abi.json")

Chamadas read-only (eth_call)

# Sem argumentos
result = call_view(abi, "0xContractAddress", "totalSupply")

# Com argumentos
result = call_view(abi, "0xContractAddress", "balanceOf", "0xWallet")

Enviando transações

tx_hash = send_tx(
    abi,
    "0xContractAddress",
    "transfer",
    "0xRecipient",        # argumento 1 da função
    1_000_000,            # argumento 2 da função (1 USDC)
    private_key="0xKey",
)

Decodificando eventos

# Após enviar uma tx e obter o receipt
events = decode_events(receipt, abi, "Transfer", "0xContractAddress")

for evt in events:
    print(evt["args"])
    # {'from': '0x...', 'to': '0x...', 'value': 1000000}

Referência da API

load_abi(path)

Retorna: list — array de entradas ABI.

call_view(abi, address, function_name, *args)

ParâmetroTipoDescrição
abilistABI do contrato
addressstrEndereço do contrato
function_namestrNome da função view
*argsAnyArgumentos posicionais

Retorna: valor de retorno da função.

send_tx(abi, address, function_name, *args, private_key)

Retorna: str — hash da transação.

decode_events(receipt, abi, event_name, address)

Retorna: list[dict] — eventos decodificados com args.

Para operações mais complexas

Para deploy de contratos, use o ContractDeployer. Para monitoramento contínuo de eventos, use o EventListener.