Sequence Wallets se crean usando el contrato Factory; al llamarlo, crea contratos hijos MinimalUpgradeableProxies, que en esencia son el código “boot” de todos los Sequence wallets.
API de Factory
deploy
Crea un MinimalUpgradeableProxy hijo usando CREATE2; el proxy apunta inicialmente al _mainModule proporcionado.
No se ejecuta ningún código de inicialización.
Parámetros:
Valores de retorno:
Entrada no saneada
El contrato Factory no verifica si el _mainModule proporcionado es una implementación válida de Sequence wallet, o si _salt es una configuración válida de Sequence.Usar parámetros inválidos resultará en un contrato proxy que puede no ser utilizable y podría resultar en la pérdida de fondos.
Direcciones contrafactuales
Los Sequence wallets son contrafactuales por diseño, lo que significa que la dirección del wallet puede conocerse antes de que el wallet sea desplegado; cualquier combinación de valores de mainModule y salt dará como resultado la misma dirección de wallet.
Esta propiedad, junto con el uso de NanoUniversalDeployer o UniversalDeployer, es la razón por la que los Sequence wallets pueden obtener la misma dirección en múltiples cadenas.
Creación de wallet sin gas
Los Sequence wallets son 100% contrafactuales,
lo que significa que los fondos pueden transferirse de forma segura a la dirección del wallet sin
la necesidad de llamar a la función deploy. El despliegue del wallet solo es
requerido antes de enviar la primera transacción desde el wallet.