안녕하세요. web3j-ext를 이용해서 FeeDelegatedSmartContractExcution을 테스트하고 있습니다.
기존에는 Caver-java를 이용해서 성공해봤는데 web3j-ext로 바꿔서 호출해보려고 합니다
Function을 encoded하고 FeeDelegatedSmartContractExcution객체를 만들고 sender와 feepayer로 서명을 하려고 하는데 privateKey를 어떻게 가져와야하는지 모르겠습니다
// 보내는 지갑 Credentials
KlayCredentials credentials = KlayCredentials.create(testPrivateKey);
// 수수료 지갑 Credentials
String feePayerPrivateKey = keyStoreTools.getFeePayerPrivate();
KlayCredentials feePayerCredentials = KlayCredentials.create(feePayerPrivateKey);
FeeDelegatedSmartContractExecution fdsc = new FeeDelegatedSmartContractExecution.Builder()
.setFrom(credentials.getAddress())
.setTo(nftAddress)
.setValue(BigInteger.ZERO)
.setGas(BigInteger.valueOf(3000000))
.setGasPrice(BigInteger.valueOf(25000000000L)) // 25 Gwei
.setInput(encodedFunction).build();
fdsc.sign(credentials);
fdsc.signAsFeePayer(feePayerCredentials);
함수는 이렇게 구현하였습니다.
정확하게 확인하려고
KlayCredentials credentials = KlayCredentials.create(testPrivateKey);
log.info("======== credentials : {}", objectToString(credentials.getEcKeyPair().getPrivateKey().toString(16)));
로 확인했는데 privateKey가 "0x0ABCD~~"인데 "ABCD~~"로 로그가 남아서 문의드립니다.