ETH Price: $2,612.15 (+2.33%)

Transaction Decoder

Block:
21464123 at Dec-23-2024 08:54:47 AM +UTC
Transaction Fee:
0.002876572163282229 ETH $7.51
Gas Used:
560,139 Gas / 5.135461311 Gwei

Emitted Events:

61 FjordToken.Transfer( from=[Sender] 0x5eb67a3b141f3036899ee77822a41277166c540e, to=[Receiver] Disperse, amount=9900000000000000000000 )
62 FjordToken.Transfer( from=[Receiver] Disperse, to=0xfA146e77A7C7683c0c388936664027b6FD745405, amount=158400000000000000000 )
63 FjordToken.Transfer( from=[Receiver] Disperse, to=0x69e67AaD5495A48c4ef3f770D93A99935e1dc90d, amount=158400000000000000000 )
64 FjordToken.Transfer( from=[Receiver] Disperse, to=0xfc55D46d67b8e784f801a53C08C7DB1c0e214820, amount=316800000000000000000 )
65 FjordToken.Transfer( from=[Receiver] Disperse, to=0x3185EF019BA1C04B8d65eDB64c1c34C3eaE52271, amount=158400000000000000000 )
66 FjordToken.Transfer( from=[Receiver] Disperse, to=0x50BAdF9d6De272Ea3dD2D537f120f593BaB07670, amount=237600000000000000000 )
67 FjordToken.Transfer( from=[Receiver] Disperse, to=0x562f003AA87197687f82D5aa4521206264BbDe80, amount=158400000000000000000 )
68 FjordToken.Transfer( from=[Receiver] Disperse, to=0x350C4eDa87efe854a7D0a1235eCeDaa409D6EeC8, amount=316800000000000000000 )
69 FjordToken.Transfer( from=[Receiver] Disperse, to=0xA26710af01c7b12b41d0cFb416a027751828Fc5C, amount=633600000000000000000 )
70 FjordToken.Transfer( from=[Receiver] Disperse, to=0xf2e81ce56890a9707156401E446046d8E6849584, amount=158400000000000000000 )
71 FjordToken.Transfer( from=[Receiver] Disperse, to=0x4eD3C16786925bc9B34F3b96bF5b8F90c2c48ed9, amount=396000000000000000000 )
72 FjordToken.Transfer( from=[Receiver] Disperse, to=0xF66B0CfE0fbc00b4AB49cc3B40528ac122bc43bd, amount=300960000000000000000 )
73 FjordToken.Transfer( from=[Receiver] Disperse, to=0xca7d9fAf203C8Cc66540CE4E17caBEe9BCC05627, amount=633600000000000000000 )
74 FjordToken.Transfer( from=[Receiver] Disperse, to=0x9d156bc7c8768294510A4A41883d5A4EB15b15E3, amount=673200000000000000000 )
75 FjordToken.Transfer( from=[Receiver] Disperse, to=0x29eB182B934780bB25C4656268Df4C919225E707, amount=158400000000000000000 )
76 FjordToken.Transfer( from=[Receiver] Disperse, to=0xfc2A87ACc2DB072e6d376cbe6755cd8B5872264c, amount=237600000000000000000 )
77 FjordToken.Transfer( from=[Receiver] Disperse, to=0xAD9e0Cd94a89b155c0335B609fa08352c2dBAeb9, amount=158400000000000000000 )
78 FjordToken.Transfer( from=[Receiver] Disperse, to=0xd543792AeC7f9F1007447aeb707404C72E75540F, amount=79200000000000000000 )
79 FjordToken.Transfer( from=[Receiver] Disperse, to=0x620B92F3bCc4c230C4e75d0784F61c8d43fE30BC, amount=79200000000000000000 )
80 FjordToken.Transfer( from=[Receiver] Disperse, to=0x2f0df65c444B35b3CbCE0EFAeCD9C9750612e136, amount=237600000000000000000 )
81 FjordToken.Transfer( from=[Receiver] Disperse, to=0x66DD095Ce28eFa599f68e67a895c29a8a2f33D71, amount=158400000000000000000 )
82 FjordToken.Transfer( from=[Receiver] Disperse, to=0x904C5dE62F9f3906c3bF6Eaf20aA4A927b24219B, amount=316800000000000000000 )
83 FjordToken.Transfer( from=[Receiver] Disperse, to=0x847E61DbDDc2F4C7e84E55404Df57eD5Ba59F33c, amount=237600000000000000000 )
84 FjordToken.Transfer( from=[Receiver] Disperse, to=0xF1327D925323E360AFF9670ebEA5cE9624Faaa6D, amount=673200000000000000000 )
85 FjordToken.Transfer( from=[Receiver] Disperse, to=0xCaE7B8191750AeC11b532410BCaB6088507F9128, amount=79200000000000000000 )
86 FjordToken.Transfer( from=[Receiver] Disperse, to=0xA8188d5A6D06F83cfa4991912ecFBB444d7eE411, amount=79200000000000000000 )
87 FjordToken.Transfer( from=[Receiver] Disperse, to=0x2457C41946205b398030Ca16bF0B71D4BaEe56db, amount=79200000000000000000 )
88 FjordToken.Transfer( from=[Receiver] Disperse, to=0x816DDA7B144c47716d2F404908ea5E03C9aa2959, amount=158400000000000000000 )
89 FjordToken.Transfer( from=[Receiver] Disperse, to=0x3F4373aFdde3D7dE3AC433AcC7De685338c3980e, amount=237600000000000000000 )
90 FjordToken.Transfer( from=[Receiver] Disperse, to=0xa8026a29A324D87c6f61Aa1547047506dEd98CA2, amount=237600000000000000000 )
91 FjordToken.Transfer( from=[Receiver] Disperse, to=0x2b48D01f4cFe3A7496856f6F420AD2B4a892B599, amount=79200000000000000000 )
92 FjordToken.Transfer( from=[Receiver] Disperse, to=0x5e5511426451e1694B7fB95D7238A260D9F4431C, amount=79200000000000000000 )
93 FjordToken.Transfer( from=[Receiver] Disperse, to=0x6985077eD92279F7e55A1424a43B531957485712, amount=316800000000000000000 )
94 FjordToken.Transfer( from=[Receiver] Disperse, to=0xa411422B572c48F02e34b676650cf33AE306a9F1, amount=158400000000000000000 )
95 FjordToken.Transfer( from=[Receiver] Disperse, to=0xa8da5912dB11C6cAA2762473f0B5D3Dba6Aff992, amount=158400000000000000000 )
96 FjordToken.Transfer( from=[Receiver] Disperse, to=0xB3325E5c36bec884957B9c2402e6Ad67341aec4e, amount=79200000000000000000 )
97 FjordToken.Transfer( from=[Receiver] Disperse, to=0xD7F1FcE99D88301707035dCF8196819318B7f4d1, amount=396000000000000000000 )
98 FjordToken.Transfer( from=[Receiver] Disperse, to=0xEE61F6c495c40afE59a656802fdb5D66020a22a6, amount=158400000000000000000 )
99 FjordToken.Transfer( from=[Receiver] Disperse, to=0xCf2A91e54f2E958D691A28b1FfBac3cc7cFF8477, amount=158400000000000000000 )
100 FjordToken.Transfer( from=[Receiver] Disperse, to=0xbe6f48B3ec83DB8E83771F49C11D738d9717dedB, amount=807840000000000000000 )

