@iexec/web3mail 0.5.0 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,3 +6,4 @@ export declare const MAX_DESIRED_WORKERPOOL_ORDER_PRICE = 0;
6
6
  export declare const DEFAULT_CONTENT_TYPE = "text/plain";
7
7
  export declare const IPFS_UPLOAD_URL = "/dns4/ipfs-upload.v8-bellecour.iex.ec/https";
8
8
  export declare const DEFAULT_IPFS_GATEWAY = "https://ipfs-gateway.v8-bellecour.iex.ec";
9
+ export declare const WHITELIST_SMART_CONTRACT_ADDRESS = "0x781482C39CcE25546583EaC4957Fb7Bf04C277D2";
@@ -6,4 +6,5 @@ export const MAX_DESIRED_WORKERPOOL_ORDER_PRICE = 0;
6
6
  export const DEFAULT_CONTENT_TYPE = 'text/plain';
7
7
  export const IPFS_UPLOAD_URL = '/dns4/ipfs-upload.v8-bellecour.iex.ec/https';
8
8
  export const DEFAULT_IPFS_GATEWAY = 'https://ipfs-gateway.v8-bellecour.iex.ec';
9
+ export const WHITELIST_SMART_CONTRACT_ADDRESS = '0x781482C39CcE25546583EaC4957Fb7Bf04C277D2';
9
10
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,sBAAsB,GAAG,yBAAyB,CAAC;AAChE,MAAM,CAAC,MAAM,kBAAkB,GAAG,wCAAwC,CAAC;AAC3E,MAAM,CAAC,MAAM,+BAA+B,GAC1C,wEAAwE,CAAC;AAC3E,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAC7C,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,CAAC;AACpD,MAAM,CAAC,MAAM,oBAAoB,GAAG,YAAY,CAAC;AACjD,MAAM,CAAC,MAAM,eAAe,GAAG,6CAA6C,CAAC;AAC7E,MAAM,CAAC,MAAM,oBAAoB,GAAG,0CAA0C,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,sBAAsB,GAAG,yBAAyB,CAAC;AAChE,MAAM,CAAC,MAAM,kBAAkB,GAAG,wCAAwC,CAAC;AAC3E,MAAM,CAAC,MAAM,+BAA+B,GAC1C,wEAAwE,CAAC;AAC3E,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAC7C,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,CAAC;AACpD,MAAM,CAAC,MAAM,oBAAoB,GAAG,YAAY,CAAC;AACjD,MAAM,CAAC,MAAM,eAAe,GAAG,6CAA6C,CAAC;AAC7E,MAAM,CAAC,MAAM,oBAAoB,GAAG,0CAA0C,CAAC;AAC/E,MAAM,CAAC,MAAM,gCAAgC,GAC3C,4CAA4C,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { providers } from 'ethers';
2
2
  import { IExecConfigOptions } from 'iexec/IExecConfig';
