org.hyperledger.fabric.client.ContractImpl Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of fabric-gateway Show documentation
Show all versions of fabric-gateway Show documentation
Hyperledger Fabric Gateway client API for Java
The newest version!
/*
* Copyright 2019 IBM All Rights Reserved.
*
* SPDX-License-Identifier: Apache-2.0
*/
package org.hyperledger.fabric.client;
import java.util.Objects;
import java.util.Optional;
final class ContractImpl implements Contract {
private final GatewayClient client;
private final SigningIdentity signingIdentity;
private final String channelName;
private final String chaincodeName;
private final String contractName;
ContractImpl(
final GatewayClient client,
final SigningIdentity signingIdentity,
final String channelName,
final String chaincodeName) {
this(client, signingIdentity, channelName, chaincodeName, null);
}
ContractImpl(
final GatewayClient client,
final SigningIdentity signingIdentity,
final String channelName,
final String chaincodeName,
final String contractName) {
Objects.requireNonNull(chaincodeName, "chaincode name");
this.client = client;
this.signingIdentity = signingIdentity;
this.channelName = channelName;
this.chaincodeName = chaincodeName;
this.contractName = contractName;
}
@Override
public byte[] submitTransaction(final String name)
throws EndorseException, CommitException, SubmitException, CommitStatusException {
return newProposal(name).build().endorse().submit();
}
@Override
public byte[] submitTransaction(final String name, final String... args)
throws EndorseException, CommitException, SubmitException, CommitStatusException {
return newProposal(name).addArguments(args).build().endorse().submit();
}
@Override
public byte[] submitTransaction(final String name, final byte[]... args)
throws EndorseException, CommitException, SubmitException, CommitStatusException {
return newProposal(name).addArguments(args).build().endorse().submit();
}
@Override
public byte[] evaluateTransaction(final String name) throws GatewayException {
return newProposal(name).build().evaluate();
}
@Override
public byte[] evaluateTransaction(final String name, final String... args) throws GatewayException {
return newProposal(name).addArguments(args).build().evaluate();
}
@Override
public byte[] evaluateTransaction(final String name, final byte[]... args) throws GatewayException {
return newProposal(name).addArguments(args).build().evaluate();
}
@Override
public Proposal.Builder newProposal(final String transactionName) {
String qualifiedTxName = qualifiedTransactionName(transactionName);
return new ProposalBuilder(client, signingIdentity, channelName, chaincodeName, qualifiedTxName);
}
@Override
public String getChaincodeName() {
return chaincodeName;
}
@Override
public Optional getContractName() {
return Optional.ofNullable(contractName);
}
private String qualifiedTransactionName(final String name) {
Objects.requireNonNull(name, "transaction name");
return getContractName().map(contractName -> contractName + ":" + name).orElse(name);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy