@merkl/api 0.10.353 → 0.10.355

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.
Files changed (40) hide show
  1. package/dist/database/api/.generated/edge.js +10 -4
  2. package/dist/database/api/.generated/index-browser.js +7 -1
  3. package/dist/database/api/.generated/index.d.ts +7 -1
  4. package/dist/database/api/.generated/index.js +10 -4
  5. package/dist/database/api/.generated/package.json +1 -1
  6. package/dist/database/api/.generated/schema.prisma +6 -0
  7. package/dist/database/api/.generated/wasm.js +7 -1
  8. package/dist/src/eden/index.d.ts +21 -21
  9. package/dist/src/index.d.ts +7 -7
  10. package/dist/src/jobs/breakdowns.d.ts +1 -0
  11. package/dist/src/jobs/breakdowns.js +55 -0
  12. package/dist/src/jobs/etl/pendings.d.ts +1 -0
  13. package/dist/src/jobs/etl/pendings.js +74 -0
  14. package/dist/src/jobs/etl/reward-breakdowns.d.ts +1 -0
  15. package/dist/src/jobs/etl/reward-breakdowns.js +82 -0
  16. package/dist/src/jobs/etl/rewards.d.ts +1 -0
  17. package/dist/src/jobs/etl/rewards.js +102 -0
  18. package/dist/src/jobs/rewards.d.ts +1 -0
  19. package/dist/src/jobs/rewards.js +74 -0
  20. package/dist/src/modules/v4/bucket/bucket.service.d.ts +4 -1
  21. package/dist/src/modules/v4/bucket/bucket.service.js +83 -2
  22. package/dist/src/modules/v4/campaign/campaign.controller.d.ts +2 -2
  23. package/dist/src/modules/v4/campaign/campaign.model.d.ts +3 -0
  24. package/dist/src/modules/v4/dynamicData/dynamicData.controller.d.ts +2 -2
  25. package/dist/src/modules/v4/dynamicData/dynamicData.model.d.ts +6 -0
  26. package/dist/src/modules/v4/opportunity/opportunity.controller.d.ts +3 -3
  27. package/dist/src/modules/v4/opportunity/opportunity.model.d.ts +6 -0
  28. package/dist/src/modules/v4/opportunity/opportunity.service.d.ts +2 -2
  29. package/dist/src/modules/v4/opportunity/opportunity.service.js +4 -0
  30. package/dist/src/modules/v4/opportunity/subservices/getHyperdriveMetadata.service.d.ts +3 -0
  31. package/dist/src/modules/v4/opportunity/subservices/getHyperdriveMetadata.service.js +15 -0
  32. package/dist/src/modules/v4/programPayload/programPayload.repository.d.ts +4 -1
  33. package/dist/src/modules/v4/programPayload/programPayload.repository.js +101 -16
  34. package/dist/src/modules/v4/programPayload/programPayload.service.d.ts +3 -3
  35. package/dist/src/modules/v4/programPayload/programPayload.service.js +25 -11
  36. package/dist/src/modules/v4/protocol/protocol.model.d.ts +1 -1
  37. package/dist/src/modules/v4/protocol/protocol.model.js +1 -0
  38. package/dist/src/modules/v4/router.d.ts +7 -7
  39. package/dist/tsconfig.package.tsbuildinfo +1 -1
  40. package/package.json +4 -2
@@ -187,6 +187,9 @@ export var modeCampaigns;
187
187
  modeCampaigns["Kim_Steer_CRS_V2_WETH_MODE_Mode"] = "Kim Steer CRS V2 WETH/Mode 0x8cfE2A02dfBAbC56aE7e573170E35f88A38BeA55";
188
188
  modeCampaigns["Kim_Gamma_WETH_MODE_Mode"] = "Kim Gamma Narrow WETH/Mode 0x8cfE2A02dfBAbC56aE7e573170E35f88A38BeA55";
189
189
  modeCampaigns["Kim_V4_WETH_MODE_Mode"] = "Kim V4 WETH/Mode 0x8cfE2A02dfBAbC56aE7e573170E35f88A38BeA55";
190
+ modeCampaigns["Ironclad_Borrow_uniBTC_Mode"] = "Ironclad Borrow uniBTC 0x80215c38DCb6ae91520F8251A077c124e7259688";
191
+ modeCampaigns["Bedrock_Ionic_Supply_ionuniBTC_Mode"] = "Bedrock Ionic Supply uniBTC 0xa48750877a83f7dec11f722178c317b54a44d142";
192
+ modeCampaigns["Bedrock_Ironclad_Supply_uniBTC_Mode"] = "Bedrock Ironclad Supply uniBTC 0x0F041cf2ae959f39215EFfB50d681Df55D4d90B1";
190
193
  })(modeCampaigns || (modeCampaigns = {}));
