diff --git a/src/main/java/com/iexec/commons/poco/chain/IexecHubAbstractService.java b/src/main/java/com/iexec/commons/poco/chain/IexecHubAbstractService.java index 3d8f731..69daf00 100644 --- a/src/main/java/com/iexec/commons/poco/chain/IexecHubAbstractService.java +++ b/src/main/java/com/iexec/commons/poco/chain/IexecHubAbstractService.java @@ -17,10 +17,12 @@ package com.iexec.commons.poco.chain; import com.iexec.commons.poco.contract.generated.IexecHubContract; +import com.iexec.commons.poco.eip712.EIP712Domain; import com.iexec.commons.poco.task.TaskDescription; import com.iexec.commons.poco.utils.BytesUtils; import com.iexec.commons.poco.utils.MultiAddressHelper; import com.iexec.commons.poco.utils.Retryer; +import lombok.Getter; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.web3j.abi.FunctionReturnDecoder; @@ -56,10 +58,12 @@ public abstract class IexecHubAbstractService { public static final int MAX_RETRIES = 3; protected final Credentials credentials; - private final String iexecHubAddress; protected final RawTransactionManager txManager; protected final PollingTransactionReceiptProcessor txReceiptProcessor; protected final IexecHubContract iexecHubContract; + protected final String iexecHubAddress; + @Getter + private final EIP712Domain ordersDomain; private final Web3jAbstractService web3jAbstractService; private long maxNbOfPeriodsForConsensus = -1; private final long retryDelay;// ms @@ -109,6 +113,7 @@ protected IexecHubAbstractService( ); iexecHubContract = getHubContract(web3jAbstractService.getContractGasProvider()); + ordersDomain = new EIP712Domain(web3jAbstractService.getChainId(), iexecHubAddress); log.info("Abstract IexecHubService initialized (iexec proxy address) [hubAddress:{}]", iexecHubContract.getContractAddress()); diff --git a/src/test/java/com/iexec/commons/poco/itest/ContributeAndFinalizeTests.java b/src/test/java/com/iexec/commons/poco/itest/ContributeAndFinalizeTests.java index 4b0cd0b..3601946 100644 --- a/src/test/java/com/iexec/commons/poco/itest/ContributeAndFinalizeTests.java +++ b/src/test/java/com/iexec/commons/poco/itest/ContributeAndFinalizeTests.java @@ -69,7 +69,7 @@ void init() throws CipherException, IOException { web3jService = new Web3jTestService(chainNodeAddress); iexecHubService = new IexecHubTestService(credentials, web3jService); signerService = new SignerService(web3jService.getWeb3j(), web3jService.getChainId(), credentials); - ordersService = new OrdersService(signerService); + ordersService = new OrdersService(iexecHubService.getOrdersDomain(), signerService); } @Test diff --git a/src/test/java/com/iexec/commons/poco/itest/ContributeRevealFinalizeTests.java b/src/test/java/com/iexec/commons/poco/itest/ContributeRevealFinalizeTests.java index 2899331..b81c530 100644 --- a/src/test/java/com/iexec/commons/poco/itest/ContributeRevealFinalizeTests.java +++ b/src/test/java/com/iexec/commons/poco/itest/ContributeRevealFinalizeTests.java @@ -72,7 +72,7 @@ void init() throws CipherException, IOException { web3jService = new Web3jTestService(chainNodeAddress); iexecHubService = new IexecHubTestService(credentials, web3jService); signerService = new SignerService(web3jService.getWeb3j(), web3jService.getChainId(), credentials); - ordersService = new OrdersService(signerService); + ordersService = new OrdersService(iexecHubService.getOrdersDomain(), signerService); } @SneakyThrows diff --git a/src/test/java/com/iexec/commons/poco/itest/IexecHubTestService.java b/src/test/java/com/iexec/commons/poco/itest/IexecHubTestService.java index 99889a4..1f4595d 100644 --- a/src/test/java/com/iexec/commons/poco/itest/IexecHubTestService.java +++ b/src/test/java/com/iexec/commons/poco/itest/IexecHubTestService.java @@ -40,15 +40,14 @@ public class IexecHubTestService extends IexecHubAbstractService { static final BigInteger GAS_PRICE = BigInteger.valueOf(22_000_000_000L); static final BigInteger GAS_LIMIT = BigInteger.valueOf(1_000_000L); - static final long CHAIN_ID = 65535L; static final String IEXEC_HUB_ADDRESS = "0xc4b11f41746D3Ad8504da5B383E1aB9aa969AbC7"; static final String ASSET_MULTI_ADDRESS = "multiAddress"; static final String ASSET_CHECKSUM = Numeric.toHexStringNoPrefix(new byte[32]); - private static final String APP_REGISTRY_SELECTOR = "0x45b637a9"; - private static final String DATASET_REGISTRY_SELECTOR = "0xb1b11d2c"; - private static final String WORKERPOOL_REGISTRY_SELECTOR = "0x90a0f546"; + static final String APP_REGISTRY_SELECTOR = "0x45b637a9"; + static final String DATASET_REGISTRY_SELECTOR = "0xb1b11d2c"; + static final String WORKERPOOL_REGISTRY_SELECTOR = "0x90a0f546"; private final String ownerAddress; private final SignerService signerService; diff --git a/src/test/java/com/iexec/commons/poco/itest/MatchOrdersTests.java b/src/test/java/com/iexec/commons/poco/itest/MatchOrdersTests.java index 7d5ba94..d1e84ee 100644 --- a/src/test/java/com/iexec/commons/poco/itest/MatchOrdersTests.java +++ b/src/test/java/com/iexec/commons/poco/itest/MatchOrdersTests.java @@ -74,7 +74,7 @@ void init() throws CipherException, IOException { web3jService = new Web3jTestService(chainNodeAddress); iexecHubService = new IexecHubTestService(credentials, web3jService); signerService = new SignerService(web3jService.getWeb3j(), web3jService.getChainId(), credentials); - ordersService = new OrdersService(signerService); + ordersService = new OrdersService(iexecHubService.getOrdersDomain(), signerService); } @Test @@ -151,10 +151,10 @@ void shouldMatchOrdersWithSignerService() throws IOException { .isEqualTo(List.of("Transfer", "Lock", "Transfer", "Lock", "SchedulerNotice", "OrdersMatched")); // orders consumption - assertThat(iexecHubService.viewConsumed(signedAppOrder.computeHash(ordersService.getDomain()))).isEqualTo(BigInteger.ONE); - assertThat(iexecHubService.viewConsumed(signedDatasetOrder.computeHash(ordersService.getDomain()))).isEqualTo(BigInteger.ONE); - assertThat(iexecHubService.viewConsumed(signedWorkerpoolOrder.computeHash(ordersService.getDomain()))).isEqualTo(BigInteger.ONE); - assertThat(iexecHubService.viewConsumed(signedRequestOrder.computeHash(ordersService.getDomain()))).isEqualTo(BigInteger.ONE); + assertThat(iexecHubService.viewConsumed(signedAppOrder.computeHash(iexecHubService.getOrdersDomain()))).isEqualTo(BigInteger.ONE); + assertThat(iexecHubService.viewConsumed(signedDatasetOrder.computeHash(iexecHubService.getOrdersDomain()))).isEqualTo(BigInteger.ONE); + assertThat(iexecHubService.viewConsumed(signedWorkerpoolOrder.computeHash(iexecHubService.getOrdersDomain()))).isEqualTo(BigInteger.ONE); + assertThat(iexecHubService.viewConsumed(signedRequestOrder.computeHash(iexecHubService.getOrdersDomain()))).isEqualTo(BigInteger.ONE); // estimate gas revert // 0x694578656356352d6d617463684f72646572732d30783630 is hex string corresponding to the 'iExecV5-matchOrders-0x60' string diff --git a/src/test/java/com/iexec/commons/poco/itest/OrdersService.java b/src/test/java/com/iexec/commons/poco/itest/OrdersService.java index 753aa8f..e82b18e 100644 --- a/src/test/java/com/iexec/commons/poco/itest/OrdersService.java +++ b/src/test/java/com/iexec/commons/poco/itest/OrdersService.java @@ -22,7 +22,6 @@ import com.iexec.commons.poco.encoding.MatchOrdersDataEncoder; import com.iexec.commons.poco.order.*; import com.iexec.commons.poco.utils.BytesUtils; -import lombok.Getter; import org.apache.commons.lang3.RandomStringUtils; import org.web3j.crypto.Hash; @@ -31,7 +30,8 @@ import java.util.Map; import java.util.TreeMap; -import static com.iexec.commons.poco.itest.IexecHubTestService.*; +import static com.iexec.commons.poco.itest.IexecHubTestService.GAS_PRICE; +import static com.iexec.commons.poco.itest.IexecHubTestService.IEXEC_HUB_ADDRESS; public class OrdersService { @@ -39,13 +39,11 @@ public class OrdersService { static final String DATASET_NAME = "my-dataset"; static final String WORKERPOOL_NAME = "my-workerpool"; - - @Getter private final EIP712Domain domain; private final SignerService signerService; - public OrdersService(SignerService signerService) { - this.domain = new EIP712Domain(CHAIN_ID, IEXEC_HUB_ADDRESS); + public OrdersService(final EIP712Domain domain, final SignerService signerService) { + this.domain = domain; this.signerService = signerService; }