Skip to content

Commit

Permalink
Add SafePal Wallet (#184)
Browse files Browse the repository at this point in the history
  • Loading branch information
safepalteam001 authored Aug 15, 2024
1 parent cac9842 commit 2ecf95c
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 0 deletions.
4 changes: 4 additions & 0 deletions examples/shuttle-port-nextjs/src/app/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import {
OWalletCosmosExtensionProvider,
CosmiframeExtensionProvider,
CitadelOneExtensionProvider,
SafePalExtensionProvider,
} from "@delphi-labs/shuttle-react";
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";

Expand Down Expand Up @@ -103,6 +104,9 @@ const extensionProviders = [
new CitadelOneExtensionProvider({
networks: [OSMOSIS_MAINNET],
}),
new SafePalExtensionProvider({
networks: [TERRA_MAINNET, INJECTIVE_MAINNET],
}),
];

const mobileProviders = [
Expand Down
4 changes: 4 additions & 0 deletions examples/shuttle-port-vue/src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import {
StationExtensionProvider,
XDEFICosmosExtensionProvider,
CitadelOneExtensionProvider,
SafePalExtensionProvider,
createShuttle,
} from "@delphi-labs/shuttle-vue";

Expand Down Expand Up @@ -59,6 +60,9 @@ const shuttle = createShuttle({
new CitadelOneExtensionProvider({
networks: [OSMOSIS_MAINNET],
}),
new SafePalExtensionProvider({
networks: [TERRA_MAINNET, INJECTIVE_MAINNET],
}),
],
mobileProviders: [
new KeplrMobileProvider({
Expand Down
34 changes: 34 additions & 0 deletions packages/core/src/providers/extensions/SafePalExtensionProvider.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import type { Network } from "../../internals/network";
import Keplr, { type KeplrWindow } from "../../internals/adapters/extensions/Keplr";
import WalletExtensionProvider from "./WalletExtensionProvider";

declare global {
interface Window {
safepal?: {
keplr?: KeplrWindow;
};
}
}

export const SafePalExtensionProvider = class SafePalExtensionProvider extends WalletExtensionProvider {
constructor({ networks }: { networks: Network[] }) {
super({
id: "safepal",
name: "SafePal",
networks,
extensionProviderAdapter: new Keplr({
name: "SafePal",
extensionResolver() {
return window.safepal?.keplr;
},
setupOnUpdateEventListener(callback) {
window.addEventListener("safepal_keystorechange", () => {
callback?.();
});
},
}),
});
}
};

export default SafePalExtensionProvider;
1 change: 1 addition & 0 deletions packages/core/src/providers/extensions/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,4 @@ export * from "./BitgetExtensionProvider";
export * from "./OWalletCosmosExtensionProvider";
export * from "./CosmiframeExtensionProvider";
export * from "./CitadelOneExtensionProvider";
export * from "./SafePalExtensionProvider";

0 comments on commit 2ecf95c

Please sign in to comment.