refactor handle workflow

This commit is contained in:
Joe Howarth 2023-01-20 11:59:57 -07:00 committed by chase-45
parent 4f9e02111d
commit 2cf9fb0dca
1 changed files with 15 additions and 11 deletions

View File

@ -531,6 +531,12 @@ export class GenericRelayerPlugin implements Plugin<WorkflowPayload> {
this.logger.info(workflow.data.deliveryVaaIndex)
this.logger.info(workflow.data.vaas)
const payload = this.parseWorkflowPayload(workflow)
switch (payload.payloadId) {
case RelayerPayloadId.Delivery:
return await this.handleDeliveryWorkflow(payload, execute)
case RelayerPayloadId.Redelivery:
return await this.handleRedeliveryWorkflow(payload, execute)
}
}
async handleDeliveryWorkflow(
@ -542,7 +548,6 @@ export class GenericRelayerPlugin implements Plugin<WorkflowPayload> {
const chainId = assertEvmChainId(ix.targetChain)
const budget = ix.applicationBudgetTarget.add(ix.maximumRefundTarget).add(100)
const chainId = ix.targetChain as wh.EVMChainId
// todo: consider parallelizing this
await execute.onEVM({
chainId,
@ -554,7 +559,7 @@ export class GenericRelayerPlugin implements Plugin<WorkflowPayload> {
const input: CoreRelayerStructs.TargetDeliveryParametersSingleStruct = {
encodedVMs: payload.vaas,
deliveryIndex: payload.coreRelayerVaaIndex,
deliveryIndex: payload.deliveryVaaIndex,
multisendIndex: i,
relayerRefundAddress: relayProvider.address,
}
@ -604,16 +609,15 @@ export class GenericRelayerPlugin implements Plugin<WorkflowPayload> {
const { newApplicationBudgetTarget, newMaximumRefundTarget } = redelivery.ix
const budget = newApplicationBudgetTarget.add(newMaximumRefundTarget).add(100)
const input: CoreRelayerStructs.TargetRedeliveryByTxHashParamsSingleStruct = {
sourceEncodedVMs: payload.vaas,
deliveryIndex: payload.deliveryVaaIndex,
multisendIndex: redelivery.ix.mul
}
relayProvider
.redeliverSingle(input, { value: budget, gasLimit: 3000000 })
.then((x) => x.wait())
const input: CoreRelayerStructs.TargetRedeliveryByTxHashParamsSingleStruct = {
sourceEncodedVMs: payload.vaas,
deliveryIndex: payload.deliveryVaaIndex,
multisendIndex: redelivery.ix.mul,
}
relayProvider
.redeliverSingle(input, { value: budget, gasLimit: 3000000 })
.then((x) => x.wait())
this.logger.info(`Redelivered instruction to chain ${chainId}`)
},