@snagsolutions/sdk 0.1.0-alpha.13 → 0.1.0-alpha.130

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 (378) hide show
  1. package/CHANGELOG.md +1125 -0
  2. package/README.md +24 -28
  3. package/_shims/index.d.ts +2 -0
  4. package/_shims/index.js +5 -1
  5. package/_shims/index.mjs +5 -1
  6. package/core.d.ts +19 -5
  7. package/core.d.ts.map +1 -1
  8. package/core.js +35 -19
  9. package/core.js.map +1 -1
  10. package/core.mjs +36 -20
  11. package/core.mjs.map +1 -1
  12. package/index.d.mts +25 -16
  13. package/index.d.ts +25 -16
  14. package/index.d.ts.map +1 -1
  15. package/index.js +20 -10
  16. package/index.js.map +1 -1
  17. package/index.mjs +21 -11
  18. package/index.mjs.map +1 -1
  19. package/package.json +4 -5
  20. package/resource.d.ts +1 -1
  21. package/resource.d.ts.map +1 -1
  22. package/resource.js.map +1 -1
  23. package/resource.mjs.map +1 -1
  24. package/resources/assets.d.ts +23 -9
  25. package/resources/assets.d.ts.map +1 -1
  26. package/resources/assets.js +12 -4
  27. package/resources/assets.js.map +1 -1
  28. package/resources/assets.mjs +12 -4
  29. package/resources/assets.mjs.map +1 -1
  30. package/resources/auctions/auctions.d.ts +285 -0
  31. package/resources/auctions/auctions.d.ts.map +1 -0
  32. package/resources/auctions/auctions.js +76 -0
  33. package/resources/auctions/auctions.js.map +1 -0
  34. package/resources/auctions/auctions.mjs +49 -0
  35. package/resources/auctions/auctions.mjs.map +1 -0
  36. package/resources/auctions/index.d.ts +3 -0
  37. package/resources/auctions/index.d.ts.map +1 -0
  38. package/resources/auctions/index.js +9 -0
  39. package/resources/auctions/index.js.map +1 -0
  40. package/resources/auctions/index.mjs +4 -0
  41. package/resources/auctions/index.mjs.map +1 -0
  42. package/resources/auctions/website-user-attributes/index.d.ts +3 -0
  43. package/resources/auctions/website-user-attributes/index.d.ts.map +1 -0
  44. package/resources/auctions/website-user-attributes/index.js +9 -0
  45. package/resources/auctions/website-user-attributes/index.js.map +1 -0
  46. package/resources/auctions/website-user-attributes/index.mjs +4 -0
  47. package/resources/auctions/website-user-attributes/index.mjs.map +1 -0
  48. package/resources/auctions/website-user-attributes/values.d.ts +122 -0
  49. package/resources/auctions/website-user-attributes/values.d.ts.map +1 -0
  50. package/resources/auctions/website-user-attributes/values.js +49 -0
  51. package/resources/auctions/website-user-attributes/values.js.map +1 -0
  52. package/resources/auctions/website-user-attributes/values.mjs +45 -0
  53. package/resources/auctions/website-user-attributes/values.mjs.map +1 -0
  54. package/resources/auctions/website-user-attributes/website-user-attributes.d.ts +132 -0
  55. package/resources/auctions/website-user-attributes/website-user-attributes.d.ts.map +1 -0
  56. package/resources/auctions/website-user-attributes/website-user-attributes.js +76 -0
  57. package/resources/auctions/website-user-attributes/website-user-attributes.js.map +1 -0
  58. package/resources/auctions/website-user-attributes/website-user-attributes.mjs +49 -0
  59. package/resources/auctions/website-user-attributes/website-user-attributes.mjs.map +1 -0
  60. package/resources/auctions/website-user-attributes.d.ts +2 -0
  61. package/resources/auctions/website-user-attributes.d.ts.map +1 -0
  62. package/resources/auctions/website-user-attributes.js +19 -0
  63. package/resources/auctions/website-user-attributes.js.map +1 -0
  64. package/resources/auctions/website-user-attributes.mjs +3 -0
  65. package/resources/auctions/website-user-attributes.mjs.map +1 -0
  66. package/resources/auctions.d.ts +2 -0
  67. package/resources/auctions.d.ts.map +1 -0
  68. package/resources/auctions.js +19 -0
  69. package/resources/auctions.js.map +1 -0
  70. package/resources/auctions.mjs +3 -0
  71. package/resources/auctions.mjs.map +1 -0
  72. package/resources/auth.d.ts +44 -0
  73. package/resources/auth.d.ts.map +1 -0
  74. package/resources/auth.js +16 -0
  75. package/resources/auth.js.map +1 -0
  76. package/resources/auth.mjs +12 -0
  77. package/resources/auth.mjs.map +1 -0
  78. package/resources/index.d.ts +7 -5
  79. package/resources/index.d.ts.map +1 -1
  80. package/resources/index.js +10 -6
  81. package/resources/index.js.map +1 -1
  82. package/resources/index.mjs +6 -4
  83. package/resources/index.mjs.map +1 -1
  84. package/resources/loyalty/account-streaks.d.ts +81 -0
  85. package/resources/loyalty/account-streaks.d.ts.map +1 -0
  86. package/resources/loyalty/account-streaks.js +24 -0
  87. package/resources/loyalty/account-streaks.js.map +1 -0
  88. package/resources/loyalty/account-streaks.mjs +20 -0
  89. package/resources/loyalty/account-streaks.mjs.map +1 -0
  90. package/resources/loyalty/accounts.d.ts +62 -15
  91. package/resources/loyalty/accounts.d.ts.map +1 -1
  92. package/resources/loyalty/accounts.js +22 -1
  93. package/resources/loyalty/accounts.js.map +1 -1
  94. package/resources/loyalty/accounts.mjs +22 -1
  95. package/resources/loyalty/accounts.mjs.map +1 -1
  96. package/resources/loyalty/badges.d.ts +980 -77
  97. package/resources/loyalty/badges.d.ts.map +1 -1
  98. package/resources/loyalty/badges.js +19 -1
  99. package/resources/loyalty/badges.js.map +1 -1
  100. package/resources/loyalty/badges.mjs +19 -1
  101. package/resources/loyalty/badges.mjs.map +1 -1
  102. package/resources/loyalty/currencies.d.ts +20 -1
  103. package/resources/loyalty/currencies.d.ts.map +1 -1
  104. package/resources/loyalty/currencies.js +19 -0
  105. package/resources/loyalty/currencies.js.map +1 -1
  106. package/resources/loyalty/currencies.mjs +19 -0
  107. package/resources/loyalty/currencies.mjs.map +1 -1
  108. package/resources/loyalty/index.d.ts +9 -5
  109. package/resources/loyalty/index.d.ts.map +1 -1
  110. package/resources/loyalty/index.js +11 -3
  111. package/resources/loyalty/index.js.map +1 -1
  112. package/resources/loyalty/index.mjs +6 -2
  113. package/resources/loyalty/index.mjs.map +1 -1
  114. package/resources/loyalty/loyalty.d.ts +33 -17
  115. package/resources/loyalty/loyalty.d.ts.map +1 -1
  116. package/resources/loyalty/loyalty.js +28 -12
  117. package/resources/loyalty/loyalty.js.map +1 -1
  118. package/resources/loyalty/loyalty.mjs +29 -13
  119. package/resources/loyalty/loyalty.mjs.map +1 -1
  120. package/resources/loyalty/multipliers.d.ts +97 -4
  121. package/resources/loyalty/multipliers.d.ts.map +1 -1
  122. package/resources/loyalty/multipliers.js +29 -0
  123. package/resources/loyalty/multipliers.js.map +1 -1
  124. package/resources/loyalty/multipliers.mjs +29 -0
  125. package/resources/loyalty/multipliers.mjs.map +1 -1
  126. package/resources/loyalty/questions-responses.d.ts +112 -0
  127. package/resources/loyalty/questions-responses.d.ts.map +1 -0
  128. package/resources/loyalty/questions-responses.js +31 -0
  129. package/resources/loyalty/questions-responses.js.map +1 -0
  130. package/resources/loyalty/questions-responses.mjs +27 -0
  131. package/resources/loyalty/questions-responses.mjs.map +1 -0
  132. package/resources/loyalty/questions.d.ts +183 -0
  133. package/resources/loyalty/questions.d.ts.map +1 -0
  134. package/resources/loyalty/questions.js +60 -0
  135. package/resources/loyalty/questions.js.map +1 -0
  136. package/resources/loyalty/questions.mjs +56 -0
  137. package/resources/loyalty/questions.mjs.map +1 -0
  138. package/resources/loyalty/rule-edits.d.ts +2585 -11
  139. package/resources/loyalty/rule-edits.d.ts.map +1 -1
  140. package/resources/loyalty/rule-edits.js +16 -2
  141. package/resources/loyalty/rule-edits.js.map +1 -1
  142. package/resources/loyalty/rule-edits.mjs +16 -2
  143. package/resources/loyalty/rule-edits.mjs.map +1 -1
  144. package/resources/loyalty/rule-groups.d.ts +762 -0
  145. package/resources/loyalty/rule-groups.d.ts.map +1 -0
  146. package/resources/loyalty/rule-groups.js +52 -0
  147. package/resources/loyalty/rule-groups.js.map +1 -0
  148. package/resources/loyalty/rule-groups.mjs +48 -0
  149. package/resources/loyalty/rule-groups.mjs.map +1 -0
  150. package/resources/loyalty/rules.d.ts +1871 -296
  151. package/resources/loyalty/rules.d.ts.map +1 -1
  152. package/resources/loyalty/rules.js +40 -9
  153. package/resources/loyalty/rules.js.map +1 -1
  154. package/resources/loyalty/rules.mjs +40 -9
  155. package/resources/loyalty/rules.mjs.map +1 -1
  156. package/resources/loyalty/transactions/index.d.ts +3 -0
  157. package/resources/loyalty/transactions/index.d.ts.map +1 -0
  158. package/resources/loyalty/transactions/index.js +9 -0
  159. package/resources/loyalty/transactions/index.js.map +1 -0
  160. package/resources/loyalty/transactions/index.mjs +4 -0
  161. package/resources/loyalty/transactions/index.mjs.map +1 -0
  162. package/resources/loyalty/transactions/rule-statuses.d.ts +120 -0
  163. package/resources/loyalty/transactions/rule-statuses.d.ts.map +1 -0
  164. package/resources/loyalty/transactions/rule-statuses.js +30 -0
  165. package/resources/loyalty/transactions/rule-statuses.js.map +1 -0
  166. package/resources/loyalty/transactions/rule-statuses.mjs +26 -0
  167. package/resources/loyalty/transactions/rule-statuses.mjs.map +1 -0
  168. package/resources/loyalty/transactions/transactions.d.ts +410 -0
  169. package/resources/loyalty/transactions/transactions.d.ts.map +1 -0
  170. package/resources/loyalty/transactions/transactions.js +76 -0
  171. package/resources/loyalty/transactions/transactions.js.map +1 -0
  172. package/resources/loyalty/transactions/transactions.mjs +49 -0
  173. package/resources/loyalty/transactions/transactions.mjs.map +1 -0
  174. package/resources/loyalty/transactions.d.ts +2 -0
  175. package/resources/loyalty/transactions.d.ts.map +1 -0
  176. package/resources/loyalty/transactions.js +19 -0
  177. package/resources/loyalty/transactions.js.map +1 -0
  178. package/resources/loyalty/transactions.mjs +3 -0
  179. package/resources/loyalty/transactions.mjs.map +1 -0
  180. package/resources/loyalty.d.ts +2 -0
  181. package/resources/loyalty.d.ts.map +1 -0
  182. package/resources/loyalty.js +19 -0
  183. package/resources/loyalty.js.map +1 -0
  184. package/resources/loyalty.mjs +3 -0
  185. package/resources/loyalty.mjs.map +1 -0
  186. package/resources/minting.d.ts +95 -0
  187. package/resources/minting.d.ts.map +1 -0
  188. package/resources/minting.js +15 -0
  189. package/resources/minting.js.map +1 -0
  190. package/resources/minting.mjs +11 -0
  191. package/resources/minting.mjs.map +1 -0
  192. package/resources/referral/index.d.ts +3 -0
  193. package/resources/referral/index.d.ts.map +1 -0
  194. package/resources/referral/index.js +9 -0
  195. package/resources/referral/index.js.map +1 -0
  196. package/resources/referral/index.mjs +4 -0
  197. package/resources/referral/index.mjs.map +1 -0
  198. package/resources/referral/referral.d.ts +39 -0
  199. package/resources/referral/referral.d.ts.map +1 -0
  200. package/resources/{drip/drip.js → referral/referral.js} +21 -12
  201. package/resources/referral/referral.js.map +1 -0
  202. package/resources/referral/referral.mjs +25 -0
  203. package/resources/referral/referral.mjs.map +1 -0
  204. package/resources/referral/users.d.ts +83 -0
  205. package/resources/referral/users.d.ts.map +1 -0
  206. package/resources/referral/users.js +35 -0
  207. package/resources/referral/users.js.map +1 -0
  208. package/resources/referral/users.mjs +31 -0
  209. package/resources/referral/users.mjs.map +1 -0
  210. package/resources/referral.d.ts +2 -0
  211. package/resources/referral.d.ts.map +1 -0
  212. package/resources/referral.js +19 -0
  213. package/resources/referral.js.map +1 -0
  214. package/resources/referral.mjs +3 -0
  215. package/resources/referral.mjs.map +1 -0
  216. package/resources/users/index.d.ts +2 -3
  217. package/resources/users/index.d.ts.map +1 -1
  218. package/resources/users/index.js +1 -3
  219. package/resources/users/index.js.map +1 -1
  220. package/resources/users/index.mjs +2 -3
  221. package/resources/users/index.mjs.map +1 -1
  222. package/resources/users/metadatas.d.ts +112 -9
  223. package/resources/users/metadatas.d.ts.map +1 -1
  224. package/resources/users/metadatas.js +6 -0
  225. package/resources/users/metadatas.js.map +1 -1
  226. package/resources/users/metadatas.mjs +6 -0
  227. package/resources/users/metadatas.mjs.map +1 -1
  228. package/resources/users/users.d.ts +414 -6
  229. package/resources/users/users.d.ts.map +1 -1
  230. package/resources/users/users.js +77 -4
  231. package/resources/users/users.js.map +1 -1
  232. package/resources/users/users.mjs +78 -5
  233. package/resources/users/users.mjs.map +1 -1
  234. package/resources/users.d.ts +2 -0
  235. package/resources/users.d.ts.map +1 -0
  236. package/resources/users.js +19 -0
  237. package/resources/users.js.map +1 -0
  238. package/resources/users.mjs +3 -0
  239. package/resources/users.mjs.map +1 -0
  240. package/resources/websites/index.d.ts +4 -0
  241. package/resources/websites/index.d.ts.map +1 -0
  242. package/resources/websites/index.js +11 -0
  243. package/resources/websites/index.js.map +1 -0
  244. package/resources/websites/index.mjs +5 -0
  245. package/resources/websites/index.mjs.map +1 -0
  246. package/resources/websites/website-collections.d.ts +94 -0
  247. package/resources/websites/website-collections.d.ts.map +1 -0
  248. package/resources/websites/website-collections.js +46 -0
  249. package/resources/websites/website-collections.js.map +1 -0
  250. package/resources/websites/website-collections.mjs +42 -0
  251. package/resources/websites/website-collections.mjs.map +1 -0
  252. package/resources/websites/website-user-roles.d.ts +96 -0
  253. package/resources/websites/website-user-roles.d.ts.map +1 -0
  254. package/resources/websites/website-user-roles.js +45 -0
  255. package/resources/websites/website-user-roles.js.map +1 -0
  256. package/resources/websites/website-user-roles.mjs +41 -0
  257. package/resources/websites/website-user-roles.mjs.map +1 -0
  258. package/resources/websites/websites.d.ts +223 -0
  259. package/resources/websites/websites.d.ts.map +1 -0
  260. package/resources/websites/websites.js +63 -0
  261. package/resources/websites/websites.js.map +1 -0
  262. package/resources/websites/websites.mjs +36 -0
  263. package/resources/websites/websites.mjs.map +1 -0
  264. package/resources/websites.d.ts +1 -202
  265. package/resources/websites.d.ts.map +1 -1
  266. package/resources/websites.js +15 -18
  267. package/resources/websites.js.map +1 -1
  268. package/resources/websites.mjs +1 -16
  269. package/resources/websites.mjs.map +1 -1
  270. package/resources.d.ts +2 -0
  271. package/resources.d.ts.map +1 -0
  272. package/resources.js +18 -0
  273. package/resources.js.map +1 -0
  274. package/resources.mjs +2 -0
  275. package/resources.mjs.map +1 -0
  276. package/src/_shims/index.d.ts +2 -0
  277. package/src/_shims/index.js +5 -1
  278. package/src/_shims/index.mjs +5 -1
  279. package/src/core.ts +56 -20
  280. package/src/index.ts +97 -24
  281. package/src/resource.ts +1 -1
  282. package/src/resources/assets.ts +31 -9
  283. package/src/resources/auctions/auctions.ts +436 -0
  284. package/src/resources/auctions/index.ts +18 -0
  285. package/src/resources/auctions/website-user-attributes/index.ts +18 -0
  286. package/src/resources/auctions/website-user-attributes/values.ts +165 -0
  287. package/src/resources/auctions/website-user-attributes/website-user-attributes.ts +207 -0
  288. package/src/resources/auctions/website-user-attributes.ts +3 -0
  289. package/src/resources/auctions.ts +3 -0
  290. package/src/resources/auth.ts +74 -0
  291. package/src/resources/index.ts +31 -5
  292. package/src/resources/loyalty/account-streaks.ts +110 -0
  293. package/src/resources/loyalty/accounts.ts +79 -16
  294. package/src/resources/loyalty/badges.ts +1192 -92
  295. package/src/resources/loyalty/currencies.ts +20 -1
  296. package/src/resources/loyalty/index.ts +53 -9
  297. package/src/resources/loyalty/loyalty.ts +160 -60
  298. package/src/resources/loyalty/multipliers.ts +124 -4
  299. package/src/resources/loyalty/questions-responses.ts +161 -0
  300. package/src/resources/loyalty/questions.ts +241 -0
  301. package/src/resources/loyalty/rule-edits.ts +3622 -63
  302. package/src/resources/loyalty/rule-groups.ts +1181 -0
  303. package/src/resources/loyalty/rules.ts +3068 -579
  304. package/src/resources/loyalty/transactions/index.ts +18 -0
  305. package/src/resources/loyalty/transactions/rule-statuses.ts +178 -0
  306. package/src/resources/loyalty/transactions/transactions.ts +675 -0
  307. package/src/resources/loyalty/transactions.ts +3 -0
  308. package/src/resources/loyalty.ts +3 -0
  309. package/src/resources/minting.ts +170 -0
  310. package/src/resources/referral/index.ts +10 -0
  311. package/src/resources/referral/referral.ts +72 -0
  312. package/src/resources/referral/users.ts +122 -0
  313. package/src/resources/referral.ts +3 -0
  314. package/src/resources/users/index.ts +21 -9
  315. package/src/resources/users/metadatas.ts +167 -8
  316. package/src/resources/users/users.ts +581 -17
  317. package/src/resources/users.ts +3 -0
  318. package/src/resources/websites/index.ts +22 -0
  319. package/src/resources/websites/website-collections.ts +182 -0
  320. package/src/resources/websites/website-user-roles.ts +130 -0
  321. package/src/resources/websites/websites.ts +311 -0
  322. package/src/resources/websites.ts +1 -257
  323. package/src/resources.ts +1 -0
  324. package/src/version.ts +1 -1
  325. package/version.d.ts +1 -1
  326. package/version.d.ts.map +1 -1
  327. package/version.js +1 -1
  328. package/version.js.map +1 -1
  329. package/version.mjs +1 -1
  330. package/version.mjs.map +1 -1
  331. package/resources/auction-bids.d.ts +0 -81
  332. package/resources/auction-bids.d.ts.map +0 -1
  333. package/resources/auction-bids.js +0 -30
  334. package/resources/auction-bids.js.map +0 -1
  335. package/resources/auction-bids.mjs +0 -26
  336. package/resources/auction-bids.mjs.map +0 -1
  337. package/resources/drip/drip.d.ts +0 -14
  338. package/resources/drip/drip.d.ts.map +0 -1
  339. package/resources/drip/drip.js.map +0 -1
  340. package/resources/drip/drip.mjs +0 -16
  341. package/resources/drip/drip.mjs.map +0 -1
  342. package/resources/drip/index.d.ts +0 -4
  343. package/resources/drip/index.d.ts.map +0 -1
  344. package/resources/drip/index.js +0 -11
  345. package/resources/drip/index.js.map +0 -1
  346. package/resources/drip/index.mjs +0 -5
  347. package/resources/drip/index.mjs.map +0 -1
  348. package/resources/drip/quests.d.ts +0 -168
  349. package/resources/drip/quests.d.ts.map +0 -1
  350. package/resources/drip/quests.js +0 -17
  351. package/resources/drip/quests.js.map +0 -1
  352. package/resources/drip/quests.mjs +0 -13
  353. package/resources/drip/quests.mjs.map +0 -1
  354. package/resources/drip/status.d.ts +0 -26
  355. package/resources/drip/status.d.ts.map +0 -1
  356. package/resources/drip/status.js +0 -16
  357. package/resources/drip/status.js.map +0 -1
  358. package/resources/drip/status.mjs +0 -12
  359. package/resources/drip/status.mjs.map +0 -1
  360. package/resources/loyalty/transaction-entries.d.ts +0 -175
  361. package/resources/loyalty/transaction-entries.d.ts.map +0 -1
  362. package/resources/loyalty/transaction-entries.js +0 -16
  363. package/resources/loyalty/transaction-entries.js.map +0 -1
  364. package/resources/loyalty/transaction-entries.mjs +0 -12
  365. package/resources/loyalty/transaction-entries.mjs.map +0 -1
  366. package/resources/users/wallets.d.ts +0 -193
  367. package/resources/users/wallets.d.ts.map +0 -1
  368. package/resources/users/wallets.js +0 -28
  369. package/resources/users/wallets.js.map +0 -1
  370. package/resources/users/wallets.mjs +0 -24
  371. package/resources/users/wallets.mjs.map +0 -1
  372. package/src/resources/auction-bids.ts +0 -123
  373. package/src/resources/drip/drip.ts +0 -25
  374. package/src/resources/drip/index.ts +0 -5
  375. package/src/resources/drip/quests.ts +0 -210
  376. package/src/resources/drip/status.ts +0 -33
  377. package/src/resources/loyalty/transaction-entries.ts +0 -229
  378. package/src/resources/users/wallets.ts +0 -271