Account State Difference:

  Address   Before After State Difference Code
(Titan Builder)
5.49865624879447716 Eth5.49919958362447716 Eth0.00054333483
0x5Eb67a3b...7166c540e
0.060507832454740544 Eth
Nonce: 8243
0.057631260291458315 Eth
Nonce: 8244
0.002876572163282229
0x69457A1C...e0369d5D0

Execution Trace

Disperse.disperseToken( token=0x69457A1C9Ec492419344DA01Daf0DF0e0369d5D0, recipients=[0xfA146e77A7C7683c0c388936664027b6FD745405, 0x69e67AaD5495A48c4ef3f770D93A99935e1dc90d, 0xfc55D46d67b8e784f801a53C08C7DB1c0e214820, 0x3185EF019BA1C04B8d65eDB64c1c34C3eaE52271, 0x50BAdF9d6De272Ea3dD2D537f120f593BaB07670, 0x562f003AA87197687f82D5aa4521206264BbDe80, 0x350C4eDa87efe854a7D0a1235eCeDaa409D6EeC8, 0xA26710af01c7b12b41d0cFb416a027751828Fc5C, 0xf2e81ce56890a9707156401E446046d8E6849584, 0x4eD3C16786925bc9B34F3b96bF5b8F90c2c48ed9, 0xF66B0CfE0fbc00b4AB49cc3B40528ac122bc43bd, 0xca7d9fAf203C8Cc66540CE4E17caBEe9BCC05627, 0x9d156bc7c8768294510A4A41883d5A4EB15b15E3, 0x29eB182B934780bB25C4656268Df4C919225E707, 0xfc2A87ACc2DB072e6d376cbe6755cd8B5872264c, 0xAD9e0Cd94a89b155c0335B609fa08352c2dBAeb9, 0xd543792AeC7f9F1007447aeb707404C72E75540F, 0x620B92F3bCc4c230C4e75d0784F61c8d43fE30BC, 0x2f0df65c444B35b3CbCE0EFAeCD9C9750612e136, 0x66DD095Ce28eFa599f68e67a895c29a8a2f33D71, 0x904C5dE62F9f3906c3bF6Eaf20aA4A927b24219B, 0x847E61DbDDc2F4C7e84E55404Df57eD5Ba59F33c, 0xF1327D925323E360AFF9670ebEA5cE9624Faaa6D, 0xCaE7B8191750AeC11b532410BCaB6088507F9128, 0xA8188d5A6D06F83cfa4991912ecFBB444d7eE411, 0x2457C41946205b398030Ca16bF0B71D4BaEe56db, 0x816DDA7B144c47716d2F404908ea5E03C9aa2959, 0x3F4373aFdde3D7dE3AC433AcC7De685338c3980e, 0xa8026a29A324D87c6f61Aa1547047506dEd98CA2, 0x2b48D01f4cFe3A7496856f6F420AD2B4a892B599, 0x5e5511426451e1694B7fB95D7238A260D9F4431C, 0x6985077eD92279F7e55A1424a43B531957485712, 0xa411422B572c48F02e34b676650cf33AE306a9F1, 0xa8da5912dB11C6cAA2762473f0B5D3Dba6Aff992, 0xB3325E5c36bec884957B9c2402e6Ad67341aec4e, 0xD7F1FcE99D88301707035dCF8196819318B7f4d1, 0xEE61F6c495c40afE59a656802fdb5D66020a22a6, 0xCf2A91e54f2E958D691A28b1FfBac3cc7cFF8477, 0xbe6f48B3ec83DB8E83771F49C11D738d9717dedB], values=[158400000000000000000, 158400000000000000000, 316800000000000000000, 158400000000000000000, 237600000000000000000, 158400000000000000000, 316800000000000000000, 633600000000000000000, 158400000000000000000, 396000000000000000000, 300960000000000000000, 633600000000000000000, 673200000000000000000, 158400000000000000000, 237600000000000000000, 158400000000000000000, 79200000000000000000, 79200000000000000000, 237600000000000000000, 158400000000000000000, 316800000000000000000, 237600000000000000000, 673200000000000000000, 79200000000000000000, 79200000000000000000, 79200000000000000000, 158400000000000000000, 237600000000000000000, 237600000000000000000, 79200000000000000000, 79200000000000000000, 316800000000000000000, 158400000000000000000, 158400000000000000000, 79200000000000000000, 396000000000000000000, 158400000000000000000, 158400000000000000000, 807840000000000000000] )
  • FjordToken.transferFrom( from=0x5Eb67a3b141f3036899EE77822A41277166c540e, to=0xD152f549545093347A162Dce210e7293f1452150, amount=9900000000000000000000 ) => ( True )
  • FjordToken.transfer( to=0xfA146e77A7C7683c0c388936664027b6FD745405, amount=158400000000000000000 ) => ( True )
  • FjordToken.transfer( to=0x69e67AaD5495A48c4ef3f770D93A99935e1dc90d, amount=158400000000000000000 ) => ( True )
  • FjordToken.transfer( to=0xfc55D46d67b8e784f801a53C08C7DB1c0e214820, amount=316800000000000000000 ) => ( True )
  • FjordToken.transfer( to=0x3185EF019BA1C04B8d65eDB64c1c34C3eaE52271, amount=158400000000000000000 ) => ( True )
  • FjordToken.transfer( to=0x50BAdF9d6De272Ea3dD2D537f120f593BaB07670, amount=237600000000000000000 ) => ( True )
  • FjordToken.transfer( to=0x562f003AA87197687f82D5aa4521206264BbDe80, amount=158400000000000000000 ) => ( True )
  • FjordToken.transfer( to=0x350C4eDa87efe854a7D0a1235eCeDaa409D6EeC8, amount=316800000000000000000 ) => ( True )
  • FjordToken.transfer( to=0xA26710af01c7b12b41d0cFb416a027751828Fc5C, amount=633600000000000000000 ) => ( True )
  • FjordToken.transfer( to=0xf2e81ce56890a9707156401E446046d8E6849584, amount=158400000000000000000 ) => ( True )
  • FjordToken.transfer( to=0x4eD3C16786925bc9B34F3b96bF5b8F90c2c48ed9, amount=396000000000000000000 ) => ( True )
  • FjordToken.transfer( to=0xF66B0CfE0fbc00b4AB49cc3B40528ac122bc43bd, amount=300960000000000000000 ) => ( True )
  • FjordToken.transfer( to=0xca7d9fAf203C8Cc66540CE4E17caBEe9BCC05627, amount=633600000000000000000 ) => ( True )
  • FjordToken.transfer( to=0x9d156bc7c8768294510A4A41883d5A4EB15b15E3, amount=673200000000000000000 ) => ( True )
  • FjordToken.transfer( to=0x29eB182B934780bB25C4656268Df4C919225E707, amount=158400000000000000000 ) => ( True )
  • FjordToken.transfer( to=0xfc2A87ACc2DB072e6d376cbe6755cd8B5872264c, amount=237600000000000000000 ) => ( True )
  • FjordToken.transfer( to=0xAD9e0Cd94a89b155c0335B609fa08352c2dBAeb9, amount=158400000000000000000 ) => ( True )
  • FjordToken.transfer( to=0xd543792AeC7f9F1007447aeb707404C72E75540F, amount=79200000000000000000 ) => ( True )
  • FjordToken.transfer( to=0x620B92F3bCc4c230C4e75d0784F61c8d43fE30BC, amount=79200000000000000000 ) => ( True )
  • FjordToken.transfer( to=0x2f0df65c444B35b3CbCE0EFAeCD9C9750612e136, amount=237600000000000000000 ) => ( True )
  • FjordToken.transfer( to=0x66DD095Ce28eFa599f68e67a895c29a8a2f33D71, amount=158400000000000000000 ) => ( True )
  • FjordToken.transfer( to=0x904C5dE62F9f3906c3bF6Eaf20aA4A927b24219B, amount=316800000000000000000 ) => ( True )
  • FjordToken.transfer( to=0x847E61DbDDc2F4C7e84E55404Df57eD5Ba59F33c, amount=237600000000000000000 ) => ( True )
  • FjordToken.transfer( to=0xF1327D925323E360AFF9670ebEA5cE9624Faaa6D, amount=673200000000000000000 ) => ( True )
  • FjordToken.transfer( to=0xCaE7B8191750AeC11b532410BCaB6088507F9128, amount=79200000000000000000 ) => ( True )
  • FjordToken.transfer( to=0xA8188d5A6D06F83cfa4991912ecFBB444d7eE411, amount=79200000000000000000 ) => ( True )
  • FjordToken.transfer( to=0x2457C41946205b398030Ca16bF0B71D4BaEe56db, amount=79200000000000000000 ) => ( True )
  • FjordToken.transfer( to=0x816DDA7B144c47716d2F404908ea5E03C9aa2959, amount=158400000000000000000 ) => ( True )
  • FjordToken.transfer( to=0x3F4373aFdde3D7dE3AC433AcC7De685338c3980e, amount=237600000000000000000 ) => ( True )
  • FjordToken.transfer( to=0xa8026a29A324D87c6f61Aa1547047506dEd98CA2, amount=237600000000000000000 ) => ( True )
  • FjordToken.transfer( to=0x2b48D01f4cFe3A7496856f6F420AD2B4a892B599, amount=79200000000000000000 ) => ( True )
  • FjordToken.transfer( to=0x5e5511426451e1694B7fB95D7238A260D9F4431C, amount=79200000000000000000 ) => ( True )
  • FjordToken.transfer( to=0x6985077eD92279F7e55A1424a43B531957485712, amount=316800000000000000000 ) => ( True )
  • FjordToken.transfer( to=0xa411422B572c48F02e34b676650cf33AE306a9F1, amount=158400000000000000000 ) => ( True )
  • FjordToken.transfer( to=0xa8da5912dB11C6cAA2762473f0B5D3Dba6Aff992, amount=158400000000000000000 ) => ( True )
  • FjordToken.transfer( to=0xB3325E5c36bec884957B9c2402e6Ad67341aec4e, amount=79200000000000000000 ) => ( True )
  • FjordToken.transfer( to=0xD7F1FcE99D88301707035dCF8196819318B7f4d1, amount=396000000000000000000 ) => ( True )
  • FjordToken.transfer( to=0xEE61F6c495c40afE59a656802fdb5D66020a22a6, amount=158400000000000000000 ) => ( True )
  • FjordToken.transfer( to=0xCf2A91e54f2E958D691A28b1FfBac3cc7cFF8477, amount=158400000000000000000 ) => ( True )
  • FjordToken.transfer( to=0xbe6f48B3ec83DB8E83771F49C11D738d9717dedB, amount=807840000000000000000 ) => ( True )
    File 1 of 2: Disperse
    pragma solidity ^0.4.25;
    
    
    interface IERC20 {
        function transfer(address to, uint256 value) external returns (bool);
        function transferFrom(address from, address to, uint256 value) external returns (bool);
    }
    
    
    contract Disperse {
        function disperseEther(address[] recipients, uint256[] values) external payable {
            for (uint256 i = 0; i < recipients.length; i++)
                recipients[i].transfer(values[i]);
            uint256 balance = address(this).balance;
            if (balance > 0)
                msg.sender.transfer(balance);
        }
    
        function disperseToken(IERC20 token, address[] recipients, uint256[] values) external {
            uint256 total = 0;
            for (uint256 i = 0; i < recipients.length; i++)
                total += values[i];
            require(token.transferFrom(msg.sender, address(this), total));
            for (i = 0; i < recipients.length; i++)
                require(token.transfer(recipients[i], values[i]));
        }
    
        function disperseTokenSimple(IERC20 token, address[] recipients, uint256[] values) external {
            for (uint256 i = 0; i < recipients.length; i++)
                require(token.transferFrom(msg.sender, recipients[i], values[i]));
        }
    }

    File 2 of 2: FjordToken
    // SPDX-License-Identifier: AGPL-3.0-only
    pragma solidity ^0.8.21;
    import { ERC20 } from "solmate/tokens/ERC20.sol";
    contract FjordToken is ERC20 {
        constructor() ERC20("Fjord Foundry", "FJO", 18) {
            _mint(msg.sender, 100_000_000 ether);
        }
    }
    // SPDX-License-Identifier: AGPL-3.0-only
    pragma solidity >=0.8.0;
    /// @notice Modern and gas efficient ERC20 + EIP-2612 implementation.
    /// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC20.sol)
    /// @author Modified from Uniswap (https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/UniswapV2ERC20.sol)
    /// @dev Do not manually set balances without updating totalSupply, as the sum of all user balances must not exceed it.
    abstract contract ERC20 {
        /*//////////////////////////////////////////////////////////////
                                     EVENTS
        //////////////////////////////////////////////////////////////*/
        event Transfer(address indexed from, address indexed to, uint256 amount);
        event Approval(address indexed owner, address indexed spender, uint256 amount);
        /*//////////////////////////////////////////////////////////////
                                METADATA STORAGE
        //////////////////////////////////////////////////////////////*/
        string public name;
        string public symbol;
        uint8 public immutable decimals;
        /*//////////////////////////////////////////////////////////////
                                  ERC20 STORAGE
        //////////////////////////////////////////////////////////////*/
        uint256 public totalSupply;
        mapping(address => uint256) public balanceOf;
        mapping(address => mapping(address => uint256)) public allowance;
        /*//////////////////////////////////////////////////////////////
                                EIP-2612 STORAGE
        //////////////////////////////////////////////////////////////*/
        uint256 internal immutable INITIAL_CHAIN_ID;
        bytes32 internal immutable INITIAL_DOMAIN_SEPARATOR;
        mapping(address => uint256) public nonces;
        /*//////////////////////////////////////////////////////////////
                                   CONSTRUCTOR
        //////////////////////////////////////////////////////////////*/
        constructor(
            string memory _name,
            string memory _symbol,
            uint8 _decimals
        ) {
            name = _name;
            symbol = _symbol;
            decimals = _decimals;
            INITIAL_CHAIN_ID = block.chainid;
            INITIAL_DOMAIN_SEPARATOR = computeDomainSeparator();
        }
        /*//////////////////////////////////////////////////////////////
                                   ERC20 LOGIC
        //////////////////////////////////////////////////////////////*/
        function approve(address spender, uint256 amount) public virtual returns (bool) {
            allowance[msg.sender][spender] = amount;
            emit Approval(msg.sender, spender, amount);
            return true;
        }
        function transfer(address to, uint256 amount) public virtual returns (bool) {
            balanceOf[msg.sender] -= amount;
            // Cannot overflow because the sum of all user
            // balances can't exceed the max uint256 value.
            unchecked {
                balanceOf[to] += amount;
            }
            emit Transfer(msg.sender, to, amount);
            return true;
        }
        function transferFrom(
            address from,
            address to,
            uint256 amount
        ) public virtual returns (bool) {
            uint256 allowed = allowance[from][msg.sender]; // Saves gas for limited approvals.
            if (allowed != type(uint256).max) allowance[from][msg.sender] = allowed - amount;
            balanceOf[from] -= amount;
            // Cannot overflow because the sum of all user
            // balances can't exceed the max uint256 value.
            unchecked {
                balanceOf[to] += amount;
            }
            emit Transfer(from, to, amount);
            return true;
        }
        /*//////////////////////////////////////////////////////////////
                                 EIP-2612 LOGIC
        //////////////////////////////////////////////////////////////*/
        function permit(
            address owner,
            address spender,
            uint256 value,
            uint256 deadline,
            uint8 v,
            bytes32 r,
            bytes32 s
        ) public virtual {
            require(deadline >= block.timestamp, "PERMIT_DEADLINE_EXPIRED");
            // Unchecked because the only math done is incrementing
            // the owner's nonce which cannot realistically overflow.
            unchecked {
                address recoveredAddress = ecrecover(
                    keccak256(
                        abi.encodePacked(
                            "\\x19\\x01",
                            DOMAIN_SEPARATOR(),
                            keccak256(
                                abi.encode(
                                    keccak256(
                                        "Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"
                                    ),
                                    owner,
                                    spender,
                                    value,
                                    nonces[owner]++,
                                    deadline
                                )
                            )
                        )
                    ),
                    v,
                    r,
                    s
                );
                require(recoveredAddress != address(0) && recoveredAddress == owner, "INVALID_SIGNER");
                allowance[recoveredAddress][spender] = value;
            }
            emit Approval(owner, spender, value);
        }
        function DOMAIN_SEPARATOR() public view virtual returns (bytes32) {
            return block.chainid == INITIAL_CHAIN_ID ? INITIAL_DOMAIN_SEPARATOR : computeDomainSeparator();
        }
        function computeDomainSeparator() internal view virtual returns (bytes32) {
            return
                keccak256(
                    abi.encode(
                        keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"),
                        keccak256(bytes(name)),
                        keccak256("1"),
                        block.chainid,
                        address(this)
                    )
                );
        }
        /*//////////////////////////////////////////////////////////////
                            INTERNAL MINT/BURN LOGIC
        //////////////////////////////////////////////////////////////*/
        function _mint(address to, uint256 amount) internal virtual {
            totalSupply += amount;
            // Cannot overflow because the sum of all user
            // balances can't exceed the max uint256 value.
            unchecked {
                balanceOf[to] += amount;
            }
            emit Transfer(address(0), to, amount);
        }
        function _burn(address from, uint256 amount) internal virtual {
            balanceOf[from] -= amount;
            // Cannot underflow because a user's balance
            // will never be larger than the total supply.
            unchecked {
                totalSupply -= amount;
            }
            emit Transfer(from, address(0), amount);
        }
    }