Saltar al contenido principal

05 · Interfaces y eventos de contratos

Referencia de métodos y eventos para los procesos anteriores.

5.1 Encontrar el contrato correcto

  1. Lea el proxy Token de la tabla pública;
  2. obtenga identityRegistry();
  3. obtenga compliance();
  4. consulte IdFactory.getIdentity(wallet);
  5. compare con la configuración y no use implementaciones como entrada.

5.2 Permisos

LlamanteEscriturasDescripción
CualquieraviewLectura sin transacción
Titulartransfer, approve, transferFromSujeto a todos los controles
Gestor de identidaddeployIdentityForWallet, addClaimMantiene su ONCHAINID
IR Agentregistrar/actualizar/eliminarRegistro por activo
Token Agentmint, burn, pausa, congelación, forzada, recuperaciónGestión del activo
OwnerRegistros, módulos, gobernanzaFuera de integración común

Identifique el rol; ocultar botones no sustituye permisos en cadena.

5.3 Token

Lectura

MétodoUso
name() / symbol()Nombre y símbolo
decimals()Conversión
totalSupply()Oferta
balanceOf(wallet)Saldo
identityRegistry()Registro
compliance()Cumplimiento
paused()Pausa
isFrozen(wallet)Congelación total
getFrozenTokens(wallet)Congelación parcial
availableBalance = balanceOf(wallet) - getFrozenTokens(wallet)

Titular

transfer, approve, transferFrom requieren firma, autorización, saldo, elegibilidad y reglas según corresponda.

Token Agent

MétodoResultado
mintTransfer(0x0, to, amount)
burnTransfer(wallet, 0x0, amount)
pause / unpausePaused / Unpaused
setAddressFrozenAddressFrozen
freezePartialTokens / unfreezePartialTokensTokensFrozen / TokensUnfrozen
forcedTransferTransfer
recoveryAddressRecoverySuccess y Transfer

Los importes son enteros mínimos; divida lotes por gas.

OperaciónPausa bloqueaReceptorcanTransferCongelado
transfer / transferFromCompruebaCompruebaNo transferible
mintNoCompruebaCompruebaN/A
burnNoNoNoAgent puede descongelar
forcedTransferNoCompruebaNoAgent puede descongelar
recoveryAddressNoFlujo de recuperaciónNoPuede migrar

La pausa limita transferencias comunes, no operaciones Agent.

5.4 IdentityRegistry

Obtenga la dirección mediante Token.

LecturaSignificado
containsExiste registro
isVerifiedCumple requisitos
identityONCHAINID
investorCountryPaís
topicsRegistryTopics
issuersRegistryClaimIssuers

contains no sustituye isVerified.

Método AgentEvento
registerIdentityIdentityRegistered
updateIdentityIdentityUpdated
updateCountryCountryUpdated
deleteIdentityIdentityRemoved

5.5 ONCHAINID Gateway, IdFactory e Identity

ContratoMétodoLlamante
GatewaydeployIdentityForWalletInversor
IdFactorygetIdentityCualquiera

Tras Deployed y WalletLinked, vuelva a consultar el mapeo.

addClaim(
uint256 topic,
uint256 scheme,
address issuer,
bytes signature,
bytes data,
string uri
) returns (bytes32 claimId)

Lecturas: getClaim, getClaimIdsByTopic, isClaimValid. Eventos: ClaimAdded, ClaimChanged, ClaimRemoved. ClaimSigner firma fuera de cadena; ClaimIssuer es el contrato institucional.

5.6 ModularCompliance

canTransfer(address from, address to, uint256 amount) view returns (bool)

Lecturas: canTransfer, getModules, getTokenBound, isModuleBound. true solo refleja el instante de consulta. transferred, created, destroyed son callbacks del Token y no se llaman desde aplicaciones comunes.

5.7 Índice de eventos

EventoFuenteUso
Transfer, ApprovalTokenMovimientos y autorizaciones
Paused, UnpausedTokenEstado
AddressFrozen, TokensFrozen, TokensUnfrozenTokenCongelación
RecoverySuccessTokenRecuperación
Eventos Identity*IdentityRegistryRegistro
Eventos Claim*ONCHAINIDClaims
ModuleAdded, ModuleRemovedModularComplianceReglas

Los eventos detectan cambios; relea estado tras reorganización o recuperación.

5.8 ABI mínimo

const tokenAbi = [
'function name() view returns (string)',
'function symbol() view returns (string)',
'function decimals() view returns (uint8)',
'function totalSupply() view returns (uint256)',
'function balanceOf(address) view returns (uint256)',
'function identityRegistry() view returns (address)',
'function compliance() view returns (address)',
'function paused() view returns (bool)',
'function isFrozen(address) view returns (bool)',
'function getFrozenTokens(address) view returns (uint256)',
'function transfer(address,uint256) returns (bool)',
'event Transfer(address indexed from,address indexed to,uint256 value)',
];

const identityRegistryAbi = [
'function contains(address) view returns (bool)',
'function isVerified(address) view returns (bool)',
'function identity(address) view returns (address)',
'function investorCountry(address) view returns (uint16)',
'event IdentityRegistered(address indexed investorAddress,address indexed identity)',
];

const complianceAbi = [
'function canTransfer(address,address,uint256) view returns (bool)',
'function getModules() view returns (address[])',
];

Use el ABI oficial del despliegue; no adivine argumentos.

5.9 Orden recomendado

Validar Chain ID
→ decimals
→ paused / isFrozen / getFrozenTokens
→ identityRegistry
→ contains / isVerified
→ compliance
→ canTransfer
→ estimateGas o simulación
→ enviar y esperar recibo
→ actualizar desde eventos y estado

Continuar: 06 · Configuración de entornos y aceptación