@farcaster/frame-sdk 0.0.39 → 0.0.40
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} +13 -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 +15 -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} +14 -6
- package/src/sdk.ts +28 -26
- package/src/solanaProvider.ts +29 -0
- package/src/types.ts +12 -6
- package/dist/provider.d.ts +0 -2
package/dist/sdk.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AddMiniApp, SignIn, } from '@farcaster/frame-core';
|
|
2
2
|
import { EventEmitter } from 'eventemitter3';
|
|
3
|
+
import { evmProvider, getEvmProvider } from './evmProvider';
|
|
3
4
|
import { frameHost } from './frameHost';
|
|
4
|
-
import {
|
|
5
|
+
import { getSolanaProvider } from './solanaProvider';
|
|
5
6
|
export function createEmitter() {
|
|
6
7
|
const emitter = new EventEmitter();
|
|
7
8
|
return {
|
|
@@ -60,8 +61,22 @@ async function isInMiniApp(timeoutMs = 50) {
|
|
|
60
61
|
}
|
|
61
62
|
return isInMiniApp;
|
|
62
63
|
}
|
|
64
|
+
const addMiniApp = async () => {
|
|
65
|
+
const response = await frameHost.addFrame();
|
|
66
|
+
if (response.result) {
|
|
67
|
+
return response.result;
|
|
68
|
+
}
|
|
69
|
+
if (response.error.type === 'invalid_domain_manifest') {
|
|
70
|
+
throw new AddMiniApp.InvalidDomainManifest();
|
|
71
|
+
}
|
|
72
|
+
if (response.error.type === 'rejected_by_user') {
|
|
73
|
+
throw new AddMiniApp.RejectedByUser();
|
|
74
|
+
}
|
|
75
|
+
throw new Error('Unreachable');
|
|
76
|
+
};
|
|
63
77
|
export const sdk = {
|
|
64
78
|
...emitter,
|
|
79
|
+
getCapabilities: frameHost.getCapabilities,
|
|
65
80
|
isInMiniApp,
|
|
66
81
|
context: frameHost.context,
|
|
67
82
|
actions: {
|
|
@@ -83,33 +98,21 @@ export const sdk = {
|
|
|
83
98
|
const url = typeof urlArg === 'string' ? urlArg : urlArg.url;
|
|
84
99
|
return frameHost.openUrl(url.trim());
|
|
85
100
|
},
|
|
86
|
-
addFrame:
|
|
87
|
-
|
|
88
|
-
if (response.result) {
|
|
89
|
-
return response.result;
|
|
90
|
-
}
|
|
91
|
-
if (response.error.type === 'invalid_domain_manifest') {
|
|
92
|
-
throw new AddFrame.InvalidDomainManifest();
|
|
93
|
-
}
|
|
94
|
-
if (response.error.type === 'rejected_by_user') {
|
|
95
|
-
throw new AddFrame.RejectedByUser();
|
|
96
|
-
}
|
|
97
|
-
throw new Error('Unreachable');
|
|
98
|
-
},
|
|
101
|
+
addFrame: addMiniApp,
|
|
102
|
+
addMiniApp,
|
|
99
103
|
composeCast(options = {}) {
|
|
100
104
|
return frameHost.composeCast(options);
|
|
101
105
|
},
|
|
102
|
-
},
|
|
103
|
-
experimental: {
|
|
104
106
|
viewToken: frameHost.viewToken.bind(frameHost),
|
|
105
107
|
sendToken: frameHost.sendToken.bind(frameHost),
|
|
106
108
|
swapToken: frameHost.swapToken.bind(frameHost),
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
109
|
+
},
|
|
110
|
+
experimental: {
|
|
111
|
+
getSolanaProvider,
|
|
110
112
|
},
|
|
111
113
|
wallet: {
|
|
112
|
-
ethProvider:
|
|
114
|
+
ethProvider: evmProvider,
|
|
115
|
+
getEvmProvider: getEvmProvider,
|
|
113
116
|
},
|
|
114
117
|
};
|
|
115
118
|
// Required to pass SSR
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { createSolanaWalletProvider, unwrapSolanaProviderRequest, } from '@farcaster/frame-core';
|
|
2
|
+
import { frameHost } from './frameHost';
|
|
3
|
+
const { solanaProviderRequest } = frameHost;
|
|
4
|
+
let solanaProvider;
|
|
5
|
+
if (solanaProviderRequest) {
|
|
6
|
+
solanaProvider = createSolanaWalletProvider(unwrapSolanaProviderRequest(solanaProviderRequest));
|
|
7
|
+
}
|
|
8
|
+
async function getSolanaProvider() {
|
|
9
|
+
const capabilities = await frameHost.getCapabilities();
|
|
10
|
+
if (!capabilities.includes('wallet.getSolanaProvider')) {
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
return solanaProvider;
|
|
14
|
+
}
|
|
15
|
+
export { getSolanaProvider };
|