Я пишу смарт-контракт LibraryPortal, в котором несколько пользователей могут сдавать свои книги в аренду друг другу. Таким образом, в этом договоре msg.value
содержит общую сумму, которая является комбинацией Гарантийного депозита и Арендной ставки.
Что мне нужно сделать, так это мгновенно перевести сумму Арендатора владельцу книги и сохранить оставшуюся сумму в договоре, т. Е. В Гарантийном депозите.
Если Арендатор не вернет книгу с указанным временем, сумма обеспечения будет передана Владельцу книги, в противном случае получит Арендатору.
Вот мой фрагмент:
function borrowBook(string _bName) payable returns (string){
if(msg.sender != books[_bName].owner){
if(books[_bName].available == true){
if(getBalance()>=(books[_bName].amtSecurity + books[_bName].rate) ){
books[_bName].borrower = msg.sender;
books[_bName].available = false;
books[_bName].owner.transfer(msg.value - books[_bName].amtSecurity);
// Code missing
// For storing
// ETH into the Contact
return "Borrowed Succesful";
}else{
return "Insufficient Fund";
}
}else{
return "Currently this Book is Not Available!";
}
}else{
return "You cannot Borrow your own Book";
}
}