Skip to content

Commit

Permalink
Merge pull request #35 from iExecBlockchainComputing/release/3.0.0
Browse files Browse the repository at this point in the history
Release/3.0.0
  • Loading branch information
jbern0rd authored Jun 5, 2023
2 parents e851552 + 02a1cbf commit 3eb0f6e
Show file tree
Hide file tree
Showing 28 changed files with 523 additions and 723 deletions.
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,20 @@

All notable changes to this project will be documented in this file.

## [[3.0.0]](https://github.com/iExecBlockchainComputing/iexec-commons-poco/releases/tag/v3.0.0) 2023-06-05

### New Features
- Call `IexecHubContract#viewDeal` instead of legacy ABI in `IexecHubAbstractService#getChainDeal`. (#24)
- Representations of on-chain and off-chain objects are now immutable. (#24 #25 #26 #30 #34)
### Bug Fixes
- Do not cast `retryDelay` to `int` in `IexecHubAbstractService` and `Retryer`. (#32)
- Move `blockTime` from `IexecHubAbstractService` to `Web3jAbstractService`. (#33)
- Set some logs to `debug` level in `EIP712Entity`. (#33)
### Quality
- Move methods to get event blocks to `iexec-core`. (#28)
- Add `IexecHubTestService` and `Web3jTestService` classes for tests. (#29)
- Load `IexecHubContract` instance only once in `IexecHubAbstractService`. (#31)

## [[2.0.1]](https://github.com/iExecBlockchainComputing/iexec-commons-poco/releases/tag/v2.0.1) 2023-05-22

### New Features
Expand Down
3 changes: 3 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,9 @@ dependencies {
testImplementation 'org.assertj:assertj-core'
testImplementation 'org.testcontainers:junit-jupiter:1.17.2'

// spring-test for ReflectionTestUtils
testImplementation 'org.springframework:spring-test'

// logback
testRuntimeOnly 'ch.qos.logback:logback-classic'
}
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
version=2.0.1
version=3.0.0

nexusUser
nexusPassword
22 changes: 8 additions & 14 deletions src/main/java/com/iexec/commons/poco/chain/ChainAccount.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,31 +16,25 @@

package com.iexec.commons.poco.chain;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.Value;
import org.web3j.tuples.generated.Tuple2;

import java.math.BigInteger;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Value
@Builder
public class ChainAccount {

private long deposit;
private long locked;

public ChainAccount(BigInteger deposit, BigInteger locked) {
this.setDeposit(deposit.longValue());
this.setLocked(locked.longValue());
}
long deposit;
long locked;

public static ChainAccount tuple2Account(Tuple2<BigInteger, BigInteger> account) {
if (account != null) {
return new ChainAccount(account.component1(), account.component2());
return ChainAccount.builder()
.deposit(account.component1().longValue())
.locked(account.component2().longValue())
.build();
}
return null;
}
Expand Down
23 changes: 9 additions & 14 deletions src/main/java/com/iexec/commons/poco/chain/ChainApp.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,21 +17,16 @@
package com.iexec.commons.poco.chain;

import com.iexec.commons.poco.tee.TeeEnclaveConfiguration;
import lombok.*;
import lombok.Builder;
import lombok.Value;


@Data
@NoArgsConstructor
@AllArgsConstructor
@Value
@Builder
@Getter
public class ChainApp {

private String chainAppId;
private String name;
private String type;
private String uri;
private String checksum;
private TeeEnclaveConfiguration enclaveConfiguration;

String chainAppId;
String name;
String type;
String uri;
String checksum;
TeeEnclaveConfiguration enclaveConfiguration;
}
17 changes: 6 additions & 11 deletions src/main/java/com/iexec/commons/poco/chain/ChainAppParams.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,19 +16,14 @@

package com.iexec.commons.poco.chain;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.Value;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Value
@Builder
public class ChainAppParams {

private String type;
private String provider;
private String uri;
private String minmemory;
String type;
String provider;
String uri;
String minmemory;
}
16 changes: 7 additions & 9 deletions src/main/java/com/iexec/commons/poco/chain/ChainCategory.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,21 +16,19 @@

package com.iexec.commons.poco.chain;

import lombok.*;
import lombok.Builder;
import lombok.Value;

import java.math.BigInteger;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Value
@Builder
@Getter
public class ChainCategory {

private long id;
private String name;
private String description;
private long maxExecutionTime;
long id;
String name;
String description;
long maxExecutionTime;

public static ChainCategory tuple2ChainCategory(long id, String name, String description, BigInteger maxTime) {
return ChainCategory.builder()
Expand Down
61 changes: 13 additions & 48 deletions src/main/java/com/iexec/commons/poco/chain/ChainContribution.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,66 +17,31 @@
package com.iexec.commons.poco.chain;

import com.iexec.commons.poco.utils.BytesUtils;
import lombok.*;
import lombok.Builder;
import lombok.Value;
import org.web3j.tuples.generated.Tuple4;

import java.math.BigInteger;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Value
@Builder
@Setter
public class ChainContribution {

private ChainContributionStatus status;
private String resultHash;
private String resultSeal;
private String enclaveChallenge;

public ChainContribution(BigInteger status, byte[] resultHash, byte[] resultSeal, String enclaveChallenge) {
this.setStatus(status);
this.setResultHash(resultHash);
this.setResultSeal(resultSeal);
this.setEnclaveChallenge(enclaveChallenge);
}
ChainContributionStatus status;
String resultHash;
String resultSeal;
String enclaveChallenge;

public static ChainContribution tuple2Contribution(Tuple4<BigInteger, byte[], byte[], String> contribution) {
if (contribution != null) {
return new ChainContribution(contribution.component1(),
contribution.component2(),
contribution.component3(),
contribution.component4());
return ChainContribution.builder()
.status(ChainContributionStatus.getValue(contribution.component1()))
.resultHash(BytesUtils.bytesToString(contribution.component2()))
.resultSeal(BytesUtils.bytesToString(contribution.component3()))
.enclaveChallenge(contribution.component4())
.build();
}
return null;
}

public void setStatus(BigInteger status) {
this.status = ChainContributionStatus.getValue(status);
}

public void setResultHash(byte[] resultHash) {
this.resultHash = BytesUtils.bytesToString(resultHash);
}

public void setResultSeal(byte[] resultSeal) {
this.resultSeal = BytesUtils.bytesToString(resultSeal);
}

public void setStatus(ChainContributionStatus status) {
this.status = status;
}

public void setResultHash(String resultHash) {
this.resultHash = resultHash;
}

public void setResultSeal(String resultSeal) {
this.resultSeal = resultSeal;
}

public void setEnclaveChallenge(String enclaveChallenge) {
this.enclaveChallenge = enclaveChallenge;
}

}
20 changes: 8 additions & 12 deletions src/main/java/com/iexec/commons/poco/chain/ChainDataset.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,19 +16,15 @@

package com.iexec.commons.poco.chain;

import lombok.*;
import lombok.Builder;
import lombok.Value;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Value
@Builder
@Getter
public class ChainDataset {

private String chainDatasetId;
private String owner;
private String name;
private String uri;
private String checksum;

String chainDatasetId;
String owner;
String name;
String uri;
String checksum;
}
53 changes: 25 additions & 28 deletions src/main/java/com/iexec/commons/poco/chain/ChainDeal.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,18 +16,15 @@

package com.iexec.commons.poco.chain;

import com.iexec.commons.poco.contract.generated.IexecHubContract;
import com.iexec.commons.poco.utils.BytesUtils;
import lombok.*;
import org.web3j.tuples.generated.Tuple6;
import org.web3j.tuples.generated.Tuple9;
import lombok.Builder;
import lombok.Value;

import java.math.BigInteger;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Value
@Builder
@Getter
public class ChainDeal {

String chainDealId;
Expand Down Expand Up @@ -65,33 +62,33 @@ public boolean containsDataset() {
!getChainDataset().getChainDatasetId().equals(BytesUtils.EMPTY_ADDRESS);
}

public static ChainDeal parts2ChainDeal(String chainDealId, Tuple9<String, String, BigInteger, String, String, BigInteger, String, String, BigInteger> dealPt1, Tuple6<BigInteger, byte[], String, String, String, String> dealPt2, Tuple6<BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, BigInteger> config, ChainApp app, ChainCategory category, ChainDataset dataset) {
if (dealPt1 == null || dealPt2 == null || config == null || app == null || category == null) {
return new ChainDeal();
public static ChainDeal parts2ChainDeal(String chainDealId, IexecHubContract.Deal deal, ChainApp app, ChainCategory category, ChainDataset dataset) {
if (deal == null || app == null || category == null) {
return ChainDeal.builder().build();
}
return ChainDeal.builder()
.chainDealId(chainDealId)
.chainApp(app)
.dappOwner(dealPt1.component2())
.dappPrice(dealPt1.component3())
.dappOwner(deal.app.owner)
.dappPrice(deal.app.price)
.chainDataset(dataset)
.dataOwner(dealPt1.component5())
.dataPrice(dealPt1.component6())
.poolPointer(dealPt1.component7())
.poolOwner(dealPt1.component8())
.poolPrice(dealPt1.component9())
.trust(dealPt2.component1())
.tag(BytesUtils.bytesToString(dealPt2.component2()))
.requester(dealPt2.component3())
.beneficiary(dealPt2.component4())
.callback(dealPt2.component5())
.params(DealParams.createFromString(dealPt2.component6()))
.dataOwner(deal.dataset.owner)
.dataPrice(deal.dataset.price)
.poolPointer(deal.workerpool.pointer)
.poolOwner(deal.workerpool.owner)
.poolPrice(deal.workerpool.price)
.trust(deal.trust)
.tag(BytesUtils.bytesToString(deal.tag))
.requester(deal.requester)
.beneficiary(deal.beneficiary)
.callback(deal.callback)
.params(DealParams.createFromString(deal.params))
.chainCategory(category)
.startTime(config.component2())
.botFirst(config.component3())
.botSize(config.component4())
.workerStake(config.component5())
.schedulerRewardRatio(config.component6())
.startTime(deal.startTime)
.botFirst(deal.botFirst)
.botSize(deal.botSize)
.workerStake(deal.workerStake)
.schedulerRewardRatio(deal.schedulerRewardRatio)
.build();
}
}
20 changes: 11 additions & 9 deletions src/main/java/com/iexec/commons/poco/chain/ChainReceipt.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,18 @@

package com.iexec.commons.poco.chain;

import lombok.AllArgsConstructor;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.Value;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Value
@Builder
@JsonDeserialize(builder = ChainReceipt.ChainReceiptBuilder.class)
public class ChainReceipt {
private long blockNumber;
private String txHash;
}
long blockNumber;
String txHash;

@JsonPOJOBuilder(withPrefix = "")
public static class ChainReceiptBuilder{}
}
Loading

0 comments on commit 3eb0f6e

Please sign in to comment.