Plugin del Adaptador de Wallet para Constructores de Wallets de Extensión de Navegador
Un plugin del adaptador de wallet permite que las dapps usen tu wallet. Con el estándar de Wallet AIP-62, las dapps pueden simplemente actualizar su versión de aptos-wallet-adapter
para conectarse a plugins de Wallet recién agregados.
Implementar un plugin de wallet para una wallet de extensión de navegador tiene dos pasos principales:
- Implementar un plugin del adaptador de wallet para tu extensión de navegador.
- Actualizar el paquete
aptos-wallet-adapter
para que las dapps sepan sobre tu wallet.
1. Implementar el Plugin del Adaptador de Wallet.
Sección titulada «1. Implementar el Plugin del Adaptador de Wallet.»Puedes usar el ejemplo del repositorio wallet-standard
para implementar un plugin del adaptador de wallet compatible con AIP-62 que las dapps pueden reconocer automáticamente.
-
Copia el en tu base de código de extensión de navegador.
-
Sigue las instrucciones en ese ejemplo para hacer que use tu wallet para ejecutar las funciones AIP-62.
-
Agrega una llamada a registerWallet con tu implementación del plugin para que se llame al cargar la página.
Esto es lo que notificará a las dapps que tu wallet está disponible.
// Pon esta función con tu implementación "MyWallet" para que se llame al cargar la página.(function () {if (typeof window === "undefined") return;const myWallet = new MyWallet();registerWallet(myWallet);})(); -
Prueba tus cambios yendo a la e intentando conectar tu wallet.
- Después de que tu extensión llame a
registerWallet
, deberías poder hacer clic en “Conectar una Wallet” y ver tu wallet como una opción.- Luego puedes usar las características de la dapp de demostración para verificar que tus otras características de wallet funcionen como se espera.
- Esto simula cómo una dapp real interactuará con tu extensión de navegador.
- También puedes probar tus implementaciones actualizando
standardWallet.ts
deMyWallet
a la implementación de tu wallet, luego ejecutando la dapp de demostración del Adaptador de Wallet localmente.- Ver el README.md de la dapp de demostración del Adaptador de Wallet para instrucciones sobre cómo ejecutar la demostración localmente.
- En la demostración,
registerWallet
se llama desdepage.tsx
. Esto es menos realista, ya que en la práctica tu extensión de navegador debería estar llamando aregisterWallet
.
- Después de que tu extensión llame a
-
Publica la nueva versión de tu extensión de navegador.
2. Actualizar wallet-adapter-core
para que sepa sobre tu extensión.
Sección titulada «2. Actualizar wallet-adapter-core para que sepa sobre tu extensión.»Para que los usuarios de dapps que no están usando tu wallet obtengan la opción de crear una cuenta con tu wallet, necesitas actualizar wallet-adapter-core
con el enlace de descarga de tu extensión de navegador.
-
Haz fork del monorepo. ()
-
Abre tu fork en un editor local como VSCode.
-
Crea una nueva rama para tus cambios.
Ventana de terminal git checkout -b your-wallet -
Navega a .
-
Agrega los detalles de tu wallet a siguiendo la interfaz AptosStandardSupportedWallet.
export interface AptosStandardSupportedWallet<Name extends string = string> {// El nombre de tu wallet convertido a WalletName (Ej. "Petra" como WalletName<"Petra">)name: WalletName<Name>;// El enlace a tu extensión de chrome o sitio web principal donde los nuevos usuarios pueden crear una cuenta con tu wallet.url: string;// Un ícono para tu wallet. Puede ser uno de 4 tipos de datos. Asegúrate de seguir el formato de abajo exactamente (incluyendo la "," después de base64).icon: `data:image/${"svg+xml" | "webp" | "png" | "gif"};base64,${string}`;// Copia esto exactamentereadyState: WalletReadyState.NotDetected;// Copia esto exactamenteisAIP62Standard: true;}Por ejemplo:
{name: "Petra" as WalletName<"Petra">,url: "https://chromewebstore.google.com/detail/petra-aptos-wallet/ejjladinnckdgjemekebdpeokbikhfci?hl=en",icon: "data:image/png;base64,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",readyState: WalletReadyState.NotDetected,isAIP62Standard: true,} -
En type.ts, actualiza el tipo AvailableWallets para incluir el nombre de tu wallet.
export type AvailableWallets = "Nightly" | "Petra" | "T wallet" | "Your Wallet's Name"; -
Actualiza el en el nivel superior de aptos-wallet-adapter para incluir tu wallet en la lista de wallets compatibles con AIP-62.
-
Confirma y envía tus cambios a tu fork.
-
Sigue para abrir una solicitud de extracción para el repo.
Recursos
Sección titulada «Recursos»- Dapp de demostración de Wallet Adapter
- Sitio web en vivo
- Código fuente
- Ver
standardWallet.ts
para un ejemplo de implementación de un plugin del adaptador de wallet compatible con AIP-62.
wallet-standard
código fuente.wallet-adapter-core
código fuente.- Estándar AIP-62.