Твердость Наследование - PullRequest
       13

Твердость Наследование

0 голосов
/ 13 сентября 2018

У меня 2 контракта, один на регистрацию, а другой контракт на функции о займах.Когда я запускаю контракт на ремикс, он работает нормально, и функция контракта Loan также выполняется, но когда я запускаю тот же код на локальном компьютере, используя Truffle, AngularJs и testrpc, он берет цену на газ для обеих функций, но хранит только данные пользователя и не хранит данныедля кредита

Договор о регистрации пользователя

pragma solidity ^0.4.23;
import "./ConvertLib.sol";
import "./Loans.sol";

contract Users is Loans{
   address public owner;




enum status {enable,disable}
struct User {
    string fname;
    string lname;
    string email;
    uint phone;
    string fileHash;
    status ustatus;
    bool check;
    address add;
}

mapping (address => User) users;
address[] public allUsers;


function setUser(string _fname,string _lname,string _email,uint _phone,string _fileHash) public payable returns(bool) {


    User storage newUser = users[msg.sender];
    newUser.fname = _fname;
    newUser.lname = _lname;
    newUser.email = _email;
    newUser.phone = _phone;
    newUser.check = true;
    newUser.fileHash = _fileHash;
    newUser.add = msg.sender;
    allUsers.push(msg.sender) -1;

   // Both ways it is nor working

   // Loans.requestLoan(250,"EUR","ASD",123,"asd");
    Loans.Loan storage newLoan = loans[msg.sender];
    newLoan.amount = 250;
    newLoan.currency = "Euro";
    newLoan.loanDescription = "Description";
    newLoan.endDate = 23;
    newLoan.returnPolicy = "ad";
    allLoans.push(msg.sender) -1;
    return true;

}

}

Договор займа

pragma solidity ^0.4.18;
contract Loans{

    struct Loan {
    uint amount;
    string currency;
    string loanDescription;
    uint endDate;
    string returnPolicy;
}
mapping (address => Loan) loans;
address[] public allLoans;

function requestLoan(uint _amount,string _currency,string _description,uint _endDate,string _returnPolicy) public payable{
    Loan storage newLoan = loans[msg.sender];
    newLoan.amount = _amount;
    newLoan.currency = _currency;
    newLoan.loanDescription = _description;
    newLoan.endDate = _endDate;
    newLoan.returnPolicy = _returnPolicy;
    allLoans.push(msg.sender) -1;
}
}

В AngularJs я использую этот способ для вызова функции

async registerUser(){

const deployedUser = await this.User.deployed();
try{

const result = await deployedUser.setUser.sendTransaction(this.model.fname,this.model.lname,this.model.email,this.model.phone,"asd", {from: this.model.account}); 
  console.log(result);
 }
 catch(e)
 {
  console.log(e);
 }

 }
...