Deploy a Workflow
Setup Requirements
Set up Inverter Network SDK: Refer to the Quick Start Guide for detailed instructions.
// EXEMPLE MixedRequestedModules USAGE
import type { ModuleData, MixedRequestedModules } from '@inverter-network/sdk'
const AUT_Roles_v1 = {'<your_module_data>'} as const satisifies ModuleData
const requestedModules = {
fundingManager: 'FM_DepositVault_v1',
paymentProcessor: 'PP_Simple_v1',
authorizer: AUT_Roles_v1,
} as const satisfies MixedRequestedModules
Retrieve the Deployment Functions
To deploy your initial workflow, you will need to retrieve the deployment functions. Please ensure that you adjust the requestedModules
to match the ones you want to include in your workflow. Retrieve the deployWorkflow
function as shown below:
Parameters
requestedModules
(required): This parameter defines the modules which will be deployed.tagConfig
(optional): This parameter is to provide the deployment with parser metadata.
import { sdk } from '<your_sdk_export>'
import type { MixedRequestedModules } from '@inverter-network/sdk'
const { deployWorkflow } = sdk
// Should either be `as const` or be passed dirrectly in the `requestedModules`
const requestedModules = {
fundingManager: 'FM_DepositVault_v1',
paymentProcessor: 'PP_Simple_v1',
authorizer: 'AUT_Roles_v1',
optionalModules: [
'LM_PC_Bounties_v1', 'LM_PC_RecurringPayments_v1'
]
} as const satisfies MixedRequestedModules
const { inputs, estimateGas, run, simulate } = await deployWorkflow({
requestedModules
})
Deploying the Workflow
After setting up your deployment with the deployWorkflow
function, you can proceed to deploy the workflow with the specified modules by calling the run
function and passing the configuration arguments, as shown below:
Parameters
args
(required): These arguments will be strongly typed by the inverter types library, you need to prove the arguments required by the modules.options
(optional): These are contract executions options, i.e. which can define the number of confirmations...
import type { GetDeployWorkflowArgs } from '@inverter-network/sdk'
// Should either be `as const` or be passed dirrectly in the `estimateGas`, `run`, `simulate` or `bytecode` function args
const args = {
// orchestrator section is optional
orchestrator: {
independentUpdates: true,
independentUpdatesAdmin: "0x5eb14c2e7D0cD925327d74ae4ce3fC692ff8ABEF",
},
fundingManager: {
orchestratorTokenAddress: "0x5eb14c2e7D0cD925327d74ae4ce3fC692ff8ABEF",
},
authorizer: {
initialAdmin: "0x7AcaF5360474b8E40f619770c7e8803cf3ED1053",
},
optionalModules: {
LM_PC_RecurringPayments_v1: {
epochLength: "70000000",
},
},
} as const satisfies GetDeployWorkflowArgs<typeof requestedModules>
const { orchestratorAddress, transactionHash } = await run(args);
Last updated