Solidity

Solidity 資金轉移正在重定向到另一個地址

  • January 18, 2022

我正在嘗試使用以下程式碼穩定地發送資金

/ SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.7.0 <0.9.0;

contract SendEther
{
   function sendAmount() payable public
   {
       address _to = 0x90E3EC58Eb437204ad071339d6CE97740e7eadd0;
       payable(_to).transfer(msg.value);
   }
}

但是,我在 metamask 錢包上得到了一個完全不同的地址。請在此處查看元遮罩錢包發件人地址

我推測前端正在嘗試呼叫contract.SendAmount{value: ???}(),而 metamask 正在要求您批准對契約的呼叫。所以你看到的地址實際上是合約地址。

您不需要批准合約函式中的每個單獨操作,因此您永遠不會在元遮罩中看到硬編碼_to的地址。

合約執行的轉賬通常稱為“內部交易”。

不幸的是 Metamask 不支持顯示內部交易。

在您的情況下,它顯示了執行sendAmount函式的契約互動。

引用自:https://ethereum.stackexchange.com/questions/119220