<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.4.2</version><relativePath/><!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><name>demo</name><description>Demo project for Spring Boot</description><properties><java.version>11</java.version></properties><repositories><repository><id>jitpack.io</id><url>https://jitpack.io</url></repository></repositories><dependencies><dependency><groupId>com.github.ipfs</groupId><artifactId>java-ipfs-http-client</artifactId><version>1.3.3</version></dependency><dependency><groupId>org.fisco-bcos.java-sdk</groupId><artifactId>fisco-bcos-java-sdk</artifactId><exclusions><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId></exclusion></exclusions><version>2.8.0</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><!--排除这个slf4j-log4j12--><exclusions><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web-services</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin></plugins></build></project>
1.2 config.toml配置文件
主要配置证书的目录
certPath ="/home/ybx/fisco/console/conf"
1.3 用工具编译Helloworld.sol生成Hellolworld.java文件
注意Helloworld所在包的目录
package org.com.fisco;import org.fisco.bcos.sdk.abi.FunctionReturnDecoder;import org.fisco.bcos.sdk.abi.TypeReference;import org.fisco.bcos.sdk.abi.datatypes.Function;import org.fisco.bcos.sdk.abi.datatypes.Type;import org.fisco.bcos.sdk.abi.datatypes.Utf8String;import org.fisco.bcos.sdk.abi.datatypes.generated.tuples.generated.Tuple1;import org.fisco.bcos.sdk.client.Client;import org.fisco.bcos.sdk.contract.Contract;import org.fisco.bcos.sdk.crypto.CryptoSuite;import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair;import org.fisco.bcos.sdk.model.CryptoType;import org.fisco.bcos.sdk.model.TransactionReceipt;import org.fisco.bcos.sdk.model.callback.TransactionCallback;import org.fisco.bcos.sdk.transaction.model.exception.ContractException;import java.util.Arrays;import java.util.Collections;import java.util.List;
@SuppressWarnings("unchecked")
public class HelloWorld extends Contract {
public static final String[] BINARY_ARRAY ={"608060405234801561001057600080fd5b506040805190810160405280600d81526020017f48656c6c6f2c20576f726c6421000000000000000000000000000000000000008152506000908051906020019061005c929190610062565b50610107565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100a357805160ff19168380011785556100d1565b828001600101855582156100d1579182015b828111156100d05782518255916020019190600101906100b5565b5b5090506100de91906100e2565b5090565b61010491905b808211156101005760008160009055506001016100e8565b5090565b90565b6102d7806101166000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634ed3885e146100515780636d4ce63c146100ba575b600080fd5b34801561005d57600080fd5b506100b8600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061014a565b005b3480156100c657600080fd5b506100cf610164565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561010f5780820151818401526020810190506100f4565b50505050905090810190601f16801561013c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b8060009080519060200190610160929190610206565b5050565b606060008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156101fc5780601f106101d1576101008083540402835291602001916101fc565b820191906000526020600020905b8154815290600101906020018083116101df57829003601f168201915b5050505050905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061024757805160ff1916838001178555610275565b82800160010185558215610275579182015b82811115610274578251825591602001919060010190610259565b5b5090506102829190610286565b5090565b6102a891905b808211156102a457600081600090555060010161028c565b5090565b905600a165627a7a72305820b1744ccd28d3d152d7fac89294703316082ce5481cef4c29808d1904d1e1f4b20029"};
public static final String BINARY = org.fisco.bcos.sdk.utils.StringUtils.joinAll("", BINARY_ARRAY);
public static final String[] SM_BINARY_ARRAY ={"608060405234801561001057600080fd5b506040805190810160405280600d81526020017f48656c6c6f2c20576f726c6421000000000000000000000000000000000000008152506000908051906020019061005c929190610062565b50610107565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100a357805160ff19168380011785556100d1565b828001600101855582156100d1579182015b828111156100d05782518255916020019190600101906100b5565b5b5090506100de91906100e2565b5090565b61010491905b808211156101005760008160009055506001016100e8565b5090565b90565b6102d7806101166000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063299f7f9d146100515780633590b49f146100e1575b600080fd5b34801561005d57600080fd5b5061006661014a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100a657808201518184015260208101905061008b565b50505050905090810190601f1680156100d35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156100ed57600080fd5b50610148600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506101ec565b005b606060008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156101e25780601f106101b7576101008083540402835291602001916101e2565b820191906000526020600020905b8154815290600101906020018083116101c557829003601f168201915b5050505050905090565b8060009080519060200190610202929190610206565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061024757805160ff1916838001178555610275565b82800160010185558215610275579182015b82811115610274578251825591602001919060010190610259565b5b5090506102829190610286565b5090565b6102a891905b808211156102a457600081600090555060010161028c565b5090565b905600a165627a7a72305820defb7a0b9c6a1ca001a7b54f2f3f37619217183219644c5cb0c1ac940406d11a0029"};
public static final String SM_BINARY = org.fisco.bcos.sdk.utils.StringUtils.joinAll("", SM_BINARY_ARRAY);
public static final String[] ABI_ARRAY ={"[{\"constant\":false,\"inputs\":[{\"name\":\"n\",\"type\":\"string\"}],\"name\":\"set\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"get\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}]"};
public static final String ABI = org.fisco.bcos.sdk.utils.StringUtils.joinAll("", ABI_ARRAY);
public static final String FUNC_SET ="set";
public static final String FUNC_GET ="get";
protected HelloWorld(String contractAddress, Client client, CryptoKeyPair credential){super(getBinary(client.getCryptoSuite()), contractAddress, client, credential);}
public static String getBinary(CryptoSuite cryptoSuite){return(cryptoSuite.getCryptoTypeConfig()== CryptoType.ECDSA_TYPE ? BINARY : SM_BINARY);}
public TransactionReceipt set(String n){
final Function function =newFunction(
FUNC_SET,
Arrays.<Type>asList(new org.fisco.bcos.sdk.abi.datatypes.Utf8String(n)),
Collections.<TypeReference<?>>emptyList());returnexecuteTransaction(function);}
public byte[]set(String n, TransactionCallback callback){
final Function function =newFunction(
FUNC_SET,
Arrays.<Type>asList(new org.fisco.bcos.sdk.abi.datatypes.Utf8String(n)),
Collections.<TypeReference<?>>emptyList());returnasyncExecuteTransaction(function, callback);}
public String getSignedTransactionForSet(String n){
final Function function =newFunction(
FUNC_SET,
Arrays.<Type>asList(new org.fisco.bcos.sdk.abi.datatypes.Utf8String(n)),
Collections.<TypeReference<?>>emptyList());returncreateSignedTransaction(function);}
public Tuple1<String>getSetInput(TransactionReceipt transactionReceipt){
String data = transactionReceipt.getInput().substring(10);
final Function function =newFunction(FUNC_SET,
Arrays.<Type>asList(),
Arrays.<TypeReference<?>>asList(new TypeReference<Utf8String>(){}));
List<Type> results = FunctionReturnDecoder.decode(data, function.getOutputParameters());returnnew Tuple1<String>((String) results.get(0).getValue());}
public String get() throws ContractException {
final Function function =newFunction(FUNC_GET,
Arrays.<Type>asList(),
Arrays.<TypeReference<?>>asList(new TypeReference<Utf8String>(){}));returnexecuteCallWithSingleValueReturn(function, String.class);}
public static HelloWorld load(String contractAddress, Client client, CryptoKeyPair credential){returnnewHelloWorld(contractAddress, client, credential);}
public static HelloWorld deploy(Client client, CryptoKeyPair credential) throws ContractException {returndeploy(HelloWorld.class, client, credential,getBinary(client.getCryptoSuite()),"");}}
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})
public class DemoApplication {
public static void main(String[] args){
SpringApplication.run(DemoApplication.class, args);}}