Skip to main content

@exodus/web3-management

Apps connectivity library for Exodus management.

Usage

const EventEmitter = require('events')

// Separate entry points are supported
const { ManagementProvider } = require('@exodus/web3-management/provider')
const { registerRPCHandlers } = require('@exodus/web3-management/rpc')

// Create transport.
const transport = new EventEmitter()
transport.write = (data) => {
setTimeout(() => {
transport.emit('data', data)
})
}

// Create Exodus global API.
const accountsObservable = new Observable()

const exodus = {
management: new ManegementProvider({
transport,
}),
}

// Inject the Exodus object into the app.
window.exodus = exodus

// Register RPC handlers for requests the Provider can call.
registerRPCHandlers({
transport,
deps: {}, // required deps
})

Use cases

Wallet selector feature

img.png

To improve code reusability the feature works by utilizing the separate ManagementProvider class and its own RPC, which are both asset-agnostic.

Here's a high-level data flow chart (Ethereum Provider is used as an example):