solana.py - get_token_accounts_by_owner

김병훈·2022년 6월 28일
0

blockchain

목록 보기
12/13
post-thumbnail

토큰전송할 때 입력받은 입금주소 validation 해결방안

  • token_account 주소를 보여주지 않는게 , 유효성 검사가 더 편하다
    • 왜냐하면 wallet_address (owner) 주소만 받으면 get_token_accounts_by_ownerwallet_addresstoken_address 를 넣으면 n개의 토큰을 가지고 있다고 하더라도,
    • 입력한 token_address 와 연동된 associated_token_account 를 찾을 수 있기 때문이다.
  • get_account_infotoken_account 값을 넣어서 JSON 을 확인해본 결과 , 안에 token_address 가 존재하지 않았기 때문에 유효성 검사가 어렵다.

체크해볼 것

  • n개 이상의 토큰을 보유하고 있는 지갑주소를 get_token_accounts_by_owner 에 넣었을 때 res로 받은 JSON
  • 테스트 토큰만 가지고 있는 경우의 res 로 받은 JSON 형식이 같은지 여부 체크해야함

결과

  • 일치한다.

  • solana-cli 에 연동되어있는 주소는 이미 많은 테스트 토큰을 보유중이기 때문에 이 지갑으로 테스트를 해봤다. 많은 토큰을 가지고 있는 경우는 response로 이런 json을 받았고,

  • 테스트 토큰 하나만 보유하고 있는 devnet 지갑이 존재하여 wallet_address 값을 변경하여 다시 시도해봤다.

  • 같은 결과가 나왔다.

느낀점

  • 메인넷기준, 토큰출금페이지에서 입력한 입금주소가 이미 많은 토큰을 보유하고 있는 지갑의 주소라고 하더라도, token_addresswallet_addressget_accounts_by_owner 에 입력해주면 원하는 토큰과 연동되어있는 token_account 주소를 찾아서 spl_token_transfer를 할 때 transaction 필드 안 dest 값으로 넣어주면 전송이 가능하다는 것을 깨달았다.
profile
블록체인 개발자의 꿈을 위하여

0개의 댓글