import { Hex } from "viem"
import { AutomationsAgentData } from "./types"

/**
 * ERC20_TRANSFER_TOPIC is the keccak256 hash of the ERC20 Transfer event signature.
 * It is used to identify Transfer events in Ethereum logs.
 */
export const ERC20_TRANSFER_TOPIC: Hex =
  "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"

export const INITIAL_AUTOMATION_DATA: AutomationsAgentData = {
  PURGE: {
    amount: "",
    duration: 12,
    primaryToken: null,
    secondaryToken: null,
    slippage: "0",
    tradeSizeAmount: 0,
    selectedSlippage: "AUTO",
  },
  SURGE: {
    amount: "",
    duration: 12,
    primaryToken: null,
    secondaryToken: null,
    slippage: "0",
    tradeSizeAmount: 0,
    selectedSlippage: "AUTO",
  },
}

export const GNOSIS_SAFE_ABI = [
  {
    constant: true,
    inputs: [],
    name: "getOwners",
    outputs: [{ name: "", type: "address[]" }],
    payable: false,
    stateMutability: "view",
    type: "function",
  },
  {
    constant: true,
    inputs: [],
    name: "getThreshold",
    outputs: [{ name: "", type: "uint256" }],
    payable: false,
    stateMutability: "view",
    type: "function",
  },
  {
    inputs: [
      { internalType: "address", name: "start", type: "address" },
      { internalType: "uint256", name: "pageSize", type: "uint256" },
    ],
    name: "getModulesPaginated",
    outputs: [
      { internalType: "address[]", name: "array", type: "address[]" },
      { internalType: "address", name: "next", type: "address" },
    ],
    stateMutability: "view",
    type: "function",
  },
] as const
