Baobab 넷에서 smart contract 함수 호출 시 에러

안녕하세요 테스트로 KIP17Full을 상속받아서 간단히 smart contract 작성 후 baobab에 배포한 뒤, caver를 이용해서 테스트를 하려고 하는데요.

다음의 코드 실행 시 Unknown account 에러가 발생합니다.
addr은 제 지갑의 퍼블릭 주소이며 valid한 주소인데, 혹시 어느 부분이 문제가 될까요?

const Caver = require(“caver-js”);
const testNetURI = “https://api.baobab.klaytn.net:8651/”;
const caver = new Caver(testNetURI);
const networkID = “1001”;
const KIP17HyperContract = require("…/build/contracts/KIP17Test.json");

const addr = “0x1d8089116adfd6558ffafe67e381e644962cad2b”;

async function testMint() {
const deplyedNetworkAddress = KIP17TestContract.networks[networkID].address;
const contract = new caver.klay.Contract(
KIP17TestContract.abi,
deplyedNetworkAddress
);

console.log(contract);

ret = await contract.methods
.mintNFT(“ipfs://valid-value”)
.send({
from: addr,
gas: “200000”,
});
console.log(ret);
}

testMint();

안녕하세요

보내주신 코드를 보니 nodejs환경인 것 같습니다.

트랜잭션을 보낼때 서명을 위해서 keyring을 추가해주셔야합니다.

추가하는 방법은 아래 클레이튼 미디엄에 나와있습니다.

답변 감사드립니다. 키링 생성을 보니, 퍼블릭 주소와 프라이빗 키 모두 필요하던데, 민팅 함수를 호출하는 사용자의 프라이빗 키에 대한 접근은 불가능하지 않나요?

브라우저에서 실행하시는 거라면

Caver를 생성하실때

new Caver(window.klaytn) 으로 생성하시면 됩니다.

아래 답변 링크 참고 부탁드립니다.

1 Like