Usa tu cadena
Una guía enfocada para interactuar con tu appchain
Esta guía cubre cuatro aspectos clave de la interacción con tu appchain:
- Envío de transacciones: Cómo enviar transacciones en tu appchain.
- Estimación de gas: Cómo estimar y gestionar el gas para tus transacciones.
- Manejo de errores: Cómo manejar errores en tu appchain.
- Procedimientos de recuperación: Cómo recuperarse de problemas y usar mecanismos de recuperación específicos de appchain.
Envío de transacciones
En una appchain, una vez que tu wallet está configurada y conectada, el envío de una transacción funciona de manera similar a otras cadenas EVM, pero puede incluir tipos de transacciones o metadatos específicos de la appchain.
// Example: Connect to your appchain's RPC
const provider = new ethers.JsonRpcProvider('https://your-appchain-rpc-url');
const chainId = 12345; // Your appchain's unique chain ID
// Make sure your wallet/signer is set up for the appchain
const signer = provider.getSigner();
// Submit a transaction (could be ETH, tokens, or custom logic)
const tx = await signer.sendTransaction({
to: recipientAddress,
value: ethers.utils.parseEther('0.1'),
chainId // ensure correct chain
});
const receipt = await tx.wait();
console.log('Confirmed on appchain:', receipt.transactionHash);Estimación de gas
Las appchains pueden usar diferentes modelos de precios de gas o tener optimizaciones en comparación con las cadenas públicas. Algunas pueden tener tarifas base más bajas, precios de gas fijos o incluso transacciones subsidiadas.
// Estimate gas using your appchain's provider
const gasEstimate = await provider.estimateGas({
to: contractAddress,
data: contract.interface.encodeFunctionData('method', [args])
});
// Appchains may recommend a different buffer or have a fixed gas limit
const gasLimit = gasEstimate.mul(120).div(100);Manejo de errores
Las appchains pueden introducir códigos de error personalizados, razones de reversión o comportamientos que no se encuentran en las cadenas públicas. Puedes encontrar errores relacionados con la lógica específica de la appchain, la gobernanza o las transiciones de estado.
try {
const tx = await signer.sendTransaction(txData);
const receipt = await tx.wait();
if (receipt.status === 0) throw new Error('Transaction failed');
} catch (error) {
// Appchain-specific error handling
if (error.code === 'APPCHAIN_CUSTOM_ERROR') {
// Handle custom error
} else if (error.code === 'INSUFFICIENT_FUNDS') {
// Not enough balance
} else {
throw error;
}
}Simulación de transacciones: La simulación de transacciones solo verifica si una transacción tendría éxito basándose en el estado actual de la cadena. Sin embargo, incluso si la simulación tiene éxito, la transacción aún puede fallar más tarde debido a la lógica personalizada en el contrato de secuenciación, que las herramientas de simulación estándar no pueden detectar.
Procedimientos de recuperación
Las appchains pueden ofrecer mecanismos de recuperación únicos, como gobernanza en cadena, claves de administrador o contratos de recuperación personalizados. Estos pueden diferir significativamente de los procesos de recuperación de cadenas públicas.
- Transacciones atascadas: Las appchains pueden permitir la intervención de gobernanza o administrador para desbloquear transacciones atascadas.
- Recuperación de cuentas: Algunas appchains admiten recuperación social, multifirma o abstracción de cuenta personalizada.
- Procedimientos de emergencia: Las appchains pueden tener interruptores de circuito, contratos pausables u otras características de seguridad específicas de la aplicación.
// Example: Using an appchain's emergency pause feature
await contract.pause(); // Only available if your appchain implements this