processProtectedData
Allows processing a protected dataset through use of a specified iExec application.
IMPORTANT
You must ensure this application has authorization to use the protectedData
. You may grant this permission using the grantAccess
method.
Usage
const processProtectedDataResponse =
await dataProtectorCore.processProtectedData({
protectedData: '0x123abc...',
app: '0x456def...',
maxPrice: 10,
args: 'arg1 arg2',
inputFiles: ['https://example.com/file1', 'https://example.com/file2'],
secrets: {
1: 'secret1',
2: 'secret2',
},
});
Parameters
import { type ProcessProtectedDataParams } from '@iexec/dataprotector';
protectedData Required *
Type: AddressOrENS
The ETH address or Ethereum Name Service (ENS) reference for the protected data you wish the app
to process.
const processProtectedDataResponse =
await dataProtectorCore.processProtectedData({
protectedData: '0x123abc...',
app: '0x456def...',
});
app Required *
Type: AddressOrENS
The ETH address or Ethereum Name Service (ENS) address for the iExec application to process the protected data.
const processProtectedDataResponse =
await dataProtectorCore.processProtectedData({
protectedData: '0x123abc...',
app: '0x456def...',
});
userWhitelist Optional
Type: Address
If access to the protected data is granted to a group of users via a whitelist contract, you must use this userWhitelist
parameter. The value should be the whitelist contract address that has access to the protected data.
const processProtectedDataResponse =
await dataProtectorCore.processProtectedData({
protectedData: '0x123abc...',
app: '0x456def...',
userWhitelist: '0x656def...',
});
maxPrice Optional
Type: number
The maximum price (in nRLC) that a requester is willing to pay for each task related to processing the protected data. It is the sum of the application price, dataset price, and workerpool price per task.
const processProtectedDataResponse =
await dataProtectorCore.processProtectedData({
protectedData: '0x123abc...',
app: '0x456def...',
maxPrice: 10,
});
args Optional
Type: string
Set of execution arguments for the application.
const processProtectedDataResponse =
await dataProtectorCore.processProtectedData({
protectedData: '0x123abc...',
app: '0x456def...',
args: 'arg1 arg2',
});
DANGER
Do not use this to provide any sensitive information to the application. All arguments passed this way are visible in plain text using the iExec blockchain explorer.
inputFiles Optional
Type: string[]
A set of URLs representing the input files required for application execution.
const processProtectedDataResponse =
await dataProtectorCore.processProtectedData({
protectedData: '0x123abc...',
app: '0x456def...',
inputFiles: ['https://example.com/file1', 'https://example.com/file2'],
});
secrets Optional
Type: Record<number, string>
A set of requester secrets necessary for the application's execution. This is represented as a mapping of numerical identifiers to corresponding secrets stored in the secrets manager needed for the application's execution.
Secrets are accessible during the application's execution as environment variables. For more details, see Access requester secrets.
const processProtectedDataResponse = await dataProtectorCore.processProtectedData({
protectedData: '0x123abc...',
app: '0x456def...',
maxPrice: 10,
secrets: {
1: 'secret1',
2: 'secret2',
},
});
workerpool Optional
Type: AddressOrENS | 'any'
Default: prod-v8-bellecour.main.pools.iexec.eth
The ETH address or Ethereum Name Service (ENS) address for the iExec workerpool. It's the confidential computer on which the iExec application will run.
TIP
iExec currently offers a production workerpool located at the Ethereum Name Service (ENS) address prod-v8-bellecour.main.pools.iexec.eth
. This is the default workerpool for running confidential computations on the iExec platform.
If you don't specify a workerpool preference, 0x0000000000000000000000000000000000000000 represents any randomly available workerpool.
const processProtectedDataResponse =
await dataProtectorCore.processProtectedData({
protectedData: '0x123abc...',
app: '0x456def...',
workerpool: '0xa5de76...',
});
onStatusUpdate Optional
Type: OnStatusUpdateFn<ProcessProtectedDataStatuses>
Callback function to be notified at intermediate steps.
const processProtectedDataResponse = await dataProtectorCore.processProtectedData({
protectedData: '0x123abc...',
app: '0x456def...',
onStatusUpdate: ({ title, isDone }) => {
console.log(title, isDone);
},
});
You can expect this callback function to be called with the following titles:
'FETCH_PROTECTED_DATA_ORDERBOOK';
'FETCH_APP_ORDERBOOK';
'FETCH_WORKERPOOL_ORDERBOOK';
'PUSH_REQUESTER_SECRET';
'REQUEST_TO_PROCESS_PROTECTED_DATA';
'CONSUME_TASK';
'CONSUME_RESULT_DOWNLOAD';
'CONSUME_RESULT_DECRYPT';
Once with isDone: false
, and then with isDone: true
Return value
import { type ProcessProtectedDataResponse } from '@iexec/dataprotector';
txHash
string
The ID of the transaction that happened on iExec's side chain. You may view details on the transaction using the iExec explorer.
dealId
string
Identifies the specific deal associated with this transaction.
taskId
string
A unique identifier associated with a task currently running on the iExec Bellecour side chain. You may monitor task execution with the iExec blockchain explorer.
result
ArrayBuffer
The actual content of the protected file.