Fee Delegate했는지를 콘트랙트(sol)에서 체크하는 방법이 있을까요?

((사용자)) ----- signTransaction ----- ((Fee Delegator)) ----- sendSignedTransaction ----- ((Contract))

사용자가 구매를 위한 사이닝을 하면 Fee delegator가 대납을 해서 콘트랙트에 구매 트랜잭션을 날리도록 하고 있는데요.

혹시 콘트랙트에서 보낸 트랜잭션이 fee delegator가 보낸 트랜잭션임을 확인할 방법이 있을까요?
트랜잭션을 보내는 방식이

  1. 사용자가 직접 수수료를 내고 트랜잭션을 보낼수도 있고
  2. Fee delegator가 수수료를 내고 트랜잭션을 보내는 방식일수 있는데

알고있는 2번만 허용하도록 트랜잭션에서 강제하고자 해서 질문드립니다

첨부드린 링크 함수를 컨트랙트에 추가하시면 비용을 지불한 주소를 얻으실수 있을것으로 생각됩니다.

미리 컴파일된 컨트랙트(Precompiled Contracts) - Klaytn Docs KO

그 후 require문을 통해 payer가 특정 지갑인 경우 2번으로 분류하시면 될것 같습니다.
혹시 이 방법으로 해결이 안되시는 경우, 개발팀에게 다시 문의드리도록 하겠으니 결과 공유해주시면
감사드리겠습니다…

1 Like