caver.rpc.klay.accountCreated 함수의 동작 방식

생성한 account 를 확인하고 구동하는 것을 만들려고 하는데
caver.rpc.klay.accountCreated 함수의 동작 방식에 대해서 문서와 다른 점이 보입니다.

caver.wallet.keyring.generate()와 caver.klay.accounts.create()를 통해 만들어진 계정의 주소를 확인하기 위해서

caver.rpc.klay.accountCreated(‘0x46541d93ff0C0e7A91A59CC45BB92911Ec37E9e6’).then(console.log)
Promise { }

false

와 같이 테스트하면 false가 나타납니다.

그래서 기존에 만들어서 사용하던 account 주소들을 사용하여 테스트하니
거래 내역이 없는 경우에는 전부 false가 나타나고 거래 내역이 없는 경우에는 false가 나타납니다.
이는 테스트넷과 메인넷에서 동일하게 동작합니다.

그래서 이 함수는 거래내역을 가지고 있는지 여부를 확인하는 함수가 맞는 듯 합니다.
계정의 생성 여부는 확인되지 않는 것으로 보입니다.

caver.wallet.keyring.generate() 함수나 caver.klay.accounts.create 모두 Klaytn 네트워크와는 별도로 랜덤한 계정을 하나 생성하는 것입니다. 랜덤한 계정을 생성했다고 해서 이게 Klaytn 네트워크에 생성되었다는 의미는 아닙니다.

하지만 Klaytn 에는 해당 계정이 state에 기록된 것이 아니기 때문에, Klaytn에서는 계정을 찾을 수 없습니다. 해당 계정이 KLAY를 받거나 전송한 내역이 추가되는 경우 Klaytn의 state에도 기록되기 때문에 true를 리턴합니다.

그러면 생성 이후에 거래 내역을 하나 만들어야 실질적으로 네트워크에 전송되니 임의의 거래 내역이 하나라도 만들어져야겠군요.

어떤 용도의 사용인지는 모르지만 네트워크에 기록되지 않았다고 사용할 수 없다는 것은 아닙니다.

랜덤 생성한 키링 및 계정은 바로 사용할 수 있습니다. 다만 거래 내역이 없어서 아직 Klaytn에 기록되지 않은 것입니다

caver.rpc.klay.accountCreated 함수를 이용하여 이미 만들어진 계정임을 확인하려고 하였는데
용도가 좀 달라서 헷갈린 것입니다.
계정이 생성된 이후 거래가 이루어지지 않은 계정이 생성된 것인지 아직 생성되지 않은 계정인지 확인하는 것이 필요해서 문의 드린 것입니다.
caver.rpc.klay.accountCreated 함수로는 거래내역이 없는 계정은 생성된 계정인지 확인이 안되니 다른 방법을 찾아야 할 것 같습니다.

계정은 생성된 것이지만 해당 계정의 거래내역이 없어서 네트워크에 기록되지 않았을 뿐입니다

다시 말씀드리자면 계정을 랜덤으로 생성하는 함수는 네트워크에 어떠한 것도 전송하지 않습니다. 다만 사용할 수 있는 계정을 랜덤으로 하나 생성해 주는 것이며, 이 계정이 거래내역을 일으키면 네트워크에 기록됩니다.