¿La visualización js de uint256 no es correcta?

Tengo un contrato simple para configurar y obtener una variable uint256:

contract testContract {

   uint256 test;

   function testContract() {    
   }

   function getTest() constant returns (uint256) {
       return test;    
   }

   function setTest(uint256 _test) {
       test = _test;    
   } 
}

En geth, actualizo la testvariable por

myContract.setTest.sendTransaction(0x12345678901234567890,{from: web3.eth.accounts[0]});

Ahora para leer la variable por

var cardPK = myContract.getTest.call();
console.log("test: " + cardPK.toString(16));

y obtuve

test: 12345678901233c56f80

¿Por qué está mal?

Respuestas (1)

La forma correcta de enviar un gran número a contratar es haciendo:

myContract.setTest.sendTransaction(web3.toBigNumber('0x12345678901234567890'),{from: web3.eth.accounts[0]});