@@ -26,7 +26,6 @@ import {
2626} from "../../lib/const.js" ;
2727import {
2828 getContracts ,
29- getSignerAddress ,
3029 multicallRead ,
3130 populateTx ,
3231 signBatch ,
@@ -54,7 +53,6 @@ export default class DealExit extends BaseCommand<typeof DealExit> {
5453 async run ( ) : Promise < void > {
5554 const { flags } = await initCli ( this , await this . parse ( DealExit ) ) ;
5655 const { contracts } = await getContracts ( ) ;
57- const signerAddress = await getSignerAddress ( ) ;
5856
5957 const dealIds =
6058 // flags.all
@@ -78,62 +76,45 @@ export default class DealExit extends BaseCommand<typeof DealExit> {
7876 }
7977
8078 // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
81- const workersFromRPC = ( await multicallRead (
79+ const workerIdsFromRPC = ( await multicallRead (
8280 dealIds . map ( ( id ) : MulticallReadItem => {
83- const deal = contracts . getDeal ( id ) ;
81+ const deal = contracts . getDealV2 ( id ) ;
8482 return {
8583 target : id ,
86- callData : deal . interface . encodeFunctionData ( "getWorkers " ) ,
84+ callData : deal . interface . encodeFunctionData ( "getWorkerIds " ) ,
8785 decode ( returnData ) {
8886 return deal . interface . decodeFunctionResult (
89- "getWorkers " ,
87+ "getWorkerIds " ,
9088 returnData ,
9189 ) ;
9290 } ,
9391 } ;
9492 } ) ,
95- ) ) as Awaited < ReturnType < ReturnType < Contracts [ "getDeal" ] > [ "getWorkers" ] > > [ ] ;
93+ ) ) as Awaited <
94+ ReturnType < ReturnType < Contracts [ "getDealV2" ] > [ "getWorkerIds" ] >
95+ > [ ] ;
9696
97- const dealWorkers = dealIds . map ( ( id , i ) => {
98- const deal = contracts . getDeal ( id ) ;
99- const workers = workersFromRPC [ i ] ;
100-
101- return {
102- dealId : id ,
103- workers : ( workers ?? [ ] )
104- . filter ( ( worker ) => {
105- return worker . provider . toLowerCase ( ) === signerAddress ;
106- } )
107- . map ( ( worker ) => {
108- return { worker, deal } ;
109- } ) ,
110- } ;
97+ const dealWorkerIds = dealIds . map ( ( dealId , i ) => {
98+ return { dealId, workerIds : workerIdsFromRPC [ i ] ?? [ ] } ;
11199 } ) ;
112100
113- for ( const { dealId, workers } of dealWorkers ) {
114- const [ firstWorker , ...restWorkers ] = workers ;
115-
116- if ( firstWorker === undefined ) {
117- commandObj . warn (
118- `No workers found for address ${ signerAddress } and deal id: ${ dealId } ` ,
119- ) ;
101+ for ( const { dealId, workerIds } of dealWorkerIds ) {
102+ const deal = contracts . getDealV2 ( dealId ) ;
103+ const [ firstWorkerId , ...restWorkerIds ] = workerIds ;
120104
105+ if ( firstWorkerId === undefined ) {
106+ commandObj . warn ( `No workers found for deal id: ${ dealId } ` ) ;
121107 continue ;
122108 }
123109
124110 await signBatch ( {
125- title : `Remove the following workers from deal ${ dealId } :\n\n${ workers
126- . map ( ( { worker : { onchainId } } ) => {
127- return onchainId ;
128- } )
129- . join ( "\n" ) } `,
111+ title : `Remove the following workers from deal ${ dealId } :\n\n${ workerIds . join (
112+ "\n" ,
113+ ) } `,
130114 populatedTxs : [
131- populateTx (
132- firstWorker . deal . removeWorker ,
133- firstWorker . worker . onchainId ,
134- ) ,
135- ...restWorkers . map ( ( { deal, worker : { onchainId } } ) => {
136- return populateTx ( deal . removeWorker , onchainId ) ;
115+ populateTx ( deal . removeWorker , firstWorkerId ) ,
116+ ...restWorkerIds . map ( ( workerId ) => {
117+ return populateTx ( deal . removeWorker , workerId ) ;
137118 } ) ,
138119 ] ,
139120 } ) ;
0 commit comments