Search in sources :

Example 31 with Eth2SigningRequestBody

use of tech.pegasys.web3signer.core.service.http.handlers.signing.eth2.Eth2SigningRequestBody in project web3signer by ConsenSys.

the class Eth2AltairBlockSigningAcceptanceTest method signAndVerifyBlockV2Signature.

@ParameterizedTest
@EnumSource(value = SpecMilestone.class, names = { "PHASE0", "ALTAIR" })
void signAndVerifyBlockV2Signature(final SpecMilestone specMilestone) throws Exception {
    final Eth2BlockSigningRequestUtil util = new Eth2BlockSigningRequestUtil(specMilestone);
    switch(specMilestone) {
        case ALTAIR:
            setupEth2SignerMinimal();
            break;
        case PHASE0:
            setupEth2SignerMinimalWithoutAltairFork();
            break;
        default:
            fail("Spec milestone not yet supported" + specMilestone);
    }
    final Eth2SigningRequestBody request = util.createBlockV2Request();
    final Response response = signer.eth2Sign(keyPair.getPublicKey().toString(), request, ContentType.JSON);
    final Bytes signature = verifyAndGetSignatureResponse(response, ContentType.JSON);
    final BLSSignature expectedSignature = BLS.sign(keyPair.getSecretKey(), request.getSigningRoot());
    assertThat(signature).isEqualTo(expectedSignature.toBytesCompressed());
}
Also used : Response(io.restassured.response.Response) Bytes(org.apache.tuweni.bytes.Bytes) Eth2SigningRequestBody(tech.pegasys.web3signer.core.service.http.handlers.signing.eth2.Eth2SigningRequestBody) Eth2BlockSigningRequestUtil(tech.pegasys.web3signer.dsl.utils.Eth2BlockSigningRequestUtil) BLSSignature(tech.pegasys.teku.bls.BLSSignature) EnumSource(org.junit.jupiter.params.provider.EnumSource) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Aggregations

Eth2SigningRequestBody (tech.pegasys.web3signer.core.service.http.handlers.signing.eth2.Eth2SigningRequestBody)31 Bytes (org.apache.tuweni.bytes.Bytes)17 Response (io.restassured.response.Response)16 Test (org.junit.jupiter.api.Test)15 ForkInfo (tech.pegasys.web3signer.core.service.http.handlers.signing.eth2.ForkInfo)9 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)8 BLSSignature (tech.pegasys.teku.bls.BLSSignature)5 Eth2BlockSigningRequestUtil (tech.pegasys.web3signer.dsl.utils.Eth2BlockSigningRequestUtil)5 Path (java.nio.file.Path)4 EnumSource (org.junit.jupiter.params.provider.EnumSource)4 JsonObject (io.vertx.core.json.JsonObject)3 ExecutionException (java.util.concurrent.ExecutionException)3 AttestationData (tech.pegasys.teku.api.schema.AttestationData)2 Checkpoint (tech.pegasys.teku.api.schema.Checkpoint)2 DepositMessage (tech.pegasys.web3signer.core.service.http.handlers.signing.eth2.DepositMessage)2 Signer (tech.pegasys.web3signer.dsl.signer.Signer)2 SignerConfigurationBuilder (tech.pegasys.web3signer.dsl.signer.SignerConfigurationBuilder)2 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)1 InterchangeV5Format (dsl.InterchangeV5Format)1 SignedArtifacts (dsl.SignedArtifacts)1