55 addressOrEnsSchema ,
66 campaignRequestSchema ,
77 throwIfMissing ,
8+ booleanSchema ,
89} from '../utils/validators.js' ;
910import {
1011 CampaignRequest ,
@@ -19,6 +20,7 @@ export const sendEmailCampaign = async ({
1920 dataProtector = throwIfMissing ( ) ,
2021 workerpoolAddressOrEns = throwIfMissing ( ) ,
2122 campaignRequest,
23+ allowDeposit = false ,
2224} : DataProtectorConsumer &
2325 SendEmailCampaignParams ) : Promise < SendEmailCampaignResponse > => {
2426 const vCampaignRequest = campaignRequestSchema ( )
@@ -31,6 +33,10 @@ export const sendEmailCampaign = async ({
3133 . label ( 'workerpoolAddressOrEns' )
3234 . validateSync ( workerpoolAddressOrEns ) ;
3335
36+ const vAllowDeposit = booleanSchema ( )
37+ . label ( 'allowDeposit' )
38+ . validateSync ( allowDeposit ) ;
39+
3440 if (
3541 vCampaignRequest . workerpool !== NULL_ADDRESS &&
3642 vCampaignRequest . workerpool . toLowerCase ( ) !==
@@ -43,10 +49,14 @@ export const sendEmailCampaign = async ({
4349
4450 try {
4551 // Process the prepared bulk request
52+ // TODO: Remove @ts -ignore once @iexec/dataprotector is updated to a version that includes allowDeposit in ProcessBulkRequestParams types
53+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
54+ // @ts -ignore - allowDeposit is supported at runtime but not yet in TypeScript types
4655 const processBulkRequestResponse = await dataProtector . processBulkRequest ( {
4756 bulkRequest : vCampaignRequest ,
4857 workerpool : vWorkerpoolAddressOrEns ,
4958 waitForResult : false ,
59+ allowDeposit : vAllowDeposit ,
5060 } ) ;
5161
5262 return processBulkRequestResponse ;
0 commit comments