@farcaster/frame-sdk 0.0.41 → 0.0.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ethereumProvider.d.ts +3 -0
- package/dist/{evmProvider.js → ethereumProvider.js} +11 -8
- package/dist/index.min.js +6 -6
- package/dist/index.min.js.map +4 -4
- package/dist/sdk.js +4 -3
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +3 -2
- package/package.json +2 -2
- package/src/{evmProvider.ts → ethereumProvider.ts} +15 -8
- package/src/sdk.ts +4 -3
- package/src/types.ts +4 -2
- package/dist/evmProvider.d.ts +0 -3
package/dist/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AddMiniApp, ComposeCast, Context, FrameNotificationDetails, GetCapabilities, Ready, SendToken, SetPrimaryButtonOptions, SignIn, SolanaWalletProvider, SwapToken, ViewProfile, ViewToken } from '@farcaster/frame-core';
|
|
1
|
+
import type { AddMiniApp, ComposeCast, Context, FrameNotificationDetails, GetCapabilities, GetChains, Ready, SendToken, SetPrimaryButtonOptions, SignIn, SolanaWalletProvider, SwapToken, ViewProfile, ViewToken } from '@farcaster/frame-core';
|
|
2
2
|
import type { EventEmitter } from 'eventemitter3';
|
|
3
3
|
import type * as Provider from 'ox/Provider';
|
|
4
4
|
declare global {
|
|
@@ -30,6 +30,7 @@ export type Emitter = Compute<EventEmitter<EventMap>>;
|
|
|
30
30
|
type SetPrimaryButton = (options: SetPrimaryButtonOptions) => Promise<void>;
|
|
31
31
|
export type FrameSDK = {
|
|
32
32
|
getCapabilities: GetCapabilities;
|
|
33
|
+
getChains: GetChains;
|
|
33
34
|
isInMiniApp: () => Promise<boolean>;
|
|
34
35
|
context: Promise<Context.FrameContext>;
|
|
35
36
|
actions: {
|
|
@@ -51,7 +52,7 @@ export type FrameSDK = {
|
|
|
51
52
|
};
|
|
52
53
|
wallet: {
|
|
53
54
|
ethProvider: Provider.Provider;
|
|
54
|
-
|
|
55
|
+
getEthereumProvider: () => Promise<Provider.Provider | undefined>;
|
|
55
56
|
};
|
|
56
57
|
} & Emitter;
|
|
57
58
|
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@farcaster/frame-sdk",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.44",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"comlink": "^4.4.2",
|
|
23
23
|
"eventemitter3": "^5.0.1",
|
|
24
24
|
"ox": "^0.4.4",
|
|
25
|
-
"@farcaster/frame-core": "0.0.
|
|
25
|
+
"@farcaster/frame-core": "0.0.39"
|
|
26
26
|
},
|
|
27
27
|
"scripts": {
|
|
28
28
|
"clean": "rm -rf dist",
|
|
@@ -45,7 +45,7 @@ function toProviderRpcError({
|
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
export const
|
|
48
|
+
export const ethereumProvider: Provider.Provider = Provider.from({
|
|
49
49
|
...emitter,
|
|
50
50
|
async request(args) {
|
|
51
51
|
// @ts-expect-error
|
|
@@ -84,17 +84,24 @@ export const evmProvider: Provider.Provider = Provider.from({
|
|
|
84
84
|
},
|
|
85
85
|
})
|
|
86
86
|
|
|
87
|
-
export async function
|
|
87
|
+
export async function getEthereumProvider(): Promise<
|
|
88
|
+
Provider.Provider | undefined
|
|
89
|
+
> {
|
|
88
90
|
try {
|
|
89
91
|
const capabilities = await frameHost.getCapabilities()
|
|
90
|
-
if (
|
|
92
|
+
if (
|
|
93
|
+
!capabilities.includes('wallet.getEthereumProvider') &&
|
|
94
|
+
!capabilities.includes('wallet.getEvmProvider' as MiniAppHostCapability)
|
|
95
|
+
) {
|
|
96
|
+
// We used getEvmProvider for a short period before getEthereumProvider.
|
|
97
|
+
// In case we're talking to an old host, we check the old key.
|
|
91
98
|
return undefined
|
|
92
99
|
}
|
|
93
|
-
return
|
|
100
|
+
return ethereumProvider
|
|
94
101
|
} catch {
|
|
95
102
|
// If this is an old frame host that doesn't support getCapabilities,
|
|
96
|
-
//
|
|
97
|
-
return
|
|
103
|
+
// getEthereumProvider will assume that it's supported
|
|
104
|
+
return ethereumProvider
|
|
98
105
|
}
|
|
99
106
|
}
|
|
100
107
|
|
|
@@ -135,7 +142,7 @@ if (typeof document !== 'undefined') {
|
|
|
135
142
|
if (frameEvent.event === 'eip6963:announceProvider') {
|
|
136
143
|
announceEvmProvider({
|
|
137
144
|
info: frameEvent.info,
|
|
138
|
-
provider:
|
|
145
|
+
provider: ethereumProvider as EIP1193Provider,
|
|
139
146
|
})
|
|
140
147
|
}
|
|
141
148
|
}
|
|
@@ -167,7 +174,7 @@ if (typeof window !== 'undefined') {
|
|
|
167
174
|
if (frameEvent.event === 'eip6963:announceProvider') {
|
|
168
175
|
announceEvmProvider({
|
|
169
176
|
info: frameEvent.info,
|
|
170
|
-
provider:
|
|
177
|
+
provider: ethereumProvider as EIP1193Provider,
|
|
171
178
|
})
|
|
172
179
|
}
|
|
173
180
|
}
|
package/src/sdk.ts
CHANGED
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
createSolanaWalletProvider,
|
|
7
7
|
} from '@farcaster/frame-core'
|
|
8
8
|
import { EventEmitter } from 'eventemitter3'
|
|
9
|
-
import {
|
|
9
|
+
import { ethereumProvider, getEthereumProvider } from './ethereumProvider'
|
|
10
10
|
import { frameHost } from './frameHost'
|
|
11
11
|
import { getSolanaProvider } from './solanaProvider'
|
|
12
12
|
import type { Emitter, EventMap, FrameSDK } from './types'
|
|
@@ -98,6 +98,7 @@ const addMiniApp = async () => {
|
|
|
98
98
|
export const sdk: FrameSDK = {
|
|
99
99
|
...emitter,
|
|
100
100
|
getCapabilities: frameHost.getCapabilities,
|
|
101
|
+
getChains: frameHost.getChains,
|
|
101
102
|
isInMiniApp,
|
|
102
103
|
context: frameHost.context,
|
|
103
104
|
actions: {
|
|
@@ -134,8 +135,8 @@ export const sdk: FrameSDK = {
|
|
|
134
135
|
getSolanaProvider,
|
|
135
136
|
},
|
|
136
137
|
wallet: {
|
|
137
|
-
ethProvider:
|
|
138
|
-
|
|
138
|
+
ethProvider: ethereumProvider,
|
|
139
|
+
getEthereumProvider,
|
|
139
140
|
},
|
|
140
141
|
}
|
|
141
142
|
|
package/src/types.ts
CHANGED
|
@@ -4,6 +4,7 @@ import type {
|
|
|
4
4
|
Context,
|
|
5
5
|
FrameNotificationDetails,
|
|
6
6
|
GetCapabilities,
|
|
7
|
+
GetChains,
|
|
7
8
|
Ready,
|
|
8
9
|
SendToken,
|
|
9
10
|
SetPrimaryButtonOptions,
|
|
@@ -54,6 +55,7 @@ type SetPrimaryButton = (options: SetPrimaryButtonOptions) => Promise<void>
|
|
|
54
55
|
|
|
55
56
|
export type FrameSDK = {
|
|
56
57
|
getCapabilities: GetCapabilities
|
|
58
|
+
getChains: GetChains
|
|
57
59
|
isInMiniApp: () => Promise<boolean>
|
|
58
60
|
context: Promise<Context.FrameContext>
|
|
59
61
|
actions: {
|
|
@@ -77,8 +79,8 @@ export type FrameSDK = {
|
|
|
77
79
|
getSolanaProvider: () => Promise<SolanaWalletProvider | undefined>
|
|
78
80
|
}
|
|
79
81
|
wallet: {
|
|
80
|
-
// Deprecated in favor of
|
|
82
|
+
// Deprecated in favor of getEthereumProvider
|
|
81
83
|
ethProvider: Provider.Provider
|
|
82
|
-
|
|
84
|
+
getEthereumProvider: () => Promise<Provider.Provider | undefined>
|
|
83
85
|
}
|
|
84
86
|
} & Emitter
|
package/dist/evmProvider.d.ts
DELETED