@Override public Binder getExtraBinder() { if (extraDataBinder == null) extraDataBinder = new Binder(); return extraDataBinder; }
public Binder getData() { if( data == null ) data = new Binder(); return data; }
private Binder answer(Binder result) { if (result == null) result = new Binder(); if (!errors.isEmpty()) { result.put("errors", errors); } return result; }
private Binder storageGetRate(Binder params, Session session) throws IOException { checkNode(session, true); BigDecimal rate = config.rate.get(NSmartContract.SmartContractType.SLOT1.name()); String str = rate.toString(); Binder b = new Binder(); b.put("U", str); return b; }
private Binder unsRate(Binder params, Session session) throws IOException { checkNode(session, true); BigDecimal rate = config.rate.get(NSmartContract.SmartContractType.UNS1.name()); String str = rate.toString(); Binder b = new Binder(); b.put("U", str); return b; }
private Binder followerGetRate(Binder params, Session session) throws IOException { checkNode(session, true); BigDecimal rateOriginDays = config.rate.get(NSmartContract.SmartContractType.FOLLOWER1.name()); BigDecimal rateCallback = config.rate.get(NSmartContract.SmartContractType.FOLLOWER1.name() + ":callback").divide(rateOriginDays); Binder b = new Binder(); b.put("rateOriginDays", rateOriginDays.toString()); b.put("rateCallback", rateCallback.toString()); return b; }
private void saveTrackingOriginsToState() { Binder origins = new Binder(); for (Map.Entry<HashId, String> entry: trackingOrigins.entrySet()) { origins.set(entry.getKey().toBase64String(), entry.getValue()); } getStateData().set(TRACKING_ORIGINS_FIELD_NAME, origins); Binder callbacks = new Binder(); for (Map.Entry<String, PublicKey> entry: callbackKeys.entrySet()) { callbacks.set(entry.getKey(), entry.getValue().pack()); } getStateData().set(CALLBACK_KEYS_FIELD_NAME, callbacks); }
@Override public Binder serialize(BiSerializer serializer) { Binder data = new Binder(); if (unsAddresses.size() > 0) data.set("addresses", serializer.serialize(unsAddresses)); if (unsOrigin != null) data.set("origin", serializer.serialize(unsOrigin)); return data; }
public JSApiSplitJoinPermission(JSApiRole role, Map<String, Object> params) { Binder paramsBinder = new Binder(); params.forEach((k, v) -> paramsBinder.set(k, v)); splitJoinPermission = new SplitJoinPermission(role.extractRole(new JSApiAccessor()), paramsBinder); }
public JSApiModifyDataPermission(JSApiRole role, Map<String, List<String>> params) { Binder paramsBinder = new Binder(); params.forEach((k, v) -> paramsBinder.set(k, v)); modifyDataPermission = new ModifyDataPermission(role.extractRole(new JSApiAccessor()), Binder.of("fields", paramsBinder)); }
@Override public Binder serialize(BiSerializer serializer) { Binder data = new Binder(); data.put("hashId", serializer.serialize(hashId)); data.put("isChainSubscription", isChainSubscription); data.put("expiresAt", serializer.serialize(expiresAt)); return data; } }
private void saveTrackingContractsToState() { Binder forState = new Binder(); for (Contract tc : trackingContracts) { forState.set(tc.getId().toBase64String(), tc.getPackedTransaction()); } getStateData().set(TRACKING_CONTRACT_FIELD_NAME, forState); }
@Override public Binder serialize(BiSerializer serializer) { Binder data = new Binder(); data.put("expiresAt", serializer.serialize(expiresAt)); data.put("mutedAt", serializer.serialize(mutedAt)); data.put("spent", spent); data.put("startedCallbacks", startedCallbacks); return data; }
/** * Saves client's javascript in contract's state. It can be executed with {@link Contract#execJS(JSApiExecOptions, byte[], String...)} */ public void setJS(byte[] jsFileContent, String jsFileName, JSApiScriptParameters scriptParameters, boolean putContentIntoContract) { String fileNameKey = JSApiHelpers.fileName2fileKey(jsFileName); Binder scriptBinder = JSApiHelpers.createScriptBinder(jsFileContent, jsFileName, scriptParameters, putContentIntoContract); Binder scripts = getData().getBinder(JSAPI_SCRIPT_FIELD, new Binder()); scripts.set(fileNameKey, scriptBinder); getData().put(JSAPI_SCRIPT_FIELD, scripts); }
/** * Saves client's javascript in contract's definition. It can be executed with {@link Contract#execJS(JSApiExecOptions, byte[], String...)} * @param putContentIntoContract pass here true to save js body in contract, in this case it's not necessary to store attached * js-files separately, needs only {@link HashId} of its. */ public void setJS(byte[] jsFileContent, String jsFileName, JSApiScriptParameters scriptParameters, boolean putContentIntoContract) { String fileNameKey = JSApiHelpers.fileName2fileKey(jsFileName); Binder scriptBinder = JSApiHelpers.createScriptBinder(jsFileContent, jsFileName, scriptParameters, putContentIntoContract); Binder scripts = getData().getBinder(JSAPI_SCRIPT_FIELD, new Binder()); scripts.set(fileNameKey, scriptBinder); getData().put(JSAPI_SCRIPT_FIELD, scripts); }
private Binder querySlotInfo(Binder params, Session session) throws IOException { checkNode(session, true); Binder res = new Binder(); res.set("slot_state", null); byte[] slot_id = params.getBinary("slot_id"); byte[] slotBin = node.getLedger().getSmartContractById(HashId.withDigest(slot_id)); if (slotBin != null) { SlotContract slotContract = (SlotContract) Contract.fromPackedTransaction(slotBin); res.set("slot_state", slotContract.getStateData()); } return res; }
public static Binder createScriptBinder(byte[] jsFileContent, String jsFileName, JSApiScriptParameters scriptParameters, boolean putContentIntoContract) { BiSerializer biSerializer = new BiSerializer(); HashId scriptHashId = HashId.of(jsFileContent); Binder scriptBinder = new Binder(); scriptBinder.set("file_name", jsFileName); scriptBinder.set("__type", "file"); scriptBinder.set("hash_id", biSerializer.serialize(scriptHashId)); if (putContentIntoContract) scriptBinder.set("file_content", jsFileContent); scriptBinder.putAll(scriptParameters.toBinder()); return scriptBinder; }
@Override public Binder serialize(BiSerializer serializer) { Binder data = new Binder(); if(unsReducedName != null) { data.set(NAME_REDUCED_FIELD_NAME, serializer.serialize(unsReducedName)); } data.set(NAME_FIELD_NAME, serializer.serialize(unsName)); data.set(DESCRIPTION_FIELD_NAME, serializer.serialize(unsDescription)); data.set(URL_FIELD_NAME, serializer.serialize(unsURL)); data.set(ENTRIES_FIELD_NAME, serializer.serialize(unsRecords)); return data; }
@Override public Binder serialize(BiSerializer serializer) { Binder data = new Binder(); data.set("name", serializer.serialize(name)); data.set("nameReduced", serializer.serialize(nameReduced)); data.set("description", serializer.serialize(description)); data.set("url", serializer.serialize(url)); data.set("expiresAt", serializer.serialize(expiresAt)); data.set("entries", serializer.serialize(Do.list(entries))); return data; }
@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; }