제목에서 문의 드린 바와 같이, caver-js에서 web socket으로 연결 후 caver.wallet.keyring.decrypt 수행 시 ‘Cannot read property ‘wallet’ of null’ 에러가 발생합니다.
endpoint 설정은 아래와 같습니다.
WS_ENABLE=1 # if this is set, the following options will be used
WS_API=“klay,rpc,net,web3” # available apis: admin,debug,klay,miner,net,personal,rpc,txpool,web3
WS_ADDR=“0.0.0.0”
WS_PORT=8552
WS_ORIGINS="*"
caver object 생성은 아래와 같이 수행했습니다.
let caver = new Caver(ws://${process.env.PROVIDER_INFO});
(process.env.PROVIDER_INFO는 endpoint-IP:8552 로 설정했습니다.)
안녕하세요.
websocket provider 를 사용하실 때에는 const caver = new Caver(new Caver.providers.WebsocketProvider(websocketURL)) 이런식으로 별도로 websocket provider를 생성한 뒤에 Caver 생성자에 전달해야 합니다.
혹시 caver-java에서 websocket으로 연결하려면 고려해야 할 사항이 있을까요?
Caver caver = new Caver(“ws://node-url:8552”);
로 하니 아래 서명하는 코드에서
caver.wallet.sign(keyring.getAddress(), smartContractDeploy);
다음과 같은 에러가 발생합니다.
Invalid response received: 405; Method Not Allowed
org.web3j.protocol.exceptions.ClientConnectionException: Invalid response received: 405; Method Not Allowed