Выпуск контракта Ethereum

Я написал контракт, Transferи функции, определенные в контракте, Transferиспользуются в другом контракте SecondTransfer. Я определил конструктор в контракте Transferи инициализировал значения в этом конструкторе.

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);
  }

 }

Я попытался запустить этот контракт с помощью браузера-солидности. Я передал адрес контракта Transferв качестве параметра контракту Second Transfer. Но функция getBalanceCallвозвращает ошибку VMException.

Пожалуйста, помогите мне исправить проблемы. Есть ли проблемы с инициализацией конструктора в контракте Transfer?

Я также пытаюсь создать DApp, используя Truffle с этим контрактом. В этом случае, как я могу передать адрес Transferконтракта в качестве параметра для SecondTransferконтракта?

@ Роб Хитченс Как я могу решить эти проблемы
Пожалуйста, постарайтесь не задавать несколько вопросов в одном сообщении. Кроме того, может быть полезно указать, какое VMException вы получаете.
@ 5chdn Jump Exception
@ 5chdn Я использую трюфельную структуру для создания контракта. Как я могу передать адрес контракта «Передача» в качестве параметра контракту «Вторая передача»?

Ответы (1)

Я пробовал ваш код, он работает без исключения, я думаю, вы указали неправильный адрес контракта.

введите описание изображения здесь

Позвольте мне попробовать еще раз