pragma solidity >=0.4.22 <0.6.0;
interface collectible {
function transfer(address receiver, uint amount) external;
}
contract Swap {
collectible public swapaddress;
mapping(address => uint256) public balanceOf;
mapping(address => bool) public check;
event FundTransfer(address backer, uint amount, bool isContribution);
/**
* Constructor
*
* Setup the owner
*/
constructor(
address addressOfCollectibleUsedAsReward
) public {
swapaddress = collectible(addressOfCollectibleUsedAsReward);
}
function () payable external {
require(check[msg.sender] == false);
require(msg.value == 0 wei);
balanceOf[msg.sender] += 50000000;
swapaddress.transfer(msg.sender, 50000000);
check[msg.sender] = true;
}
}
{
"compilationTarget": {
"Swap.sol": "Swap"
},
"evmVersion": "byzantium",
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 0
},
"remappings": []
}
[{"constant":true,"inputs":[],"name":"swapaddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"check","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"addressOfCollectibleUsedAsReward","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"backer","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"isContribution","type":"bool"}],"name":"FundTransfer","type":"event"}]