The getWorkflow method is the standard way of getting a whole workflow with instances of all associated modules.
Parameters: an object with the following properties
{ publicClient: PublicClient // the public client / provider to make RPC calls walletClient: WalletClient // the wallet client to sign and submit transactions orchestratorAddress: 0x${string} // the address of a deployed orchestrator proxy contract workflowOrientation?: WorkflowOrientation // includes a specification of the modules used by the workflow. That is which Authorizer, Funding Manager, Payment Processor and optional logic modules are used.
}
Note: passing a workflowOrientation will not just make the instantiation process faster (fewer RPC calls), but also ensure typesafety and type completion.
Returns: on object with the following properties
// each ModuleName corresponds to the name of a module (e.g. FM_Rebasing_v1) // and each Module is a module instance as described in the previous section{ orchestrator: ReturnType<typeof getModule<'Orchestrator_v1',W>> fundingManager: ReturnType<typeof getModule<ModuleName,W>> authorizer: ReturnType<typeof getModule<ModuleName,W>> paymentProcessor: ReturnType<typeof getModule<ModuleName,W>> optionalModule: { [name: ModuleName]: ReturnType<typeof getModule<ModuleName,W>> } erc20Module: ReturnType<typeof getModule<'ERC20',W>> erc20Decimals: number erc20Symbol: string}