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 / transferFromSíCompruebaCompruebaNo 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