-
Notifications
You must be signed in to change notification settings - Fork 557
Expand file tree
/
Copy pathtypes.ts
More file actions
169 lines (155 loc) · 4.95 KB
/
Copy pathtypes.ts
File metadata and controls
169 lines (155 loc) · 4.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
import type {
ImpactOccurred,
NotificationOccurred,
SelectionChanged,
} from './actions/Haptics.ts'
import type {
AddMiniApp,
ComposeCast,
OpenMiniApp,
Ready,
RequestCameraAndMicrophoneAccess,
SendToken,
SignIn,
SignManifest,
SwapToken,
ViewCast,
ViewProfile,
ViewToken,
} from './actions/index.ts'
import type { UpdateBackState } from './back.ts'
import type { MiniAppContext } from './context.ts'
import type {
EventMiniAppAdded,
EventMiniAppRemoved,
EventNotificationsDisabled,
EventNotificationsEnabled,
} from './schemas/index.ts'
import type { SolanaRequestFn, SolanaWireRequestFn } from './solana.ts'
import type { Ethereum } from './wallet/index.ts'
export type SetPrimaryButtonOptions = {
text: string
loading?: boolean
disabled?: boolean
hidden?: boolean
}
export { DEFAULT_READY_OPTIONS, ReadyOptions } from './actions/Ready.ts'
// start backwards compat, remove in 1.0
export * from './wallet/ethereum.ts'
export type SignInOptions = SignIn.SignInOptions
// end backwards compat
export type SetPrimaryButton = (options: SetPrimaryButtonOptions) => void
// Export haptics types
export type { ImpactOccurred, NotificationOccurred, SelectionChanged }
export const miniAppHostCapabilityList = [
'wallet.getEthereumProvider',
'wallet.getSolanaProvider',
'actions.ready',
'actions.openUrl',
'actions.close',
'actions.setPrimaryButton',
'actions.addMiniApp',
'actions.signIn',
'actions.viewCast',
'actions.viewProfile',
'actions.composeCast',
'actions.viewToken',
'actions.sendToken',
'actions.swapToken',
'actions.openMiniApp',
'actions.requestCameraAndMicrophoneAccess',
'experimental.signManifest',
'haptics.impactOccurred',
'haptics.notificationOccurred',
'haptics.selectionChanged',
'back',
] as const
export type MiniAppHostCapability = (typeof miniAppHostCapabilityList)[number]
export type GetCapabilities = () => Promise<MiniAppHostCapability[]>
// Returns a list of CAIP-2 identifiers
export type GetChains = () => Promise<string[]>
export type WireMiniAppHost = {
context: MiniAppContext
close: () => void
ready: Ready.Ready
openUrl: (url: string) => void
signIn: SignIn.WireSignIn
signManifest: SignManifest.WireSignManifest
setPrimaryButton: SetPrimaryButton
ethProviderRequest: Ethereum.EthProvideRequest
ethProviderRequestV2: Ethereum.RpcTransport
eip6963RequestProvider: () => void
solanaProviderRequest?: SolanaWireRequestFn
addFrame: AddMiniApp.WireAddMiniApp
addMiniApp: AddMiniApp.WireAddMiniApp
viewCast: ViewCast.ViewCast
viewProfile: ViewProfile.ViewProfile
viewToken: ViewToken.ViewToken
sendToken: SendToken.SendToken
swapToken: SwapToken.SwapToken
openMiniApp: OpenMiniApp.OpenMiniApp
composeCast: <close extends boolean | undefined = undefined>(
options: ComposeCast.Options<close>,
) => Promise<ComposeCast.Result<close>>
requestCameraAndMicrophoneAccess: RequestCameraAndMicrophoneAccess.RequestCameraAndMicrophoneAccess
impactOccurred: ImpactOccurred
notificationOccurred: NotificationOccurred
selectionChanged: SelectionChanged
getCapabilities: GetCapabilities
getChains: GetChains
updateBackState: UpdateBackState
}
export type MiniAppHost = {
context: MiniAppContext
close: () => void
ready: Ready.Ready
openUrl: (url: string) => void
signIn: SignIn.SignIn
signManifest: SignManifest.SignManifest
setPrimaryButton: SetPrimaryButton
ethProviderRequest: Ethereum.EthProvideRequest
ethProviderRequestV2: Ethereum.RpcTransport
/**
* Receive forwarded eip6963:requestProvider events from the frame document.
* Hosts must emit an EventEip6963AnnounceProvider in response.
*/
eip6963RequestProvider: () => void
solanaProviderRequest?: SolanaRequestFn
addFrame: AddMiniApp.AddMiniApp
addMiniApp: AddMiniApp.AddMiniApp
viewCast: ViewCast.ViewCast
viewProfile: ViewProfile.ViewProfile
viewToken: ViewToken.ViewToken
sendToken: SendToken.SendToken
swapToken: SwapToken.SwapToken
openMiniApp: OpenMiniApp.OpenMiniApp
composeCast: <close extends boolean | undefined = undefined>(
options: ComposeCast.Options<close>,
) => Promise<ComposeCast.Result<close>>
requestCameraAndMicrophoneAccess: RequestCameraAndMicrophoneAccess.RequestCameraAndMicrophoneAccess
impactOccurred: ImpactOccurred
notificationOccurred: NotificationOccurred
selectionChanged: SelectionChanged
getCapabilities: GetCapabilities
getChains: GetChains
updateBackState: UpdateBackState
}
export type EventMiniAppAddRejected = {
event: 'miniapp_add_rejected'
reason: AddMiniApp.AddMiniAppRejectedReason
}
export type EventPrimaryButtonClicked = {
event: 'primary_button_clicked'
}
export type EventBackNavigationTriggered = {
event: 'back_navigation_triggered'
}
export type MiniAppClientEvent =
| EventMiniAppAdded
| EventMiniAppAddRejected
| EventMiniAppRemoved
| EventNotificationsEnabled
| EventNotificationsDisabled
| EventPrimaryButtonClicked
| EventBackNavigationTriggered
| Ethereum.EventEip6963AnnounceProvider