diff --git a/src/services/service.ts b/src/services/service.ts index 02ac50d..72f662b 100755 --- a/src/services/service.ts +++ b/src/services/service.ts @@ -262,26 +262,13 @@ export default class Services { throw new Error('Amount is still 0 after 3 attempts'); } - public async createPairingProcess(userName: string, pairWith: string[], relayAddress: string, feeRate: number): Promise { + public async createPairingProcess(userName: string, pairWith: string[]): Promise { if (this.sdkClient.is_paired()) { throw new Error('Device already paired'); } const myAddress: string = this.sdkClient.get_address(); pairWith.push(myAddress); - const roles: Record = { - pairing: { - members: [], - validation_rules: [ - { - quorum: 1.0, - fields: ['description', 'counter', 'roles', 'memberPublicName', 'pairedAddresses'], - min_sig_member: 1.0, - }, - ], - storages: [STORAGEURL] - }, - }; - const pairingTemplate = { + const privateData = { description: 'pairing', counter: 0, }; @@ -289,15 +276,26 @@ export default class Services { memberPublicName: userName, pairedAddresses: pairWith, }; + const validation_fields: string[] = [...Object.keys(privateData), ...Object.keys(publicData), 'roles']; + const roles: Record = { + pairing: { + members: [], + validation_rules: [ + { + quorum: 1.0, + fields: validation_fields, + min_sig_member: 1.0, + }, + ], + storages: [STORAGEURL] + }, + }; try { - return this.sdkClient.create_new_process( - pairingTemplate, - roles, - publicData, - relayAddress, - feeRate, - this.getAllMembers() - ); + return this.createProcess( + privateData, + publicData, + roles + ); } catch (e) { throw new Error(`Creating process failed:, ${e}`); } @@ -474,8 +472,15 @@ export default class Services { delete userData.validator; // We don't want that in the final pcd - const userDataKeys = Object.keys(userData); - + const privateData = { + description: 'profile', + ...userData, + }; + const publicData = { + identityCertified: false, + }; + const ownerRoleFields: string[] = [...privateData, 'roles']; + const validatorRoleFields: string[] = [...publicData]; const roles: Record = { demiurge: { members: [myProcessId], @@ -487,11 +492,7 @@ export default class Services { validation_rules: [ { quorum: 0.01, - fields: [ - 'description', - 'roles', - ...userDataKeys - ], + fields: ownerRoleFields, min_sig_member: 0.01, }, ], @@ -502,15 +503,12 @@ export default class Services { validation_rules: [ { quorum: 1.0, - fields: ['identityCertified'], + fields: validatorRoleFields, min_sig_member: 1.0 }, { quorum: 0.0, - fields: [ - 'description', - ...userDataKeys - ], + fields: ownerRoleFields, min_sig_member: 0.0 } ], @@ -532,37 +530,15 @@ export default class Services { storages: [STORAGEURL] }, }; - const profileTemplate = { - description: 'profile', - ...userData, - }; - const publicData = { - identityCertified: false, - }; - - // Add name and lastName if profile_idn (notary profile) - // if (userDataKeys.includes('profile_idn')) { - // publicData.identityCertified = true; - // publicData.name = userData.name; - // publicData.lastName = userData.lastName; - // } else { - // publicData.identityCertified = false; - // } - - const relayAddress = this.getAllRelays()[0]['spAddress']; - const feeRate = 1; - + await this.getTokensFromFaucet(); try { - return this.sdkClient.create_new_process( - profileTemplate, - roles, - publicData, - relayAddress, - feeRate, - this.getAllMembers() - ); + return this.createProcess( + privateData, + publicData, + roles, + ) } catch (e) { throw new Error(`Creating process failed:, ${e}`); } @@ -575,7 +551,14 @@ export default class Services { throw new Error('Missing pairing id'); } - const folderDataKeys = Object.keys(folderData); + const privateData = { + description: 'folder', + documents: [], + notes: [], + ...folderData, + }; + const ownerRoleFields = [Object.keys(privateData), 'roles']; + const stakeholdersRoleFields = ['documents', 'notes']; const roles: Record = { owner: { @@ -583,11 +566,7 @@ export default class Services { validation_rules: [ { quorum: 0.01, - fields: [ - 'description', - 'roles', - ...folderDataKeys - ], + fields: ownerRoleFields, min_sig_member: 0.01, }, ], @@ -598,7 +577,7 @@ export default class Services { validation_rules: [ { quorum: 0.01, - fields: ['documents', 'notes'], + fields: stakeholdersRoleFields, min_sig_member: 0.01, }, ], @@ -609,7 +588,7 @@ export default class Services { validation_rules: [ { quorum: 0.0, - fields: ['documents', 'notes'], + fields: stakeholdersRoleFields, min_sig_member: 0.0, }, ], @@ -617,31 +596,14 @@ export default class Services { } }; - const folderTemplate = { - description: 'folder', - ...folderData, - }; - - console.log('🚀 ~ Services ~ createFolderProcess ~ folderTemplate:', folderTemplate); - - const publicData = { - - }; - - const relayAddress = this.getAllRelays()[0]['spAddress']; - const feeRate = 1; - await this.getTokensFromFaucet(); try { - return this.sdkClient.create_new_process( - folderTemplate, - roles, - publicData, - relayAddress, - feeRate, - this.getAllMembers() - ); + return this.getProcess( + privateData, + {}, + roles + ) } catch (e) { throw new Error(`Creating folder process failed: ${e}`); }