From 15f1043a39d495a4671e54794aa6bd5c8079ca2f Mon Sep 17 00:00:00 2001 From: "christian.n" <137180768+christian-napoles-r3@users.noreply.github.com> Date: Mon, 24 Jul 2023 11:53:41 +0100 Subject: [PATCH] CORE-15541: release ga builds prep (#61) * CORE-15561: Use Beta versions of the CSDE gradle plugin (#58) * CORE-15572: deleted stale todo comment (#59) * CORE-15541: release ga-rc12 prep * CORE:15541: update combined worker version to RC12 * CORE-15541: release ga build prep --------- Co-authored-by: Tony Lawson --- build.gradle | 17 -- config/r3-ca-key.pem | 62 +++---- contracts/build.gradle | 9 +- .../ChatContractCreateCommandTest.java | 158 ---------------- .../ChatContractUpdateCommandTest.java | 175 ------------------ gradle.properties | 20 +- settings.gradle | 10 - workflows/build.gradle | 6 - 8 files changed, 34 insertions(+), 423 deletions(-) delete mode 100644 contracts/src/test/java/com/r3/developers/csdetemplate/utxoexample/contracts/ChatContractCreateCommandTest.java delete mode 100644 contracts/src/test/java/com/r3/developers/csdetemplate/utxoexample/contracts/ChatContractUpdateCommandTest.java diff --git a/build.gradle b/build.gradle index 2c05a7d..d18663c 100644 --- a/build.gradle +++ b/build.gradle @@ -32,7 +32,6 @@ allprojects { cordaDbContainerName = "CSDEpostgresql" cordaBinDir = "${System.getProperty("user.home")}/.corda/corda5" cordaCliBinDir = "${System.getProperty("user.home")}/.corda/cli" - cpiUploadTimeout = cpiUploadDefault } // Declare the set of Java compiler options we need to build a CorDapp. @@ -47,22 +46,6 @@ allprojects { // All dependencies are held in Maven Central mavenLocal() mavenCentral() - - // R3 Internal repositories for dev - // Repository provides Corda 5 binaries that implement Corda-API. - // These will be made publicly available. - // Final location to be decided. - // Repository subject to change - maven { - url = "$artifactoryContextUrl/corda-os-maven" - authentication { - basic(BasicAuthentication) - } - credentials { - username = findProperty('cordaArtifactoryUsername') ?: System.getenv('CORDA_ARTIFACTORY_USERNAME') - password = findProperty('cordaArtifactoryPassword') ?: System.getenv('CORDA_ARTIFACTORY_PASSWORD') - } - } } tasks.withType(Test).configureEach { diff --git a/config/r3-ca-key.pem b/config/r3-ca-key.pem index 640c152..4214227 100644 --- a/config/r3-ca-key.pem +++ b/config/r3-ca-key.pem @@ -1,38 +1,32 @@ -----BEGIN CERTIFICATE----- -MIIGsDCCBJigAwIBAgIQCK1AsmDSnEyfXs2pvZOu2TANBgkqhkiG9w0BAQwFADBi +MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBi MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3Qg -RzQwHhcNMjEwNDI5MDAwMDAwWhcNMzYwNDI4MjM1OTU5WjBpMQswCQYDVQQGEwJV -UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xQTA/BgNVBAMTOERpZ2lDZXJ0IFRy -dXN0ZWQgRzQgQ29kZSBTaWduaW5nIFJTQTQwOTYgU0hBMzg0IDIwMjEgQ0ExMIIC -IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1bQvQtAorXi3XdU5WRuxiEL1 -M4zrPYGXcMW7xIUmMJ+kjmjYXPXrNCQH4UtP03hD9BfXHtr50tVnGlJPDqFX/IiZ -wZHMgQM+TXAkZLON4gh9NH1MgFcSa0OamfLFOx/y78tHWhOmTLMBICXzENOLsvsI -8IrgnQnAZaf6mIBJNYc9URnokCF4RS6hnyzhGMIazMXuk0lwQjKP+8bqHPNlaJGi -TUyCEUhSaN4QvRRXXegYE2XFf7JPhSxIpFaENdb5LpyqABXRN/4aBpTCfMjqGzLm -ysL0p6MDDnSlrzm2q2AS4+jWufcx4dyt5Big2MEjR0ezoQ9uo6ttmAaDG7dqZy3S -vUQakhCBj7A7CdfHmzJawv9qYFSLScGT7eG0XOBv6yb5jNWy+TgQ5urOkfW+0/tv -k2E0XLyTRSiDNipmKF+wc86LJiUGsoPUXPYVGUztYuBeM/Lo6OwKp7ADK5GyNnm+ -960IHnWmZcy740hQ83eRGv7bUKJGyGFYmPV8AhY8gyitOYbs1LcNU9D4R+Z1MI3s -MJN2FKZbS110YU0/EpF23r9Yy3IQKUHw1cVtJnZoEUETWJrcJisB9IlNWdt4z4FK -PkBHX8mBUHOFECMhWWCKZFTBzCEa6DgZfGYczXg4RTCZT/9jT0y7qg0IU0F8WD1H -s/q27IwyCQLMbDwMVhECAwEAAaOCAVkwggFVMBIGA1UdEwEB/wQIMAYBAf8CAQAw -HQYDVR0OBBYEFGg34Ou2O/hfEYb7/mF7CIhl9E5CMB8GA1UdIwQYMBaAFOzX44LS -cV1kTN8uZz/nupiuHA9PMA4GA1UdDwEB/wQEAwIBhjATBgNVHSUEDDAKBggrBgEF -BQcDAzB3BggrBgEFBQcBAQRrMGkwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRp -Z2ljZXJ0LmNvbTBBBggrBgEFBQcwAoY1aHR0cDovL2NhY2VydHMuZGlnaWNlcnQu -Y29tL0RpZ2lDZXJ0VHJ1c3RlZFJvb3RHNC5jcnQwQwYDVR0fBDwwOjA4oDagNIYy -aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZFJvb3RHNC5j -cmwwHAYDVR0gBBUwEzAHBgVngQwBAzAIBgZngQwBBAEwDQYJKoZIhvcNAQEMBQAD -ggIBADojRD2NCHbuj7w6mdNW4AIapfhINPMstuZ0ZveUcrEAyq9sMCcTEp6QRJ9L -/Z6jfCbVN7w6XUhtldU/SfQnuxaBRVD9nL22heB2fjdxyyL3WqqQz/WTauPrINHV -UHmImoqKwba9oUgYftzYgBoRGRjNYZmBVvbJ43bnxOQbX0P4PpT/djk9ntSZz0rd -KOtfJqGVWEjVGv7XJz/9kNF2ht0csGBc8w2o7uCJob054ThO2m67Np375SFTWsPK -6Wrxoj7bQ7gzyE84FJKZ9d3OVG3ZXQIUH0AzfAPilbLCIXVzUstG2MQ0HKKlS43N -b3Y3LIU/Gs4m6Ri+kAewQ3+ViCCCcPDMyu/9KTVcH4k4Vfc3iosJocsL6TEa/y4Z -XDlx4b6cpwoG1iZnt5LmTl/eeqxJzy6kdJKt2zyknIYf48FWGysj/4+16oh7cGvm -oLr9Oj9FpsToFpFSi0HASIRLlk2rREDjjfAVKM7t8RhWByovEMQMCGQ8M4+uKIw8 -y4+ICw2/O/TOHnuO77Xry7fwdxPm5yg/rBKupS8ibEH5glwVZsxsDsrFhsP2JjMM -B0ug0wcCampAMEhLNKhRILutG4UI4lkNbcoFUCvqShyepf2gpx8GdOfy1lKQ/a+F -SCH5Vzu0nAPthkX0tGFuv2jiJmCG6sivqf6UHedjGzqGVnhO +RzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBiMQswCQYDVQQGEwJV +UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu +Y29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0GCSqG +SIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3y +ithZwuEppz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1If +xp4VpX6+n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDV +ySAdYyktzuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBfsXpm7nfISKhmV1efVFiO +DCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGYQJB5w3jHtrHEtWoYOAMQ +jdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6MUSaM0C/ +CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCi +EhtmmnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADM +fRyVw4/3IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QY +uKZ3AeEPlAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXK +chYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7FwI+isX4KJpn15GkvmB0t +9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB +hjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD +ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2 +SV1EY+CtnJYYZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd ++SeuMIW59mdNOj6PWTkiU0TryF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWc +fFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy7zBZLq7gcfJW5GqXb5JQbZaNaHqa +sjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iahixTXTBmyUEFxPT9N +cCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN5r5N +0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie +4u1Ki7wb/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mI +r/OSmbaz5mEP0oUA51Aa5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1 +/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tKG48BtieVU+i2iW1bvGjUI+iLUaJW+fCm +gKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP82Z+ -----END CERTIFICATE----- diff --git a/contracts/build.gradle b/contracts/build.gradle index dc26c0b..da26473 100644 --- a/contracts/build.gradle +++ b/contracts/build.gradle @@ -39,23 +39,16 @@ dependencies { // The CorDapp uses the slf4j logging framework. Corda-API provides this so we need a 'cordaProvided' declaration. cordaProvided 'org.slf4j:slf4j-api' - // This are shared so should be here. - // Dependencies Required By Test Tooling - // Todo: these are commented out as the simulator UTXO work has not been merged into Gecko yet. -// testImplementation "net.corda:corda-simulator-api:$simulatorVersion" -// testRuntimeOnly "net.corda:corda-simulator-runtime:$simulatorVersion" - // 3rd party libraries // Required testImplementation "org.slf4j:slf4j-simple:2.0.0" testImplementation "org.junit.jupiter:junit-jupiter:$junitVersion" testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:$junitVersion" - // Optional but used by exmaple tests. + // Optional but used by example tests. testImplementation "org.mockito:mockito-core:$mockitoVersion" testImplementation "org.mockito.kotlin:mockito-kotlin:$mockitoKotlinVersion" testImplementation "org.hamcrest:hamcrest-library:$hamcrestVersion" - testImplementation "com.r3.corda.ledger.utxo:contract-testing:$contractTestingVersion" } // The CordApp section. diff --git a/contracts/src/test/java/com/r3/developers/csdetemplate/utxoexample/contracts/ChatContractCreateCommandTest.java b/contracts/src/test/java/com/r3/developers/csdetemplate/utxoexample/contracts/ChatContractCreateCommandTest.java deleted file mode 100644 index 5c3340a..0000000 --- a/contracts/src/test/java/com/r3/developers/csdetemplate/utxoexample/contracts/ChatContractCreateCommandTest.java +++ /dev/null @@ -1,158 +0,0 @@ -package com.r3.developers.csdetemplate.utxoexample.contracts; - -import com.r3.corda.ledger.utxo.testing.ContractTest; -import com.r3.developers.csdetemplate.utxoexample.states.ChatState; -import net.corda.v5.ledger.utxo.Command; -import net.corda.v5.ledger.utxo.StateAndRef; -import net.corda.v5.ledger.utxo.transaction.UtxoSignedTransaction; -import org.junit.jupiter.api.Test; - -import java.util.List; -import java.util.UUID; - -import static com.r3.developers.csdetemplate.utxoexample.contracts.ChatContract.*; -import static java.util.Collections.emptyList; - -public class ChatContractCreateCommandTest extends ContractTest { - - protected ChatState outputChatState = new ChatState( - UUID.randomUUID(), - "aliceChatName", - aliceName, - "aliceChatMessage", - List.of(aliceKey, bobKey) - ); - - @Test - public void happyPath() { - UtxoSignedTransaction transaction = getLedgerService() - .createTransactionBuilder() - .addOutputState(outputChatState) - .addCommand(new ChatContract.Create()) - .addSignatories(outputChatState.participants) - .toSignedTransaction(); - assertVerifies(transaction); - } - - @Test - public void missingCommand() { - UtxoSignedTransaction transaction = getLedgerService() - .createTransactionBuilder() - .addOutputState(outputChatState) - .toSignedTransaction(); - assertFailsWith(transaction, "Failed requirement: " + REQUIRE_SINGLE_COMMAND); - } - - @Test - public void shouldNotAcceptUnknownCommand() { - class MyDummyCommand implements Command { - } - - UtxoSignedTransaction transaction = getLedgerService() - .createTransactionBuilder() - .addOutputState(outputChatState) - .addCommand(new MyDummyCommand()) - .addSignatories(outputChatState.participants) - .toSignedTransaction(); - - assertFailsWith(transaction, UNKNOWN_COMMAND); - } - - @Test - public void outputStateCannotHaveZeroParticipants() { - ChatState state = new ChatState( - UUID.randomUUID(), - "myChatName", - aliceName, - "myChatMessage", - emptyList() - ); - UtxoSignedTransaction transaction = getLedgerService() - .createTransactionBuilder() - .addOutputState(state) - .addCommand(new ChatContract.Create()) - .toSignedTransaction(); - assertFailsWith(transaction, "Failed requirement: " + OUTPUT_STATE_SHOULD_ONLY_HAVE_TWO_PARTICIPANTS); - } - - @Test - public void outputStateCannotHaveOneParticipant() { - ChatState state = new ChatState( - UUID.randomUUID(), - "myChatName", - aliceName, - "myChatMessage", - List.of(aliceKey) - ); - UtxoSignedTransaction transaction = getLedgerService() - .createTransactionBuilder() - .addOutputState(state) - .addCommand(new ChatContract.Create()) - .toSignedTransaction(); - assertFailsWith(transaction, "Failed requirement: " + OUTPUT_STATE_SHOULD_ONLY_HAVE_TWO_PARTICIPANTS); - } - - @Test - public void outputStateCannotHaveThreeParticipants() { - ChatState state = new ChatState( - UUID.randomUUID(), - "myChatName", - aliceName, - "myChatMessage", - List.of(aliceKey, bobKey, charlieKey) - ); - UtxoSignedTransaction transaction = getLedgerService() - .createTransactionBuilder() - .addOutputState(state) - .addCommand(new ChatContract.Create()) - .toSignedTransaction(); - assertFailsWith(transaction, "Failed requirement: " + OUTPUT_STATE_SHOULD_ONLY_HAVE_TWO_PARTICIPANTS); - } - - @Test - public void outputStateMustBeSigned() { - UtxoSignedTransaction transaction = getLedgerService() - .createTransactionBuilder() - .addOutputState(outputChatState) - .addCommand(new ChatContract.Create()) - .toSignedTransaction(); - assertFailsWith(transaction, "Failed requirement: " + TRANSACTION_SHOULD_BE_SIGNED_BY_ALL_PARTICIPANTS); - } - - @Test - public void outputStateCannotBeSignedByOnlyOneParticipant() { - UtxoSignedTransaction transaction = getLedgerService() - .createTransactionBuilder() - .addOutputState(outputChatState) - .addCommand(new ChatContract.Create()) - .addSignatories(outputChatState.participants.get(0)) - .toSignedTransaction(); - assertFailsWith(transaction, "Failed requirement: " + TRANSACTION_SHOULD_BE_SIGNED_BY_ALL_PARTICIPANTS); - } - - @Test - public void shouldNotIncludeInputState() { - happyPath(); // generate an existing state to search for - StateAndRef existingState = getLedgerService().findUnconsumedStatesByType(ChatState.class).get(0); // doesn't matter which as this will fail validation - UtxoSignedTransaction transaction = getLedgerService() - .createTransactionBuilder() - .addInputState(existingState.getRef()) - .addOutputState(outputChatState) - .addCommand(new ChatContract.Create()) - .addSignatories(outputChatState.participants) - .toSignedTransaction(); - assertFailsWith(transaction, "Failed requirement: " + CREATE_COMMAND_SHOULD_HAVE_NO_INPUT_STATES); - } - - @Test - public void shouldNotHaveTwoOutputStates() { - UtxoSignedTransaction transaction = getLedgerService() - .createTransactionBuilder() - .addOutputState(outputChatState) - .addOutputState(outputChatState) - .addCommand(new ChatContract.Create()) - .addSignatories(outputChatState.participants) - .toSignedTransaction(); - assertFailsWith(transaction, "Failed requirement: " + CREATE_COMMAND_SHOULD_HAVE_ONLY_ONE_OUTPUT_STATE); - } -} diff --git a/contracts/src/test/java/com/r3/developers/csdetemplate/utxoexample/contracts/ChatContractUpdateCommandTest.java b/contracts/src/test/java/com/r3/developers/csdetemplate/utxoexample/contracts/ChatContractUpdateCommandTest.java deleted file mode 100644 index cb66a1f..0000000 --- a/contracts/src/test/java/com/r3/developers/csdetemplate/utxoexample/contracts/ChatContractUpdateCommandTest.java +++ /dev/null @@ -1,175 +0,0 @@ -package com.r3.developers.csdetemplate.utxoexample.contracts; - -import com.r3.corda.ledger.utxo.testing.ContractTest; -import com.r3.developers.csdetemplate.utxoexample.states.ChatState; -import net.corda.v5.ledger.utxo.StateAndRef; -import net.corda.v5.ledger.utxo.transaction.UtxoSignedTransaction; -import org.junit.jupiter.api.Test; - -import java.util.List; -import java.util.UUID; - -import static com.r3.developers.csdetemplate.utxoexample.contracts.ChatContract.*; - -public class ChatContractUpdateCommandTest extends ContractTest { - - @SuppressWarnings("unchecked") - private StateAndRef createInitialChatState() { - ChatState outputChatState = new ChatContractCreateCommandTest().outputChatState; - UtxoSignedTransaction transaction = getLedgerService() - .createTransactionBuilder() - .addOutputState(outputChatState) - .addCommand(new ChatContract.Create()) - .addSignatories(outputChatState.participants) - .toSignedTransaction(); - transaction.toLedgerTransaction(); - return (StateAndRef) transaction.getOutputStateAndRefs().get(0); - } - - @Test - public void happyPath() { - StateAndRef existingState = createInitialChatState(); - ChatState updatedOutputChatState = existingState.getState().getContractState().updateMessage(bobName, "bobResponse"); - UtxoSignedTransaction transaction = getLedgerService() - .createTransactionBuilder() - .addInputState(existingState.getRef()) - .addOutputState(updatedOutputChatState) - .addCommand(new ChatContract.Update()) - .addSignatories(updatedOutputChatState.participants) - .toSignedTransaction(); - assertVerifies(transaction); - } - - @Test - public void shouldNotHaveNoInputState() { - StateAndRef existingState = createInitialChatState(); - ChatState updatedOutputChatState = existingState.getState().getContractState().updateMessage(bobName, "bobResponse"); - UtxoSignedTransaction transaction = getLedgerService() - .createTransactionBuilder() - .addOutputState(updatedOutputChatState) - .addCommand(new ChatContract.Update()) - .addSignatories(updatedOutputChatState.participants) - .toSignedTransaction(); - assertFailsWith(transaction, "Failed requirement: " + UPDATE_COMMAND_SHOULD_HAVE_ONLY_ONE_INPUT_STATE); - } - - @Test - public void shouldNotHaveTwoInputStates() { - StateAndRef existingState = createInitialChatState(); - ChatState updatedOutputChatState = existingState.getState().getContractState().updateMessage(bobName, "bobResponse"); - UtxoSignedTransaction transaction = getLedgerService() - .createTransactionBuilder() - .addInputState(existingState.getRef()) - .addInputState(existingState.getRef()) - .addOutputState(updatedOutputChatState) - .addCommand(new ChatContract.Update()) - .addSignatories(updatedOutputChatState.participants) - .toSignedTransaction(); - assertFailsWith(transaction, "Failed requirement: " + UPDATE_COMMAND_SHOULD_HAVE_ONLY_ONE_INPUT_STATE); - } - - @Test - public void shouldNotHaveTwoOutputStates() { - StateAndRef existingState = createInitialChatState(); - ChatState updatedOutputChatState = existingState.getState().getContractState().updateMessage(bobName, "bobResponse"); - UtxoSignedTransaction transaction = getLedgerService() - .createTransactionBuilder() - .addInputState(existingState.getRef()) - .addOutputState(updatedOutputChatState) - .addOutputState(updatedOutputChatState) - .addCommand(new ChatContract.Update()) - .addSignatories(updatedOutputChatState.participants) - .toSignedTransaction(); - assertFailsWith(transaction, "Failed requirement: " + UPDATE_COMMAND_SHOULD_HAVE_ONLY_ONE_OUTPUT_STATE); - } - - @Test - public void idShouldNotChange() { - StateAndRef existingState = createInitialChatState(); - ChatState esDetails = existingState.getState().getContractState(); - ChatState updatedOutputChatState = new ChatState( - UUID.randomUUID(), - esDetails.getChatName(), - bobName, - "bobResponse", - esDetails.getParticipants() - ); - UtxoSignedTransaction transaction = getLedgerService() - .createTransactionBuilder() - .addInputState(existingState.getRef()) - .addOutputState(updatedOutputChatState) - .addCommand(new ChatContract.Update()) - .addSignatories(updatedOutputChatState.participants) - .toSignedTransaction(); - assertFailsWith(transaction, "Failed requirement: " + UPDATE_COMMAND_ID_SHOULD_NOT_CHANGE); - } - - @Test - public void chatNameShouldNotChange() { - StateAndRef existingState = createInitialChatState(); - ChatState esDetails = existingState.getState().getContractState(); - ChatState updatedOutputChatState = new ChatState( - esDetails.getId(), - "newName", - bobName, - "bobResponse", - esDetails.getParticipants() - ); - UtxoSignedTransaction transaction = getLedgerService() - .createTransactionBuilder() - .addInputState(existingState.getRef()) - .addOutputState(updatedOutputChatState) - .addCommand(new ChatContract.Update()) - .addSignatories(updatedOutputChatState.participants) - .toSignedTransaction(); - assertFailsWith(transaction, "Failed requirement: " + UPDATE_COMMAND_CHATNAME_SHOULD_NOT_CHANGE); - } - - @Test - public void participantsShouldNotChange() { - StateAndRef existingState = createInitialChatState(); - ChatState esDetails = existingState.getState().getContractState(); - ChatState updatedOutputChatState = new ChatState( - esDetails.getId(), - esDetails.getChatName(), - bobName, - "bobResponse", - List.of(bobKey, charlieKey) - ); - UtxoSignedTransaction transaction = getLedgerService() - .createTransactionBuilder() - .addInputState(existingState.getRef()) - .addOutputState(updatedOutputChatState) - .addCommand(new ChatContract.Update()) - .addSignatories(updatedOutputChatState.participants) - .toSignedTransaction(); - assertFailsWith(transaction, "Failed requirement: " + UPDATE_COMMAND_PARTICIPANTS_SHOULD_NOT_CHANGE); - } - - @Test - public void outputStateMustBeSigned() { - StateAndRef existingState = createInitialChatState(); - ChatState updatedOutputChatState = existingState.getState().getContractState().updateMessage(bobName, "bobResponse"); - UtxoSignedTransaction transaction = getLedgerService() - .createTransactionBuilder() - .addInputState(existingState.getRef()) - .addOutputState(updatedOutputChatState) - .addCommand(new ChatContract.Update()) - .toSignedTransaction(); - assertFailsWith(transaction, "Failed requirement: " + TRANSACTION_SHOULD_BE_SIGNED_BY_ALL_PARTICIPANTS); - } - - @Test - public void outputStateCannotBeSignedByOnlyOneParticipant() { - StateAndRef existingState = createInitialChatState(); - ChatState updatedOutputChatState = existingState.getState().getContractState().updateMessage(bobName, "bobResponse"); - UtxoSignedTransaction transaction = getLedgerService() - .createTransactionBuilder() - .addInputState(existingState.getRef()) - .addOutputState(updatedOutputChatState) - .addCommand(new ChatContract.Update()) - .addSignatories(updatedOutputChatState.participants.get(0)) - .toSignedTransaction(); - assertFailsWith(transaction, "Failed requirement: " + TRANSACTION_SHOULD_BE_SIGNED_BY_ALL_PARTICIPANTS); - } -} diff --git a/gradle.properties b/gradle.properties index 0515780..282b05a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,20 +2,20 @@ kotlin.code.style=official # Specify the version of the Corda-API to use. # This needs to match the version supported by the Corda Cluster the CorDapp will run on. -cordaApiVersion=5.0.0.763-Iguana1.0 +cordaApiVersion=5.0.0.765 # Specify the version of the notary plugins to use. # Currently packaged as part of corda-runtime-os, so should be set to a corda-runtime-os version. -cordaNotaryPluginsVersion=5.0.0.0-Iguana1.0 +cordaNotaryPluginsVersion=5.0.0.0 # Specify the version of the Combined Worker to use -combinedWorkerJarVersion=5.0.0.0-Iguana1.0 +combinedWorkerJarVersion=5.0.0.0 # Specify the version of the cordapp-cpb and cordapp-cpk plugins cordaPluginsVersion=7.0.3 # Specify the version of the CSDE gradle plugin to use -csdePluginVersion=1.2.0-alpha-+ +csdePluginVersion=1.1.0 # Specify the name of the workflows module workflowsModule=workflows @@ -34,14 +34,4 @@ kotlin.stdlib.default.dependency=false junitVersion = 5.8.2 mockitoKotlinVersion=4.0.0 mockitoVersion=4.6.1 -hamcrestVersion=2.2 -contractTestingVersion=0.9.0-beta-+ - -# Specify the maximum amount of time allowed for the CPI upload -# As your CorDapp grows you might need to increase this -# Value is in milliseconds -cpiUploadDefault=10000 - -# R3 internal repository -# Use this version when pointing to artefacts in artifactory that have not been published to S3 -artifactoryContextUrl=https://software.r3.com/artifactory +hamcrestVersion=2.2 \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index d343d5f..22d345b 100644 --- a/settings.gradle +++ b/settings.gradle @@ -4,16 +4,6 @@ pluginManagement { gradlePluginPortal() mavenCentral() mavenLocal() - maven { - url = "$artifactoryContextUrl/corda-os-maven" - authentication { - basic(BasicAuthentication) - } - credentials { - username = settings.ext.find('cordaArtifactoryUsername') ?: System.getenv('CORDA_ARTIFACTORY_USERNAME') - password = settings.ext.find('cordaArtifactoryPassword') ?: System.getenv('CORDA_ARTIFACTORY_PASSWORD') - } - } } // The plugin dependencies with versions of the plugins congruent with the specified CorDapp plugin version, diff --git a/workflows/build.gradle b/workflows/build.gradle index d3d21e5..ddc1790 100644 --- a/workflows/build.gradle +++ b/workflows/build.gradle @@ -40,12 +40,6 @@ dependencies { // The CorDapp uses the slf4j logging framework. Corda-API provides this so we need a 'cordaProvided' declaration. cordaProvided 'org.slf4j:slf4j-api' - // This are shared so should be here. - // Dependencies Required By Test Tooling - // Todo: these are commented out as the simulator UTXO work has not been merged into Gecko yet. -// testImplementation "net.corda:corda-simulator-api:$simulatorVersion" -// testRuntimeOnly "net.corda:corda-simulator-runtime:$simulatorVersion" - // 3rd party libraries // Required testImplementation "org.slf4j:slf4j-simple:2.0.0"