@Override /** * We override seal method to recalculate holding at the state.data values */ public byte[] seal() { saveTrackingOriginsToState(); calculatePrepaidOriginDays(true); return super.seal(); }
@Override public void deserialize(Binder data, BiDeserializer deserializer) { super.deserialize(data, deserializer); deserializeForUns(deserializer); }
public NMutableEnvironment(NImmutableEnvironment ime) { super(ime.contract, ime.kvStore, ime.subscriptionsSet, ime.storagesSet, ime.nameRecordsSet, ime.followerService, ime.ledger); setNameCache(ime.nameCache); setId(ime.getId()); immutable = ime; }
@Override public void onContractSubscriptionEvent(ContractSubscription.Event event) { if(event instanceof ContractSubscription.ApprovedEvent) { MutableEnvironment me = event.getEnvironment(); // recreate subscription: Contract newStoredItem = ((ContractSubscription.ApprovedEvent)event).getNewRevision(); putTrackingContract(newStoredItem); saveTrackingContractsToState(); // and save new updateSubscriptions(me); } else if(event instanceof ContractSubscription.RevokedEvent) { } }
@Override public byte[] seal() { saveNamesToState(); saveOriginReferencesToState(); calculatePrepaidNamesForDays(true); return super.seal(); }
private void removeRevokedOrigins(Approvable approvable, Set<HashId> set) { if (approvable instanceof UnsContract) { UnsContract unsContract = (UnsContract) approvable; for (UnsName unsName : unsContract.storedNames) for (UnsRecord unsRecord : unsName.getUnsRecords()) if (unsRecord.getOrigin() != null) set.remove(unsRecord.getOrigin()); } for (Approvable revoked : approvable.getRevokingItems()) removeRevokedOrigins(revoked, set); }
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); }
@Override /** * We override seal method to recalculate holding at the state.data values */ public byte[] seal() { saveTrackingContractsToState(); calculatePrepaidKilobytesForDays(true); return super.seal(); }
protected int getMinPayment() { return nodeInfoProvider.getMinPayment(getExtendedType()); } protected int getPaidU() {
protected BigDecimal getRate(String key) { return nodeInfoProvider.getServiceRate(getExtendedType() + ":" + key); }
@Override public void deserialize(Binder data, BiDeserializer deserializer) { super.deserialize(data, deserializer); deserializeForSlot(); }
@Override public void deserialize(Binder data, BiDeserializer deserializer) { super.deserialize(data, deserializer); deserializeForFollower(); }
protected Collection<PublicKey> getAdditionalKeysToSignWith() { return nodeInfoProvider.getAdditionalKeysToSignWith(getExtendedType()); }
@Override public FollowerService getFollowerService(boolean init) { if (init && (followerService == null)) followerService = new NFollowerService(ledger, id); return followerService; }
/** * Method calls from {@link FollowerContract#fromDslFile(String)} and initialize contract from given binder. * * @param root id binder with initialized data * @return created and ready {@link FollowerContract} contract. * @throws EncryptionError if something went wrong */ protected FollowerContract initializeWithDsl(Binder root) throws EncryptionError { super.initializeWithDsl(root); return this; }
@Override public boolean beforeRevoke(ImmutableEnvironment c) { return additionallySlotCheck(c); }
/** * Create a default empty new contract using a provided key as issuer and owner and sealer. * <p> * This constructor adds key as sealing signature so it is ready to {@link #seal()} just after construction, thought * it is necessary to put real data to it first. It is allowed to change owner, expiration and data fields after * creation (but before sealing). * * @param key is {@link PrivateKey} for creating roles "issuer", "owner", "creator" and sign contract */ public UnsContract(PrivateKey key) { super(key); addUnsSpecific(); }
@Override public boolean beforeRevoke(ImmutableEnvironment c) { return additionallyFollowerCheck(c); }
protected int getPaidU() { return getPaidU(false); }
protected BigDecimal getRate() { return nodeInfoProvider.getServiceRate(getExtendedType()); }