쓰기(수수료 위임)
스마트 컨트랙트를 실행하고 싶을 때 파이페이에 결제 요청을 포함하는 **"트랜잭션"**을 할 수 있습니다.
웹3에서 Kaia 기능을 추가하려면 @kaiachain/viem-ext 패키지를 가져옵니다.
Kaia 블록체인과의 읽기 전용 상호작용을 위해 퍼블릭 클라이언트를 초기화합니다.
Kairos 체인**, HTTP 전송, 계정으로 변환된 발신자의 개인 키로 구성된 createWalletClient를 사용하여 발신자 및 수수료 납부자 지갑을 설정합니다.
실행하려는 계약 주소를 to 필드에 설정하고 ABI를 설정합니다.
함수 이름과 파라미터를 encodeFunctionData 함수로 인코딩합니다.
발신자 계정, 수신자 주소, 전송할 값(이 예시에서는 0 KLAY), 트랜잭션 유형 **(TxType.SmartContractExecution)**을 지정하여 prepareTransactionRequest를 사용하여 스마트 컨트랙트 작성을 위한 트랜잭션 요청을 생성합니다.
지갑 클라이언트의 signTransaction 메서드로 트랜잭션에 서명합니다.
발신자는 klay_sendRawTransaction
을 사용하여 트랜잭션을 Kaia 블록체인에 제출하고, 그 결과(일반적으로 트랜잭션 해시)가 기록됩니다. 발신자가 거래 수수료를 지불합니다.
컨트랙트에서 동일한 setNumber
함수를 호출하기 위해 수수료 위임 트랜잭션(FeeDelegatedSmartContractExecution
)을 준비합니다. 설정은 비수수료 위임 거래와 비슷하지만 수수료 납부자가 거래에 서명하여 수수료를 부담합니다.
송금인이 먼저 거래에 서명하고 수수료 납부자가 서명을 추가하면 거래가 Kaia 블록체인에 제출됩니다.
퍼블릭 클라이언트를 사용하여 'number' 함수(상태를 수정하지 않는 보기 함수)를 호출하여 컨트랙트에서 숫자 변수 값을 읽습니다.