Solidity

在工廠模式下創建孩子時自動存錢

  • February 19, 2021

我正在實施工廠模式契約,在我的建構子上,我想在孩子被渲染後立即將錢存入我的孩子契約

  • 工廠 -
function newChild() {
    Child child = new Child(money);
}

–兒童契約–

address payable public spender;

constructor(uint256 _money) {
  address(this).transfer(_money) /*{from: spender}*/;
}

我的混音 IDE 對我大喊大叫,轉移僅在應付類型的地址上有效。顯然我在這裡做錯了,所以我的問題是當我的孩子出生時立即匯款的最佳方式是什麼?

我也想從一個特定的地址花掉這筆錢,現在就叫它花錢者吧。我如何從那個地址匯款

謝謝大家!

合約只能使用自己的乙太幣。它無法從其他地址獲取資金。

下面的程式碼應該做類似的事情。

// SPDX-License-Identifier: MIT
pragma solidity 0.7.4;

contract Factory {
   event NewChild(address child);

   // Make function payable to accept ethers on invocation
   function newChild(uint256 param) public payable {

       // Forward ethers received by function to Child
       Child cld = new Child{value: msg.value}(param);

       emit NewChild(address(cld));
   }
}

contract Child {
   uint256 public id;

   // Make constructor payable to receive ethers on creation
   constructor(uint256 param) public payable {
       id = param;
   }
}

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