Skip to content

Commit 549df7d

Browse files
feat: add remainingAccess support to getGrantedAccess function
feat: add remainingAccess support to getGrantedAccess function
1 parent b4ccb48 commit 549df7d

File tree

13 files changed

+447
-19
lines changed

13 files changed

+447
-19
lines changed

packages/sdk/src/lib/dataProtectorCore/getGrantedAccess.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ export const getGrantedAccess = async ({
5252
}
5353
);
5454
const grantedAccess = orders?.map((order) =>
55-
formatGrantedAccess(order.order)
55+
formatGrantedAccess(order.order, order.remaining)
5656
);
5757
return { count, grantedAccess };
5858
} catch (e) {

packages/sdk/src/lib/dataProtectorCore/grantAccess.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,5 +166,5 @@ export const grantAccess = async ({
166166
isDone: true,
167167
});
168168

169-
return formatGrantedAccess(datasetorder);
169+
return formatGrantedAccess(datasetorder, parseInt(datasetorder.volume));
170170
};

packages/sdk/src/lib/dataProtectorCore/revokeOneAccess.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ export const revokeOneAccess = async ({
1313
Object.keys(grantedAccess).length === 0 ? undefined : grantedAccess // pass undefined if rest operator returns an empty object to trigger the 'required' check
1414
) as GrantedAccess;
1515
try {
16-
const { txHash } = await iexec.order.cancelDatasetorder(vGrantedAccess);
16+
const { remainingAccess, ...datasetOrder } = vGrantedAccess;
17+
const { txHash } = await iexec.order.cancelDatasetorder(datasetOrder);
1718
return { access: vGrantedAccess, txHash };
1819
} catch (e) {
1920
throw new WorkflowError({

packages/sdk/src/lib/types/coreTypes.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,7 @@ export type GrantedAccess = {
211211
requesterrestrict: string;
212212
salt: string;
213213
sign: string;
214+
remainingAccess: number;
214215
};
215216

216217
export type GrantedAccessResponse = {
Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,28 @@
11
import { GrantedAccess } from '../lib/types/index.js';
22

3-
export const formatGrantedAccess = (order: {
4-
datasetprice: number | string;
5-
volume: number | string;
6-
tag: string;
7-
apprestrict: string;
8-
workerpoolrestrict: string;
9-
requesterrestrict: string;
10-
salt: string;
11-
sign: string;
12-
}): GrantedAccess =>
13-
Object.fromEntries(
3+
export const formatGrantedAccess = (
4+
order: {
5+
dataset: string;
6+
datasetprice: number | string;
7+
volume: number | string;
8+
tag: string;
9+
apprestrict: string;
10+
workerpoolrestrict: string;
11+
requesterrestrict: string;
12+
salt: string;
13+
sign: string;
14+
},
15+
remaining?: number
16+
): GrantedAccess => {
17+
const formattedOrder = Object.fromEntries(
1418
Object.entries(order).map(([key, val]) => [
1519
key,
1620
val.toString().toLowerCase(),
1721
]) // stringify numbers and lowercase addresses to return a clean GrantedAccess
18-
) as GrantedAccess;
22+
) as Omit<GrantedAccess, 'remainingAccess'>;
23+
24+
return {
25+
...formattedOrder,
26+
remainingAccess: remaining || 0,
27+
};
28+
};

packages/sdk/src/utils/validators.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ export const grantedAccessSchema = () =>
9393
requesterrestrict: addressSchema().required(),
9494
salt: stringSchema().required(),
9595
sign: stringSchema().required(),
96+
remainingAccess: number().integer().min(0).required(),
9697
})
9798
.noUnknown()
9899
.default(undefined);

0 commit comments

Comments
 (0)