in src/main/java/org/openvasp/client/service/impl/ContractServiceImpl.java [44:80]
public VaspContractInfo getVaspContractInfo(@NonNull final EthAddr vaspSmartContracAddress) {
VaspContractInfo result = cache.get(vaspSmartContracAddress);
if (result != null) {
return result;
}
log.debug("Request for the contract info at the address {}", vaspSmartContracAddress);
val contract = VASP.load(vaspSmartContracAddress.getData(), web3j, Credentials.create("0x0"), new DefaultGasProvider());
val postalAddress = contract.postalAddress().send();
val address = PostalAddress.builder()
.street(postalAddress.component1())
.number(postalAddress.component2())
.adrline(postalAddress.component3())
.postCode(postalAddress.component4())
.town(postalAddress.component5())
.country(Country.ALL.get(postalAddress.component6()))
.build();
result = VaspContractInfo.builder()
.name(contract.name().send())
.vaspCode(new VaspCode(Hex.toHexString(contract.code().send())))
.channels((List<Long>) contract.channels().send())
.handshakeKey(contract.handshakeKey().send())
.signingKey(contract.signingKey().send())
.ownerAddress(contract.owner().send())
.email(contract.email().send())
.website(contract.website().send())
.address(address)
.build();
cache.putIfAbsent(vaspSmartContracAddress, result);
log.debug("The contract information received, VASP code = {}", result.getVaspCode());
return result;
}