小编Car*_*ega的帖子

如何使用 web3js 验证 Solana 钱包地址?

我正在尝试验证从用户那里获得的输入文本是否是有效的 Solana 地址。

根据 web3.js 文档,方法 .isOnCurve() 执行以下操作:

https://solana-labs.github.io/solana-web3.js/classes/PublicKey.html#isOnCurve

我已经设法让它与这段代码一起工作:

import {PublicKey} from '@solana/web3.js'

function validateSolAddress(address:string){
    try {
        let pubkey = new PublicKey(address)
        let  isSolana =  PublicKey.isOnCurve(pubkey.toBuffer())
        return isSolana
    } catch (error) {
        return false
    }
} 

function modalSubmit(modal: any){

  const firstResponse = modal.getTextInputValue(walletQuestFields.modal.componentsList[0].id)
 
  let isSolAddress = validateSolAddress(firstResponse)

  if (isSolAddress) {
    console.log('The address is valid')
  }else{
    console.log('The address is NOT valid')
  }
}
Run Code Online (Sandbox Code Playgroud)

但是当我传递 let pubkey = new PublicKey(address)一个与 solana 地址不相似的字符串时,它会抛出异常Error: Invalid public key input (PublikKey 需要一个 PublicKeyInitData: …

typescript web3js solana

8
推荐指数
2
解决办法
1万
查看次数

标签 统计

solana ×1

typescript ×1

web3js ×1