如何获取Solana钱包地址私钥的正确格式?

问题描述 投票:0回答:1

我正在使用 Laravel 并尝试使用 Solana 区块链 当我尝试生成钱包地址时,我得到了正确的地址,但私钥的格式不正确 这是我下面的功能

public function generateWallet() { 
    try { 
        // Initialize the curve and generator 
        $adapter = EccFactory::getAdapter(); $generator = EccFactory::getNistCurves()->generator256();

        // Generate private key
        $privateKey = $generator->createPrivateKey();

        // Generate public key
        $publicKey = $privateKey->getPublicKey();

        // Serialize keys to DER format
        $privateKeySerializer = new DerPrivateKeySerializer($adapter);
        $publicKeySerializer = new DerPublicKeySerializer();

        $privateKeyDer = $privateKeySerializer->serialize($privateKey);
        $publicKeyDer = $publicKeySerializer->serialize($publicKey);

        // Base58 encode the 32-byte public key
        $publicKeyBytes = str_pad(gmp_export($publicKey->getPoint()->getX()), 32, "\0",     STR_PAD_LEFT);
        $base58 = new Base58();
        $walletAddress = $base58->encode($publicKeyBytes);
        return [
            'private_key' => bin2hex($privateKeyDer),
            'public_key' => bin2hex($publicKeyDer),
            'address' => $walletAddress
        ];
    } catch (\Throwable $th) {
        return [$th->getMessage()];
    }
}

我想获得一个正确的私钥,然后我可以用它来连接钱包,发送交易和类似的东西

我尝试询问chatgpt,但没有有用的答案

php laravel cryptography web3js solana
1个回答
0
投票

我认为您可以使用此代码以十六进制格式查看您的私钥

private_key_bytes = bytes.fromhex(privatekey) 打印(私钥字节)

您可以使用十六进制格式登录幻像上的钱包地址,以防您的自动交易签名失败..

应该看起来像这样

ee6abb1689094e6763b93c9d9b1b220788643a9938bf6be66c441c7d2b3c3e94 b5ac482de4c8c1e9957c7bd7dc1e3d8e45ee8c6667e7c5574b9b882a6c2bd18e

对于自动签名,我相信您必须将私钥编码为 Base64 并在签名期间对其进行解码

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.