我正在尝试验证从用户那里获得的输入文本是否是有效的 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: …