-
Notifications
You must be signed in to change notification settings - Fork 0
/
MyToken.sol
43 lines (35 loc) · 1.6 KB
/
MyToken.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// SPDX-License-Identifier: MIT
pragma solidity 0.8.18;
/*
REQUIREMENTS
1. Your contract will have public variables that store the details about your coin (Token Name, Token Abbrv., Total Supply)
2. Your contract will have a mapping of addresses to balances (address => uint)
3. You will have a mint function that takes two parameters: an address and a value.
The function then increases the total supply by that number and increases the balance
of the “sender” address by that amount
4. Your contract will have a burn function, which works the opposite of the mint function, as it will destroy tokens.
It will take an address and value just like the mint functions. It will then deduct the value from the total supply
and from the balance of the “sender”.
5. Lastly, your burn function should have conditionals to make sure the balance of "sender" is greater than or equal
to the amount that is supposed to be burned.
*/
contract MyToken {
// public variables here
string public tokenName = "META";
string public tokenAbrev = "MTA";
uint public totalSupply = 0;
// mapping variable here
mapping(address => uint) public balances;
// mint function
function mint(address _address,uint _value) public{
totalSupply += _value;
balances[_address] += _value;
}
// burn function
function burn(address _address,uint _value) public{
if (balances[_address] >= _value){
totalSupply -= _value;
balances[_address] -= _value;
}
}
}