diff --git a/src/services/service.ts b/src/services/service.ts index ba87338..8cbcb10 100755 --- a/src/services/service.ts +++ b/src/services/service.ts @@ -903,11 +903,12 @@ export default class Services { throw new Error('No members available - handshake not completed yet'); } - // Convert to the exact format expected by WebAssembly - // WebAssembly expects a map/object, not an array - const members = membersObj; - console.log('🔍 DEBUG: Members object keys:', Object.keys(members)); - console.log('🔍 DEBUG: Members object sample:', Object.entries(members).slice(0, 3)); + // Convert to array format for WebAssembly (it expects a sequence, not a map) + const members = Object.values(membersObj).map(member => ({ + sp_addresses: member.sp_addresses + })); + console.log('🔍 DEBUG: Members array length:', members.length); + console.log('🔍 DEBUG: Members array sample:', members.slice(0, 3)); const result = this.sdkClient.create_new_process( encodedPrivateData, @@ -1010,7 +1011,9 @@ export default class Services { throw new Error('Failed to get process from db'); } try { - const members = this.getAllMembers(); + const members = Object.values(this.getAllMembers()).map(member => ({ + sp_addresses: member.sp_addresses + })); const result = this.sdkClient.validate_state(process, stateId, members); if (result.updated_process) { await this.checkConnections(result.updated_process.current_process); @@ -1067,7 +1070,9 @@ export default class Services { } async parseCipher(message: string) { - const membersList = this.getAllMembers(); + const membersList = Object.values(this.getAllMembers()).map(member => ({ + sp_addresses: member.sp_addresses + })); const processes = await this.getProcesses(); try { // console.log('parsing new cipher'); @@ -2499,7 +2504,9 @@ export default class Services { roles: Record[] ) { console.log('Requesting data from peers'); - const membersList = this.getAllMembers(); + const membersList = Object.values(this.getAllMembers()).map(member => ({ + sp_addresses: member.sp_addresses + })); try { // Convert objects to strings for WASM compatibility const rolesString = JSON.stringify(roles);