Отправка транзакции токена в другую функцию - PullRequest
0 голосов
/ 19 июня 2020

У меня есть следующий смарт-контракт и некоторые функции, в функцию «setBets» я вызвал другую функцию с именем: «transfer (_to, _value);» где я хочу отправить некоторые токены на другой адрес, но всегда получаю ошибку «Предупреждение! Произошла ошибка при выполнении контракта [отменено]»

не могу ли я отправить токены из другой функции? эта функция .transfer находится в другом смарт-контракте: bettorSmartContract

import './bettorSmartContract.sol';

contract Bets is Owner {. . .

function setBets(address _to, uint256 _value, string _idBet, string _idMatch, string _betForWinner, uint _stakeToken, string _odds, uint _totalToken, uint16 _typeCoin, string _betDate, address _accountAddress)public {
    require (keccak256(abi.encodePacked((betsId[_idBet].idBet))) != keccak256(abi.encodePacked((_idBet))) );


                transfer(_to, _value);

                Countries countr= Countries(0x1c2A4B624368b0FE8A9dD36DeFa17fBf6096323b);    

                bets[msg.sender].idBet= _idBet;
                bets[msg.sender].user= msg.sender;

                betsId[_idBet].idBet= _idBet;
                betsId[_idBet].user= msg.sender;

                betsIdMatch[_idBet].idBet= _idBet;
                betsIdMatch[_idBet].idMatch=_idMatch;

                everyID.push(_idBet);

                betsByIdSenderMatch[_idBet][_idMatch][msg.sender].idBet=_idBet;
                betsByIdSenderMatch[_idBet][_idMatch][msg.sender].idMatch=_idMatch;
                betsByIdSenderMatch[_idBet][_idMatch][msg.sender].betForWinner=_betForWinner;
                betsByIdSenderMatch[_idBet][_idMatch][msg.sender].codCountryBetForWinner= bytes32ToString(countr.getCountryIdCod(_betForWinner));
                betsByIdSenderMatch[_idBet][_idMatch][msg.sender].stakeToken= _stakeToken;
                betsByIdSenderMatch[_idBet][_idMatch][msg.sender].priceToken= "0";
                betsByIdSenderMatch[_idBet][_idMatch][msg.sender].priceETH= "0";
                betsByIdSenderMatch[_idBet][_idMatch][msg.sender].odds= _odds;
                betsByIdSenderMatch[_idBet][_idMatch][msg.sender].totalToken = _totalToken;        
                betsByIdSenderMatch[_idBet][_idMatch][msg.sender].payoutEth= 0;
                betsByIdSenderMatch[_idBet][_idMatch][msg.sender].typeCoin = _typeCoin ;
                betsByIdSenderMatch[_idBet][_idMatch][msg.sender].betDate= _betDate;
                betsByIdSenderMatch[_idBet][_idMatch][msg.sender].status= "PENDING";
                betsByIdSenderMatch[_idBet][_idMatch][msg.sender].user= msg.sender;
                betsByIdSenderMatch[_idBet][_idMatch][msg.sender].accountAddress = _accountAddress;
                betsByIdSenderMatch[_idBet][_idMatch][msg.sender].index= (everyID.length-1) ;        

                setArrays(_idBet,_idMatch );





}


function transfer(address _to, uint256 _value)public {
     bettorSmartContract bettor = bettorSmartContract(0x8C17FAD2966cAEa80C5EcB8c319b0198AFCc7662);
     bettor.transfer(_to, _value);  
}

. . .

}

...