Recibo un error al usar web3.eth.personal.sign, y se queja de que la llamada "Esperaba 0 argumentos, pero obtuvo 3". Lo llamo en un entorno Angular/Typescript/javascript:
this.bottleSig=this.web3.eth.personal.sign(this.bottleDataToSign, this.addressProd, this.passwordProd);
Estoy usando una versión reciente del paquete npm web3: 1.0.0-beta.33. Estoy siguiendo la documentación en http://web3js.readthedocs.io/en/1.0/web3-eth-personal.html . Busqué en .../node_modules y miré varios directorios web3*, pero nada obvio parecía incorrecto, al menos para mí. En node_modules/web3-eth-personal/src/index.js, parece que debería esperar 3 argumentos:
new Method({
name: 'sign',
call: 'personal_sign',
params: 3,
inputFormatter: [formatters.inputSignFormatter, formatters.inputAddressFormatter, null]
}),
Cualquier búsqueda devuelve muy pocos resultados, que no parecen ser aplicables aquí. ¿Alguna idea sobre lo que está mal? ¿Cómo arreglar/solucionar? Desde la versión beta, ¿solo necesita esperar hasta que se "arregle"? Gracias.
Actualizar:
Además, en node_modules/web3/types.d.ts, veo:
exportar declarar clase Eth . . . personales: personales
exportar declarar clase Personal . . . signo()
¿Es aquí de donde se obtiene la expectativa de 0 argumentos?
Actualización2:
¡Este enlace parece ofrecer algunas soluciones, pero un poco demasiado profundas en directivas y controladores para mí!
Parece que types.d.ts
está incompleto. Si está utilizando Angular, supongo que la compilación TS es lo que se queja. (Si pudiera ejecutarlo, funcionaría porque lo está usando correctamente).
Puede probar esta teoría cambiando ese types.d.ts
archivo (se parece a la línea 465 en class Personal
) a:
sign(dataToSign: string, address: string, password: string, cb?: Callback<string>): Promise<string>
Si eso funciona, la teoría es correcta y el archivo/paquete solo necesita completarse.
Luis Soares
gkd720
Luis Soares