11import fetch , { Response } from 'node-fetch' ;
22import { Address , ChainListEntry , RichListEntry , Supply , WalletListEntry } from './types.js' ;
33
4+ export interface ProviderRequest {
5+ method : string ;
6+ params ?: any [ ] ;
7+ }
8+
49export class Provider {
510 private baseUrl : string ;
611
@@ -14,6 +19,41 @@ export class Provider {
1419 }
1520 }
1621
22+ public async request ( request : ProviderRequest ) {
23+ switch ( request . method ) {
24+ case 'wallet_requestPermissions' : // eip-2255 - https://eips.ethereum.org/EIPS/eip-2255
25+ return [
26+ {
27+ invoker : 'ens://your-site.eth' ,
28+ parentCapability : 'eth_accounts' ,
29+ caveats : [
30+ {
31+ type : 'filterResponse' ,
32+ value : [ '0x0c54fccd2e384b4bb6f2e405bf5cbc15a017aafb' ] ,
33+ } ,
34+ ] ,
35+ } ,
36+ ] ;
37+ case 'wallet_getPermissions' : // eip-2255 - https://eips.ethereum.org/EIPS/eip-2255
38+ return [
39+ {
40+ invoker : 'ens://your-site.eth' ,
41+ parentCapability : 'eth_accounts' ,
42+ caveats : [
43+ {
44+ type : 'filterResponse' ,
45+ value : [ '0x0c54fccd2e384b4bb6f2e405bf5cbc15a017aafb' ] ,
46+ } ,
47+ ] ,
48+ } ,
49+ ] ;
50+ case 'requestPermissions' : //
51+ break ;
52+ }
53+
54+ console . log ( 'UNHANDLED METHOD!!' ) ;
55+ }
56+
1757 private async fetchText ( url : string ) : Promise < string > {
1858 const response = await this . fetchUrl ( url ) ;
1959 return response . text ( ) ;
0 commit comments