@Override public @NonNull NameRecord createNameRecord(@NonNull UnsName unsName, @NonNull ZonedDateTime expiresAt) { NNameRecord nr = new NNameRecord(unsName,expiresAt); nr.setEnvironmentId(this.getId()); nameRecordsToAdd.add(nr); return nr; }
"RETURNING id") ) { statement.setString(1, nameRecord.getNameReduced()); statement.setString(2, nameRecord.getName()); statement.setString(3, nameRecord.getDescription()); statement.setString(4, nameRecord.getUrl()); statement.setLong(5, StateRecord.unixTime(nameRecord.expiresAt())); statement.setLong(6, nameRecord.getEnvironmentId()); statement.closeOnCompletion(); ResultSet rs = statement.executeQuery();
@Override public void addNameRecord(final NNameRecord nameRecord) { long nameStorageId = addNameStorage(nameRecord); if (nameStorageId != 0) { nameRecord.setId(nameStorageId); removeNameRecordEntries(nameStorageId); for (NameRecordEntry nameRecordEntry : nameRecord.getEntries()) { ((NNameRecordEntry) nameRecordEntry).setNameRecordId(nameStorageId); addNameEntry((NNameRecordEntry) nameRecordEntry); } } else { throw new Failure("addNameRecord failed"); } }
@Override public void setNameRecordExpiresAt(NameRecord nameRecord, ZonedDateTime expiresAt) { NNameRecord nnr = (NNameRecord) nameRecord; nnr.setExpiresAt(expiresAt); if(nnr.getId() != 0) { nameRecordsToSave.add(nnr); } }
unsName.addUnsRecord(record2); ZonedDateTime now = ZonedDateTime.now(); NNameRecord nnr = new NNameRecord(unsName, now); assertTrue(nnr2.getEntries().stream().anyMatch(nre -> unsName.getUnsRecords().stream().anyMatch(ur -> ur.equalsTo(nre)))); assertEquals(nnr2.getEntries().size(),unsName.getRecordsCount()); assertEquals(nnr2.getName(),unsName.getUnsName()); assertEquals(nnr2.getNameReduced(),unsName.getUnsReducedName()); assertEquals(nnr2.getDescription(),unsName.getUnsDescription()); assertEquals(nnr2.getUrl(),unsName.getUnsURL()); assertEquals(nnr.expiresAt().toEpochSecond(),nnr2.expiresAt().toEpochSecond());
nameRecordsToDestroy.forEach(nameRecord -> ledger.removeNameRecord(nameRecord.getNameReduced())); ledger.updateNameRecord(nameRecord.getId(),nameRecord.expiresAt()); nameList.add(nameRecord.getNameReduced()); nameRecord.getEntries().forEach( e -> { if(e.getOrigin() != null) { originsList.add(e.getOrigin()); nameRecordsToAdd.forEach(nameRecord -> { ledger.addNameRecord(nameRecord); nameList.add(nameRecord.getNameReduced()); nameRecord.getEntries().forEach( e -> { if(e.getOrigin() != null) { originsList.add(e.getOrigin());
private Binder queryNameRecord(Binder params, Session session) throws IOException { checkNode(session, true); Binder b = new Binder(); NNameRecord loadedNameRecord; String address = params.getString("address",null); byte[] origin = params.getBinary("origin"); if (((address == null) && (origin == null)) || ((address != null) && (origin != null))) throw new IOException("invalid arguments"); if (address != null) loadedNameRecord = node.getLedger().getNameByAddress(address); else loadedNameRecord = node.getLedger().getNameByOrigin(origin); if (loadedNameRecord != null) { b.put("name", loadedNameRecord.getName()); b.put("description", loadedNameRecord.getDescription()); b.put("url", loadedNameRecord.getUrl()); } return b; }
assertEquals(ItemState.APPROVED, node.waitItem(uns.getNew().get(0).getId(), 8000).state); assertEquals(ledger.getNameRecord(unsName.getUnsReducedName()).getEntries().size(), 2); System.out.println(nrModel.expiresAt()); assertAlmostSame(calculateExpires, nrModel.expiresAt(), 5); } else { fail("NameRecordModel was not found"); assertEquals(ItemState.APPROVED, node.waitItem(refilledUnsContract.getNew().get(0).getId(), 8000).state); assertEquals(ledger.getNameRecord(reducedName).getEntries().size(), 2); assertEquals(refilledUnsContract.getUnsName(reducedName).getRecordsCount(), 2); System.out.println(nrModel.expiresAt()); assertAlmostSame(calculateExpires, nrModel.expiresAt(), 5); } else { fail("NameRecordModel was not found");
assertEquals(ItemState.APPROVED, testSpace.node.node.waitItem(uns.getNew().get(0).getId(), 8000).state); assertEquals(testSpace.node.node.getLedger().getNameRecord(unsName.getUnsName()).getEntries().size(),1); assertEquals(testSpace.node.node.getLedger().getNameRecord(name).getEntries().iterator().next().getLongAddress(),long3.toString()); assertEquals(testSpace.nodes.get(testSpace.nodes.size()-1).node.getLedger().getNameRecord(name).getEntries().iterator().next().getLongAddress(),long1.toString()); assertEquals(testSpace.nodes.get(testSpace.nodes.size()-1).node.getLedger().getNameRecord(name).getEntries().iterator().next().getLongAddress(),long3.toString());
entries.add(nameRecordEntry); NNameRecord nameRecord = new NNameRecord(unsName, nameRecord_expiresAt, entries, nameRecord_id, nameRecord_environmentId); if (rowsCount == 0) nameRecord = null;
private Binder queryNameContract(Binder params, Session session) throws IOException { checkNode(session, true); Binder b = new Binder(); String nameContract = params.getStringOrThrow("name"); NNameRecord nr = node.getLedger().getNameRecord(nameContract); if (nr != null) { NImmutableEnvironment env = node.getLedger().getEnvironment(nr.getEnvironmentId()); if (env != null) { byte[] packedContract = env.getContract().getPackedTransaction(); b.put("packedContract", packedContract); } } return b; }
@Override public Set<HashId> saveEnvironment(NImmutableEnvironment environment) { Set<HashId> conflicts = saveEnvironment_getConflicts(environment); if (conflicts.size() == 0) { NSmartContract nsc = environment.getContract(); removeEnvironment(nsc.getId()); long envId = saveEnvironmentToStorage(nsc.getExtendedType(), nsc.getId(), Boss.pack(environment.getMutable().getKVStore()), nsc.getPackedTransaction()); for (NameRecord nr : environment.nameRecords()) { NNameRecord nnr = (NNameRecord)nr; nnr.setEnvironmentId(envId); addNameRecord(nnr); } for (ContractSubscription css : environment.subscriptions()) saveSubscriptionInStorage(css.getHashId(), css.isChainSubscription(), css.expiresAt(), envId); for (ContractStorage cst : environment.storages()) saveContractInStorage(cst.getContract().getId(), cst.getPackedContract(), cst.expiresAt(), cst.getContract().getOrigin(), envId); FollowerService fs = environment.getFollowerService(); if (fs != null) saveFollowerEnvironment(envId, fs.expiresAt(), fs.mutedAt(), fs.getCallbacksSpent(), fs.getStartedCallbacks()); } return conflicts; }
nodes.forEach(n -> assertEquals(n.getLedger().getNameRecord(name).getEntries().size(),1)); assertEquals(ledger.getNameRecord(name).getEntries().size(),1); nodes.forEach((n) -> n.getLedger().clearExpiredNameRecords(config.getHoldDuration())); Thread.sleep(11000); nodes.forEach((n) -> n.getLedger().clearExpiredNameRecords(config.getHoldDuration())); NNameRecord nr = ledger.getNameRecord(name); assertEquals(nr.getEntries().size(),1); assertTrue(nr.expiresAt().isBefore(ZonedDateTime.now())); paymentContract = getApprovedUContract();
assertEquals(ItemState.APPROVED, testSpace.node.node.waitItem(uns.getNew().get(0).getId(), 8000).state); assertEquals(testSpace.node.node.getLedger().getNameRecord(unsName.getUnsName()).getEntries().size(),1); assertEquals(ItemState.APPROVED, testSpace.node.node.waitItem(uns2.getNew().get(0).getId(), 8000).state); assertEquals(testSpace.node.node.getLedger().getNameRecord(unsName.getUnsName()).getEntries().size(),1); assertEquals(nrm.getEntries().size(),1); assertEquals(nrmLast.getEntries().size(),1); assertNotEquals(nrm.getEntries().iterator().next().getShortAddress(),nrmLast.getEntries().iterator().next().getShortAddress()); assertNotEquals(nrm.getEntries().iterator().next().getLongAddress(),nrmLast.getEntries().iterator().next().getLongAddress()); assertEquals(nrm.getEntries().size(),1); assertEquals(nrmLast.getEntries().size(),1); assertEquals(nrm.getEntries().iterator().next().getShortAddress(),nrmLast.getEntries().iterator().next().getShortAddress()); assertEquals(nrm.getEntries().iterator().next().getLongAddress(),nrmLast.getEntries().iterator().next().getLongAddress());
nodes.forEach(n -> assertEquals(n.getLedger().getNameRecord(unsNameToChange.getUnsReducedName()).getEntries().size(),2)); nodes.forEach(n -> assertEquals(n.getLedger().getNameRecord(unsNameToRemove.getUnsReducedName()).getEntries().size(),1)); assertEquals(ledger.getNameRecord(unsNameToChange.getUnsReducedName()).getEntries().size(),2); assertEquals(ledger.getNameRecord(unsNameToRemove.getUnsReducedName()).getEntries().size(),1); nodes.forEach(n -> assertEquals(n.getLedger().getNameRecord(unsNameToChange.getUnsReducedName()).getEntries().size(),2)); nodes.forEach(n -> assertEquals(n.getLedger().getNameRecord(unsNameToAdd.getUnsReducedName()).getEntries().size(),1)); nodes.forEach(n -> assertNull(n.getLedger().getNameRecord(unsNameToRemove.getUnsReducedName()))); assertEquals(ledger.getNameRecord(unsNameToChange.getUnsReducedName()).getEntries().size(),2); assertEquals(ledger.getNameRecord(unsNameToAdd.getUnsReducedName()).getEntries().size(),1); assertNull(ledger.getNameRecord(unsNameToRemove.getUnsReducedName()));
assertEquals(ItemState.APPROVED, testSpace.node.node.waitItem(uns.getNew().get(0).getId(), 8000).state); assertEquals(testSpace.node.node.getLedger().getNameRecord(unsName.getUnsName()).getEntries().size(),1); assertEquals(ItemState.APPROVED, testSpace.node.node.waitItem(uns2.getNew().get(0).getId(), 8000).state); assertEquals(testSpace.node.node.getLedger().getNameRecord(unsName.getUnsName()).getEntries().size(),1); assertEquals(nrm.getEntries().size(),1); assertEquals(nrmLast.getEntries().size(),1); assertNotEquals(nrm.getEntries().iterator().next().getShortAddress(),nrmLast.getEntries().iterator().next().getShortAddress()); assertNotEquals(nrm.getEntries().iterator().next().getLongAddress(),nrmLast.getEntries().iterator().next().getLongAddress()); assertEquals(nrm.getEntries().size(),1); assertEquals(nrmLast.getEntries().size(),1); assertEquals(nrm.getEntries().iterator().next().getShortAddress(),nrmLast.getEntries().iterator().next().getShortAddress()); assertEquals(nrm.getEntries().iterator().next().getLongAddress(),nrmLast.getEntries().iterator().next().getLongAddress());
nodes.forEach(n -> assertEquals(n.getLedger().getNameRecord(reducedName).getEntries().size(),1)); assertEquals(1, ledger.getNameRecord(reducedName).getEntries().size()); nodes.forEach(n -> assertEquals(n.getLedger().getNameRecord(reducedName).getEntries().size(),1)); assertEquals(ledger.getNameRecord(reducedName).getEntries().size(),1); nodes.forEach(n -> assertEquals(n.getLedger().getNameRecord(reducedName).getEntries().size(),1)); assertEquals(ledger.getNameRecord(reducedName).getEntries().size(),1);
nodes.forEach(n -> assertEquals(n.getLedger().getNameRecord(unsName.getUnsReducedName()).getEntries().size(),2)); assertEquals(ledger.getNameRecord(unsName.getUnsReducedName()).getEntries().size(),2);
nodes.forEach(n -> assertEquals(n.getLedger().getNameRecord(name).getEntries().size(),1)); assertEquals(ledger.getNameRecord(name).getEntries().size(),1); nodes.forEach(n -> assertEquals(n.getLedger().getNameRecord(name).getEntries().size(),1)); assertEquals(ledger.getNameRecord(name).getEntries().size(),1);