3
- import { Contact, SendEmailParams, SendEmailResponse, Web3SignerProvider } from './types.js';
3
+ import { Contact, FetchContactsParams, SendEmailParams, SendEmailResponse, Web3SignerProvider } from './types.js';
4
4
  export declare class IExecWeb3mail {
5
- fetchMyContacts: () => Promise<Contact[]>;
5
+ fetchMyContacts: (args?: FetchContactsParams) => Promise<Contact[]>;
6
6
  sendEmail: (args: SendEmailParams) => Promise<SendEmailResponse>;
7
7
  constructor(ethProvider: providers.ExternalProvider | Web3SignerProvider, options?: {
8
8
  iexecOptions?: IExecConfigOptions;
@@ -19,7 +19,7 @@ export class IExecWeb3mail {
19
19
  catch (e) {
20
20
  throw Error('Impossible to create GraphQLClient');
21
21
  }
22
- this.fetchMyContacts = () => fetchMyContacts({ iexec, graphQLClient });
22
+ this.fetchMyContacts = (args) => fetchMyContacts(Object.assign(Object.assign({}, args), { iexec, graphQLClient }));
23
23
  this.sendEmail = (args) => sendEmail(Object.assign(Object.assign({}, args), { iexec,
24
24
  graphQLClient }));
25
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"IExecWeb3mail.js","sourceRoot":"","sources":["../../src/web3mail/IExecWeb3mail.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAE9B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAO3C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,+BAA+B,EAAE,MAAM,qBAAqB,CAAC;AAEtE,MAAM,OAAO,aAAa;IAIxB,YACE,WAA4D,EAC5D,OAEC;QAED,IAAI,KAAY,CAAC;QACjB,IAAI,aAA4B,CAAC;QACjC,IAAI;YACF,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,WAAW,EAAE,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,CAAC,CAAC;SAC3D;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,KAAK,CAAC,yBAAyB,CAAC,CAAC;SACxC;QAED,IAAI;YACF,aAAa,GAAG,IAAI,aAAa,CAAC,+BAA+B,CAAC,CAAC;SACpE;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,KAAK,CAAC,oCAAoC,CAAC,CAAC;SACnD;QAED,IAAI,CAAC,eAAe,GAAG,GAAG,EAAE,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,SAAS,GAAG,CAAC,IAAqB,EAAE,EAAE,CACzC,SAAS,iCACJ,IAAI,KACP,KAAK;YACL,aAAa,IACb,CAAC;IACP,CAAC;CACF"}
1
+ {"version":3,"file":"IExecWeb3mail.js","sourceRoot":"","sources":["../../src/web3mail/IExecWeb3mail.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAE9B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAQ3C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,+BAA+B,EAAE,MAAM,qBAAqB,CAAC;AAEtE,MAAM,OAAO,aAAa;IAIxB,YACE,WAA4D,EAC5D,OAEC;QAED,IAAI,KAAY,CAAC;QACjB,IAAI,aAA4B,CAAC;QACjC,IAAI;YACF,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,WAAW,EAAE,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,CAAC,CAAC;SAC3D;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,KAAK,CAAC,yBAAyB,CAAC,CAAC;SACxC;QAED,IAAI;YACF,aAAa,GAAG,IAAI,aAAa,CAAC,+BAA+B,CAAC,CAAC;SACpE;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,KAAK,CAAC,oCAAoC,CAAC,CAAC;SACnD;QAED,IAAI,CAAC,eAAe,GAAG,CAAC,IAA0B,EAAE,EAAE,CACpD,eAAe,iCAAM,IAAI,KAAE,KAAK,EAAE,aAAa,IAAG,CAAC;QACrD,IAAI,CAAC,SAAS,GAAG,CAAC,IAAqB,EAAE,EAAE,CACzC,SAAS,iCACJ,IAAI,KACP,KAAK;YACL,aAAa,IACb,CAAC;IACP,CAAC;CACF"}
@@ -1,2 +1,2 @@
1
- import { Contact, IExecConsumer, SubgraphConsumer } from './types.js';
2
- export declare const fetchMyContacts: ({ graphQLClient, iexec, }: IExecConsumer & SubgraphConsumer) => Promise<Contact[]>;
1
+ import { Contact, FetchContactsParams, IExecConsumer, SubgraphConsumer } from './types.js';
2
+ export declare const fetchMyContacts: ({ graphQLClient, iexec, page, pageSize, }: IExecConsumer & SubgraphConsumer & FetchContactsParams) => Promise<Contact[]>;
@@ -7,26 +7,40 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { WEB3_MAIL_DAPP_ADDRESS } from '../config/config.js';
10
+ import { WEB3_MAIL_DAPP_ADDRESS, WHITELIST_SMART_CONTRACT_ADDRESS, } from '../config/config.js';
11
11
  import { WorkflowError } from '../utils/errors.js';
12
12
  import { autoPaginateRequest } from '../utils/paginate.js';
13
13
  import { getValidContact } from '../utils/subgraphQuery.js';
14
14
  import { throwIfMissing } from '../utils/validators.js';
15
- export const fetchMyContacts = ({ graphQLClient = throwIfMissing(), iexec = throwIfMissing(), }) => __awaiter(void 0, void 0, void 0, function* () {
15
+ export const fetchMyContacts = ({ graphQLClient = throwIfMissing(), iexec = throwIfMissing(), page, pageSize, }) => __awaiter(void 0, void 0, void 0, function* () {
16
16
  try {
17
17
  const userAddress = yield iexec.wallet.getAddress();
18
- const showDatasetOrderbookRequest = iexec.orderbook.fetchDatasetOrderbook('any', {
18
+ const datasetOrderbookAuthorizedBySC = yield iexec.orderbook.fetchDatasetOrderbook('any', {
19
+ app: WHITELIST_SMART_CONTRACT_ADDRESS,
20
+ requester: userAddress,
21
+ page,
22
+ pageSize,
23
+ });
24
+ const datasetOrderbookAuthorizedByENS = yield iexec.orderbook.fetchDatasetOrderbook('any', {
19
25
  app: WEB3_MAIL_DAPP_ADDRESS,
20
26
  requester: userAddress,
27
+ page,
28
+ pageSize,
29
+ });
30
+ const { orders: ensOrders } = yield autoPaginateRequest({
31
+ request: datasetOrderbookAuthorizedByENS,
21
32
  });
22
- const { orders } = yield autoPaginateRequest({
23
- request: showDatasetOrderbookRequest,
33
+ const { orders: scOrders } = yield autoPaginateRequest({
34
+ request: datasetOrderbookAuthorizedBySC,
24
35
  });
25
- let myContacts = [];
36
+ const orders = ensOrders.concat(scOrders);
37
+ const myContacts = [];
26
38
  const web3DappResolvedAddress = yield iexec.ens.resolveName(WEB3_MAIL_DAPP_ADDRESS);
27
39
  orders.forEach((order) => {
28
40
  if (order.order.apprestrict.toLowerCase() ===
29
- web3DappResolvedAddress.toLowerCase()) {
41
+ web3DappResolvedAddress.toLowerCase() ||
42
+ order.order.apprestrict.toLowerCase() ===
43
+ WHITELIST_SMART_CONTRACT_ADDRESS.toLowerCase()) {
30
44
  const contact = {
31
45
  address: order.order.dataset.toLowerCase(),
32
46
  owner: order.signer.toLowerCase(),
@@ -1 +1 @@
1
- {"version":3,"file":"fetchMyContacts.js","sourceRoot":"","sources":["../../src/web3mail/fetchMyContacts.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAO,EACpC,aAAa,GAAG,cAAc,EAAE,EAChC,KAAK,GAAG,cAAc,EAAE,GACS,EAAsB,EAAE;IACzD,IAAI;QACF,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACpD,MAAM,2BAA2B,GAAG,KAAK,CAAC,SAAS,CAAC,qBAAqB,CACvE,KAAK,EACL;YACE,GAAG,EAAE,sBAAsB;YAC3B,SAAS,EAAE,WAAW;SACvB,CACF,CAAC;QACF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC;YAC3C,OAAO,EAAE,2BAA2B;SACrC,CAAC,CAAC;QACH,IAAI,UAAU,GAAc,EAAE,CAAC;QAC/B,MAAM,uBAAuB,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,WAAW,CACzD,sBAAsB,CACvB,CAAC;QAEF,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACvB,IACE,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE;gBACrC,uBAAuB,CAAC,WAAW,EAAE,EACrC;gBACA,MAAM,OAAO,GAAG;oBACd,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE;oBAC1C,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE;oBACjC,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;iBACjD,CAAC;gBACF,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,MAAM,eAAe,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAEvE,OAAO,aAAa,CAAC;KACtB;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,IAAI,aAAa,CACrB,gCAAgC,KAAK,CAAC,OAAO,EAAE,EAC/C,KAAK,CACN,CAAC;KACH;AACH,CAAC,CAAA,CAAC"}
1
+ {"version":3,"file":"fetchMyContacts.js","sourceRoot":"","sources":["../../src/web3mail/fetchMyContacts.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACL,sBAAsB,EACtB,gCAAgC,GACjC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAQxD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAO,EACpC,aAAa,GAAG,cAAc,EAAE,EAChC,KAAK,GAAG,cAAc,EAAE,EACxB,IAAI,EACJ,QAAQ,GAC+C,EAEvD,EAAE;IACF,IAAI;QACF,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACpD,MAAM,8BAA8B,GAClC,MAAM,KAAK,CAAC,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE;YACjD,GAAG,EAAE,gCAAgC;YACrC,SAAS,EAAE,WAAW;YACtB,IAAI;YACJ,QAAQ;SACT,CAAC,CAAC;QACL,MAAM,+BAA+B,GACnC,MAAM,KAAK,CAAC,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE;YACjD,GAAG,EAAE,sBAAsB;YAC3B,SAAS,EAAE,WAAW;YACtB,IAAI;YACJ,QAAQ;SACT,CAAC,CAAC;QAEL,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,mBAAmB,CAAC;YACtD,OAAO,EAAE,+BAA+B;SACzC,CAAC,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,mBAAmB,CAAC;YACrD,OAAO,EAAE,8BAA8B;SACxC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAc,EAAE,CAAC;QACjC,MAAM,uBAAuB,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,WAAW,CACzD,sBAAsB,CACvB,CAAC;QAEF,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACvB,IACE,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE;gBACnC,uBAAuB,CAAC,WAAW,EAAE;gBACvC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE;oBACnC,gCAAgC,CAAC,WAAW,EAAE,EAChD;gBACA,MAAM,OAAO,GAAG;oBACd,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE;oBAC1C,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE;oBACjC,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;iBACjD,CAAC;gBACF,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,MAAM,eAAe,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAEvE,OAAO,aAAa,CAAC;KACtB;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,IAAI,aAAa,CACrB,gCAAgC,KAAK,CAAC,OAAO,EAAE,EAC/C,KAAK,CACN,CAAC;KACH;AACH,CAAC,CAAA,CAAC"}
@@ -104,7 +104,7 @@ export const sendEmail = ({ graphQLClient = throwIfMissing(), iexec = throwIfMis
104
104
  const multiaddr = `/ipfs/${cid}`;
105
105
  yield iexec.secrets.pushRequesterSecret(requesterSecretId, JSON.stringify({
106
106
  emailSubject: vEmailSubject,
107
- emailContentOrMultiAddr: multiaddr,
107
+ emailContentMultiAddr: multiaddr,
108
108
  contentType: vContentType,
109
109
  senderName: vSenderName,
110
110
  emailContentEncryptionKey,
@@ -1 +1 @@
1
- {"version":3,"file":"sendEmail.js","sourceRoot":"","sources":["../../src/web3mail/sendEmail.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sendEmail.js","sourceRoot":"","sources":["../../src/web3mail/sendEmail.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,16 @@ export type SendEmailParams = {
18
18
  contentType?: string;
19
19
  senderName?: string;
20
20
  };
21
+ export type FetchContactsParams = {
22
+ /**
23
+ * Index of the page to fetch
24
+ */
25
+ page?: number;
26
+ /**
27
+ * Size of the page to fetch
28
+ */
29
+ pageSize?: number;
30
+ };
21
31
  export type SendEmailResponse = {
22
32
  taskId: Address;
23
33
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iexec/web3mail",
3
- "version": "0.5.0",
3
+ "version": "0.5.2",
4
4
  "description": "This product enables users to confidentially store data–such as mail address, documents, personal information ...",
5
5
  "main": "./dist/index.js",
6
6
  "type": "module",
@@ -20,7 +20,7 @@
20
20
  "scripts": {
21
21
  "build": "rm -rf dist && tsc",
22
22
  "test": "rm -rf dist && tsc && NODE_OPTIONS=--experimental-vm-modules npx jest --coverage",
23
- "lint": "eslint . --ext .ts",
23
+ "lint": "eslint .",
24
24
  "format": "prettier --write \"src/**/*.ts\"",
25
25
  "check-format": "prettier --check \"src/**/*.ts\""
26
26
  },
@@ -38,26 +38,30 @@
38
38
  },
39
39
  "homepage": "https://github.com/iExecBlockchainComputing/web3mail-sdk#readme",
40
40
  "devDependencies": {
41
- "@iexec/dataprotector": "^0.1.2",
41
+ "@iexec/dataprotector": "^0.2.0",
42
+ "@jest/globals": "^29.7.0",
42
43
  "@types/jest": "^29.5.4",
43
- "@typescript-eslint/eslint-plugin": "^5.54.0",
44
- "eslint": "^8.35.0",
45
- "eslint-config-prettier": "^8.6.0",
46
- "eslint-config-standard-with-typescript": "^34.0.0",
47
- "eslint-plugin-import": "^2.27.5",
48
- "eslint-plugin-n": "^15.6.1",
49
- "eslint-plugin-promise": "^6.1.1",
44
+ "@typescript-eslint/eslint-plugin": "^6.7.5",
45
+ "@typescript-eslint/parser": "^6.7.5",
46
+ "eslint": "^8.51.0",
47
+ "eslint-config-airbnb-typescript": "^17.1.0",
48
+ "eslint-config-prettier": "^9.0.0",
49
+ "eslint-plugin-import": "^2.28.1",
50
+ "eslint-plugin-jest": "^27.4.2",
51
+ "eslint-plugin-sonarjs": "^0.21.0",
50
52
  "jest": "^29.5.0",
51
53
  "prettier": "^2.8.4",
52
54
  "ts-jest": "^29.1.0",
53
55
  "ts-loader": "^9.4.2",
54
- "typescript": "^4.9.5"
56
+ "typescript": "^4.9.5",
57
+ "whitelist-smart-contract": "github:iExecBlockchainComputing/whitelist-smart-contract#0.2.0"
55
58
  },
56
59
  "dependencies": {
57
60
  "@ethersproject/bytes": "^5.7.0",
58
61
  "@ethersproject/random": "^5.7.0",
62
+ "ethers": "^5.7.2",
59
63
  "graphql-request": "^6.1.0",
60
- "iexec": "^8.2.1",
64
+ "iexec": "^8.4.0",
61
65
  "kubo-rpc-client": "^3.0.1",
62
66
  "yup": "^1.1.1"
63
67
  }
@@ -7,3 +7,5 @@ export const MAX_DESIRED_WORKERPOOL_ORDER_PRICE = 0;
7
7
  export const DEFAULT_CONTENT_TYPE = 'text/plain';
8
8
  export const IPFS_UPLOAD_URL = '/dns4/ipfs-upload.v8-bellecour.iex.ec/https';
9
9
  export const DEFAULT_IPFS_GATEWAY = 'https://ipfs-gateway.v8-bellecour.iex.ec';
10
+ export const WHITELIST_SMART_CONTRACT_ADDRESS =
11
+ '0x781482C39CcE25546583EaC4957Fb7Bf04C277D2';
@@ -5,6 +5,7 @@ import { fetchMyContacts } from './fetchMyContacts.js';
5
5
  import { sendEmail } from './sendEmail.js';
6
6
  import {
7
7
  Contact,
8
+ FetchContactsParams,
8
9
  SendEmailParams,
9
10
  SendEmailResponse,
10
11
  Web3SignerProvider,
@@ -13,7 +14,7 @@ import { GraphQLClient } from 'graphql-request';
13
14
  import { DATAPROTECTOR_SUBGRAPH_ENDPOINT } from '../config/config.js';
14
15
 
15
16
  export class IExecWeb3mail {
16
- fetchMyContacts: () => Promise<Contact[]>;
17
+ fetchMyContacts: (args?: FetchContactsParams) => Promise<Contact[]>;
17
18
  sendEmail: (args: SendEmailParams) => Promise<SendEmailResponse>;
18
19
 
19
20
  constructor(
@@ -36,7 +37,8 @@ export class IExecWeb3mail {
36
37
  throw Error('Impossible to create GraphQLClient');
37
38
  }
38
39
 
39
- this.fetchMyContacts = () => fetchMyContacts({ iexec, graphQLClient });
40
+ this.fetchMyContacts = (args?: FetchContactsParams) =>
41
+ fetchMyContacts({ ...args, iexec, graphQLClient });
40
42
  this.sendEmail = (args: SendEmailParams) =>
41
43
  sendEmail({
42
44
  ...args,
@@ -1,27 +1,52 @@
1
- import { WEB3_MAIL_DAPP_ADDRESS } from '../config/config.js';
1
+ import {
2
+ WEB3_MAIL_DAPP_ADDRESS,
3
+ WHITELIST_SMART_CONTRACT_ADDRESS,
4
+ } from '../config/config.js';
2
5
  import { WorkflowError } from '../utils/errors.js';
3
6
  import { autoPaginateRequest } from '../utils/paginate.js';
4
7
  import { getValidContact } from '../utils/subgraphQuery.js';
5
8
  import { throwIfMissing } from '../utils/validators.js';
6
- import { Contact, IExecConsumer, SubgraphConsumer } from './types.js';
9
+ import {
10
+ Contact,
11
+ FetchContactsParams,
12
+ IExecConsumer,
13
+ SubgraphConsumer,
14
+ } from './types.js';
7
15
 
8
16
  export const fetchMyContacts = async ({
9
17
  graphQLClient = throwIfMissing(),
10
18
  iexec = throwIfMissing(),
11
- }: IExecConsumer & SubgraphConsumer): Promise<Contact[]> => {
19
+ page,
20
+ pageSize,
21
+ }: IExecConsumer & SubgraphConsumer & FetchContactsParams): Promise<
22
+ Contact[]
23
+ > => {
12
24
  try {
13
25
  const userAddress = await iexec.wallet.getAddress();
14
- const showDatasetOrderbookRequest = iexec.orderbook.fetchDatasetOrderbook(
15
- 'any',
16
- {
26
+ const datasetOrderbookAuthorizedBySC =
27
+ await iexec.orderbook.fetchDatasetOrderbook('any', {
28
+ app: WHITELIST_SMART_CONTRACT_ADDRESS,
29
+ requester: userAddress,
30
+ page,
31
+ pageSize,
32
+ });
33
+ const datasetOrderbookAuthorizedByENS =
34
+ await iexec.orderbook.fetchDatasetOrderbook('any', {
17
35
  app: WEB3_MAIL_DAPP_ADDRESS,
18
36
  requester: userAddress,
19
- }
20
- );
21
- const { orders } = await autoPaginateRequest({
22
- request: showDatasetOrderbookRequest,
37
+ page,
38
+ pageSize,
39
+ });
40
+
41
+ const { orders: ensOrders } = await autoPaginateRequest({
42
+ request: datasetOrderbookAuthorizedByENS,
23
43
  });
24
- let myContacts: Contact[] = [];
44
+ const { orders: scOrders } = await autoPaginateRequest({
45
+ request: datasetOrderbookAuthorizedBySC,
46
+ });
47
+
48
+ const orders = ensOrders.concat(scOrders);
49
+ const myContacts: Contact[] = [];
25
50
  const web3DappResolvedAddress = await iexec.ens.resolveName(
26
51
  WEB3_MAIL_DAPP_ADDRESS
27
52
  );
@@ -29,7 +54,9 @@ export const fetchMyContacts = async ({
29
54
  orders.forEach((order) => {
30
55
  if (
31
56
  order.order.apprestrict.toLowerCase() ===
32
- web3DappResolvedAddress.toLowerCase()
57
+ web3DappResolvedAddress.toLowerCase() ||
58
+ order.order.apprestrict.toLowerCase() ===
59
+ WHITELIST_SMART_CONTRACT_ADDRESS.toLowerCase()
33
60
  ) {
34
61
  const contact = {
35
62
  address: order.order.dataset.toLowerCase(),
@@ -155,7 +155,7 @@ export const sendEmail = async ({
155
155
  requesterSecretId,
156
156
  JSON.stringify({
157
157
  emailSubject: vEmailSubject,
158
- emailContentOrMultiAddr: multiaddr,
158
+ emailContentMultiAddr: multiaddr,
159
159
  contentType: vContentType,
160
160
  senderName: vSenderName,
161
161
  emailContentEncryptionKey,
@@ -24,6 +24,16 @@ export type SendEmailParams = {
24
24
  senderName?: string;
25
25
  };
26
26
 
27
+ export type FetchContactsParams = {
28
+ /**
29
+ * Index of the page to fetch
30
+ */
31
+ page?: number;
32
+ /**
33
+ * Size of the page to fetch
34
+ */
35
+ pageSize?: number;
36
+ };
27
37
  export type SendEmailResponse = {
28
38
  taskId: Address;
29
39
  };