All notable changes to this project will be documented in this file.
- added key
isUserRejection
inWeb3ProviderError
set totrue
when the error is detected as a user rejection task.fetchOffchainInfo(taskid)
to get off-chain status information about the task from the workerpooltask.fetchLogs(taskid)
to fetch app logs from the workers
iexec_result_storage_proxy
default value is no more set in request params- removed deprecated request param
iexec_developer_logger
- change information exposed by
iexec task debug
for better readability
- IExec
enterprise
flavour is removed, althoughenterprise
flavour support was dropped for a while the "enterprise" specific methods and keys were still present iniexec
SDK. These are now removed, although the changes impact some parts of the API, these changes should not impact developers using theiexec
package.- [BREAKING]
IExecModule
- removed optional constructor param
flavour
- removed optional constructor param
- [BREAKING]
IExecConfig
- removed
resolveStandardContractsClient
andresolveEnterpriseContractsClient
methods - removed optional constructor param
flavour
andenterpriseSwapConf
- removed
- [BREAKING]
IExecWalletModule
- removed
wrapEnterpriseRLC
andunwrapEnterpriseRLC
methods
- removed
- [BREAKING]
IExecContractsClient
- removed optional constructor param
flavour
- removed
flavour
key
- removed optional constructor param
- [BREAKING] CLI
chain.json
configuration file- removed
flavour
key - removed
[chainName].enterprise
key
- removed
- [BREAKING] CLI
iexec wallet
command- removed
swap-RLC-for-eRLC
andswap-eRLC-for-RLC
- removed
- [BREAKING]
- added account methods for staked RLC allowance management
- allowance
- approve
- revoke
- added support for iExec voucher
- show
- authorize
- revoke
- added support for using a voucher to pay for a deal
- Upgrade PoCo to v5.5.0
- Typescript fixes
- fix an issue occurring when network 134 is already registered on ethers
- doc fixes
- added support for ethers
AbstractProvider
,AbstractSigner
andBrowserProvider
to instantiate modules
- reduced default polling interval for faster tx confirmation
- more permissive url validation for
iexec_input_files
- removed
ensRegistryAddress
option (use ethersNetwork.register()
to configure custom networks supporting ENS) - CLI removed
iexec registry
commands
- fixed exposed version
- a generic
ApiCallError
is thrown when a network error occurs while connecting to a service or when the service returns a HTTP 5xx status code, each service has a dedicated inherited error classSmsCallError
for SMS call errorsResultProxyCallError
for Result Proxy call errorsMarketCallError
for Market API call errorsIpfsGatewayCallError
for IPFS gateway call errorsWorkerpoolCallError
for workerpool API call errors
- Error
cause
is now set in errors everywhereoriginalError
was used
- [DEPRECATED]
originalError
is deprecated in favor of Errorcause
- Typescript fixes
- accept
CryptoKey
inutils.decryptResult(encrypted, key)
account.approve(spenderAddress, amount)
to approve a spender to spend staked RLC from the user accountaccount.checkAllowance(ownerAddress, spenderAddress)
to check the amount of allowance approved for the specified spender to use the account of the owneraccount.revokeApproval(spenderAddress)
to revoke the approval for the spender to use the account
- fix
--gas-price
option not being enforced on every command - provider options for ethers provider are loosely type-checked to allow better control
- Typescript fixes
- move tests to the local fork of bellecour
- cache secrets' existence when confirmed by the SMS
- fix bundling issue occurring in webpack due to conditional import of node builtin in node context
- strict mode
isRequesterStrict
,isAppStrict
,isDatasetStrict
,isWorkerpoolStrict
in corresponding orderbook methodsfetchRequestOrderbook()
,fetchAppOrderbook()
,fetchDatasetOrderbook()
,fetchWorkerpoolOrderbook()
, defaults to false
- remove ipfs initialization preflight checks on request orders
- Typescript fixes
- expose package
version
inIExecModule
- accept
CryptoKey
iniexec.result.pushResultEncryptionKey(key)
- fix encryption key formatting issue in
iexec.result.pushResultEncryptionKey(key)
- fix regression causing browser providers (metamask) to prompt unlock screen on IExec instantiation
- fix
iexec task show --download
issue with node 18 and above
- upgraded to
ethers@6
, this upgrade is internal and should not change the way developers interact withiexec
- updated dependencies
- [BREAKING] drop support for node 16
- add pagination options (
page
andpageSize
) toorderbook
anddeal
fetch methods
- fix
iexec order fill
command when no dataset is provided - fix error message in
iexec app show
- fix ambiguous error message when trying to transfer an asset not deployed
- add transfer methods allowing to transfer the ownership of apps, datasets and workerpools
- fix missing import causing
decryptResult()
to crash in browser
- use
node-forge
for crypto operations to remove dependencies on nodejs built-in modules
- fix windows install
- Typescript fixes
- Typescript fixes
- Typescript fixes
- Typescript fixes
- Typescript fixes
- app orderbook accept
"any"
for the app address to fetch orderbook without filtering on app - dataset orderbook accept
"any"
for the dataset address to fetch orderbook without filtering on dataset
defaultTeeFramework
option forIExecConfig
andchain.json
for choosing the default TEE framework to useiexec app init
option--tee-framework <'scone'|'gramine'>
to specify the TEE framework to use for the app- tee framework tags 'scone' & 'gramine'
- app orderbook accept
"any"
fordataset
,workerpool
,requester
to fetch orderbook without filtering - dataset orderbook accept
"any"
forapp
,workerpool
,requester
to fetch orderbook without filtering - workerpool orderbook accept
"any"
forapp
,dataset
,requester
to fetch orderbook without filtering - requester orderbook accept
"any"
forworkerpool
to fetch orderbook without filtering
- SMS URL resolution depends on TEE framework (default
scone
) - SMS URL override in
IExecConfig
orchain.json
acceptsRecord<TeeFramework,Url> | string
iexec app push-secret
andapp.pushAppSecretExists(appAddress)
use a TEE framework inferred from app if not specifiediexec app check-secret
andapp.checkAppSecret(appAddress, secret)
use a TEE framework inferred from app if not specifiediexec storage init
andstorage.pushStorageToken(appAddress)
use the default TEE framework if not specifiediexec storage check
andapp.checkStorageTokenExists(appAddress, secret)
use the default TEE framework if not specifiediexec requester check-secret <name>
andsecrets.checkRequesterSecretExists(name)
use the default TEE framework if not specifiediexec requester push-secret <name>
andsecrets.pushRequesterSecret(name, value)
use the default TEE framework if not specifiediexec result check-encryption-key
andresult.checkResultEncryptionKeyExists(address)
use the default TEE framework if not specifiediexec result push-encryption-key
andresult.pushResultEncryptionKey(value)
use the default TEE framework if not specifiediexec dataset check-secret
anddataset.checkDatasetSecretExists(datasetAddress)
use the default TEE framework if not specifiediexec dataset push-secret
anddataset.pushDatasetSecret(datasetAddress, encryptionKey)
use the default TEE framework if not specified- TEE app
mrenclave.provider
has been renamedmrenclave.framework
- [BREAKING] drop support for node 12
- [BREAKING] exports ES modules only, since all NodeJS LTS now supports ES modules natively, commonjs modules are no longer exported.
- if you use commonjs module
require
consider moving to ES module to use static import (ie:import iexecSdk from 'iexec'
) - if moving your project to ES module is not an option, you must use dynamic import to load iExec SDK (ie:
import('iexec').then((iexecSdk) => { ... })
)
- if you use commonjs module
- [BREAKING] 'tee' tag must be combined with a tee framework tag ('scone' or 'gramine')
- [BREAKING]
checkRequest
option is replaced bypreflightCheck
, usepreflightCheck: false
to disable checks - [BREAKING]
--skip-request-check
option is replaced by--skip-preflight-check
- [BREAKING] bellecour is now the default chain initialized in
chain.json
when runningiexec init
- [BREAKING] iExec stack is no longer deployed on mainnet, stack configuration for mainnet is no longer provided
- [BREAKING] iExec enterprise stack is no longer deployed, stack configuration for enterprise is no longer provided
- [BREAKING] viviani is no longer available in the default configuration
- [BREAKING] goerli is no longer available in the default configuration
- [BREAKING] removed now useless faucet commands
iexec wallet get-RLC
andiexec wallet get-ether
- changed IPFS default gateway to v7 stack specific gateway
- fix API providers configuration
- fix
iexec orderbook
raw pagination
- TypeScript fixes
- TypeScript fixes
- [DEPRECATED] request param
iexec_developer_logger
was removed from iExec worker, using this param no longer have an effect.iexec_developer_logger
will be removed in a next version.
- TypeScript fixes
- workerpool API url configuration
iexec task debug <taskid> [--logs]
to show off-chain informationens.getDefaultDomain(address)
to get the default free to use ENS domain given an address- support for requester secrets
- check dataset secret exists on requestorder check
- check requester secret exists on requestorder check
- app/dataset/workerpool predict address methods
- app/dataset/workerpool check deployed methods
show
commands display ENS when configurediexec ens register <label> --for <address>
default domain is selected given the nature of--for
address- [DEPRECATED] Node 12 support will be dropped
- fix unhandled promise rejection when sdk is incorrectly initialized
- fix typo in
iexec storage init --raw
output - fix typo in
iexec storage check --raw
output
- TypeScript interfaces
providerOptions
can be passed to the constructor to configure ethers default provider on bridged chainethProvider
now accepts network name, network chainId and RPC url, using one of those option will setup an IExecConfig with provider allowing read-only operations (operations requiring a Signer will fail)
- split lib into
IExecConfig
and independentIExecModule
s to allow modular imports - reintegrated
iexec-contracts-js-client
- fix a bug transforming an Array into a plain object
- documentation refactoring
- fix ENS configure resolution removed useless transaction for EOA
- observable ENS configuration with
ens.obsConfigureResolution(label, address)
- observable bridge to mainchain with
wallet.obsBridgeToMainchain(amount)
- observable bridge to sidechain with
wallet.obsBridgeToSidechain(amount)
- update deps
- fix
colors
to uncorrupted version
- ENS resolution on iExec sidechains and custom networks
- ENS methods in CLI and lib:
iexec ens resolve <name>
andiexec.ens.resolveName(name)
iexec ens lookup <address>
andiexec.ens.lookupAddress(address)
iexec ens get-owner <name>
andiexec.ens.getOwner(name)
iexec ens register <label>
iexec.ens.claimName(label, domain)
iexec.ens.configureResolution(label, address)
- fix
iexec registry validate app
to support new mrenclave format
- client-side (in browser) dataset encryption is now possible.
- confirms option allows to set the number of block to wait for transaction confirmation.
iexec app init --tee
init the TEE app template
- [BREAKING]
iexec init
set default chainviviani
(iExec sidechain testnet) inchain.json
, previously wasgoerli
(using--chain
option still overrides thechain.json
configuration). - [BREAKING] SCONE file system encryption is dropped in favor of AES-256-CBC for dataset encryption. Existing datasets will stop working, these datasets original files MUST be re-encrypted using
iexec dataset encrypt
and republished. - [BREAKING] changed generated dataset keys and encrypted datasets files naming pattern.
- [BREAKING] a dataset is now a single file. in order to pass a tree structure, the dataset owner must package all the files in a single archive file, applications that previously used multiple files from a single dataset must handle unwrapping files from an archive file.
- [BREAKING] app
mrenclave
format changed from string to object previously deployed TEE apps must be rebuilt and redeployed with v6 workflow - [BREAKING]
iexec.task.obsTask()
now returnsPromise<Observable>
previously it returnedObservable
- [BREAKING]
iexec.deal.obsDeal()
now returnsPromise<Observable>
previously it returnedObservable
- [DEPRECATED]
iexec wallet getETH
is now an alias toiexec wallet get-ether
and will be removed in a next version - [DEPRECATED]
iexec wallet getRLC
is now an alias toiexec wallet get-RLC
and will be removed in a next version - [DEPRECATED]
iexec wallet sendETH
is now an alias toiexec wallet send-ether
and will be removed in a next version - [DEPRECATED]
iexec wallet sendRLC
will be removed in a next version, useiexec wallet send-RLC
BEWARE default unit is RLC! chainId
is no longer required to callIExec
constructor, the chainId is lazily fetched from the provider- fix
iexec wallet send-ether
return sentamount
in wei - fix
fetchWorkerpoolOrderbook()
to includerequester
restricted workerpoolorders (fixapp run
using requester restricted workerpoolorder) - fix
iexec app run
--gas-price
option - removed
mrenclave
from app default template iexec run --watch
andiexec deal show --watch
added tasks status details
- [BREAKING]
--algorithm
option is removed fromiexec dataset encrypt
- [BREAKING] removed
iexec.network.id
andiexec.network.isSidechain
, useiexec.network.getNetwork() => Promise<{chainId: String, isSidechain: Boolean}>
- [BREAKING] tee post-compute configuration responsibility has been transferred to the SMS and is no longer supported by requestorder. any custom
iexec_tee_post_compute_image
andiexec_tee_post_compute_fingerprint
will be silently removed fromrequestorder.params
. - [BREAKING] drop previously deprecated
iexec wallet show --raw
returned json keybalance.ETH
, usebalance.ether
instead - [BREAKING] drop previously deprecated
bridge.bridgedChainId
inchain.json
usebridge.bridgedChainName
instead - [BREAKING] drop previously deprecated
iexec.orderbook.fetchWorkerpoolOrderbook(category, options)
usecategory
as an option ofiexec.orderbook.fetchWorkerpoolOrderbook(options)
- [BREAKING] drop previously deprecated
iexec.orderbook.fetchRequestOrderbook(category, options)
usecategory
as an option ofiexec.orderbook.fetchRequestOrderbook(options)
- [BREAKING] drop previously deprecated
iexec.orderbook.fetchAppOrderbook()
returned valueappOrders
useorders
- [BREAKING] drop previously deprecated
iexec.orderbook.fetchDatasetOrderbook()
returned valuedatasetOrders
useorders
- [BREAKING] drop previously deprecated
iexec.orderbook.fetchWorkerpoolOrderbook()
returned valueworkerpoolOrders
useorders
- [BREAKING] drop previously deprecated
iexec.orderbook.fetchRequestOrderbook()
returned valuerequestOrders
useorders
- [BREAKING] drop previously deprecated
task.waitForTaskStatusChange(taskid, initialStatus)
usetask.obsTask(taskid)
- set ethers version to ~5.3.1 for pre berlin fork compatibility (iExec sidechains)
- fixed
iexec registry validate app
- [BREAKING] drop support for Node 10
- iExec enterprise flavour support
iexec wallet swap-eRLC-for-RLC
andwallet.wrapEnterpriseRLC()
enables to wrap RLC to eRLC (requires an authorized wallet)iexec wallet swap-eRLC-for-RLC
andwallet.unwrapEnterpriseRLC()
enables to unwrap eRLC to RLC (requires an authorized wallet)enterprise
value added to--chain [chainName]
option enable connecting iExec enterprise- optional named argument
flavour
added to IExec constructor enables connecting iExec enterprise by passingflavour: 'enterprise'
id
is no longer required inchain.json
- passing
chainId
to--chain [chainName]
will support only the following values:1
formainnet
,5
forgoerli
,134
forbellecour
,133
forviviani
- CLI
native
chain key no longer set default gasPrice to 0, use key"useGas": false
to force default gasPrice to 0 - lib
isNative
option no longer set default gasPrice to 0, use optionuseGas: false
to force default gasPrice to 0 - migrate EIP712 hash and sign to ethers implementation
- fixed
iexec deal claim
fail due to missing signer - [DEPRECATED]
bridge.bridgedChainId
inchain.json
is deprecated and must me replaced bybridge.bridgedChainName
iexec orderbook
more filter optionsiexec orderbook
paginationiexec app request-execution <appAddress>
publish a requestorder to run an app at limit price
- migrated to new market API
- fixed amount validation error
- fixed multiaddr format machine to human
- fixed requester stake too low error message for matching orders
- update
Web3ProviderError
messages iexec orderbook workerpool [address]
--category <catid>
is now optionaliexec orderbook requester [address]
--category <catid>
is now optional- [DEPRECATED]
iexec.orderbook.fetchWorkerpoolOrderbook(category, options)
is deprecated, usecategory
as an option ofiexec.orderbook.fetchWorkerpoolOrderbook(options)
- [DEPRECATED]
iexec.orderbook.fetchRequestOrderbook(category, options)
is deprecated, usecategory
as an option ofiexec.orderbook.fetchRequestOrderbook(options)
- [DEPRECATED]
iexec.orderbook.fetchAppOrderbook()
returned valueappOrders
is deprecated, useorders
- [DEPRECATED]
iexec.orderbook.fetchDatasetOrderbook()
returned valuedatasetOrders
is deprecated, useorders
- [DEPRECATED]
iexec.orderbook.fetchWorkerpoolOrderbook()
returned valueworkerpoolOrders
is deprecated, useorders
- [DEPRECATED]
iexec.orderbook.fetchRequestOrderbook()
returned valuerequestOrders
is deprecated, useorders
- undocumented option
beforeTimestamp
removed fromiexec.deal.fetchRequesterDeals()
- undocumented output value
openVolume
removed fromiexec.orderbook.fetchWorkerpoolOrderbook()
andiexec orderbook workerpool
- support for unit in amounts
- ether units:
ether
(eth
),finney
,szabo
,gwei
,mwei
,kwei
,wei
- RLC units:
RLC
,nRLC
- ether units:
- fixed result encryption v5 workflow
- messages amount use main units (RLC and ether)
- [DEPRECATED]
iexec wallet show --raw
returned json keybalance.ETH
is deprecated, usebalance.ether
instead
- ENS resolution
- support for INFURA, Etherscan and Alchemy providers configuration
- simplified order management for deployed resources in cli
iexec app/dataset/workerpool publish
iexec app/dataset/workerpool unpublish
- remote storage management
- support for
dropbox
storage iexec storage init [provider]
initialize the remote storageiexec storage check [provider]
check if the remote storage is initializediexec.storage.defaultStorageLogin()
get an authorization token for default remote storageiexec.storage.pushStorageToken()
push a storage token to the SMS
- support for
- dataset secret management in js lib
iexec.dataset.pushDatasetSecret(datasetAddress, secret)
push the dataset key to the SMSiexec.dataset.checkDatasetSecretExists(datasetAddress)
check if the dataset key exists in the SMS
- result encryption key management in js lib
iexec.result.pushResultEncryptionKey(rsaPubKey)
push the beneficiary result encryption key to the SMSiexec.result.updateResultEncryptionKey(rsaPubKey)
update the beneficiary result encryption key in the SMSiexec.result.checkResultEncryptionKeyExists(address)
check if the beneficiary result encryption key exists in the SMSutils.decryptResult(encryptedResultFile, beneficiaryKey)
decrypt encrypted result with RSA beneficiary key
- requestorder check to prevent runtime errors
iexec order sign
,iexec order publish
,iexec order fill
andiexec app run
perform advanced check on request (use option--skip-request-check
to disable)iexec.order.signRequestorder()
,iexec.order.publishRequestorder()
andiexec.order.matchOrder()
perform advanced check on request (use option{ checkRequest: false }
to disable)
--decrypt
option addediexec task show <taskid> --download --decrypt
allow to decrypt downloaded result--watch
option added toiexec deal show <dealid>
allow to watch execution status changes- default values for
order.createApporder()
,order.createDatasetorder()
,order.createWorkerpoolorder()
andorder.createRequestorder()
. - support for units in
parseEth()
andparseRLC()
methods
- [BREAKING]
iexec app show <index>
andapp.showUserApp(index)
first index is0
previously was1
- [BREAKING]
iexec dataset show <index>
anddataset.showUserDataset(index)
first index is0
previously was1
- [BREAKING]
iexec workerpool show <index>
anddataset.showUserWorkerpool(index)
first index is0
previously was1
- [BREAKING]
iexec dataset check-secret
returned json key is nowisSecretSet
previously wasisKnownAddress
- [BREAKING]
iexec task show
andtask.show(taskid)
returnedtask.results
is an object previously was url or hexString - [BREAKING]
iexec app run
option--dataset <address|"deployed">
using last deployed dataset is no more implicit - [BREAKING]
iexec app run
option--workerpool <address|"deployed">
using last deployed workerpool is no more implicit - [BREAKING]
bridge.bridgedChainId
is now used to override bridged chain chainId iniexec.json
previouslybridge.bridgedNetworkId
was used - [BREAKING]
iexec result generate-keys
is deprecated, useiexec result generate-encryption-keypair
- [BREAKING]
iexec result push-secret
is deprecated, useiexec result push-encryption-key
- [BREAKING]
iexec result check-secret
is deprecated, useiexec result check-encryption-key
returned json key is nowisEncryptionKeySet
previously wasisKnownAddress
- [BREAKING] standardized Error messages format, capitalized first letter.
- access to the blockchain through ethers default provider
- standardized CLI messages format
- fixed mutation in order sign methods
- fixed
iexec wallet sweep
andwallet.sweep()
- fixed method name
iexec.order.publishWorkerpoolorder()
- fixed method name
iexec.order.unpublishWorkerpoolorder()
- [BREAKING]
aes-256-cbc
dataset encryption is removed, onlyscone
encryption is supported (useiexec dataset encrypt --algorithm scone
)
orderbook.fetchAppOrderbook
andiexec orderbook app <address>
optional filters (dataset, workerpool, requester)orderbook.fetchDatasetOrderbook
andiexec orderbook dataset <address>
optional filters (app, workerpool, requester)utils.sumTags([...Bytes32])
added to JS libtask.obsTask(taskid, { dealid })
observable for task statusdeal.obsDeal(dealid)
observable for deal status
- fix
iexec order show --raw
output task.waitForTaskStatusChange(taskid, initialStatus)
is deprecated prefertask.obsTask(taskid)
iexec app run [address]
allow to run an app on iExec at the market pricedeal.show(dealid)
andiexec deal show
returns extra keysfinalTime: BN
anddeadlineReached: Boolean
task.show(taskid)
andiexec task show
returns extra keystaskTimedOut: Boolean
requestorder.params
now accepts object iniexec.json
and JS lib
- fix SMS url in
chain.json
- fix
task.show(taskid)
andiexec task show
returnedstatusName
is now set to"TIMEOUT"
when task timed out
gpu
tag is now supportedgetTransactionCount
option for custom nonce management- Goerli testnet added to
chain.json
runiexec init --skip-wallet
to updatechain.json
- updated yup integer validation
iexec wallet show
no longer requires password to show wallet content (issue #87)iexec account show
no longer requires password to show account content- fix
iexec.app.showApp(address)
andiexec app show
now returns decodedappMREnclave
iexec wallet bridge-to-sidechain <nRlcAmount>
sending RLC from a mainchain to the bridged sidechain.iexec wallet bridge-to-mainchain <nRlcAmount>
sending RLC from a sidechain to the bridged mainchain.- optional bridge configuration in
chain.json
- bridging RLC between mainchain an sidechain may throw
BridgeError
deal.claim(dealid)
andiexec deal claim
to claim all failed of a dealutils.getSignerFromPrivateKey()
creates a signer provider for server side applications
- [BREAKING]
iexec order init --raw
output is now a single json{ok, apporder, datasetorder, workerpoolorder, requestorder, fail: [...errors]}
. - [BREAKING]
iexec order sign --raw
output is now a single json{ok, apporder, datasetorder, workerpoolorder, requestorder, fail: [...errors]}
. - [BREAKING]
iexec order cancel --raw
output is now a single json{ok, apporder, datasetorder, workerpoolorder, requestorder, fail: [...errors]}
. - [BREAKING]
iexec order fill --raw
volume in output is now formatted as decimal string, previously was hexadecimal string. - [BREAKING]
iexec order publish --raw
output is now a single json{ok, apporder, datasetorder, workerpoolorder, requestorder, fail: [...errors]}
. - [BREAKING]
iexec order unpublish --raw
output is now a single json{ok, apporder, datasetorder, workerpoolorder, requestorder, fail: [...errors]}
. - [BREAKING]
iexec order show --raw
output is now a single json{ok, apporder, datasetorder, workerpoolorder, requestorder, fail: [...errors]}
. - [BREAKING]
iexec registry validate <object> --raw
output is now a single json{ok, validated: [...fileNames], fail: [...errors]}
. - [BREAKING] Ethereum public key representation changed, first byte
04
is no longer skipped. - [BREAKING]
app.deploy()
promise now resolves as{address, txHash}
, previously wasaddress
. - [BREAKING]
dataset.deploy()
promise now resolves as{address, txHash}
, previously wasaddress
. - [BREAKING]
workerpool.deploy()
promise now resolves as{address, txHash}
, previously wasaddress
. - [BREAKING]
account.deposit()
promise now resolves as{amount, txHash}
, previously wasamount
. - [BREAKING]
account.withdraw()
promise now resolves as{amount, txHash}
, previously wasamount
. - [BREAKING]
wallet.sweep()
promise now resolves as{sendNativeTxHash, sendERC20TxHash, errors}
on mainchains or{sendNativeTxHash, errors}
on sidechains, previously was{sendETHTxHash, sendRLCTxHash}
. - [BREAKING]
order.cancel()
promise now resolves as{order, txHash}
, previously wastrue
.
- [BREAKING] curated utils
- [BREAKING] imports of
wallet
,account
,order
,orderbook
,deal
,task
,hub
are removed.
iexec orderbook workerpool
added option--require-tag <...tags>
- Support for tag array of string representation (ex: tee tag
0x0000000000000000000000000000000000000000000000000000000000000001
can be replaced by['tee']
), available in:iexec.json
orderbook
command- js lib
- Filtering options for orderbook in js lib
IExec
sdk constructor simplify integration see documentationwallet.getAddress()
gives the current wallet addressdeal.show()
added keytasks: { [idx]: [taskid] }
to the resolved value- dynamic cast and validation of inputs, invalid inputs throw
ValidationError
. - introduced TypedErrors
ValidationError
,Web3ProviderError
,Web3ProviderCallError
,Web3ProviderSendError
,Web3ProviderSignMessageError
,ObjectNotFoundError
.
- [BREAKING] dropped support for nodejs v8 added support for nodejs v14
- [BREAKING]
iexec tee
subcommands removed and replacediexec tee init
is replaced byiexec dataset init --encrypted
iexec tee encrypt-dataset
is replaced byiexec dataset encrypt
iexec tee generate-beneficiary-keys
is replaced byiexec result generate-key
iexec tee decrypt-result
is replaced byiexec result decrypt
iexec tee push-secret
is replaced byiexec dataset push-secret
andiexec result push-secret
iexec tee check-secret
is replaced byiexec dataset check-secret
andiexec result check-secret
- [BREAKING]
.tee-secrets/
folder moved to.secrets
- [BREAKING] default original dataset folder
tee/original-dataset/
folder moved todatasets/original/
- [BREAKING] default encrypted dataset folder
tee/original-encrypted/
folder moved todatasets/encrypted/
- [BREAKING]
iexec deal show
ends with error when the deal doesn't exists - [BREAKING]
deal.show()
throw when the deal doesn't exists - [BREAKING]
deal.computeTaskIdsArray()
is no longer exposed (deal.show()
resolves now as{..., tasks: { [idx]: [taskid] }}
) - [BREAKING]
deal.computeTaskId()
returns a promise - [BREAKING] errors handling with
--raw
option now returns{ command, error: { name, message } }
previously was{ command, error: message }
- [DEPRECATED] imports of
wallet
,account
,order
,orderbook
,deal
,task
,hub
is deprecated, useIExec
constructor. - [DEPRECATED]
order.signOrder()
is replaced by dedicated methods ofIExec
:order.signApporder()
,order.signDatasetorder()
,order.signWorkerpoolorder()
,order.signRequestorder()
- [DEPRECATED]
order.cancelOrder()
is replaced by dedicated methods ofIExec
:order.cancelApporder()
,order.cancelDatasetorder()
,order.cancelWorkerpoolorder()
,order.cancelRequestorder()
- [DEPRECATED]
order.publishOrder()
is replaced by dedicated methods ofIExec
:order.publishApporder()
,order.publishDatasetorder()
,order.publishWorkerpoolorder()
,order.publishRequestorder()
- [DEPRECATED]
order.unpublishOrder()
is replaced by dedicated methods ofIExec
:order.unpublishApporder()
,order.unpublishDatasetorder()
,order.unpublishWorkerpoolorder()
,order.unpublishRequestorder()
- [DEPRECATED]
hub.createObj()
is replaced by dedicated methods ofIExec
:app.deployApp()
,dataset.deployDataset()
,workerpool.deployWorkerpool()
- [DEPRECATED]
hub.countObj()
is replaced by dedicated methods ofIExec
:app.countUserApps()
,dataset.countUserDatasets()
,workerpool.countUserWorkerpools()
- [DEPRECATED]
hub.showObj()
is replaced by dedicated methods ofIExec
:hub.countUserApps()
,hub.countUserDatasets()
,hub.countUserWorkerpools()
- [DEPRECATED]
hub.showApp(contracts, objAddressOrIndex, userAddress)
will stop support paramsindex
anduserAddress
useIExec
methodsapp.showUserApp(index, userAddress)
orapp.showApp(appAddress)
- [DEPRECATED]
hub.showDataset(contracts, objAddressOrIndex, userAddress)
will stop support paramsindex
anduserAddress
please useIExec
methoddataset.showUserDataset(index, userAddress)
ordataset.showDataset(contracts, datasetAddress)
- [DEPRECATED]
hub.showWorkerpool(contracts, objAddressOrIndex, userAddress)
will stop support paramsindex
anduserAddress
please useIExec
methodworkerpool.showUserWorkerpool(index, userAddress)
orworkerpool.showWorkerpool(workerpoolAddress)
- [DEPRECATED]
task.claim(contracts, taskid, userAddress)
userAddress
is no longer required, please useIExec
methodtask.claim(taskid)
- [DEPRECATED]
task.fetchResults(contracts, taskid, userAddress, options)
userAddress
is no longer required, please useIExec
methodtask.fetchResults(taskid, options)
- Update
multiaddr@6.1.0
tomultiaddr@7.1.0
:/ipfs
protocol 421 is now displayed/p2p
- fix everyone can claim a task
- fix
iexec task show
oracle results hexadecimal display (#88) - fix
iexec task show --download
oracle results error message
- [BREAKING]
iexec deal show <dealid> --tasks <...index>
--tasks
option is removed, as deal's tasks are added to the output. - [BREAKING]
iexec tee
subcommands removed and replaced (see changed)
- update params format for iexec core v3.2 compatibility
- global option
--quiet
disable update notification
- global option
--raw
disable update notification - fix
iexec wallet create --raw
andiexec wallet import --raw
JSON output on fail - fix numbers format in templates
- update api url
iexec registry validate <'app'|'dataset'|'workerpool'>
update schema validation for buyConf- dependencies update
iexec order fill --params <string>
allow to generate request order on the fly with specified params
- request orders are no longer initialized with formatted params
iexec tee encrypt-dataset --algorithm <'aes-256-cbc'|'scone'>
allow to choose encryption method, default is aes-256-cbc.--algorithm scone
allow an encrypted dataset to be processed into a SGX enclave by a Scone compatible dapp.
iexec tee encrypt-dataset
now supports dataset folders.- CLI fix typo
- option
--gas-price <wei>
allow to use custom gas price.
- fix display task contributors.
- limit methods exported from
utils
module.
iexec tee encrypt-dataset
now use nodejs implementation (previously dockerized Openssl 1.1.1b).
- Dataset encryption
iexec tee encrypt-dataset
.
- beneficiary keys generated by
iexec tee generate-beneficiary-keys
now use AES 256 (previously AES 128).
This is the initial release of iExec v3.