fix: use consistent array format for all WebAssembly functions
**Motivations :** - Fix WebAssembly serialization error: 'invalid type: map, expected a sequence' - WebAssembly expects array/sequence format, not object/map format - Ensure all WebAssembly functions use the same array format consistently - Convert object members to array format for all WebAssembly calls **Modifications :** - create_new_process: Convert members object to array format - validate_state: Convert members object to array format - parse_cipher: Convert members object to array format - request_data: Convert members object to array format - All functions now consistently use Object.values().map() to create arrays - Maintained sp_addresses structure in array format **Pages affectées :** - src/services/service.ts: Standardized all WebAssembly functions to use array format
This commit is contained in:
parent
1a4a751485
commit
82f8fc4303
@ -903,11 +903,12 @@ export default class Services {
|
|||||||
throw new Error('No members available - handshake not completed yet');
|
throw new Error('No members available - handshake not completed yet');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Convert to the exact format expected by WebAssembly
|
// Convert to array format for WebAssembly (it expects a sequence, not a map)
|
||||||
// WebAssembly expects a map/object, not an array
|
const members = Object.values(membersObj).map(member => ({
|
||||||
const members = membersObj;
|
sp_addresses: member.sp_addresses
|
||||||
console.log('🔍 DEBUG: Members object keys:', Object.keys(members));
|
}));
|
||||||
console.log('🔍 DEBUG: Members object sample:', Object.entries(members).slice(0, 3));
|
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(
|
const result = this.sdkClient.create_new_process(
|
||||||
encodedPrivateData,
|
encodedPrivateData,
|
||||||
@ -1010,7 +1011,9 @@ export default class Services {
|
|||||||
throw new Error('Failed to get process from db');
|
throw new Error('Failed to get process from db');
|
||||||
}
|
}
|
||||||
try {
|
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);
|
const result = this.sdkClient.validate_state(process, stateId, members);
|
||||||
if (result.updated_process) {
|
if (result.updated_process) {
|
||||||
await this.checkConnections(result.updated_process.current_process);
|
await this.checkConnections(result.updated_process.current_process);
|
||||||
@ -1067,7 +1070,9 @@ export default class Services {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async parseCipher(message: string) {
|
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();
|
const processes = await this.getProcesses();
|
||||||
try {
|
try {
|
||||||
// console.log('parsing new cipher');
|
// console.log('parsing new cipher');
|
||||||
@ -2499,7 +2504,9 @@ export default class Services {
|
|||||||
roles: Record<string, RoleDefinition>[]
|
roles: Record<string, RoleDefinition>[]
|
||||||
) {
|
) {
|
||||||
console.log('Requesting data from peers');
|
console.log('Requesting data from peers');
|
||||||
const membersList = this.getAllMembers();
|
const membersList = Object.values(this.getAllMembers()).map(member => ({
|
||||||
|
sp_addresses: member.sp_addresses
|
||||||
|
}));
|
||||||
try {
|
try {
|
||||||
// Convert objects to strings for WASM compatibility
|
// Convert objects to strings for WASM compatibility
|
||||||
const rolesString = JSON.stringify(roles);
|
const rolesString = JSON.stringify(roles);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user