Módulos

Payment Agent

Assina e transmite pagamentos nativos e USDC ERC-20 na Arc blockchain.

O PaymentAgent gerencia pagamentos na Arc blockchain — suporta transferências nativas (ARC) e USDC ERC-20, com estimativa de gas automática, dry run, batch e retry.

Importação

from arc_devkit.agents.payment_agent import PaymentAgent
import os

Pagamento nativo (ARC)

agent = PaymentAgent(private_key=os.environ["ARC_PRIVATE_KEY"])

result = agent.execute(
    to="0xRecipientAddress",
    amount_usdc=1.5,
    enviar=True,
    token="native",
)
print(result["tx_hash"])

Pagamento USDC ERC-20

result = agent.execute(
    to="0xRecipientAddress",
    amount_usdc=10.0,
    enviar=True,
    token="usdc",
)

Dry run (sem broadcast)

Simula a transação e retorna os dados assinados sem transmitir:

result = agent.execute(
    to="0xAddr",
    amount_usdc=5.0,
    enviar=False,
)
print(result["raw_transaction"])

Batch de pagamentos

Execução sequencial com nonce incrementado automaticamente:

payments = [
    {"to": "0xAddr1", "amount_usdc": 1.0},
    {"to": "0xAddr2", "amount_usdc": 2.0},
    {"to": "0xAddr3", "amount_usdc": 0.5},
]
results = agent.execute_batch(payments, enviar=True)

Callbacks de sucesso e falha

agent.execute(
    to="0xAddr",
    amount_usdc=5.0,
    enviar=True,
    on_success=lambda r: print(f"Confirmed: {r['transactionHash'].hex()}"),
    on_failure=lambda e: print(f"Failed: {e}"),
)

Referência da API

PaymentAgent(private_key=None)

ParâmetroTipoDescrição
private_keystr | NoneChave privada. Fallback para ARC_PRIVATE_KEY. None = read-only

execute(to, amount_usdc, enviar, token, on_success, on_failure)

ParâmetroTipoPadrãoDescrição
tostrEndereço destinatário
amount_usdcfloatValor a transferir
enviarboolTrue para transmitir, False para dry run
tokenstr"usdc""usdc" ou "native"
on_successcallable | NoneNoneCallback com receipt
on_failurecallable | NoneNoneCallback com exceção

execute_batch(payments, enviar)

ParâmetroTipoDescrição
paymentslist[dict]Lista de {to, amount_usdc}
enviarboolTrue para transmitir

Features automáticas

FeatureComportamento
Gas estimationeth_estimateGas com fallback de 21.000
Simulationeth_call antes do broadcast para detectar reverts
Receipt waitAguarda confirmação (timeout 120s, configurável)
Retry3 tentativas com backoff exponencial (tenacity)
Multi-RPCFailover automático entre múltiplas URLs de RPC

Decimais USDC vs nativo

O Arc DevKit usa Decimal internamente para todos os valores monetários. Nunca use float para representar saldos USDC (6 decimais) ou nativos (18 decimais) em produção.