import { toHex } from '@lucid-evolution/lucid';
import { fromDataMultisig, Multisig } from '../../types/multisig';
import { Data } from '@evolution-sdk/evolution';

export function signersAllOf(multisig: Multisig): string[] {
  if ('Signature' in multisig) {
    return [toHex(multisig.Signature.keyHash)];
  } else {
    return multisig.AtLeast.authSignatories
      .map((signatory: Data.Data) => {
        try {
          return signersAllOf(fromDataMultisig(signatory));
        } catch {
          return [];
        }
      })
      .flat();
  }
}
