@fruitsjs/core
Version:
Principal package with functions and models for building Fruits Eco-Blockchain applications.
35 lines (28 loc) • 897 B
text/typescript
interface AddressParts {
prefix: string;
rs: string;
extension: string;
}
/**
* @internal
* Tokenizes a Reed-Solomon address
* @param address The address in Reed-Solomon format
* @return object with prefix, address and eventual extension
* @throws Error in case of invalid format
* @module core
*/
export const tokenizeReedSolomonAddress = (address: string): AddressParts => {
const tokens = address.split('-');
const isExtended = tokens.length === 6;
if (tokens.length < 5 || tokens.length > 7) {
throw new Error(`Invalid Reed-Solomon Address Format: ${address}`);
}
const prefix = tokens[0];
const extension = isExtended ? tokens[5] : '';
const rs = `${tokens[1]}-${tokens[2]}-${tokens[3]}-${tokens[4]}-${tokens[5]}-${tokens[6]}`;
return {
prefix,
rs,
extension
};
};