Analizar los parámetros de uint256 en una llamada de función desde web3.js

Estaba tratando de invocar alguna función que toma dos números uint256 como entradas. Algo como esto (código de solidez)

function doSomething(uint256 input1, 
                     uint256 input2)

He probado varias combinaciones pero aún no encuentro una forma correcta de analizar los parámetros uint256 para invocarlos doSomethingcorrectamente. Por ejemplo, el siguiente enfoque no funciona (lo probé en Mix).

input1 = '0xfc9e0eefe9f3a5101b7c025b217c03c95dbf9bb4f2d1d46db238e305af104103';
input2 = '0xabcbcbcbcbbc';
contracts['Sample'].contract.doSomething(input1, input2)

La mezcla se muestra input1como un valor negativo. El mismo registro si uso el número en formato decimal. Me pregunto cuál es la forma correcta de analizar los parámetros de uint256 en una llamada de función desde web3.js.

Respuestas (2)

input1 = web3.toBigNumber('0xfc9e0eefe9f3a5101b7c025b217c03c95dbf9bb4f2d1d46db238e305af104103');
input2 = web3.toBigNumber('0xabcbcbcbcbbc');
contracts['Sample'].contract.doSomething.call(input1, input2)
Mi Mix aún muestra input1: -1529986465583978706007266560814094031707524982871219339497837241756090875645. Funciona en el tuyo?
olvidé la parte ".call" de su doSomething... tenga en cuenta que esto lo llamará solo en su nodo y no lo extraerá en la cadena de bloques, necesita usar transacciones para eso.
let id ='80084422859880547211683076133703299733277748156566366325829078699459944778998';
let uint256Id = web3.eth.abi.encodeParameter('uint256',id)