Skip to content

Commit

Permalink
onTokenTransfer call uniformed with rest of the repo
Browse files Browse the repository at this point in the history
  • Loading branch information
akolotov committed May 3, 2020
1 parent 8bce8f7 commit ccbf77b
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion contracts/ERC677BridgeToken.sol
Expand Up @@ -7,7 +7,13 @@ import "openzeppelin-solidity/contracts/AddressUtils.sol";
import "./interfaces/IBurnableMintableERC677Token.sol";
import "./upgradeable_contracts/Claimable.sol";

/**
* @title ERC677BridgeToken
* @dev The basic implementation of a bridgeable ERC677-compatible token
*/
contract ERC677BridgeToken is IBurnableMintableERC677Token, DetailedERC20, BurnableToken, MintableToken, Claimable {
bytes4 internal constant ON_TOKEN_TRANSFER = 0xa4c0ed36; // onTokenTransfer(address,uint256,bytes)

address internal bridgeContractAddr;

event ContractFallbackCallFailed(address from, address to, uint256 value);
Expand Down Expand Up @@ -72,8 +78,15 @@ contract ERC677BridgeToken is IBurnableMintableERC677Token, DetailedERC20, Burna
return _address == bridgeContractAddr;
}

/**
* @dev call onTokenTransfer fallback on the token recipient contract
* @param _from tokens sender
* @param _to tokens recipient
* @param _value amount of tokens that was sent
* @param _data set of extra bytes that can be passed to the recipient
*/
function contractFallback(address _from, address _to, uint256 _value, bytes _data) private returns (bool) {
return _to.call(abi.encodeWithSignature("onTokenTransfer(address,uint256,bytes)", _from, _value, _data));
return _to.call(abi.encodeWithSelector(ON_TOKEN_TRANSFER, _from, _value, _data));
}

function finishMinting() public returns (bool) {
Expand Down

0 comments on commit ccbf77b

Please sign in to comment.