@farcaster/frame-sdk 0.0.39 → 0.0.41
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/evmProvider.d.ts +3 -0
- package/dist/{provider.js → evmProvider.js} +20 -6
- package/dist/index.min.js +164 -2
- package/dist/index.min.js.map +4 -4
- package/dist/sdk.js +24 -21
- package/dist/solanaProvider.d.ts +3 -0
- package/dist/solanaProvider.js +19 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +9 -6
- package/package.json +2 -2
- package/src/{provider.ts → evmProvider.ts} +21 -6
- package/src/sdk.ts +28 -26
- package/src/solanaProvider.ts +33 -0
- package/src/types.ts +12 -6
- package/dist/provider.d.ts +0 -2
|
@@ -20,7 +20,7 @@ function toProviderRpcError({ code, details, }) {
|
|
|
20
20
|
return new Provider.ProviderRpcError(code, details ?? 'Unknown provider RPC error');
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
export const
|
|
23
|
+
export const evmProvider = Provider.from({
|
|
24
24
|
...emitter,
|
|
25
25
|
async request(args) {
|
|
26
26
|
// @ts-expect-error
|
|
@@ -50,7 +50,21 @@ export const provider = Provider.from({
|
|
|
50
50
|
}
|
|
51
51
|
},
|
|
52
52
|
});
|
|
53
|
-
function
|
|
53
|
+
export async function getEvmProvider() {
|
|
54
|
+
try {
|
|
55
|
+
const capabilities = await frameHost.getCapabilities();
|
|
56
|
+
if (!capabilities.includes('wallet.getEvmProvider')) {
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
59
|
+
return evmProvider;
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
// If this is an old frame host that doesn't support getCapabilities,
|
|
63
|
+
// getEvmProvider will assume that it's supported
|
|
64
|
+
return evmProvider;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
function announceEvmProvider(detail) {
|
|
54
68
|
const event = new CustomEvent('eip6963:announceProvider', { detail: Object.freeze(detail) });
|
|
55
69
|
window.dispatchEvent(event);
|
|
56
70
|
const handler = () => window.dispatchEvent(event);
|
|
@@ -75,9 +89,9 @@ if (typeof document !== 'undefined') {
|
|
|
75
89
|
if (event instanceof MessageEvent) {
|
|
76
90
|
const frameEvent = event.data;
|
|
77
91
|
if (frameEvent.event === 'eip6963:announceProvider') {
|
|
78
|
-
|
|
92
|
+
announceEvmProvider({
|
|
79
93
|
info: frameEvent.info,
|
|
80
|
-
provider:
|
|
94
|
+
provider: evmProvider,
|
|
81
95
|
});
|
|
82
96
|
}
|
|
83
97
|
}
|
|
@@ -104,9 +118,9 @@ if (typeof window !== 'undefined') {
|
|
|
104
118
|
if (event.data.type === 'frameEvent') {
|
|
105
119
|
const frameEvent = event.data.event;
|
|
106
120
|
if (frameEvent.event === 'eip6963:announceProvider') {
|
|
107
|
-
|
|
121
|
+
announceEvmProvider({
|
|
108
122
|
info: frameEvent.info,
|
|
109
|
-
provider:
|
|
123
|
+
provider: evmProvider,
|
|
110
124
|
});
|
|
111
125
|
}
|
|
112
126
|
}
|