안녕하세요 express 환경을 통해 스마트컨트랙트를 서버에서 실행하려고 합니다.
지갑 주소를 post method를 활용하여 사용자에게 받아오려고 하는데요,
현재 코드는 이렇습니다.
app.post("/smartcontract", upload.single("photo"), (req, res) => {
const keystore = fs.readFileSync(
"./keystore-0x405679e8548dd2dd53cecf5cce2a9b58f44943a7-2022-4-20.json",
"utf-8"
);
const keyring = caver.wallet.keyring.decrypt(keystore, "dlaghddnjs9^");
//console.log(keyring);
caver.wallet.add(keyring);
const NoAContract = new caver.klay.Contract(
abi,
"0x4B8035af8c66E42879E5AEfacac1DA914F0C5443"
);
console.log(NoAContract);
var byte = req.file.size;
//console.log(req.file.size);
var title = req.body.title;
//console.log(title);
var desc = req.body.description;
//console.log(desc);
var wallet = req.body.wallet;
//console.log(wallet);
NoAContract.methods
.uploadPhoto(byte, title, desc)
.send({
from: wallet,
to: "0x4B8035af8c66E42879E5AEfacac1DA914F0C5443",
gas: "8500000",
gasPrice: null,
})
.then(console.log("minted"))
.catch((error) => {
console.error(error);
});
var로 선언된 변수들에 값이 잘 넘어오는것은 확인되었으나, 아마 NoAContract.methods 이 부분에서 에러가 있는듯 한데요 catch로 에러를 잡아봐도 Error: Returned error: unknown account 이 에러밖에는 뜨지 않아서 질문합니다.