diff --git a/contracts.clevis b/contracts.clevis index 1558a293c..a776b378f 100644 --- a/contracts.clevis +++ b/contracts.clevis @@ -2,6 +2,4 @@ Links LinksNFT ERC20Vendable VendingMachine -Burner -BurnerVendor -Badges \ No newline at end of file +Badges diff --git a/contracts/Badges/Badges.sol b/contracts/Badges/Badges.sol index ef87e5a39..460d65451 100644 --- a/contracts/Badges/Badges.sol +++ b/contracts/Badges/Badges.sol @@ -1,9 +1,9 @@ -pragma solidity ^0.4.24; +pragma solidity ^0.5.0; -import "openzeppelin-solidity/contracts/token/ERC721/ERC721.sol"; -import "openzeppelin-solidity/contracts/token/ERC721/ERC721Enumerable.sol"; -import "openzeppelin-solidity/contracts/token/ERC721/ERC721MetadataMintable.sol"; -import "openzeppelin-solidity/contracts/token/ERC721/ERC721Metadata.sol"; +import "node_modules/openzeppelin-solidity/contracts/token/ERC721/ERC721.sol"; +import "node_modules/openzeppelin-solidity/contracts/token/ERC721/ERC721Enumerable.sol"; +import "node_modules/openzeppelin-solidity/contracts/token/ERC721/ERC721MetadataMintable.sol"; +import "node_modules/openzeppelin-solidity/contracts/token/ERC721/ERC721Metadata.sol"; /** * @title Full ERC721 Token * This implementation includes all the required and some optional functionality of the ERC721 standard diff --git a/contracts/Badges/dependencies.js b/contracts/Badges/dependencies.js index 65b535034..32c1ce7a6 100644 --- a/contracts/Badges/dependencies.js +++ b/contracts/Badges/dependencies.js @@ -1,20 +1,21 @@ const fs = require('fs'); module.exports = { - 'openzeppelin-solidity/contracts/math/SafeMath.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol', 'utf8'), - 'openzeppelin-solidity/contracts/token/ERC721/ERC721.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/ERC721.sol', 'utf8'), - 'openzeppelin-solidity/contracts/token/ERC721/IERC721.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721.sol', 'utf8'), - 'openzeppelin-solidity/contracts/token/ERC721/ERC721Enumerable.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/ERC721Enumerable.sol', 'utf8'), - 'openzeppelin-solidity/contracts/token/ERC721/ERC721Metadata.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/ERC721Metadata.sol', 'utf8'), - 'openzeppelin-solidity/contracts/token/ERC721/IERC721Receiver.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721Receiver.sol', 'utf8'), - 'openzeppelin-solidity/contracts/utils/Address.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/utils/Address.sol', 'utf8'), - 'openzeppelin-solidity/contracts/introspection/ERC165.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/introspection/ERC165.sol', 'utf8'), - 'openzeppelin-solidity/contracts/token/ERC721/IERC721Enumerable.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721Enumerable.sol', 'utf8'), - 'openzeppelin-solidity/contracts/token/ERC721/IERC721Metadata.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721Metadata.sol', 'utf8'), - 'openzeppelin-solidity/contracts/introspection/IERC165.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/introspection/IERC165.sol', 'utf8'), - 'openzeppelin-solidity/contracts/token/ERC721/ERC721MetadataMintable.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/ERC721MetadataMintable.sol', 'utf8'), - 'openzeppelin-solidity/contracts/access/roles/MinterRole.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/access/roles/MinterRole.sol', 'utf8'), - 'openzeppelin-solidity/contracts/access/Roles.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/access/Roles.sol', 'utf8'), + 'node_modules/openzeppelin-solidity/contracts/drafts/Counters.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/drafts/Counters.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/token/ERC721/ERC721.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/ERC721.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/token/ERC721/ERC721Enumerable.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/ERC721Enumerable.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/token/ERC721/ERC721Metadata.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/ERC721Metadata.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721Receiver.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721Receiver.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/utils/Address.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/utils/Address.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/introspection/ERC165.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/introspection/ERC165.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721Enumerable.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721Enumerable.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721Metadata.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721Metadata.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/introspection/IERC165.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/introspection/IERC165.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/token/ERC721/ERC721MetadataMintable.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/ERC721MetadataMintable.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/access/roles/MinterRole.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/access/roles/MinterRole.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/access/Roles.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/access/Roles.sol', 'utf8')}, } diff --git a/contracts/Burner/Burner.sol b/contracts/Burner/Burner.sol deleted file mode 100644 index edba618e0..000000000 --- a/contracts/Burner/Burner.sol +++ /dev/null @@ -1,60 +0,0 @@ -pragma solidity ^0.4.25; - -import "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol"; -import "openzeppelin-solidity/contracts/ownership/Ownable.sol"; - -contract Burner is ERC20, Ownable { - address public vendingMachine; - string public name; - string public symbol; - uint8 public decimals = 18; - - constructor(string memory _name, string memory _symbol) public { - name = _name; - symbol = _symbol; - } - - modifier onlyVendingMachine() { - require(msg.sender == vendingMachine); - _; - } - - //to emulate how we send data with a transaction, we do that here on a token transfer to enable similar chat in the burner - function transferWithData(address to, uint256 value, bytes data) public returns (bool) { - emit TransferWithData(msg.sender,to,value,data); - return transfer(to, value); - } - event TransferWithData(address indexed from, address indexed to, uint256 value, bytes data); - - //Ideally the Vending Machine would actually create the ERC20Vendable, - //and we could make mint and burn onlyCreator. - //However, to get the ERC20 contract deployed before we have all of the VendingMachine stuff ready, - //the ability to change is required to allow us to keep iterating on the VendingMachine design - function changeVendingMachine(address newVendingMachine) onlyOwner { - vendingMachine = newVendingMachine; - } - - /** - * @dev Function to mint tokens - * @param to The address that will receive the minted tokens. - * @param amount The amount of tokens to mint. - * @return A boolean that indicates if the operation was successful. - */ - function mint(address to, uint256 amount) public onlyVendingMachine returns (bool) { - _mint(to, amount); - return true; - } - - /** - * @dev Burns a specific amount of tokens. - * This is different then the standard Burnable definition. - * We only want the vending machine to be able to burn the tokens, but we don't want to require - * the two step approve and burnFrom which the standard case would require. - * @param from The address of which tokens should be burned away from. - * @param value The amount of token to be burned. - */ - function burn(address from, uint256 value) public onlyVendingMachine returns (bool) { - _burn(from, value); - return true; - } -} diff --git a/contracts/Burner/arguments.js b/contracts/Burner/arguments.js deleted file mode 100644 index d85ee7b83..000000000 --- a/contracts/Burner/arguments.js +++ /dev/null @@ -1,9 +0,0 @@ -/* - Example of passing in a string to the constructor: - module.exports = ["hello world"] -*/ - -module.exports = [ - "Burner", - "BURN" -] diff --git a/contracts/Burner/dependencies.js b/contracts/Burner/dependencies.js deleted file mode 100644 index 8299ad1a6..000000000 --- a/contracts/Burner/dependencies.js +++ /dev/null @@ -1,8 +0,0 @@ -const fs = require('fs'); - -module.exports = { - 'openzeppelin-solidity/contracts/math/SafeMath.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol', 'utf8'), - 'openzeppelin-solidity/contracts/ownership/Ownable.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/ownership/Ownable.sol', 'utf8'), - 'openzeppelin-solidity/contracts/token/ERC20/ERC20.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC20/ERC20.sol', 'utf8'), - 'openzeppelin-solidity/contracts/token/ERC20/IERC20.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol', 'utf8'), -} diff --git a/contracts/BurnerVendor/BurnerVendor.sol b/contracts/BurnerVendor/BurnerVendor.sol deleted file mode 100644 index 4c0c8b793..000000000 --- a/contracts/BurnerVendor/BurnerVendor.sol +++ /dev/null @@ -1,250 +0,0 @@ -pragma solidity ^0.4.25; - -import "openzeppelin-solidity/contracts/access/Roles.sol"; -import "ERC20Vendable.sol"; - -contract AdminRole { - using Roles for Roles.Role; - - event AdminAdded(address indexed account); - event AdminRemoved(address indexed account); - - Roles.Role private admins; - address public superAdmin; - - constructor() public { - _addAdmin(msg.sender); - superAdmin = msg.sender; - } - - modifier onlyAdmin() { - require(isAdmin(msg.sender)); - _; - } - - modifier onlySuperAdmin() { - require(isSuperAdmin(msg.sender)); - _; - } - - function isAdmin(address account) public view returns (bool) { - return admins.has(account); - } - - function isSuperAdmin(address account) public view returns (bool) { - return account == superAdmin; - } - - function addAdmin(address account) public onlySuperAdmin { - _addAdmin(account); - } - - function removeAdmin(address account) public onlySuperAdmin { - _removeAdmin(account); - } - - function renounceAdmin() public { - _removeAdmin(msg.sender); - } - - function _addAdmin(address account) internal { - admins.add(account); - emit AdminAdded(account); - } - - function _removeAdmin(address account) internal { - admins.remove(account); - emit AdminRemoved(account); - } -} - -contract WhitelistedRole is AdminRole { - using Roles for Roles.Role; - - event WhitelistedAdded(address indexed account); - event WhitelistedRemoved(address indexed account); - - Roles.Role private _whitelisteds; - - modifier onlyWhitelisted() { - require(isWhitelisted(msg.sender)); - _; - } - - function isWhitelisted(address account) public view returns (bool) { - return _whitelisteds.has(account); - } - - function addWhitelisted(address account) public onlyAdmin { - _addWhitelisted(account); - } - - function removeWhitelisted(address account) public onlyAdmin { - _removeWhitelisted(account); - } - - function renounceWhitelisted() public { - _removeWhitelisted(msg.sender); - } - - function _addWhitelisted(address account) internal { - _whitelisteds.add(account); - emit WhitelistedAdded(account); - } - - function _removeWhitelisted(address account) internal { - _whitelisteds.remove(account); - emit WhitelistedRemoved(account); - } -} - -contract BurnerVendor is AdminRole, WhitelistedRole { - using SafeMath for uint256; - - ERC20Vendable public tokenContract; - mapping (address => uint256) public allowance; - - event Deposit(address indexed depositor, uint amount); - event Withdraw(address indexed withdrawer, uint amount); - - constructor(address _tokenContract) public { - tokenContract = ERC20Vendable(_tokenContract); - } - - //Fallback. Just send currency here to deposit - function () external payable { - deposit(); - } - - /** - * @dev Deposit currency in order to buy tokens from the ERC20Contract - * Will buy tokens at a 1-to-1 ratio. User will also be given an allowance to withdraw the same amount. - */ - function deposit() public payable { - _addAllowance(msg.sender, msg.value); - - tokenContract.mint(msg.sender, msg.value); - emit Deposit(msg.sender, msg.value); - } - - /** - * @dev Admin hook to increment an account's withdraw allowance. - * Could be useful if they don't want to give the user unlimited withdraw by whitelisting them - * @param account The address to receive the increased allowance. - * @param amount The amount to increase the allowance - */ - function addAllowance(address account, uint256 amount) public onlyAdmin { - _addAllowance(account, amount); - } - - function _addAllowance(address account, uint256 amount) private { - allowance[account] = allowance[account].add(amount); - } - - function withdraw(uint256 amount) public { - if(isWhitelisted(msg.sender)) { - _withdraw(amount); - } else { - require(amount <= allowance[msg.sender]); - allowance[msg.sender] = allowance[msg.sender].sub(amount); - _withdraw(amount); - } - } - - function _withdraw(uint256 amount) private { - tokenContract.burn(msg.sender, amount); - msg.sender.transfer(amount); - emit Withdraw(msg.sender, amount); - } - - function adminMint(address to, uint256 amount) public onlyAdmin { - tokenContract.mint(to, amount); - } - - function sweep(uint256 amount) public onlySuperAdmin { - msg.sender.transfer(amount); - } - - //***************** Product/Vendor related code *******************// - - mapping (address => Vendor) public vendors; - mapping (address => mapping (uint256 => Product)) public products; - - event UpdateVendor(address indexed vendor, bytes32 name, bool isActive, bool isAllowed, address sender); - event AddProduct(address indexed vendor, uint256 id, uint256 cost, bytes32 name, bool isAvailable); - - struct Vendor { - bytes32 name; - bool isActive; //let's vendor indicate if they are open at the time - bool isAllowed; //let's admin turn them off, - bool exists; - } - - struct Product { - uint256 id; - uint256 cost; - bytes32 name; - bool exists; - bool isAvailable; - } - - function addProduct(uint256 id, bytes32 name, uint256 cost, bool isAvailable) public { - require(vendors[msg.sender].isAllowed, "VendingMachine::addProduct - vendor is not allowed by admin"); - products[msg.sender][id] = Product({ - id: id, - cost: cost, - name: name, - exists: true, - isAvailable: isAvailable - }); - - emit AddProduct(msg.sender, id, cost, name, isAvailable); - } - - function addVendor(address _vendorAddress, bytes32 _name) public onlyAdmin { - require(!vendors[_vendorAddress].exists, "VendingMachine::addVendor This address already is a vendor."); - - vendors[_vendorAddress] = Vendor({ - name: _name, - isActive: false, - isAllowed: true, - exists: true - }); - - _emitUpdateVendor(_vendorAddress); - } - - function activateVendor(bool _isActive) public { - //Existing vendor check happens in _updateVendor. No need to do it here - _updateVendor( - msg.sender, - vendors[msg.sender].name, - _isActive, - vendors[msg.sender].isAllowed - ); - } - - function updateVendor(address _vendorAddress, bytes32 _name, bool _isActive, bool _isAllowed) public onlyAdmin { - _updateVendor(_vendorAddress, _name, _isActive, _isAllowed); - } - - function _updateVendor(address _vendorAddress, bytes32 _name, bool _isActive, bool _isAllowed) private { - require(vendors[_vendorAddress].exists, "VendingMachine::_updateVendor Cannot update a non-existent vendor"); - - vendors[_vendorAddress].name = _name; - vendors[_vendorAddress].isActive = _isActive; - vendors[_vendorAddress].isAllowed = _isAllowed; - - _emitUpdateVendor(_vendorAddress); - } - - function _emitUpdateVendor(address _vendorAddress) private { - emit UpdateVendor( - _vendorAddress, - vendors[_vendorAddress].name, - vendors[_vendorAddress].isActive, - vendors[_vendorAddress].isAllowed, - msg.sender - ); - } -} diff --git a/contracts/BurnerVendor/arguments.js b/contracts/BurnerVendor/arguments.js deleted file mode 100644 index 5fa0f38d3..000000000 --- a/contracts/BurnerVendor/arguments.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = [require("fs").readFileSync("./contracts/ERC20Vendable/ERC20Vendable.address").toString().trim()] diff --git a/contracts/BurnerVendor/dependencies.js b/contracts/BurnerVendor/dependencies.js deleted file mode 100644 index e7dda9e03..000000000 --- a/contracts/BurnerVendor/dependencies.js +++ /dev/null @@ -1,9 +0,0 @@ -const fs = require('fs'); -module.exports = { - 'openzeppelin-solidity/contracts/math/SafeMath.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol', 'utf8'), - 'openzeppelin-solidity/contracts/token/ERC20/ERC20.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC20/ERC20.sol', 'utf8'), - 'openzeppelin-solidity/contracts/token/ERC20/IERC20.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol', 'utf8'), - 'openzeppelin-solidity/contracts/access/Roles.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/access/Roles.sol', 'utf8'), - 'openzeppelin-solidity/contracts/ownership/Ownable.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/ownership/Ownable.sol', 'utf8'), - 'ERC20Vendable.sol': fs.readFileSync('contracts/ERC20Vendable/ERC20Vendable.sol', 'utf8'), -} diff --git a/contracts/ERC20Vendable/ERC20Vendable.sol b/contracts/ERC20Vendable/ERC20Vendable.sol index ad677cc6c..6a66fff89 100644 --- a/contracts/ERC20Vendable/ERC20Vendable.sol +++ b/contracts/ERC20Vendable/ERC20Vendable.sol @@ -1,7 +1,7 @@ -pragma solidity ^0.4.25; +pragma solidity ^0.5.0; -import "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol"; -import "openzeppelin-solidity/contracts/ownership/Ownable.sol"; +import "node_modules/openzeppelin-solidity/contracts/token/ERC20/ERC20.sol"; +import "node_modules/openzeppelin-solidity/contracts/ownership/Ownable.sol"; contract ERC20Vendable is ERC20, Ownable { address public vendingMachine; @@ -20,7 +20,7 @@ contract ERC20Vendable is ERC20, Ownable { } //to emulate how we send data with a transaction, we do that here on a token transfer to enable similar chat in the burner - function transferWithData(address to, uint256 value, bytes data) public returns (bool) { + function transferWithData(address to, uint256 value, bytes memory data) public returns (bool) { emit TransferWithData(msg.sender,to,value,data); return transfer(to, value); } @@ -30,7 +30,7 @@ contract ERC20Vendable is ERC20, Ownable { //and we could make mint and burn onlyCreator. //However, to get the ERC20 contract deployed before we have all of the VendingMachine stuff ready, //the ability to change is required to allow us to keep iterating on the VendingMachine design - function changeVendingMachine(address newVendingMachine) onlyOwner { + function changeVendingMachine(address newVendingMachine) public onlyOwner { vendingMachine = newVendingMachine; } diff --git a/contracts/ERC20Vendable/dependencies.js b/contracts/ERC20Vendable/dependencies.js index 8299ad1a6..2960289ee 100644 --- a/contracts/ERC20Vendable/dependencies.js +++ b/contracts/ERC20Vendable/dependencies.js @@ -1,8 +1,8 @@ const fs = require('fs'); module.exports = { - 'openzeppelin-solidity/contracts/math/SafeMath.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol', 'utf8'), - 'openzeppelin-solidity/contracts/ownership/Ownable.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/ownership/Ownable.sol', 'utf8'), - 'openzeppelin-solidity/contracts/token/ERC20/ERC20.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC20/ERC20.sol', 'utf8'), - 'openzeppelin-solidity/contracts/token/ERC20/IERC20.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol', 'utf8'), + 'node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/ownership/Ownable.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/ownership/Ownable.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/token/ERC20/ERC20.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC20/ERC20.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol', 'utf8')}, } diff --git a/contracts/Links/Links.sol b/contracts/Links/Links.sol index 1c7c0cb99..484b628dc 100644 --- a/contracts/Links/Links.sol +++ b/contracts/Links/Links.sol @@ -1,10 +1,10 @@ -pragma solidity ^0.4.25; +pragma solidity ^0.5.0; -import "openzeppelin-solidity/contracts/math/SafeMath.sol"; -import "openzeppelin-solidity/contracts/cryptography/ECDSA.sol"; -import "tabookey-gasless/contracts/RelayRecipient.sol"; -import "tabookey-gasless/contracts/RecipientUtils.sol"; -import "../Vault/Vault.sol"; +import "node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol"; +import "node_modules/openzeppelin-solidity/contracts/cryptography/ECDSA.sol"; +import "node_modules/tabookey-gasless/contracts/RelayRecipient.sol"; +import "node_modules/tabookey-gasless/contracts/RecipientUtils.sol"; +import "Vault.sol"; /// @title Send xDai/Eth with a link. /// @author Ricardo Rius - @@ -135,7 +135,7 @@ contract Links is Vault, RelayRecipient, RecipientUtils { bytes32 _id, bytes memory _signature, bytes32 _claimHash, - address _destination + address payable _destination ) public ifValidFund(_id) @@ -227,7 +227,7 @@ contract Links is Vault, RelayRecipient, RecipientUtils { bytes32 _id, bytes memory _signature, bytes32 _claimHash, - address _destination + address payable _destination ) private returns (bool) @@ -237,7 +237,7 @@ contract Links is Vault, RelayRecipient, RecipientUtils { uint nonce = funds[_id].nonce; address token = funds[_id].token; uint amount = funds[_id].amount; - address sender = get_sender(); // Get sender for MetaTx instead of msg.sender + address payable sender = address(uint160(get_sender())); // Get sender for MetaTx instead of msg.sender assert(nonce < nonceId[_id]); // validate mutex/flag status @@ -287,7 +287,7 @@ contract Links is Vault, RelayRecipient, RecipientUtils { public payable { - RelayHub(get_hub_addr()).depositFor.value(msg.value)(this); + RelayHub(get_hub_addr()).depositFor.value(msg.value)(address(this)); } /// @dev decide whether this call should be allowed to called by a relay diff --git a/contracts/Links/dependencies.js b/contracts/Links/dependencies.js index 7df37f5a1..a6396364a 100644 --- a/contracts/Links/dependencies.js +++ b/contracts/Links/dependencies.js @@ -1,24 +1,25 @@ const fs = require('fs'); module.exports = { - 'openzeppelin-solidity/contracts/math/SafeMath.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol', 'utf8'), - 'openzeppelin-solidity/contracts/token/ERC20/IERC20.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol', 'utf8'), - 'openzeppelin-solidity/contracts/token/ERC20/ERC20.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC20/ERC20.sol', 'utf8'), - 'openzeppelin-solidity/contracts/token/ERC721/ERC721.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/ERC721.sol', 'utf8'), - 'openzeppelin-solidity/contracts/token/ERC721/IERC721.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721.sol', 'utf8'), - 'openzeppelin-solidity/contracts/token/ERC721/ERC721Enumerable.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/ERC721Enumerable.sol', 'utf8'), - 'openzeppelin-solidity/contracts/token/ERC721/ERC721Metadata.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/ERC721Metadata.sol', 'utf8'), - 'openzeppelin-solidity/contracts/token/ERC721/IERC721Receiver.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721Receiver.sol', 'utf8'), - 'openzeppelin-solidity/contracts/utils/Address.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/utils/Address.sol', 'utf8'), - 'openzeppelin-solidity/contracts/introspection/ERC165.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/introspection/ERC165.sol', 'utf8'), - 'openzeppelin-solidity/contracts/token/ERC721/IERC721Enumerable.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721Enumerable.sol', 'utf8'), - 'openzeppelin-solidity/contracts/token/ERC721/IERC721Metadata.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721Metadata.sol', 'utf8'), - 'openzeppelin-solidity/contracts/introspection/IERC165.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/introspection/IERC165.sol', 'utf8'), - 'openzeppelin-solidity/contracts/cryptography/ECDSA.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/cryptography/ECDSA.sol', 'utf8'), - 'tabookey-gasless/contracts/RelayRecipientApi.sol': fs.readFileSync('./node_modules/tabookey-gasless/contracts/RelayRecipientApi.sol', 'utf8'), - 'tabookey-gasless/contracts/RelayRecipient.sol': fs.readFileSync('./node_modules/tabookey-gasless/contracts/RelayRecipient.sol', 'utf8'), - 'tabookey-gasless/contracts/RecipientUtils.sol': fs.readFileSync('./node_modules/tabookey-gasless/contracts/RecipientUtils.sol', 'utf8'), - 'tabookey-gasless/contracts/RelayHubApi.sol': fs.readFileSync('./node_modules/tabookey-gasless/contracts/RelayHubApi.sol', 'utf8'), - 'tabookey-gasless/contracts/RLPReader.sol': fs.readFileSync('./node_modules/tabookey-gasless/contracts/RLPReader.sol', 'utf8'), - 'tabookey-gasless/contracts/RelayHub.sol': fs.readFileSync('./node_modules/tabookey-gasless/contracts/RelayHub.sol', 'utf8'), - 'Vault/Vault.sol': fs.readFileSync('./contracts/Vault/Vault.sol', 'utf8') -} \ No newline at end of file + 'node_modules/openzeppelin-solidity/contracts/drafts/Counters.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/drafts/Counters.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/token/ERC20/ERC20.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC20/ERC20.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/token/ERC721/ERC721.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/ERC721.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/token/ERC721/ERC721Enumerable.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/ERC721Enumerable.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/token/ERC721/ERC721Metadata.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/ERC721Metadata.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721Receiver.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721Receiver.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/utils/Address.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/utils/Address.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/introspection/ERC165.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/introspection/ERC165.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721Enumerable.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721Enumerable.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721Metadata.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721Metadata.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/introspection/IERC165.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/introspection/IERC165.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/cryptography/ECDSA.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/cryptography/ECDSA.sol', 'utf8')}, + 'node_modules/tabookey-gasless/contracts/RelayRecipientApi.sol': {content:fs.readFileSync('./node_modules/tabookey-gasless/contracts/RelayRecipientApi.sol', 'utf8')}, + 'node_modules/tabookey-gasless/contracts/RelayRecipient.sol': {content:fs.readFileSync('./node_modules/tabookey-gasless/contracts/RelayRecipient.sol', 'utf8')}, + 'node_modules/tabookey-gasless/contracts/RecipientUtils.sol': {content:fs.readFileSync('./node_modules/tabookey-gasless/contracts/RecipientUtils.sol', 'utf8')}, + 'node_modules/tabookey-gasless/contracts/RelayHubApi.sol': {content:fs.readFileSync('./node_modules/tabookey-gasless/contracts/RelayHubApi.sol', 'utf8')}, + 'node_modules/tabookey-gasless/contracts/RLPReader.sol': {content:fs.readFileSync('./node_modules/tabookey-gasless/contracts/RLPReader.sol', 'utf8')}, + 'node_modules/tabookey-gasless/contracts/RelayHub.sol': {content:fs.readFileSync('./node_modules/tabookey-gasless/contracts/RelayHub.sol', 'utf8')}, + 'Vault.sol': {content:fs.readFileSync('./contracts/Vault/Vault.sol', 'utf8')} +} diff --git a/contracts/LinksNFT/LinksNFT.sol b/contracts/LinksNFT/LinksNFT.sol index 844fde73b..61db366db 100644 --- a/contracts/LinksNFT/LinksNFT.sol +++ b/contracts/LinksNFT/LinksNFT.sol @@ -1,8 +1,8 @@ -pragma solidity ^0.4.25; +pragma solidity ^0.5.0; -import "openzeppelin-solidity/contracts/math/SafeMath.sol"; -import "openzeppelin-solidity/contracts/cryptography/ECDSA.sol"; -import "../Vault/Vault.sol"; +import "node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol"; +import "node_modules/openzeppelin-solidity/contracts/cryptography/ECDSA.sol"; +import "Vault.sol"; /// @title Send NFTs with a link. /// @author Ricardo Rius - @@ -72,6 +72,7 @@ contract LinksNFT is Vault{ public ifNotValidFund(_id) ifValidSig(_signature) + payable returns (bool) { address signer = ECDSA.recover(_id.toEthSignedMessageHash(),_signature); @@ -111,7 +112,7 @@ contract LinksNFT is Vault{ bytes32 _id, bytes memory _signature, bytes32 _claimHash, - address _destination + address payable _destination ) public ifValidFund(_id) @@ -184,7 +185,7 @@ contract LinksNFT is Vault{ bytes32 _id, bytes memory _signature, bytes32 _claimHash, - address _destination + address payable _destination ) private returns (bool) diff --git a/contracts/LinksNFT/dependencies.js b/contracts/LinksNFT/dependencies.js index ff6e57b01..b39e5e78a 100644 --- a/contracts/LinksNFT/dependencies.js +++ b/contracts/LinksNFT/dependencies.js @@ -1,16 +1,17 @@ const fs = require('fs'); module.exports = { - 'openzeppelin-solidity/contracts/math/SafeMath.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol', 'utf8'), - 'openzeppelin-solidity/contracts/cryptography/ECDSA.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/cryptography/ECDSA.sol', 'utf8'), - 'openzeppelin-solidity/contracts/utils/Address.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/utils/Address.sol', 'utf8'), - 'openzeppelin-solidity/contracts/introspection/IERC165.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/introspection/IERC165.sol', 'utf8'), - 'openzeppelin-solidity/contracts/introspection/ERC165.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/introspection/ERC165.sol', 'utf8'), - 'openzeppelin-solidity/contracts/token/ERC20/IERC20.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol', 'utf8'), - 'openzeppelin-solidity/contracts/token/ERC20/ERC20.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC20/ERC20.sol', 'utf8'), - 'openzeppelin-solidity/contracts/token/ERC721/IERC721.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721.sol', 'utf8'), - 'openzeppelin-solidity/contracts/token/ERC721/IERC721Receiver.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721Receiver.sol', 'utf8'), - 'openzeppelin-solidity/contracts/token/ERC721/ERC721.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/ERC721.sol', 'utf8'), - 'openzeppelin-solidity/contracts/token/ERC721/IERC721Enumerable.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721Enumerable.sol', 'utf8'), - 'openzeppelin-solidity/contracts/token/ERC721/IERC721Metadata.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721Metadata.sol', 'utf8'), - 'Vault/Vault.sol': fs.readFileSync('./contracts/Vault/Vault.sol', 'utf8') -} \ No newline at end of file + 'node_modules/openzeppelin-solidity/contracts/drafts/Counters.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/drafts/Counters.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/cryptography/ECDSA.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/cryptography/ECDSA.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/utils/Address.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/utils/Address.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/introspection/IERC165.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/introspection/IERC165.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/introspection/ERC165.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/introspection/ERC165.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/token/ERC20/ERC20.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC20/ERC20.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721Receiver.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721Receiver.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/token/ERC721/ERC721.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/ERC721.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721Enumerable.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721Enumerable.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721Metadata.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721Metadata.sol', 'utf8')}, + 'Vault.sol': {content:fs.readFileSync('./contracts/Vault/Vault.sol', 'utf8')} +} diff --git a/contracts/Vault/Vault.sol b/contracts/Vault/Vault.sol index 4f09afd8f..80300afd1 100644 --- a/contracts/Vault/Vault.sol +++ b/contracts/Vault/Vault.sol @@ -1,8 +1,8 @@ -pragma solidity ^0.4.25; +pragma solidity ^0.5.0; -import "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol"; -import "openzeppelin-solidity/contracts/token/ERC721/ERC721.sol"; -import "openzeppelin-solidity/contracts/token/ERC721/IERC721Receiver.sol"; +import "node_modules/openzeppelin-solidity/contracts/token/ERC20/ERC20.sol"; +import "node_modules/openzeppelin-solidity/contracts/token/ERC721/ERC721.sol"; +import "node_modules/openzeppelin-solidity/contracts/token/ERC721/IERC721Receiver.sol"; /// @title Storage vault to send with a link. /// @author Ricardo Rius - @@ -28,7 +28,7 @@ contract Vault is IERC721Receiver{ /// @param _tokenId The NFT identifier which is being transferred /// @param _data Additional data with no specified format /// @return `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))` - function onERC721Received(address _operator,address _from,uint256 _tokenId,bytes _data) public returns(bytes4){ + function onERC721Received(address _operator,address _from,uint256 _tokenId,bytes memory _data) public returns(bytes4){ return this.onERC721Received.selector; } @@ -44,7 +44,7 @@ contract Vault is IERC721Receiver{ /// @param _token Address of the token being transferred /// @param _to Address of the recipient of tokens /// @param _value Amount of tokens being transferred - function _linkTransfer(address _token, bytes4 _type, address _to, uint256 _value, uint256 _tokenId) internal returns(bool){ + function _linkTransfer(address _token, bytes4 _type, address payable _to, uint256 _value, uint256 _tokenId) internal returns(bool){ return _vaultTransfer(_token, _type, _to, _value, _tokenId); } @@ -53,7 +53,7 @@ contract Vault is IERC721Receiver{ /// @param _to Address of the recipient of tokens /// @param _value Amount of tokens being transferred /* solium-disable-next-line function-order */ - function _vaultTransfer(address _token, bytes4 _type, address _to, uint256 _value, uint256 _tokenId) private returns(bool status) { + function _vaultTransfer(address _token, bytes4 _type, address payable _to, uint256 _value, uint256 _tokenId) private returns(bool status) { status = false; if (_token == NATIVE_TOKEN) { diff --git a/contracts/VendingMachine/VendingMachine.sol b/contracts/VendingMachine/VendingMachine.sol index 992fc8cce..31f4b5688 100644 --- a/contracts/VendingMachine/VendingMachine.sol +++ b/contracts/VendingMachine/VendingMachine.sol @@ -1,6 +1,6 @@ -pragma solidity ^0.4.25; +pragma solidity ^0.5.0; -import "openzeppelin-solidity/contracts/access/Roles.sol"; +import "node_modules/openzeppelin-solidity/contracts/access/Roles.sol"; import "ERC20Vendable.sol"; contract AdminRole { diff --git a/contracts/VendingMachine/dependencies.js b/contracts/VendingMachine/dependencies.js index e7dda9e03..807a31574 100644 --- a/contracts/VendingMachine/dependencies.js +++ b/contracts/VendingMachine/dependencies.js @@ -1,9 +1,9 @@ const fs = require('fs'); module.exports = { - 'openzeppelin-solidity/contracts/math/SafeMath.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol', 'utf8'), - 'openzeppelin-solidity/contracts/token/ERC20/ERC20.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC20/ERC20.sol', 'utf8'), - 'openzeppelin-solidity/contracts/token/ERC20/IERC20.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol', 'utf8'), - 'openzeppelin-solidity/contracts/access/Roles.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/access/Roles.sol', 'utf8'), - 'openzeppelin-solidity/contracts/ownership/Ownable.sol': fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/ownership/Ownable.sol', 'utf8'), - 'ERC20Vendable.sol': fs.readFileSync('contracts/ERC20Vendable/ERC20Vendable.sol', 'utf8'), + 'node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/token/ERC20/ERC20.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC20/ERC20.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/access/Roles.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/access/Roles.sol', 'utf8')}, + 'node_modules/openzeppelin-solidity/contracts/ownership/Ownable.sol': {content:fs.readFileSync('./node_modules/openzeppelin-solidity/contracts/ownership/Ownable.sol', 'utf8')}, + 'ERC20Vendable.sol': {content:fs.readFileSync('contracts/ERC20Vendable/ERC20Vendable.sol', 'utf8')}, } diff --git a/package.json b/package.json index b5cb81dd1..550e34177 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "react-stack-grid": "^0.7.1", "s3": "^4.4.0", "scrypt": "^6.0.3", - "tabookey-gasless": "0.3.3", + "tabookey-gasless": "^0.3.3-a", "web3": "1.0.0-beta.33" }, "scripts": { @@ -68,7 +68,8 @@ "devDependencies": { "clevis": "^0.1.4", "mocha": "^5.2.0", - "openzeppelin-solidity": "2.0.0", + "chai": "^4.2.0", + "openzeppelin-solidity": "^2.3.0", "webpack": "^4.28.4" } } diff --git a/src/App.js b/src/App.js index b29759fd0..3955c57b9 100644 --- a/src/App.js +++ b/src/App.js @@ -136,15 +136,6 @@ else if (window.location.hostname.indexOf("buffidai") >= 0) { ERC20IMAGE = bufficorn LOADERIMAGE = bufficorn } -else if (window.location.hostname.indexOf("burnerwallet.io") >= 0) { - WEB3_PROVIDER = POA_XDAI_NODE; - CLAIM_RELAY = 'https://x.xdai.io' - ERC20NAME = 'BURN' - ERC20VENDOR = 'BurnerVendor' - ERC20TOKEN = 'Burner' - ERC20IMAGE = cypherpunk - LOADERIMAGE = cypherpunk -} else if (window.location.hostname.indexOf("burnerwithrelays") >= 0) { WEB3_PROVIDER = "https://dai.poa.network"; ERC20NAME = false diff --git a/src/contracts/contracts.js b/src/contracts/contracts.js index 6d929c8f1..41ad35609 100644 --- a/src/contracts/contracts.js +++ b/src/contracts/contracts.js @@ -1 +1 @@ -module.exports = ["Links","LinksNFT","ERC20Vendable","VendingMachine","Burner","BurnerVendor","Badges"] \ No newline at end of file +module.exports = ["Links","LinksNFT","ERC20Vendable","VendingMachine","Badges"] \ No newline at end of file diff --git a/tests/clevis.js b/tests/clevis.js index 309574b1b..8ac3bcc16 100644 --- a/tests/clevis.js +++ b/tests/clevis.js @@ -51,15 +51,7 @@ module.exports = { it('should compile '+contract.magenta+' contract to bytecode', async function() { this.timeout(90000) const result = await clevis("compile",contract) - console.log(result) - assert(Object.keys(result.contracts).length>0, "No compiled contacts found.") - let count = 0 - for(let c in result.contracts){ - console.log("\t\t"+"contract "+c.blue+": ",result.contracts[c].bytecode.length) - if(count++==0){ - assert(result.contracts[c].bytecode.length > 1, "No bytecode for contract "+c) - } - } + assert(result, "Failed to compile contacts.") }); }); },