getFactoidAddressRcdHashPkeyFromPrivateFs function
Factoid
getFactoidAddressRcdHashPkeyFromPrivateFs(
- String fsAddress
)
Implementation
Factoid getFactoidAddressRcdHashPkeyFromPrivateFs(String fsAddress) {
Factoid f = Factoid();
if (fsAddress.length != 52) {
print("invalid factoid address length");
return f;
}
if (!fsAddress.startsWith("Fs")) {
print("invalid factoid address prefix: $fsAddress");
return f;
}
Uint8List fsPrefix = [0x64, 0x78].asUint8List();
var decodedFS = base58.decode(fsAddress);
if (!( ListEquality().equals(decodedFS.sublist(0, 2), fsPrefix))) {
print("invalid factoid base58 encoding prefix: $fsAddress");
return f;
}
var checksumPre = sha256.convert(decodedFS.sublist(0, 34));
var checksum = sha256.convert(checksumPre.bytes.asUint8List()).bytes.asUint8List();
if( !(ListEquality().equals(decodedFS.sublist(34), checksum.sublist(0,4)) )){
print("invalid checksum on factoid address: $fsAddress");
return f;
}
var seed = decodedFS.sublist(2, 34);
var keyPair = Ed25519Keypair.fromSeed(seed);
var rcdHash = getRCDHashFromPublicKey(keyPair.publicKey, 1);
var faAddress = getFactoidAddressFromRCDHash(rcdHash);
Factoid f2 = Factoid();
f2..faAddress = faAddress
..keypair = keyPair
..rcdHash = rcdHash;
return f2;
}