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 <tony.lawson@r3.com>
This commit is contained in:
		
							parent
							
								
									bb380544d6
								
							
						
					
					
						commit
						15f1043a39
					
				
							
								
								
									
										17
									
								
								build.gradle
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								build.gradle
									
									
									
									
									
								
							@ -32,7 +32,6 @@ allprojects {
 | 
				
			|||||||
        cordaDbContainerName = "CSDEpostgresql"
 | 
					        cordaDbContainerName = "CSDEpostgresql"
 | 
				
			||||||
        cordaBinDir = "${System.getProperty("user.home")}/.corda/corda5"
 | 
					        cordaBinDir = "${System.getProperty("user.home")}/.corda/corda5"
 | 
				
			||||||
        cordaCliBinDir = "${System.getProperty("user.home")}/.corda/cli"
 | 
					        cordaCliBinDir = "${System.getProperty("user.home")}/.corda/cli"
 | 
				
			||||||
        cpiUploadTimeout = cpiUploadDefault
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Declare the set of Java compiler options we need to build a CorDapp.
 | 
					    // 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
 | 
					        // All dependencies are held in Maven Central
 | 
				
			||||||
        mavenLocal()
 | 
					        mavenLocal()
 | 
				
			||||||
        mavenCentral()
 | 
					        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 {
 | 
					    tasks.withType(Test).configureEach {
 | 
				
			||||||
 | 
				
			|||||||
@ -1,38 +1,32 @@
 | 
				
			|||||||
-----BEGIN CERTIFICATE-----
 | 
					-----BEGIN CERTIFICATE-----
 | 
				
			||||||
MIIGsDCCBJigAwIBAgIQCK1AsmDSnEyfXs2pvZOu2TANBgkqhkiG9w0BAQwFADBi
 | 
					MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBi
 | 
				
			||||||
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
 | 
					MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
 | 
				
			||||||
d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3Qg
 | 
					d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3Qg
 | 
				
			||||||
RzQwHhcNMjEwNDI5MDAwMDAwWhcNMzYwNDI4MjM1OTU5WjBpMQswCQYDVQQGEwJV
 | 
					RzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBiMQswCQYDVQQGEwJV
 | 
				
			||||||
UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xQTA/BgNVBAMTOERpZ2lDZXJ0IFRy
 | 
					UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu
 | 
				
			||||||
dXN0ZWQgRzQgQ29kZSBTaWduaW5nIFJTQTQwOTYgU0hBMzg0IDIwMjEgQ0ExMIIC
 | 
					Y29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0GCSqG
 | 
				
			||||||
IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1bQvQtAorXi3XdU5WRuxiEL1
 | 
					SIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3y
 | 
				
			||||||
M4zrPYGXcMW7xIUmMJ+kjmjYXPXrNCQH4UtP03hD9BfXHtr50tVnGlJPDqFX/IiZ
 | 
					ithZwuEppz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1If
 | 
				
			||||||
wZHMgQM+TXAkZLON4gh9NH1MgFcSa0OamfLFOx/y78tHWhOmTLMBICXzENOLsvsI
 | 
					xp4VpX6+n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDV
 | 
				
			||||||
8IrgnQnAZaf6mIBJNYc9URnokCF4RS6hnyzhGMIazMXuk0lwQjKP+8bqHPNlaJGi
 | 
					ySAdYyktzuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBfsXpm7nfISKhmV1efVFiO
 | 
				
			||||||
TUyCEUhSaN4QvRRXXegYE2XFf7JPhSxIpFaENdb5LpyqABXRN/4aBpTCfMjqGzLm
 | 
					DCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGYQJB5w3jHtrHEtWoYOAMQ
 | 
				
			||||||
ysL0p6MDDnSlrzm2q2AS4+jWufcx4dyt5Big2MEjR0ezoQ9uo6ttmAaDG7dqZy3S
 | 
					jdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6MUSaM0C/
 | 
				
			||||||
vUQakhCBj7A7CdfHmzJawv9qYFSLScGT7eG0XOBv6yb5jNWy+TgQ5urOkfW+0/tv
 | 
					CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCi
 | 
				
			||||||
k2E0XLyTRSiDNipmKF+wc86LJiUGsoPUXPYVGUztYuBeM/Lo6OwKp7ADK5GyNnm+
 | 
					EhtmmnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADM
 | 
				
			||||||
960IHnWmZcy740hQ83eRGv7bUKJGyGFYmPV8AhY8gyitOYbs1LcNU9D4R+Z1MI3s
 | 
					fRyVw4/3IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QY
 | 
				
			||||||
MJN2FKZbS110YU0/EpF23r9Yy3IQKUHw1cVtJnZoEUETWJrcJisB9IlNWdt4z4FK
 | 
					uKZ3AeEPlAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXK
 | 
				
			||||||
PkBHX8mBUHOFECMhWWCKZFTBzCEa6DgZfGYczXg4RTCZT/9jT0y7qg0IU0F8WD1H
 | 
					chYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7FwI+isX4KJpn15GkvmB0t
 | 
				
			||||||
s/q27IwyCQLMbDwMVhECAwEAAaOCAVkwggFVMBIGA1UdEwEB/wQIMAYBAf8CAQAw
 | 
					9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
 | 
				
			||||||
HQYDVR0OBBYEFGg34Ou2O/hfEYb7/mF7CIhl9E5CMB8GA1UdIwQYMBaAFOzX44LS
 | 
					hjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD
 | 
				
			||||||
cV1kTN8uZz/nupiuHA9PMA4GA1UdDwEB/wQEAwIBhjATBgNVHSUEDDAKBggrBgEF
 | 
					ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2
 | 
				
			||||||
BQcDAzB3BggrBgEFBQcBAQRrMGkwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRp
 | 
					SV1EY+CtnJYYZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd
 | 
				
			||||||
Z2ljZXJ0LmNvbTBBBggrBgEFBQcwAoY1aHR0cDovL2NhY2VydHMuZGlnaWNlcnQu
 | 
					+SeuMIW59mdNOj6PWTkiU0TryF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWc
 | 
				
			||||||
Y29tL0RpZ2lDZXJ0VHJ1c3RlZFJvb3RHNC5jcnQwQwYDVR0fBDwwOjA4oDagNIYy
 | 
					fFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy7zBZLq7gcfJW5GqXb5JQbZaNaHqa
 | 
				
			||||||
aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZFJvb3RHNC5j
 | 
					sjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iahixTXTBmyUEFxPT9N
 | 
				
			||||||
cmwwHAYDVR0gBBUwEzAHBgVngQwBAzAIBgZngQwBBAEwDQYJKoZIhvcNAQEMBQAD
 | 
					cCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN5r5N
 | 
				
			||||||
ggIBADojRD2NCHbuj7w6mdNW4AIapfhINPMstuZ0ZveUcrEAyq9sMCcTEp6QRJ9L
 | 
					0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie
 | 
				
			||||||
/Z6jfCbVN7w6XUhtldU/SfQnuxaBRVD9nL22heB2fjdxyyL3WqqQz/WTauPrINHV
 | 
					4u1Ki7wb/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mI
 | 
				
			||||||
UHmImoqKwba9oUgYftzYgBoRGRjNYZmBVvbJ43bnxOQbX0P4PpT/djk9ntSZz0rd
 | 
					r/OSmbaz5mEP0oUA51Aa5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1
 | 
				
			||||||
KOtfJqGVWEjVGv7XJz/9kNF2ht0csGBc8w2o7uCJob054ThO2m67Np375SFTWsPK
 | 
					/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tKG48BtieVU+i2iW1bvGjUI+iLUaJW+fCm
 | 
				
			||||||
6Wrxoj7bQ7gzyE84FJKZ9d3OVG3ZXQIUH0AzfAPilbLCIXVzUstG2MQ0HKKlS43N
 | 
					gKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP82Z+
 | 
				
			||||||
b3Y3LIU/Gs4m6Ri+kAewQ3+ViCCCcPDMyu/9KTVcH4k4Vfc3iosJocsL6TEa/y4Z
 | 
					 | 
				
			||||||
XDlx4b6cpwoG1iZnt5LmTl/eeqxJzy6kdJKt2zyknIYf48FWGysj/4+16oh7cGvm
 | 
					 | 
				
			||||||
oLr9Oj9FpsToFpFSi0HASIRLlk2rREDjjfAVKM7t8RhWByovEMQMCGQ8M4+uKIw8
 | 
					 | 
				
			||||||
y4+ICw2/O/TOHnuO77Xry7fwdxPm5yg/rBKupS8ibEH5glwVZsxsDsrFhsP2JjMM
 | 
					 | 
				
			||||||
B0ug0wcCampAMEhLNKhRILutG4UI4lkNbcoFUCvqShyepf2gpx8GdOfy1lKQ/a+F
 | 
					 | 
				
			||||||
SCH5Vzu0nAPthkX0tGFuv2jiJmCG6sivqf6UHedjGzqGVnhO
 | 
					 | 
				
			||||||
-----END CERTIFICATE-----
 | 
					-----END CERTIFICATE-----
 | 
				
			||||||
 | 
				
			|||||||
@ -39,23 +39,16 @@ dependencies {
 | 
				
			|||||||
    // The CorDapp uses the slf4j logging framework. Corda-API provides this so we need a 'cordaProvided' declaration.
 | 
					    // The CorDapp uses the slf4j logging framework. Corda-API provides this so we need a 'cordaProvided' declaration.
 | 
				
			||||||
    cordaProvided 'org.slf4j:slf4j-api'
 | 
					    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
 | 
					    // 3rd party libraries
 | 
				
			||||||
    // Required
 | 
					    // Required
 | 
				
			||||||
    testImplementation "org.slf4j:slf4j-simple:2.0.0"
 | 
					    testImplementation "org.slf4j:slf4j-simple:2.0.0"
 | 
				
			||||||
    testImplementation "org.junit.jupiter:junit-jupiter:$junitVersion"
 | 
					    testImplementation "org.junit.jupiter:junit-jupiter:$junitVersion"
 | 
				
			||||||
    testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:$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:mockito-core:$mockitoVersion"
 | 
				
			||||||
    testImplementation "org.mockito.kotlin:mockito-kotlin:$mockitoKotlinVersion"
 | 
					    testImplementation "org.mockito.kotlin:mockito-kotlin:$mockitoKotlinVersion"
 | 
				
			||||||
    testImplementation "org.hamcrest:hamcrest-library:$hamcrestVersion"
 | 
					    testImplementation "org.hamcrest:hamcrest-library:$hamcrestVersion"
 | 
				
			||||||
    testImplementation "com.r3.corda.ledger.utxo:contract-testing:$contractTestingVersion"
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// The CordApp section.
 | 
					// The CordApp section.
 | 
				
			||||||
 | 
				
			|||||||
@ -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<ChatState> 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);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -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<ChatState> createInitialChatState() {
 | 
					 | 
				
			||||||
        ChatState outputChatState = new ChatContractCreateCommandTest().outputChatState;
 | 
					 | 
				
			||||||
        UtxoSignedTransaction transaction = getLedgerService()
 | 
					 | 
				
			||||||
                .createTransactionBuilder()
 | 
					 | 
				
			||||||
                .addOutputState(outputChatState)
 | 
					 | 
				
			||||||
                .addCommand(new ChatContract.Create())
 | 
					 | 
				
			||||||
                .addSignatories(outputChatState.participants)
 | 
					 | 
				
			||||||
                .toSignedTransaction();
 | 
					 | 
				
			||||||
        transaction.toLedgerTransaction();
 | 
					 | 
				
			||||||
        return (StateAndRef<ChatState>) transaction.getOutputStateAndRefs().get(0);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @Test
 | 
					 | 
				
			||||||
    public void happyPath() {
 | 
					 | 
				
			||||||
        StateAndRef<ChatState> 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<ChatState> 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<ChatState> 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<ChatState> 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<ChatState> 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<ChatState> 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<ChatState> 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<ChatState> 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<ChatState> 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);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -2,20 +2,20 @@ kotlin.code.style=official
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
# Specify the version of the Corda-API to use.
 | 
					# 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.
 | 
					# 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.
 | 
					# 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.
 | 
					# 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
 | 
					# 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
 | 
					# Specify the version of the cordapp-cpb and cordapp-cpk plugins
 | 
				
			||||||
cordaPluginsVersion=7.0.3
 | 
					cordaPluginsVersion=7.0.3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Specify the version of the CSDE gradle plugin to use
 | 
					# 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
 | 
					# Specify the name of the workflows module
 | 
				
			||||||
workflowsModule=workflows
 | 
					workflowsModule=workflows
 | 
				
			||||||
@ -35,13 +35,3 @@ junitVersion = 5.8.2
 | 
				
			|||||||
mockitoKotlinVersion=4.0.0
 | 
					mockitoKotlinVersion=4.0.0
 | 
				
			||||||
mockitoVersion=4.6.1
 | 
					mockitoVersion=4.6.1
 | 
				
			||||||
hamcrestVersion=2.2
 | 
					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
 | 
					 | 
				
			||||||
 | 
				
			|||||||
@ -4,16 +4,6 @@ pluginManagement {
 | 
				
			|||||||
        gradlePluginPortal()
 | 
					        gradlePluginPortal()
 | 
				
			||||||
        mavenCentral()
 | 
					        mavenCentral()
 | 
				
			||||||
        mavenLocal()
 | 
					        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,
 | 
					    //  The plugin dependencies with versions of the plugins congruent with the specified CorDapp plugin version,
 | 
				
			||||||
 | 
				
			|||||||
@ -40,12 +40,6 @@ dependencies {
 | 
				
			|||||||
    // The CorDapp uses the slf4j logging framework. Corda-API provides this so we need a 'cordaProvided' declaration.
 | 
					    // The CorDapp uses the slf4j logging framework. Corda-API provides this so we need a 'cordaProvided' declaration.
 | 
				
			||||||
    cordaProvided 'org.slf4j:slf4j-api'
 | 
					    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
 | 
					    // 3rd party libraries
 | 
				
			||||||
    // Required
 | 
					    // Required
 | 
				
			||||||
    testImplementation "org.slf4j:slf4j-simple:2.0.0"
 | 
					    testImplementation "org.slf4j:slf4j-simple:2.0.0"
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user