-
Notifications
You must be signed in to change notification settings - Fork 0
/
TokenMultiSenderSmartContract
78 lines (65 loc) · 2.32 KB
/
TokenMultiSenderSmartContract
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
// Remix IDE link - //https://remix.ethereum.org
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
contract Multisender is Ownable {
IERC20 public token;
constructor ( address _token ) {
require ( _token != address(0), "ZERRO address");
token = IERC20(_token);
}
function changeToken ( address _address ) external onlyOwner {
require ( _address != address(0), "ZERRO address");
token = IERC20(_address);
}
// function sender with similar amount
function senderSimilarAmount ( address[] memory _addresses, uint amount ) external onlyOwner {
for ( uint i = 0; i < _addresses.length; i++) {
require(_addresses[i] != address(0), "zerro address!");
token.transferFrom(msg.sender, _addresses[i], amount);
}
}
// function sender with different amount
function senderDifferentAnount ( address[] memory _addresses, uint[] memory amount ) external onlyOwner {
require ( _addresses.length == amount.length , " REJECTED" );
for ( uint i = 0 ; i < amount.length; i++ ){
require(_addresses[i] != address(0), "zerro address!");
token.transferFrom(msg.sender, _addresses[i], amount[i]);
}
}
}
// Addresses Array
// [
// "0x5B38Da6a701c568545dCfcB03FcB875f56beddC4",
// "0xAb8483F64d9C6d1EcF9b849Ae677dD3315835cb2",
// "0x4B20993Bc481177ec7E8f571ceCaE8A9e22C02db",
// "0x78731D3Ca6b7E34aC0F824c42a7cC18A495cabaB",
// "0x617F2E2fD72FD9D5503197092aC168c91465E7f2",
// "0x17F6AD8Ef982297579C203069C1DbfFE4348c372",
// "0x5c6B0f7Bf3E7ce046039Bd8FABdfD3f9F5021678",
// "0x03C6FcED478cBbC9a4FAB34eF9f40767739D1Ff7",
// "0x1aE0EA34a72D944a8C7603FfB3eC30a6669E454C",
// "0x0A098Eda01Ce92ff4A4CCb7A4fFFb5A43EBC70DC",
// "0xCA35b7d915458EF540aDe6068dFe2F44E8fa733c",
// "0x14723A09ACff6D2A60DcdF7aA4AFf308FDDC160C",
// "0x4B0897b0513fdC7C541B6d9D7E929C4e5364D2dB",
// "0x583031D1113aD414F02576BD6afaBfb302140225"
// ]
// Amount Array
// [
// 5,
// 10,
// 15,
// 25,
// 50,
// 55,
// 25,
// 75,
// 12,
// 34,
// 37,
// 81,
// 45,
// 32
// ]