191
194
  const ModeInterfaceCampaigns = {
192
195
  [modeCampaigns.Steer_EES_V2_Weth_USDC_Kim_Mode]: {
@@ -195,7 +198,11 @@ const ModeInterfaceCampaigns = {
195
198
  hooks: [],
196
199
  poolAddress: "0x468cc91df6f669cae6cdce766995bd7874052fbc",
197
200
  whitelist: ["0xc07df1d13188c081f770944ece48e469b326b2a5"],
198
- blacklist: ["0x67135675e22F7ff34eBA30f15f39F9cd30d29079"],
201
+ blacklist: [
202
+ "0x67135675e22F7ff34eBA30f15f39F9cd30d29079",
203
+ "0x0ed357a94ffd136095B720f8EAC6687994b6aE5F",
204
+ "0xc0E93CE4857F168E6eE790800C68dd701cC41B37",
205
+ ],
199
206
  url: "https://app.steer.finance/vault/0xc07df1d13188c081f770944ece48e469b326b2a5",
200
207
  forwarders: [],
201
208
  isOutOfRangeIncentivized: true,
@@ -223,7 +230,11 @@ const ModeInterfaceCampaigns = {
223
230
  hooks: [],
224
231
  poolAddress: "0x8cfe2a02dfbabc56ae7e573170e35f88a38bea55",
225
232
  whitelist: ["0x23c17a512d486d6f46db63a8dd5144b352497762"],
226
- blacklist: ["0x67135675e22F7ff34eBA30f15f39F9cd30d29079"],
233
+ blacklist: [
234
+ "0x67135675e22F7ff34eBA30f15f39F9cd30d29079",
235
+ "0x0ed357a94ffd136095B720f8EAC6687994b6aE5F",
236
+ "0xc0E93CE4857F168E6eE790800C68dd701cC41B37",
237
+ ],
227
238
  url: "https://app.steer.finance/vault/0x23c17a512d486d6f46db63a8dd5144b352497762",
228
239
  forwarders: [],
229
240
  isOutOfRangeIncentivized: true,
@@ -237,7 +248,11 @@ const ModeInterfaceCampaigns = {
237
248
  hooks: [],
238
249
  poolAddress: "0x27f0976b26194c448d987c275bb409eab6083964",
239
250
  whitelist: ["0x4c8d1a52ee90b04ff8ee1257ad12290d89d13e6f"],
240
- blacklist: ["0x67135675e22F7ff34eBA30f15f39F9cd30d29079"],
251
+ blacklist: [
252
+ "0x67135675e22F7ff34eBA30f15f39F9cd30d29079",
253
+ "0x0ed357a94ffd136095B720f8EAC6687994b6aE5F",
254
+ "0xc0E93CE4857F168E6eE790800C68dd701cC41B37",
255
+ ],
241
256
  url: "https://app.steer.finance/vault/0x4c8d1a52ee90b04ff8ee1257ad12290d89d13e6f",
242
257
  forwarders: [],
243
258
  isOutOfRangeIncentivized: true,
@@ -251,7 +266,11 @@ const ModeInterfaceCampaigns = {
251
266
  hooks: [],
252
267
  poolAddress: "0xe24c8feb38ca2b18b542994bfba7e70880171035",
253
268
  whitelist: ["0x5aa27d5d8aff8cd5e683e23812124ace4aa5af7d"],
254
- blacklist: ["0x67135675e22F7ff34eBA30f15f39F9cd30d29079"],
269
+ blacklist: [
270
+ "0x67135675e22F7ff34eBA30f15f39F9cd30d29079",
271
+ "0x0ed357a94ffd136095B720f8EAC6687994b6aE5F",
272
+ "0xc0E93CE4857F168E6eE790800C68dd701cC41B37",
273
+ ],
255
274
  url: "https://app.steer.finance/vault/0x5aa27d5d8aff8cd5e683e23812124ace4aa5af7d",
256
275
  forwarders: [],
257
276
  isOutOfRangeIncentivized: true,
@@ -265,7 +284,11 @@ const ModeInterfaceCampaigns = {
265
284
  hooks: [],
266
285
  poolAddress: "0x15173cca4c4c4e5a3f4b5c0e81a1aef7c0bd6ede",
267
286
  whitelist: ["0xa212659dd4b71947268ff2037a654ce03730d857"],
268
- blacklist: ["0x67135675e22F7ff34eBA30f15f39F9cd30d29079"],
287
+ blacklist: [
288
+ "0x67135675e22F7ff34eBA30f15f39F9cd30d29079",
289
+ "0x0ed357a94ffd136095B720f8EAC6687994b6aE5F",
290
+ "0xc0E93CE4857F168E6eE790800C68dd701cC41B37",
291
+ ],
269
292
  url: "https://app.steer.finance/vault/0xa212659dd4b71947268ff2037a654ce03730d857",
270
293
  forwarders: [],
271
294
  isOutOfRangeIncentivized: true,
@@ -279,7 +302,7 @@ const ModeInterfaceCampaigns = {
279
302
  hooks: [],
280
303
  poolAddress: "0x34D6146f8FdD9599f574fC6a686d6f6498217b7E",
281
304
  whitelist: ["0x71F59E17e439f6bA63f6562DC4C5F37cc8A1d684"],
282
- blacklist: ["0x67135675e22F7ff34eBA30f15f39F9cd30d29079"],
305
+ blacklist: ["0x67135675e22F7ff34eBA30f15f39F9cd30d29079", "0x495119165d2398A9bec515e909cCd43e7DEABac5"],
283
306
  url: "https://app.kim.exchange/pools/vaults/ichi/0x71f59e17e439f6ba63f6562dc4c5f37cc8a1d684",
284
307
  forwarders: [],
285
308
  isOutOfRangeIncentivized: true,
@@ -838,7 +861,11 @@ const ModeInterfaceCampaigns = {
838
861
  hooks: [],
839
862
  poolAddress: "0x468cC91dF6F669CaE6cdCE766995Bd7874052FBc",
840
863
  whitelist: ["0xACb9a8676FC6ADa472611A62354BF47502969287"],
841
- blacklist: ["0x67135675e22F7ff34eBA30f15f39F9cd30d29079"],
864
+ blacklist: [
865
+ "0x67135675e22F7ff34eBA30f15f39F9cd30d29079",
866
+ "0x0ed357a94ffd136095B720f8EAC6687994b6aE5F",
867
+ "0xc0E93CE4857F168E6eE790800C68dd701cC41B37",
868
+ ],
842
869
  url: "https://app.kim.exchange/pools/vaults/0xacb9a8676fc6ada472611a62354bf47502969287",
843
870
  forwarders: [],
844
871
  isOutOfRangeIncentivized: false,
@@ -852,7 +879,11 @@ const ModeInterfaceCampaigns = {
852
879
  hooks: [],
853
880
  poolAddress: "0x468cC91dF6F669CaE6cdCE766995Bd7874052FBc",
854
881
  whitelist: ["0xc07df1D13188c081f770944ece48e469B326B2A5"],
855
- blacklist: ["0x67135675e22F7ff34eBA30f15f39F9cd30d29079"],
882
+ blacklist: [
883
+ "0x67135675e22F7ff34eBA30f15f39F9cd30d29079",
884
+ "0x0ed357a94ffd136095B720f8EAC6687994b6aE5F",
885
+ "0xc0E93CE4857F168E6eE790800C68dd701cC41B37",
886
+ ],
856
887
  url: "https://app.kim.exchange/pools/vaults/0xc07df1d13188c081f770944ece48e469b326b2a5",
857
888
  forwarders: [],
858
889
  isOutOfRangeIncentivized: false,
@@ -866,7 +897,11 @@ const ModeInterfaceCampaigns = {
866
897
  hooks: [],
867
898
  poolAddress: "0x468cC91dF6F669CaE6cdCE766995Bd7874052FBc",
868
899
  whitelist: ["0xC40D4D88aFC7B03C65391cBfB6F399f464F6aB03"],
869
- blacklist: ["0x67135675e22F7ff34eBA30f15f39F9cd30d29079"],
900
+ blacklist: [
901
+ "0x67135675e22F7ff34eBA30f15f39F9cd30d29079",
902
+ "0x0ed357a94ffd136095B720f8EAC6687994b6aE5F",
903
+ "0xc0E93CE4857F168E6eE790800C68dd701cC41B37",
904
+ ],
870
905
  url: "https://app.kim.exchange/pools/vaults/0xc40d4d88afc7b03c65391cbfb6f399f464f6ab03",
871
906
  forwarders: [],
872
907
  isOutOfRangeIncentivized: false,
@@ -880,7 +915,7 @@ const ModeInterfaceCampaigns = {
880
915
  hooks: [],
881
916
  poolAddress: "0x468cC91dF6F669CaE6cdCE766995Bd7874052FBc",
882
917
  whitelist: ["0x7eCCD6D077e4ad7120150578E936A22f058fBCCe"],
883
- blacklist: ["0x67135675e22F7ff34eBA30f15f39F9cd30d29079"],
918
+ blacklist: ["0x67135675e22F7ff34eBA30f15f39F9cd30d29079", "0xF2EaF3aD84376A6C233d52cC52C1293A41857820"],
884
919
  url: "https://app.kim.exchange/pools/vaults/gamma/0x7eccd6d077e4ad7120150578e936a22f058fbcce",
885
920
  forwarders: [],
886
921
  isOutOfRangeIncentivized: false,
@@ -900,6 +935,9 @@ const ModeInterfaceCampaigns = {
900
935
  "0xc07df1D13188c081f770944ece48e469B326B2A5",
901
936
  "0xC40D4D88aFC7B03C65391cBfB6F399f464F6aB03",
902
937
  "0x7eCCD6D077e4ad7120150578E936A22f058fBCCe",
938
+ "0x0ed357a94ffd136095B720f8EAC6687994b6aE5F",
939
+ "0xc0E93CE4857F168E6eE790800C68dd701cC41B37",
940
+ "0xF2EaF3aD84376A6C233d52cC52C1293A41857820",
903
941
  ],
904
942
  url: "https://app.kim.exchange/positions",
905
943
  forwarders: [],
@@ -914,7 +952,7 @@ const ModeInterfaceCampaigns = {
914
952
  hooks: [],
915
953
  poolAddress: "0x3C3a173984e3152FEd868345904eC0C9325FA516",
916
954
  whitelist: ["0xF5DDF269948C53D86B87Fa3393a5B2579348C07f"],
917
- blacklist: ["0x67135675e22F7ff34eBA30f15f39F9cd30d29079"],
955
+ blacklist: ["0x67135675e22F7ff34eBA30f15f39F9cd30d29079", "0x495119165d2398A9bec515e909cCd43e7DEABac5"],
918
956
  url: "https://app.kim.exchange/pools/vaults/ichi/0xf5ddf269948c53d86b87fa3393a5b2579348c07f",
919
957
  forwarders: [],
920
958
  isOutOfRangeIncentivized: false,
@@ -928,7 +966,11 @@ const ModeInterfaceCampaigns = {
928
966
  hooks: [],
929
967
  poolAddress: "0x3C3a173984e3152FEd868345904eC0C9325FA516",
930
968
  whitelist: ["0xAC8C89516bC4b60621c5326446e33680357bB3D2"],
931
- blacklist: ["0x67135675e22F7ff34eBA30f15f39F9cd30d29079"],
969
+ blacklist: [
970
+ "0x67135675e22F7ff34eBA30f15f39F9cd30d29079",
971
+ "0x0ed357a94ffd136095B720f8EAC6687994b6aE5F",
972
+ "0xc0E93CE4857F168E6eE790800C68dd701cC41B37",
973
+ ],
932
974
  url: "https://app.kim.exchange/pools/vaults/0xac8c89516bc4b60621c5326446e33680357bb3d2",
933
975
  forwarders: [],
934
976
  isOutOfRangeIncentivized: false,
@@ -942,7 +984,7 @@ const ModeInterfaceCampaigns = {
942
984
  hooks: [],
943
985
  poolAddress: "0x3C3a173984e3152FEd868345904eC0C9325FA516",
944
986
  whitelist: ["0x1392698B2F2cA87E6329c1ca502C5d4BA938d1b8"],
945
- blacklist: ["0x67135675e22F7ff34eBA30f15f39F9cd30d29079"],
987
+ blacklist: ["0x67135675e22F7ff34eBA30f15f39F9cd30d29079", "0xF2EaF3aD84376A6C233d52cC52C1293A41857820"],
946
988
  url: "https://app.kim.exchange/pools/vaults/gamma/0x1392698b2f2ca87e6329c1ca502c5d4ba938d1b8",
947
989
  forwarders: [],
948
990
  isOutOfRangeIncentivized: false,
@@ -963,6 +1005,10 @@ const ModeInterfaceCampaigns = {
963
1005
  "0x1392698B2F2cA87E6329c1ca502C5d4BA938d1b8",
964
1006
  "0x7c207cb731ebc0BA5dF699d7B36348302FD8480c",
965
1007
  "0x3da7476152f7EFF205cBf56f67aBaB17CF9d37eE",
1008
+ "0x0ed357a94ffd136095B720f8EAC6687994b6aE5F",
1009
+ "0xc0E93CE4857F168E6eE790800C68dd701cC41B37",
1010
+ "0x495119165d2398A9bec515e909cCd43e7DEABac5",
1011
+ "0xF2EaF3aD84376A6C233d52cC52C1293A41857820",
966
1012
  ],
967
1013
  url: "https://app.kim.exchange/positions",
968
1014
  forwarders: [],
@@ -977,7 +1023,7 @@ const ModeInterfaceCampaigns = {
977
1023
  hooks: [],
978
1024
  poolAddress: "0x8cfE2A02dfBAbC56aE7e573170E35f88A38BeA55",
979
1025
  whitelist: ["0x91f6fF8cDBD9B516c0DfB901063B3b00612962EB"],
980
- blacklist: ["0x67135675e22F7ff34eBA30f15f39F9cd30d29079"],
1026
+ blacklist: ["0x67135675e22F7ff34eBA30f15f39F9cd30d29079", "0x495119165d2398A9bec515e909cCd43e7DEABac5"],
981
1027
  url: "https://app.kim.exchange/pools/vaults/ichi/0x91f6ff8cdbd9b516c0dfb901063b3b00612962eb",
982
1028
  forwarders: [],
983
1029
  isOutOfRangeIncentivized: false,
@@ -991,7 +1037,11 @@ const ModeInterfaceCampaigns = {
991
1037
  hooks: [],
992
1038
  poolAddress: "0x8cfE2A02dfBAbC56aE7e573170E35f88A38BeA55",
993
1039
  whitelist: ["0x23c17a512d486D6F46DB63A8Dd5144B352497762"],
994
- blacklist: ["0x67135675e22F7ff34eBA30f15f39F9cd30d29079"],
1040
+ blacklist: [
1041
+ "0x67135675e22F7ff34eBA30f15f39F9cd30d29079",
1042
+ "0x0ed357a94ffd136095B720f8EAC6687994b6aE5F",
1043
+ "0xc0E93CE4857F168E6eE790800C68dd701cC41B37",
1044
+ ],
995
1045
  url: "https://app.kim.exchange/pools/vaults/0x23c17a512d486d6f46db63a8dd5144b352497762",
996
1046
  forwarders: [],
997
1047
  isOutOfRangeIncentivized: false,
@@ -1005,7 +1055,7 @@ const ModeInterfaceCampaigns = {
1005
1055
  hooks: [],
1006
1056
  poolAddress: "0x8cfE2A02dfBAbC56aE7e573170E35f88A38BeA55",
1007
1057
  whitelist: ["0xD6Cc4a33dA7557A629e819c68fB805ddB225f517"],
1008
- blacklist: ["0x67135675e22F7ff34eBA30f15f39F9cd30d29079"],
1058
+ blacklist: ["0x67135675e22F7ff34eBA30f15f39F9cd30d29079", "0xF2EaF3aD84376A6C233d52cC52C1293A41857820"],
1009
1059
  url: "https://app.kim.exchange/pools/vaults/gamma/0xd6cc4a33da7557a629e819c68fb805ddb225f517",
1010
1060
  forwarders: [],
1011
1061
  isOutOfRangeIncentivized: false,
@@ -1026,6 +1076,10 @@ const ModeInterfaceCampaigns = {
1026
1076
  "0x91f6fF8cDBD9B516c0DfB901063B3b00612962EB",
1027
1077
  "0xdd97504448cC51b4De4944157838c4800C773C5A",
1028
1078
  "0xBBD68F14F61bfcbB833618d83779e4Aa1Af5670e",
1079
+ "0x0ed357a94ffd136095B720f8EAC6687994b6aE5F",
1080
+ "0xc0E93CE4857F168E6eE790800C68dd701cC41B37",
1081
+ "0x495119165d2398A9bec515e909cCd43e7DEABac5",
1082
+ "0xF2EaF3aD84376A6C233d52cC52C1293A41857820",
1029
1083
  ],
1030
1084
  url: "https://app.kim.exchange/pools/vaults/gamma/0xd6cc4a33da7557a629e819c68fb805ddb225f517",
1031
1085
  forwarders: [],
@@ -1034,6 +1088,37 @@ const ModeInterfaceCampaigns = {
1034
1088
  weightToken0: 4000,
1035
1089
  weightToken1: 4000,
1036
1090
  },
1091
+ [modeCampaigns.Ironclad_Borrow_uniBTC_Mode]: {
1092
+ campaignType: Campaign.ERC20,
1093
+ computeChainId: ChainId.MODE,
1094
+ hooks: [],
1095
+ targetToken: "0x80215c38DCb6ae91520F8251A077c124e7259688",
1096
+ whitelist: [],
1097
+ blacklist: [],
1098
+ url: "https://app.ironclad.finance/markets/unibtc",
1099
+ forwarders: [],
1100
+ },
1101
+ [modeCampaigns.Bedrock_Ionic_Supply_ionuniBTC_Mode]: {
1102
+ campaignType: Campaign.COMPOUND,
1103
+ computeChainId: ChainId.MODE,
1104
+ hooks: [],
1105
+ whitelist: [],
1106
+ blacklist: [],
1107
+ forwarders: [],
1108
+ subCampaignType: CompoundSubCampaignType.supply,
1109
+ compFork: CompFork.Ionic,
1110
+ targetToken: "0xa48750877a83f7dec11f722178c317b54a44d142",
1111
+ },
1112
+ [modeCampaigns.Bedrock_Ironclad_Supply_uniBTC_Mode]: {
1113
+ campaignType: Campaign.ERC20,
1114
+ computeChainId: ChainId.MODE,
1115
+ hooks: [],
1116
+ targetToken: "0x0F041cf2ae959f39215EFfB50d681Df55D4d90B1",
1117
+ whitelist: [],
1118
+ blacklist: [],
1119
+ url: "https://app.ironclad.finance/markets/unibtc",
1120
+ forwarders: [],
1121
+ },
1037
1122
  };
1038
1123
  const ZkSyncInterfaceCampaigns = {
1039
1124
  [zkSyncCampaigns.Vest_USDC]: {
@@ -16,9 +16,9 @@ export declare class ProgramPayloadService {
16
16
  safePayload: safePayload;
17
17
  nonEncodedConfig: any;
18
18
  }>;
19
- static createSafePayloadForCampaign(args: CampaignParametersStruct, distributionChainId: ChainId, rewardToken: string, distributionCreator: string): [approvalTransaction, createCampaignTransaction];
20
- static initiateSafePayload(distributionChainId: ChainId, distributionCreator: string): safePayload;
21
- static buildPayload(query: CampaignPayloadInputModel, initialCampaignPayload?: safePayload | null): safePayload;
19
+ static createSafePayloadForCampaign(args: CampaignParametersStruct, distributionChainId: ChainId, rewardToken: string, distributionCreator: string, withApproval?: boolean): [approvalTransaction, createCampaignTransaction] | [createCampaignTransaction];
20
+ static initiateSafePayload(distributionChainId: ChainId, distributionCreator: string, rewardToken: string, approvalAmount?: string): safePayload;
21
+ static buildPayload(query: CampaignPayloadInputModel, initialCampaignPayload?: safePayload | null, totalAmount?: string): safePayload;
22
22
  static buildProgramPayload(query: ProgramPayloadInputModel): safePayload | null;
23
23
  static buildProgramPayloadWithAmounts(query: ProgramPayloadInputModel, body: CampaignAmountsInputModel): safePayload | null;
24
24
  }
@@ -67,7 +67,7 @@ export class ProgramPayloadService {
67
67
  const distributionCreator = registryInitialized?.Merkl?.DistributionCreator ?? NULL_ADDRESS;
68
68
  // Small hack to avoid the need to parse the config again
69
69
  const args = buildCampaignPayload(parsedConfig, distributionChainId).args;
70
- const safePayload = ProgramPayloadService.initiateSafePayload(distributionChainId, distributionCreator);
70
+ const safePayload = ProgramPayloadService.initiateSafePayload(distributionChainId, distributionCreator, rewardToken);
71
71
  const transactions = ProgramPayloadService.createSafePayloadForCampaign(args, distributionChainId, rewardToken, distributionCreator ?? NULL_ADDRESS);
72
72
  safePayload.transactions.push(...transactions);
73
73
  if (debug) {
@@ -75,7 +75,7 @@ export class ProgramPayloadService {
75
75
  }
76
76
  return safePayload;
77
77
  }
78
- static createSafePayloadForCampaign(args, distributionChainId, rewardToken, distributionCreator) {
78
+ static createSafePayloadForCampaign(args, distributionChainId, rewardToken, distributionCreator, withApproval = true) {
79
79
  const safePayload = _.cloneDeep(safeTemplate);
80
80
  safePayload.chainId = distributionChainId.toString();
81
81
  safePayload.createdAt = Math.floor(Date.now() / 1000);
@@ -97,30 +97,43 @@ export class ProgramPayloadService {
97
97
  args?.campaignData,
98
98
  ]),
99
99
  };
100
- return [safePayload.transactions[0], safePayload.transactions[2]];
100
+ if (withApproval) {
101
+ return [safePayload.transactions[0], safePayload.transactions[2]];
102
+ }
103
+ return [safePayload.transactions[2]];
101
104
  }
102
- static initiateSafePayload(distributionChainId, distributionCreator) {
105
+ static initiateSafePayload(distributionChainId, distributionCreator, rewardToken, approvalAmount = "O") {
103
106
  const safePayload = _.cloneDeep(safeTemplate);
104
107
  safePayload.chainId = distributionChainId.toString();
105
108
  safePayload.createdAt = Math.floor(Date.now() / 1000);
106
109
  safePayload.transactions[1].to = distributionCreator;
107
- safePayload.transactions = [safePayload.transactions[1]];
110
+ if (approvalAmount !== "0") {
111
+ safePayload.transactions[0].to = rewardToken;
112
+ safePayload.transactions[0].contractInputsValues = {
113
+ amount: approvalAmount,
114
+ spender: distributionCreator,
115
+ };
116
+ safePayload.transactions = [safePayload.transactions[1], safePayload.transactions[0]];
117
+ }
118
+ else
119
+ safePayload.transactions = [safePayload.transactions[1]];
108
120
  return safePayload;
109
121
  }
110
- static buildPayload(query, initialCampaignPayload = null) {
122
+ static buildPayload(query, initialCampaignPayload = null, totalAmount = "0") {
123
+ const withApproval = Boolean(totalAmount === "0");
111
124
  const rewardToken = query.rewardToken;
112
125
  const distributionChainId = query.distributionChainId ? query.distributionChainId : ChainId.MAINNET;
113
126
  const registryInitialized = registry(distributionChainId);
114
127
  const distributionCreator = registryInitialized?.Merkl?.DistributionCreator ?? NULL_ADDRESS;
115
- function generatePayloadFile(query) {
128
+ function generatePayloadFile(query, withApproval = true) {
116
129
  const args = buildCampaignPayload(ProgramPayloadService.buildConfig(query), distributionChainId).args;
117
- const safePayload = ProgramPayloadService.createSafePayloadForCampaign(args, distributionChainId, rewardToken, distributionCreator);
130
+ const safePayload = ProgramPayloadService.createSafePayloadForCampaign(args, distributionChainId, rewardToken, distributionCreator, withApproval);
118
131
  return safePayload;
119
132
  }
120
133
  const campaignPayloads = initialCampaignPayload === null
121
- ? ProgramPayloadService.initiateSafePayload(distributionChainId, distributionCreator)
134
+ ? ProgramPayloadService.initiateSafePayload(distributionChainId, distributionCreator, rewardToken, totalAmount)
122
135
  : initialCampaignPayload;
123
- const transactions = generatePayloadFile(query);
136
+ const transactions = generatePayloadFile(query, withApproval);
124
137
  campaignPayloads.transactions.push(...transactions);
125
138
  return campaignPayloads;
126
139
  }
@@ -139,10 +152,11 @@ export class ProgramPayloadService {
139
152
  }
140
153
  static buildProgramPayloadWithAmounts(query, body) {
141
154
  let campaignPayloads = null;
155
+ const totalAmount = Object.values(body).reduce((sum, amount) => sum + BigInt(amount), 0n);
142
156
  for (const [campaign, amount] of Object.entries(body)) {
143
157
  if (Object.keys(MerklInterfaceCampaigns[query.program]).includes(campaign)) {
144
158
  const queryCampaign = { ...query, campaign, amount: amount };
145
- campaignPayloads = ProgramPayloadService.buildPayload(queryCampaign, campaignPayloads);
159
+ campaignPayloads = ProgramPayloadService.buildPayload(queryCampaign, campaignPayloads, totalAmount.toString());
146
160
  }
147
161
  else {
148
162
  throw new Error(`Campaign ${campaign} not found`);
@@ -5,7 +5,7 @@ import type { Resource } from "../prisma";
5
5
  * @see {@link Resource}
6
6
  */
7
7
  export type Protocol = Resource<"Protocol">;
8
- declare const protocolTypes: readonly ["arthswap", "baseswap", "camelot", "crust", "fenix", "horiza", "izumi", "kim", "pancakeswap-v3", "quickswap-algebra", "quickswap-uni", "ramses", "retro", "stryke", "stryke-pcs", "stryke-sushi", "sushiswap-v3", "swapr", "thruster", "uniswap-v3", "voltage", "zero", "koi", "supswap-v3", "zkswap", "thirdtrade", "uniswap-v2", "velodrome", "aerodrome", "balancer", "curve", "cross_curve", "curveNPool", "aura", "akron", "beefy", "dragonswap", "poolside", "koi", "syncswap-v3", "neptune", "zkSwapThreePool", "syncswap", "rfx", "radiant", "aave", "euler", "gearbox", "compound", "sturdy", "frax", "ionic", "moonwell", "fluid", "silo", "morpho", "coumpound", "dolomite", "badger", "ajna", "layerbank", "ion", "venus", "woofi", "reactor_fusion", "eigenlayer", "vest", "zerolend"];
8
+ declare const protocolTypes: readonly ["arthswap", "baseswap", "camelot", "crust", "fenix", "horiza", "izumi", "kim", "pancakeswap-v3", "quickswap-algebra", "quickswap-uni", "ramses", "retro", "stryke", "stryke-pcs", "stryke-sushi", "sushiswap-v3", "swapr", "thruster", "uniswap-v3", "voltage", "zero", "koi", "supswap-v3", "zkswap", "thirdtrade", "uniswap-v2", "velodrome", "aerodrome", "balancer", "curve", "cross_curve", "curveNPool", "aura", "akron", "beefy", "dragonswap", "poolside", "koi", "syncswap-v3", "neptune", "zkSwapThreePool", "syncswap", "rfx", "radiant", "aave", "euler", "gearbox", "compound", "sturdy", "frax", "ionic", "moonwell", "fluid", "silo", "morpho", "coumpound", "dolomite", "badger", "ajna", "layerbank", "ion", "venus", "woofi", "reactor_fusion", "eigenlayer", "vest", "zerolend", "hyperdrive"];
9
9
  export type ProtocolId = (typeof protocolTypes)[number];
10
10
  export declare const ProtocolResourceDto: import("@sinclair/typebox").TObject<{
11
11
  id: import("@sinclair/typebox").TString;
@@ -71,6 +71,7 @@ const protocolTypes = [
71
71
  "eigenlayer",
72
72
  "vest",
73
73
  "zerolend",
74
+ "hyperdrive",
74
75
  ];
75
76
  // ─── DTOs ────────────────────────────────────────────────────────────────────
76
77
  export const ProtocolResourceDto = t.Object({
@@ -30,7 +30,7 @@ export declare const v4: Elysia<"/v4", false, {
30
30
  depositUrl?: string | undefined;
31
31
  protocols?: string[] | undefined;
32
32
  mainProtocol?: string | undefined;
33
- type: "INVALID" | "ERC20" | "CLAMM" | "ERC20_SNAPSHOT" | "JSON_AIRDROP" | "SILO" | "RADIANT" | "MORPHO" | "DOLOMITE" | "BADGER" | "COMPOUND" | "AJNA" | "EULER" | "UNISWAP_V4" | "ION" | "EIGENLAYER" | "ERC20TRANSFERS" | "ERC20LOGPROCESSOR" | "ERC20REBASELOGPROCESSOR" | "VEST";
33
+ type: "INVALID" | "ERC20" | "CLAMM" | "ERC20_SNAPSHOT" | "JSON_AIRDROP" | "SILO" | "RADIANT" | "MORPHO" | "DOLOMITE" | "BADGER" | "COMPOUND" | "AJNA" | "EULER" | "UNISWAP_V4" | "ION" | "EIGENLAYER" | "ERC20TRANSFERS" | "ERC20LOGPROCESSOR" | "ERC20REBASELOGPROCESSOR" | "VEST" | "ERC20_FIX_APR" | "HYPERDRIVELOGPROCESSOR" | "HYPERDRIVELOGFIXPROCESSOR";
34
34
  tokens: {
35
35
  chainId: number;
36
36
  address: string;
@@ -38,7 +38,7 @@ export declare const v4: Elysia<"/v4", false, {
38
38
  status: "NONE" | "PAST" | "LIVE" | "SOON";
39
39
  identifier: string;
40
40
  chainId: number;
41
- action: "INVALID" | "POOL" | "HOLD" | "DROP" | "LEND" | "BORROW";
41
+ action: "INVALID" | "POOL" | "HOLD" | "DROP" | "LEND" | "BORROW" | "LP" | "LONG" | "SHORT";
42
42
  };
43
43
  params: {};
44
44
  query: unknown;
@@ -99,7 +99,7 @@ export declare const v4: Elysia<"/v4", false, {
99
99
  } & {
100
100
  price?: number | null | undefined;
101
101
  })[];
102
- mainProtocol: "morpho" | "arthswap" | "baseswap" | "camelot" | "crust" | "fenix" | "horiza" | "izumi" | "kim" | "pancakeswap-v3" | "quickswap-algebra" | "quickswap-uni" | "ramses" | "retro" | "stryke" | "stryke-pcs" | "stryke-sushi" | "sushiswap-v3" | "swapr" | "thruster" | "uniswap-v3" | "voltage" | "zero" | "koi" | "supswap-v3" | "zkswap" | "thirdtrade" | "uniswap-v2" | "velodrome" | "aerodrome" | "balancer" | "curve" | "cross_curve" | "curveNPool" | "aura" | "akron" | "beefy" | "dragonswap" | "poolside" | "syncswap-v3" | "neptune" | "zkSwapThreePool" | "syncswap" | "rfx" | "radiant" | "aave" | "euler" | "gearbox" | "compound" | "sturdy" | "frax" | "ionic" | "moonwell" | "fluid" | "silo" | "coumpound" | "dolomite" | "badger" | "ajna" | "layerbank" | "ion" | "venus" | "woofi" | "reactor_fusion" | "eigenlayer" | "vest" | "zerolend" | undefined;
102
+ mainProtocol: "morpho" | "arthswap" | "baseswap" | "camelot" | "crust" | "fenix" | "horiza" | "izumi" | "kim" | "pancakeswap-v3" | "quickswap-algebra" | "quickswap-uni" | "ramses" | "retro" | "stryke" | "stryke-pcs" | "stryke-sushi" | "sushiswap-v3" | "swapr" | "thruster" | "uniswap-v3" | "voltage" | "zero" | "koi" | "supswap-v3" | "zkswap" | "thirdtrade" | "uniswap-v2" | "velodrome" | "aerodrome" | "balancer" | "curve" | "cross_curve" | "curveNPool" | "aura" | "akron" | "beefy" | "dragonswap" | "poolside" | "syncswap-v3" | "neptune" | "zkSwapThreePool" | "syncswap" | "rfx" | "radiant" | "aave" | "euler" | "gearbox" | "compound" | "sturdy" | "frax" | "ionic" | "moonwell" | "fluid" | "silo" | "coumpound" | "dolomite" | "badger" | "ajna" | "layerbank" | "ion" | "venus" | "woofi" | "reactor_fusion" | "eigenlayer" | "vest" | "zerolend" | "hyperdrive" | undefined;
103
103
  depositUrl: any;
104
104
  tags: string[];
105
105
  };
@@ -768,7 +768,7 @@ export declare const v4: Elysia<"/v4", false, {
768
768
  body: unknown;
769
769
  params: {};
770
770
  query: {
771
- type?: "INVALID" | "ERC20" | "CLAMM" | "ERC20_SNAPSHOT" | "JSON_AIRDROP" | "SILO" | "RADIANT" | "MORPHO" | "DOLOMITE" | "BADGER" | "COMPOUND" | "AJNA" | "EULER" | "UNISWAP_V4" | "ION" | "EIGENLAYER" | "ERC20TRANSFERS" | "ERC20LOGPROCESSOR" | "ERC20REBASELOGPROCESSOR" | "VEST" | undefined;
771
+ type?: "INVALID" | "ERC20" | "CLAMM" | "ERC20_SNAPSHOT" | "JSON_AIRDROP" | "SILO" | "RADIANT" | "MORPHO" | "DOLOMITE" | "BADGER" | "COMPOUND" | "AJNA" | "EULER" | "UNISWAP_V4" | "ION" | "EIGENLAYER" | "ERC20TRANSFERS" | "ERC20LOGPROCESSOR" | "ERC20REBASELOGPROCESSOR" | "VEST" | "ERC20_FIX_APR" | "HYPERDRIVELOGPROCESSOR" | "HYPERDRIVELOGFIXPROCESSOR" | undefined;
772
772
  items?: number | undefined;
773
773
  subType?: number | undefined;
774
774
  page?: number | undefined;
@@ -840,7 +840,7 @@ export declare const v4: Elysia<"/v4", false, {
840
840
  body: unknown;
841
841
  params: {};
842
842
  query: {
843
- type?: "INVALID" | "ERC20" | "CLAMM" | "ERC20_SNAPSHOT" | "JSON_AIRDROP" | "SILO" | "RADIANT" | "MORPHO" | "DOLOMITE" | "BADGER" | "COMPOUND" | "AJNA" | "EULER" | "UNISWAP_V4" | "ION" | "EIGENLAYER" | "ERC20TRANSFERS" | "ERC20LOGPROCESSOR" | "ERC20REBASELOGPROCESSOR" | "VEST" | undefined;
843
+ type?: "INVALID" | "ERC20" | "CLAMM" | "ERC20_SNAPSHOT" | "JSON_AIRDROP" | "SILO" | "RADIANT" | "MORPHO" | "DOLOMITE" | "BADGER" | "COMPOUND" | "AJNA" | "EULER" | "UNISWAP_V4" | "ION" | "EIGENLAYER" | "ERC20TRANSFERS" | "ERC20LOGPROCESSOR" | "ERC20REBASELOGPROCESSOR" | "VEST" | "ERC20_FIX_APR" | "HYPERDRIVELOGPROCESSOR" | "HYPERDRIVELOGFIXPROCESSOR" | undefined;
844
844
  items?: number | undefined;
845
845
  subType?: number | undefined;
846
846
  page?: number | undefined;
@@ -2699,7 +2699,7 @@ export declare const v4: Elysia<"/v4", false, {
2699
2699
  rewardTokenAddress?: string | undefined;
2700
2700
  distributionChain?: {} | undefined;
2701
2701
  opportunityIdentifier?: string | undefined;
2702
- type: "INVALID" | "ERC20" | "CLAMM" | "ERC20_SNAPSHOT" | "JSON_AIRDROP" | "SILO" | "RADIANT" | "MORPHO" | "DOLOMITE" | "BADGER" | "COMPOUND" | "AJNA" | "EULER" | "UNISWAP_V4" | "ION" | "EIGENLAYER" | "ERC20TRANSFERS" | "ERC20LOGPROCESSOR" | "ERC20REBASELOGPROCESSOR" | "VEST";
2702
+ type: "INVALID" | "ERC20" | "CLAMM" | "ERC20_SNAPSHOT" | "JSON_AIRDROP" | "SILO" | "RADIANT" | "MORPHO" | "DOLOMITE" | "BADGER" | "COMPOUND" | "AJNA" | "EULER" | "UNISWAP_V4" | "ION" | "EIGENLAYER" | "ERC20TRANSFERS" | "ERC20LOGPROCESSOR" | "ERC20REBASELOGPROCESSOR" | "VEST" | "ERC20_FIX_APR" | "HYPERDRIVELOGPROCESSOR" | "HYPERDRIVELOGFIXPROCESSOR";
2703
2703
  params: {};
2704
2704
  computeChainId: number;
2705
2705
  };
@@ -2722,7 +2722,7 @@ export declare const v4: Elysia<"/v4", false, {
2722
2722
  body: unknown;
2723
2723
  params: {};
2724
2724
  query: {
2725
- type?: "INVALID" | "ERC20" | "CLAMM" | "ERC20_SNAPSHOT" | "JSON_AIRDROP" | "SILO" | "RADIANT" | "MORPHO" | "DOLOMITE" | "BADGER" | "COMPOUND" | "AJNA" | "EULER" | "UNISWAP_V4" | "ION" | "EIGENLAYER" | "ERC20TRANSFERS" | "ERC20LOGPROCESSOR" | "ERC20REBASELOGPROCESSOR" | "VEST" | undefined;
2725
+ type?: "INVALID" | "ERC20" | "CLAMM" | "ERC20_SNAPSHOT" | "JSON_AIRDROP" | "SILO" | "RADIANT" | "MORPHO" | "DOLOMITE" | "BADGER" | "COMPOUND" | "AJNA" | "EULER" | "UNISWAP_V4" | "ION" | "EIGENLAYER" | "ERC20TRANSFERS" | "ERC20LOGPROCESSOR" | "ERC20REBASELOGPROCESSOR" | "VEST" | "ERC20_FIX_APR" | "HYPERDRIVELOGPROCESSOR" | "HYPERDRIVELOGFIXPROCESSOR" | undefined;
2726
2726
  items?: number | undefined;
2727
2727
  subType?: number | undefined;
2728
2728
  page?: number | undefined;