{"version":3,"file":"mocks.cjs","sourceRoot":"","sources":["../../src/test/mocks.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Hex } from '@metamask/utils';\n\nimport type {\n  AccountSigner,\n  CustomPermission,\n  Erc20TokenPeriodicPermission,\n  Erc20TokenStreamPermission,\n  NativeTokenPeriodicPermission,\n  NativeTokenStreamPermission,\n  PermissionTypes,\n  StoredGatorPermission,\n} from '../types';\n\nexport const mockNativeTokenStreamStorageEntry = (\n  chainId: Hex,\n): StoredGatorPermission<AccountSigner, NativeTokenStreamPermission> => ({\n  permissionResponse: {\n    chainId: chainId as Hex,\n    address: '0xB68c70159E9892DdF5659ec42ff9BD2bbC23e778',\n    expiry: 1750291201,\n    isAdjustmentAllowed: true,\n    signer: {\n      type: 'account',\n      data: { address: '0x4f71DA06987BfeDE90aF0b33E1e3e4ffDCEE7a63' },\n    },\n    permission: {\n      type: 'native-token-stream',\n      data: {\n        maxAmount: '0x22b1c8c1227a0000',\n        initialAmount: '0x6f05b59d3b20000',\n        amountPerSecond: '0x6f05b59d3b20000',\n        startTime: 1747699200,\n        justification:\n          'This is a very important request for streaming allowance for some very important thing',\n      },\n      rules: {},\n    },\n    context: '0x00000000',\n    accountMeta: [\n      {\n        factory: '0x69Aa2f9fe1572F1B640E1bbc512f5c3a734fc77c',\n        factoryData: '0x0000000',\n      },\n    ],\n    signerMeta: {\n      delegationManager: '0xdb9B1e94B5b69Df7e401DDbedE43491141047dB3',\n    },\n  },\n  siteOrigin: 'http://localhost:8000',\n});\n\nexport const mockNativeTokenPeriodicStorageEntry = (\n  chainId: Hex,\n): StoredGatorPermission<AccountSigner, NativeTokenPeriodicPermission> => ({\n  permissionResponse: {\n    chainId: chainId as Hex,\n    address: '0xB68c70159E9892DdF5659ec42ff9BD2bbC23e778',\n    expiry: 1850291200,\n    isAdjustmentAllowed: true,\n    signer: {\n      type: 'account',\n      data: { address: '0x4f71DA06987BfeDE90aF0b33E1e3e4ffDCEE7a63' },\n    },\n    permission: {\n      type: 'native-token-periodic',\n      data: {\n        periodAmount: '0x22b1c8c1227a0000',\n        periodDuration: 1747699200,\n        startTime: 1747699200,\n        justification:\n          'This is a very important request for streaming allowance for some very important thing',\n      },\n      rules: {},\n    },\n    context: '0x00000000',\n    accountMeta: [\n      {\n        factory: '0x69Aa2f9fe1572F1B640E1bbc512f5c3a734fc77c',\n        factoryData: '0x0000000',\n      },\n    ],\n    signerMeta: {\n      delegationManager: '0xdb9B1e94B5b69Df7e401DDbedE43491141047dB3',\n    },\n  },\n  siteOrigin: 'http://localhost:8000',\n});\n\nexport const mockErc20TokenStreamStorageEntry = (\n  chainId: Hex,\n): StoredGatorPermission<AccountSigner, Erc20TokenStreamPermission> => ({\n  permissionResponse: {\n    chainId: chainId as Hex,\n    address: '0xB68c70159E9892DdF5659ec42ff9BD2bbC23e778',\n    expiry: 1750298200,\n    isAdjustmentAllowed: true,\n    signer: {\n      type: 'account',\n      data: { address: '0x4f71DA06987BfeDE90aF0b33E1e3e4ffDCEE7a63' },\n    },\n    permission: {\n      type: 'erc20-token-stream',\n      data: {\n        initialAmount: '0x22b1c8c1227a0000',\n        maxAmount: '0x6f05b59d3b20000',\n        amountPerSecond: '0x6f05b59d3b20000',\n        startTime: 1747699200,\n        tokenAddress: '0xB68c70159E9892DdF5659ec42ff9BD2bbC23e778',\n        justification:\n          'This is a very important request for streaming allowance for some very important thing',\n      },\n      rules: {},\n    },\n    context: '0x00000000',\n    accountMeta: [\n      {\n        factory: '0x69Aa2f9fe1572F1B640E1bbc512f5c3a734fc77c',\n        factoryData: '0x0000000',\n      },\n    ],\n    signerMeta: {\n      delegationManager: '0xdb9B1e94B5b69Df7e401DDbedE43491141047dB3',\n    },\n  },\n  siteOrigin: 'http://localhost:8000',\n});\n\nexport const mockErc20TokenPeriodicStorageEntry = (\n  chainId: Hex,\n): StoredGatorPermission<AccountSigner, Erc20TokenPeriodicPermission> => ({\n  permissionResponse: {\n    chainId: chainId as Hex,\n    address: '0xB68c70159E9892DdF5659ec42ff9BD2bbC23e778',\n    expiry: 1750291600,\n    isAdjustmentAllowed: true,\n    signer: {\n      type: 'account',\n      data: { address: '0x4f71DA06987BfeDE90aF0b33E1e3e4ffDCEE7a63' },\n    },\n    permission: {\n      type: 'erc20-token-periodic',\n      data: {\n        periodAmount: '0x22b1c8c1227a0000',\n        periodDuration: 1747699200,\n        startTime: 1747699200,\n        tokenAddress: '0xB68c70159E9892DdF5659ec42ff9BD2bbC23e778',\n        justification:\n          'This is a very important request for streaming allowance for some very important thing',\n      },\n      rules: {},\n    },\n    context: '0x00000000',\n    accountMeta: [\n      {\n        factory: '0x69Aa2f9fe1572F1B640E1bbc512f5c3a734fc77c',\n        factoryData: '0x0000000',\n      },\n    ],\n    signerMeta: {\n      delegationManager: '0xdb9B1e94B5b69Df7e401DDbedE43491141047dB3',\n    },\n  },\n  siteOrigin: 'http://localhost:8000',\n});\n\nexport const mockCustomPermissionStorageEntry = (\n  chainId: Hex,\n  data: Record<string, unknown>,\n): StoredGatorPermission<AccountSigner, CustomPermission> => ({\n  permissionResponse: {\n    chainId: chainId as Hex,\n    address: '0xB68c70159E9892DdF5659ec42ff9BD2bbC23e778',\n    expiry: 1750291200,\n    isAdjustmentAllowed: true,\n    signer: {\n      type: 'account',\n      data: { address: '0x4f71DA06987BfeDE90aF0b33E1e3e4ffDCEE7a63' },\n    },\n    permission: {\n      type: 'custom',\n      data: {\n        justification:\n          'This is a very important request for streaming allowance for some very important thing',\n        ...data,\n      },\n      rules: {},\n    },\n    context: '0x00000000',\n    accountMeta: [\n      {\n        factory: '0x69Aa2f9fe1572F1B640E1bbc512f5c3a734fc77c',\n        factoryData: '0x0000000',\n      },\n    ],\n    signerMeta: {\n      delegationManager: '0xdb9B1e94B5b69Df7e401DDbedE43491141047dB3',\n    },\n  },\n  siteOrigin: 'http://localhost:8000',\n});\n\nexport type MockGatorPermissionsStorageEntriesConfig = {\n  [chainId: string]: {\n    nativeTokenStream: number;\n    nativeTokenPeriodic: number;\n    erc20TokenStream: number;\n    erc20TokenPeriodic: number;\n    custom: {\n      count: number;\n      data: Record<string, unknown>[];\n    };\n  };\n};\n\n/**\n * Creates a mock gator permissions storage entry\n *\n * @param config - The config for the mock gator permissions storage entries.\n * @returns Mock gator permissions storage entry\n */\n/**\n * Creates mock gator permissions storage entries with unique expiry times\n *\n * @param config - The config for the mock gator permissions storage entries.\n * @returns Mock gator permissions storage entries\n */\nexport function mockGatorPermissionsStorageEntriesFactory(\n  config: MockGatorPermissionsStorageEntriesConfig,\n): StoredGatorPermission<AccountSigner, PermissionTypes>[] {\n  const result: StoredGatorPermission<AccountSigner, PermissionTypes>[] = [];\n  let globalIndex = 0;\n\n  Object.entries(config).forEach(([chainId, counts]) => {\n    if (counts.custom.count !== counts.custom.data.length) {\n      throw new Error('Custom permission count and data length mismatch');\n    }\n\n    /**\n     * Creates a number of entries with unique expiry times\n     *\n     * @param count - The number of entries to create.\n     * @param createEntry - The function to create an entry.\n     */\n    const createEntries = (\n      count: number,\n      createEntry: () => StoredGatorPermission<AccountSigner, PermissionTypes>,\n    ) => {\n      for (let i = 0; i < count; i++) {\n        const entry = createEntry();\n        entry.permissionResponse.expiry += globalIndex;\n        result.push(entry);\n        globalIndex += 1;\n      }\n    };\n\n    createEntries(counts.nativeTokenStream, () =>\n      mockNativeTokenStreamStorageEntry(chainId as Hex),\n    );\n\n    createEntries(counts.nativeTokenPeriodic, () =>\n      mockNativeTokenPeriodicStorageEntry(chainId as Hex),\n    );\n\n    createEntries(counts.erc20TokenStream, () =>\n      mockErc20TokenStreamStorageEntry(chainId as Hex),\n    );\n\n    createEntries(counts.erc20TokenPeriodic, () =>\n      mockErc20TokenPeriodicStorageEntry(chainId as Hex),\n    );\n\n    // Create custom entries\n    for (let i = 0; i < counts.custom.count; i++) {\n      const entry = mockCustomPermissionStorageEntry(\n        chainId as Hex,\n        counts.custom.data[i],\n      );\n      entry.permissionResponse.expiry += globalIndex;\n      result.push(entry);\n      globalIndex += 1;\n    }\n  });\n\n  return result;\n}\n"]}