diff --git a/src/examples/BuyAsset.ts b/src/examples/BuyAsset.ts index 9d59078..a50c0fb 100644 --- a/src/examples/BuyAsset.ts +++ b/src/examples/BuyAsset.ts @@ -5,8 +5,9 @@ import Service from "../ddo/Service" import DID from "../ocean/DID" import {Account, Logger, Ocean, ServiceAgreement} from "../squid" import config from "./config" +import {runner} from "./runner" -(async () => { +async function exec() { const ocean: Ocean = await Ocean.getInstance(config) const publisher: Account = (await ocean.getAccounts())[0] @@ -68,6 +69,6 @@ import config from "./config" const paid = await serviceAgreement.payAsset(did.getId(), metaData.base.price, consumer) Logger.log(`Asset paid: ${paid}`) +} - process.exit(0) -})() +runner(exec) diff --git a/src/examples/ExecuteAgreement.ts b/src/examples/ExecuteAgreement.ts index 7dd5d8d..9a3fe2b 100644 --- a/src/examples/ExecuteAgreement.ts +++ b/src/examples/ExecuteAgreement.ts @@ -4,8 +4,9 @@ import MetaDataBase from "../ddo/MetaDataBase" import Service from "../ddo/Service" import {Account, Logger, Ocean, ServiceAgreement} from "../squid" import config from "./config" +import {runner} from "./runner" -(async () => { +async function exec() { const ocean: Ocean = await Ocean.getInstance(config) const publisher: Account = (await ocean.getAccounts())[0] @@ -63,6 +64,6 @@ import config from "./config" consumer, publisher) Logger.log("ServiceAgreement Id:", serviceAgreement.getId()) +} - process.exit(0) -})() +runner(exec) diff --git a/src/examples/GetAccounts.ts b/src/examples/GetAccounts.ts index 9f14d23..94639b9 100644 --- a/src/examples/GetAccounts.ts +++ b/src/examples/GetAccounts.ts @@ -1,12 +1,13 @@ import {Logger, Ocean} from "../squid" import config from "./config" +import {runner} from "./runner" -(async () => { +async function exec() { const ocean: Ocean = await Ocean.getInstance(config) const accounts = await ocean.getAccounts() Logger.log(JSON.stringify(accounts, null, 2)) +} - process.exit(0) -})() +runner(exec) diff --git a/src/examples/GetBalance.ts b/src/examples/GetBalance.ts index 308f8b4..58619a1 100644 --- a/src/examples/GetBalance.ts +++ b/src/examples/GetBalance.ts @@ -1,12 +1,13 @@ import {Logger, Ocean} from "../squid" import config from "./config" +import {runner} from "./runner" -(async () => { +async function exec() { const ocean: Ocean = await Ocean.getInstance(config) const accounts = await ocean.getAccounts() Logger.log(await accounts[0].getBalance()) +} - process.exit(0) -})() +runner(exec) diff --git a/src/examples/GetHDWalletAccounts.ts b/src/examples/GetHDWalletAccounts.ts index 9f14d23..94639b9 100644 --- a/src/examples/GetHDWalletAccounts.ts +++ b/src/examples/GetHDWalletAccounts.ts @@ -1,12 +1,13 @@ import {Logger, Ocean} from "../squid" import config from "./config" +import {runner} from "./runner" -(async () => { +async function exec() { const ocean: Ocean = await Ocean.getInstance(config) const accounts = await ocean.getAccounts() Logger.log(JSON.stringify(accounts, null, 2)) +} - process.exit(0) -})() +runner(exec) diff --git a/src/examples/GrantAccess.ts b/src/examples/GrantAccess.ts index ecc2237..1430d55 100644 --- a/src/examples/GrantAccess.ts +++ b/src/examples/GrantAccess.ts @@ -5,8 +5,9 @@ import Service from "../ddo/Service" import DID from "../ocean/DID" import {Account, Logger, Ocean, ServiceAgreement} from "../squid" import config from "./config" +import {runner} from "./runner" -(async () => { +async function exec() { const ocean: Ocean = await Ocean.getInstance(config) const publisher: Account = (await ocean.getAccounts())[0] @@ -71,6 +72,6 @@ import config from "./config" const accessGranted = await serviceAgreement.grantAccess(did.getId(), did.getId(), publisher) Logger.log(`Asset access granted: ${accessGranted}`) +} - process.exit(0) -})() +runner(exec) diff --git a/src/examples/InitializeAgreement.ts b/src/examples/InitializeAgreement.ts index 642058f..ede88b2 100644 --- a/src/examples/InitializeAgreement.ts +++ b/src/examples/InitializeAgreement.ts @@ -4,8 +4,9 @@ import MetaDataBase from "../ddo/MetaDataBase" import Service from "../ddo/Service" import {Account, Logger, Ocean} from "../squid" import config from "./config" +import {runner} from "./runner" -(async () => { +async function exec() { const ocean: Ocean = await Ocean.getInstance(config) const publisher: Account = (await ocean.getAccounts())[1] @@ -71,6 +72,6 @@ import config from "./config" Logger.warn("Error on initializeServiceAgreement:", e) process.exit(1) } +} - process.exit(0) -})() +runner(exec) diff --git a/src/examples/RegisterAsset.ts b/src/examples/RegisterAsset.ts index 2b91a8e..483b089 100644 --- a/src/examples/RegisterAsset.ts +++ b/src/examples/RegisterAsset.ts @@ -3,8 +3,9 @@ import MetaData from "../ddo/MetaData" import MetaDataBase from "../ddo/MetaDataBase" import {Account, Logger, Ocean} from "../squid" import config from "./config" +import {runner} from "./runner" -(async () => { +async function exec() { const ocean: Ocean = await Ocean.getInstance(config) const publisher: Account = (await ocean.getAccounts())[0] @@ -41,6 +42,6 @@ import config from "./config" const ddo: DDO = await ocean.registerAsset(metaData, publisher) Logger.log(ddo.id) +} - process.exit(0) -})() +runner(exec) diff --git a/src/examples/RegisterServiceAgreementTemplates.ts b/src/examples/RegisterServiceAgreementTemplates.ts index 3a3e03f..a9f1750 100644 --- a/src/examples/RegisterServiceAgreementTemplates.ts +++ b/src/examples/RegisterServiceAgreementTemplates.ts @@ -1,7 +1,8 @@ import {Account, Logger, Ocean, ServiceAgreementTemplate, Templates} from "../squid" import config from "./config" +import {runner} from "./runner" -(async () => { +async function exec() { const ocean: Ocean = await Ocean.getInstance(config) const templateOwner: Account = (await ocean.getAccounts())[0] @@ -11,6 +12,7 @@ import config from "./config" Logger.log("ServiceAgreementTemplate registered:", serviceAgreementRegistered, "templateId:", serviceAgreementTemplate.getId()) +} + +runner(exec) - process.exit(0) -})() diff --git a/src/examples/Search.ts b/src/examples/Search.ts index 8f41312..edb9e89 100644 --- a/src/examples/Search.ts +++ b/src/examples/Search.ts @@ -1,8 +1,9 @@ import DDO from "../ddo/DDO" import {Logger, Ocean} from "../squid" import config from "./config" +import {runner} from "./runner" -(async () => { +async function exec() { const ocean: Ocean = await Ocean.getInstance(config) const result: DDO[] = await ocean.searchAssetsByText("Office Humidity") @@ -14,6 +15,6 @@ import config from "./config" }) Logger.log(names.length, names) +} - process.exit(0) -})() +runner(exec) diff --git a/src/examples/SignAgreement.ts b/src/examples/SignAgreement.ts index 0b9d792..a1e8d2a 100644 --- a/src/examples/SignAgreement.ts +++ b/src/examples/SignAgreement.ts @@ -6,8 +6,9 @@ import MetaDataBase from "../ddo/MetaDataBase" import Service from "../ddo/Service" import {Account, Logger, Ocean} from "../squid" import config from "./config" +import {runner} from "./runner" -(async () => { +async function exec() { const ocean: Ocean = await Ocean.getInstance(config) const publisher: Account = (await ocean.getAccounts())[0] @@ -77,6 +78,6 @@ import config from "./config" Logger.log("ServiceAgreement Id:", serviceAgreementResult.serviceAgreementId) Logger.log("ServiceAgreement Signature:", serviceAgreementResult.serviceAgreementSignature) +} - process.exit(0) -})() +runner(exec) diff --git a/src/examples/runner.ts b/src/examples/runner.ts new file mode 100644 index 0000000..2c9634f --- /dev/null +++ b/src/examples/runner.ts @@ -0,0 +1,10 @@ +import {Logger} from "../squid" + +export function runner(fn: () => Promise) { + fn() + .then(() => process.exit(0)) + .catch((e) => { + Logger.warn(e) + process.exit(1) + }) +} diff --git a/src/keeper/contracts/ContractBase.ts b/src/keeper/contracts/ContractBase.ts index 1b23262..2dc88fc 100644 --- a/src/keeper/contracts/ContractBase.ts +++ b/src/keeper/contracts/ContractBase.ts @@ -63,8 +63,12 @@ export default abstract class ContractBase { value: args[i], } }) + Logger.error("-".repeat(40)) Logger.error(`Sending transaction "${name}" on contract "${this.contractName}" failed.`) - Logger.error(`Parameters: ${JSON.stringify(mappedArgs, null, 2)} from: ${from}`) + Logger.error(`Error: ${err.message}`) + Logger.error(`From: ${from}`) + Logger.error(`Parameters: ${JSON.stringify(mappedArgs, null, 2)}`) + Logger.error("-".repeat(40)) throw err } } diff --git a/src/ocean/ServiceAgreements/ServiceAgreementTemplate.ts b/src/ocean/ServiceAgreements/ServiceAgreementTemplate.ts index ae6423d..d9ee5c4 100644 --- a/src/ocean/ServiceAgreements/ServiceAgreementTemplate.ts +++ b/src/ocean/ServiceAgreements/ServiceAgreementTemplate.ts @@ -58,15 +58,20 @@ export default class ServiceAgreementTemplate extends OceanBase { return false } - const receipt = await serviceAgreement - .setupAgreementTemplate( - this.template.id, - await this.getMethodReflections(), - dependencyMatrix, - Web3Provider.getWeb3().utils.fromAscii(this.template.templateName), - fulfillmentIndices, - this.template.fulfillmentOperator, - templateOwnerAddress) + let receipt + try { + receipt = await serviceAgreement + .setupAgreementTemplate( + this.template.id, + await this.getMethodReflections(), + dependencyMatrix, + Web3Provider.getWeb3().utils.fromAscii(this.template.templateName), + fulfillmentIndices, + this.template.fulfillmentOperator, + templateOwnerAddress) + } catch (e) { + throw new Error(`Is not possible to setup the agreement template`) + } const {serviceTemplateId, provider} = receipt.events.SetupAgreementTemplate.returnValues