@@ -6,33 +6,44 @@ import * as Core from '../../core';
6
6
  export class RuleEdits extends APIResource {
7
7
  /**
8
8
  * Retrieve configured loyalty rule edits with optional pagination and filters
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * const ruleEdits = await client.loyalty.ruleEdits.list({
13
+ * loyaltyRuleId: true,
14
+ * });
15
+ * ```
9
16
  */
10
- retrieve(
11
- query: RuleEditRetrieveParams,
12
- options?: Core.RequestOptions,
13
- ): Core.APIPromise<RuleEditRetrieveResponse> {
17
+ list(query: RuleEditListParams, options?: Core.RequestOptions): Core.APIPromise<RuleEditListResponse> {
14
18
  return this._client.get('/api/loyalty/rule_edits', { query, ...options });
15
19
  }
16
20
 
17
21
  /**
18
22
  * Restore a loyalty rule from a rule edit
23
+ *
24
+ * @example
25
+ * ```ts
26
+ * const response = await client.loyalty.ruleEdits.restore(
27
+ * '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
28
+ * );
29
+ * ```
19
30
  */
20
31
  restore(
21
32
  id: string,
22
33
  body?: RuleEditRestoreParams | null | undefined,
23
34
  options?: Core.RequestOptions,
24
35
  ): Core.APIPromise<RuleEditRestoreResponse> {
25
- return this._client.post(`/api/api/loyalty/rule_edits/${id}/restore`, { body, ...options });
36
+ return this._client.post(`/api/loyalty/rule_edits/${id}/restore`, { body, ...options });
26
37
  }
27
38
  }
28
39
 
29
- export interface RuleEditRetrieveResponse {
30
- data: Array<RuleEditRetrieveResponse.Data>;
40
+ export interface RuleEditListResponse {
41
+ data: Array<RuleEditListResponse.Data>;
31
42
 
32
43
  hasNextPage: boolean;
33
44
  }
34
45
 
35
- export namespace RuleEditRetrieveResponse {
46
+ export namespace RuleEditListResponse {
36
47
  export interface Data {
37
48
  /**
38
49
  * Unique identifier for the rule edit
@@ -110,16 +121,41 @@ export namespace RuleEditRetrieveResponse {
110
121
  */
111
122
  deletedAt: string | null;
112
123
 
124
+ /**
125
+ * Description of the loyalty rule
126
+ */
127
+ description: string;
128
+
129
+ /**
130
+ * End time of the loyalty rule
131
+ */
132
+ endTime: string;
133
+
113
134
  /**
114
135
  * Frequency of the loyalty rule
115
136
  */
116
137
  frequency: string;
117
138
 
139
+ /**
140
+ * Name of the loyalty rule
141
+ */
142
+ name: string;
143
+
118
144
  /**
119
145
  * Unique identifier for the organization
120
146
  */
121
147
  organizationId: string;
122
148
 
149
+ /**
150
+ * Type of the reward
151
+ */
152
+ rewardType: 'points' | 'multiplier' | 'badge';
153
+
154
+ /**
155
+ * Start time of the loyalty rule
156
+ */
157
+ startTime: string;
158
+
123
159
  /**
124
160
  * Type of the loyalty rule
125
161
  */
@@ -140,10 +176,872 @@ export namespace RuleEditRetrieveResponse {
140
176
  */
141
177
  collectionAddress?: string;
142
178
 
179
+ /**
180
+ * URL of the media associated with the loyalty rule
181
+ */
182
+ mediaUrl?: string | null;
183
+
143
184
  /**
144
185
  * Optional metadata for the loyalty rule
145
186
  */
146
- metadata?: Record<string, unknown>;
187
+ metadata?: { [key: string]: Data.Metadata };
188
+ }
189
+
190
+ export namespace Data {
191
+ export interface Metadata {
192
+ /**
193
+ * Number of tokens per batch.
194
+ */
195
+ batchSize?: number | null;
196
+
197
+ /**
198
+ * Text displayed on the action button.
199
+ */
200
+ buttonText?: string | null;
201
+
202
+ /**
203
+ * Flag indicating if commenting is required.
204
+ */
205
+ checkComment?: boolean | null;
206
+
207
+ /**
208
+ * Flag indicating if liking the post is required.
209
+ */
210
+ checkLike?: boolean | null;
211
+
212
+ /**
213
+ * Flag indicating if reposting is required.
214
+ */
215
+ checkRepost?: boolean | null;
216
+
217
+ /**
218
+ * Text to check in the Twitter post, username, or bio.
219
+ */
220
+ checkText?: string | null;
221
+
222
+ /**
223
+ * Array of collections associated with the rule.
224
+ */
225
+ collection?: Array<Metadata.Collection>;
226
+
227
+ /**
228
+ * Conditions for completing the profile.
229
+ */
230
+ completeProfileConditions?: { [key: string]: boolean } | null;
231
+
232
+ /**
233
+ * Description of the external rule condition (only for external rules)
234
+ */
235
+ conditionDescription?: string;
236
+
237
+ /**
238
+ * Object containing details for the call-to-action.
239
+ */
240
+ cta?: Metadata.Cta | null;
241
+
242
+ /**
243
+ * API key for custom rewards integration.
244
+ */
245
+ customRewardsApiKey?: string;
246
+
247
+ /**
248
+ * Flag indicating if the rule should use direct RPC to get the balance of tokens.
249
+ */
250
+ directRpc?: boolean;
251
+
252
+ /**
253
+ * Array of Discord servers, channels, and roles to join.
254
+ */
255
+ discordServersToJoin?: Array<Metadata.DiscordServersToJoin> | null;
256
+
257
+ /**
258
+ * Array of drip quests required to complete the rule.
259
+ */
260
+ dripQuestsToComplete?: Array<Metadata.DripQuestsToComplete> | null;
261
+
262
+ /**
263
+ * Flag indicating whether joining Discord servers is required.
264
+ */
265
+ enableJoinDiscordServers?: boolean | null;
266
+
267
+ /**
268
+ * Flag indicating whether streaks are enabled.
269
+ */
270
+ enableStreaks?: boolean | null;
271
+
272
+ /**
273
+ * Flag indicating whether the verified multiplier is enabled.
274
+ */
275
+ enableVerifiedMultiplier?: boolean;
276
+
277
+ /**
278
+ * Fill source of the order for the token sale
279
+ */
280
+ fillSource?: string;
281
+
282
+ /**
283
+ * Percentage reward given to a user for their first referral.
284
+ */
285
+ firstReferralReward?: number | null;
286
+
287
+ /**
288
+ * Flag indicating whether the fill source is included.
289
+ */
290
+ hasFillSource?: boolean;
291
+
292
+ /**
293
+ * Indicates if the item has never been sold.
294
+ */
295
+ hasNeverSold?: boolean;
296
+
297
+ /**
298
+ * Indicates if the full royalty has been paid for items.
299
+ */
300
+ hasPaidFullRoyalty?: boolean;
301
+
302
+ /**
303
+ * Flag indicating if the sale currency is included.
304
+ */
305
+ hasSaleCurrency?: boolean;
306
+
307
+ /**
308
+ * Indicates if the user has a verified Twitter account.
309
+ */
310
+ hasVerifiedTwitter?: boolean;
311
+
312
+ /**
313
+ * URL of the image associated with the rule.
314
+ */
315
+ imageUrl?: string | null;
316
+
317
+ /**
318
+ * If enabled, the first transaction done on the platform will complete this rule
319
+ */
320
+ isCheckInOnEveryTxn?: boolean;
321
+
322
+ /**
323
+ * Indicates if the multiplier has been applied to rewards.
324
+ */
325
+ isMultiplierApplied?: boolean;
326
+
327
+ /**
328
+ * Flag indicating if the rule is restricted to new users.
329
+ */
330
+ isRestrictedToNewUsers?: boolean;
331
+
332
+ /**
333
+ * Flag indicating if rewards are applied retroactively.
334
+ */
335
+ isRetroactive?: boolean | null;
336
+
337
+ /**
338
+ * Flag indicating if the token hold multiplier is applied.
339
+ */
340
+ isTokenHoldMultiplier?: boolean;
341
+
342
+ /**
343
+ * Optional link associated with the metadata.
344
+ */
345
+ link?: string | null;
346
+
347
+ /**
348
+ * Liquidity pool details.
349
+ */
350
+ liquidity?: Metadata.Liquidity;
351
+
352
+ /**
353
+ * Maximum quantity constraint for token holding.
354
+ */
355
+ maxQty?: number | null;
356
+
357
+ /**
358
+ * Minimum quantity constraint for token holding.
359
+ */
360
+ minQty?: number | null;
361
+
362
+ /**
363
+ * Array of loyalty currency IDs used for multipliers.
364
+ */
365
+ multiplierLoyaltyCurrencyIds?: Array<string> | null;
366
+
367
+ /**
368
+ * Flag indicating whether to include only known users.
369
+ */
370
+ onlyKnownUsers?: boolean;
371
+
372
+ /**
373
+ * Flag indicating whether to include only native tokens.
374
+ */
375
+ onlyNative?: boolean;
376
+
377
+ /**
378
+ * Flag indicating whether to include only non-listed items.
379
+ */
380
+ onlyNonListed?: boolean;
381
+
382
+ /**
383
+ * Indicates if only existing users are rewarded.
384
+ */
385
+ onlyRewardExistingUser?: boolean;
386
+
387
+ /**
388
+ * give points for only one token ownership per contract
389
+ */
390
+ onlyRewardSingleTokenOwnership?: boolean | null;
391
+
392
+ /**
393
+ * Promotional code associated with the rule.
394
+ */
395
+ promoCode?: string;
396
+
397
+ /**
398
+ * URL of the CSV file containing promo codes.
399
+ */
400
+ promoCodeCsvUrl?: string;
401
+
402
+ /**
403
+ * Numbers of the promotional code to be generated.
404
+ */
405
+ promoCodeLength?: number | null;
406
+
407
+ /**
408
+ * Type of the promotional code.
409
+ */
410
+ promoCodeType?: 'code' | 'csv' | 'generate';
411
+
412
+ /**
413
+ * Array defining ranges and corresponding rewards.
414
+ */
415
+ range?: Array<Metadata.Range>;
416
+
417
+ /**
418
+ * Object defining referral requirements.
419
+ */
420
+ referralRequirements?: Metadata.ReferralRequirements | null;
421
+
422
+ /**
423
+ * Lump sum reward given to a referrer.
424
+ */
425
+ referrerReward?: number | null;
426
+
427
+ /**
428
+ * Loyalty currency ID of the referrer reward.
429
+ */
430
+ referrerRewardLoyaltyCurrencyId?: string | null;
431
+
432
+ /**
433
+ * Flag indicating if the post link is required.
434
+ */
435
+ requirePostLink?: boolean | null;
436
+
437
+ /**
438
+ * Flag indicating if the rule can also reward badges per range.
439
+ */
440
+ rewardBadgePerRange?: boolean;
441
+
442
+ /**
443
+ * Flag indicating if the reward is rewarded by batch.
444
+ */
445
+ rewardByBatch?: boolean | null;
446
+
447
+ /**
448
+ * Flag indicating if the reward is rewarded per action.
449
+ */
450
+ rewardPerAction?: boolean | null;
451
+
452
+ /**
453
+ * Flag indicating if rewards are given per impression.
454
+ */
455
+ rewardPerImpression?: boolean | null;
456
+
457
+ /**
458
+ * Flag indicating if the rule should reward based on value of traded tokens
459
+ * instead of count.
460
+ */
461
+ rewardPerValue?: boolean;
462
+
463
+ /**
464
+ * Wallet address of the user can only be used if userId is not provided
465
+ */
466
+ royaltyAddress?: string;
467
+
468
+ /**
469
+ * Royalty percentage of the item.
470
+ */
471
+ royaltyPercentage?: number;
472
+
473
+ /**
474
+ * Currency associated with sales.
475
+ */
476
+ saleCurrency?: string;
477
+
478
+ /**
479
+ * Percentage reward given for a second-level referral.
480
+ */
481
+ secondReferralReward?: number | null;
482
+
483
+ /**
484
+ * Flag indicating if the multiplier is skipped.
485
+ */
486
+ skipMultiplier?: boolean | null;
487
+
488
+ /**
489
+ * Object containing details of the associated smart contract.
490
+ */
491
+ smartContract?: Metadata.SmartContract;
492
+
493
+ /**
494
+ * Array of snapshot proposals for the rule.
495
+ */
496
+ snapshotProposals?: Array<Metadata.SnapshotProposal> | null;
497
+
498
+ /**
499
+ * Social media platform associated with the rule.
500
+ */
501
+ socialPlatform?:
502
+ | 'Custom'
503
+ | 'Discord'
504
+ | 'EpicGames'
505
+ | 'Instagram'
506
+ | 'Steam'
507
+ | 'Telegram'
508
+ | 'TikTok'
509
+ | 'Twitch'
510
+ | 'X(Twitter)'
511
+ | 'YouTube'
512
+ | 'Google'
513
+ | null;
514
+
515
+ /**
516
+ * URL of the social platform's logo.
517
+ */
518
+ socialPlatformLogo?: string | null;
519
+
520
+ /**
521
+ * Name of the social platform.
522
+ */
523
+ socialPlatformName?: string | null;
524
+
525
+ /**
526
+ * ID of the Steam app.
527
+ */
528
+ steamAppId?: string | null;
529
+
530
+ /**
531
+ * Array of streak milestones and corresponding rewards.
532
+ */
533
+ streakArray?: Array<Metadata.StreakArray> | null;
534
+
535
+ /**
536
+ * Metadata for swap loyalty rules
537
+ */
538
+ swap?: Metadata.Swap;
539
+
540
+ /**
541
+ * ID of the Telegram channel.
542
+ */
543
+ telegramChannelId?: string | null;
544
+
545
+ /**
546
+ * Time delay in seconds to verify actions.
547
+ */
548
+ timeDelayToVerifySeconds?: string | number | null;
549
+
550
+ /**
551
+ * Flag indicating if all contracts are tracked.
552
+ */
553
+ trackAllContracts?: boolean | null;
554
+
555
+ /**
556
+ * Flag indicating if the progress is tracked. If enabled, the rule can only be
557
+ * completed once the progress is 100%.
558
+ */
559
+ trackProgress?: boolean | null;
560
+
561
+ /**
562
+ * URL of the associated Twitter account.
563
+ */
564
+ twitterAccountUrl?: string;
565
+
566
+ /**
567
+ * Hashtag associated with the Twitter post.
568
+ */
569
+ twitterHashtag?: string;
570
+
571
+ /**
572
+ * URL of the associated Twitter post.
573
+ */
574
+ twitterPostUrl?: string;
575
+
576
+ /**
577
+ * Unique identifier of the Twitter user.
578
+ */
579
+ twitterUserId?: string;
580
+
581
+ /**
582
+ * Twitter username of the user.
583
+ */
584
+ twitterUsername?: string;
585
+
586
+ /**
587
+ * Minimum length of the verification text.
588
+ */
589
+ verificationTextMinimumLength?: number | null;
590
+
591
+ /**
592
+ * Multiplier applied to rewards for verified users.
593
+ */
594
+ verifiedMultiplier?: number | null;
595
+
596
+ /**
597
+ * Placeholder text for verification input fields.
598
+ */
599
+ verifyPlaceHolderText?: string | null;
600
+
601
+ /**
602
+ * Type of wallet associated with the rule.
603
+ */
604
+ walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | 'cosmos' | 'ultra' | 'agw' | null;
605
+
606
+ /**
607
+ * ID of the Youtube channel.
608
+ */
609
+ youtubeChannelId?: string | null;
610
+
611
+ /**
612
+ * ID of the Youtube video.
613
+ */
614
+ youtubeVideoId?: string | null;
615
+ }
616
+
617
+ export namespace Metadata {
618
+ export interface Collection {
619
+ /**
620
+ * Blockchain address of the collection.
621
+ */
622
+ address?: string;
623
+
624
+ /**
625
+ * Multiplier applied to the rewards for this collection.
626
+ */
627
+ multiplier?: number;
628
+
629
+ /**
630
+ * Blockchain network of the collection.
631
+ */
632
+ network?:
633
+ | 'abstract'
634
+ | 'abstractTestnet'
635
+ | 'apechain'
636
+ | 'arbitrum'
637
+ | 'avalanche'
638
+ | 'avalancheFuji'
639
+ | 'base'
640
+ | 'baseSepolia'
641
+ | 'berachain'
642
+ | 'berachainArtio'
643
+ | 'berachainBepolia'
644
+ | 'binance'
645
+ | 'bscTestnet'
646
+ | 'campTestnet'
647
+ | 'fantom'
648
+ | 'fantomTestnet'
649
+ | 'flowMainnet'
650
+ | 'mainnet'
651
+ | 'optimism'
652
+ | 'polygon'
653
+ | 'polygon_mumbai'
654
+ | 'skaleNebula'
655
+ | 'solana'
656
+ | 'sophon'
657
+ | 'sophonTestnet'
658
+ | 'sui'
659
+ | 'superseed'
660
+ | 'superseedSepolia'
661
+ | 'vanar'
662
+ | 'xai'
663
+ | 'zksync'
664
+ | 'coti'
665
+ | 'cotiTestnet'
666
+ | 'morph'
667
+ | 'morphTestnet'
668
+ | 'morphHolesky'
669
+ | 'ultra'
670
+ | 'ultraTestnet'
671
+ | 'nitrograph'
672
+ | 'sepolia'
673
+ | 'optimism_sepolia'
674
+ | 'arbitrumSepolia'
675
+ | 'goerli'
676
+ | 'optimism_goerli'
677
+ | 'arbitrumGoerli'
678
+ | 'basecamp';
679
+ }
680
+
681
+ /**
682
+ * Object containing details for the call-to-action.
683
+ */
684
+ export interface Cta {
685
+ /**
686
+ * Link for the call-to-action.
687
+ */
688
+ href?: string | null;
689
+
690
+ /**
691
+ * Label for the call-to-action.
692
+ */
693
+ label?: string | null;
694
+ }
695
+
696
+ export interface DiscordServersToJoin {
697
+ /**
698
+ * ID of the Discord server to join.
699
+ */
700
+ id?: string;
701
+
702
+ /**
703
+ * Array of Discord channels to join.
704
+ */
705
+ channels?: Array<DiscordServersToJoin.Channel>;
706
+
707
+ /**
708
+ * Array of roles to assign in the Discord server.
709
+ */
710
+ roles?: Array<DiscordServersToJoin.Role>;
711
+ }
712
+
713
+ export namespace DiscordServersToJoin {
714
+ export interface Channel {
715
+ /**
716
+ * ID of the Discord channel.
717
+ */
718
+ id?: string;
719
+
720
+ /**
721
+ * Array of emojis used in the channel.
722
+ */
723
+ emojis?: Array<Channel.Emoji>;
724
+
725
+ /**
726
+ * Phrase of text to be present in the discord message
727
+ */
728
+ text?: string;
729
+ }
730
+
731
+ export namespace Channel {
732
+ export interface Emoji {
733
+ /**
734
+ * ID of the emoji used in the channel.
735
+ */
736
+ id?: string;
737
+ }
738
+ }
739
+
740
+ export interface Role {
741
+ /**
742
+ * ID of the role in the Discord server.
743
+ */
744
+ id: string;
745
+ }
746
+ }
747
+
748
+ export interface DripQuestsToComplete {
749
+ /**
750
+ * ID of the drip quest to complete.
751
+ */
752
+ id: string;
753
+ }
754
+
755
+ /**
756
+ * Liquidity pool details.
757
+ */
758
+ export interface Liquidity {
759
+ /**
760
+ * Calculation type of the liquidity pool.
761
+ */
762
+ calculationType?: 'fixed' | 'custom';
763
+
764
+ /**
765
+ * Custom function to calculate the the reward amount based on the liquidity
766
+ * provided per day. X is the reward amount, Y is the liquidity provided per day in
767
+ * USD.
768
+ */
769
+ customFunction?: string;
770
+
771
+ /**
772
+ * Liquidity provided per day in USD
773
+ */
774
+ liquidityPerDay?: number;
775
+
776
+ /**
777
+ * Blockchain network of the liquidity pool.
778
+ */
779
+ network?:
780
+ | 'abstract'
781
+ | 'abstractTestnet'
782
+ | 'apechain'
783
+ | 'arbitrum'
784
+ | 'avalanche'
785
+ | 'avalancheFuji'
786
+ | 'base'
787
+ | 'baseSepolia'
788
+ | 'berachain'
789
+ | 'berachainArtio'
790
+ | 'berachainBepolia'
791
+ | 'binance'
792
+ | 'bscTestnet'
793
+ | 'campTestnet'
794
+ | 'fantom'
795
+ | 'fantomTestnet'
796
+ | 'flowMainnet'
797
+ | 'mainnet'
798
+ | 'optimism'
799
+ | 'polygon'
800
+ | 'polygon_mumbai'
801
+ | 'skaleNebula'
802
+ | 'solana'
803
+ | 'sophon'
804
+ | 'sophonTestnet'
805
+ | 'sui'
806
+ | 'superseed'
807
+ | 'superseedSepolia'
808
+ | 'vanar'
809
+ | 'xai'
810
+ | 'zksync'
811
+ | 'coti'
812
+ | 'cotiTestnet'
813
+ | 'morph'
814
+ | 'morphTestnet'
815
+ | 'morphHolesky'
816
+ | 'ultra'
817
+ | 'ultraTestnet'
818
+ | 'nitrograph'
819
+ | 'sepolia'
820
+ | 'optimism_sepolia'
821
+ | 'arbitrumSepolia'
822
+ | 'goerli'
823
+ | 'optimism_goerli'
824
+ | 'arbitrumGoerli'
825
+ | 'basecamp';
826
+
827
+ /**
828
+ * Indicates if only in-range liquidity is rewarded.
829
+ */
830
+ onlyRewardInRangeLiquidity?: boolean;
831
+
832
+ /**
833
+ * Array of liquidity pools associated with the rule.
834
+ */
835
+ pools?: Array<Liquidity.Pool>;
836
+
837
+ /**
838
+ * Protocol of the liquidity pool.
839
+ */
840
+ protocol?: string;
841
+ }
842
+
843
+ export namespace Liquidity {
844
+ export interface Pool {
845
+ /**
846
+ * Unique identifier of the liquidity pool.
847
+ */
848
+ id: string;
849
+ }
850
+ }
851
+
852
+ export interface Range {
853
+ /**
854
+ * Reward amount for this range.
855
+ */
856
+ amount: number;
857
+
858
+ /**
859
+ * End value of the range.
860
+ */
861
+ endRange: number;
862
+
863
+ /**
864
+ * Start value of the range.
865
+ */
866
+ startRange: number;
867
+
868
+ /**
869
+ * ID of the loyalty badge for this range.
870
+ */
871
+ loyaltyBadgeId?: string;
872
+
873
+ /**
874
+ * Amount of the loyalty multiplier for this range.
875
+ */
876
+ loyaltyMultiplierAmount?: number;
877
+ }
878
+
879
+ /**
880
+ * Object defining referral requirements.
881
+ */
882
+ export interface ReferralRequirements {
883
+ /**
884
+ * Flag indicating if achieving points is required.
885
+ */
886
+ achievePoints?: boolean | null;
887
+
888
+ /**
889
+ * Flag indicating if completing the profile is required.
890
+ */
891
+ completeProfile?: boolean | null;
892
+
893
+ /**
894
+ * Flag indicating if connecting Discord is required.
895
+ */
896
+ connectDiscord?: boolean | null;
897
+
898
+ /**
899
+ * Flag indicating if connecting email is required.
900
+ */
901
+ connectEmail?: boolean | null;
902
+
903
+ /**
904
+ * Flag indicating if connecting Twitter is required.
905
+ */
906
+ connectTwitter?: boolean | null;
907
+
908
+ points?: ReferralRequirements.Points | null;
909
+ }
910
+
911
+ export namespace ReferralRequirements {
912
+ export interface Points {
913
+ /**
914
+ * Points required for referral.
915
+ */
916
+ amount?: number | null;
917
+
918
+ /**
919
+ * ID of the loyalty currency for referral.
920
+ */
921
+ loyaltyCurrecyId?: string | null;
922
+ }
923
+ }
924
+
925
+ /**
926
+ * Object containing details of the associated smart contract.
927
+ */
928
+ export interface SmartContract {
929
+ /**
930
+ * Mapping of addresses for the smart contract.
931
+ */
932
+ addressMapping?: string | null;
933
+
934
+ /**
935
+ * Object containing details of the amount multiplier from the event.
936
+ */
937
+ amountMultiplier?: SmartContract.AmountMultiplier | null;
938
+
939
+ /**
940
+ * ID of the smart contract.
941
+ */
942
+ contractId?: string | null;
943
+
944
+ /**
945
+ * Criteria to evaluate the smart contract event.
946
+ */
947
+ criteria?: 'everyEvent' | 'byParameter' | null;
948
+
949
+ /**
950
+ * Event emitted by the smart contract.
951
+ */
952
+ event?: string | null;
953
+
954
+ /**
955
+ * Array of parameters for the smart contract.
956
+ */
957
+ params?: Array<SmartContract.Param> | null;
958
+
959
+ /**
960
+ * Type of the smart contract interaction.
961
+ */
962
+ type?: 'function' | 'event' | null;
963
+ }
964
+
965
+ export namespace SmartContract {
966
+ /**
967
+ * Object containing details of the amount multiplier from the event.
968
+ */
969
+ export interface AmountMultiplier {
970
+ /**
971
+ * Mapping of the value for the smart contract.
972
+ */
973
+ valueMapping?: string | null;
974
+ }
975
+
976
+ export interface Param {
977
+ /**
978
+ * Condition to check for the parameter.
979
+ */
980
+ condition?: string | null;
981
+
982
+ /**
983
+ * Name of the smart contract parameter.
984
+ */
985
+ name?: string | null;
986
+
987
+ /**
988
+ * Value of the parameter.
989
+ */
990
+ value?: string | null;
991
+ }
992
+ }
993
+
994
+ export interface SnapshotProposal {
995
+ /**
996
+ * ID of the snapshot proposal.
997
+ */
998
+ id: string;
999
+
1000
+ /**
1001
+ * Space associated with the snapshot proposal.
1002
+ */
1003
+ space: string;
1004
+ }
1005
+
1006
+ export interface StreakArray {
1007
+ /**
1008
+ * Reward amount for achieving the streak milestone.
1009
+ */
1010
+ streakAmount: number;
1011
+
1012
+ /**
1013
+ * Milestone required to achieve the streak.
1014
+ */
1015
+ streakMilestone: number;
1016
+ }
1017
+
1018
+ /**
1019
+ * Metadata for swap loyalty rules
1020
+ */
1021
+ export interface Swap {
1022
+ provider?: 'any' | 'relay' | 'lifi';
1023
+
1024
+ relayReferrerId?: string;
1025
+
1026
+ requireCrossChainSwap?: boolean;
1027
+
1028
+ swappedToChain?: 'any' | number | string;
1029
+
1030
+ swappedToTokens?: Array<Swap.SwappedToToken>;
1031
+
1032
+ tokenMode?: 'any' | 'specific';
1033
+
1034
+ trackTokenAmount?: boolean;
1035
+ }
1036
+
1037
+ export namespace Swap {
1038
+ export interface SwappedToToken {
1039
+ address: string;
1040
+
1041
+ chainId: string;
1042
+ }
1043
+ }
1044
+ }
147
1045
  }
148
1046
 
149
1047
  /**
@@ -170,16 +1068,41 @@ export namespace RuleEditRetrieveResponse {
170
1068
  */
171
1069
  deletedAt: string | null;
172
1070
 
1071
+ /**
1072
+ * Description of the loyalty rule
1073
+ */
1074
+ description: string;
1075
+
1076
+ /**
1077
+ * End time of the loyalty rule
1078
+ */
1079
+ endTime: string;
1080
+
173
1081
  /**
174
1082
  * Frequency of the loyalty rule
175
1083
  */
176
1084
  frequency: string;
177
1085
 
1086
+ /**
1087
+ * Name of the loyalty rule
1088
+ */
1089
+ name: string;
1090
+
178
1091
  /**
179
1092
  * Unique identifier for the organization
180
1093
  */
181
1094
  organizationId: string;
182
1095
 
1096
+ /**
1097
+ * Type of the reward
1098
+ */
1099
+ rewardType: 'points' | 'multiplier' | 'badge';
1100
+
1101
+ /**
1102
+ * Start time of the loyalty rule
1103
+ */
1104
+ startTime: string;
1105
+
183
1106
  /**
184
1107
  * Type of the loyalty rule
185
1108
  */
@@ -200,10 +1123,872 @@ export namespace RuleEditRetrieveResponse {
200
1123
  */
201
1124
  collectionAddress?: string;
202
1125
 
1126
+ /**
1127
+ * URL of the media associated with the loyalty rule
1128
+ */
1129
+ mediaUrl?: string | null;
1130
+
203
1131
  /**
204
1132
  * Optional metadata for the loyalty rule
205
1133
  */
206
- metadata?: Record<string, unknown>;
1134
+ metadata?: { [key: string]: PreviousData.Metadata };
1135
+ }
1136
+
1137
+ export namespace PreviousData {
1138
+ export interface Metadata {
1139
+ /**
1140
+ * Number of tokens per batch.
1141
+ */
1142
+ batchSize?: number | null;
1143
+
1144
+ /**
1145
+ * Text displayed on the action button.
1146
+ */
1147
+ buttonText?: string | null;
1148
+
1149
+ /**
1150
+ * Flag indicating if commenting is required.
1151
+ */
1152
+ checkComment?: boolean | null;
1153
+
1154
+ /**
1155
+ * Flag indicating if liking the post is required.
1156
+ */
1157
+ checkLike?: boolean | null;
1158
+
1159
+ /**
1160
+ * Flag indicating if reposting is required.
1161
+ */
1162
+ checkRepost?: boolean | null;
1163
+
1164
+ /**
1165
+ * Text to check in the Twitter post, username, or bio.
1166
+ */
1167
+ checkText?: string | null;
1168
+
1169
+ /**
1170
+ * Array of collections associated with the rule.
1171
+ */
1172
+ collection?: Array<Metadata.Collection>;
1173
+
1174
+ /**
1175
+ * Conditions for completing the profile.
1176
+ */
1177
+ completeProfileConditions?: { [key: string]: boolean } | null;
1178
+
1179
+ /**
1180
+ * Description of the external rule condition (only for external rules)
1181
+ */
1182
+ conditionDescription?: string;
1183
+
1184
+ /**
1185
+ * Object containing details for the call-to-action.
1186
+ */
1187
+ cta?: Metadata.Cta | null;
1188
+
1189
+ /**
1190
+ * API key for custom rewards integration.
1191
+ */
1192
+ customRewardsApiKey?: string;
1193
+
1194
+ /**
1195
+ * Flag indicating if the rule should use direct RPC to get the balance of tokens.
1196
+ */
1197
+ directRpc?: boolean;
1198
+
1199
+ /**
1200
+ * Array of Discord servers, channels, and roles to join.
1201
+ */
1202
+ discordServersToJoin?: Array<Metadata.DiscordServersToJoin> | null;
1203
+
1204
+ /**
1205
+ * Array of drip quests required to complete the rule.
1206
+ */
1207
+ dripQuestsToComplete?: Array<Metadata.DripQuestsToComplete> | null;
1208
+
1209
+ /**
1210
+ * Flag indicating whether joining Discord servers is required.
1211
+ */
1212
+ enableJoinDiscordServers?: boolean | null;
1213
+
1214
+ /**
1215
+ * Flag indicating whether streaks are enabled.
1216
+ */
1217
+ enableStreaks?: boolean | null;
1218
+
1219
+ /**
1220
+ * Flag indicating whether the verified multiplier is enabled.
1221
+ */
1222
+ enableVerifiedMultiplier?: boolean;
1223
+
1224
+ /**
1225
+ * Fill source of the order for the token sale
1226
+ */
1227
+ fillSource?: string;
1228
+
1229
+ /**
1230
+ * Percentage reward given to a user for their first referral.
1231
+ */
1232
+ firstReferralReward?: number | null;
1233
+
1234
+ /**
1235
+ * Flag indicating whether the fill source is included.
1236
+ */
1237
+ hasFillSource?: boolean;
1238
+
1239
+ /**
1240
+ * Indicates if the item has never been sold.
1241
+ */
1242
+ hasNeverSold?: boolean;
1243
+
1244
+ /**
1245
+ * Indicates if the full royalty has been paid for items.
1246
+ */
1247
+ hasPaidFullRoyalty?: boolean;
1248
+
1249
+ /**
1250
+ * Flag indicating if the sale currency is included.
1251
+ */
1252
+ hasSaleCurrency?: boolean;
1253
+
1254
+ /**
1255
+ * Indicates if the user has a verified Twitter account.
1256
+ */
1257
+ hasVerifiedTwitter?: boolean;
1258
+
1259
+ /**
1260
+ * URL of the image associated with the rule.
1261
+ */
1262
+ imageUrl?: string | null;
1263
+
1264
+ /**
1265
+ * If enabled, the first transaction done on the platform will complete this rule
1266
+ */
1267
+ isCheckInOnEveryTxn?: boolean;
1268
+
1269
+ /**
1270
+ * Indicates if the multiplier has been applied to rewards.
1271
+ */
1272
+ isMultiplierApplied?: boolean;
1273
+
1274
+ /**
1275
+ * Flag indicating if the rule is restricted to new users.
1276
+ */
1277
+ isRestrictedToNewUsers?: boolean;
1278
+
1279
+ /**
1280
+ * Flag indicating if rewards are applied retroactively.
1281
+ */
1282
+ isRetroactive?: boolean | null;
1283
+
1284
+ /**
1285
+ * Flag indicating if the token hold multiplier is applied.
1286
+ */
1287
+ isTokenHoldMultiplier?: boolean;
1288
+
1289
+ /**
1290
+ * Optional link associated with the metadata.
1291
+ */
1292
+ link?: string | null;
1293
+
1294
+ /**
1295
+ * Liquidity pool details.
1296
+ */
1297
+ liquidity?: Metadata.Liquidity;
1298
+
1299
+ /**
1300
+ * Maximum quantity constraint for token holding.
1301
+ */
1302
+ maxQty?: number | null;
1303
+
1304
+ /**
1305
+ * Minimum quantity constraint for token holding.
1306
+ */
1307
+ minQty?: number | null;
1308
+
1309
+ /**
1310
+ * Array of loyalty currency IDs used for multipliers.
1311
+ */
1312
+ multiplierLoyaltyCurrencyIds?: Array<string> | null;
1313
+
1314
+ /**
1315
+ * Flag indicating whether to include only known users.
1316
+ */
1317
+ onlyKnownUsers?: boolean;
1318
+
1319
+ /**
1320
+ * Flag indicating whether to include only native tokens.
1321
+ */
1322
+ onlyNative?: boolean;
1323
+
1324
+ /**
1325
+ * Flag indicating whether to include only non-listed items.
1326
+ */
1327
+ onlyNonListed?: boolean;
1328
+
1329
+ /**
1330
+ * Indicates if only existing users are rewarded.
1331
+ */
1332
+ onlyRewardExistingUser?: boolean;
1333
+
1334
+ /**
1335
+ * give points for only one token ownership per contract
1336
+ */
1337
+ onlyRewardSingleTokenOwnership?: boolean | null;
1338
+
1339
+ /**
1340
+ * Promotional code associated with the rule.
1341
+ */
1342
+ promoCode?: string;
1343
+
1344
+ /**
1345
+ * URL of the CSV file containing promo codes.
1346
+ */
1347
+ promoCodeCsvUrl?: string;
1348
+
1349
+ /**
1350
+ * Numbers of the promotional code to be generated.
1351
+ */
1352
+ promoCodeLength?: number | null;
1353
+
1354
+ /**
1355
+ * Type of the promotional code.
1356
+ */
1357
+ promoCodeType?: 'code' | 'csv' | 'generate';
1358
+
1359
+ /**
1360
+ * Array defining ranges and corresponding rewards.
1361
+ */
1362
+ range?: Array<Metadata.Range>;
1363
+
1364
+ /**
1365
+ * Object defining referral requirements.
1366
+ */
1367
+ referralRequirements?: Metadata.ReferralRequirements | null;
1368
+
1369
+ /**
1370
+ * Lump sum reward given to a referrer.
1371
+ */
1372
+ referrerReward?: number | null;
1373
+
1374
+ /**
1375
+ * Loyalty currency ID of the referrer reward.
1376
+ */
1377
+ referrerRewardLoyaltyCurrencyId?: string | null;
1378
+
1379
+ /**
1380
+ * Flag indicating if the post link is required.
1381
+ */
1382
+ requirePostLink?: boolean | null;
1383
+
1384
+ /**
1385
+ * Flag indicating if the rule can also reward badges per range.
1386
+ */
1387
+ rewardBadgePerRange?: boolean;
1388
+
1389
+ /**
1390
+ * Flag indicating if the reward is rewarded by batch.
1391
+ */
1392
+ rewardByBatch?: boolean | null;
1393
+
1394
+ /**
1395
+ * Flag indicating if the reward is rewarded per action.
1396
+ */
1397
+ rewardPerAction?: boolean | null;
1398
+
1399
+ /**
1400
+ * Flag indicating if rewards are given per impression.
1401
+ */
1402
+ rewardPerImpression?: boolean | null;
1403
+
1404
+ /**
1405
+ * Flag indicating if the rule should reward based on value of traded tokens
1406
+ * instead of count.
1407
+ */
1408
+ rewardPerValue?: boolean;
1409
+
1410
+ /**
1411
+ * Wallet address of the user can only be used if userId is not provided
1412
+ */
1413
+ royaltyAddress?: string;
1414
+
1415
+ /**
1416
+ * Royalty percentage of the item.
1417
+ */
1418
+ royaltyPercentage?: number;
1419
+
1420
+ /**
1421
+ * Currency associated with sales.
1422
+ */
1423
+ saleCurrency?: string;
1424
+
1425
+ /**
1426
+ * Percentage reward given for a second-level referral.
1427
+ */
1428
+ secondReferralReward?: number | null;
1429
+
1430
+ /**
1431
+ * Flag indicating if the multiplier is skipped.
1432
+ */
1433
+ skipMultiplier?: boolean | null;
1434
+
1435
+ /**
1436
+ * Object containing details of the associated smart contract.
1437
+ */
1438
+ smartContract?: Metadata.SmartContract;
1439
+
1440
+ /**
1441
+ * Array of snapshot proposals for the rule.
1442
+ */
1443
+ snapshotProposals?: Array<Metadata.SnapshotProposal> | null;
1444
+
1445
+ /**
1446
+ * Social media platform associated with the rule.
1447
+ */
1448
+ socialPlatform?:
1449
+ | 'Custom'
1450
+ | 'Discord'
1451
+ | 'EpicGames'
1452
+ | 'Instagram'
1453
+ | 'Steam'
1454
+ | 'Telegram'
1455
+ | 'TikTok'
1456
+ | 'Twitch'
1457
+ | 'X(Twitter)'
1458
+ | 'YouTube'
1459
+ | 'Google'
1460
+ | null;
1461
+
1462
+ /**
1463
+ * URL of the social platform's logo.
1464
+ */
1465
+ socialPlatformLogo?: string | null;
1466
+
1467
+ /**
1468
+ * Name of the social platform.
1469
+ */
1470
+ socialPlatformName?: string | null;
1471
+
1472
+ /**
1473
+ * ID of the Steam app.
1474
+ */
1475
+ steamAppId?: string | null;
1476
+
1477
+ /**
1478
+ * Array of streak milestones and corresponding rewards.
1479
+ */
1480
+ streakArray?: Array<Metadata.StreakArray> | null;
1481
+
1482
+ /**
1483
+ * Metadata for swap loyalty rules
1484
+ */
1485
+ swap?: Metadata.Swap;
1486
+
1487
+ /**
1488
+ * ID of the Telegram channel.
1489
+ */
1490
+ telegramChannelId?: string | null;
1491
+
1492
+ /**
1493
+ * Time delay in seconds to verify actions.
1494
+ */
1495
+ timeDelayToVerifySeconds?: string | number | null;
1496
+
1497
+ /**
1498
+ * Flag indicating if all contracts are tracked.
1499
+ */
1500
+ trackAllContracts?: boolean | null;
1501
+
1502
+ /**
1503
+ * Flag indicating if the progress is tracked. If enabled, the rule can only be
1504
+ * completed once the progress is 100%.
1505
+ */
1506
+ trackProgress?: boolean | null;
1507
+
1508
+ /**
1509
+ * URL of the associated Twitter account.
1510
+ */
1511
+ twitterAccountUrl?: string;
1512
+
1513
+ /**
1514
+ * Hashtag associated with the Twitter post.
1515
+ */
1516
+ twitterHashtag?: string;
1517
+
1518
+ /**
1519
+ * URL of the associated Twitter post.
1520
+ */
1521
+ twitterPostUrl?: string;
1522
+
1523
+ /**
1524
+ * Unique identifier of the Twitter user.
1525
+ */
1526
+ twitterUserId?: string;
1527
+
1528
+ /**
1529
+ * Twitter username of the user.
1530
+ */
1531
+ twitterUsername?: string;
1532
+
1533
+ /**
1534
+ * Minimum length of the verification text.
1535
+ */
1536
+ verificationTextMinimumLength?: number | null;
1537
+
1538
+ /**
1539
+ * Multiplier applied to rewards for verified users.
1540
+ */
1541
+ verifiedMultiplier?: number | null;
1542
+
1543
+ /**
1544
+ * Placeholder text for verification input fields.
1545
+ */
1546
+ verifyPlaceHolderText?: string | null;
1547
+
1548
+ /**
1549
+ * Type of wallet associated with the rule.
1550
+ */
1551
+ walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | 'cosmos' | 'ultra' | 'agw' | null;
1552
+
1553
+ /**
1554
+ * ID of the Youtube channel.
1555
+ */
1556
+ youtubeChannelId?: string | null;
1557
+
1558
+ /**
1559
+ * ID of the Youtube video.
1560
+ */
1561
+ youtubeVideoId?: string | null;
1562
+ }
1563
+
1564
+ export namespace Metadata {
1565
+ export interface Collection {
1566
+ /**
1567
+ * Blockchain address of the collection.
1568
+ */
1569
+ address?: string;
1570
+
1571
+ /**
1572
+ * Multiplier applied to the rewards for this collection.
1573
+ */
1574
+ multiplier?: number;
1575
+
1576
+ /**
1577
+ * Blockchain network of the collection.
1578
+ */
1579
+ network?:
1580
+ | 'abstract'
1581
+ | 'abstractTestnet'
1582
+ | 'apechain'
1583
+ | 'arbitrum'
1584
+ | 'avalanche'
1585
+ | 'avalancheFuji'
1586
+ | 'base'
1587
+ | 'baseSepolia'
1588
+ | 'berachain'
1589
+ | 'berachainArtio'
1590
+ | 'berachainBepolia'
1591
+ | 'binance'
1592
+ | 'bscTestnet'
1593
+ | 'campTestnet'
1594
+ | 'fantom'
1595
+ | 'fantomTestnet'
1596
+ | 'flowMainnet'
1597
+ | 'mainnet'
1598
+ | 'optimism'
1599
+ | 'polygon'
1600
+ | 'polygon_mumbai'
1601
+ | 'skaleNebula'
1602
+ | 'solana'
1603
+ | 'sophon'
1604
+ | 'sophonTestnet'
1605
+ | 'sui'
1606
+ | 'superseed'
1607
+ | 'superseedSepolia'
1608
+ | 'vanar'
1609
+ | 'xai'
1610
+ | 'zksync'
1611
+ | 'coti'
1612
+ | 'cotiTestnet'
1613
+ | 'morph'
1614
+ | 'morphTestnet'
1615
+ | 'morphHolesky'
1616
+ | 'ultra'
1617
+ | 'ultraTestnet'
1618
+ | 'nitrograph'
1619
+ | 'sepolia'
1620
+ | 'optimism_sepolia'
1621
+ | 'arbitrumSepolia'
1622
+ | 'goerli'
1623
+ | 'optimism_goerli'
1624
+ | 'arbitrumGoerli'
1625
+ | 'basecamp';
1626
+ }
1627
+
1628
+ /**
1629
+ * Object containing details for the call-to-action.
1630
+ */
1631
+ export interface Cta {
1632
+ /**
1633
+ * Link for the call-to-action.
1634
+ */
1635
+ href?: string | null;
1636
+
1637
+ /**
1638
+ * Label for the call-to-action.
1639
+ */
1640
+ label?: string | null;
1641
+ }
1642
+
1643
+ export interface DiscordServersToJoin {
1644
+ /**
1645
+ * ID of the Discord server to join.
1646
+ */
1647
+ id?: string;
1648
+
1649
+ /**
1650
+ * Array of Discord channels to join.
1651
+ */
1652
+ channels?: Array<DiscordServersToJoin.Channel>;
1653
+
1654
+ /**
1655
+ * Array of roles to assign in the Discord server.
1656
+ */
1657
+ roles?: Array<DiscordServersToJoin.Role>;
1658
+ }
1659
+
1660
+ export namespace DiscordServersToJoin {
1661
+ export interface Channel {
1662
+ /**
1663
+ * ID of the Discord channel.
1664
+ */
1665
+ id?: string;
1666
+
1667
+ /**
1668
+ * Array of emojis used in the channel.
1669
+ */
1670
+ emojis?: Array<Channel.Emoji>;
1671
+
1672
+ /**
1673
+ * Phrase of text to be present in the discord message
1674
+ */
1675
+ text?: string;
1676
+ }
1677
+
1678
+ export namespace Channel {
1679
+ export interface Emoji {
1680
+ /**
1681
+ * ID of the emoji used in the channel.
1682
+ */
1683
+ id?: string;
1684
+ }
1685
+ }
1686
+
1687
+ export interface Role {
1688
+ /**
1689
+ * ID of the role in the Discord server.
1690
+ */
1691
+ id: string;
1692
+ }
1693
+ }
1694
+
1695
+ export interface DripQuestsToComplete {
1696
+ /**
1697
+ * ID of the drip quest to complete.
1698
+ */
1699
+ id: string;
1700
+ }
1701
+
1702
+ /**
1703
+ * Liquidity pool details.
1704
+ */
1705
+ export interface Liquidity {
1706
+ /**
1707
+ * Calculation type of the liquidity pool.
1708
+ */
1709
+ calculationType?: 'fixed' | 'custom';
1710
+
1711
+ /**
1712
+ * Custom function to calculate the the reward amount based on the liquidity
1713
+ * provided per day. X is the reward amount, Y is the liquidity provided per day in
1714
+ * USD.
1715
+ */
1716
+ customFunction?: string;
1717
+
1718
+ /**
1719
+ * Liquidity provided per day in USD
1720
+ */
1721
+ liquidityPerDay?: number;
1722
+
1723
+ /**
1724
+ * Blockchain network of the liquidity pool.
1725
+ */
1726
+ network?:
1727
+ | 'abstract'
1728
+ | 'abstractTestnet'
1729
+ | 'apechain'
1730
+ | 'arbitrum'
1731
+ | 'avalanche'
1732
+ | 'avalancheFuji'
1733
+ | 'base'
1734
+ | 'baseSepolia'
1735
+ | 'berachain'
1736
+ | 'berachainArtio'
1737
+ | 'berachainBepolia'
1738
+ | 'binance'
1739
+ | 'bscTestnet'
1740
+ | 'campTestnet'
1741
+ | 'fantom'
1742
+ | 'fantomTestnet'
1743
+ | 'flowMainnet'
1744
+ | 'mainnet'
1745
+ | 'optimism'
1746
+ | 'polygon'
1747
+ | 'polygon_mumbai'
1748
+ | 'skaleNebula'
1749
+ | 'solana'
1750
+ | 'sophon'
1751
+ | 'sophonTestnet'
1752
+ | 'sui'
1753
+ | 'superseed'
1754
+ | 'superseedSepolia'
1755
+ | 'vanar'
1756
+ | 'xai'
1757
+ | 'zksync'
1758
+ | 'coti'
1759
+ | 'cotiTestnet'
1760
+ | 'morph'
1761
+ | 'morphTestnet'
1762
+ | 'morphHolesky'
1763
+ | 'ultra'
1764
+ | 'ultraTestnet'
1765
+ | 'nitrograph'
1766
+ | 'sepolia'
1767
+ | 'optimism_sepolia'
1768
+ | 'arbitrumSepolia'
1769
+ | 'goerli'
1770
+ | 'optimism_goerli'
1771
+ | 'arbitrumGoerli'
1772
+ | 'basecamp';
1773
+
1774
+ /**
1775
+ * Indicates if only in-range liquidity is rewarded.
1776
+ */
1777
+ onlyRewardInRangeLiquidity?: boolean;
1778
+
1779
+ /**
1780
+ * Array of liquidity pools associated with the rule.
1781
+ */
1782
+ pools?: Array<Liquidity.Pool>;
1783
+
1784
+ /**
1785
+ * Protocol of the liquidity pool.
1786
+ */
1787
+ protocol?: string;
1788
+ }
1789
+
1790
+ export namespace Liquidity {
1791
+ export interface Pool {
1792
+ /**
1793
+ * Unique identifier of the liquidity pool.
1794
+ */
1795
+ id: string;
1796
+ }
1797
+ }
1798
+
1799
+ export interface Range {
1800
+ /**
1801
+ * Reward amount for this range.
1802
+ */
1803
+ amount: number;
1804
+
1805
+ /**
1806
+ * End value of the range.
1807
+ */
1808
+ endRange: number;
1809
+
1810
+ /**
1811
+ * Start value of the range.
1812
+ */
1813
+ startRange: number;
1814
+
1815
+ /**
1816
+ * ID of the loyalty badge for this range.
1817
+ */
1818
+ loyaltyBadgeId?: string;
1819
+
1820
+ /**
1821
+ * Amount of the loyalty multiplier for this range.
1822
+ */
1823
+ loyaltyMultiplierAmount?: number;
1824
+ }
1825
+
1826
+ /**
1827
+ * Object defining referral requirements.
1828
+ */
1829
+ export interface ReferralRequirements {
1830
+ /**
1831
+ * Flag indicating if achieving points is required.
1832
+ */
1833
+ achievePoints?: boolean | null;
1834
+
1835
+ /**
1836
+ * Flag indicating if completing the profile is required.
1837
+ */
1838
+ completeProfile?: boolean | null;
1839
+
1840
+ /**
1841
+ * Flag indicating if connecting Discord is required.
1842
+ */
1843
+ connectDiscord?: boolean | null;
1844
+
1845
+ /**
1846
+ * Flag indicating if connecting email is required.
1847
+ */
1848
+ connectEmail?: boolean | null;
1849
+
1850
+ /**
1851
+ * Flag indicating if connecting Twitter is required.
1852
+ */
1853
+ connectTwitter?: boolean | null;
1854
+
1855
+ points?: ReferralRequirements.Points | null;
1856
+ }
1857
+
1858
+ export namespace ReferralRequirements {
1859
+ export interface Points {
1860
+ /**
1861
+ * Points required for referral.
1862
+ */
1863
+ amount?: number | null;
1864
+
1865
+ /**
1866
+ * ID of the loyalty currency for referral.
1867
+ */
1868
+ loyaltyCurrecyId?: string | null;
1869
+ }
1870
+ }
1871
+
1872
+ /**
1873
+ * Object containing details of the associated smart contract.
1874
+ */
1875
+ export interface SmartContract {
1876
+ /**
1877
+ * Mapping of addresses for the smart contract.
1878
+ */
1879
+ addressMapping?: string | null;
1880
+
1881
+ /**
1882
+ * Object containing details of the amount multiplier from the event.
1883
+ */
1884
+ amountMultiplier?: SmartContract.AmountMultiplier | null;
1885
+
1886
+ /**
1887
+ * ID of the smart contract.
1888
+ */
1889
+ contractId?: string | null;
1890
+
1891
+ /**
1892
+ * Criteria to evaluate the smart contract event.
1893
+ */
1894
+ criteria?: 'everyEvent' | 'byParameter' | null;
1895
+
1896
+ /**
1897
+ * Event emitted by the smart contract.
1898
+ */
1899
+ event?: string | null;
1900
+
1901
+ /**
1902
+ * Array of parameters for the smart contract.
1903
+ */
1904
+ params?: Array<SmartContract.Param> | null;
1905
+
1906
+ /**
1907
+ * Type of the smart contract interaction.
1908
+ */
1909
+ type?: 'function' | 'event' | null;
1910
+ }
1911
+
1912
+ export namespace SmartContract {
1913
+ /**
1914
+ * Object containing details of the amount multiplier from the event.
1915
+ */
1916
+ export interface AmountMultiplier {
1917
+ /**
1918
+ * Mapping of the value for the smart contract.
1919
+ */
1920
+ valueMapping?: string | null;
1921
+ }
1922
+
1923
+ export interface Param {
1924
+ /**
1925
+ * Condition to check for the parameter.
1926
+ */
1927
+ condition?: string | null;
1928
+
1929
+ /**
1930
+ * Name of the smart contract parameter.
1931
+ */
1932
+ name?: string | null;
1933
+
1934
+ /**
1935
+ * Value of the parameter.
1936
+ */
1937
+ value?: string | null;
1938
+ }
1939
+ }
1940
+
1941
+ export interface SnapshotProposal {
1942
+ /**
1943
+ * ID of the snapshot proposal.
1944
+ */
1945
+ id: string;
1946
+
1947
+ /**
1948
+ * Space associated with the snapshot proposal.
1949
+ */
1950
+ space: string;
1951
+ }
1952
+
1953
+ export interface StreakArray {
1954
+ /**
1955
+ * Reward amount for achieving the streak milestone.
1956
+ */
1957
+ streakAmount: number;
1958
+
1959
+ /**
1960
+ * Milestone required to achieve the streak.
1961
+ */
1962
+ streakMilestone: number;
1963
+ }
1964
+
1965
+ /**
1966
+ * Metadata for swap loyalty rules
1967
+ */
1968
+ export interface Swap {
1969
+ provider?: 'any' | 'relay' | 'lifi';
1970
+
1971
+ relayReferrerId?: string;
1972
+
1973
+ requireCrossChainSwap?: boolean;
1974
+
1975
+ swappedToChain?: 'any' | number | string;
1976
+
1977
+ swappedToTokens?: Array<Swap.SwappedToToken>;
1978
+
1979
+ tokenMode?: 'any' | 'specific';
1980
+
1981
+ trackTokenAmount?: boolean;
1982
+ }
1983
+
1984
+ export namespace Swap {
1985
+ export interface SwappedToToken {
1986
+ address: string;
1987
+
1988
+ chainId: string;
1989
+ }
1990
+ }
1991
+ }
207
1992
  }
208
1993
  }
209
1994
  }
@@ -285,16 +2070,41 @@ export namespace RuleEditRestoreResponse {
285
2070
  */
286
2071
  deletedAt: string | null;
287
2072
 
2073
+ /**
2074
+ * Description of the loyalty rule
2075
+ */
2076
+ description: string;
2077
+
2078
+ /**
2079
+ * End time of the loyalty rule
2080
+ */
2081
+ endTime: string;
2082
+
288
2083
  /**
289
2084
  * Frequency of the loyalty rule
290
2085
  */
291
2086
  frequency: string;
292
2087
 
2088
+ /**
2089
+ * Name of the loyalty rule
2090
+ */
2091
+ name: string;
2092
+
293
2093
  /**
294
2094
  * Unique identifier for the organization
295
2095
  */
296
2096
  organizationId: string;
297
2097
 
2098
+ /**
2099
+ * Type of the reward
2100
+ */
2101
+ rewardType: 'points' | 'multiplier' | 'badge';
2102
+
2103
+ /**
2104
+ * Start time of the loyalty rule
2105
+ */
2106
+ startTime: string;
2107
+
298
2108
  /**
299
2109
  * Type of the loyalty rule
300
2110
  */
@@ -316,73 +2126,1822 @@ export namespace RuleEditRestoreResponse {
316
2126
  collectionAddress?: string;
317
2127
 
318
2128
  /**
319
- * Optional metadata for the loyalty rule
2129
+ * URL of the media associated with the loyalty rule
320
2130
  */
321
- metadata?: Record<string, unknown>;
322
- }
2131
+ mediaUrl?: string | null;
323
2132
 
324
- /**
325
- * Previous data of the rule before the edit
326
- */
327
- export interface PreviousData {
328
2133
  /**
329
- * Unique identifier for the loyalty rule
2134
+ * Optional metadata for the loyalty rule
330
2135
  */
331
- id: string;
2136
+ metadata?: { [key: string]: Data.Metadata };
2137
+ }
332
2138
 
333
- /**
334
- * Amount associated with the loyalty rule
335
- */
336
- amount: number;
2139
+ export namespace Data {
2140
+ export interface Metadata {
2141
+ /**
2142
+ * Number of tokens per batch.
2143
+ */
2144
+ batchSize?: number | null;
337
2145
 
338
- /**
339
- * Timestamp when the loyalty rule was created
340
- */
341
- createdAt: string;
2146
+ /**
2147
+ * Text displayed on the action button.
2148
+ */
2149
+ buttonText?: string | null;
342
2150
 
343
- /**
344
- * Timestamp when the loyalty rule was deleted (if applicable)
345
- */
346
- deletedAt: string | null;
2151
+ /**
2152
+ * Flag indicating if commenting is required.
2153
+ */
2154
+ checkComment?: boolean | null;
347
2155
 
348
- /**
349
- * Frequency of the loyalty rule
350
- */
351
- frequency: string;
2156
+ /**
2157
+ * Flag indicating if liking the post is required.
2158
+ */
2159
+ checkLike?: boolean | null;
352
2160
 
353
- /**
354
- * Unique identifier for the organization
355
- */
356
- organizationId: string;
2161
+ /**
2162
+ * Flag indicating if reposting is required.
2163
+ */
2164
+ checkRepost?: boolean | null;
357
2165
 
358
- /**
359
- * Type of the loyalty rule
360
- */
361
- type: string;
2166
+ /**
2167
+ * Text to check in the Twitter post, username, or bio.
2168
+ */
2169
+ checkText?: string | null;
362
2170
 
363
- /**
364
- * Timestamp when the loyalty rule was last updated
365
- */
366
- updatedAt: string;
2171
+ /**
2172
+ * Array of collections associated with the rule.
2173
+ */
2174
+ collection?: Array<Metadata.Collection>;
367
2175
 
368
- /**
369
- * Unique identifier for the website
370
- */
371
- websiteId: string;
2176
+ /**
2177
+ * Conditions for completing the profile.
2178
+ */
2179
+ completeProfileConditions?: { [key: string]: boolean } | null;
372
2180
 
373
- /**
374
- * Optional address of the collection
375
- */
376
- collectionAddress?: string;
2181
+ /**
2182
+ * Description of the external rule condition (only for external rules)
2183
+ */
2184
+ conditionDescription?: string;
377
2185
 
378
- /**
379
- * Optional metadata for the loyalty rule
380
- */
381
- metadata?: Record<string, unknown>;
2186
+ /**
2187
+ * Object containing details for the call-to-action.
2188
+ */
2189
+ cta?: Metadata.Cta | null;
2190
+
2191
+ /**
2192
+ * API key for custom rewards integration.
2193
+ */
2194
+ customRewardsApiKey?: string;
2195
+
2196
+ /**
2197
+ * Flag indicating if the rule should use direct RPC to get the balance of tokens.
2198
+ */
2199
+ directRpc?: boolean;
2200
+
2201
+ /**
2202
+ * Array of Discord servers, channels, and roles to join.
2203
+ */
2204
+ discordServersToJoin?: Array<Metadata.DiscordServersToJoin> | null;
2205
+
2206
+ /**
2207
+ * Array of drip quests required to complete the rule.
2208
+ */
2209
+ dripQuestsToComplete?: Array<Metadata.DripQuestsToComplete> | null;
2210
+
2211
+ /**
2212
+ * Flag indicating whether joining Discord servers is required.
2213
+ */
2214
+ enableJoinDiscordServers?: boolean | null;
2215
+
2216
+ /**
2217
+ * Flag indicating whether streaks are enabled.
2218
+ */
2219
+ enableStreaks?: boolean | null;
2220
+
2221
+ /**
2222
+ * Flag indicating whether the verified multiplier is enabled.
2223
+ */
2224
+ enableVerifiedMultiplier?: boolean;
2225
+
2226
+ /**
2227
+ * Fill source of the order for the token sale
2228
+ */
2229
+ fillSource?: string;
2230
+
2231
+ /**
2232
+ * Percentage reward given to a user for their first referral.
2233
+ */
2234
+ firstReferralReward?: number | null;
2235
+
2236
+ /**
2237
+ * Flag indicating whether the fill source is included.
2238
+ */
2239
+ hasFillSource?: boolean;
2240
+
2241
+ /**
2242
+ * Indicates if the item has never been sold.
2243
+ */
2244
+ hasNeverSold?: boolean;
2245
+
2246
+ /**
2247
+ * Indicates if the full royalty has been paid for items.
2248
+ */
2249
+ hasPaidFullRoyalty?: boolean;
2250
+
2251
+ /**
2252
+ * Flag indicating if the sale currency is included.
2253
+ */
2254
+ hasSaleCurrency?: boolean;
2255
+
2256
+ /**
2257
+ * Indicates if the user has a verified Twitter account.
2258
+ */
2259
+ hasVerifiedTwitter?: boolean;
2260
+
2261
+ /**
2262
+ * URL of the image associated with the rule.
2263
+ */
2264
+ imageUrl?: string | null;
2265
+
2266
+ /**
2267
+ * If enabled, the first transaction done on the platform will complete this rule
2268
+ */
2269
+ isCheckInOnEveryTxn?: boolean;
2270
+
2271
+ /**
2272
+ * Indicates if the multiplier has been applied to rewards.
2273
+ */
2274
+ isMultiplierApplied?: boolean;
2275
+
2276
+ /**
2277
+ * Flag indicating if the rule is restricted to new users.
2278
+ */
2279
+ isRestrictedToNewUsers?: boolean;
2280
+
2281
+ /**
2282
+ * Flag indicating if rewards are applied retroactively.
2283
+ */
2284
+ isRetroactive?: boolean | null;
2285
+
2286
+ /**
2287
+ * Flag indicating if the token hold multiplier is applied.
2288
+ */
2289
+ isTokenHoldMultiplier?: boolean;
2290
+
2291
+ /**
2292
+ * Optional link associated with the metadata.
2293
+ */
2294
+ link?: string | null;
2295
+
2296
+ /**
2297
+ * Liquidity pool details.
2298
+ */
2299
+ liquidity?: Metadata.Liquidity;
2300
+
2301
+ /**
2302
+ * Maximum quantity constraint for token holding.
2303
+ */
2304
+ maxQty?: number | null;
2305
+
2306
+ /**
2307
+ * Minimum quantity constraint for token holding.
2308
+ */
2309
+ minQty?: number | null;
2310
+
2311
+ /**
2312
+ * Array of loyalty currency IDs used for multipliers.
2313
+ */
2314
+ multiplierLoyaltyCurrencyIds?: Array<string> | null;
2315
+
2316
+ /**
2317
+ * Flag indicating whether to include only known users.
2318
+ */
2319
+ onlyKnownUsers?: boolean;
2320
+
2321
+ /**
2322
+ * Flag indicating whether to include only native tokens.
2323
+ */
2324
+ onlyNative?: boolean;
2325
+
2326
+ /**
2327
+ * Flag indicating whether to include only non-listed items.
2328
+ */
2329
+ onlyNonListed?: boolean;
2330
+
2331
+ /**
2332
+ * Indicates if only existing users are rewarded.
2333
+ */
2334
+ onlyRewardExistingUser?: boolean;
2335
+
2336
+ /**
2337
+ * give points for only one token ownership per contract
2338
+ */
2339
+ onlyRewardSingleTokenOwnership?: boolean | null;
2340
+
2341
+ /**
2342
+ * Promotional code associated with the rule.
2343
+ */
2344
+ promoCode?: string;
2345
+
2346
+ /**
2347
+ * URL of the CSV file containing promo codes.
2348
+ */
2349
+ promoCodeCsvUrl?: string;
2350
+
2351
+ /**
2352
+ * Numbers of the promotional code to be generated.
2353
+ */
2354
+ promoCodeLength?: number | null;
2355
+
2356
+ /**
2357
+ * Type of the promotional code.
2358
+ */
2359
+ promoCodeType?: 'code' | 'csv' | 'generate';
2360
+
2361
+ /**
2362
+ * Array defining ranges and corresponding rewards.
2363
+ */
2364
+ range?: Array<Metadata.Range>;
2365
+
2366
+ /**
2367
+ * Object defining referral requirements.
2368
+ */
2369
+ referralRequirements?: Metadata.ReferralRequirements | null;
2370
+
2371
+ /**
2372
+ * Lump sum reward given to a referrer.
2373
+ */
2374
+ referrerReward?: number | null;
2375
+
2376
+ /**
2377
+ * Loyalty currency ID of the referrer reward.
2378
+ */
2379
+ referrerRewardLoyaltyCurrencyId?: string | null;
2380
+
2381
+ /**
2382
+ * Flag indicating if the post link is required.
2383
+ */
2384
+ requirePostLink?: boolean | null;
2385
+
2386
+ /**
2387
+ * Flag indicating if the rule can also reward badges per range.
2388
+ */
2389
+ rewardBadgePerRange?: boolean;
2390
+
2391
+ /**
2392
+ * Flag indicating if the reward is rewarded by batch.
2393
+ */
2394
+ rewardByBatch?: boolean | null;
2395
+
2396
+ /**
2397
+ * Flag indicating if the reward is rewarded per action.
2398
+ */
2399
+ rewardPerAction?: boolean | null;
2400
+
2401
+ /**
2402
+ * Flag indicating if rewards are given per impression.
2403
+ */
2404
+ rewardPerImpression?: boolean | null;
2405
+
2406
+ /**
2407
+ * Flag indicating if the rule should reward based on value of traded tokens
2408
+ * instead of count.
2409
+ */
2410
+ rewardPerValue?: boolean;
2411
+
2412
+ /**
2413
+ * Wallet address of the user can only be used if userId is not provided
2414
+ */
2415
+ royaltyAddress?: string;
2416
+
2417
+ /**
2418
+ * Royalty percentage of the item.
2419
+ */
2420
+ royaltyPercentage?: number;
2421
+
2422
+ /**
2423
+ * Currency associated with sales.
2424
+ */
2425
+ saleCurrency?: string;
2426
+
2427
+ /**
2428
+ * Percentage reward given for a second-level referral.
2429
+ */
2430
+ secondReferralReward?: number | null;
2431
+
2432
+ /**
2433
+ * Flag indicating if the multiplier is skipped.
2434
+ */
2435
+ skipMultiplier?: boolean | null;
2436
+
2437
+ /**
2438
+ * Object containing details of the associated smart contract.
2439
+ */
2440
+ smartContract?: Metadata.SmartContract;
2441
+
2442
+ /**
2443
+ * Array of snapshot proposals for the rule.
2444
+ */
2445
+ snapshotProposals?: Array<Metadata.SnapshotProposal> | null;
2446
+
2447
+ /**
2448
+ * Social media platform associated with the rule.
2449
+ */
2450
+ socialPlatform?:
2451
+ | 'Custom'
2452
+ | 'Discord'
2453
+ | 'EpicGames'
2454
+ | 'Instagram'
2455
+ | 'Steam'
2456
+ | 'Telegram'
2457
+ | 'TikTok'
2458
+ | 'Twitch'
2459
+ | 'X(Twitter)'
2460
+ | 'YouTube'
2461
+ | 'Google'
2462
+ | null;
2463
+
2464
+ /**
2465
+ * URL of the social platform's logo.
2466
+ */
2467
+ socialPlatformLogo?: string | null;
2468
+
2469
+ /**
2470
+ * Name of the social platform.
2471
+ */
2472
+ socialPlatformName?: string | null;
2473
+
2474
+ /**
2475
+ * ID of the Steam app.
2476
+ */
2477
+ steamAppId?: string | null;
2478
+
2479
+ /**
2480
+ * Array of streak milestones and corresponding rewards.
2481
+ */
2482
+ streakArray?: Array<Metadata.StreakArray> | null;
2483
+
2484
+ /**
2485
+ * Metadata for swap loyalty rules
2486
+ */
2487
+ swap?: Metadata.Swap;
2488
+
2489
+ /**
2490
+ * ID of the Telegram channel.
2491
+ */
2492
+ telegramChannelId?: string | null;
2493
+
2494
+ /**
2495
+ * Time delay in seconds to verify actions.
2496
+ */
2497
+ timeDelayToVerifySeconds?: string | number | null;
2498
+
2499
+ /**
2500
+ * Flag indicating if all contracts are tracked.
2501
+ */
2502
+ trackAllContracts?: boolean | null;
2503
+
2504
+ /**
2505
+ * Flag indicating if the progress is tracked. If enabled, the rule can only be
2506
+ * completed once the progress is 100%.
2507
+ */
2508
+ trackProgress?: boolean | null;
2509
+
2510
+ /**
2511
+ * URL of the associated Twitter account.
2512
+ */
2513
+ twitterAccountUrl?: string;
2514
+
2515
+ /**
2516
+ * Hashtag associated with the Twitter post.
2517
+ */
2518
+ twitterHashtag?: string;
2519
+
2520
+ /**
2521
+ * URL of the associated Twitter post.
2522
+ */
2523
+ twitterPostUrl?: string;
2524
+
2525
+ /**
2526
+ * Unique identifier of the Twitter user.
2527
+ */
2528
+ twitterUserId?: string;
2529
+
2530
+ /**
2531
+ * Twitter username of the user.
2532
+ */
2533
+ twitterUsername?: string;
2534
+
2535
+ /**
2536
+ * Minimum length of the verification text.
2537
+ */
2538
+ verificationTextMinimumLength?: number | null;
2539
+
2540
+ /**
2541
+ * Multiplier applied to rewards for verified users.
2542
+ */
2543
+ verifiedMultiplier?: number | null;
2544
+
2545
+ /**
2546
+ * Placeholder text for verification input fields.
2547
+ */
2548
+ verifyPlaceHolderText?: string | null;
2549
+
2550
+ /**
2551
+ * Type of wallet associated with the rule.
2552
+ */
2553
+ walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | 'cosmos' | 'ultra' | 'agw' | null;
2554
+
2555
+ /**
2556
+ * ID of the Youtube channel.
2557
+ */
2558
+ youtubeChannelId?: string | null;
2559
+
2560
+ /**
2561
+ * ID of the Youtube video.
2562
+ */
2563
+ youtubeVideoId?: string | null;
2564
+ }
2565
+
2566
+ export namespace Metadata {
2567
+ export interface Collection {
2568
+ /**
2569
+ * Blockchain address of the collection.
2570
+ */
2571
+ address?: string;
2572
+
2573
+ /**
2574
+ * Multiplier applied to the rewards for this collection.
2575
+ */
2576
+ multiplier?: number;
2577
+
2578
+ /**
2579
+ * Blockchain network of the collection.
2580
+ */
2581
+ network?:
2582
+ | 'abstract'
2583
+ | 'abstractTestnet'
2584
+ | 'apechain'
2585
+ | 'arbitrum'
2586
+ | 'avalanche'
2587
+ | 'avalancheFuji'
2588
+ | 'base'
2589
+ | 'baseSepolia'
2590
+ | 'berachain'
2591
+ | 'berachainArtio'
2592
+ | 'berachainBepolia'
2593
+ | 'binance'
2594
+ | 'bscTestnet'
2595
+ | 'campTestnet'
2596
+ | 'fantom'
2597
+ | 'fantomTestnet'
2598
+ | 'flowMainnet'
2599
+ | 'mainnet'
2600
+ | 'optimism'
2601
+ | 'polygon'
2602
+ | 'polygon_mumbai'
2603
+ | 'skaleNebula'
2604
+ | 'solana'
2605
+ | 'sophon'
2606
+ | 'sophonTestnet'
2607
+ | 'sui'
2608
+ | 'superseed'
2609
+ | 'superseedSepolia'
2610
+ | 'vanar'
2611
+ | 'xai'
2612
+ | 'zksync'
2613
+ | 'coti'
2614
+ | 'cotiTestnet'
2615
+ | 'morph'
2616
+ | 'morphTestnet'
2617
+ | 'morphHolesky'
2618
+ | 'ultra'
2619
+ | 'ultraTestnet'
2620
+ | 'nitrograph'
2621
+ | 'sepolia'
2622
+ | 'optimism_sepolia'
2623
+ | 'arbitrumSepolia'
2624
+ | 'goerli'
2625
+ | 'optimism_goerli'
2626
+ | 'arbitrumGoerli'
2627
+ | 'basecamp';
2628
+ }
2629
+
2630
+ /**
2631
+ * Object containing details for the call-to-action.
2632
+ */
2633
+ export interface Cta {
2634
+ /**
2635
+ * Link for the call-to-action.
2636
+ */
2637
+ href?: string | null;
2638
+
2639
+ /**
2640
+ * Label for the call-to-action.
2641
+ */
2642
+ label?: string | null;
2643
+ }
2644
+
2645
+ export interface DiscordServersToJoin {
2646
+ /**
2647
+ * ID of the Discord server to join.
2648
+ */
2649
+ id?: string;
2650
+
2651
+ /**
2652
+ * Array of Discord channels to join.
2653
+ */
2654
+ channels?: Array<DiscordServersToJoin.Channel>;
2655
+
2656
+ /**
2657
+ * Array of roles to assign in the Discord server.
2658
+ */
2659
+ roles?: Array<DiscordServersToJoin.Role>;
2660
+ }
2661
+
2662
+ export namespace DiscordServersToJoin {
2663
+ export interface Channel {
2664
+ /**
2665
+ * ID of the Discord channel.
2666
+ */
2667
+ id?: string;
2668
+
2669
+ /**
2670
+ * Array of emojis used in the channel.
2671
+ */
2672
+ emojis?: Array<Channel.Emoji>;
2673
+
2674
+ /**
2675
+ * Phrase of text to be present in the discord message
2676
+ */
2677
+ text?: string;
2678
+ }
2679
+
2680
+ export namespace Channel {
2681
+ export interface Emoji {
2682
+ /**
2683
+ * ID of the emoji used in the channel.
2684
+ */
2685
+ id?: string;
2686
+ }
2687
+ }
2688
+
2689
+ export interface Role {
2690
+ /**
2691
+ * ID of the role in the Discord server.
2692
+ */
2693
+ id: string;
2694
+ }
2695
+ }
2696
+
2697
+ export interface DripQuestsToComplete {
2698
+ /**
2699
+ * ID of the drip quest to complete.
2700
+ */
2701
+ id: string;
2702
+ }
2703
+
2704
+ /**
2705
+ * Liquidity pool details.
2706
+ */
2707
+ export interface Liquidity {
2708
+ /**
2709
+ * Calculation type of the liquidity pool.
2710
+ */
2711
+ calculationType?: 'fixed' | 'custom';
2712
+
2713
+ /**
2714
+ * Custom function to calculate the the reward amount based on the liquidity
2715
+ * provided per day. X is the reward amount, Y is the liquidity provided per day in
2716
+ * USD.
2717
+ */
2718
+ customFunction?: string;
2719
+
2720
+ /**
2721
+ * Liquidity provided per day in USD
2722
+ */
2723
+ liquidityPerDay?: number;
2724
+
2725
+ /**
2726
+ * Blockchain network of the liquidity pool.
2727
+ */
2728
+ network?:
2729
+ | 'abstract'
2730
+ | 'abstractTestnet'
2731
+ | 'apechain'
2732
+ | 'arbitrum'
2733
+ | 'avalanche'
2734
+ | 'avalancheFuji'
2735
+ | 'base'
2736
+ | 'baseSepolia'
2737
+ | 'berachain'
2738
+ | 'berachainArtio'
2739
+ | 'berachainBepolia'
2740
+ | 'binance'
2741
+ | 'bscTestnet'
2742
+ | 'campTestnet'
2743
+ | 'fantom'
2744
+ | 'fantomTestnet'
2745
+ | 'flowMainnet'
2746
+ | 'mainnet'
2747
+ | 'optimism'
2748
+ | 'polygon'
2749
+ | 'polygon_mumbai'
2750
+ | 'skaleNebula'
2751
+ | 'solana'
2752
+ | 'sophon'
2753
+ | 'sophonTestnet'
2754
+ | 'sui'
2755
+ | 'superseed'
2756
+ | 'superseedSepolia'
2757
+ | 'vanar'
2758
+ | 'xai'
2759
+ | 'zksync'
2760
+ | 'coti'
2761
+ | 'cotiTestnet'
2762
+ | 'morph'
2763
+ | 'morphTestnet'
2764
+ | 'morphHolesky'
2765
+ | 'ultra'
2766
+ | 'ultraTestnet'
2767
+ | 'nitrograph'
2768
+ | 'sepolia'
2769
+ | 'optimism_sepolia'
2770
+ | 'arbitrumSepolia'
2771
+ | 'goerli'
2772
+ | 'optimism_goerli'
2773
+ | 'arbitrumGoerli'
2774
+ | 'basecamp';
2775
+
2776
+ /**
2777
+ * Indicates if only in-range liquidity is rewarded.
2778
+ */
2779
+ onlyRewardInRangeLiquidity?: boolean;
2780
+
2781
+ /**
2782
+ * Array of liquidity pools associated with the rule.
2783
+ */
2784
+ pools?: Array<Liquidity.Pool>;
2785
+
2786
+ /**
2787
+ * Protocol of the liquidity pool.
2788
+ */
2789
+ protocol?: string;
2790
+ }
2791
+
2792
+ export namespace Liquidity {
2793
+ export interface Pool {
2794
+ /**
2795
+ * Unique identifier of the liquidity pool.
2796
+ */
2797
+ id: string;
2798
+ }
2799
+ }
2800
+
2801
+ export interface Range {
2802
+ /**
2803
+ * Reward amount for this range.
2804
+ */
2805
+ amount: number;
2806
+
2807
+ /**
2808
+ * End value of the range.
2809
+ */
2810
+ endRange: number;
2811
+
2812
+ /**
2813
+ * Start value of the range.
2814
+ */
2815
+ startRange: number;
2816
+
2817
+ /**
2818
+ * ID of the loyalty badge for this range.
2819
+ */
2820
+ loyaltyBadgeId?: string;
2821
+
2822
+ /**
2823
+ * Amount of the loyalty multiplier for this range.
2824
+ */
2825
+ loyaltyMultiplierAmount?: number;
2826
+ }
2827
+
2828
+ /**
2829
+ * Object defining referral requirements.
2830
+ */
2831
+ export interface ReferralRequirements {
2832
+ /**
2833
+ * Flag indicating if achieving points is required.
2834
+ */
2835
+ achievePoints?: boolean | null;
2836
+
2837
+ /**
2838
+ * Flag indicating if completing the profile is required.
2839
+ */
2840
+ completeProfile?: boolean | null;
2841
+
2842
+ /**
2843
+ * Flag indicating if connecting Discord is required.
2844
+ */
2845
+ connectDiscord?: boolean | null;
2846
+
2847
+ /**
2848
+ * Flag indicating if connecting email is required.
2849
+ */
2850
+ connectEmail?: boolean | null;
2851
+
2852
+ /**
2853
+ * Flag indicating if connecting Twitter is required.
2854
+ */
2855
+ connectTwitter?: boolean | null;
2856
+
2857
+ points?: ReferralRequirements.Points | null;
2858
+ }
2859
+
2860
+ export namespace ReferralRequirements {
2861
+ export interface Points {
2862
+ /**
2863
+ * Points required for referral.
2864
+ */
2865
+ amount?: number | null;
2866
+
2867
+ /**
2868
+ * ID of the loyalty currency for referral.
2869
+ */
2870
+ loyaltyCurrecyId?: string | null;
2871
+ }
2872
+ }
2873
+
2874
+ /**
2875
+ * Object containing details of the associated smart contract.
2876
+ */
2877
+ export interface SmartContract {
2878
+ /**
2879
+ * Mapping of addresses for the smart contract.
2880
+ */
2881
+ addressMapping?: string | null;
2882
+
2883
+ /**
2884
+ * Object containing details of the amount multiplier from the event.
2885
+ */
2886
+ amountMultiplier?: SmartContract.AmountMultiplier | null;
2887
+
2888
+ /**
2889
+ * ID of the smart contract.
2890
+ */
2891
+ contractId?: string | null;
2892
+
2893
+ /**
2894
+ * Criteria to evaluate the smart contract event.
2895
+ */
2896
+ criteria?: 'everyEvent' | 'byParameter' | null;
2897
+
2898
+ /**
2899
+ * Event emitted by the smart contract.
2900
+ */
2901
+ event?: string | null;
2902
+
2903
+ /**
2904
+ * Array of parameters for the smart contract.
2905
+ */
2906
+ params?: Array<SmartContract.Param> | null;
2907
+
2908
+ /**
2909
+ * Type of the smart contract interaction.
2910
+ */
2911
+ type?: 'function' | 'event' | null;
2912
+ }
2913
+
2914
+ export namespace SmartContract {
2915
+ /**
2916
+ * Object containing details of the amount multiplier from the event.
2917
+ */
2918
+ export interface AmountMultiplier {
2919
+ /**
2920
+ * Mapping of the value for the smart contract.
2921
+ */
2922
+ valueMapping?: string | null;
2923
+ }
2924
+
2925
+ export interface Param {
2926
+ /**
2927
+ * Condition to check for the parameter.
2928
+ */
2929
+ condition?: string | null;
2930
+
2931
+ /**
2932
+ * Name of the smart contract parameter.
2933
+ */
2934
+ name?: string | null;
2935
+
2936
+ /**
2937
+ * Value of the parameter.
2938
+ */
2939
+ value?: string | null;
2940
+ }
2941
+ }
2942
+
2943
+ export interface SnapshotProposal {
2944
+ /**
2945
+ * ID of the snapshot proposal.
2946
+ */
2947
+ id: string;
2948
+
2949
+ /**
2950
+ * Space associated with the snapshot proposal.
2951
+ */
2952
+ space: string;
2953
+ }
2954
+
2955
+ export interface StreakArray {
2956
+ /**
2957
+ * Reward amount for achieving the streak milestone.
2958
+ */
2959
+ streakAmount: number;
2960
+
2961
+ /**
2962
+ * Milestone required to achieve the streak.
2963
+ */
2964
+ streakMilestone: number;
2965
+ }
2966
+
2967
+ /**
2968
+ * Metadata for swap loyalty rules
2969
+ */
2970
+ export interface Swap {
2971
+ provider?: 'any' | 'relay' | 'lifi';
2972
+
2973
+ relayReferrerId?: string;
2974
+
2975
+ requireCrossChainSwap?: boolean;
2976
+
2977
+ swappedToChain?: 'any' | number | string;
2978
+
2979
+ swappedToTokens?: Array<Swap.SwappedToToken>;
2980
+
2981
+ tokenMode?: 'any' | 'specific';
2982
+
2983
+ trackTokenAmount?: boolean;
2984
+ }
2985
+
2986
+ export namespace Swap {
2987
+ export interface SwappedToToken {
2988
+ address: string;
2989
+
2990
+ chainId: string;
2991
+ }
2992
+ }
2993
+ }
2994
+ }
2995
+
2996
+ /**
2997
+ * Previous data of the rule before the edit
2998
+ */
2999
+ export interface PreviousData {
3000
+ /**
3001
+ * Unique identifier for the loyalty rule
3002
+ */
3003
+ id: string;
3004
+
3005
+ /**
3006
+ * Amount associated with the loyalty rule
3007
+ */
3008
+ amount: number;
3009
+
3010
+ /**
3011
+ * Timestamp when the loyalty rule was created
3012
+ */
3013
+ createdAt: string;
3014
+
3015
+ /**
3016
+ * Timestamp when the loyalty rule was deleted (if applicable)
3017
+ */
3018
+ deletedAt: string | null;
3019
+
3020
+ /**
3021
+ * Description of the loyalty rule
3022
+ */
3023
+ description: string;
3024
+
3025
+ /**
3026
+ * End time of the loyalty rule
3027
+ */
3028
+ endTime: string;
3029
+
3030
+ /**
3031
+ * Frequency of the loyalty rule
3032
+ */
3033
+ frequency: string;
3034
+
3035
+ /**
3036
+ * Name of the loyalty rule
3037
+ */
3038
+ name: string;
3039
+
3040
+ /**
3041
+ * Unique identifier for the organization
3042
+ */
3043
+ organizationId: string;
3044
+
3045
+ /**
3046
+ * Type of the reward
3047
+ */
3048
+ rewardType: 'points' | 'multiplier' | 'badge';
3049
+
3050
+ /**
3051
+ * Start time of the loyalty rule
3052
+ */
3053
+ startTime: string;
3054
+
3055
+ /**
3056
+ * Type of the loyalty rule
3057
+ */
3058
+ type: string;
3059
+
3060
+ /**
3061
+ * Timestamp when the loyalty rule was last updated
3062
+ */
3063
+ updatedAt: string;
3064
+
3065
+ /**
3066
+ * Unique identifier for the website
3067
+ */
3068
+ websiteId: string;
3069
+
3070
+ /**
3071
+ * Optional address of the collection
3072
+ */
3073
+ collectionAddress?: string;
3074
+
3075
+ /**
3076
+ * URL of the media associated with the loyalty rule
3077
+ */
3078
+ mediaUrl?: string | null;
3079
+
3080
+ /**
3081
+ * Optional metadata for the loyalty rule
3082
+ */
3083
+ metadata?: { [key: string]: PreviousData.Metadata };
3084
+ }
3085
+
3086
+ export namespace PreviousData {
3087
+ export interface Metadata {
3088
+ /**
3089
+ * Number of tokens per batch.
3090
+ */
3091
+ batchSize?: number | null;
3092
+
3093
+ /**
3094
+ * Text displayed on the action button.
3095
+ */
3096
+ buttonText?: string | null;
3097
+
3098
+ /**
3099
+ * Flag indicating if commenting is required.
3100
+ */
3101
+ checkComment?: boolean | null;
3102
+
3103
+ /**
3104
+ * Flag indicating if liking the post is required.
3105
+ */
3106
+ checkLike?: boolean | null;
3107
+
3108
+ /**
3109
+ * Flag indicating if reposting is required.
3110
+ */
3111
+ checkRepost?: boolean | null;
3112
+
3113
+ /**
3114
+ * Text to check in the Twitter post, username, or bio.
3115
+ */
3116
+ checkText?: string | null;
3117
+
3118
+ /**
3119
+ * Array of collections associated with the rule.
3120
+ */
3121
+ collection?: Array<Metadata.Collection>;
3122
+
3123
+ /**
3124
+ * Conditions for completing the profile.
3125
+ */
3126
+ completeProfileConditions?: { [key: string]: boolean } | null;
3127
+
3128
+ /**
3129
+ * Description of the external rule condition (only for external rules)
3130
+ */
3131
+ conditionDescription?: string;
3132
+
3133
+ /**
3134
+ * Object containing details for the call-to-action.
3135
+ */
3136
+ cta?: Metadata.Cta | null;
3137
+
3138
+ /**
3139
+ * API key for custom rewards integration.
3140
+ */
3141
+ customRewardsApiKey?: string;
3142
+
3143
+ /**
3144
+ * Flag indicating if the rule should use direct RPC to get the balance of tokens.
3145
+ */
3146
+ directRpc?: boolean;
3147
+
3148
+ /**
3149
+ * Array of Discord servers, channels, and roles to join.
3150
+ */
3151
+ discordServersToJoin?: Array<Metadata.DiscordServersToJoin> | null;
3152
+
3153
+ /**
3154
+ * Array of drip quests required to complete the rule.
3155
+ */
3156
+ dripQuestsToComplete?: Array<Metadata.DripQuestsToComplete> | null;
3157
+
3158
+ /**
3159
+ * Flag indicating whether joining Discord servers is required.
3160
+ */
3161
+ enableJoinDiscordServers?: boolean | null;
3162
+
3163
+ /**
3164
+ * Flag indicating whether streaks are enabled.
3165
+ */
3166
+ enableStreaks?: boolean | null;
3167
+
3168
+ /**
3169
+ * Flag indicating whether the verified multiplier is enabled.
3170
+ */
3171
+ enableVerifiedMultiplier?: boolean;
3172
+
3173
+ /**
3174
+ * Fill source of the order for the token sale
3175
+ */
3176
+ fillSource?: string;
3177
+
3178
+ /**
3179
+ * Percentage reward given to a user for their first referral.
3180
+ */
3181
+ firstReferralReward?: number | null;
3182
+
3183
+ /**
3184
+ * Flag indicating whether the fill source is included.
3185
+ */
3186
+ hasFillSource?: boolean;
3187
+
3188
+ /**
3189
+ * Indicates if the item has never been sold.
3190
+ */
3191
+ hasNeverSold?: boolean;
3192
+
3193
+ /**
3194
+ * Indicates if the full royalty has been paid for items.
3195
+ */
3196
+ hasPaidFullRoyalty?: boolean;
3197
+
3198
+ /**
3199
+ * Flag indicating if the sale currency is included.
3200
+ */
3201
+ hasSaleCurrency?: boolean;
3202
+
3203
+ /**
3204
+ * Indicates if the user has a verified Twitter account.
3205
+ */
3206
+ hasVerifiedTwitter?: boolean;
3207
+
3208
+ /**
3209
+ * URL of the image associated with the rule.
3210
+ */
3211
+ imageUrl?: string | null;
3212
+
3213
+ /**
3214
+ * If enabled, the first transaction done on the platform will complete this rule
3215
+ */
3216
+ isCheckInOnEveryTxn?: boolean;
3217
+
3218
+ /**
3219
+ * Indicates if the multiplier has been applied to rewards.
3220
+ */
3221
+ isMultiplierApplied?: boolean;
3222
+
3223
+ /**
3224
+ * Flag indicating if the rule is restricted to new users.
3225
+ */
3226
+ isRestrictedToNewUsers?: boolean;
3227
+
3228
+ /**
3229
+ * Flag indicating if rewards are applied retroactively.
3230
+ */
3231
+ isRetroactive?: boolean | null;
3232
+
3233
+ /**
3234
+ * Flag indicating if the token hold multiplier is applied.
3235
+ */
3236
+ isTokenHoldMultiplier?: boolean;
3237
+
3238
+ /**
3239
+ * Optional link associated with the metadata.
3240
+ */
3241
+ link?: string | null;
3242
+
3243
+ /**
3244
+ * Liquidity pool details.
3245
+ */
3246
+ liquidity?: Metadata.Liquidity;
3247
+
3248
+ /**
3249
+ * Maximum quantity constraint for token holding.
3250
+ */
3251
+ maxQty?: number | null;
3252
+
3253
+ /**
3254
+ * Minimum quantity constraint for token holding.
3255
+ */
3256
+ minQty?: number | null;
3257
+
3258
+ /**
3259
+ * Array of loyalty currency IDs used for multipliers.
3260
+ */
3261
+ multiplierLoyaltyCurrencyIds?: Array<string> | null;
3262
+
3263
+ /**
3264
+ * Flag indicating whether to include only known users.
3265
+ */
3266
+ onlyKnownUsers?: boolean;
3267
+
3268
+ /**
3269
+ * Flag indicating whether to include only native tokens.
3270
+ */
3271
+ onlyNative?: boolean;
3272
+
3273
+ /**
3274
+ * Flag indicating whether to include only non-listed items.
3275
+ */
3276
+ onlyNonListed?: boolean;
3277
+
3278
+ /**
3279
+ * Indicates if only existing users are rewarded.
3280
+ */
3281
+ onlyRewardExistingUser?: boolean;
3282
+
3283
+ /**
3284
+ * give points for only one token ownership per contract
3285
+ */
3286
+ onlyRewardSingleTokenOwnership?: boolean | null;
3287
+
3288
+ /**
3289
+ * Promotional code associated with the rule.
3290
+ */
3291
+ promoCode?: string;
3292
+
3293
+ /**
3294
+ * URL of the CSV file containing promo codes.
3295
+ */
3296
+ promoCodeCsvUrl?: string;
3297
+
3298
+ /**
3299
+ * Numbers of the promotional code to be generated.
3300
+ */
3301
+ promoCodeLength?: number | null;
3302
+
3303
+ /**
3304
+ * Type of the promotional code.
3305
+ */
3306
+ promoCodeType?: 'code' | 'csv' | 'generate';
3307
+
3308
+ /**
3309
+ * Array defining ranges and corresponding rewards.
3310
+ */
3311
+ range?: Array<Metadata.Range>;
3312
+
3313
+ /**
3314
+ * Object defining referral requirements.
3315
+ */
3316
+ referralRequirements?: Metadata.ReferralRequirements | null;
3317
+
3318
+ /**
3319
+ * Lump sum reward given to a referrer.
3320
+ */
3321
+ referrerReward?: number | null;
3322
+
3323
+ /**
3324
+ * Loyalty currency ID of the referrer reward.
3325
+ */
3326
+ referrerRewardLoyaltyCurrencyId?: string | null;
3327
+
3328
+ /**
3329
+ * Flag indicating if the post link is required.
3330
+ */
3331
+ requirePostLink?: boolean | null;
3332
+
3333
+ /**
3334
+ * Flag indicating if the rule can also reward badges per range.
3335
+ */
3336
+ rewardBadgePerRange?: boolean;
3337
+
3338
+ /**
3339
+ * Flag indicating if the reward is rewarded by batch.
3340
+ */
3341
+ rewardByBatch?: boolean | null;
3342
+
3343
+ /**
3344
+ * Flag indicating if the reward is rewarded per action.
3345
+ */
3346
+ rewardPerAction?: boolean | null;
3347
+
3348
+ /**
3349
+ * Flag indicating if rewards are given per impression.
3350
+ */
3351
+ rewardPerImpression?: boolean | null;
3352
+
3353
+ /**
3354
+ * Flag indicating if the rule should reward based on value of traded tokens
3355
+ * instead of count.
3356
+ */
3357
+ rewardPerValue?: boolean;
3358
+
3359
+ /**
3360
+ * Wallet address of the user can only be used if userId is not provided
3361
+ */
3362
+ royaltyAddress?: string;
3363
+
3364
+ /**
3365
+ * Royalty percentage of the item.
3366
+ */
3367
+ royaltyPercentage?: number;
3368
+
3369
+ /**
3370
+ * Currency associated with sales.
3371
+ */
3372
+ saleCurrency?: string;
3373
+
3374
+ /**
3375
+ * Percentage reward given for a second-level referral.
3376
+ */
3377
+ secondReferralReward?: number | null;
3378
+
3379
+ /**
3380
+ * Flag indicating if the multiplier is skipped.
3381
+ */
3382
+ skipMultiplier?: boolean | null;
3383
+
3384
+ /**
3385
+ * Object containing details of the associated smart contract.
3386
+ */
3387
+ smartContract?: Metadata.SmartContract;
3388
+
3389
+ /**
3390
+ * Array of snapshot proposals for the rule.
3391
+ */
3392
+ snapshotProposals?: Array<Metadata.SnapshotProposal> | null;
3393
+
3394
+ /**
3395
+ * Social media platform associated with the rule.
3396
+ */
3397
+ socialPlatform?:
3398
+ | 'Custom'
3399
+ | 'Discord'
3400
+ | 'EpicGames'
3401
+ | 'Instagram'
3402
+ | 'Steam'
3403
+ | 'Telegram'
3404
+ | 'TikTok'
3405
+ | 'Twitch'
3406
+ | 'X(Twitter)'
3407
+ | 'YouTube'
3408
+ | 'Google'
3409
+ | null;
3410
+
3411
+ /**
3412
+ * URL of the social platform's logo.
3413
+ */
3414
+ socialPlatformLogo?: string | null;
3415
+
3416
+ /**
3417
+ * Name of the social platform.
3418
+ */
3419
+ socialPlatformName?: string | null;
3420
+
3421
+ /**
3422
+ * ID of the Steam app.
3423
+ */
3424
+ steamAppId?: string | null;
3425
+
3426
+ /**
3427
+ * Array of streak milestones and corresponding rewards.
3428
+ */
3429
+ streakArray?: Array<Metadata.StreakArray> | null;
3430
+
3431
+ /**
3432
+ * Metadata for swap loyalty rules
3433
+ */
3434
+ swap?: Metadata.Swap;
3435
+
3436
+ /**
3437
+ * ID of the Telegram channel.
3438
+ */
3439
+ telegramChannelId?: string | null;
3440
+
3441
+ /**
3442
+ * Time delay in seconds to verify actions.
3443
+ */
3444
+ timeDelayToVerifySeconds?: string | number | null;
3445
+
3446
+ /**
3447
+ * Flag indicating if all contracts are tracked.
3448
+ */
3449
+ trackAllContracts?: boolean | null;
3450
+
3451
+ /**
3452
+ * Flag indicating if the progress is tracked. If enabled, the rule can only be
3453
+ * completed once the progress is 100%.
3454
+ */
3455
+ trackProgress?: boolean | null;
3456
+
3457
+ /**
3458
+ * URL of the associated Twitter account.
3459
+ */
3460
+ twitterAccountUrl?: string;
3461
+
3462
+ /**
3463
+ * Hashtag associated with the Twitter post.
3464
+ */
3465
+ twitterHashtag?: string;
3466
+
3467
+ /**
3468
+ * URL of the associated Twitter post.
3469
+ */
3470
+ twitterPostUrl?: string;
3471
+
3472
+ /**
3473
+ * Unique identifier of the Twitter user.
3474
+ */
3475
+ twitterUserId?: string;
3476
+
3477
+ /**
3478
+ * Twitter username of the user.
3479
+ */
3480
+ twitterUsername?: string;
3481
+
3482
+ /**
3483
+ * Minimum length of the verification text.
3484
+ */
3485
+ verificationTextMinimumLength?: number | null;
3486
+
3487
+ /**
3488
+ * Multiplier applied to rewards for verified users.
3489
+ */
3490
+ verifiedMultiplier?: number | null;
3491
+
3492
+ /**
3493
+ * Placeholder text for verification input fields.
3494
+ */
3495
+ verifyPlaceHolderText?: string | null;
3496
+
3497
+ /**
3498
+ * Type of wallet associated with the rule.
3499
+ */
3500
+ walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | 'cosmos' | 'ultra' | 'agw' | null;
3501
+
3502
+ /**
3503
+ * ID of the Youtube channel.
3504
+ */
3505
+ youtubeChannelId?: string | null;
3506
+
3507
+ /**
3508
+ * ID of the Youtube video.
3509
+ */
3510
+ youtubeVideoId?: string | null;
3511
+ }
3512
+
3513
+ export namespace Metadata {
3514
+ export interface Collection {
3515
+ /**
3516
+ * Blockchain address of the collection.
3517
+ */
3518
+ address?: string;
3519
+
3520
+ /**
3521
+ * Multiplier applied to the rewards for this collection.
3522
+ */
3523
+ multiplier?: number;
3524
+
3525
+ /**
3526
+ * Blockchain network of the collection.
3527
+ */
3528
+ network?:
3529
+ | 'abstract'
3530
+ | 'abstractTestnet'
3531
+ | 'apechain'
3532
+ | 'arbitrum'
3533
+ | 'avalanche'
3534
+ | 'avalancheFuji'
3535
+ | 'base'
3536
+ | 'baseSepolia'
3537
+ | 'berachain'
3538
+ | 'berachainArtio'
3539
+ | 'berachainBepolia'
3540
+ | 'binance'
3541
+ | 'bscTestnet'
3542
+ | 'campTestnet'
3543
+ | 'fantom'
3544
+ | 'fantomTestnet'
3545
+ | 'flowMainnet'
3546
+ | 'mainnet'
3547
+ | 'optimism'
3548
+ | 'polygon'
3549
+ | 'polygon_mumbai'
3550
+ | 'skaleNebula'
3551
+ | 'solana'
3552
+ | 'sophon'
3553
+ | 'sophonTestnet'
3554
+ | 'sui'
3555
+ | 'superseed'
3556
+ | 'superseedSepolia'
3557
+ | 'vanar'
3558
+ | 'xai'
3559
+ | 'zksync'
3560
+ | 'coti'
3561
+ | 'cotiTestnet'
3562
+ | 'morph'
3563
+ | 'morphTestnet'
3564
+ | 'morphHolesky'
3565
+ | 'ultra'
3566
+ | 'ultraTestnet'
3567
+ | 'nitrograph'
3568
+ | 'sepolia'
3569
+ | 'optimism_sepolia'
3570
+ | 'arbitrumSepolia'
3571
+ | 'goerli'
3572
+ | 'optimism_goerli'
3573
+ | 'arbitrumGoerli'
3574
+ | 'basecamp';
3575
+ }
3576
+
3577
+ /**
3578
+ * Object containing details for the call-to-action.
3579
+ */
3580
+ export interface Cta {
3581
+ /**
3582
+ * Link for the call-to-action.
3583
+ */
3584
+ href?: string | null;
3585
+
3586
+ /**
3587
+ * Label for the call-to-action.
3588
+ */
3589
+ label?: string | null;
3590
+ }
3591
+
3592
+ export interface DiscordServersToJoin {
3593
+ /**
3594
+ * ID of the Discord server to join.
3595
+ */
3596
+ id?: string;
3597
+
3598
+ /**
3599
+ * Array of Discord channels to join.
3600
+ */
3601
+ channels?: Array<DiscordServersToJoin.Channel>;
3602
+
3603
+ /**
3604
+ * Array of roles to assign in the Discord server.
3605
+ */
3606
+ roles?: Array<DiscordServersToJoin.Role>;
3607
+ }
3608
+
3609
+ export namespace DiscordServersToJoin {
3610
+ export interface Channel {
3611
+ /**
3612
+ * ID of the Discord channel.
3613
+ */
3614
+ id?: string;
3615
+
3616
+ /**
3617
+ * Array of emojis used in the channel.
3618
+ */
3619
+ emojis?: Array<Channel.Emoji>;
3620
+
3621
+ /**
3622
+ * Phrase of text to be present in the discord message
3623
+ */
3624
+ text?: string;
3625
+ }
3626
+
3627
+ export namespace Channel {
3628
+ export interface Emoji {
3629
+ /**
3630
+ * ID of the emoji used in the channel.
3631
+ */
3632
+ id?: string;
3633
+ }
3634
+ }
3635
+
3636
+ export interface Role {
3637
+ /**
3638
+ * ID of the role in the Discord server.
3639
+ */
3640
+ id: string;
3641
+ }
3642
+ }
3643
+
3644
+ export interface DripQuestsToComplete {
3645
+ /**
3646
+ * ID of the drip quest to complete.
3647
+ */
3648
+ id: string;
3649
+ }
3650
+
3651
+ /**
3652
+ * Liquidity pool details.
3653
+ */
3654
+ export interface Liquidity {
3655
+ /**
3656
+ * Calculation type of the liquidity pool.
3657
+ */
3658
+ calculationType?: 'fixed' | 'custom';
3659
+
3660
+ /**
3661
+ * Custom function to calculate the the reward amount based on the liquidity
3662
+ * provided per day. X is the reward amount, Y is the liquidity provided per day in
3663
+ * USD.
3664
+ */
3665
+ customFunction?: string;
3666
+
3667
+ /**
3668
+ * Liquidity provided per day in USD
3669
+ */
3670
+ liquidityPerDay?: number;
3671
+
3672
+ /**
3673
+ * Blockchain network of the liquidity pool.
3674
+ */
3675
+ network?:
3676
+ | 'abstract'
3677
+ | 'abstractTestnet'
3678
+ | 'apechain'
3679
+ | 'arbitrum'
3680
+ | 'avalanche'
3681
+ | 'avalancheFuji'
3682
+ | 'base'
3683
+ | 'baseSepolia'
3684
+ | 'berachain'
3685
+ | 'berachainArtio'
3686
+ | 'berachainBepolia'
3687
+ | 'binance'
3688
+ | 'bscTestnet'
3689
+ | 'campTestnet'
3690
+ | 'fantom'
3691
+ | 'fantomTestnet'
3692
+ | 'flowMainnet'
3693
+ | 'mainnet'
3694
+ | 'optimism'
3695
+ | 'polygon'
3696
+ | 'polygon_mumbai'
3697
+ | 'skaleNebula'
3698
+ | 'solana'
3699
+ | 'sophon'
3700
+ | 'sophonTestnet'
3701
+ | 'sui'
3702
+ | 'superseed'
3703
+ | 'superseedSepolia'
3704
+ | 'vanar'
3705
+ | 'xai'
3706
+ | 'zksync'
3707
+ | 'coti'
3708
+ | 'cotiTestnet'
3709
+ | 'morph'
3710
+ | 'morphTestnet'
3711
+ | 'morphHolesky'
3712
+ | 'ultra'
3713
+ | 'ultraTestnet'
3714
+ | 'nitrograph'
3715
+ | 'sepolia'
3716
+ | 'optimism_sepolia'
3717
+ | 'arbitrumSepolia'
3718
+ | 'goerli'
3719
+ | 'optimism_goerli'
3720
+ | 'arbitrumGoerli'
3721
+ | 'basecamp';
3722
+
3723
+ /**
3724
+ * Indicates if only in-range liquidity is rewarded.
3725
+ */
3726
+ onlyRewardInRangeLiquidity?: boolean;
3727
+
3728
+ /**
3729
+ * Array of liquidity pools associated with the rule.
3730
+ */
3731
+ pools?: Array<Liquidity.Pool>;
3732
+
3733
+ /**
3734
+ * Protocol of the liquidity pool.
3735
+ */
3736
+ protocol?: string;
3737
+ }
3738
+
3739
+ export namespace Liquidity {
3740
+ export interface Pool {
3741
+ /**
3742
+ * Unique identifier of the liquidity pool.
3743
+ */
3744
+ id: string;
3745
+ }
3746
+ }
3747
+
3748
+ export interface Range {
3749
+ /**
3750
+ * Reward amount for this range.
3751
+ */
3752
+ amount: number;
3753
+
3754
+ /**
3755
+ * End value of the range.
3756
+ */
3757
+ endRange: number;
3758
+
3759
+ /**
3760
+ * Start value of the range.
3761
+ */
3762
+ startRange: number;
3763
+
3764
+ /**
3765
+ * ID of the loyalty badge for this range.
3766
+ */
3767
+ loyaltyBadgeId?: string;
3768
+
3769
+ /**
3770
+ * Amount of the loyalty multiplier for this range.
3771
+ */
3772
+ loyaltyMultiplierAmount?: number;
3773
+ }
3774
+
3775
+ /**
3776
+ * Object defining referral requirements.
3777
+ */
3778
+ export interface ReferralRequirements {
3779
+ /**
3780
+ * Flag indicating if achieving points is required.
3781
+ */
3782
+ achievePoints?: boolean | null;
3783
+
3784
+ /**
3785
+ * Flag indicating if completing the profile is required.
3786
+ */
3787
+ completeProfile?: boolean | null;
3788
+
3789
+ /**
3790
+ * Flag indicating if connecting Discord is required.
3791
+ */
3792
+ connectDiscord?: boolean | null;
3793
+
3794
+ /**
3795
+ * Flag indicating if connecting email is required.
3796
+ */
3797
+ connectEmail?: boolean | null;
3798
+
3799
+ /**
3800
+ * Flag indicating if connecting Twitter is required.
3801
+ */
3802
+ connectTwitter?: boolean | null;
3803
+
3804
+ points?: ReferralRequirements.Points | null;
3805
+ }
3806
+
3807
+ export namespace ReferralRequirements {
3808
+ export interface Points {
3809
+ /**
3810
+ * Points required for referral.
3811
+ */
3812
+ amount?: number | null;
3813
+
3814
+ /**
3815
+ * ID of the loyalty currency for referral.
3816
+ */
3817
+ loyaltyCurrecyId?: string | null;
3818
+ }
3819
+ }
3820
+
3821
+ /**
3822
+ * Object containing details of the associated smart contract.
3823
+ */
3824
+ export interface SmartContract {
3825
+ /**
3826
+ * Mapping of addresses for the smart contract.
3827
+ */
3828
+ addressMapping?: string | null;
3829
+
3830
+ /**
3831
+ * Object containing details of the amount multiplier from the event.
3832
+ */
3833
+ amountMultiplier?: SmartContract.AmountMultiplier | null;
3834
+
3835
+ /**
3836
+ * ID of the smart contract.
3837
+ */
3838
+ contractId?: string | null;
3839
+
3840
+ /**
3841
+ * Criteria to evaluate the smart contract event.
3842
+ */
3843
+ criteria?: 'everyEvent' | 'byParameter' | null;
3844
+
3845
+ /**
3846
+ * Event emitted by the smart contract.
3847
+ */
3848
+ event?: string | null;
3849
+
3850
+ /**
3851
+ * Array of parameters for the smart contract.
3852
+ */
3853
+ params?: Array<SmartContract.Param> | null;
3854
+
3855
+ /**
3856
+ * Type of the smart contract interaction.
3857
+ */
3858
+ type?: 'function' | 'event' | null;
3859
+ }
3860
+
3861
+ export namespace SmartContract {
3862
+ /**
3863
+ * Object containing details of the amount multiplier from the event.
3864
+ */
3865
+ export interface AmountMultiplier {
3866
+ /**
3867
+ * Mapping of the value for the smart contract.
3868
+ */
3869
+ valueMapping?: string | null;
3870
+ }
3871
+
3872
+ export interface Param {
3873
+ /**
3874
+ * Condition to check for the parameter.
3875
+ */
3876
+ condition?: string | null;
3877
+
3878
+ /**
3879
+ * Name of the smart contract parameter.
3880
+ */
3881
+ name?: string | null;
3882
+
3883
+ /**
3884
+ * Value of the parameter.
3885
+ */
3886
+ value?: string | null;
3887
+ }
3888
+ }
3889
+
3890
+ export interface SnapshotProposal {
3891
+ /**
3892
+ * ID of the snapshot proposal.
3893
+ */
3894
+ id: string;
3895
+
3896
+ /**
3897
+ * Space associated with the snapshot proposal.
3898
+ */
3899
+ space: string;
3900
+ }
3901
+
3902
+ export interface StreakArray {
3903
+ /**
3904
+ * Reward amount for achieving the streak milestone.
3905
+ */
3906
+ streakAmount: number;
3907
+
3908
+ /**
3909
+ * Milestone required to achieve the streak.
3910
+ */
3911
+ streakMilestone: number;
3912
+ }
3913
+
3914
+ /**
3915
+ * Metadata for swap loyalty rules
3916
+ */
3917
+ export interface Swap {
3918
+ provider?: 'any' | 'relay' | 'lifi';
3919
+
3920
+ relayReferrerId?: string;
3921
+
3922
+ requireCrossChainSwap?: boolean;
3923
+
3924
+ swappedToChain?: 'any' | number | string;
3925
+
3926
+ swappedToTokens?: Array<Swap.SwappedToToken>;
3927
+
3928
+ tokenMode?: 'any' | 'specific';
3929
+
3930
+ trackTokenAmount?: boolean;
3931
+ }
3932
+
3933
+ export namespace Swap {
3934
+ export interface SwappedToToken {
3935
+ address: string;
3936
+
3937
+ chainId: string;
3938
+ }
3939
+ }
3940
+ }
382
3941
  }
383
3942
  }
384
3943
 
385
- export interface RuleEditRetrieveParams {
3944
+ export interface RuleEditListParams {
386
3945
  /**
387
3946
  * ID of the loyalty rule
388
3947
  */
@@ -391,7 +3950,7 @@ export interface RuleEditRetrieveParams {
391
3950
  /**
392
3951
  * Maximum number of edits to return
393
3952
  */
394
- limit?: number | null;
3953
+ limit?: number;
395
3954
 
396
3955
  /**
397
3956
  * Unique identifier for the organization to filter by
@@ -413,9 +3972,9 @@ export interface RuleEditRestoreParams {}
413
3972
 
414
3973
  export declare namespace RuleEdits {
415
3974
  export {
416
- type RuleEditRetrieveResponse as RuleEditRetrieveResponse,
3975
+ type RuleEditListResponse as RuleEditListResponse,
417
3976
  type RuleEditRestoreResponse as RuleEditRestoreResponse,
418
- type RuleEditRetrieveParams as RuleEditRetrieveParams,
3977
+ type RuleEditListParams as RuleEditListParams,
419
3978
  type RuleEditRestoreParams as RuleEditRestoreParams,
420
3979
  };
421
3980
  }