1
0
mirror of https://github.com/oceanprotocol-archive/squid-js.git synced 2024-02-02 15:31:51 +01:00

changed name of ServiceExecutionAgreement

This commit is contained in:
Pedro Gutiérrez 2019-01-28 15:36:58 +01:00 committed by Pedro Gutiérrez
parent 95a98daa38
commit 64921829f9
3 changed files with 36 additions and 22 deletions

View File

@ -3,7 +3,7 @@ import AccessConditions from "./contracts/conditions/AccessConditions"
import PaymentConditions from "./contracts/conditions/PaymentConditions"
import DIDRegistry from "./contracts/DIDRegistry"
import OceanMarket from "./contracts/Market"
import ServiceAgreement from "./contracts/ServiceAgreement"
import ServiceExecutionAgreement from "./contracts/ServiceExecutionAgreement"
import OceanToken from "./contracts/Token"
import Web3Provider from "./Web3Provider"
@ -29,7 +29,7 @@ export default class Keeper {
Keeper.instance.market = await OceanMarket.getInstance()
Keeper.instance.auth = await OceanAuth.getInstance()
Keeper.instance.token = await OceanToken.getInstance()
Keeper.instance.serviceAgreement = await ServiceAgreement.getInstance()
Keeper.instance.serviceAgreement = await ServiceExecutionAgreement.getInstance()
Keeper.instance.accessConditions = await AccessConditions.getInstance()
Keeper.instance.paymentConditions = await PaymentConditions.getInstance()
Keeper.instance.didRegistry = await DIDRegistry.getInstance()
@ -63,9 +63,9 @@ export default class Keeper {
/**
* Service agreement smart contract instance.
* @type {ServiceAgreement}
* @type {ServiceExecutionAgreement}
*/
public serviceAgreement: ServiceAgreement
public serviceAgreement: ServiceExecutionAgreement
/**
* Access conditions smart contract instance.

View File

@ -3,10 +3,10 @@ import MethodReflection from "../../models/MethodReflection"
import DID from "../../ocean/DID"
import ContractBase from "./ContractBase"
export default class ServiceAgreement extends ContractBase {
export default class ServiceExecutionAgreement extends ContractBase {
public static async getInstance(): Promise<ServiceAgreement> {
const serviceAgreement: ServiceAgreement = new ServiceAgreement("ServiceAgreement")
public static async getInstance(): Promise<ServiceExecutionAgreement> {
const serviceAgreement: ServiceExecutionAgreement = new ServiceExecutionAgreement("ServiceExecutionAgreement")
await serviceAgreement.init()
return serviceAgreement
}
@ -43,11 +43,17 @@ export default class ServiceAgreement extends ContractBase {
return this.call("getAgreementStatus", [serviceDefinitionId])
}
public async executeAgreement(serviceAgreementTemplateId: string, serviceAgreementSignatureHash: string,
consumerAddress: string, valueHashes: string[], timeoutValues: number[],
serviceAgreementId: string, did: DID, publisherAddress: string):
Promise<Receipt> {
public async executeAgreement(
serviceAgreementTemplateId: string,
serviceAgreementSignatureHash: string,
consumerAddress: string,
valueHashes: string[],
timeoutValues: number[],
serviceAgreementId: string,
did: DID,
publisherAddress: string,
): Promise<Receipt> {
console.log({serviceAgreementTemplateId, serviceAgreementSignatureHash, consumerAddress, valueHashes, timeoutValues, serviceAgreementId, did, publisherAddress})
return this.send("executeAgreement", publisherAddress, [
serviceAgreementTemplateId, serviceAgreementSignatureHash, consumerAddress, valueHashes,
timeoutValues, "0x" + serviceAgreementId, "0x" + did.getId(),

View File

@ -48,6 +48,7 @@ export default class ServiceAgreement extends OceanBase {
Logger.log("Executing SA with serviceAgreementId", serviceAgreementId)
}
const service: Service = ddo.findServiceById(serviceDefinitionId)
const values: ValuePair[][] = ServiceAgreement.getValuesFromService(service, serviceAgreementId)
const valueHashes: string[] = ServiceAgreement.createValueHashes(values)
@ -98,30 +99,35 @@ export default class ServiceAgreement extends OceanBase {
return serviceAgreementHashSignature
}
private static async executeAgreement(did: DID,
ddo: DDO,
serviceDefinitionId: string,
serviceAgreementId: string,
valueHashes: string[],
timeoutValues: number[],
serviceAgreementHashSignature: string,
consumerAddress: string,
publisher: Account): Promise<ServiceAgreement> {
private static async executeAgreement(
did: DID,
ddo: DDO,
serviceDefinitionId: string,
serviceAgreementId: string,
valueHashes: string[],
timeoutValues: number[],
serviceAgreementHashSignature: string,
consumerAddress: string,
publisher: Account,
): Promise<ServiceAgreement> {
const {serviceAgreement} = await Keeper.getInstance()
console.log(1)
const service: Service = ddo.findServiceById(serviceDefinitionId)
if (!service.templateId) {
throw new Error(`TemplateId not found in service "${service.type}" ddo.`)
}
console.log(2)
const templateActive = await serviceAgreement.getTemplateStatus(service.templateId)
if (!templateActive) {
throw new Error(`Template with id ${service.templateId} is not active.`)
}
console.log(3)
const executeAgreementReceipt = await serviceAgreement
.executeAgreement(
service.templateId,
@ -131,8 +137,10 @@ export default class ServiceAgreement extends OceanBase {
timeoutValues,
serviceAgreementId,
did,
publisher.getId())
publisher.getId(),
)
console.log(4)
if (executeAgreementReceipt.events.ExecuteAgreement.returnValues.state === false) {
throw new Error("executing service agreement failed.")
}