Problemas al llamar a sendTransaction desde dentro de un controlador de eventos

Estoy teniendo problemas con Error: Invalid number of arguments to Solidity function. Básicamente, el problema surge cuando llamo a sendTransaction con un controlador de eventos. es decir, aquí está el código después de conectar un evento Solidity:

// premisObject was setup earlier to point at the Abi at the contract's deployed address const premisObject = this.premisObject // rightsSetRights has been hooked up to the required event const rightsSetRights = this.rightsSetRights rightsSetRights.watch(function (error, result) { if (!error) { const index = result.args._index const hash = result.args._hash premisObject._setRights(hash,index, {gas: 200000})) } else { console.error(result) } })

Esa llamada a premisObject._setRights(hash,index, {gas: 200000}))dispara el error. Si hago la misma llamada fuera del controlador de eventos:

premisObject._setRights(this.state.hash, 0, {gas: 200000})

....funciona bien. Necesito llamar premisObject._setRightsdentro de ese controlador de eventos, de alguna manera, porque ahí es cuando sé el valor del índice requerido. ¿Alguna idea de qué está pasando? ¿O tal vez tienes un plan astuto que significa que puedo sortear el problema?

¿Verificó que sus parámetros index, hash y premisObject son correctos? También creo que algunos parámetros necesitan un '0x' al frente. Además, si premisObject es un contrato, no parece una buena idea tener un nombre de método público que comience con _.
Sí, todo comprobado, y todo parece correcto. Actualmente estoy eludiendo el problema al rediseñar mi dAapp generando el índice requerido, en lugar de obtenerlo del controlador de eventos.
PD. no es _setRights - es setRights (fue un error de transcripción) ;)

Respuestas (1)

Nunca llegué al fondo de esto: terminé rediseñando mi dApp para establecer, en lugar de obtener, el índice.