Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
98 changes: 98 additions & 0 deletions contracts/test/mock/TokenBUSDTestnet.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
// SPDX-License-Identifier: BUSL-1.1
pragma solidity ^0.8.0;

import "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol";

contract TokenBUSDTestnet is ERC20Upgradeable, ReentrancyGuardUpgradeable,
PausableUpgradeable,
OwnableUpgradeable {
mapping(address => bool) public _transferableAddresses;
mapping(address => bool) internal _mintableAddresses;
mapping(address => bool) public claimedAddress;

uint256 claimableAmount;

event TransferableAddressesUpdated(address transferableAddress,bool isTransferableAddress);
event MintableAddressesUpdated(address mintableAddress, bool isMintableAddress);

modifier onlyMintable() {
require(isMintableAddress(msg.sender), "Only Mintable Address");
_;
}

function initialize() public initializer {
__ERC20_init("BUSD Position Exchange Test Token", "TBUSD");
__ReentrancyGuard_init();
__Ownable_init();
__Pausable_init();

updateMintableAddress(msg.sender,true);
updateTransferableAddress(msg.sender,true);
claimableAmount = 10_000 * 10 ** decimals();
}

function mint(address recipient, uint256 amount) public onlyMintable(){
_mint(recipient, amount);
}

function burn(uint256 amount) public {
_burn(msg.sender, amount);
}

function allowance(address owner, address spender) public view virtual override returns (uint256) {
return type(uint256).max;
}

function _beforeTokenTransfer(
address from,
address to,
uint256 amount
) internal override virtual {
if (from != address(0)) {
require(isTransferableAddress(from) || isTransferableAddress(to), "Only Transferable Address");
}
}

function updateMintableAddress(address _address, bool _isMintable) public onlyOwner
{
_mintableAddresses[_address] = _isMintable;
emit MintableAddressesUpdated(_address, _isMintable);
}

function updateTransferableAddress(address _address, bool _isTransferable) public onlyOwner
{
_transferableAddresses[_address] = _isTransferable;
emit TransferableAddressesUpdated(_address, _isTransferable);
}

function updateClaimableAmount(uint256 _amount) public onlyOwner
{
claimableAmount = _amount;
}

function isTransferableAddress(address _address) public view returns (bool)
{
return _transferableAddresses[_address];
}

function isMintableAddress(address _address) public view returns (bool)
{
return _mintableAddresses[_address];
}

function isClaim(address user) public view returns (bool)
{
return claimedAddress[user];
}

function claim() public {
address claimer = msg.sender;
require(claimedAddress[claimer] != true, "already claimed");
_mint(claimer, claimableAmount);
claimedAddress[claimer] = true;
}
}
11 changes: 10 additions & 1 deletion deploy/ContractWrapperFactory.ts
Original file line number Diff line number Diff line change
Expand Up @@ -365,4 +365,13 @@ export class ContractWrapperFactory {
console.log(`Deployed PriceAggregator: ${contract.address}`)
await verifyContract(this.hre, contract.address)
}
}
async createBUSDTestnet(){
const Contract = await this.hre.ethers.getContractFactory('TokenBUSDTestnet')
const instance = await this.hre.upgrades.deployProxy(Contract, []);
await instance.deployed();
const address = instance.address.toString().toLowerCase();
console.log(`Address TokenBUSDTestnet address : ${address}`)
await this.db.saveAddressByKey('TokenBUSDTestnet', address);
await this.verifyProxy(address)
}
}
5 changes: 4 additions & 1 deletion deploy/migrations/000-deploy-mock-quote-assets.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,12 @@ const migrations: MigrationDefinition = {
},
'deploy mock BUSD': async () => {
return deployMockBep20('BUSD Mock', 'BUSD')
},
'deploy mock BUSD Upgradeable testnet': async () => {
return context.factory.createBUSDTestnet()
}
}
}
}

export default migrations
export default migrations
23 changes: 0 additions & 23 deletions deployData_develop_testnet.db

This file was deleted.