체인의정석

create2 & create3에서의 Owner msg.sender 처리 본문

블록체인/Solidity

create2 & create3에서의 Owner msg.sender 처리

체인의정석 2024. 3. 28. 14:29
728x90
반응형

https://forum.openzeppelin.com/t/msg-sender-isnt-the-initiator-in-a-contract-thats-created-by-another-contract/37330/5

 

`msg.sender` isn't the initiator in a contract that's created by another contract

The situation you've described is a common challenge when using factory or deployer contracts in combination with other contracts that rely on msg.sender for initial setup, especially when the desired behavior is to assign ownership or mint tokens to the o

forum.openzeppelin.com

상황 : create3에서 배포한 함수의 owner 가 msg.sender가 아님

1. 일반적인 인터널 tx가 아닌 create함수를 사용하는 경우 msg.sender가 배포한 컨트렉트 주소가 됨

2. tx.origin을 써서 고칠수도 있지만 해당 부분은 모호하기에 보안적으로 안좋을 수 있다.

3. constructor에서 명시적으로 owner를 받아오는것이 중요

=> create3에서 owner를 생성자에서 받아오도록 설정

728x90
반응형
Comments