public void save() { ledger.updateEnvironment(getId(),contract.getExtendedType(),contract.getId(), Boss.pack(kvStore),contract.getPackedTransaction());
@Override public NImmutableEnvironment getEnvironment(NSmartContract smartContract) { NImmutableEnvironment nim = getEnvironment(smartContract.getId()); if(nim == null && smartContract.getParent() != null) nim = getEnvironment(smartContract.getParent()); if (nim == null) { long envId = saveEnvironmentToStorage(smartContract.getExtendedType(), smartContract.getId(), Boss.pack(new Binder()), smartContract.getPackedTransaction()); nim = getEnvironment(envId); } else { nim.setContract(smartContract); } return nim; }
@Override public Binder serialize(BiSerializer serializer) { Binder data = new Binder(); data.set("contract", contract.getPackedTransaction()); data.set("createdAt", serializer.serialize(createdAt)); data.set("subscriptions", serializer.serialize(Do.list(subscriptionsSet))); data.set("storages", serializer.serialize(Do.list(storagesSet))); data.set("nameRecords", serializer.serialize(Do.list(nameRecordsSet))); data.set("kvStore", serializer.serialize(kvStore)); return data; }
rev1.addPermission(permission); rev1.seal(); ItemResult ir1 = testSpace.client.register(rev1.getPackedTransaction(), 5000); assertEquals(ItemState.APPROVED, ir1.state); ItemResult ir2 = testSpace.client.register(rev2.getPackedTransaction(), 5000); assertEquals(ItemState.APPROVED, ir2.state); ir1 = testSpace.client.register(rev1.getPackedTransaction(), 5000); assertEquals(ItemState.REVOKED, ir1.state);
@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; }