private List<String> getAddressesToCheck() { Set<String> addresses = new HashSet<>(); for (UnsName unsName : storedNames) for (UnsRecord unsRecord : unsName.getUnsRecords()) for (KeyAddress keyAddress : unsRecord.getAddresses()) addresses.add(keyAddress.toString()); for (Approvable revoked : getRevokingItems()) removeRevokedAddresses(revoked, addresses); return new ArrayList<>(addresses); }
private void removeRevokedAddresses(Approvable approvable, Set<String> set) { if (approvable instanceof UnsContract) { UnsContract unsContract = (UnsContract) approvable; for (UnsName unsName : unsContract.storedNames) for (UnsRecord unsRecord : unsName.getUnsRecords()) for (KeyAddress keyAddress : unsRecord.getAddresses()) set.remove(keyAddress.toString()); } for (Approvable revoked : approvable.getRevokingItems()) removeRevokedAddresses(revoked, set); }
if(!unsRecord.getAddresses().isEmpty()) { addError(Errors.FAILED_CHECK, NAMES_FIELD_NAME, "name " + n.getUnsName() + " referencing to origin AND addresses. Should be either origin or addresses"); return false; if(unsRecord.getAddresses().isEmpty()) { addError(Errors.FAILED_CHECK, NAMES_FIELD_NAME, "name " + n.getUnsName() + " is missing both addresses and origin."); return false; if (unsRecord.getAddresses().size() > 2) addError(Errors.FAILED_CHECK, NAMES_FIELD_NAME, "name " + n.getUnsName() + ": Addresses list should not be contains more 2 addresses"); if ((unsRecord.getAddresses().size() == 2) && unsRecord.getAddresses().get(0).isLong() == unsRecord.getAddresses().get(1).isLong()) addError(Errors.FAILED_CHECK, NAMES_FIELD_NAME, "name " + n.getUnsName() + ": Addresses list may only contain one short and one long addresses"); if(!unsRecord.getAddresses().stream().allMatch(keyAddress -> getEffectiveKeys().stream().anyMatch(key -> keyAddress.isMatchingKey(key)))) { addError(Errors.FAILED_CHECK, NAMES_FIELD_NAME, "name " + n.getUnsName() + " using address that missing corresponding key UNS contract signed with."); return false;
public NNameRecord(@NonNull UnsName unsName, @NonNull ZonedDateTime expiresAt) { name = unsName.getUnsName(); nameReduced = unsName.getUnsReducedName(); description = unsName.getUnsDescription(); url = unsName.getUnsURL(); this.expiresAt = expiresAt; unsName.getUnsRecords().forEach(unsRecord -> { String longAddress = null; String shortAddress = null; for (KeyAddress keyAddress : unsRecord.getAddresses()) { if (keyAddress.isLong()) longAddress = keyAddress.toString(); else shortAddress = keyAddress.toString(); } entries.add(new NNameRecordEntry(unsRecord.getOrigin(), shortAddress, longAddress)); }); }
public boolean equalsTo(NameRecordEntry entry) { String longAddress = null; String shortAddress = null; for(KeyAddress keyAddress : getAddresses()) { if(keyAddress.isLong()) longAddress = keyAddress.toString();
KeyAddress long1 = unsRecord.getAddresses().get(0).isLong() ? unsRecord.getAddresses().get(0) : unsRecord.getAddresses().get(1); KeyAddress long3 = unsRecord3.getAddresses().get(0).isLong() ? unsRecord3.getAddresses().get(0) : unsRecord3.getAddresses().get(1);
for(int i = 0; i < unsNameToChangeCopy.getUnsRecords().size();i++) { UnsRecord unsRecord = unsNameToChangeCopy.getUnsRecord(i); if(unsRecord.getAddresses().equals(unsRecordToRemove.getAddresses())) { unsNameToChangeCopy.getUnsRecords().remove(i); i--; if(unsRecord.getAddresses().equals(unsRecordToChange.getAddresses())) { unsRecord.getAddresses().clear(); unsRecord.getAddresses().add(randomPrivKey4.getPublicKey().getShortAddress()); continue;
assertErrorsContainsSubstr(irPayload.errors, "address '"+unsRecord1.getAddresses().get(0)+"' is not available"); assertErrorsContainsSubstr(irPayload.errors, "address '"+unsRecord1.getAddresses().get(1)+"' is not available"); assertEquals(ItemState.APPROVED, node.waitItem(payingParcel.getPayment().getContract().getId(), 8000).state); assertEquals(ItemState.UNDEFINED, node.waitItem(uns2.getNew().get(0).getId(), 8000).state);