Résultats erronés de l'encodage base58 dans SWIFT de la graine de racine mnémonique ?
J’ai besoin d’aide pour les résultats de la fonction base58. J’essaie d’obtenir la bonne clé racine (clé privée étendue) de la phrase mnémonique de 24 mots. J’ai la bonne semence de cette phrase, et maintenant j’ai besoin d’obtenir une clé privée étendue au format convivial, compatible pour l’importation vers d’autres portefeuilles, qui ressemble à ceci :
Mais à la place j’obtiens ceci :
io/bip39/
Mon code rapide ci-dessous, peut-être que je fais quelque chose de mal? S’il vous plaît aider, merci.
// Convertir le type de réseau en octets
let networkType = withUnsafeBytes(of : 0x0488ADE4.bigEndian, Array.init)
laisser la profondeur : UInt8 = 0x00
laissez parentFingerprint: UInt8 = 0x00000000
laissez keyIndex : UInt8 = 0x00000000
// Préparer le tableau pour les octets
var dataToserialize : =
// Ajout de 4 octets de type réseau
dataToserialize.append(octet)
// Ajoute 1 octet de profondeur
dataToserialize.append(profondeur)
// Ajout de 4 octets de l’empreinte du parent
dataToserialize.append(parentFingerprint)
// Ajout de 4 octets de l’index de clé actuel
dataToserialize.append(keyIndex)
// Ajoute des octets de code chaîne
dataToserialize.append(octet)
// Ajouter la clé privée avec 0x00 octet, car elle devrait avoir une longueur de 33 octets
var privateKeyPrepended : =
privateKeyPrepended.append(byte)
// Ajout de la clé privée ajoutée aux données à sérialiser
dataToserialize.append(octet)
// Double SHA256 le résultat pour la somme de contrôle
renvoie SHA256.hash (données : données2)
// Ajout de 4 octets de somme de contrôle
dataToserialize.append(octet)
print(dataToserialize)
//
print(dataToserialize.count) // 80
print(Base58.base58Encode(dataToserialize))
// Obtenez ceci :
//
// Devrait obtenir ceci :
//
}