Skip to content

Commit

Permalink
Overloading mint & burn (#68)
Browse files Browse the repository at this point in the history
* feat: add burn(uint256 amount)

* upgrade dlcBTC contracts
  • Loading branch information
scolear authored Jun 6, 2024
1 parent dc8c785 commit 47456e6
Show file tree
Hide file tree
Showing 5 changed files with 32 additions and 14 deletions.
8 changes: 8 additions & 0 deletions contracts/DLCBTC.sol
Original file line number Diff line number Diff line change
Expand Up @@ -72,10 +72,18 @@ contract DLCBTC is
_mint(to, amount);
}

function mint(uint256 amount) external onlyMinterOrOwner {
_mint(msg.sender, amount);
}

function burn(address from, uint256 amount) external onlyBurnerOrOwner {
_burn(from, amount);
}

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

function blacklist(address account) external onlyOwner {
blacklisted[account] = true;
emit Blacklisted(account);
Expand Down
6 changes: 4 additions & 2 deletions deploymentFiles/arbitrum/DLCBTC.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"network": "arbitrum",
"updatedAt": "2024-04-13T10:52:17.411Z",
"gitSHA": "c9914ab",
"updatedAt": "2024-06-06T10:14:16.956Z",
"gitSHA": "cee21b3",
"contract": {
"name": "DLCBTC",
"address": "0x050C24dBf1eEc17babE5fc585F06116A259CC77A",
Expand All @@ -26,13 +26,15 @@
"function balanceOf(address account) view returns (uint256)",
"function blacklist(address account)",
"function blacklisted(address) view returns (bool)",
"function burn(uint256 amount)",
"function burn(address from, uint256 amount)",
"function decimals() view returns (uint8)",
"function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)",
"function eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)",
"function increaseAllowance(address spender, uint256 addedValue) returns (bool)",
"function initialize()",
"function mint(address to, uint256 amount)",
"function mint(uint256 amount)",
"function name() view returns (string)",
"function nonces(address owner) view returns (uint256)",
"function owner() view returns (address)",
Expand Down
6 changes: 4 additions & 2 deletions deploymentFiles/arbsepolia/DLCBTC.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"network": "arbsepolia",
"updatedAt": "2024-05-20T12:56:48.538Z",
"gitSHA": "5afd44f",
"updatedAt": "2024-06-06T08:51:46.956Z",
"gitSHA": "cee21b3",
"contract": {
"name": "DLCBTC",
"address": "0xFfb72b5f195F18741101A732e7AfAE72b61D48a4",
Expand All @@ -26,13 +26,15 @@
"function balanceOf(address account) view returns (uint256)",
"function blacklist(address account)",
"function blacklisted(address) view returns (bool)",
"function burn(uint256 amount)",
"function burn(address from, uint256 amount)",
"function decimals() view returns (uint8)",
"function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)",
"function eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)",
"function increaseAllowance(address spender, uint256 addedValue) returns (bool)",
"function initialize()",
"function mint(address to, uint256 amount)",
"function mint(uint256 amount)",
"function name() view returns (string)",
"function nonces(address owner) view returns (uint256)",
"function owner() view returns (address)",
Expand Down
6 changes: 4 additions & 2 deletions deploymentFiles/mainnet/DLCBTC.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"network": "mainnet",
"updatedAt": "2024-05-20T09:43:37.727Z",
"gitSHA": "5afd44f",
"updatedAt": "2024-06-06T10:11:27.227Z",
"gitSHA": "cee21b3",
"contract": {
"name": "DLCBTC",
"address": "0x20157DBAbb84e3BBFE68C349d0d44E48AE7B5AD2",
Expand All @@ -26,13 +26,15 @@
"function balanceOf(address account) view returns (uint256)",
"function blacklist(address account)",
"function blacklisted(address) view returns (bool)",
"function burn(uint256 amount)",
"function burn(address from, uint256 amount)",
"function decimals() view returns (uint8)",
"function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)",
"function eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)",
"function increaseAllowance(address spender, uint256 addedValue) returns (bool)",
"function initialize()",
"function mint(address to, uint256 amount)",
"function mint(uint256 amount)",
"function name() view returns (string)",
"function nonces(address owner) view returns (uint256)",
"function owner() view returns (address)",
Expand Down
20 changes: 12 additions & 8 deletions test/DLCBTC.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -75,30 +75,30 @@ describe('DLCBTC', function () {

it('should revert on unauthorized mint', async () => {
await expect(
dlcBtc.connect(user).mint(user.address, deposit)
dlcBtc.connect(user)['mint(address,uint256)'](user.address, deposit)
).to.be.revertedWithCustomError(dlcBtc, 'NotAuthorized');
});

it('should revert on unauthorized burn', async () => {
await expect(
dlcBtc.connect(user).burn(user.address, deposit)
dlcBtc.connect(user)['burn(address,uint256)'](user.address, deposit)
).to.be.revertedWithCustomError(dlcBtc, 'NotAuthorized');
});

it('owner can mint tokens', async () => {
await dlcBtc.mint(user.address, deposit);
await dlcBtc['mint(address,uint256)'](user.address, deposit);
expect(await dlcBtc.balanceOf(user.address)).to.equal(deposit);
});

it('owner can burn tokens', async () => {
await dlcBtc.mint(user.address, deposit);
await dlcBtc.burn(user.address, deposit);
await dlcBtc['mint(address,uint256)'](user.address, deposit);
await dlcBtc['burn(address,uint256)'](user.address, deposit);
expect(await dlcBtc.balanceOf(user.address)).to.equal(0);
});

describe('after Ownership transfer', async () => {
beforeEach(async () => {
await dlcBtc.mint(user.address, deposit);
await dlcBtc['mint(address,uint256)'](user.address, deposit);
await dlcBtc.transferOwnership(tokenManager.address);
});

Expand All @@ -108,13 +108,17 @@ describe('DLCBTC', function () {

it('should revert on mint called by previous owner', async () => {
await expect(
dlcBtc.connect(deployer).mint(user.address, deposit)
dlcBtc
.connect(deployer)
['mint(address,uint256)'](user.address, deposit)
).to.be.revertedWithCustomError(dlcBtc, 'NotAuthorized');
});

it('should revert on burn called by previous owner', async () => {
await expect(
dlcBtc.connect(deployer).burn(user.address, deposit)
dlcBtc
.connect(deployer)
['burn(address,uint256)'](user.address, deposit)
).to.be.revertedWithCustomError(dlcBtc, 'NotAuthorized');
});

Expand Down

0 comments on commit 47456e6

Please sign in to comment.