Skip to content

Commit c7dad95

Browse files
authored
Merge pull request #235 from argentlabs/feat/xverse-connector
feat: add xverse connector
2 parents fcfa0ff + 8a18e3a commit c7dad95

File tree

7 files changed

+47
-27
lines changed

7 files changed

+47
-27
lines changed

package.json

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,11 @@
6767
"import": "./dist/fordefi.js",
6868
"require": "./dist/fordefi.cjs"
6969
},
70+
"./xverse": {
71+
"types": "./dist/xverse.d.ts",
72+
"import": "./dist/xverse.js",
73+
"require": "./dist/xverse.cjs"
74+
},
7075
"./braavosMobile": {
7176
"types": "./dist/braavosMobile.d.ts",
7277
"import": "./dist/braavosMobile.js",
@@ -97,8 +102,8 @@
97102
"dependencies": {
98103
"@argent/x-ui": "^1.109.0",
99104
"@cartridge/controller": "^0.10.0",
100-
"@starknet-io/get-starknet": "^4.0.7",
101-
"@starknet-io/get-starknet-core": "^4.0.7",
105+
"@starknet-io/get-starknet": "^4.0.8",
106+
"@starknet-io/get-starknet-core": "^4.0.8",
102107
"@starknet-io/types-js": "0.8.4",
103108
"@trpc/client": "^10.38.1",
104109
"@trpc/server": "^10.38.1",

pnpm-lock.yaml

Lines changed: 11 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/connectors/injected/index.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,11 @@ export const injectedWalletIcons = {
6767
light:
6868
"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzEzNDk0XzY2MjU0KSI+CjxwYXRoIGQ9Ik0xMC44NzY5IDE1LjYzNzhIMS41VjE4LjM5OUMxLjUgMTkuODAxMyAyLjYzNDQ3IDIwLjkzOCA0LjAzMzkyIDIwLjkzOEg4LjI0OTkyTDEwLjg3NjkgMTUuNjM3OFoiIGZpbGw9IiM3OTk0RkYiLz4KPHBhdGggZD0iTTEuNSA5Ljc3NTUxSDE5LjA1MTZMMTcuMDEzOSAxMy44NzExSDEuNVY5Ljc3NTUxWiIgZmlsbD0iIzQ4NkRGRiIvPgo8cGF0aCBkPSJNNy42NTk5NiAzSDEuNTI0NDFWOC4wMDcwNEgyMi40NjEyVjNIMTYuMzI1NlY2LjczOTQ0SDE1LjA2MDZWM0g4LjkyNTAyVjYuNzM5NDRINy42NTk5NlYzWiIgZmlsbD0iIzVDRDFGQSIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzEzNDk0XzY2MjU0Ij4KPHJlY3Qgd2lkdGg9IjIxIiBoZWlnaHQ9IjE4IiBmaWxsPSJ3aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMS41IDMpIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==",
6969
},
70+
xverse: {
71+
dark: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAwIiBoZWlnaHQ9IjQwMCIgdmlld0JveD0iMCAwIDQwMCA0MDAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iNDAwIiBmaWxsPSIjMTgxODE4Ii8+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xNTc4MV82ODc5KSI+CjxwYXRoIGQ9Ik0yOTIuNzYyIDI4OS43NThWMjU1LjgwOUMyOTIuNzYyIDI1NC40NjMgMjkyLjIyNiAyNTMuMTc5IDI5MS4yNzIgMjUyLjIyNUwxNDYuODIyIDEwNy43NzRDMTQ1Ljg2OSAxMDYuODIxIDE0NC41ODUgMTA2LjI4NiAxNDMuMjM4IDEwNi4yODZIMTA5LjI5QzEwNy42MTQgMTA2LjI4NiAxMDYuMjUgMTA3LjY1IDEwNi4yNSAxMDkuMzI2VjE0MC44NjdDMTA2LjI1IDE0Mi4yMTMgMTA2Ljc4NSAxNDMuNDk3IDEwNy43MzkgMTQ0LjQ1MUwxNTkuNTg5IDE5Ni4zMDFDMTYwLjc3NCAxOTcuNDg3IDE2MC43NzQgMTk5LjQxMiAxNTkuNTg5IDIwMC41OThMMTA3LjE0MiAyNTMuMDQ1QzEwNi41NzEgMjUzLjYxNiAxMDYuMjUgMjU0LjM5MSAxMDYuMjUgMjU1LjE5NFYyODkuNzU4QzEwNi4yNSAyOTEuNDMzIDEwNy42MTQgMjkyLjc5OCAxMDkuMjkgMjkyLjc5OEgxNjYuMDE2QzE2Ny42OTIgMjkyLjc5OCAxNjkuMDU2IDI5MS40MzMgMTY5LjA1NiAyODkuNzU4VjI2OS4zOTVDMTY5LjA1NiAyNjguNTkzIDE2OS4zNzcgMjY3LjgxOCAxNjkuOTQ4IDI2Ny4yNDdMMTk4LjA4NCAyMzkuMTExQzE5OS4yNyAyMzcuOTI1IDIwMS4xOTUgMjM3LjkyNSAyMDIuMzgxIDIzOS4xMTFMMjU0LjU4OCAyOTEuMzE4QzI1NS41NDIgMjkyLjI3MiAyNTYuODI1IDI5Mi44MDcgMjU4LjE3MSAyOTIuODA3SDI4OS43MTJDMjkxLjM4OSAyOTIuODA3IDI5Mi43NTIgMjkxLjQ0MiAyOTIuNzUyIDI4OS43NjdMMjkyLjc2MiAyODkuNzU4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTIxNy4wOSAxNTEuMjQ0SDI0NS41MDNDMjQ3LjE4OCAxNTEuMjQ0IDI0OC41NiAxNTIuNjE3IDI0OC41NiAxNTQuMzAyVjE4Mi43MTRDMjQ4LjU2IDE4NS40NDIgMjUxLjg1OSAxODYuODA2IDI1My43ODUgMTg0Ljg3MUwyOTIuNzYxIDE0NS44MzJDMjkzLjMzMSAxNDUuMjYyIDI5My42NTMgMTQ0LjQ4NiAyOTMuNjUzIDE0My42NzVWMTA5LjQ4NkMyOTMuNjUzIDEwNy44MDEgMjkyLjI4OCAxMDYuNDI4IDI5MC41OTUgMTA2LjQyOEwyNTUuODk4IDEwNi4zODNDMjU1LjA4NiAxMDYuMzgzIDI1NC4zMTEgMTA2LjcwNCAyNTMuNzMxIDEwNy4yNzVMMjE0LjkyNCAxNDYuMDJDMjEyLjk5OCAxNDcuOTQ1IDIxNC4zNjIgMTUxLjI0NCAyMTcuMDgxIDE1MS4yNDRIMjE3LjA5WiIgZmlsbD0iI0VFN0EzMCIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzE1NzgxXzY4NzkiPgo8cmVjdCB3aWR0aD0iMTg3LjUiIGhlaWdodD0iMTg3LjUiIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMDYuMjUgMTA2LjI1KSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=",
72+
light:
73+
"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAwIiBoZWlnaHQ9IjQwMCIgdmlld0JveD0iMCAwIDQwMCA0MDAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iNDAwIiBmaWxsPSIjMTgxODE4Ii8+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xNTc4MV82ODc5KSI+CjxwYXRoIGQ9Ik0yOTIuNzYyIDI4OS43NThWMjU1LjgwOUMyOTIuNzYyIDI1NC40NjMgMjkyLjIyNiAyNTMuMTc5IDI5MS4yNzIgMjUyLjIyNUwxNDYuODIyIDEwNy43NzRDMTQ1Ljg2OSAxMDYuODIxIDE0NC41ODUgMTA2LjI4NiAxNDMuMjM4IDEwNi4yODZIMTA5LjI5QzEwNy42MTQgMTA2LjI4NiAxMDYuMjUgMTA3LjY1IDEwNi4yNSAxMDkuMzI2VjE0MC44NjdDMTA2LjI1IDE0Mi4yMTMgMTA2Ljc4NSAxNDMuNDk3IDEwNy43MzkgMTQ0LjQ1MUwxNTkuNTg5IDE5Ni4zMDFDMTYwLjc3NCAxOTcuNDg3IDE2MC43NzQgMTk5LjQxMiAxNTkuNTg5IDIwMC41OThMMTA3LjE0MiAyNTMuMDQ1QzEwNi41NzEgMjUzLjYxNiAxMDYuMjUgMjU0LjM5MSAxMDYuMjUgMjU1LjE5NFYyODkuNzU4QzEwNi4yNSAyOTEuNDMzIDEwNy42MTQgMjkyLjc5OCAxMDkuMjkgMjkyLjc5OEgxNjYuMDE2QzE2Ny42OTIgMjkyLjc5OCAxNjkuMDU2IDI5MS40MzMgMTY5LjA1NiAyODkuNzU4VjI2OS4zOTVDMTY5LjA1NiAyNjguNTkzIDE2OS4zNzcgMjY3LjgxOCAxNjkuOTQ4IDI2Ny4yNDdMMTk4LjA4NCAyMzkuMTExQzE5OS4yNyAyMzcuOTI1IDIwMS4xOTUgMjM3LjkyNSAyMDIuMzgxIDIzOS4xMTFMMjU0LjU4OCAyOTEuMzE4QzI1NS41NDIgMjkyLjI3MiAyNTYuODI1IDI5Mi44MDcgMjU4LjE3MSAyOTIuODA3SDI4OS43MTJDMjkxLjM4OSAyOTIuODA3IDI5Mi43NTIgMjkxLjQ0MiAyOTIuNzUyIDI4OS43NjdMMjkyLjc2MiAyODkuNzU4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTIxNy4wOSAxNTEuMjQ0SDI0NS41MDNDMjQ3LjE4OCAxNTEuMjQ0IDI0OC41NiAxNTIuNjE3IDI0OC41NiAxNTQuMzAyVjE4Mi43MTRDMjQ4LjU2IDE4NS40NDIgMjUxLjg1OSAxODYuODA2IDI1My43ODUgMTg0Ljg3MUwyOTIuNzYxIDE0NS44MzJDMjkzLjMzMSAxNDUuMjYyIDI5My42NTMgMTQ0LjQ4NiAyOTMuNjUzIDE0My42NzVWMTA5LjQ4NkMyOTMuNjUzIDEwNy44MDEgMjkyLjI4OCAxMDYuNDI4IDI5MC41OTUgMTA2LjQyOEwyNTUuODk4IDEwNi4zODNDMjU1LjA4NiAxMDYuMzgzIDI1NC4zMTEgMTA2LjcwNCAyNTMuNzMxIDEwNy4yNzVMMjE0LjkyNCAxNDYuMDJDMjEyLjk5OCAxNDcuOTQ1IDIxNC4zNjIgMTUxLjI0NCAyMTcuMDgxIDE1MS4yNDRIMjE3LjA5WiIgZmlsbD0iI0VFN0EzMCIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzE1NzgxXzY4NzkiPgo8cmVjdCB3aWR0aD0iMTg3LjUiIGhlaWdodD0iMTg3LjUiIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMDYuMjUgMTA2LjI1KSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=",
74+
},
7075
}
7176

7277
export class InjectedConnector extends Connector {

src/connectors/injected/xverse.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import { InjectedConnector, type InjectedConnectorOptions } from "./index"
2+
3+
const id = "xverse"
4+
5+
export class Xverse extends InjectedConnector {
6+
constructor(options?: Omit<InjectedConnectorOptions, "id">) {
7+
super({ options: { id, ...options } })
8+
}
9+
10+
static getInjectedWallet() {
11+
return super.getInjectedWallet(id)
12+
}
13+
14+
static isWalletInjected() {
15+
return super.isWalletInjected(id)
16+
}
17+
}

src/helpers/defaultConnectors.ts

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,16 @@ import type { StarknetkitConnector } from "../connectors"
22
import { type ArgentMobileConnectorOptions } from "../connectors/argent/argentMobile"
33
import { BraavosMobileBaseConnector } from "../connectors/braavosMobile"
44
import { ControllerConnector } from "../connectors/controller"
5-
import { WebWalletConnector } from "../connectors/webwallet"
65
import { Braavos } from "../connectors/injected/braavos"
76
import { Fordefi } from "../connectors/injected/fordefi"
87
import { Keplr } from "../connectors/injected/keplr"
8+
import { Xverse } from "../connectors/injected/xverse"
99
import { MetaMask } from "../connectors/injected/metamask"
1010

1111
import { isMobileDevice, isSafari } from "./navigator"
1212
import { ArgentX } from "../connectors/injected/argentX"
1313

14-
export const defaultConnectors = ({
15-
argentMobileOptions,
16-
webWalletUrl,
17-
}: {
18-
argentMobileOptions: ArgentMobileConnectorOptions
19-
webWalletUrl?: string
20-
}): StarknetkitConnector[] => {
14+
export const defaultConnectors = (): StarknetkitConnector[] => {
2115
// | StarknetkitCompoundConnector
2216
const defaultConnectors: StarknetkitConnector[] =
2317
// | StarknetkitCompoundConnector
@@ -37,6 +31,9 @@ export const defaultConnectors = ({
3731
if (Keplr.isWalletInjected()) {
3832
defaultConnectors.push(new Keplr())
3933
}
34+
if (Xverse.isWalletInjected()) {
35+
defaultConnectors.push(new Xverse())
36+
}
4037
}
4138

4239
defaultConnectors.push(new ControllerConnector())

src/main.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -81,12 +81,7 @@ export const connect = async ({
8181
// force null in case it was disconnected from mobile app
8282
selectedConnector = null
8383
const availableConnectors =
84-
!connectors || connectors.length === 0
85-
? defaultConnectors({
86-
argentMobileOptions,
87-
webWalletUrl,
88-
})
89-
: connectors
84+
!connectors || connectors.length === 0 ? defaultConnectors() : connectors
9085

9186
if (skipEmit) {
9287
// This is ugly but needed fix for useStarknetkitConnectModal

vite.config.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ export default defineConfig({
4949
metamask: resolve(__dirname, "src/connectors/injected/metamask.ts"),
5050
keplr: resolve(__dirname, "src/connectors/injected/keplr.ts"),
5151
fordefi: resolve(__dirname, "src/connectors/injected/fordefi.ts"),
52+
xverse: resolve(__dirname, "src/connectors/injected/xverse.ts"),
5253
},
5354
formats: ["es", "cjs"],
5455
},

0 commit comments

Comments
 (0)