Caver-js를 통해서 React에서 Bapp작업을 진행중에 있습니다.
다름이 아니라 Json_Rpc에러가 발생을 해서 질문을 남기게 됩니다.
바쁘신 와중에 혹시라도 가능하시다면 답변 부탁드리겠습니다.
------ Contract ------
function Mypage_MyMap(address _address)
public
view
returns (string[] memory)
{
string[] memory MyMap = new string[](Total_Owner);
uint256 index = 0;
for (uint256 i = 0; i < Total_MapAmount; i++) {
if (Map_Owner[i].Owner == _address) {
MyMap[index] = Map_Owner[i].Map_name;
index++;
}
}
return MyMap;
}
사용하고자 하는 Solidity함수 입니다.
보이시는 바와 같이 view함수로써 Remix에서는 정상적으로 작동을 하고 있습니다.
이후 React에서 컨트랙트를 만들고 해당 컨트랙트를 사용하려고 합니다.
---- React -----
export const Map_Contract = async () => {
return await Get_Map_Data().then(async (result) => {
return await new caver.klay.Contract(result[1], result[0]).methods;
});
};
- 일단 abi와 CA값을 받아와서 컨트랙트를 만들어 주고 있고
Map_Contract().then(async (result) => {
console.log(result);
const My_Map_List = await result.Mypage_MyMap(Player).call();
// console.log(My_Map_List);
});
- 해당 함수를 불러와서 활용을 하고자 합니다.
이떄 사용 가능한 함수들을 보기위해서 result를 찍어보았을떄에는 컨트랙트에 작성한 함수들이 정상적으로 콘솔에 보이는 상태 입니다.
하지만 call()을 통해서 view함수를 실행을 시키면 json-rpc error가 발생을 합니다.
다른 컨트랙트의 view함수를 실행시켰을떄에는 정상적으로 표현이 되지만 유독 저 컨트랙트의 view함수만이 작동을 하고 있지 않습니다.
- 에러가 발생하는 컨트랙트의 view함수가 아닌 부분은 정상적으로 작동을 하고 있습니다.
- 또한 Remix에서는 View함수도 정상적으로 출력이 되고 있고요
사실 이런 일부분의 사진만을 보고 오류를 잡는 행위가 어렵다고 생각을 하지만
caver-js의 버전을 최신버전으로 변경을 하여도 오류가 발생을 하여서 다운그레이드 해보았지만 마찬가지로 오류가 발생을 하고 있습니다.
const caver = new Caver(window.Klaytn)을 사용하고 있습니다.
----- 버전 ----
caver-js : 1.5.0
react-scripts : 4.0.3
긴글 읽어 주셔서 감사합니다.