Skip to content

Commit

Permalink
Add FCL Etheruem Provider AccountManager stub (#2078)
Browse files Browse the repository at this point in the history
  • Loading branch information
jribbink authored Jan 27, 2025
1 parent 05c441d commit 4af4ae4
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 9 deletions.
14 changes: 14 additions & 0 deletions packages/fcl-ethereum-provider/src/accounts/account-manager.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import * as fcl from "@onflow/fcl"

export class AccountManager {
constructor(private user: typeof fcl.currentUser) {}

getAccounts(): string[] {
// ... get coa address
return []
}

subscribe(callback: (accounts: string[]) => void) {
// ...
}
}
10 changes: 6 additions & 4 deletions packages/fcl-ethereum-provider/src/create-provider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ import {Eip1193Provider} from "./types/provider"
import {FclEthereumProvider} from "./provider"
import {RpcProcessor} from "./rpc/rpc-processor"
import {Service} from "@onflow/typedefs"
import {EventManager} from "./events/event-manager"
import {EventDispatcher} from "./events/event-dispatcher"
import {AccountManager} from "./accounts/account-manager"

/**
* Create a new FCL Ethereum provider
Expand All @@ -29,8 +30,9 @@ export function createProvider(config: {
service?: Service
gateway?: string
}): Eip1193Provider {
const rpcService = new RpcProcessor()
const eventService = new EventManager()
const provider = new FclEthereumProvider(rpcService, eventService)
const accountManager = new AccountManager(config.user)
const rpcProcessor = new RpcProcessor()
const eventProcessor = new EventDispatcher()
const provider = new FclEthereumProvider(rpcProcessor, eventProcessor)
return provider
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import {EventCallback, ProviderEvents} from "../types/provider"
import EventEmitter from "events"

export class EventManager {
export class EventDispatcher {
private eventEmitter = new EventEmitter()

constructor() {}
Expand Down
8 changes: 4 additions & 4 deletions packages/fcl-ethereum-provider/src/provider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ import {
ProviderResponse,
} from "./types/provider"
import {RpcProcessor} from "./rpc/rpc-processor"
import {EventManager} from "./events/event-manager"
import {EventDispatcher} from "./events/event-dispatcher"

export class FclEthereumProvider implements Eip1193Provider {
constructor(
private rpcProcessor: RpcProcessor,
private eventService: EventManager
private eventDispatcher: EventDispatcher
) {}

// Handle requests
Expand All @@ -35,14 +35,14 @@ export class FclEthereumProvider implements Eip1193Provider {
event: E,
listener: EventCallback<ProviderEvents[E]>
): void {
this.eventService.on(event, listener)
this.eventDispatcher.on(event, listener)
}

// Remove event listeners
removeListener<E extends keyof ProviderEvents>(
event: E,
listener: EventCallback<ProviderEvents[E]>
): void {
this.eventService.off(event, listener)
this.eventDispatcher.off(event, listener)
}
}

0 comments on commit 4af4ae4

Please sign in to comment.