자습서 - 견고성을 갖춘 다른 계약에서 계약 생성

This tutorial is meant for those with a basic knowledge of Ethereum and smart contracts, who have some knowledge of Solidity.
The purpose of building this blog is to write down the detailed operation history and my memo for learning the dApps.
If you are also interested and want to get hands dirty, just follow these steps below and have fun!~



전제 조건


  • Remix

  • 시작하기



    먼저 Account라는 계약을 만듭니다.

    // SPDX-License-Identifier:MIT
    // Adjust your own solc
    pragma solidity ^0.8.14;
    
    contract Account {
        address public bank;
        address public owner;
    
        constructor (address _owner) payable {
            bank = msg.sender;
            owner = _owner;
        }
    }
    


    This contract Account has two state variables bank and owner and uses a payable constructor to initialize state variable owner.



    우리는 AccountFactory라는 또 다른 계약을 사용하여 계약 계정을 배포할 것입니다.

    ...
    contract AccountFactory {
        Account[] public accounts;
        function createAccount(address _owner) external payable {
            Account account = new Account{value: 111}(_owner);
            accounts.push(account);
        }
    }
    


    전체 계약 New.Sol:

    // SPDX-License-Identifier:MIT
    // Adjust your own solc
    pragma solidity ^0.8.14;
    
    contract Account {
        address public bank;
        address public owner;
    
        constructor (address _owner) payable {
            bank = msg.sender;
            owner = _owner;
        }
    }
    contract AccountFactory {
        Account[] public accounts;
        function createAccount(address _owner) external payable {
            Account account = new Account{value: 111}(_owner);
            accounts.push(account);
        }
    }
    


    We created an Account array accounts. When we deploy a new contract (using contract Account), we name it account and send 111 wei to this contract and push it into accounts. We make function createAccount payable since we want the newly created contract receive ETH.



    이제 Remix를 사용하여 스마트 계약을 배포하고 테스트할 시간입니다.
    계약 AccountFactory를 선택하고 배포를 클릭하여 배포합니다.


    200 Wei와 함께 현재 계정 주소(address(0))를 붙여넣고 createAccount를 클릭합니다.
    그런 다음 account[0]을 가져오기 위해 0을 입력하면 방금 배포한 계약 주소를 얻게 됩니다.



    이 계약 주소(accounts[0])를 복사하여 At Address에 붙여넣고 계약을 Account로 전환한 다음 At Address를 클릭합니다.


    생성자bank를 통해 상태 변수ownerAccount()로 값을 전송합니다.


    소유자는 계약 계정[0]을 생성한 주소이고 은행은 계약 AccountFactory의 주소인 msg.sender를 참조합니다.

    참조

    좋은 웹페이지 즐겨찾기