@merkl/api 0.21.5 → 0.21.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -62,7 +62,7 @@ async function computeEventBasedPoolRewardsFromMostRecentStateSave(chainId, camp
62
62
  for (const [_, { value, params: _params }] of Object.entries(storedStates)) {
63
63
  distributedRewards += BN2Number(value.allTimeValue, 18);
64
64
  }
65
- distributedRewards = Math.max(distributedRewards, 1);
65
+ distributedRewards = distributedRewards === 0 ? 1 : distributedRewards;
66
66
  }
67
67
  catch {
68
68
  log.warn(`merklDynamic data - failed to decode state of event based on ${NETWORK_LABELS[chainId]}`);
@@ -84,16 +84,7 @@ export class EventBasedDynamicData {
84
84
  const { distributedRewards } = await computeEventBasedPoolRewardsFromMostRecentStateSave(chainId, campaign.campaignId, priceToken, decimalsCurrency0, campaign.campaignParameters.computeScoreParameters.computeMethod);
85
85
  const c = campaign;
86
86
  const amount = BN2Number(c.amount, c.campaignParameters.decimalsRewardToken);
87
- let multiplier = 1;
88
- try {
89
- const topicData = c.campaignParameters.topicToData[0];
90
- multiplier = BN2Number(topicData.multipliers[0], 12 + 9);
91
- }
92
- catch {
93
- // Current legacy fix for now, can be removed on the 01/05/25
94
- const topicData = c.campaignParameters.topicToData[0];
95
- multiplier = BN2Number(topicData.multiplier, 12 + 9);
96
- }
87
+ const multiplier = 1;
97
88
  const startTimestamp = BN2Number(c.startTimestamp, 0);
98
89
  const endTimestamp = BN2Number(c.endTimestamp, 0);
99
90
  const isLive = moment().unix() > startTimestamp && moment().unix() < endTimestamp;
@@ -24,9 +24,16 @@ async function getCompoundV2ForksVaults() {
24
24
  }
25
25
  const creationBlock = (await getContractCreationBlock(comptrollerAddress, providers[chainId])) ?? 0;
26
26
  let logs = [];
27
- const topic = compFork === CompFork.Venus && chainId === ChainId.ZKSYNC
28
- ? MARKET_SUPPORTED_EVENT_HASH
29
- : MARKET_LISTED_EVENT_HASH;
27
+ let topic;
28
+ if (compFork === CompFork.Venus && (chainId === ChainId.ZKSYNC || chainId === ChainId.SONIC)) {
29
+ topic = MARKET_SUPPORTED_EVENT_HASH;
30
+ }
31
+ else if (compFork === CompFork.Enclabs) {
32
+ topic = MARKET_SUPPORTED_EVENT_HASH;
33
+ }
34
+ else {
35
+ topic = MARKET_LISTED_EVENT_HASH;
36
+ }
30
37
  logs = await safeFetchLogs(chainId, [topic], [comptrollerAddress], creationBlock, toBlock);
31
38
  if (compFork === CompFork.Ionic && chainId === ChainId.MODE) {
32
39
  const isolatedIonicMarketUnitroller = "0x8Fb3D4a94D0aA5D6EDaAC3Ed82B59a27f56d923a";
@@ -1,5 +1,7 @@
1
1
  import { DynamicDataService } from "@/modules/v4/dynamicData/dynamicData.service";
2
+ import { TvlType } from "@db/api";
2
3
  import { ComposedType } from "@sdk";
4
+ import { all, create } from "mathjs";
3
5
  export class MultiLogTVLBuilder {
4
6
  async build(_computeChainId, campaigns) {
5
7
  const tvls = [];
@@ -10,6 +12,37 @@ export class MultiLogTVLBuilder {
10
12
  }
11
13
  if (mainComposedList.length > 1) {
12
14
  // TODO: handle multiple main composed campaigns
15
+ const tvlMapping = {};
16
+ const multipliers = {};
17
+ const tvlBreakdown = [];
18
+ for (const composedCampaign of mainComposedList) {
19
+ const composedCampaignTVL = (await DynamicDataService.update(composedCampaign.computeChainId, composedCampaign.campaignType, [composedCampaign], true))[0];
20
+ const tvlValue = typeof composedCampaignTVL.tvl === "string"
21
+ ? Number(composedCampaignTVL.tvl)
22
+ : composedCampaignTVL.tvl.total;
23
+ tvlMapping[composedCampaign.composedIndex] = tvlValue;
24
+ multipliers[composedCampaign.composedIndex] = Number(composedCampaign.composedMultiplier ?? 10 ** 9);
25
+ tvlBreakdown.push({
26
+ identifier: composedCampaign.campaignId,
27
+ type: TvlType.PROTOCOL,
28
+ value: Math.abs(tvlValue),
29
+ });
30
+ }
31
+ const config = {
32
+ number: "bigint",
33
+ };
34
+ const bigmath = create(all, config);
35
+ const scope = { tvlMapping, multipliers, BASE_9: Number(10 ** 9) };
36
+ const computeExpression = campaign.campaignParameters.composedCampaignsCompute.replace(/\d+/g, match => {
37
+ return tvlMapping[match] !== undefined ? `tvlMapping["${match}"] * multipliers["${match}"] / BASE_9` : "0";
38
+ });
39
+ const totalTvl = bigmath.evaluate(computeExpression, scope);
40
+ tvls.push({
41
+ campaign: campaign,
42
+ tvl: totalTvl,
43
+ tvlBreakdown,
44
+ });
45
+ continue;
13
46
  }
14
47
  const mainComposed = mainComposedList[0];
15
48
  if (mainComposed) {
@@ -539,7 +539,7 @@ main()
539
539
  .then(results => {
540
540
  const rejected = results.find(result => result.status === "rejected");
541
541
  if (rejected)
542
- throw new Error(`One or more promises were rejected: ${JSON.stringify(rejected.reason)}`);
542
+ throw new Error(`One or more promises were rejected: ${rejected.reason}`);
543
543
  process.exit(0);
544
544
  })
545
545
  .catch(err => {
@@ -157,6 +157,19 @@ export type partialConfigERC20 = {
157
157
  forwarders: ForwarderParameters<Forwarder>[];
158
158
  apr?: string;
159
159
  };
160
+ export type partialConfigERC20FixedAPR = {
161
+ computeChainId?: MerklChainId;
162
+ hooks?: (HookParameters<HOOK> | string)[];
163
+ campaignType: Campaign;
164
+ targetToken: string;
165
+ whitelist: string[];
166
+ blacklist: string[];
167
+ url?: string;
168
+ forwarders: ForwarderParameters<Forwarder>[];
169
+ apr: string;
170
+ targetTokenPricing: boolean;
171
+ rewardTokenPricing: boolean;
172
+ };
160
173
  export type partialConfigMultiLog = {
161
174
  composedCampaigns: GenericCampaignConfigComposed[];
162
175
  composedCampaignsCompute: string;
@@ -240,7 +253,7 @@ export type partialConfigLocker = {
240
253
  lockEvent: LockerEventSchema;
241
254
  unlockEvent: LockerEventSchema;
242
255
  };
243
- export type partialConfig = partialConfigERC20 | partialConfigMorpho | partialConfigCLAMM | partialConfigIonic | partialConfigCompoundV3 | partialConfigMultiLog | partialConfigLocker | partialConfigAirdrop;
256
+ export type partialConfig = partialConfigERC20 | partialConfigMorpho | partialConfigCLAMM | partialConfigIonic | partialConfigCompoundV3 | partialConfigMultiLog | partialConfigLocker | partialConfigAirdrop | partialConfigERC20FixedAPR;
244
257
  export declare const safeTemplate: {
245
258
  version: string;
246
259
  chainId: string;
@@ -13,8 +13,9 @@ export declare enum program {
13
13
  Angles = "Angles",
14
14
  Ronin = "Ronin",
15
15
  TAC = "TAC",
16
- HypuurFi = "HypuurFi",
17
- WorldChain = "WorldChain"
16
+ HypurrFi = "HypurrFi",
17
+ WorldChain = "WorldChain",
18
+ StableJack = "StableJack"
18
19
  }
19
20
  export declare enum roninCampaigns {
20
21
  Katana_WETH_RON_Ronin = "Katana WETH-RON Ronin 0x90f31f1907a4d1443a6aacdc91ac2312f91bafa7",
@@ -551,9 +552,6 @@ export declare enum tacCampaigns {
551
552
  TAC_Supply_ylbfBTCtac = "TAC Supply ylbfBTC.tac 0x0d1862e73a1430A5FD3245B47859c1BEcD6f3A1D",
552
553
  TAC_Supply_uTAC = "TAC Supply uTAC++ 0xAF87B90E8a3035905697E07Bb813d2d59D2b0951"
553
554
  }
554
- export declare enum HypurrFiCampaigns {
555
- HypurrFi_Borrow_Pooled_USDXL = "HypurrFi Borrow Pooled USDXL 0xa0399Ff8F46Ce6C2Cfee05C5F67307C7F390a439"
556
- }
557
555
  declare const AnglesInterfaceCampaigns: {
558
556
  "0x15E96CDecA34B9DE1B31586c1206206aDb92E69D": {
559
557
  campaignType: any;
@@ -1144,7 +1142,12 @@ declare const EtherlinkInterfaceCampaigns: {
1144
1142
  url: string;
1145
1143
  };
1146
1144
  };
1147
- declare const HypuurFiCampaignsInterface: {
1145
+ export declare enum HypurrFiCampaigns {
1146
+ test = "mock program with referral",
1147
+ hypurrfi = "hypurrfi",
1148
+ HypurrFi_Borrow_Pooled_USDXL = "HypurrFi Borrow Pooled USDXL 0xa0399Ff8F46Ce6C2Cfee05C5F67307C7F390a439"
1149
+ }
1150
+ declare const HypurrFiCampaignsInterface: {
1148
1151
  "mock program with referral": {
1149
1152
  campaignType: any;
1150
1153
  computeChainId: any;
@@ -1169,6 +1172,45 @@ declare const HypuurFiCampaignsInterface: {
1169
1172
  url: string;
1170
1173
  forwarders: never[];
1171
1174
  };
1175
+ hypurrfi: {
1176
+ campaignType: any;
1177
+ computeChainId: any;
1178
+ hooks: {
1179
+ hookType: any;
1180
+ key: string;
1181
+ chainId: any;
1182
+ contractAddress: string;
1183
+ contractState: any;
1184
+ boostForReferrer: any;
1185
+ valueForBoostForReferrer: number;
1186
+ boostForInvited: any;
1187
+ valueForBoostForInvited: number;
1188
+ defaultBoost: any;
1189
+ maximumBoostReferrer: number;
1190
+ maximumBoostInvited: number;
1191
+ cumulativeBoost: boolean;
1192
+ }[];
1193
+ targetToken: string;
1194
+ whitelist: never[];
1195
+ blacklist: never[];
1196
+ url: string;
1197
+ forwarders: never[];
1198
+ };
1199
+ "HypurrFi Borrow Pooled USDXL 0xa0399Ff8F46Ce6C2Cfee05C5F67307C7F390a439": {
1200
+ campaignType: any;
1201
+ computeChainId: any;
1202
+ distributionChainId: any;
1203
+ targetToken: string;
1204
+ rewardToken: string;
1205
+ creator: string;
1206
+ hooks: never[];
1207
+ whitelist: never[];
1208
+ blacklist: never[];
1209
+ forwarders: never[];
1210
+ rewardTokenPricing: boolean;
1211
+ targetTokenPricing: boolean;
1212
+ apr: string;
1213
+ };
1172
1214
  };
1173
1215
  declare const SwapxInterfaceCampaigns: {
1174
1216
  [key in swapxCampaigns]: partialConfig;
@@ -1617,7 +1659,26 @@ export declare enum WorldChainCampaigns {
1617
1659
  declare const WorldChainInterfaceCampaigns: {
1618
1660
  [key in WorldChainCampaigns]: partialConfig;
1619
1661
  };
1662
+ export declare enum StableJackCampaigns {
1663
+ StableJackPTstS = "StbleJack PT-stS 0xFCA91fEEe65DB34448A83a74f4f8970b5dddfa7c",
1664
+ StableJackPTwOS = "StbleJack PT-wOS 0xbe1B1dd422d94f9c1784FB9356ef83A29E1A8cFa",
1665
+ StableJackPTscUSD = "StbleJack PT-scUSD 0x11d686EF994648Ead6180c722F122169058389ee",
1666
+ StableJackPTscUSDRetroActive = "StbleJack PT-scUSD retroActive 0x11d686EF994648Ead6180c722F122169058389ee",
1667
+ StableJackPTstSPriceLow = "StbleJack PT-stS Price 0.41 0xFCA91fEEe65DB34448A83a74f4f8970b5dddfa7c",
1668
+ StableJackPTstSPriceMedium = "StbleJack PT-stS Price 0.53 0xFCA91fEEe65DB34448A83a74f4f8970b5dddfa7c",
1669
+ StableJackPTstSPriceHigh = "StbleJack PT-stS Price 0.6 0xFCA91fEEe65DB34448A83a74f4f8970b5dddfa7c",
1670
+ StableJackPTstSPriceVeryHigh = "StbleJack PT-stS Price 0.74 0xFCA91fEEe65DB34448A83a74f4f8970b5dddfa7c",
1671
+ StableJackPTstSPriceSuperHigh = "StbleJack PT-stS Price 0.84 0xFCA91fEEe65DB34448A83a74f4f8970b5dddfa7c",
1672
+ StableJackPTwOSPriceLow = "StbleJack PT-wOS Price 0.41 0xbe1B1dd422d94f9c1784FB9356ef83A29E1A8cFa",
1673
+ StableJackPTwOSPriceMedium = "StbleJack PT-wOS Price 0.53 0xbe1B1dd422d94f9c1784FB9356ef83A29E1A8cFa",
1674
+ StableJackPTwOSPriceHigh = "StbleJack PT-wOS Price 0.6 0xbe1B1dd422d94f9c1784FB9356ef83A29E1A8cFa",
1675
+ StableJackPTwOSPriceVeryHigh = "StbleJack PT-wOS Price 0.74 0xbe1B1dd422d94f9c1784FB9356ef83A29E1A8cFa",
1676
+ StableJackPTwOSPriceSuperHigh = "StbleJack PT-wOS Price 0.84 0xbe1B1dd422d94f9c1784FB9356ef83A29E1A8cFa"
1677
+ }
1678
+ declare const StableJackInterfaceCampaigns: {
1679
+ [key in StableJackCampaigns]: partialConfig;
1680
+ };
1620
1681
  export declare const MerklInterfaceCampaigns: {
1621
- [key in program]: typeof PufferInterfaceCampaigns | typeof ZkSyncInterfaceCampaigns | typeof ModeInterfaceCampaigns | typeof VicunaInterfaceCampaigns | typeof SonicmarketInterfaceCampaigns | typeof ReserveInterfaceCampaigns | typeof BeetsInterfaceCampaigns | typeof CeloInterfaceCampaigns | typeof EtherlinkInterfaceCampaigns | typeof SwapxInterfaceCampaigns | typeof AnglesInterfaceCampaigns | typeof RoninInterfaceCampaigns | typeof TACInterfaceCampaigns | typeof HypuurFiCampaignsInterface | typeof WorldChainInterfaceCampaigns;
1682
+ [key in program]: typeof PufferInterfaceCampaigns | typeof ZkSyncInterfaceCampaigns | typeof ModeInterfaceCampaigns | typeof VicunaInterfaceCampaigns | typeof SonicmarketInterfaceCampaigns | typeof ReserveInterfaceCampaigns | typeof BeetsInterfaceCampaigns | typeof CeloInterfaceCampaigns | typeof EtherlinkInterfaceCampaigns | typeof SwapxInterfaceCampaigns | typeof AnglesInterfaceCampaigns | typeof RoninInterfaceCampaigns | typeof TACInterfaceCampaigns | typeof HypurrFiCampaignsInterface | typeof WorldChainInterfaceCampaigns | typeof StableJackInterfaceCampaigns;
1622
1683
  };
1623
1684
  export {};
@@ -16,8 +16,9 @@ export var program;
16
16
  program["Angles"] = "Angles";
17
17
  program["Ronin"] = "Ronin";
18
18
  program["TAC"] = "TAC";
19
- program["HypuurFi"] = "HypuurFi";
19
+ program["HypurrFi"] = "HypurrFi";
20
20
  program["WorldChain"] = "WorldChain";
21
+ program["StableJack"] = "StableJack";
21
22
  })(program || (program = {}));
22
23
  export var roninCampaigns;
23
24
  (function (roninCampaigns) {
@@ -627,10 +628,6 @@ export var tacCampaigns;
627
628
  tacCampaigns["TAC_Supply_ylbfBTCtac"] = "TAC Supply ylbfBTC.tac 0x0d1862e73a1430A5FD3245B47859c1BEcD6f3A1D";
628
629
  tacCampaigns["TAC_Supply_uTAC"] = "TAC Supply uTAC++ 0xAF87B90E8a3035905697E07Bb813d2d59D2b0951";
629
630
  })(tacCampaigns || (tacCampaigns = {}));
630
- export var HypurrFiCampaigns;
631
- (function (HypurrFiCampaigns) {
632
- HypurrFiCampaigns["HypurrFi_Borrow_Pooled_USDXL"] = "HypurrFi Borrow Pooled USDXL 0xa0399Ff8F46Ce6C2Cfee05C5F67307C7F390a439";
633
- })(HypurrFiCampaigns || (HypurrFiCampaigns = {}));
634
631
  const AnglesInterfaceCampaigns = {
635
632
  [anglesCampaigns.Angles_supply_in_angles_liquid]: {
636
633
  campaignType: Campaign.ERC20_FIX_APR,
@@ -1010,12 +1007,14 @@ const EtherlinkInterfaceCampaigns = {
1010
1007
  url: "https://app.hanji.io/trade/0xbb6b01d94e3f6ebae8647cb56d544f57928ab758",
1011
1008
  },
1012
1009
  };
1013
- var HypuurFiCampaigns;
1014
- (function (HypuurFiCampaigns) {
1015
- HypuurFiCampaigns["test"] = "mock program with referral";
1016
- })(HypuurFiCampaigns || (HypuurFiCampaigns = {}));
1017
- const HypuurFiCampaignsInterface = {
1018
- [HypuurFiCampaigns.test]: {
1010
+ export var HypurrFiCampaigns;
1011
+ (function (HypurrFiCampaigns) {
1012
+ HypurrFiCampaigns["test"] = "mock program with referral";
1013
+ HypurrFiCampaigns["hypurrfi"] = "hypurrfi";
1014
+ HypurrFiCampaigns["HypurrFi_Borrow_Pooled_USDXL"] = "HypurrFi Borrow Pooled USDXL 0xa0399Ff8F46Ce6C2Cfee05C5F67307C7F390a439";
1015
+ })(HypurrFiCampaigns || (HypurrFiCampaigns = {}));
1016
+ const HypurrFiCampaignsInterface = {
1017
+ [HypurrFiCampaigns.test]: {
1019
1018
  campaignType: Campaign.ERC20,
1020
1019
  computeChainId: ChainId.HYPEREVM,
1021
1020
  hooks: [
@@ -1041,6 +1040,47 @@ const HypuurFiCampaignsInterface = {
1041
1040
  url: "",
1042
1041
  forwarders: [],
1043
1042
  },
1043
+ [HypurrFiCampaigns.hypurrfi]: {
1044
+ campaignType: Campaign.ERC20,
1045
+ computeChainId: ChainId.HYPEREVM,
1046
+ hooks: [
1047
+ {
1048
+ hookType: HOOK.REFERRALPROGRAM,
1049
+ key: "hypurrfi-0",
1050
+ chainId: ChainId.HYPEREVM,
1051
+ contractAddress: "0xD696E6b94cE79Fe9AAC288C0Fc761643219510B6",
1052
+ contractState: contractStateBoost.SYNCHRONIZED,
1053
+ boostForReferrer: boostingReferralFunction.PROPORTIONAL,
1054
+ valueForBoostForReferrer: 50000000,
1055
+ boostForInvited: boostingReferralFunction.PROPORTIONAL,
1056
+ valueForBoostForInvited: 50000000,
1057
+ defaultBoost: defaultReferralBoost.SCORE,
1058
+ maximumBoostReferrer: 0,
1059
+ maximumBoostInvited: 50000000,
1060
+ cumulativeBoost: false,
1061
+ },
1062
+ ],
1063
+ targetToken: "0xfCA0802cb10b3b134a91e07f03965f63eF4B23eA",
1064
+ whitelist: [],
1065
+ blacklist: [],
1066
+ url: "https://www.hypurr.fi/",
1067
+ forwarders: [],
1068
+ },
1069
+ [HypurrFiCampaigns.HypurrFi_Borrow_Pooled_USDXL]: {
1070
+ campaignType: Campaign.ERC20REBASEFIXAPR,
1071
+ computeChainId: ChainId.HYPEREVM,
1072
+ distributionChainId: ChainId.HYPEREVM,
1073
+ targetToken: "0xa0399Ff8F46Ce6C2Cfee05C5F67307C7F390a439",
1074
+ rewardToken: "0x05225a6416EDaeeC7227027E86F7A47D18A06b91",
1075
+ creator: "0xA9DdD91249DFdd450E81E1c56Ab60E1A62651701",
1076
+ hooks: [],
1077
+ whitelist: [],
1078
+ blacklist: [],
1079
+ forwarders: [],
1080
+ rewardTokenPricing: false,
1081
+ targetTokenPricing: false,
1082
+ apr: "365",
1083
+ },
1044
1084
  };
1045
1085
  const SwapxInterfaceCampaigns = {
1046
1086
  [swapxCampaigns.Swapx_beS_OS_beS_gauge_Swapx]: {
@@ -6799,6 +6839,193 @@ const HypurrFiInterfaceCampaigns = {
6799
6839
  apr: "365",
6800
6840
  },
6801
6841
  };
6842
+ export var StableJackCampaigns;
6843
+ (function (StableJackCampaigns) {
6844
+ StableJackCampaigns["StableJackPTstS"] = "StbleJack PT-stS 0xFCA91fEEe65DB34448A83a74f4f8970b5dddfa7c";
6845
+ StableJackCampaigns["StableJackPTwOS"] = "StbleJack PT-wOS 0xbe1B1dd422d94f9c1784FB9356ef83A29E1A8cFa";
6846
+ StableJackCampaigns["StableJackPTscUSD"] = "StbleJack PT-scUSD 0x11d686EF994648Ead6180c722F122169058389ee";
6847
+ StableJackCampaigns["StableJackPTscUSDRetroActive"] = "StbleJack PT-scUSD retroActive 0x11d686EF994648Ead6180c722F122169058389ee";
6848
+ StableJackCampaigns["StableJackPTstSPriceLow"] = "StbleJack PT-stS Price 0.41 0xFCA91fEEe65DB34448A83a74f4f8970b5dddfa7c";
6849
+ StableJackCampaigns["StableJackPTstSPriceMedium"] = "StbleJack PT-stS Price 0.53 0xFCA91fEEe65DB34448A83a74f4f8970b5dddfa7c";
6850
+ StableJackCampaigns["StableJackPTstSPriceHigh"] = "StbleJack PT-stS Price 0.6 0xFCA91fEEe65DB34448A83a74f4f8970b5dddfa7c";
6851
+ StableJackCampaigns["StableJackPTstSPriceVeryHigh"] = "StbleJack PT-stS Price 0.74 0xFCA91fEEe65DB34448A83a74f4f8970b5dddfa7c";
6852
+ StableJackCampaigns["StableJackPTstSPriceSuperHigh"] = "StbleJack PT-stS Price 0.84 0xFCA91fEEe65DB34448A83a74f4f8970b5dddfa7c";
6853
+ StableJackCampaigns["StableJackPTwOSPriceLow"] = "StbleJack PT-wOS Price 0.41 0xbe1B1dd422d94f9c1784FB9356ef83A29E1A8cFa";
6854
+ StableJackCampaigns["StableJackPTwOSPriceMedium"] = "StbleJack PT-wOS Price 0.53 0xbe1B1dd422d94f9c1784FB9356ef83A29E1A8cFa";
6855
+ StableJackCampaigns["StableJackPTwOSPriceHigh"] = "StbleJack PT-wOS Price 0.6 0xbe1B1dd422d94f9c1784FB9356ef83A29E1A8cFa";
6856
+ StableJackCampaigns["StableJackPTwOSPriceVeryHigh"] = "StbleJack PT-wOS Price 0.74 0xbe1B1dd422d94f9c1784FB9356ef83A29E1A8cFa";
6857
+ StableJackCampaigns["StableJackPTwOSPriceSuperHigh"] = "StbleJack PT-wOS Price 0.84 0xbe1B1dd422d94f9c1784FB9356ef83A29E1A8cFa";
6858
+ })(StableJackCampaigns || (StableJackCampaigns = {}));
6859
+ const StableJackInterfaceCampaigns = {
6860
+ [StableJackCampaigns.StableJackPTstS]: {
6861
+ campaignType: Campaign.ERC20_FIX_APR,
6862
+ computeChainId: ChainId.SONIC,
6863
+ targetToken: "0xFCA91fEEe65DB34448A83a74f4f8970b5dddfa7c",
6864
+ hooks: [],
6865
+ whitelist: [],
6866
+ blacklist: [],
6867
+ forwarders: [],
6868
+ targetTokenPricing: true,
6869
+ rewardTokenPricing: false,
6870
+ apr: "365",
6871
+ },
6872
+ [StableJackCampaigns.StableJackPTwOS]: {
6873
+ campaignType: Campaign.ERC20_FIX_APR,
6874
+ computeChainId: ChainId.SONIC,
6875
+ targetToken: "0xbe1B1dd422d94f9c1784FB9356ef83A29E1A8cFa",
6876
+ hooks: [],
6877
+ whitelist: [],
6878
+ blacklist: [],
6879
+ forwarders: [],
6880
+ targetTokenPricing: true,
6881
+ rewardTokenPricing: false,
6882
+ apr: "365",
6883
+ },
6884
+ [StableJackCampaigns.StableJackPTscUSD]: {
6885
+ campaignType: Campaign.ERC20_FIX_APR,
6886
+ computeChainId: ChainId.SONIC,
6887
+ targetToken: "0x11d686EF994648Ead6180c722F122169058389ee",
6888
+ hooks: [],
6889
+ whitelist: [],
6890
+ blacklist: [],
6891
+ forwarders: [],
6892
+ targetTokenPricing: true,
6893
+ rewardTokenPricing: false,
6894
+ apr: "365",
6895
+ },
6896
+ [StableJackCampaigns.StableJackPTscUSDRetroActive]: {
6897
+ campaignType: Campaign.ERC20_FIX_APR,
6898
+ computeChainId: ChainId.SONIC,
6899
+ targetToken: "0x11d686EF994648Ead6180c722F122169058389ee",
6900
+ hooks: [],
6901
+ whitelist: [],
6902
+ blacklist: [],
6903
+ forwarders: [],
6904
+ targetTokenPricing: false,
6905
+ rewardTokenPricing: false,
6906
+ apr: "365",
6907
+ },
6908
+ [StableJackCampaigns.StableJackPTstSPriceLow]: {
6909
+ campaignType: Campaign.ERC20_FIX_APR,
6910
+ computeChainId: ChainId.SONIC,
6911
+ targetToken: "0xFCA91fEEe65DB34448A83a74f4f8970b5dddfa7c",
6912
+ hooks: [],
6913
+ whitelist: [],
6914
+ blacklist: [],
6915
+ forwarders: [],
6916
+ targetTokenPricing: false,
6917
+ rewardTokenPricing: false,
6918
+ apr: (365 * 0.41).toString(),
6919
+ },
6920
+ [StableJackCampaigns.StableJackPTstSPriceMedium]: {
6921
+ campaignType: Campaign.ERC20_FIX_APR,
6922
+ computeChainId: ChainId.SONIC,
6923
+ targetToken: "0xFCA91fEEe65DB34448A83a74f4f8970b5dddfa7c",
6924
+ hooks: [],
6925
+ whitelist: [],
6926
+ blacklist: [],
6927
+ forwarders: [],
6928
+ targetTokenPricing: false,
6929
+ rewardTokenPricing: false,
6930
+ apr: (365 * 0.53).toString(),
6931
+ },
6932
+ [StableJackCampaigns.StableJackPTstSPriceHigh]: {
6933
+ campaignType: Campaign.ERC20_FIX_APR,
6934
+ computeChainId: ChainId.SONIC,
6935
+ targetToken: "0xFCA91fEEe65DB34448A83a74f4f8970b5dddfa7c",
6936
+ hooks: [],
6937
+ whitelist: [],
6938
+ blacklist: [],
6939
+ forwarders: [],
6940
+ targetTokenPricing: false,
6941
+ rewardTokenPricing: false,
6942
+ apr: (365 * 0.6).toString(),
6943
+ },
6944
+ [StableJackCampaigns.StableJackPTstSPriceVeryHigh]: {
6945
+ campaignType: Campaign.ERC20_FIX_APR,
6946
+ computeChainId: ChainId.SONIC,
6947
+ targetToken: "0xFCA91fEEe65DB34448A83a74f4f8970b5dddfa7c",
6948
+ hooks: [],
6949
+ whitelist: [],
6950
+ blacklist: [],
6951
+ forwarders: [],
6952
+ targetTokenPricing: false,
6953
+ rewardTokenPricing: false,
6954
+ apr: (365 * 0.74).toString(),
6955
+ },
6956
+ [StableJackCampaigns.StableJackPTstSPriceSuperHigh]: {
6957
+ campaignType: Campaign.ERC20_FIX_APR,
6958
+ computeChainId: ChainId.SONIC,
6959
+ targetToken: "0xFCA91fEEe65DB34448A83a74f4f8970b5dddfa7c",
6960
+ hooks: [],
6961
+ whitelist: [],
6962
+ blacklist: [],
6963
+ forwarders: [],
6964
+ targetTokenPricing: false,
6965
+ rewardTokenPricing: false,
6966
+ apr: (365 * 0.84).toString(),
6967
+ },
6968
+ [StableJackCampaigns.StableJackPTwOSPriceLow]: {
6969
+ campaignType: Campaign.ERC20_FIX_APR,
6970
+ computeChainId: ChainId.SONIC,
6971
+ targetToken: "0xbe1B1dd422d94f9c1784FB9356ef83A29E1A8cFa",
6972
+ hooks: [],
6973
+ whitelist: [],
6974
+ blacklist: [],
6975
+ forwarders: [],
6976
+ targetTokenPricing: false,
6977
+ rewardTokenPricing: false,
6978
+ apr: (365 * 0.41).toString(),
6979
+ },
6980
+ [StableJackCampaigns.StableJackPTwOSPriceMedium]: {
6981
+ campaignType: Campaign.ERC20_FIX_APR,
6982
+ computeChainId: ChainId.SONIC,
6983
+ targetToken: "0xbe1B1dd422d94f9c1784FB9356ef83A29E1A8cFa",
6984
+ hooks: [],
6985
+ whitelist: [],
6986
+ blacklist: [],
6987
+ forwarders: [],
6988
+ targetTokenPricing: false,
6989
+ rewardTokenPricing: false,
6990
+ apr: (365 * 0.53).toString(),
6991
+ },
6992
+ [StableJackCampaigns.StableJackPTwOSPriceHigh]: {
6993
+ campaignType: Campaign.ERC20_FIX_APR,
6994
+ computeChainId: ChainId.SONIC,
6995
+ targetToken: "0xbe1B1dd422d94f9c1784FB9356ef83A29E1A8cFa",
6996
+ hooks: [],
6997
+ whitelist: [],
6998
+ blacklist: [],
6999
+ forwarders: [],
7000
+ targetTokenPricing: false,
7001
+ rewardTokenPricing: false,
7002
+ apr: (365 * 0.6).toString(),
7003
+ },
7004
+ [StableJackCampaigns.StableJackPTwOSPriceVeryHigh]: {
7005
+ campaignType: Campaign.ERC20_FIX_APR,
7006
+ computeChainId: ChainId.SONIC,
7007
+ targetToken: "0xbe1B1dd422d94f9c1784FB9356ef83A29E1A8cFa",
7008
+ hooks: [],
7009
+ whitelist: [],
7010
+ blacklist: [],
7011
+ forwarders: [],
7012
+ targetTokenPricing: false,
7013
+ rewardTokenPricing: false,
7014
+ apr: (365 * 0.74).toString(),
7015
+ },
7016
+ [StableJackCampaigns.StableJackPTwOSPriceSuperHigh]: {
7017
+ campaignType: Campaign.ERC20_FIX_APR,
7018
+ computeChainId: ChainId.SONIC,
7019
+ targetToken: "0xbe1B1dd422d94f9c1784FB9356ef83A29E1A8cFa",
7020
+ hooks: [],
7021
+ whitelist: [],
7022
+ blacklist: [],
7023
+ forwarders: [],
7024
+ targetTokenPricing: false,
7025
+ rewardTokenPricing: false,
7026
+ apr: (365 * 0.84).toString(),
7027
+ },
7028
+ };
6802
7029
  export const MerklInterfaceCampaigns = {
6803
7030
  [program.Puffer]: PufferInterfaceCampaigns,
6804
7031
  [program.ZkSync]: ZkSyncInterfaceCampaigns,
@@ -6813,6 +7040,7 @@ export const MerklInterfaceCampaigns = {
6813
7040
  [program.Angles]: AnglesInterfaceCampaigns,
6814
7041
  [program.Ronin]: RoninInterfaceCampaigns,
6815
7042
  [program.TAC]: TACInterfaceCampaigns,
6816
- [program.HypuurFi]: HypuurFiCampaignsInterface,
7043
+ [program.HypurrFi]: HypurrFiCampaignsInterface,
6817
7044
  [program.WorldChain]: WorldChainInterfaceCampaigns,
7045
+ [program.StableJack]: StableJackInterfaceCampaigns,
6818
7046
  };