Skip to content

Commit 566ffd5

Browse files
authored
Add support for experimental_requestInfo (#178)
* add support for experimental RPCs * format * format
1 parent 1b10117 commit 566ffd5

File tree

4 files changed

+60
-0
lines changed

4 files changed

+60
-0
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { RpcRequestInput } from './RpcRequestInput';
2+
3+
const baseRequestInfo: RpcRequestInput = {
4+
method: 'experimental_requestInfo',
5+
params: [
6+
{
7+
key: 'requests',
8+
required: true,
9+
},
10+
],
11+
format: (data: Record<string, string>) => [
12+
{
13+
requests: data.requests,
14+
},
15+
],
16+
};
17+
18+
export const experimentalMethods = [baseRequestInfo];
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import { ShortcutType } from './ShortcutType';
2+
3+
const experimentalRequestInfoShortcut: ShortcutType = {
4+
key: 'Experimental Request Info',
5+
data: {
6+
requests: [
7+
{
8+
type: 'email' as const,
9+
optional: true,
10+
},
11+
{
12+
type: 'physicalAddress' as const,
13+
optional: true,
14+
},
15+
{
16+
type: 'name' as const,
17+
optional: false,
18+
},
19+
{
20+
type: 'phoneNumber' as const,
21+
optional: false,
22+
},
23+
],
24+
},
25+
};
26+
27+
export const baseProfileShortcutsMap: Record<string, ShortcutType[]> = {
28+
experimental_requestInfo: [experimentalRequestInfoShortcut],
29+
};

examples/testapp/src/pages/index.page.tsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,15 @@ import { WIDTH_2XL } from '../components/Layout';
66
import { MethodsSection } from '../components/MethodsSection/MethodsSection';
77
import { connectionMethods } from '../components/RpcMethods/method/connectionMethods';
88
import { ephemeralMethods } from '../components/RpcMethods/method/ephemeralMethods';
9+
import { experimentalMethods } from '../components/RpcMethods/method/experimentalMethods';
910
import { multiChainMethods } from '../components/RpcMethods/method/multiChainMethods';
1011
import { readonlyJsonRpcMethods } from '../components/RpcMethods/method/readonlyJsonRpcMethods';
1112
import { sendMethods } from '../components/RpcMethods/method/sendMethods';
1213
import { signMessageMethods } from '../components/RpcMethods/method/signMessageMethods';
1314
import { walletTxMethods } from '../components/RpcMethods/method/walletTxMethods';
1415
import { connectionMethodShortcutsMap } from '../components/RpcMethods/shortcut/connectionMethodShortcuts';
1516
import { ephemeralMethodShortcutsMap } from '../components/RpcMethods/shortcut/ephemeralMethodShortcuts';
17+
import { baseProfileShortcutsMap } from '../components/RpcMethods/shortcut/experimentalShortcuts';
1618
import { multiChainShortcutsMap } from '../components/RpcMethods/shortcut/multipleChainShortcuts';
1719
import { readonlyJsonRpcShortcutsMap } from '../components/RpcMethods/shortcut/readonlyJsonRpcShortcuts';
1820
import { sendShortcutsMap } from '../components/RpcMethods/shortcut/sendShortcuts';
@@ -83,6 +85,11 @@ export default function Home() {
8385
methods={ephemeralMethods}
8486
shortcutsMap={ephemeralMethodShortcutsMap}
8587
/>
88+
<MethodsSection
89+
title="Base Profile"
90+
methods={experimentalMethods}
91+
shortcutsMap={baseProfileShortcutsMap}
92+
/>
8693
{shouldShowMethodsRequiringConnection && (
8794
<>
8895
<MethodsSection

packages/account-sdk/src/sign/base-account/Signer.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,7 @@ export class Signer {
186186
);
187187
return this.sendRequestToPopup(modifiedRequest);
188188
}
189+
case 'experimental_requestInfo':
189190
case 'wallet_sendCalls':
190191
case 'wallet_sign': {
191192
return this.sendRequestToPopup(request);
@@ -212,6 +213,11 @@ export class Signer {
212213
}
213214
}
214215

216+
// Handle all experimental methods
217+
if (request.method.startsWith('experimental_')) {
218+
return this.sendRequestToPopup(request);
219+
}
220+
215221
switch (request.method) {
216222
case 'eth_requestAccounts':
217223
case 'eth_accounts': {

0 commit comments

Comments
 (0)