c.check(); } catch (Quantiser.QuantiserException e) { e.printStackTrace(); c.check(); } catch (Quantiser.QuantiserException e) { e.printStackTrace();
addError("QUANTIZER_COST_LIMIT", contract.toString(), e.getMessage()); addError("QUANTIZER_COST_LIMIT", contract.toString(), e.getMessage());
addError("QUANTIZER_COST_LIMIT", fileName, e.toString());
checkSubItemsOf(c, record, lockedToCreate, lockedToRevoke); } catch (Quantiser.QuantiserException e) { e.printStackTrace(); checkSubItemsOf(finalSingleContract, record, lockedToCreate, lockedToRevoke); } catch (Quantiser.QuantiserException e) { e.printStackTrace();
contract.check(); } catch (Quantiser.QuantiserException e) { addError("QUANTIZER_COST_LIMIT", contract.toString(), e.getMessage()); } catch (Exception e) { addError(Errors.FAILURE.name(), contract.toString(), e.getMessage());
addError("QUANTIZER_COST_LIMIT", contract.toString(), e.getMessage());
addError("QUANTIZER_COST_LIMIT", contract.toString(), e.getMessage());
addErrors(contract.getErrors()); } catch (Quantiser.QuantiserException e) { addError("QUANTIZER_COST_LIMIT", contract.toString(), e.getMessage());
processContractAsItWillBeOnTheNode(forSplit, 20); } catch (Quantiser.QuantiserException e) { System.out.println("Thrown correct exception: " + e.getMessage()); exceptionThrown = true; } catch (BiSerializationException e) {
contract.check(); } catch (Quantiser.QuantiserException e) { addError("QUANTIZER_COST_LIMIT", contract.toString(), e.getMessage());
assertFalse(c.isPermitted("revoke", issuer)); } catch (Quantiser.QuantiserException e) { e.printStackTrace();
/** * Check bytes is contract. And if bytes is, check contract for errors. Print errors if found. * * @param data - data to check. * * @return true if bytes is Contract and Contract is valid. */ private static Boolean checkBytesIsValidContract(byte[] data) { try { Contract contract = new Contract(data); if (!contract.isOk()) { reporter.message("The capsule is not sealed"); contract.getErrors().forEach(e -> reporter.error(e.getError().toString(), e.getObjectName(), e.getMessage())); } checkContract(contract); } catch (RuntimeException e) { addError(Errors.BAD_VALUE.name(), "byte[] data", e.getMessage()); return false; } catch (Quantiser.QuantiserException e) { addError("QUANTIZER_COST_LIMIT", "", e.toString()); } catch (IOException e) { addError(Errors.BAD_VALUE.name(), "byte[] data", e.getMessage()); return false; } return true; }
/** * Save specified parcel to file. * * @param parcel - parcel to save. * @param fileName - name of file to save to. * */ public static boolean saveParcel(Parcel parcel, String fileName) throws IOException { if (fileName == null) { fileName = "Universa_" + DateTimeFormatter.ofPattern("yyyy-MM-ddTHH:mm:ss").format(parcel.getPayloadContract().getCreatedAt()) + ".uniparcel"; } byte[] data = parcel.pack(); String newFileName = FileTool.writeFileContentsWithRenaming(fileName, data); report("Parcel is saved to: " + newFileName); report("Parcel size: " + data.length); try { if (parcel.getPaymentContract().check() && parcel.getPayloadContract().check()) { report("Parcel has no errors"); } else { addErrors(parcel.getPaymentContract().getErrors()); addErrors(parcel.getPayloadContract().getErrors()); } } catch (Quantiser.QuantiserException e) { addError("QUANTIZER_COST_LIMIT", parcel.toString(), e.getMessage()); } return (newFileName!=null); }
private static void saveContractSubitems(String source, String suffix, Contract contract) throws IOException { try { report("unpack contract from " + source); int i = 1; if (contract.getNewItems() != null) { for (Approvable newItem : contract.getNewItems()) { String newItemFileName = new FilenameTool(source).addSuffixToBase(suffix+"_new_item_" + i).toString(); report("save newItem to " + newItemFileName); // ((Contract) newItem).seal(); saveContract((Contract) newItem, newItemFileName); i++; } } i = 1; if (contract.getRevokingItems() != null) { for (Approvable revokeItem : contract.getRevokingItems()) { String revokeItemFileName = new FilenameTool(source).addSuffixToBase(suffix+"_revoke_" + i).setExtension("unicon").toString(); report("save revokeItem to " + revokeItemFileName); saveContract((Contract) revokeItem, revokeItemFileName); i++; } } } catch (Quantiser.QuantiserException e) { addError("QUANTIZER_COST_LIMIT", contract.toString(), e.getMessage()); } }
@Test public void calculateProcessingCostSimpleBreakWhileUnpacking() throws Exception { // Should create contract, sign and seal it. Then while calculating cost should break while unpacking contract (signs verifying). // should repeat contract processing procedure on the Node // (Contract.fromPackedTransaction() -> Contract(byte[], TransactionPack) -> Contract.check()) Contract contract = createCoin100apiv3(); contract.addSignerKeyFromFile(PRIVATE_KEY_PATH); sealCheckTrace(contract, true); // Check 4096 bits signature (8) + // Register a version (20) int costShouldBe = 28; boolean exceptionThrown = false; try { processContractAsItWillBeOnTheNode(contract, 1); } catch (Quantiser.QuantiserException e) { System.out.println("Thrown correct exception: " + e.getMessage()); exceptionThrown = true; } catch (BiSerializationException e) { System.out.println("Thrown correct exception: " + e.getMessage()); exceptionThrown = true; } assertEquals(true, exceptionThrown); }
@Test public void calculateProcessingCostSimpleBreak() throws Exception { // Should create contract, sign and seal it. Then while calculating cost should break. // should repeat contract processing procedure on the Node // (Contract.fromPackedTransaction() -> Contract(byte[], TransactionPack) -> Contract.check()) Contract contract = createCoin100apiv3(); contract.addSignerKeyFromFile(PRIVATE_KEY_PATH); sealCheckTrace(contract, true); // Check 4096 bits signature (8) + // Register a version (20) int costShouldBe = 28; boolean exceptionThrown = false; try { processContractAsItWillBeOnTheNode(contract, 10); } catch (Quantiser.QuantiserException e) { System.out.println("Thrown correct exception: " + e.toString()); exceptionThrown = true; } assertEquals(true, exceptionThrown); }
private static void checkFile(File f) { try { TransactionPack tp = TransactionPack.unpack(Do.read(f), true); if (tp.isReconstructed()) { report("file " + f + " is a single contract"); } else { report("file " + f + " is a transaction pack"); } System.out.println(); checkContract(tp.getContract()); } catch (Quantiser.QuantiserException e) { addError("QUANTIZER_COST_LIMIT", f.getPath(), e.toString()); } catch (IOException e) { addError("READ_ERROR", f.getPath(), e.toString()); } catch (Exception e) { addError("UNKNOWN_ERROR", f.getPath(), e.toString()); } }
@Ignore @Test public void testContractCheck() throws Exception { PrivateKey key = TestKeys.privateKey(3); testSomeWork(() -> { try { Contract c = new Contract(key); for (int k = 0; k < 500; k++) { Contract nc = new Contract(key); nc.seal(); c.addNewItems(nc); } c.seal(); c.check(); } catch (Quantiser.QuantiserException e) { e.printStackTrace(); } }); }
/** * Get set of public keys contract binary signed with * @return keys contract binary signed with */ public Set<PublicKey> getSealedByKeys() { try { verifySealedKeys(false); } catch (Quantiser.QuantiserException e) { // not passed without Quantisation e.printStackTrace(); } return sealedByKeys.keySet(); }
protected static void sealCheckTrace(Contract c, boolean isOk) { c.seal(); try { c.check(); } catch (Quantiser.QuantiserException e) { e.printStackTrace(); } c.traceErrors(); if (isOk) assertTrue(c.isOk()); else assertFalse(c.isOk()); }