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)

Résultats erronés de l'encodage base58 dans SWIFT de la graine de racine mnémonique  ?

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  :

//

}