Cada bono político puede desplegarse como contrato Soroban VelarBond: metadata, dueño y estado viven on-chain. La app Velar orquesta mint Classic Asset + deploy Soroban + escrow Trustless Work.
| Modo | Cuándo |
|---|---|
| Classic Asset only | Dev sin SOROBAN_VELAR_BOND_WASM_HASH |
| Classic + Soroban | Prod / demo con WASM desplegado |
| Crate | Ruta | Descripción |
|---|---|---|
| VelarBond | contracts/velar-bond/ |
Bono individual: owner, status, metadata, TSE admin |
| Función | Autorización | Efecto |
|---|---|---|
initialize(tse, args) |
TSE | Crea bono con metadata completa |
transfer(to) |
Dueño | Transfiere propiedad |
freeze() / unfreeze() |
TSE | Congela / descongela |
set_in_escrow() / set_active() |
Dueño | Marketplace / retiro |
set_document_hash(hash) |
TSE | Ancla SHA-256 del PDF |
details() |
Lectura pública | Metadata completa |
current_owner() |
Lectura pública | Address dueño |
status() |
Lectura pública | Active · InEscrow · Frozen · Sold · Cancelled |
tse() |
Lectura pública | Address TSE |
issued · transfer · frozen · unfrozen · inescrow · active
| Código | Significado |
|---|---|
| 1 | Ya inicializado |
| 2 | No inicializado |
| 3 | No es el dueño |
| 4 | No es el TSE |
| 5 | Estado inválido |
| 6 | Bono congelado |
| 7 | Mismo dueño |
# Toolchain (ver rust-toolchain.toml)
rustup target add wasm32-unknown-unknown
# Tests unitarios Soroban
cargo test
# Build WASM release
cargo build --release --target wasm32-unknown-unknown
# Artefacto:
# target/wasm32-unknown-unknown/release/velar_bond.wasmGuía paso a paso: docs/DEPLOY.md
Resumen:
# Instalar Stellar CLI
cargo install --locked stellar-cli --features opt
# Desplegar e invocar initialize (ver DEPLOY.md)
stellar contract deploy --wasm target/wasm32-unknown-unknown/release/velar_bond.wasm --network testnetEn Velar API, configurar:
SOROBAN_VELAR_BOND_WASM_HASH=<hash del WASM desplegado>
SOROBAN_TSE_ADDRESS=G...docs/SECURITY.md— modelo de amenazas y auditoría pendiente- No usar en mainnet sin revisión externa del contrato y multisig TSE.
Estados Soroban ↔ Postgres: velar-spec · states