Skip to content

Commit 08c4670

Browse files
authored
Merge pull request #279 from danielbellmas/add-fordefi-develop
feat: add fordefi wallet
2 parents 441a220 + c895e93 commit 08c4670

File tree

4 files changed

+41
-3
lines changed

4 files changed

+41
-3
lines changed

packages/core/src/__test__/main.test.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { mockStorageFunction } from "./storage.mock"
33
import {
44
ArgentXMock,
55
BraavosMock,
6+
FordefiMock,
67
KeplrMock,
78
OKXMock,
89
UnknownWalletAMock,
@@ -35,13 +36,15 @@ describe("getAvailableWallets()", () => {
3536
"starknet-braavos": BraavosMock,
3637
starknet_okxwallet: OKXMock,
3738
starknet_keplr: KeplrMock,
39+
starknet_fordefi: FordefiMock,
3840
})
3941
const availableWallets = await sn.getAvailableWallets()
40-
expect(availableWallets.length).toBe(4)
42+
expect(availableWallets.length).toBe(5)
4143
expect(availableWallets).toContainEqual(ArgentXMock)
4244
expect(availableWallets).toContainEqual(BraavosMock)
4345
expect(availableWallets).toContainEqual(OKXMock)
4446
expect(availableWallets).toContainEqual(KeplrMock)
47+
expect(availableWallets).toContainEqual(FordefiMock)
4548
})
4649
it("should return one injected wallet", async () => {
4750
const sn = getWallet({
@@ -118,20 +121,23 @@ describe("getAuthorizedWallets()", () => {
118121
"starknet-braavos": makeAuthorized(true)(BraavosMock),
119122
starknet_okxwallet: makeAuthorized(true)(OKXMock),
120123
starknet_keplr: makeAuthorized(true)(KeplrMock),
124+
starknet_fordefi: makeAuthorized(true)(FordefiMock),
121125
})
122126
const preauthorizedWallets = await sn.getAuthorizedWallets()
123-
expect(preauthorizedWallets.length).toBe(4)
127+
expect(preauthorizedWallets.length).toBe(5)
124128
expect(preauthorizedWallets.map((w) => w.id)).contains(ArgentXMock.id)
125129
expect(preauthorizedWallets.map((w) => w.id)).contains(BraavosMock.id)
126130
expect(preauthorizedWallets.map((w) => w.id)).contains(OKXMock.id)
127131
expect(preauthorizedWallets.map((w) => w.id)).contains(KeplrMock.id)
132+
expect(preauthorizedWallets.map((w) => w.id)).contains(FordefiMock.id)
128133
})
129134
it("should return one authorized wallet", async () => {
130135
const sn = getWallet({
131136
"starknet-argent": makeAuthorized(true)(ArgentXMock),
132137
"starknet-braavos": makeAuthorized(false)(BraavosMock),
133138
starknet_okxwallet: makeAuthorized(false)(OKXMock),
134139
starknet_keplr: makeAuthorized(false)(KeplrMock),
140+
starknet_fordefi: makeAuthorized(false)(FordefiMock),
135141
})
136142
const authorizedWallets = await sn.getAuthorizedWallets()
137143
expect(authorizedWallets.length).toBe(1)
@@ -143,10 +149,11 @@ describe("getDiscoveryWallets()", () => {
143149
it("should return all discovery wallets", async () => {
144150
const sn = getWallet({})
145151
const discoveryWallets = await sn.getDiscoveryWallets()
146-
expect(discoveryWallets.length).toBe(5)
152+
expect(discoveryWallets.length).toBe(6)
147153
expect(discoveryWallets.map((w) => w.id)).contains(ArgentXMock.id)
148154
expect(discoveryWallets.map((w) => w.id)).contains(BraavosMock.id)
149155
expect(discoveryWallets.map((w) => w.id)).contains(OKXMock.id)
150156
expect(discoveryWallets.map((w) => w.id)).contains(KeplrMock.id)
157+
expect(discoveryWallets.map((w) => w.id)).contains(FordefiMock.id)
151158
})
152159
})

packages/core/src/__test__/storage.test.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { mockStorageFunction } from "./storage.mock"
33
import {
44
ArgentXMock,
55
BraavosMock,
6+
FordefiMock,
67
KeplrMock,
78
OKXMock,
89
UnknownWalletAMock,
@@ -52,6 +53,7 @@ describe("getLastConnectedWallet()", () => {
5253
"starknet-braavos": makeAuthorized(false)(BraavosMock),
5354
starknet_okxwallet: makeAuthorized(false)(OKXMock),
5455
starknet_keplr: makeAuthorized(false)(KeplrMock),
56+
starknet_fordefi: makeAuthorized(false)(FordefiMock),
5557
},
5658
mockStorageFunction({
5759
"gsw-last": "braavos",
@@ -67,6 +69,7 @@ describe("getLastConnectedWallet()", () => {
6769
"starknet-braavos": makeAuthorized(true)(BraavosMock),
6870
starknet_okxwallet: makeAuthorized(false)(OKXMock),
6971
starknet_keplr: makeAuthorized(false)(KeplrMock),
72+
starknet_fordefi: makeAuthorized(false)(FordefiMock),
7073
},
7174
mockStorageFunction({
7275
"gsw-last": "braavos",
@@ -82,6 +85,7 @@ describe("getLastConnectedWallet()", () => {
8285
"starknet-braavos": makeAuthorized(true)(BraavosMock),
8386
starknet_okxwallet: makeAuthorized(true)(OKXMock),
8487
starknet_keplr: makeAuthorized(true)(KeplrMock),
88+
starknet_fordefi: makeAuthorized(true)(FordefiMock),
8589
},
8690
mockStorageFunction({ "gsw-last": "braavos" }),
8791
)
@@ -94,6 +98,7 @@ describe("getLastConnectedWallet()", () => {
9498
"starknet-braavos": makeConnected(true)(BraavosMock),
9599
starknet_okxwallet: makeConnected(true)(OKXMock),
96100
starknet_keplr: makeAuthorized(true)(KeplrMock),
101+
starknet_fordefi: makeAuthorized(true)(FordefiMock),
97102
})
98103
const lastConnectedWallet = await sn.getLastConnectedWallet()
99104
expect(lastConnectedWallet).toBe(null)
@@ -120,6 +125,7 @@ describe("getLastConnectedWallet()", () => {
120125
"starknet-braavos": makeAuthorized(true)(BraavosMock),
121126
starknet_okxwallet: makeAuthorized(true)(OKXMock),
122127
starknet_keplr: makeAuthorized(true)(KeplrMock),
128+
starknet_fordefi: makeAuthorized(true)(FordefiMock),
123129
},
124130
mockStorageFunction({
125131
"gsw-last": "braavos",
@@ -139,6 +145,7 @@ describe("getLastConnectedWallet()", () => {
139145
"starknet-braavos": makeAuthorized(true)(BraavosMock),
140146
starknet_okxwallet: makeAuthorized(true)(OKXMock),
141147
starknet_keplr: makeAuthorized(true)(KeplrMock),
148+
starknet_fordefi: makeAuthorized(true)(FordefiMock),
142149
},
143150
mockStorageFunction({
144151
"gsw-last": "braavos",

packages/core/src/__test__/wallet.mock.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,21 @@ export const KeplrMock: StarknetWindowObject = {
8080
off: () => {},
8181
}
8282

83+
export const FordefiMock: StarknetWindowObject = {
84+
...wallets.find((w) => w.id === "fordefi")!,
85+
version: "0.0.0",
86+
request: async (request) => {
87+
switch (request.type) {
88+
case "wallet_getPermissions":
89+
return []
90+
default:
91+
return undefined as any
92+
}
93+
},
94+
on: () => {},
95+
off: () => {},
96+
}
97+
8398
export function makeAuthorized(authorized: boolean) {
8499
return (wallet: StarknetWindowObject) =>
85100
({

packages/core/src/discovery.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,15 @@ const wallets: WalletProvider[] = [
9393
edge: "https://microsoftedge.microsoft.com/addons/detail/keplr/ocodgmmffbkkeecmadcijjhkmeohinei",
9494
},
9595
},
96+
{
97+
id: "fordefi",
98+
name: "Fordefi",
99+
icon: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzEzNDk0XzY2MjU0KSI+CjxwYXRoIGQ9Ik0xMC44NzY5IDE1LjYzNzhIMS41VjE4LjM5OUMxLjUgMTkuODAxMyAyLjYzNDQ3IDIwLjkzOCA0LjAzMzkyIDIwLjkzOEg4LjI0OTkyTDEwLjg3NjkgMTUuNjM3OFoiIGZpbGw9IiM3OTk0RkYiLz4KPHBhdGggZD0iTTEuNSA5Ljc3NTUxSDE5LjA1MTZMMTcuMDEzOSAxMy44NzExSDEuNVY5Ljc3NTUxWiIgZmlsbD0iIzQ4NkRGRiIvPgo8cGF0aCBkPSJNNy42NTk5NiAzSDEuNTI0NDFWOC4wMDcwNEgyMi40NjEyVjNIMTYuMzI1NlY2LjczOTQ0SDE1LjA2MDZWM0g4LjkyNTAyVjYuNzM5NDRINy42NTk5NlYzWiIgZmlsbD0iIzVDRDFGQSIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzEzNDk0XzY2MjU0Ij4KPHJlY3Qgd2lkdGg9IjIxIiBoZWlnaHQ9IjE4IiBmaWxsPSJ3aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMS41IDMpIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==",
100+
downloads: {
101+
chrome:
102+
"https://chrome.google.com/webstore/detail/fordefi/hcmehenccjdmfbojapcbcofkgdpbnlle",
103+
},
104+
},
96105
]
97106

98107
export default wallets

0 commit comments

Comments
 (0)