export const colors = {
  orange: () => "var(--orange)",
  white: () => "var(--white)",
  gray: () => "var(--gray)",
  sky: () => "var(--sky)",
  cyan: () => "var(--cyan)",
  teal: () => "var(--teal)",
  yellow: () => "var(--yellow)",
  avocado: () => "var(--avocado)",
  amber: () => "var(--amber)",
  green: () => "var(--green)",
  emerald: () => "var(--emerald)",
  lime: () => "var(--lime)",
  rose: () => "var(--rose)",
  pink: () => "var(--pink)",
  fuchsia: () => "var(--fuchsia)",
  purple: () => "var(--purple)",
  violet: () => "var(--violet)",
  indigo: () => "var(--indigo)",
  blue: () => "var(--blue)",
  red: () => "var(--red)",
};

export const txColors = /** @type {const} */ ({
  v1: colors.blue(),
  v2: colors.violet(),
  v3: colors.fuchsia(),
  otherVersion: colors.gray(),
  rbf: colors.orange(),
  noRbf: colors.gray(),
  oneInput: colors.yellow(),
  multiInput: colors.amber(),
  oneOutput: colors.emerald(),
  multiOutput: colors.green(),
  p2pk: colors.yellow(),
  p2pkh: colors.amber(),
  p2sh: colors.orange(),
  p2wpkh: colors.emerald(),
  p2wsh: colors.green(),
  taproot: colors.violet(),
  p2a: colors.cyan(),
  baremult: colors.fuchsia(),
  opReturn: colors.red(),
  empty: colors.gray(),
  unknown: colors.gray(),
  behavior: {
    cpfpParent: colors.sky(),
    cpfpChild: colors.blue(),
    coinjoin: colors.violet(),
    consolidation: colors.yellow(),
    batchPayout: colors.green(),
  },
  data: {
    fakePubkey: colors.yellow(),
    fakeScripthash: colors.amber(),
    inscription: colors.fuchsia(),
    annex: colors.violet(),
    dust: colors.red(),
  },
  sighash: {
    all: colors.blue(),
    none: colors.red(),
    single: colors.orange(),
    default: colors.violet(),
    anyoneCanPay: colors.fuchsia(),
  },
  policy: {
    nonstandard: colors.red(),
  },
  opReturnKind: {
    runes: colors.orange(),
    veriBlock: colors.blue(),
    omni: colors.violet(),
    stacks: colors.purple(),
    blockstack: colors.indigo(),
    colu: colors.cyan(),
    openAssets: colors.sky(),
    komodo: colors.amber(),
    coinSpark: colors.yellow(),
    poet: colors.fuchsia(),
    docproof: colors.emerald(),
    openTimestamps: colors.green(),
    factom: colors.lime(),
    eternityWall: colors.avocado(),
    memo: colors.pink(),
    bitproof: colors.rose(),
    ascribe: colors.teal(),
    stampery: colors.blue(),
    epobc: colors.violet(),
    bareHash: colors.white(),
    text: colors.cyan(),
    empty: colors.gray(),
    unknown: colors.gray(),
  },
  opReturnPolicy: {
    standard: colors.green(),
    oversized: colors.orange(),
    multiple: colors.yellow(),
    preV30Nonstandard: colors.red(),
  },
});
