Problema de contrato de Ethereum

He escrito un contrato Transfery las funciones definidas en el contrato Transferse usan en otro contrato SecondTransfer. He definido un constructor en el contrato Transfere inicializado valores en ese constructor.

pragma solidity ^0.4.2;

contract Transfer {

        address public userA;
        address public user;
        mapping (address => uint) balances;
        uint value2;

       // constructor

       function Transfer() {
              userA=msg.sender;
              balances[userA]=1000;     
       }

      function sendEther(address user,uint value)returns (bool success){

             if(balances[userA]< value){
                      return false;
             }
             else {
                      balances[userA] -= value;
                      balances[user] += value;
              return true;
             }
   }
   function sendAddressToAddress(address fromuser,address touser)returns      (bool success){
            uint value=balances[fromuser];
            if(value < 0){
                return false;
            }
            else {
                balances[fromuser] -= value;
                balances[touser] += value;
                return true;
            }
  }
  function getBalance(address user) returns (uint _balance){
           return balances[user];
  }
}


 contract SecondTransfer {

 function sendEtherCall(address contractaddr,address user,uint value) returns (bool success) {
      Transfer transfer=Transfer(contractaddr);
      return transfer.sendEther(user,value);
}
function sendAddressToAddressCall(address contractaddr,address fromuser,address touser) returns (bool success) {
      Transfer transfer=Transfer(contractaddr);
      return transfer.sendAddressToAddress(fromuser,touser);
}
function getBalanceCall(address contractaddr,address user) returns (uint _balance) {
      Transfer transfer=Transfer(contractaddr);
      return transfer.getBalance(user);
  }

 }

He intentado ejecutar este contrato utilizando la solidez del navegador. He pasado la dirección del contrato Transfercomo parámetro del contrato Second Transfer. Pero la función getBalanceCalldevuelve un error VMException.

Por favor, ayúdame a corregir los problemas. ¿ Hay algún problema con respecto a la inicialización del constructor en el contrato Transfer?

También estoy tratando de crear una DApp usando Truffle con este contrato. En este caso, ¿cómo puedo pasar la dirección del Transfercontrato como parámetro para SecondTransfercontratar?

@ Rob Hitchens ¿Cómo puedo resolver estos problemas?
Por favor, trate de no hacer varias preguntas en una sola publicación. Además, podría ser útil incluir qué VMException obtiene.
@ 5chdn Excepción de salto
@5chdn Estoy usando truffle framework para la creación de contratos. ¿Cómo puedo pasar la dirección del contrato de 'Transferencia' como parámetro al contrato de 'Segunda transferencia'?

Respuestas (1)

Probé tu código, funciona sin excepción, creo que pasaste una dirección de contrato incorrecta.

ingrese la descripción de la imagen aquí

Déjame intentarlo una vez más