Skip to main content

Scaffold Package

Principal purpose of scaffold package is to "glue" ui and core packages together into full modal experience.

Scaffold package is responsible for creating complete layouts, views, partials and hooking them up to core logic.

Secondary purpose of this package is to export re-usable class (client) to create Web3Modal instance that bootstraps everything up and can be used to extend framework specific classes i.e. Wagmi Web3Modal by abstracting as much of re-usable logic as possible.

Core modal components like router and modal shell

Partials

Complex peaces of ui aka widgets that can be re-used in views

Views

Individual modal views

Client

interface Options {
networkControllerClient: NetworkControllerClient
connectionControllerClient: ConnectionControllerClient
projectId: ProjectId
sdkVersion: SdkVersion
}

class Web3ModalScaffold {
// Tracks if async initialization is in progress or resolved
private initPromise: Promise<void> | undefined

// Initializes core controllers and bootstrap logic, sets initPromise
constructor(options: Options): void

// Awaits initialization, opens modal
public open(options?: { view: string }): Promise<void>

// Awaits initialization, closes modal
public close(): Promise<void>

// Exposes AccountController.setIsConnected to extending clients
protected setIsConnected: AccountController['setIsConnected']

// Exposes AccountController.setCaipAddress to extending clients
protected setCaipAddress: AccountController['setCaipAddress']

// Exposes AccountController.setBalance to extending clients
protected setBalance: AccountController['setBalance']

// Exposes AccountController.setProfileName to extending clients
protected setProfileName: AccountController['setProfileName']

// Exposes AccountController.setProfileImage to extending clients
protected setProfileImage: AccountController['setProfileImage']

// Exposes AccountController.resetAccount to extending clients
protected resetAccount: AccountController['resetAccount']

// Exposes NetworkController.setCaipNetwork to extending clients
protected setCaipNetwork: NetworkController['setCaipNetwork']

// Exposes NetworkController.state.caipNetwork to extending clients
protected getCaipNetwork: NetworkController['state']['caipNetwork']

// Exposes NetworkController.setRequestedCaipNetworks to extending clients
protected setRequestedCaipNetworks: NetworkController['setRequestedCaipNetworks']

// Exposes NetworkController.getApprovedCaipNetworks to extending clients
protected getApprovedCaipNetworks: NetworkController['getApprovedCaipNetworks']

// Exposes NetworkController.resetNetwork to extending clients
protected resetNetwork: NetworkController['resetNetwork']

// Exposes ConnectorController.setConnectors to extending clients
protected setConnectors: ConnectorController['setConnectors']

// Exposes ConnectorController.resetWcConnection to extending clients
protected resetWcConnection: ConnectorController['resetWcConnection']
}