فهرست منبع

Add signMessage method to Fractal adapter (#661)

* Bumps fractal wallet adapter implementation dependency

* Updates fractal impl dep

* Adds `signMessage` support for Fracatal wallet adapter

* Updates lock file

* update lockfile

* add changeset

Co-authored-by: Kan Adachi <kadachi1023@gmail.com>
Jordan Sexton 3 سال پیش
والد
کامیت
ac78da7
4فایلهای تغییر یافته به همراه33 افزوده شده و 11 حذف شده
  1. 5 0
      .changeset/lemon-parents-shop.md
  2. 2 2
      packages/wallets/fractal/package.json
  3. 19 2
      packages/wallets/fractal/src/adapter.ts
  4. 7 7
      pnpm-lock.yaml

+ 5 - 0
.changeset/lemon-parents-shop.md

@@ -0,0 +1,5 @@
+---
+'@solana/wallet-adapter-fractal': patch
+---
+
+Add signMessage method to Fractal adapter

+ 2 - 2
packages/wallets/fractal/package.json

@@ -33,11 +33,11 @@
         "@solana/web3.js": "^1.58.0"
     },
     "dependencies": {
-        "@fractalwagmi/solana-wallet-adapter": "^0.0.8",
+        "@fractalwagmi/solana-wallet-adapter": "0.0.9",
         "@solana/wallet-adapter-base": "workspace:^"
     },
     "devDependencies": {
         "@solana/web3.js": "^1.58.0",
         "shx": "^0.3.4"
     }
-}
+}

+ 19 - 2
packages/wallets/fractal/src/adapter.ts

@@ -1,7 +1,7 @@
 import type { FractalWalletAdapterImpl as FractalWallet } from '@fractalwagmi/solana-wallet-adapter';
 import type { WalletName } from '@solana/wallet-adapter-base';
 import {
-    BaseSignerWalletAdapter,
+    BaseMessageSignerWalletAdapter,
     WalletConfigError,
     WalletConnectionError,
     WalletDisconnectionError,
@@ -11,6 +11,7 @@ import {
     WalletPublicKeyError,
     WalletReadyState,
     WalletSignTransactionError,
+    WalletSignMessageError,
 } from '@solana/wallet-adapter-base';
 import type { Transaction } from '@solana/web3.js';
 import { PublicKey } from '@solana/web3.js';
@@ -19,7 +20,7 @@ export interface FractalWalletAdapterConfig {}
 
 export const FractalWalletName = 'Fractal' as WalletName<'Fractal'>;
 
-export class FractalWalletAdapter extends BaseSignerWalletAdapter {
+export class FractalWalletAdapter extends BaseMessageSignerWalletAdapter {
     name = FractalWalletName;
     url = 'https://developers.fractal.is/wallet-adapters/solana';
     icon =
@@ -150,4 +151,20 @@ export class FractalWalletAdapter extends BaseSignerWalletAdapter {
             throw error;
         }
     }
+
+    async signMessage(message: Uint8Array): Promise<Uint8Array> {
+        try {
+            const wallet = this._wallet;
+            if (!wallet) throw new WalletNotConnectedError();
+
+            try {
+                return wallet.signMessage(message);
+            } catch (error: any) {
+                throw new WalletSignMessageError(error?.message, error);
+            }
+        } catch (error: any) {
+            this.emit('error', error);
+            throw error;
+        }
+    }
 }

+ 7 - 7
pnpm-lock.yaml

@@ -530,12 +530,12 @@ importers:
 
   packages/wallets/fractal:
     specifiers:
-      '@fractalwagmi/solana-wallet-adapter': ^0.0.8
+      '@fractalwagmi/solana-wallet-adapter': 0.0.9
       '@solana/wallet-adapter-base': workspace:^
       '@solana/web3.js': ^1.58.0
       shx: ^0.3.4
     dependencies:
-      '@fractalwagmi/solana-wallet-adapter': 0.0.8_wsbx7ck6yxwqneralbc42gn53m
+      '@fractalwagmi/solana-wallet-adapter': 0.0.9_wsbx7ck6yxwqneralbc42gn53m
       '@solana/wallet-adapter-base': link:../../core/base
     devDependencies:
       '@solana/web3.js': 1.66.2
@@ -2975,8 +2975,8 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
-  /@fractalwagmi/popup-connection/1.0.13_biqbaboplfbrettd7655fr4n2y:
-    resolution: {integrity: sha512-xt3xNJcSORXIVRjgdSt040VAvWzX7PVlddr4/75mICvDkubHXcnB99zHgbHaoaejMX3c495wYwHGsNktTkHIgQ==}
+  /@fractalwagmi/popup-connection/1.0.18_biqbaboplfbrettd7655fr4n2y:
+    resolution: {integrity: sha512-QcHe8bfeaQAKnFEvnxLqIAD7RFL7Z7bzn0BnOyDJxuj55NFBRVFGmq69MCqn2o6kmmfmusfYSQHNLWiv5L8H5A==}
     peerDependencies:
       react: ^16 || ^17 || ^18
       react-dom: ^16 || ^17 || ^18
@@ -2985,10 +2985,10 @@ packages:
       react-dom: 18.2.0_react@18.2.0
     dev: false
 
-  /@fractalwagmi/solana-wallet-adapter/0.0.8_wsbx7ck6yxwqneralbc42gn53m:
-    resolution: {integrity: sha512-0DX/8UfmLiK2QzAn9jlbahnol19ylCF9bRoORV2YmrEwJzX+zd540ovnA6luBcfxd3/qlY9DuFWM5b97BQfaNw==}
+  /@fractalwagmi/solana-wallet-adapter/0.0.9_wsbx7ck6yxwqneralbc42gn53m:
+    resolution: {integrity: sha512-8ppPZCRUOzu1LTc/3dFlzo/1uLHzzOew0HeZbWnoTT9uSAGo8zyfFM2qsOhzz3+mALTImmfAIgHXVkAJK8aLxQ==}
     dependencies:
-      '@fractalwagmi/popup-connection': 1.0.13_biqbaboplfbrettd7655fr4n2y
+      '@fractalwagmi/popup-connection': 1.0.18_biqbaboplfbrettd7655fr4n2y
       '@solana/wallet-adapter-base': 0.9.18_@solana+web3.js@1.66.2
       bs58: 5.0.0
     transitivePeerDependencies: