@boostxyz/sdk 0.0.0-alpha.2 → 0.0.0-alpha.21

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 (271) hide show
  1. package/dist/Actions/Action.cjs +2 -1
  2. package/dist/Actions/Action.cjs.map +1 -0
  3. package/dist/Actions/Action.d.ts +1 -1
  4. package/dist/Actions/Action.d.ts.map +1 -1
  5. package/dist/Actions/Action.js +14 -12
  6. package/dist/Actions/Action.js.map +1 -0
  7. package/dist/Actions/ContractAction.d.ts +57 -14
  8. package/dist/Actions/ContractAction.d.ts.map +1 -1
  9. package/dist/Actions/ERC721MintAction.d.ts +50 -23
  10. package/dist/Actions/ERC721MintAction.d.ts.map +1 -1
  11. package/dist/Actions/EventAction.cjs +2 -1
  12. package/dist/Actions/EventAction.cjs.map +1 -0
  13. package/dist/Actions/EventAction.d.ts +405 -36
  14. package/dist/Actions/EventAction.d.ts.map +1 -1
  15. package/dist/Actions/EventAction.js +15 -209
  16. package/dist/Actions/EventAction.js.map +1 -0
  17. package/dist/AllowLists/AllowList.cjs +2 -1
  18. package/dist/AllowLists/AllowList.cjs.map +1 -0
  19. package/dist/AllowLists/AllowList.d.ts +6 -5
  20. package/dist/AllowLists/AllowList.d.ts.map +1 -1
  21. package/dist/AllowLists/AllowList.js +46 -22
  22. package/dist/AllowLists/AllowList.js.map +1 -0
  23. package/dist/AllowLists/OpenAllowList.d.ts +423 -0
  24. package/dist/AllowLists/OpenAllowList.d.ts.map +1 -0
  25. package/dist/AllowLists/SimpleAllowList.cjs +2 -1
  26. package/dist/AllowLists/SimpleAllowList.cjs.map +1 -0
  27. package/dist/AllowLists/SimpleAllowList.d.ts +124 -40
  28. package/dist/AllowLists/SimpleAllowList.d.ts.map +1 -1
  29. package/dist/AllowLists/SimpleAllowList.js +76 -76
  30. package/dist/AllowLists/SimpleAllowList.js.map +1 -0
  31. package/dist/AllowLists/SimpleDenyList.cjs +2 -1
  32. package/dist/AllowLists/SimpleDenyList.cjs.map +1 -0
  33. package/dist/AllowLists/SimpleDenyList.d.ts +234 -13
  34. package/dist/AllowLists/SimpleDenyList.d.ts.map +1 -1
  35. package/dist/AllowLists/SimpleDenyList.js +12 -200
  36. package/dist/AllowLists/SimpleDenyList.js.map +1 -0
  37. package/dist/Auth/Auth.cjs +1 -0
  38. package/dist/Auth/Auth.cjs.map +1 -0
  39. package/dist/Auth/Auth.js +1 -0
  40. package/dist/Auth/Auth.js.map +1 -0
  41. package/dist/Auth/PassthroughAuth.cjs +2 -1
  42. package/dist/Auth/PassthroughAuth.cjs.map +1 -0
  43. package/dist/Auth/PassthroughAuth.js +5 -4
  44. package/dist/Auth/PassthroughAuth.js.map +1 -0
  45. package/dist/Boost.cjs +2 -1
  46. package/dist/Boost.cjs.map +1 -0
  47. package/dist/Boost.d.ts +105 -14
  48. package/dist/Boost.d.ts.map +1 -1
  49. package/dist/Boost.js +138 -5
  50. package/dist/Boost.js.map +1 -0
  51. package/dist/BoostCore-DolmDuXW.cjs +3 -0
  52. package/dist/BoostCore-DolmDuXW.cjs.map +1 -0
  53. package/dist/BoostCore-Z97KVu4V.js +1448 -0
  54. package/dist/BoostCore-Z97KVu4V.js.map +1 -0
  55. package/dist/BoostCore.cjs +2 -2
  56. package/dist/BoostCore.cjs.map +1 -0
  57. package/dist/BoostCore.d.ts +788 -79
  58. package/dist/BoostCore.d.ts.map +1 -1
  59. package/dist/BoostCore.js +30 -1103
  60. package/dist/BoostCore.js.map +1 -0
  61. package/dist/BoostRegistry.cjs +2 -1
  62. package/dist/BoostRegistry.cjs.map +1 -0
  63. package/dist/BoostRegistry.d.ts +95 -26
  64. package/dist/BoostRegistry.d.ts.map +1 -1
  65. package/dist/BoostRegistry.js +183 -89
  66. package/dist/BoostRegistry.js.map +1 -0
  67. package/dist/Budgets/Budget.cjs +2 -1
  68. package/dist/Budgets/Budget.cjs.map +1 -0
  69. package/dist/Budgets/Budget.d.ts +1 -1
  70. package/dist/Budgets/Budget.d.ts.map +1 -1
  71. package/dist/Budgets/Budget.js +15 -13
  72. package/dist/Budgets/Budget.js.map +1 -0
  73. package/dist/Budgets/ManagedBudget.cjs +2 -1
  74. package/dist/Budgets/ManagedBudget.cjs.map +1 -0
  75. package/dist/Budgets/ManagedBudget.d.ts +112 -192
  76. package/dist/Budgets/ManagedBudget.d.ts.map +1 -1
  77. package/dist/Budgets/ManagedBudget.js +91 -291
  78. package/dist/Budgets/ManagedBudget.js.map +1 -0
  79. package/dist/Budgets/VestingBudget.d.ts +277 -91
  80. package/dist/Budgets/VestingBudget.d.ts.map +1 -1
  81. package/dist/Deployable/Contract.cjs +2 -1
  82. package/dist/Deployable/Contract.cjs.map +1 -0
  83. package/dist/Deployable/Contract.d.ts +4 -5
  84. package/dist/Deployable/Contract.d.ts.map +1 -1
  85. package/dist/Deployable/Contract.js +7 -8
  86. package/dist/Deployable/Contract.js.map +1 -0
  87. package/dist/Deployable/Deployable.cjs +1 -0
  88. package/dist/Deployable/Deployable.cjs.map +1 -0
  89. package/dist/Deployable/Deployable.d.ts +9 -3
  90. package/dist/Deployable/Deployable.d.ts.map +1 -1
  91. package/dist/Deployable/Deployable.js +10 -5
  92. package/dist/Deployable/Deployable.js.map +1 -0
  93. package/dist/Deployable/DeployableTarget.cjs +2 -1
  94. package/dist/Deployable/DeployableTarget.cjs.map +1 -0
  95. package/dist/Deployable/DeployableTarget.d.ts +16 -15
  96. package/dist/Deployable/DeployableTarget.d.ts.map +1 -1
  97. package/dist/Deployable/DeployableTarget.js +49 -42
  98. package/dist/Deployable/DeployableTarget.js.map +1 -0
  99. package/dist/Deployable/DeployableTargetWithRBAC.cjs +2 -0
  100. package/dist/Deployable/DeployableTargetWithRBAC.cjs.map +1 -0
  101. package/dist/Deployable/DeployableTargetWithRBAC.d.ts +179 -0
  102. package/dist/Deployable/DeployableTargetWithRBAC.d.ts.map +1 -0
  103. package/dist/Deployable/DeployableTargetWithRBAC.js +222 -0
  104. package/dist/Deployable/DeployableTargetWithRBAC.js.map +1 -0
  105. package/dist/EventAction-CBKzuNoN.cjs +2 -0
  106. package/dist/EventAction-CBKzuNoN.cjs.map +1 -0
  107. package/dist/EventAction-DWuuc_Qy.js +1528 -0
  108. package/dist/EventAction-DWuuc_Qy.js.map +1 -0
  109. package/dist/Incentive-BxzEtN26.js +298 -0
  110. package/dist/Incentive-BxzEtN26.js.map +1 -0
  111. package/dist/Incentive-CrF3-ayL.cjs +2 -0
  112. package/dist/Incentive-CrF3-ayL.cjs.map +1 -0
  113. package/dist/Incentives/AllowListIncentive.cjs +2 -1
  114. package/dist/Incentives/AllowListIncentive.cjs.map +1 -0
  115. package/dist/Incentives/AllowListIncentive.d.ts +65 -21
  116. package/dist/Incentives/AllowListIncentive.d.ts.map +1 -1
  117. package/dist/Incentives/AllowListIncentive.js +52 -36
  118. package/dist/Incentives/AllowListIncentive.js.map +1 -0
  119. package/dist/Incentives/CGDAIncentive.cjs +2 -1
  120. package/dist/Incentives/CGDAIncentive.cjs.map +1 -0
  121. package/dist/Incentives/CGDAIncentive.d.ts +315 -26
  122. package/dist/Incentives/CGDAIncentive.d.ts.map +1 -1
  123. package/dist/Incentives/CGDAIncentive.js +64 -39
  124. package/dist/Incentives/CGDAIncentive.js.map +1 -0
  125. package/dist/Incentives/ERC1155Incentive.d.ts +291 -43
  126. package/dist/Incentives/ERC1155Incentive.d.ts.map +1 -1
  127. package/dist/Incentives/ERC20Incentive.cjs +2 -1
  128. package/dist/Incentives/ERC20Incentive.cjs.map +1 -0
  129. package/dist/Incentives/ERC20Incentive.d.ts +270 -33
  130. package/dist/Incentives/ERC20Incentive.d.ts.map +1 -1
  131. package/dist/Incentives/ERC20Incentive.js +69 -46
  132. package/dist/Incentives/ERC20Incentive.js.map +1 -0
  133. package/dist/{Budgets/SimpleBudget.d.ts → Incentives/ERC20VariableCriteriaIncentive.d.ts} +338 -421
  134. package/dist/Incentives/ERC20VariableCriteriaIncentive.d.ts.map +1 -0
  135. package/dist/Incentives/ERC20VariableIncentive.d.ts +262 -32
  136. package/dist/Incentives/ERC20VariableIncentive.d.ts.map +1 -1
  137. package/dist/Incentives/Incentive.cjs +2 -1
  138. package/dist/Incentives/Incentive.cjs.map +1 -0
  139. package/dist/Incentives/Incentive.d.ts +5 -8
  140. package/dist/Incentives/Incentive.d.ts.map +1 -1
  141. package/dist/Incentives/Incentive.js +17 -278
  142. package/dist/Incentives/Incentive.js.map +1 -0
  143. package/dist/Incentives/PointsIncentive.cjs +2 -1
  144. package/dist/Incentives/PointsIncentive.cjs.map +1 -0
  145. package/dist/Incentives/PointsIncentive.d.ts +81 -23
  146. package/dist/Incentives/PointsIncentive.d.ts.map +1 -1
  147. package/dist/Incentives/PointsIncentive.js +57 -36
  148. package/dist/Incentives/PointsIncentive.js.map +1 -0
  149. package/dist/SimpleDenyList-BUR17Tt1.cjs +2 -0
  150. package/dist/SimpleDenyList-BUR17Tt1.cjs.map +1 -0
  151. package/dist/SimpleDenyList-CGaWjuld.js +132 -0
  152. package/dist/SimpleDenyList-CGaWjuld.js.map +1 -0
  153. package/dist/Validators/SignerValidator.cjs +2 -1
  154. package/dist/Validators/SignerValidator.cjs.map +1 -0
  155. package/dist/Validators/SignerValidator.d.ts +310 -17
  156. package/dist/Validators/SignerValidator.d.ts.map +1 -1
  157. package/dist/Validators/SignerValidator.js +165 -36
  158. package/dist/Validators/SignerValidator.js.map +1 -0
  159. package/dist/Validators/Validator.cjs +2 -1
  160. package/dist/Validators/Validator.cjs.map +1 -0
  161. package/dist/Validators/Validator.d.ts +2 -2
  162. package/dist/Validators/Validator.d.ts.map +1 -1
  163. package/dist/Validators/Validator.js +10 -8
  164. package/dist/Validators/Validator.js.map +1 -0
  165. package/dist/claiming.cjs +2 -0
  166. package/dist/claiming.cjs.map +1 -0
  167. package/dist/claiming.d.ts +43 -0
  168. package/dist/claiming.d.ts.map +1 -0
  169. package/dist/claiming.js +17 -0
  170. package/dist/claiming.js.map +1 -0
  171. package/dist/componentInterfaces-BBCFkrZv.js +14 -0
  172. package/dist/componentInterfaces-BBCFkrZv.js.map +1 -0
  173. package/dist/componentInterfaces-DRI_dQ-P.cjs +2 -0
  174. package/dist/componentInterfaces-DRI_dQ-P.cjs.map +1 -0
  175. package/dist/deployments-DVXioW2i.cjs +2 -0
  176. package/dist/deployments-DVXioW2i.cjs.map +1 -0
  177. package/dist/deployments-oykLv3_Z.js +43 -0
  178. package/dist/deployments-oykLv3_Z.js.map +1 -0
  179. package/dist/deployments.json +44 -0
  180. package/dist/errors.cjs +2 -1
  181. package/dist/errors.cjs.map +1 -0
  182. package/dist/errors.d.ts +421 -1
  183. package/dist/errors.d.ts.map +1 -1
  184. package/dist/errors.js +297 -39
  185. package/dist/errors.js.map +1 -0
  186. package/dist/{generated-x_abr3Yv.js → generated-CKt2yCQd.js} +3143 -3002
  187. package/dist/generated-CKt2yCQd.js.map +1 -0
  188. package/dist/generated-CyTNlOwM.cjs +3 -0
  189. package/dist/generated-CyTNlOwM.cjs.map +1 -0
  190. package/dist/index.cjs +2 -1
  191. package/dist/index.cjs.map +1 -0
  192. package/dist/index.d.ts +10 -9
  193. package/dist/index.d.ts.map +1 -1
  194. package/dist/index.js +144 -1353
  195. package/dist/index.js.map +1 -0
  196. package/dist/transfers.cjs +2 -0
  197. package/dist/transfers.cjs.map +1 -0
  198. package/dist/transfers.d.ts +198 -0
  199. package/dist/transfers.d.ts.map +1 -0
  200. package/dist/transfers.js +84 -0
  201. package/dist/transfers.js.map +1 -0
  202. package/dist/utils.cjs +2 -1
  203. package/dist/utils.cjs.map +1 -0
  204. package/dist/utils.d.ts +26 -1350
  205. package/dist/utils.d.ts.map +1 -1
  206. package/dist/utils.js +38 -636
  207. package/dist/utils.js.map +1 -0
  208. package/package.json +37 -11
  209. package/src/Actions/Action.test.ts +79 -0
  210. package/src/Actions/Action.ts +61 -0
  211. package/src/Actions/ContractAction.test.ts +197 -0
  212. package/src/Actions/ContractAction.ts +300 -0
  213. package/src/Actions/ERC721MintAction.test.ts +112 -0
  214. package/src/Actions/ERC721MintAction.ts +291 -0
  215. package/src/Actions/EventAction.test.ts +787 -0
  216. package/src/Actions/EventAction.ts +1218 -0
  217. package/src/AllowLists/AllowList.test.ts +64 -0
  218. package/src/AllowLists/AllowList.ts +62 -0
  219. package/src/AllowLists/OpenAllowList.test.ts +40 -0
  220. package/src/AllowLists/OpenAllowList.ts +45 -0
  221. package/src/AllowLists/SimpleAllowList.test.ts +52 -0
  222. package/src/AllowLists/SimpleAllowList.ts +262 -0
  223. package/src/AllowLists/SimpleDenyList.test.ts +52 -0
  224. package/src/AllowLists/SimpleDenyList.ts +250 -0
  225. package/src/Auth/Auth.ts +11 -0
  226. package/src/Auth/PassthroughAuth.test.ts +12 -0
  227. package/src/Auth/PassthroughAuth.ts +80 -0
  228. package/src/Boost.ts +287 -0
  229. package/src/BoostCore.test.ts +894 -0
  230. package/src/BoostCore.ts +1438 -0
  231. package/src/BoostRegistry.test.ts +53 -0
  232. package/src/BoostRegistry.ts +588 -0
  233. package/src/Budgets/Budget.test.ts +27 -0
  234. package/src/Budgets/Budget.ts +60 -0
  235. package/src/Budgets/ManagedBudget.test.ts +217 -0
  236. package/src/Budgets/ManagedBudget.ts +534 -0
  237. package/src/Budgets/VestingBudget.test.ts +123 -0
  238. package/src/Budgets/VestingBudget.ts +530 -0
  239. package/src/Deployable/Contract.ts +228 -0
  240. package/src/Deployable/Deployable.ts +250 -0
  241. package/src/Deployable/DeployableTarget.ts +234 -0
  242. package/src/Deployable/DeployableTargetWithRBAC.ts +323 -0
  243. package/src/Incentives/AllowListIncentive.test.ts +143 -0
  244. package/src/Incentives/AllowListIncentive.ts +336 -0
  245. package/src/Incentives/CGDAIncentive.test.ts +135 -0
  246. package/src/Incentives/CGDAIncentive.ts +476 -0
  247. package/src/Incentives/ERC1155Incentive.test.ts +87 -0
  248. package/src/Incentives/ERC1155Incentive.ts +465 -0
  249. package/src/Incentives/ERC20Incentive.test.ts +133 -0
  250. package/src/Incentives/ERC20Incentive.ts +490 -0
  251. package/src/Incentives/ERC20VariableCriteriaIncentive.test.ts +184 -0
  252. package/src/Incentives/ERC20VariableCriteriaIncentive.ts +309 -0
  253. package/src/Incentives/ERC20VariableIncentive.test.ts +139 -0
  254. package/src/Incentives/ERC20VariableIncentive.ts +428 -0
  255. package/src/Incentives/Incentive.test.ts +95 -0
  256. package/src/Incentives/Incentive.ts +86 -0
  257. package/src/Incentives/PointsIncentive.test.ts +138 -0
  258. package/src/Incentives/PointsIncentive.ts +367 -0
  259. package/src/Validators/SignerValidator.test.ts +159 -0
  260. package/src/Validators/SignerValidator.ts +683 -0
  261. package/src/Validators/Validator.test.ts +21 -0
  262. package/src/Validators/Validator.ts +55 -0
  263. package/src/claiming.ts +56 -0
  264. package/src/errors.ts +866 -0
  265. package/src/index.test.ts +122 -0
  266. package/src/index.ts +58 -0
  267. package/src/transfers.ts +284 -0
  268. package/src/utils.test.ts +44 -0
  269. package/src/utils.ts +247 -0
  270. package/dist/Budgets/SimpleBudget.d.ts.map +0 -1
  271. package/dist/generated-BaaleHW-.cjs +0 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventAction-DWuuc_Qy.js","sources":["../../../node_modules/.pnpm/ts-pattern@5.4.0/node_modules/ts-pattern/dist/index.js","../src/Actions/EventAction.ts"],"sourcesContent":["const t=Symbol.for(\"@ts-pattern/matcher\"),e=Symbol.for(\"@ts-pattern/isVariadic\"),n=\"@ts-pattern/anonymous-select-key\",r=t=>Boolean(t&&\"object\"==typeof t),i=e=>e&&!!e[t],s=(n,o,c)=>{if(i(n)){const e=n[t](),{matched:r,selections:i}=e.match(o);return r&&i&&Object.keys(i).forEach(t=>c(t,i[t])),r}if(r(n)){if(!r(o))return!1;if(Array.isArray(n)){if(!Array.isArray(o))return!1;let t=[],r=[],a=[];for(const s of n.keys()){const o=n[s];i(o)&&o[e]?a.push(o):a.length?r.push(o):t.push(o)}if(a.length){if(a.length>1)throw new Error(\"Pattern error: Using `...P.array(...)` several times in a single pattern is not allowed.\");if(o.length<t.length+r.length)return!1;const e=o.slice(0,t.length),n=0===r.length?[]:o.slice(-r.length),i=o.slice(t.length,0===r.length?Infinity:-r.length);return t.every((t,n)=>s(t,e[n],c))&&r.every((t,e)=>s(t,n[e],c))&&(0===a.length||s(a[0],i,c))}return n.length===o.length&&n.every((t,e)=>s(t,o[e],c))}return Reflect.ownKeys(n).every(e=>{const r=n[e];return(e in o||i(a=r)&&\"optional\"===a[t]().matcherType)&&s(r,o[e],c);var a})}return Object.is(o,n)},o=e=>{var n,s,a;return r(e)?i(e)?null!=(n=null==(s=(a=e[t]()).getSelectionKeys)?void 0:s.call(a))?n:[]:Array.isArray(e)?c(e,o):c(Object.values(e),o):[]},c=(t,e)=>t.reduce((t,n)=>t.concat(e(n)),[]);function a(...t){if(1===t.length){const[e]=t;return t=>s(e,t,()=>{})}if(2===t.length){const[e,n]=t;return s(e,n,()=>{})}throw new Error(`isMatching wasn't given the right number of arguments: expected 1 or 2, received ${t.length}.`)}function u(t){return Object.assign(t,{optional:()=>h(t),and:e=>m(t,e),or:e=>d(t,e),select:e=>void 0===e?y(t):y(e,t)})}function l(t){return Object.assign((t=>Object.assign(t,{[Symbol.iterator](){let n=0;const r=[{value:Object.assign(t,{[e]:!0}),done:!1},{done:!0,value:void 0}];return{next:()=>{var t;return null!=(t=r[n++])?t:r.at(-1)}}}}))(t),{optional:()=>l(h(t)),select:e=>l(void 0===e?y(t):y(e,t))})}function h(e){return u({[t]:()=>({match:t=>{let n={};const r=(t,e)=>{n[t]=e};return void 0===t?(o(e).forEach(t=>r(t,void 0)),{matched:!0,selections:n}):{matched:s(e,t,r),selections:n}},getSelectionKeys:()=>o(e),matcherType:\"optional\"})})}const f=(t,e)=>{for(const n of t)if(!e(n))return!1;return!0},g=(t,e)=>{for(const[n,r]of t.entries())if(!e(r,n))return!1;return!0};function m(...e){return u({[t]:()=>({match:t=>{let n={};const r=(t,e)=>{n[t]=e};return{matched:e.every(e=>s(e,t,r)),selections:n}},getSelectionKeys:()=>c(e,o),matcherType:\"and\"})})}function d(...e){return u({[t]:()=>({match:t=>{let n={};const r=(t,e)=>{n[t]=e};return c(e,o).forEach(t=>r(t,void 0)),{matched:e.some(e=>s(e,t,r)),selections:n}},getSelectionKeys:()=>c(e,o),matcherType:\"or\"})})}function p(e){return{[t]:()=>({match:t=>({matched:Boolean(e(t))})})}}function y(...e){const r=\"string\"==typeof e[0]?e[0]:void 0,i=2===e.length?e[1]:\"string\"==typeof e[0]?void 0:e[0];return u({[t]:()=>({match:t=>{let e={[null!=r?r:n]:t};return{matched:void 0===i||s(i,t,(t,n)=>{e[t]=n}),selections:e}},getSelectionKeys:()=>[null!=r?r:n].concat(void 0===i?[]:o(i))})})}function v(t){return\"number\"==typeof t}function b(t){return\"string\"==typeof t}function w(t){return\"bigint\"==typeof t}const S=u(p(function(t){return!0})),O=S,j=t=>Object.assign(u(t),{startsWith:e=>{return j(m(t,(n=e,p(t=>b(t)&&t.startsWith(n)))));var n},endsWith:e=>{return j(m(t,(n=e,p(t=>b(t)&&t.endsWith(n)))));var n},minLength:e=>j(m(t,(t=>p(e=>b(e)&&e.length>=t))(e))),length:e=>j(m(t,(t=>p(e=>b(e)&&e.length===t))(e))),maxLength:e=>j(m(t,(t=>p(e=>b(e)&&e.length<=t))(e))),includes:e=>{return j(m(t,(n=e,p(t=>b(t)&&t.includes(n)))));var n},regex:e=>{return j(m(t,(n=e,p(t=>b(t)&&Boolean(t.match(n))))));var n}}),K=j(p(b)),x=t=>Object.assign(u(t),{between:(e,n)=>x(m(t,((t,e)=>p(n=>v(n)&&t<=n&&e>=n))(e,n))),lt:e=>x(m(t,(t=>p(e=>v(e)&&e<t))(e))),gt:e=>x(m(t,(t=>p(e=>v(e)&&e>t))(e))),lte:e=>x(m(t,(t=>p(e=>v(e)&&e<=t))(e))),gte:e=>x(m(t,(t=>p(e=>v(e)&&e>=t))(e))),int:()=>x(m(t,p(t=>v(t)&&Number.isInteger(t)))),finite:()=>x(m(t,p(t=>v(t)&&Number.isFinite(t)))),positive:()=>x(m(t,p(t=>v(t)&&t>0))),negative:()=>x(m(t,p(t=>v(t)&&t<0)))}),E=x(p(v)),A=t=>Object.assign(u(t),{between:(e,n)=>A(m(t,((t,e)=>p(n=>w(n)&&t<=n&&e>=n))(e,n))),lt:e=>A(m(t,(t=>p(e=>w(e)&&e<t))(e))),gt:e=>A(m(t,(t=>p(e=>w(e)&&e>t))(e))),lte:e=>A(m(t,(t=>p(e=>w(e)&&e<=t))(e))),gte:e=>A(m(t,(t=>p(e=>w(e)&&e>=t))(e))),positive:()=>A(m(t,p(t=>w(t)&&t>0))),negative:()=>A(m(t,p(t=>w(t)&&t<0)))}),P=A(p(w)),T=u(p(function(t){return\"boolean\"==typeof t})),B=u(p(function(t){return\"symbol\"==typeof t})),_=u(p(function(t){return null==t})),k=u(p(function(t){return null!=t}));var N={__proto__:null,matcher:t,optional:h,array:function(...e){return l({[t]:()=>({match:t=>{if(!Array.isArray(t))return{matched:!1};if(0===e.length)return{matched:!0};const n=e[0];let r={};if(0===t.length)return o(n).forEach(t=>{r[t]=[]}),{matched:!0,selections:r};const i=(t,e)=>{r[t]=(r[t]||[]).concat([e])};return{matched:t.every(t=>s(n,t,i)),selections:r}},getSelectionKeys:()=>0===e.length?[]:o(e[0])})})},set:function(...e){return u({[t]:()=>({match:t=>{if(!(t instanceof Set))return{matched:!1};let n={};if(0===t.size)return{matched:!0,selections:n};if(0===e.length)return{matched:!0};const r=(t,e)=>{n[t]=(n[t]||[]).concat([e])},i=e[0];return{matched:f(t,t=>s(i,t,r)),selections:n}},getSelectionKeys:()=>0===e.length?[]:o(e[0])})})},map:function(...e){return u({[t]:()=>({match:t=>{if(!(t instanceof Map))return{matched:!1};let n={};if(0===t.size)return{matched:!0,selections:n};const r=(t,e)=>{n[t]=(n[t]||[]).concat([e])};if(0===e.length)return{matched:!0};var i;if(1===e.length)throw new Error(`\\`P.map\\` wasn't given enough arguments. Expected (key, value), received ${null==(i=e[0])?void 0:i.toString()}`);const[o,c]=e;return{matched:g(t,(t,e)=>{const n=s(o,e,r),i=s(c,t,r);return n&&i}),selections:n}},getSelectionKeys:()=>0===e.length?[]:[...o(e[0]),...o(e[1])]})})},intersection:m,union:d,not:function(e){return u({[t]:()=>({match:t=>({matched:!s(e,t,()=>{})}),getSelectionKeys:()=>[],matcherType:\"not\"})})},when:p,select:y,any:S,_:O,string:K,number:E,bigint:P,boolean:T,symbol:B,nullish:_,nonNullable:k,instanceOf:function(t){return u(p(function(t){return e=>e instanceof t}(t)))},shape:function(t){return u(p(a(t)))}};class W extends Error{constructor(t){let e;try{e=JSON.stringify(t)}catch(n){e=t}super(`Pattern matching error: no pattern matches value ${e}`),this.input=void 0,this.input=t}}const $={matched:!1,value:void 0};function z(t){return new I(t,$)}class I{constructor(t,e){this.input=void 0,this.state=void 0,this.input=t,this.state=e}with(...t){if(this.state.matched)return this;const e=t[t.length-1],r=[t[0]];let i;3===t.length&&\"function\"==typeof t[1]?i=t[1]:t.length>2&&r.push(...t.slice(1,t.length-1));let o=!1,c={};const a=(t,e)=>{o=!0,c[t]=e},u=!r.some(t=>s(t,this.input,a))||i&&!Boolean(i(this.input))?$:{matched:!0,value:e(o?n in c?c[n]:c:this.input,this.input)};return new I(this.input,u)}when(t,e){if(this.state.matched)return this;const n=Boolean(t(this.input));return new I(this.input,n?{matched:!0,value:e(this.input,this.input)}:$)}otherwise(t){return this.state.matched?this.state.value:t(this.input)}exhaustive(){if(this.state.matched)return this.state.value;throw new W(this.input)}run(){return this.exhaustive()}returnType(){return this}}export{W as NonExhaustiveError,N as P,N as Pattern,a as isMatching,z as match};\n//# sourceMappingURL=index.js.map\n","import {\n eventActionAbi,\n readEventActionGetActionClaimant,\n readEventActionGetActionSteps,\n simulateEventActionExecute,\n writeEventActionExecute,\n} from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/actions/EventAction.sol/EventAction.json';\nimport events from '@boostxyz/signatures/events';\nimport functions from '@boostxyz/signatures/functions';\nimport {\n GetTransactionReceiptParameters,\n getTransaction,\n getTransactionReceipt,\n} from '@wagmi/core';\nimport { match } from 'ts-pattern';\nimport {\n type Abi,\n type AbiEvent,\n type AbiFunction,\n AbiItem,\n type Address,\n type ContractEventName,\n type ContractFunctionName,\n type GetLogsReturnType,\n type GetTransactionParameters,\n type Hex,\n type Log,\n type PublicClient,\n type Transaction,\n decodeEventLog,\n decodeFunctionData,\n encodeAbiParameters,\n fromHex,\n isAddress,\n isAddressEqual,\n} from 'viem';\nimport { EventAction as EventActionBases } from '../../dist/deployments.json';\nimport type {\n DeployableOptions,\n GenericDeployableParams,\n} from '../Deployable/Deployable';\nimport { DeployableTarget } from '../Deployable/DeployableTarget';\nimport {\n DecodedArgsMalformedError,\n FieldValueNotComparableError,\n FieldValueUndefinedError,\n FunctionDataDecodeError,\n InvalidNumericalCriteriaError,\n NoEventActionStepsProvidedError,\n TooManyEventActionStepsProvidedError,\n UnparseableAbiParamError,\n UnrecognizedFilterTypeError,\n ValidationAbiMissingError,\n} from '../errors';\nimport {\n type GetLogsParams,\n type Overwrite,\n type ReadParams,\n RegistryType,\n type WriteParams,\n} from '../utils';\n\n/*\n * Action Event Payloads\n */\n\n/**\n * Filter types used to determine how criteria are evaluated.\n *\n * @export\n * @enum {number}\n */\nexport enum FilterType {\n EQUAL = 0,\n NOT_EQUAL = 1,\n GREATER_THAN = 2,\n LESS_THAN = 3,\n CONTAINS = 4,\n REGEX = 5,\n}\n\n/**\n * The primitive types supported for filtering.\n *\n * @export\n * @enum {number}\n */\nexport enum PrimitiveType {\n UINT = 0,\n ADDRESS = 1,\n BYTES = 2,\n STRING = 3,\n}\n\n/**\n * Object representation of a `Criteria` struct used in event actions.\n *\n * @export\n * @interface Criteria\n * @typedef {Criteria}\n */\nexport interface Criteria {\n /**\n * The filter type used in this criteria.\n *\n * @type {FilterType}\n */\n filterType: FilterType;\n /**\n * The primitive type of the field being filtered.\n *\n * @type {PrimitiveType}\n */\n fieldType: PrimitiveType;\n /**\n * The index in the logs argument array where the field is located.\n *\n * @type {number}\n */\n fieldIndex: number;\n /**\n * The filter data used for complex filtering.\n *\n * @type {Hex}\n */\n filterData: Hex;\n}\n\n/**\n * Whether a given signature is an event or function\n *\n * @export\n * @enum {number}\n */\nexport enum SignatureType {\n EVENT = 0,\n FUNC = 1,\n}\n\n/**\n * The payload describing how claimants are identified\n *\n * @export\n * @interface ActionClaimant\n * @typedef {ActionClaimant}\n */\nexport interface ActionClaimant {\n /**\n * Whether claimaint is inferred from event or function\n *\n * @type {SignatureType}\n */\n signatureType: SignatureType;\n /**\n * The 4 byte signature of the event or function\n *\n * @type {Hex}\n */\n signature: Hex;\n /**\n * The index corresponding to claimant.\n *\n * @type {number}\n */\n fieldIndex: number;\n /**\n * The address of the target contract\n *\n * @type {Address}\n */\n targetContract: Address;\n /**\n * The chain id of the target contract.\n * @type {number}\n */\n chainid: number;\n}\n\n/**\n * Object representation of an `ActionStep` struct used in event actions.\n *\n * @export\n * @interface ActionStep\n * @typedef {ActionStep}\n */\nexport interface ActionStep {\n /**\n * The signature of the event.\n *\n * @type {Hex}\n */\n signature: Hex;\n /**\n * Whether claimaint is inferred from event or function\n *\n * @type {SignatureType}\n */\n signatureType: SignatureType;\n /**\n * The type of action being performed.\n *\n * @type {number}\n */\n actionType?: number;\n /**\n * The address of the target contract.\n *\n * @type {Address}\n */\n targetContract: Address;\n /**\n * The chain id of the target contract.\n * @type {number}\n */\n chainid: number;\n /**\n * The criteria used for this action step.\n *\n * @type {Criteria}\n */\n actionParameter: Criteria;\n}\n\n/**\n * Parameters for validating an action step.\n *\n * @typedef {Object} ValidateActionStepParams\n * @property {Record<Hex, AbiEvent | AbiFunction>} [knownSignatures] - Optional record of known events, keyed by 32 byte selectors.\n * @property {AbiEvent | AbiFunction} [abiItem] - Optional ABI item definition.\n * @property {EventLogs} [logs] - Event logs to validate against. Required if 'hash' is not provided.\n * @property {Hex} [hash] - Transaction hash to validate against. Required if 'logs' is not provided.\n * @property {number} [chainId] - Chain ID for the transaction. Required if 'hash' is provided.\n */\nexport type ValidateActionStepParams = {\n knownSignatures?: Record<Hex, AbiEvent | AbiFunction>;\n abiItem?: AbiEvent | AbiFunction;\n} & ({ logs: EventLogs } | { hash: Hex; chainId: number });\n\n/**\n * You can either supply a simplified version of the payload, or one that explicitly declares action steps.\n *\n * @export\n * @typedef {EventActionPayload}\n */\nexport type EventActionPayload =\n | EventActionPayloadSimple\n | EventActionPayloadRaw;\n\nexport interface EventActionPayloadSimple {\n /**\n * The payload describing how claimants are identified\n *\n * @type {ActionClaimant}\n */\n actionClaimant: ActionClaimant;\n\n /**\n * Up to 4 action steps.\n * If you supply less than 4, then the last step will be reused to satisfy the EventAction.InitPayload\n * Any more than 4 will throw an error.\n *\n * @type {ActionStep[]}\n */\n actionSteps: ActionStep[];\n}\n\nexport type ActionStepTuple = [ActionStep, ActionStep, ActionStep, ActionStep];\n\n/**\n * Typeguard to determine if a user is supplying a simple or raw EventActionPayload\n *\n * @param {*} opts\n * @returns {opts is EventActionPayloadSimple}\n */\nexport function isEventActionPayloadSimple(\n opts: EventActionPayload,\n): opts is EventActionPayloadSimple {\n return Array.isArray((opts as EventActionPayloadSimple).actionSteps);\n}\n\n/**\n * Object representation of an `InitPayload` struct used to initialize event actions.\n *\n * @export\n * @interface EventActionPayloadRaw\n * @typedef {EventActionPayloadRaw}\n */\nexport interface EventActionPayloadRaw {\n /**\n * The payload describing how claimants are identified\n *\n * @type {ActionClaimant}\n */\n actionClaimant: ActionClaimant;\n /**\n * The first action step.\n *\n * @type {ActionStep}\n */\n actionStepOne: ActionStep;\n /**\n * The second action step.\n *\n * @type {ActionStep}\n */\n actionStepTwo: ActionStep;\n /**\n * The third action step.\n *\n * @type {ActionStep}\n */\n actionStepThree: ActionStep;\n /**\n * The fourth action step.\n *\n * @type {ActionStep}\n */\n actionStepFour: ActionStep;\n}\n\n/**\n * Array of event logs to pass into TxParams\n * @export\n * @typedef {EventLogs}\n */\nexport type EventLogs = GetLogsReturnType<AbiEvent, AbiEvent[], true>;\n\n/**\n * Getter params from the event action contract\n *\n * @export\n * @typedef {ReadEventActionParams}\n * @param {fnName} fnName - The getter function name\n */\nexport type ReadEventActionParams<\n fnName extends ContractFunctionName<typeof eventActionAbi, 'pure' | 'view'>,\n> = ReadParams<typeof eventActionAbi, fnName>;\n\n/**\n * A generic event action\n *\n * @export\n * @class EventAction\n * @typedef {EventAction}\n * @extends {DeployableTarget<EventActionPayload>}\n */\nexport class EventAction extends DeployableTarget<\n EventActionPayload,\n typeof eventActionAbi\n> {\n /**\n * @inheritdoc\n *\n * @public\n * @readonly\n * @type {*}\n */\n public override readonly abi = eventActionAbi;\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {Record<number, Address>}\n */\n public static override bases: Record<number, Address> = {\n ...(EventActionBases as Record<number, Address>),\n };\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {RegistryType}\n */\n public static override registryType: RegistryType = RegistryType.ACTION;\n\n /**\n * Gets a specific action event by index\n *\n * @public\n * @async\n * @param {number} index The index of the action event to retrieve\n * @param {?ReadEventActionParams<'getActionStep'>} [params]\n * @returns {Promise<ActionStep>}\n */\n public async getActionStep(\n index: number,\n params?: ReadEventActionParams<'getActionStep'>,\n ) {\n const steps = await this.getActionSteps(params);\n return steps.at(index);\n }\n\n /**\n * Gets all action events\n *\n * @public\n * @async\n * @param {?ReadEventActionParams<'getActionSteps'>} [params]\n * @returns {Promise<ActionStep[]>}\n */\n public async getActionSteps(\n params?: ReadEventActionParams<'getActionSteps'>,\n ) {\n const steps = (await readEventActionGetActionSteps(this._config, {\n address: this.assertValidAddress(),\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n })) as RawActionStep[];\n return _dedupeActionSteps(steps.map(_fromRawActionStep));\n }\n\n /**\n * Gets the count of action events\n *\n * @public\n * @async\n * @param {?ReadEventActionParams<'getActionStepsCount'>} [params]\n * @returns {Promise<bigint>}\n */\n public async getActionStepsCount(\n params?: ReadEventActionParams<'getActionStepsCount'>,\n ) {\n const steps = await this.getActionSteps(params);\n return steps.length;\n }\n\n /**\n * Retrieves the payload describing how claimants can be identified from logs or function calls.\n *\n * @public\n * @async\n * @param {?ReadEventActionParams<'getActionClaimant'>} [params]\n * @returns {Promise<ActionClaimant>}\n */\n public async getActionClaimant(\n params?: ReadEventActionParams<'getActionClaimant'>,\n ): Promise<ActionClaimant> {\n const result = (await readEventActionGetActionClaimant(this._config, {\n address: this.assertValidAddress(),\n ...this.optionallyAttachAccount(),\n ...params,\n })) as RawActionClaimant;\n return _fromRawActionStep(result);\n }\n\n /**\n * Executes a prepared event action\n *\n * @public\n * @async\n * @param {Hex} data\n * @param {?WriteParams} [params]\n * @returns {Promise<readonly [boolean, `0x${string}`]>}\n */\n public async execute(\n data: Hex,\n params?: WriteParams<typeof eventActionAbi, 'execute'>,\n ) {\n return await this.awaitResult(this.executeRaw(data, params));\n }\n\n /**\n * Executes a prepared event action\n *\n * @public\n * @async\n * @param {Hex} data\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: readonly [boolean, `0x${string}`]; }>}\n */\n public async executeRaw(\n data: Hex,\n params?: WriteParams<typeof eventActionAbi, 'execute'>,\n ) {\n const { request, result } = await simulateEventActionExecute(this._config, {\n address: this.assertValidAddress(),\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n args: [data],\n });\n const hash = await writeEventActionExecute(this._config, request);\n return { hash, result };\n }\n\n /**\n * Derives the action claimant address from a transaction based on the provided ActionClaimant configuration.\n * This method supports both event-based and function-based claimant derivation.\n *\n ** @example\n * // Example usage\n * const eventAction = boost.action as EventAction\n * const claimant = await eventAction.getActionClaimant() // {\n * signatureType: SignatureType.EVENT,\n * signature: '0x1234...',\n * fieldIndex: 2,\n * targetContract: '0xabcd...',\n * chainid: 1\n * };\n * const params: ValidateActionStepParams = {\n * hash: '0x5678...',\n * chainId: 1,\n * knownSignatures?: {\n * '0x1234...': {}\n * }\n * };\n * const claimantAddress = await eventAction.deriveActionClaimantFromTransaction(claimant, params);\n *\n * @param {ActionClaimant} claimant - The configuration specifying how to derive the claimant.\n * @param {ValidateActionStepParams} params - Parameters for validation, including transaction hash, known signatures, logs, and chain ID.\n * @returns {Promise<Address | undefined>} The derived claimant address if found, undefined otherwise.\n * @throws {ValidationAbiMissingError} If the ABI for the specified signature is not found.\n * @throws {FunctionDataDecodeError} If there's an error decoding function data (for function-based derivation).\n */\n public async deriveActionClaimantFromTransaction(\n claimant: ActionClaimant,\n params: ValidateActionStepParams,\n ): Promise<Address | undefined> {\n const signature = claimant.signature;\n if (claimant.signatureType === SignatureType.EVENT) {\n let event: AbiEvent;\n if (params.abiItem) event = params.abiItem as AbiEvent;\n else {\n const sigPool: Record<Hex, AbiEvent> = {\n ...(events.abi as Record<Hex, AbiEvent>),\n ...((params.knownSignatures as Record<Hex, AbiEvent>) || {}),\n };\n event = sigPool[signature] as AbiEvent;\n }\n\n if (!event) {\n throw new ValidationAbiMissingError(signature);\n }\n\n let address: Address | undefined;\n if ('logs' in params) {\n for (let log of params.logs) {\n if (!isAddressEqual(log.address, claimant.targetContract)) continue;\n let addressCandidate = this.validateClaimantAgainstArgs(\n claimant,\n log,\n );\n if (addressCandidate) address = addressCandidate;\n }\n return address;\n }\n const receipt = await getTransactionReceipt(this._config, params);\n const decodedLogs = receipt.logs.map((log) => {\n const { eventName, args } = decodeEventLog({\n abi: [event],\n data: log.data,\n topics: log.topics,\n });\n return { ...log, eventName, args };\n });\n\n for (let log of decodedLogs) {\n if (!isAddressEqual(log.address, claimant.targetContract)) continue;\n let addressCandidate = this.validateClaimantAgainstArgs(claimant, log);\n if (addressCandidate) address = addressCandidate;\n }\n return address;\n }\n if (\n claimant.signatureType === SignatureType.FUNC &&\n 'hash' in params &&\n 'chainId' in params\n ) {\n const transaction = await getTransaction(this._config, {\n hash: params.hash,\n });\n if (!isAddressEqual(transaction.to!, claimant.targetContract)) return;\n let func: AbiFunction;\n if (params.abiItem) func = params.abiItem as AbiFunction;\n else {\n const sigPool: Record<Hex, AbiFunction> = {\n ...(functions.abi as Record<Hex, AbiFunction>),\n ...((params.knownSignatures as Record<Hex, AbiFunction>) || {}),\n };\n func = sigPool[signature] as AbiFunction;\n }\n if (!func) {\n throw new ValidationAbiMissingError(claimant.signature);\n }\n let decodedData;\n try {\n decodedData = decodeFunctionData({\n abi: [func],\n data: transaction.input,\n });\n } catch (e) {\n throw new FunctionDataDecodeError([func], e as Error);\n }\n return this.validateClaimantAgainstArgs(claimant, decodedData);\n }\n }\n\n /**\n * Validates the action claimant against the arguments of a log or function data.\n *\n * @param {ActionClaimant} claimant - The action claimant to validate.\n * @param {Object} [logOrFnData] - Optional object containing the arguments to validate against.\n * @param {Array<any> | readonly unknown[] | Record<string, unknown>} [logOrFnData.args] - The arguments from the log or function data.\n * @returns {Address | undefined} The validated address if found and valid, otherwise undefined.\n */\n public validateClaimantAgainstArgs(\n claimant: ActionClaimant,\n logOrFnData?: {\n args: Array<unknown> | readonly unknown[] | Record<string, unknown>;\n },\n ): Address | undefined {\n if (\n !logOrFnData ||\n !Array.isArray(logOrFnData?.args) ||\n logOrFnData?.args.length <= claimant.fieldIndex\n ) {\n return;\n }\n const maybeAddress = logOrFnData.args.at(claimant.fieldIndex);\n if (isAddress(maybeAddress)) return maybeAddress;\n }\n\n /**\n * Retrieves action steps, and uses them to validate against, and optionally fetch logs that match the step's signature.\n * If logs are provided in the optional `params` argument, then those logs will be used instead of fetched with the configured client.\n *\n * @public\n * @async\n * @param ValidateActionStepParams params\n * @returns {Promise<boolean>}\n */\n public async validateActionSteps(params: ValidateActionStepParams) {\n const actionSteps = await this.getActionSteps();\n for (const actionStep of actionSteps) {\n if (!(await this.isActionStepValid(actionStep, params))) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * Validates a single action step with a given criteria against logs or function calls.\n * If logs are provided in the optional `params` argument, then those logs will be used instead of being fetched with the configured client.\n * For functions a hash is required.\n *\n * @public\n * @async\n * @param {ActionStep} actionStep - The action step to validate. Can be a function of event step.\n * @param {ValidateActionStepParams} params - Additional parameters for validation, including hash, known events, logs, and chain ID.\n * @returns {Promise<boolean>}\n */\n public async isActionStepValid(\n actionStep: ActionStep,\n params: ValidateActionStepParams,\n ) {\n if (actionStep.signatureType === SignatureType.EVENT) {\n const signature = actionStep.signature;\n let event: AbiEvent;\n if (params.abiItem) event = params.abiItem as AbiEvent;\n else {\n const sigPool: Record<Hex, AbiEvent> = {\n ...(events.abi as Record<Hex, AbiEvent>),\n ...((params.knownSignatures as Record<Hex, AbiEvent>) || {}),\n };\n event = sigPool[signature] as AbiEvent;\n }\n\n if (!event) {\n throw new ValidationAbiMissingError(signature);\n }\n\n if (this.isArraylikeIndexed(actionStep, event)) {\n // If the field is indexed, we can't filter on it\n throw new UnparseableAbiParamError(\n actionStep.actionParameter.fieldIndex,\n event,\n );\n }\n\n // Use the provided logs, no need to fetch receipt\n if ('logs' in params) {\n return this.isActionEventValid(actionStep, params.logs);\n }\n\n const client = this._config.getClient({\n chainId: params.chainId,\n }) as PublicClient;\n const receipt = await client.getTransactionReceipt({\n hash: params.hash,\n });\n const decodedLogs = receipt.logs.map((log) => {\n const { eventName, args } = decodeEventLog({\n abi: [event],\n data: log.data,\n topics: log.topics,\n });\n\n return { ...log, eventName, args };\n });\n\n return this.isActionEventValid(actionStep, decodedLogs);\n }\n if (actionStep.signatureType === SignatureType.FUNC) {\n if ('hash' in params && 'chainId' in params) {\n const client = this._config.getClient({\n chainId: params.chainId,\n }) as PublicClient;\n const transaction = await client.getTransaction({\n hash: params.hash,\n });\n return this.isActionFunctionValid(actionStep, transaction, params);\n }\n }\n return false;\n }\n\n /**\n * Validates a single action event with a given criteria against logs.\n * If logs are provided in the optional `params` argument, then those logs will be used instead of being fetched with the configured client.\n *\n * @public\n * @async\n * @param {ActionStep} actionStep - The action step containing the event to validate.\n * @param {EventLogs} logs - Event logs to validate the given step against\n * @returns {Promise<boolean>} Resolves to true if the action event is valid, throws if input is invalid, otherwise false.\n */\n public isActionEventValid(actionStep: ActionStep, logs: EventLogs) {\n const criteria = actionStep.actionParameter;\n if (!logs.length) return false;\n for (let log of logs) {\n if (this.validateLogAgainstCriteria(criteria, log)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Validates a single action function with a given criteria against the transaction input.\n *\n * @public\n * @param {ActionStep} actionStep - The action step containing the function to validate.\n * @param {Transaction} transaction - The transaction that will be validated against.\n * @param {Object} [params] - Optional parameters for validation.\n * @param {AbiItem} [params.abiItem] - The ABI item for the function, if known.\n * @param {Record<Hex, AbiEvent | AbiFunction>} [params.knownSignatures] - A record of known signatures.\n * @returns {boolean} Returns true if the action function is valid, false otherwise.\n * @throws {ValidationAbiMissingError} Throws if the ABI for the function signature is not found.\n * @throws {FunctionDataDecodeError} Throws if there's an error decoding the function data.\n */\n public isActionFunctionValid(\n actionStep: ActionStep,\n transaction: Transaction,\n params?: Pick<ValidateActionStepParams, 'abiItem' | 'knownSignatures'>,\n ) {\n const criteria = actionStep.actionParameter;\n let signature = actionStep.signature;\n\n let func: AbiFunction;\n if (params?.abiItem) func = params?.abiItem as AbiFunction;\n else {\n const sigPool: Record<Hex, AbiFunction> = {\n ...(functions.abi as Record<Hex, AbiFunction>),\n ...((params?.knownSignatures as Record<Hex, AbiFunction>) || {}),\n };\n func = sigPool[signature] as AbiFunction;\n }\n if (!func) {\n throw new ValidationAbiMissingError(signature);\n }\n\n let decodedData;\n try {\n decodedData = decodeFunctionData({\n abi: [func],\n data: transaction.input,\n });\n } catch (e) {\n throw new FunctionDataDecodeError([func], e as Error);\n }\n\n // Validate the criteria against decoded arguments using fieldIndex\n const decodedArgs = decodedData.args;\n\n if (!decodedArgs || !decodedData) return false;\n\n if (\n !this.validateFunctionAgainstCriteria(\n criteria,\n decodedArgs as (string | bigint)[],\n )\n ) {\n return false;\n }\n\n return true;\n }\n /**\n * Validates a field against a given criteria.\n *\n * @param {Criteria} criteria - The criteria to validate against.\n * @param {string | bigint | Hex} fieldValue - The field value to validate.\n * @param {Object} input - Additional context for validation.\n * @param {EventLogs[0]} [input.log] - The event log, if validating an event.\n * @param {readonly (string | bigint)[]} [input.decodedArgs] - The decoded function arguments, if validating a function call.\n * @returns {Promise<boolean>} - Returns true if the field passes the criteria, false otherwise.\n */\n public validateFieldAgainstCriteria(\n criteria: Criteria,\n fieldValue: string | bigint | Hex,\n input:\n | { log: EventLogs[0] }\n | { decodedArgs: readonly (string | bigint)[] },\n ): boolean {\n // Type narrow based on criteria.filterType\n switch (criteria.filterType) {\n case FilterType.EQUAL:\n return match(criteria.fieldType)\n .with(PrimitiveType.ADDRESS, () =>\n isAddressEqual(criteria.filterData, fieldValue as Address),\n )\n .with(\n PrimitiveType.UINT,\n () => BigInt(fieldValue) === BigInt(criteria.filterData),\n )\n .with(\n PrimitiveType.STRING,\n () => fieldValue === fromHex(criteria.filterData, 'string'),\n )\n .otherwise(() => fieldValue === criteria.filterData);\n\n case FilterType.NOT_EQUAL:\n return match(criteria.fieldType)\n .with(\n PrimitiveType.ADDRESS,\n () => !isAddressEqual(criteria.filterData, fieldValue as Address),\n )\n .with(\n PrimitiveType.UINT,\n () => BigInt(fieldValue) !== BigInt(criteria.filterData),\n )\n .with(\n PrimitiveType.STRING,\n () => fieldValue !== fromHex(criteria.filterData, 'string'),\n )\n .otherwise(() => fieldValue !== criteria.filterData);\n\n case FilterType.GREATER_THAN:\n if (criteria.fieldType === PrimitiveType.UINT) {\n return BigInt(fieldValue) > BigInt(criteria.filterData);\n }\n throw new InvalidNumericalCriteriaError({\n ...input,\n criteria,\n fieldValue,\n });\n\n case FilterType.LESS_THAN:\n if (criteria.fieldType === PrimitiveType.UINT) {\n return BigInt(fieldValue) < BigInt(criteria.filterData);\n }\n throw new InvalidNumericalCriteriaError({\n ...input,\n criteria,\n fieldValue,\n });\n\n case FilterType.CONTAINS:\n if (\n criteria.fieldType === PrimitiveType.BYTES ||\n criteria.fieldType === PrimitiveType.STRING\n ) {\n let substring;\n if (criteria.fieldType === PrimitiveType.STRING) {\n substring = fromHex(criteria.filterData, 'string');\n } else {\n // truncate the `0x` prefix\n substring = criteria.filterData.slice(2);\n }\n return (fieldValue as string).includes(substring);\n }\n throw new FieldValueNotComparableError({\n ...input,\n criteria,\n fieldValue,\n });\n\n case FilterType.REGEX:\n if (typeof fieldValue !== 'string') {\n throw new FieldValueNotComparableError({\n ...input,\n criteria,\n fieldValue,\n });\n }\n\n if (criteria.fieldType === PrimitiveType.STRING) {\n // fieldValue is decoded by the ABI\n const regexString = fromHex(criteria.filterData, 'string');\n return new RegExp(regexString).test(fieldValue);\n }\n\n default:\n throw new UnrecognizedFilterTypeError({\n ...input,\n criteria,\n fieldValue,\n });\n }\n }\n\n /**\n * Validates a {@link Log} against a given criteria.\n *\n * @param {Criteria} criteria - The criteria to validate against.\n * @param {Log} log - The Viem event log.\n * @returns {boolean} - Returns true if the log passes the criteria, false otherwise.\n */\n public validateLogAgainstCriteria(\n criteria: Criteria,\n log: EventLogs[0],\n ): boolean {\n if (!Array.isArray(log.args) || log.args.length <= criteria.fieldIndex) {\n throw new DecodedArgsMalformedError({\n log,\n criteria,\n fieldValue: undefined,\n });\n }\n\n const fieldValue = log.args.at(criteria.fieldIndex);\n if (fieldValue === undefined) {\n throw new FieldValueUndefinedError({ log, criteria, fieldValue });\n }\n return this.validateFieldAgainstCriteria(criteria, fieldValue, { log });\n }\n\n /**\n * Validates a function's decoded arguments against a given criteria.\n *\n * @param {Criteria} criteria - The criteria to validate against.\n * @param {unknown[]} decodedArgs - The decoded arguments of the function call.\n * @returns {Promise<boolean>} - Returns true if the decoded argument passes the criteria, false otherwise.\n */\n public validateFunctionAgainstCriteria(\n criteria: Criteria,\n decodedArgs: readonly (string | bigint)[],\n ): boolean {\n const fieldValue = decodedArgs[criteria.fieldIndex];\n if (fieldValue === undefined) {\n throw new FieldValueUndefinedError({\n criteria,\n fieldValue,\n });\n }\n return this.validateFieldAgainstCriteria(criteria, fieldValue, {\n decodedArgs,\n });\n }\n\n /**\n * @inheritdoc\n *\n * @public\n * @param {?EventActionPayload} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: EventActionPayload,\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [payload, options] = this.validateDeploymentConfig(\n _payload,\n _options,\n );\n let rawPayload: EventActionPayloadRaw;\n if (isEventActionPayloadSimple(payload)) {\n // filter out any falsy potential values\n let tmpSteps: ActionStep[] = payload.actionSteps.filter((step) => !!step);\n if (tmpSteps.length === 0) {\n throw new NoEventActionStepsProvidedError();\n }\n if (tmpSteps.length > 4) {\n throw new TooManyEventActionStepsProvidedError();\n }\n let steps: ActionStepTuple = Array.from({ length: 4 }, (_, i) => {\n // use either the provided step at the given index, or reuse the previous step\n // should aways exist\n return tmpSteps.at(i) || tmpSteps.at(-1);\n }) as ActionStepTuple;\n rawPayload = {\n actionClaimant: payload.actionClaimant,\n actionStepOne: steps[0],\n actionStepTwo: steps[1],\n actionStepThree: steps[2],\n actionStepFour: steps[3],\n };\n } else {\n rawPayload = payload;\n }\n return {\n abi: eventActionAbi,\n bytecode: bytecode as Hex,\n args: [prepareEventActionPayload(rawPayload)],\n ...this.optionallyAttachAccount(options.account),\n };\n }\n\n public isArraylikeIndexed(step: ActionStep, event: AbiEvent) {\n if (\n (step.actionParameter.fieldType === PrimitiveType.STRING ||\n step.actionParameter.fieldType === PrimitiveType.BYTES) &&\n event.inputs[step.actionParameter.fieldIndex]?.indexed\n ) {\n return true;\n }\n return false;\n }\n}\n\nfunction _dedupeActionSteps(_steps: ActionStep[]): ActionStep[] {\n const steps: ActionStep[] = [],\n signatures: Record<string, boolean> = {};\n for (let step of _steps) {\n const signature = JSON.stringify(step);\n if (signatures[signature]) continue;\n steps.push(step);\n signatures[signature] = true;\n }\n return steps;\n}\ntype RawActionStep = Overwrite<ActionStep, { chainid: bigint }>;\ntype RawActionClaimant = Overwrite<ActionClaimant, { chainid: bigint }>;\n\nfunction _toRawActionStep<T extends ActionStep | ActionClaimant>(obj: T) {\n return {\n ...obj,\n chainid: BigInt(obj.chainid),\n };\n}\n\nfunction _fromRawActionStep<T extends RawActionStep | RawActionClaimant>(\n obj: T,\n) {\n if (obj.chainid > BigInt(Number.MAX_SAFE_INTEGER)) {\n throw new Error('Chain ID exceeds max safe integer');\n }\n\n return {\n ...obj,\n chainid: Number(obj.chainid),\n };\n}\n\n/**\n * Typeguard to determine if a user is supplying a simple or raw EventActionPayload\n *\n * @param {*} opts\n * @returns {opts is EventActionPayloadSimple}\n */\nfunction _isEventActionPayloadSimple(\n opts: EventActionPayload,\n): opts is EventActionPayloadSimple {\n return Array.isArray((opts as EventActionPayloadSimple).actionSteps);\n}\n\n/**\n * Function to properly encode an event action payload.\n *\n * @param {InitPayload} param0\n * @param {ActionStep} param0.actionStepOne - The first action step to initialize.\n * @param {ActionStep} param0.actionStepTwo - The second action step to initialize.\n * @param {ActionStep} param0.actionStepThree - The third action step to initialize.\n * @param {ActionStep} param0.actionStepFour - The fourth action step to initialize.\n * @returns {Hex}\n */\nexport function prepareEventActionPayload({\n actionClaimant,\n actionStepOne,\n actionStepTwo,\n actionStepThree,\n actionStepFour,\n}: EventActionPayloadRaw) {\n // note chainIds are technically uint256 but viem treats them (safely) as numbers,\n // so we encode them as uint32 here to avoid downcast issues\n return encodeAbiParameters(\n [\n {\n type: 'tuple',\n name: 'initPayload',\n components: [\n {\n type: 'tuple',\n name: 'actionClaimant',\n components: [\n { type: 'uint8', name: 'signatureType' },\n { type: 'bytes32', name: 'signature' },\n { type: 'uint8', name: 'fieldIndex' },\n { type: 'address', name: 'targetContract' },\n { type: 'uint256', name: 'chainid' },\n ],\n },\n {\n type: 'tuple',\n name: 'actionStepOne',\n components: [\n { type: 'bytes32', name: 'signature' },\n { type: 'uint8', name: 'signatureType' },\n { type: 'uint8', name: 'actionType' },\n { type: 'address', name: 'targetContract' },\n { type: 'uint256', name: 'chainid' },\n {\n type: 'tuple',\n name: 'actionParameter',\n components: [\n { type: 'uint8', name: 'filterType' },\n { type: 'uint8', name: 'fieldType' },\n { type: 'uint8', name: 'fieldIndex' },\n { type: 'bytes', name: 'filterData' },\n ],\n },\n ],\n },\n {\n type: 'tuple',\n name: 'actionStepTwo',\n components: [\n { type: 'bytes32', name: 'signature' },\n { type: 'uint8', name: 'signatureType' },\n { type: 'uint8', name: 'actionType' },\n { type: 'address', name: 'targetContract' },\n { type: 'uint256', name: 'chainid' },\n {\n type: 'tuple',\n name: 'actionParameter',\n components: [\n { type: 'uint8', name: 'filterType' },\n { type: 'uint8', name: 'fieldType' },\n { type: 'uint8', name: 'fieldIndex' },\n { type: 'bytes', name: 'filterData' },\n ],\n },\n ],\n },\n {\n type: 'tuple',\n name: 'actionStepThree',\n components: [\n { type: 'bytes32', name: 'signature' },\n { type: 'uint8', name: 'signatureType' },\n { type: 'uint8', name: 'actionType' },\n { type: 'address', name: 'targetContract' },\n { type: 'uint256', name: 'chainid' },\n {\n type: 'tuple',\n name: 'actionParameter',\n components: [\n { type: 'uint8', name: 'filterType' },\n { type: 'uint8', name: 'fieldType' },\n { type: 'uint8', name: 'fieldIndex' },\n { type: 'bytes', name: 'filterData' },\n ],\n },\n ],\n },\n {\n type: 'tuple',\n name: 'actionStepFour',\n components: [\n { type: 'bytes32', name: 'signature' },\n { type: 'uint8', name: 'signatureType' },\n { type: 'uint8', name: 'actionType' },\n { type: 'address', name: 'targetContract' },\n { type: 'uint256', name: 'chainid' },\n {\n type: 'tuple',\n name: 'actionParameter',\n components: [\n { type: 'uint8', name: 'filterType' },\n { type: 'uint8', name: 'fieldType' },\n { type: 'uint8', name: 'fieldIndex' },\n { type: 'bytes', name: 'filterData' },\n ],\n },\n ],\n },\n ],\n },\n ],\n [\n {\n actionClaimant: _toRawActionStep(actionClaimant),\n actionStepOne: {\n ..._toRawActionStep(actionStepOne),\n actionType: actionStepOne.actionType || 0,\n },\n actionStepTwo: {\n ..._toRawActionStep(actionStepTwo),\n actionType: actionStepTwo.actionType || 0,\n },\n actionStepThree: {\n ..._toRawActionStep(actionStepThree),\n actionType: actionStepThree.actionType || 0,\n },\n actionStepFour: {\n ..._toRawActionStep(actionStepFour),\n actionType: actionStepFour.actionType || 0,\n },\n },\n ],\n );\n}\n"],"names":["t","e","n","r","i","s","o","c","a","h","m","d","y","p","v","b","w","j","x","A","W","$","z","I","u","FilterType","PrimitiveType","SignatureType","isEventActionPayloadSimple","opts","_EventAction","DeployableTarget","eventActionAbi","index","params","steps","readEventActionGetActionSteps","_dedupeActionSteps","_fromRawActionStep","result","readEventActionGetActionClaimant","data","request","simulateEventActionExecute","writeEventActionExecute","claimant","signature","event","events","ValidationAbiMissingError","address","log","isAddressEqual","addressCandidate","decodedLogs","getTransactionReceipt","eventName","args","decodeEventLog","transaction","getTransaction","func","functions","decodedData","decodeFunctionData","FunctionDataDecodeError","logOrFnData","maybeAddress","isAddress","actionSteps","actionStep","UnparseableAbiParamError","logs","criteria","decodedArgs","fieldValue","input","match","fromHex","InvalidNumericalCriteriaError","substring","FieldValueNotComparableError","regexString","UnrecognizedFilterTypeError","DecodedArgsMalformedError","FieldValueUndefinedError","_payload","_options","payload","options","rawPayload","tmpSteps","step","NoEventActionStepsProvidedError","TooManyEventActionStepsProvidedError","_","bytecode","prepareEventActionPayload","_a","EventActionBases","RegistryType","EventAction","_steps","signatures","_toRawActionStep","obj","actionClaimant","actionStepOne","actionStepTwo","actionStepThree","actionStepFour","encodeAbiParameters"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAMA,IAAE,OAAO,IAAI,qBAAqB,GAAEC,KAAE,OAAO,IAAI,wBAAwB,GAAEC,IAAE,oCAAmCC,IAAE,OAAG,GAAQ,KAAa,OAAO,KAAjB,WAAoBC,IAAE,CAAAH,MAAGA,KAAG,CAAC,CAACA,EAAED,CAAC,GAAEK,IAAE,CAACH,GAAEI,GAAEC,MAAI;AAAC,MAAGH,EAAEF,CAAC,GAAE;AAAC,UAAMD,IAAEC,EAAEF,CAAC,EAAG,GAAC,EAAC,SAAQG,GAAE,YAAWC,EAAC,IAAEH,EAAE,MAAMK,CAAC;AAAE,WAAOH,KAAGC,KAAG,OAAO,KAAKA,CAAC,EAAE,QAAQ,CAAAJ,MAAGO,EAAEP,GAAEI,EAAEJ,CAAC,CAAC,CAAC,GAAEG;AAAA,EAAC;AAAC,MAAGA,EAAED,CAAC,GAAE;AAAC,QAAG,CAACC,EAAEG,CAAC,EAAE,QAAM;AAAG,QAAG,MAAM,QAAQJ,CAAC,GAAE;AAAC,UAAG,CAAC,MAAM,QAAQI,CAAC,EAAE,QAAM;AAAG,UAAIN,IAAE,CAAA,GAAGG,IAAE,CAAE,GAACK,IAAE,CAAA;AAAG,iBAAU,KAAKN,EAAE,KAAM,GAAC;AAAC,cAAMI,IAAEJ,EAAE,CAAC;AAAE,QAAAE,EAAEE,CAAC,KAAGA,EAAEL,EAAC,IAAEO,EAAE,KAAKF,CAAC,IAAEE,EAAE,SAAOL,EAAE,KAAKG,CAAC,IAAEN,EAAE,KAAKM,CAAC;AAAA,MAAC;AAAC,UAAGE,EAAE,QAAO;AAAC,YAAGA,EAAE,SAAO,EAAE,OAAM,IAAI,MAAM,0FAA0F;AAAE,YAAGF,EAAE,SAAON,EAAE,SAAOG,EAAE,OAAO,QAAM;AAAG,cAAMF,IAAEK,EAAE,MAAM,GAAEN,EAAE,MAAM,GAAEE,IAAMC,EAAE,WAAN,IAAa,CAAE,IAACG,EAAE,MAAM,CAACH,EAAE,MAAM,GAAEC,IAAEE,EAAE,MAAMN,EAAE,QAAWG,EAAE,WAAN,IAAa,QAAS,CAACA,EAAE,MAAM;AAAE,eAAOH,EAAE,MAAM,CAACA,GAAEE,MAAIG,EAAEL,GAAEC,EAAEC,CAAC,GAAEK,CAAC,CAAC,KAAGJ,EAAE,MAAM,CAACH,GAAEC,MAAII,EAAEL,GAAEE,EAAED,CAAC,GAAEM,CAAC,CAAC,MAAQC,EAAE,WAAN,KAAcH,EAAEG,EAAE,CAAC,GAAEJ,GAAEG,CAAC;AAAA,MAAE;AAAC,aAAOL,EAAE,WAASI,EAAE,UAAQJ,EAAE,MAAM,CAACF,GAAEC,MAAII,EAAEL,GAAEM,EAAEL,CAAC,GAAEM,CAAC,CAAC;AAAA,IAAC;AAAC,WAAO,QAAQ,QAAQL,CAAC,EAAE,MAAM,CAAAD,MAAG;AAAC,YAAME,IAAED,EAAED,CAAC;AAAE,cAAOA,KAAKK,KAAGF,EAAEI,IAAEL,CAAC,KAAgBK,EAAER,CAAC,EAAC,EAAG,gBAApB,eAAkCK,EAAEF,GAAEG,EAAEL,CAAC,GAAEM,CAAC;AAAE,UAAIC;AAAA,IAAC,CAAC;AAAA,EAAC;AAAC,SAAO,OAAO,GAAGF,GAAEJ,CAAC;AAAC,GAAEI,IAAE,CAAAL,MAAG;AAAC,MAAIC,GAAEG,GAAEG;AAAE,SAAOL,EAAEF,CAAC,IAAEG,EAAEH,CAAC,KAASC,KAASG,KAAGG,IAAEP,EAAED,CAAC,EAAC,GAAI,qBAApB,OAAsC,SAAOK,EAAE,KAAKG,CAAC,MAA9D,OAAiEN,IAAE,KAAG,MAAM,QAAQD,CAAC,IAAEM,EAAEN,GAAEK,CAAC,IAAEC,EAAE,OAAO,OAAON,CAAC,GAAEK,CAAC,IAAE,CAAE;AAAA,GAAEC,IAAE,CAAC,GAAEN,MAAI,EAAE,OAAO,CAACD,GAAE,MAAIA,EAAE,OAAOC,EAAE,CAAC,CAAC,GAAE,CAAA,CAAE;AAA2O,SAAS,EAAE,GAAE;AAAC,SAAO,OAAO,OAAO,GAAE,EAAC,UAAS,MAAIQ,GAAE,CAAC,GAAE,KAAI,CAAAR,MAAGS,EAAE,GAAET,CAAC,GAAE,IAAG,CAAAA,MAAGU,GAAE,GAAEV,CAAC,GAAE,QAAO,CAAAA,MAAYA,MAAT,SAAWW,EAAE,CAAC,IAAEA,EAAEX,GAAE,CAAC,EAAC,CAAC;AAAC;AAA+R,SAASQ,GAAER,GAAE;AAAC,SAAO,EAAE,EAAC,CAACD,CAAC,GAAE,OAAK,EAAC,OAAM,CAAAA,MAAG;AAAC,QAAIE,IAAE,CAAA;AAAG,UAAMC,IAAE,CAACH,GAAEC,MAAI;AAAC,MAAAC,EAAEF,CAAC,IAAEC;AAAA,IAAC;AAAE,WAAgBD,MAAT,UAAYM,EAAEL,CAAC,EAAE,QAAQ,CAAAD,MAAGG,EAAEH,GAAE,MAAM,CAAC,GAAE,EAAC,SAAQ,IAAG,YAAWE,EAAC,KAAG,EAAC,SAAQG,EAAEJ,GAAED,GAAEG,CAAC,GAAE,YAAWD,EAAC;AAAA,EAAC,GAAE,kBAAiB,MAAII,EAAEL,CAAC,GAAE,aAAY,WAAU,GAAE,CAAC;AAAC;AAAmI,SAASS,KAAKT,GAAE;AAAC,SAAO,EAAE,EAAC,CAACD,CAAC,GAAE,OAAK,EAAC,OAAM,CAAAA,MAAG;AAAC,QAAIE,IAAE,CAAE;AAAC,UAAMC,IAAE,CAACH,GAAEC,MAAI;AAAC,MAAAC,EAAEF,CAAC,IAAEC;AAAA,IAAC;AAAE,WAAM,EAAC,SAAQA,EAAE,MAAM,CAAAA,MAAGI,EAAEJ,GAAED,GAAEG,CAAC,CAAC,GAAE,YAAWD,EAAC;AAAA,EAAC,GAAE,kBAAiB,MAAIK,EAAEN,GAAEK,CAAC,GAAE,aAAY,MAAK,GAAE,CAAC;AAAC;AAAC,SAASK,MAAKV,GAAE;AAAC,SAAO,EAAE,EAAC,CAACD,CAAC,GAAE,OAAK,EAAC,OAAM,CAAAA,MAAG;AAAC,QAAIE,IAAE,CAAE;AAAC,UAAMC,IAAE,CAACH,GAAEC,MAAI;AAAC,MAAAC,EAAEF,CAAC,IAAEC;AAAA,IAAC;AAAE,WAAOM,EAAEN,GAAEK,CAAC,EAAE,QAAQ,CAAAN,MAAGG,EAAEH,GAAE,MAAM,CAAC,GAAE,EAAC,SAAQC,EAAE,KAAK,CAAAA,MAAGI,EAAEJ,GAAED,GAAEG,CAAC,CAAC,GAAE,YAAWD,EAAC;AAAA,EAAC,GAAE,kBAAiB,MAAIK,EAAEN,GAAEK,CAAC,GAAE,aAAY,KAAI,GAAE,CAAC;AAAC;AAAC,SAASO,EAAEZ,GAAE;AAAC,SAAM,EAAC,CAACD,CAAC,GAAE,OAAK,EAAC,OAAM,CAAAA,OAAI,EAAC,SAAQ,EAAQC,EAAED,CAAC,EAAE,GAAE,GAAE;AAAC;AAAC,SAASY,KAAKX,GAAE;AAAC,QAAME,IAAY,OAAOF,EAAE,CAAC,KAApB,WAAsBA,EAAE,CAAC,IAAE,QAAOG,IAAMH,EAAE,WAAN,IAAaA,EAAE,CAAC,IAAY,OAAOA,EAAE,CAAC,KAApB,WAAsB,SAAOA,EAAE,CAAC;AAAE,SAAO,EAAE,EAAC,CAACD,CAAC,GAAE,OAAK,EAAC,OAAM,CAAAA,MAAG;AAAC,QAAIC,IAAE,EAAC,CAAOE,KAAID,CAAC,GAAEF,EAAC;AAAE,WAAM,EAAC,SAAiBI,MAAT,UAAYC,EAAED,GAAEJ,GAAE,CAACA,GAAEE,MAAI;AAAC,MAAAD,EAAED,CAAC,IAAEE;AAAA,IAAC,CAAC,GAAE,YAAWD,EAAC;AAAA,EAAC,GAAE,kBAAiB,MAAI,CAAOE,KAAID,CAAC,EAAE,OAAgBE,MAAT,SAAW,KAAGE,EAAEF,CAAC,CAAC,EAAC,GAAE,CAAC;AAAC;AAAC,SAASU,EAAE,GAAE;AAAC,SAAgB,OAAO,KAAjB;AAAkB;AAAC,SAASC,EAAE,GAAE;AAAC,SAAgB,OAAO,KAAjB;AAAkB;AAAC,SAASC,EAAE,GAAE;AAAC,SAAgB,OAAO,KAAjB;AAAkB;AAAS,EAAEH,EAAE,SAAS,GAAE;AAAC,SAAM;AAAE,CAAC,CAAC;AAAC,MAAKI,IAAE,OAAG,OAAO,OAAO,EAAE,CAAC,GAAE,EAAC,YAAW,CAAAhB,MAAG;AAAC,SAAOgB,EAAEP,EAAE,IAAGR,IAAED,GAAEY,EAAE,CAAAb,MAAGe,EAAEf,CAAC,KAAGA,EAAE,WAAWE,CAAC,CAAC,EAAC,CAAE;AAAE,MAAIA;AAAC,GAAE,UAAS,CAAAD,MAAG;AAAC,SAAOgB,EAAEP,EAAE,IAAGR,IAAED,GAAEY,EAAE,CAAAb,MAAGe,EAAEf,CAAC,KAAGA,EAAE,SAASE,CAAC,CAAC,EAAC,CAAE;AAAE,MAAIA;AAAC,GAAE,WAAU,CAAAD,MAAGgB,EAAEP,EAAE,IAAG,CAAAV,MAAGa,EAAE,CAAAZ,MAAGc,EAAEd,CAAC,KAAGA,EAAE,UAAQD,CAAC,GAAGC,CAAC,CAAC,CAAC,GAAE,QAAO,CAAAA,MAAGgB,EAAEP,EAAE,IAAG,CAAAV,MAAGa,EAAE,CAAAZ,MAAGc,EAAEd,CAAC,KAAGA,EAAE,WAASD,CAAC,GAAGC,CAAC,CAAC,CAAC,GAAE,WAAU,CAAAA,MAAGgB,EAAEP,EAAE,IAAG,CAAAV,MAAGa,EAAE,CAAAZ,MAAGc,EAAEd,CAAC,KAAGA,EAAE,UAAQD,CAAC,GAAGC,CAAC,CAAC,CAAC,GAAE,UAAS,CAAAA,MAAG;AAAC,SAAOgB,EAAEP,EAAE,IAAGR,IAAED,GAAEY,EAAE,CAAAb,MAAGe,EAAEf,CAAC,KAAGA,EAAE,SAASE,CAAC,CAAC,EAAG,CAAA;AAAE,MAAIA;AAAC,GAAE,OAAM,CAAAD,MAAG;AAAC,SAAOgB,EAAEP,EAAE,IAAGR,IAAED,GAAEY,EAAE,CAAAb,MAAGe,EAAEf,CAAC,KAAG,EAAQA,EAAE,MAAME,CAAC,CAAE,GAAG;AAAE,MAAIA;AAAC,EAAC,CAAC;AAAIe,EAAEJ,EAAEE,CAAC,CAAC;AAAE,MAAAG,IAAE,OAAG,OAAO,OAAO,EAAE,CAAC,GAAE,EAAC,SAAQ,CAACjB,GAAEC,MAAIgB,EAAER,EAAE,IAAG,CAACV,GAAEC,MAAIY,EAAE,CAAAX,MAAGY,EAAEZ,CAAC,KAAGF,KAAGE,KAAGD,KAAGC,CAAC,GAAGD,GAAEC,CAAC,CAAC,CAAC,GAAE,IAAG,CAAAD,MAAGiB,EAAER,EAAE,IAAG,CAAAV,MAAGa,EAAE,CAAAZ,MAAGa,EAAEb,CAAC,KAAGA,IAAED,CAAC,GAAGC,CAAC,CAAC,CAAC,GAAE,IAAG,CAAAA,MAAGiB,EAAER,EAAE,IAAG,CAAAV,MAAGa,EAAE,CAAAZ,MAAGa,EAAEb,CAAC,KAAGA,IAAED,CAAC,GAAGC,CAAC,CAAC,CAAC,GAAE,KAAI,CAAAA,MAAGiB,EAAER,EAAE,IAAG,CAAAV,MAAGa,EAAE,CAAAZ,MAAGa,EAAEb,CAAC,KAAGA,KAAGD,CAAC,GAAGC,CAAC,CAAC,CAAC,GAAE,KAAI,CAAAA,MAAGiB,EAAER,EAAE,IAAG,CAAAV,MAAGa,EAAE,CAAAZ,MAAGa,EAAEb,CAAC,KAAGA,KAAGD,CAAC,GAAGC,CAAC,CAAC,CAAC,GAAE,KAAI,MAAIiB,EAAER,EAAE,GAAEG,EAAE,CAAAb,MAAGc,EAAEd,CAAC,KAAG,OAAO,UAAUA,CAAC,CAAC,CAAC,CAAC,GAAE,QAAO,MAAIkB,EAAER,EAAE,GAAEG,EAAE,CAAAb,MAAGc,EAAEd,CAAC,KAAG,OAAO,SAASA,CAAC,CAAC,CAAC,CAAC,GAAE,UAAS,MAAIkB,EAAER,EAAE,GAAEG,EAAE,CAAAb,MAAGc,EAAEd,CAAC,KAAGA,IAAE,CAAC,CAAC,CAAC,GAAE,UAAS,MAAIkB,EAAER,EAAE,GAAEG,EAAE,CAAAb,MAAGc,EAAEd,CAAC,KAAGA,IAAE,CAAC,CAAC,CAAC,EAAC,CAAC;AAAIkB,EAAEL,EAAEC,CAAC,CAAC;AAAE,MAAAK,IAAE,OAAG,OAAO,OAAO,EAAE,CAAC,GAAE,EAAC,SAAQ,CAAClB,GAAEC,MAAIiB,EAAET,EAAE,IAAG,CAACV,GAAEC,MAAIY,EAAE,CAAAX,MAAGc,EAAEd,CAAC,KAAGF,KAAGE,KAAGD,KAAGC,CAAC,GAAGD,GAAEC,CAAC,CAAC,CAAC,GAAE,IAAG,CAAAD,MAAGkB,EAAET,EAAE,IAAG,CAAAV,MAAGa,EAAE,CAAAZ,MAAGe,EAAEf,CAAC,KAAGA,IAAED,CAAC,GAAGC,CAAC,CAAC,CAAC,GAAE,IAAG,CAAAA,MAAGkB,EAAET,EAAE,IAAG,CAAAV,MAAGa,EAAE,CAAAZ,MAAGe,EAAEf,CAAC,KAAGA,IAAED,CAAC,GAAGC,CAAC,CAAC,CAAC,GAAE,KAAI,CAAAA,MAAGkB,EAAET,EAAE,IAAG,CAAAV,MAAGa,EAAE,CAAAZ,MAAGe,EAAEf,CAAC,KAAGA,KAAGD,CAAC,GAAGC,CAAC,CAAC,CAAC,GAAE,KAAI,CAAAA,MAAGkB,EAAET,EAAE,IAAG,CAAAV,MAAGa,EAAE,CAAAZ,MAAGe,EAAEf,CAAC,KAAGA,KAAGD,CAAC,GAAGC,CAAC,CAAC,CAAC,GAAE,UAAS,MAAIkB,EAAET,EAAE,GAAEG,EAAE,CAAAb,MAAGgB,EAAEhB,CAAC,KAAGA,IAAE,CAAC,CAAC,CAAC,GAAE,UAAS,MAAImB,EAAET,EAAE,GAAEG,EAAE,CAAAb,MAAGgB,EAAEhB,CAAC,KAAGA,IAAE,CAAC,CAAC,CAAC,EAAC,CAAC;AAAImB,EAAEN,EAAEG,CAAC,CAAC;AAAI,EAAEH,EAAE,SAAS,GAAE;AAAC,SAAiB,OAAO,KAAlB;AAAmB,CAAC,CAAC;AAAI,EAAEA,EAAE,SAAS,GAAE;AAAC,SAAgB,OAAO,KAAjB;AAAkB,CAAC,CAAC;AAAI,EAAEA,EAAE,SAAS,GAAE;AAAC,SAAa,KAAN;AAAO,CAAC,CAAC;AAAI,EAAEA,EAAE,SAAS,GAAE;AAAC,SAAa,KAAN;AAAO,CAAC,CAAC;AAAwmD,MAAMO,WAAU,MAAK;AAAA,EAAC,YAAYpB,GAAE;AAAC,QAAI;AAAE,QAAG;AAAC,UAAE,KAAK,UAAUA,CAAC;AAAA,IAAC,QAAS;AAAC,UAAEA;AAAA,IAAC;AAAC,UAAM,oDAAoD,CAAC,EAAE,GAAE,KAAK,QAAM,QAAO,KAAK,QAAMA;AAAA,EAAC;AAAC;AAAC,MAAMqB,IAAE,EAAC,SAAQ,IAAG,OAAM,OAAM;AAAE,SAASC,EAAE,GAAE;AAAC,SAAO,IAAIC,EAAE,GAAEF,CAAC;AAAC;AAAC,MAAME,EAAC;AAAA,EAAC,YAAYvB,GAAE,GAAE;AAAC,SAAK,QAAM,QAAO,KAAK,QAAM,QAAO,KAAK,QAAMA,GAAE,KAAK,QAAM;AAAA,EAAC;AAAA,EAAC,QAAQA,GAAE;AAAC,QAAG,KAAK,MAAM,QAAQ,QAAO;AAAK,UAAM,IAAEA,EAAEA,EAAE,SAAO,CAAC,GAAEG,IAAE,CAACH,EAAE,CAAC,CAAC;AAAE,QAAII;AAAE,IAAIJ,EAAE,WAAN,KAA0B,OAAOA,EAAE,CAAC,KAAtB,aAAwBI,IAAEJ,EAAE,CAAC,IAAEA,EAAE,SAAO,KAAGG,EAAE,KAAK,GAAGH,EAAE,MAAM,GAAEA,EAAE,SAAO,CAAC,CAAC;AAAE,QAAIM,IAAE,IAAGC,IAAE;AAAG,UAAMC,IAAE,CAACR,GAAEC,MAAI;AAAC,MAAAK,IAAE,IAAGC,EAAEP,CAAC,IAAEC;AAAA,IAAC,GAAEuB,IAAE,CAACrB,EAAE,KAAK,CAAAH,MAAGK,EAAEL,GAAE,KAAK,OAAMQ,CAAC,CAAC,KAAGJ,KAAG,CAASA,EAAE,KAAK,KAAK,IAAGiB,IAAE,EAAC,SAAQ,IAAG,OAAM,EAAEf,IAAEJ,KAAKK,IAAEA,EAAEL,CAAC,IAAEK,IAAE,KAAK,OAAM,KAAK,KAAK,EAAC;AAAE,WAAO,IAAIgB,EAAE,KAAK,OAAMC,CAAC;AAAA,EAAC;AAAA,EAAC,KAAKxB,GAAE,GAAE;AAAC,QAAG,KAAK,MAAM,QAAQ,QAAO;AAAK,UAAM,IAAE,EAAQA,EAAE,KAAK,KAAK;AAAG,WAAO,IAAIuB,EAAE,KAAK,OAAM,IAAE,EAAC,SAAQ,IAAG,OAAM,EAAE,KAAK,OAAM,KAAK,KAAK,EAAC,IAAEF,CAAC;AAAA,EAAC;AAAA,EAAC,UAAUrB,GAAE;AAAC,WAAO,KAAK,MAAM,UAAQ,KAAK,MAAM,QAAMA,EAAE,KAAK,KAAK;AAAA,EAAC;AAAA,EAAC,aAAY;AAAC,QAAG,KAAK,MAAM,QAAQ,QAAO,KAAK,MAAM;AAAM,UAAM,IAAIoB,GAAE,KAAK,KAAK;AAAA,EAAC;AAAA,EAAC,MAAK;AAAC,WAAO,KAAK;EAAY;AAAA,EAAC,aAAY;AAAC,WAAO;AAAA,EAAI;AAAC;ACyE9kO,IAAAK,uBAAAA,OACVA,EAAAA,EAAA,QAAQ,CAAR,IAAA,SACAA,EAAAA,EAAA,YAAY,CAAZ,IAAA,aACAA,EAAAA,EAAA,eAAe,CAAf,IAAA,gBACAA,EAAAA,EAAA,YAAY,CAAZ,IAAA,aACAA,EAAAA,EAAA,WAAW,CAAX,IAAA,YACAA,EAAAA,EAAA,QAAQ,CAAR,IAAA,SANUA,IAAAA,MAAA,CAAA,CAAA,GAeAC,uBAAAA,OACVA,EAAAA,EAAA,OAAO,CAAP,IAAA,QACAA,EAAAA,EAAA,UAAU,CAAV,IAAA,WACAA,EAAAA,EAAA,QAAQ,CAAR,IAAA,SACAA,EAAAA,EAAA,SAAS,CAAT,IAAA,UAJUA,IAAAA,MAAA,CAAA,CAAA,GA+CAC,uBAAAA,OACVA,EAAAA,EAAA,QAAQ,CAAR,IAAA,SACAA,EAAAA,EAAA,OAAO,CAAP,IAAA,QAFUA,IAAAA,MAAA,CAAA,CAAA;AA4IL,SAASC,GACdC,GACkC;AAC3B,SAAA,MAAM,QAASA,EAAkC,WAAW;AACrE;AAoEO,MAAMC,IAAN,MAAMA,UAAoBC,GAG/B;AAAA,EAHK,cAAA;AAAA,UAAA,GAAA,SAAA,GAWL,KAAyB,MAAMC;AAAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA6B/B,MAAa,cACXC,GACAC,GACA;AAEO,YADO,MAAM,KAAK,eAAeA,CAAM,GACjC,GAAGD,CAAK;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAa,eACXC,GACA;AACA,UAAMC,IAAS,MAAMC,EAA8B,KAAK,SAAS;AAAA,MAC/D,SAAS,KAAK,mBAAmB;AAAA,MACjC,GAAG,KAAK,wBAAwB;AAAA;AAAA,MAEhC,GAAIF;AAAA,IAAA,CACL;AACD,WAAOG,GAAmBF,EAAM,IAAIG,CAAkB,CAAC;AAAA,EACzD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAa,oBACXJ,GACA;AAEA,YADc,MAAM,KAAK,eAAeA,CAAM,GACjC;AAAA,EACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAa,kBACXA,GACyB;AACzB,UAAMK,IAAU,MAAMC,EAAiC,KAAK,SAAS;AAAA,MACnE,SAAS,KAAK,mBAAmB;AAAA,MACjC,GAAG,KAAK,wBAAwB;AAAA,MAChC,GAAGN;AAAA,IAAA,CACJ;AACD,WAAOI,EAAmBC,CAAM;AAAA,EAClC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAa,QACXE,GACAP,GACA;AACA,WAAO,MAAM,KAAK,YAAY,KAAK,WAAWO,GAAMP,CAAM,CAAC;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAa,WACXO,GACAP,GACA;AACA,UAAM,EAAE,SAAAQ,GAAS,QAAAH,EAAA,IAAW,MAAMI,EAA2B,KAAK,SAAS;AAAA,MACzE,SAAS,KAAK,mBAAmB;AAAA,MACjC,GAAG,KAAK,wBAAwB;AAAA;AAAA,MAEhC,GAAIT;AAAA,MACJ,MAAM,CAACO,CAAI;AAAA,IAAA,CACZ;AAEM,WAAA,EAAE,MADI,MAAMG,EAAwB,KAAK,SAASF,CAAO,GACjD,QAAAH;EACjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA+BA,MAAa,oCACXM,GACAX,GAC8B;AAC9B,UAAMY,IAAYD,EAAS;AACvB,QAAAA,EAAS,kBAAkB,GAAqB;AAC9C,UAAAE;AAUJ,UATIb,EAAO,UAASa,IAAQb,EAAO,UAMjCa,IAJuC;AAAA,QACrC,GAAIC,EAAO;AAAA,QACX,GAAKd,EAAO,mBAA6C,CAAC;AAAA,MAAA,EAE5CY,CAAS,GAGvB,CAACC;AACG,cAAA,IAAIE,EAA0BH,CAAS;AAG3C,UAAAI;AACJ,UAAI,UAAUhB,GAAQ;AACX,iBAAAiB,KAAOjB,EAAO,MAAM;AAC3B,cAAI,CAACkB,EAAeD,EAAI,SAASN,EAAS,cAAc,EAAG;AAC3D,cAAIQ,IAAmB,KAAK;AAAA,YAC1BR;AAAA,YACAM;AAAA,UAAA;AAEF,UAAIE,MAA4BH,IAAAG;AAAA,QAClC;AACO,eAAAH;AAAA,MACT;AAEA,YAAMI,KADU,MAAMC,EAAsB,KAAK,SAASrB,CAAM,GACpC,KAAK,IAAI,CAACiB,MAAQ;AAC5C,cAAM,EAAE,WAAAK,GAAW,MAAAC,EAAK,IAAIC,EAAe;AAAA,UACzC,KAAK,CAACX,CAAK;AAAA,UACX,MAAMI,EAAI;AAAA,UACV,QAAQA,EAAI;AAAA,QAAA,CACb;AACD,eAAO,EAAE,GAAGA,GAAK,WAAAK,GAAW,MAAAC,EAAK;AAAA,MAAA,CAClC;AAED,eAASN,KAAOG,GAAa;AAC3B,YAAI,CAACF,EAAeD,EAAI,SAASN,EAAS,cAAc,EAAG;AAC3D,YAAIQ,IAAmB,KAAK,4BAA4BR,GAAUM,CAAG;AACrE,QAAIE,MAA4BH,IAAAG;AAAA,MAClC;AACO,aAAAH;AAAA,IACT;AACA,QACEL,EAAS,kBAAkB,KAC3B,UAAUX,KACV,aAAaA,GACb;AACA,YAAMyB,IAAc,MAAMC,EAAe,KAAK,SAAS;AAAA,QACrD,MAAM1B,EAAO;AAAA,MAAA,CACd;AACD,UAAI,CAACkB,EAAeO,EAAY,IAAKd,EAAS,cAAc,EAAG;AAC3D,UAAAgB;AASJ,UARI3B,EAAO,UAAS2B,IAAO3B,EAAO,UAMhC2B,IAJ0C;AAAA,QACxC,GAAIC,EAAU;AAAA,QACd,GAAK5B,EAAO,mBAAgD,CAAC;AAAA,MAAA,EAEhDY,CAAS,GAEtB,CAACe;AACG,cAAA,IAAIZ,EAA0BJ,EAAS,SAAS;AAEpD,UAAAkB;AACA,UAAA;AACF,QAAAA,IAAcC,EAAmB;AAAA,UAC/B,KAAK,CAACH,CAAI;AAAA,UACV,MAAMF,EAAY;AAAA,QAAA,CACnB;AAAA,eACM1D,GAAG;AACV,cAAM,IAAIgE,EAAwB,CAACJ,CAAI,GAAG5D,CAAU;AAAA,MACtD;AACO,aAAA,KAAK,4BAA4B4C,GAAUkB,CAAW;AAAA,IAC/D;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUO,4BACLlB,GACAqB,GAGqB;AACrB,QACE,CAACA,KACD,CAAC,MAAM,QAAQA,KAAA,gBAAAA,EAAa,IAAI,MAChCA,KAAA,gBAAAA,EAAa,KAAK,WAAUrB,EAAS;AAErC;AAEF,UAAMsB,IAAeD,EAAY,KAAK,GAAGrB,EAAS,UAAU;AACxD,QAAAuB,EAAUD,CAAY,EAAU,QAAAA;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAa,oBAAoBjC,GAAkC;AAC3D,UAAAmC,IAAc,MAAM,KAAK;AAC/B,eAAWC,KAAcD;AACvB,UAAI,CAAE,MAAM,KAAK,kBAAkBC,GAAYpC,CAAM;AAC5C,eAAA;AAGJ,WAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,MAAa,kBACXoC,GACApC,GACA;AACI,QAAAoC,EAAW,kBAAkB,GAAqB;AACpD,YAAMxB,IAAYwB,EAAW;AACzB,UAAAvB;AAUJ,UATIb,EAAO,UAASa,IAAQb,EAAO,UAMjCa,IAJuC;AAAA,QACrC,GAAIC,EAAO;AAAA,QACX,GAAKd,EAAO,mBAA6C,CAAC;AAAA,MAAA,EAE5CY,CAAS,GAGvB,CAACC;AACG,cAAA,IAAIE,EAA0BH,CAAS;AAG/C,UAAI,KAAK,mBAAmBwB,GAAYvB,CAAK;AAE3C,cAAM,IAAIwB;AAAA,UACRD,EAAW,gBAAgB;AAAA,UAC3BvB;AAAA,QAAA;AAKJ,UAAI,UAAUb;AACZ,eAAO,KAAK,mBAAmBoC,GAAYpC,EAAO,IAAI;AASxD,YAAMoB,KAHU,MAHD,KAAK,QAAQ,UAAU;AAAA,QACpC,SAASpB,EAAO;AAAA,MAAA,CACjB,EAC4B,sBAAsB;AAAA,QACjD,MAAMA,EAAO;AAAA,MAAA,CACd,GAC2B,KAAK,IAAI,CAACiB,MAAQ;AAC5C,cAAM,EAAE,WAAAK,GAAW,MAAAC,EAAK,IAAIC,EAAe;AAAA,UACzC,KAAK,CAACX,CAAK;AAAA,UACX,MAAMI,EAAI;AAAA,UACV,QAAQA,EAAI;AAAA,QAAA,CACb;AAED,eAAO,EAAE,GAAGA,GAAK,WAAAK,GAAW,MAAAC,EAAK;AAAA,MAAA,CAClC;AAEM,aAAA,KAAK,mBAAmBa,GAAYhB,CAAW;AAAA,IACxD;AACI,QAAAgB,EAAW,kBAAkB,KAC3B,UAAUpC,KAAU,aAAaA,GAAQ;AAIrC,YAAAyB,IAAc,MAHL,KAAK,QAAQ,UAAU;AAAA,QACpC,SAASzB,EAAO;AAAA,MAAA,CACjB,EACgC,eAAe;AAAA,QAC9C,MAAMA,EAAO;AAAA,MAAA,CACd;AACD,aAAO,KAAK,sBAAsBoC,GAAYX,GAAazB,CAAM;AAAA,IACnE;AAEK,WAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYO,mBAAmBoC,GAAwBE,GAAiB;AACjE,UAAMC,IAAWH,EAAW;AACxB,QAAA,CAACE,EAAK,OAAe,QAAA;AACzB,aAASrB,KAAOqB;AACd,UAAI,KAAK,2BAA2BC,GAAUtB,CAAG;AACxC,eAAA;AAGJ,WAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAeO,sBACLmB,GACAX,GACAzB,GACA;AACA,UAAMuC,IAAWH,EAAW;AAC5B,QAAIxB,IAAYwB,EAAW,WAEvBT;AASJ,QARI3B,KAAA,QAAAA,EAAQ,UAAS2B,IAAO3B,KAAA,gBAAAA,EAAQ,UAMlC2B,IAJ0C;AAAA,MACxC,GAAIC,EAAU;AAAA,MACd,IAAK5B,KAAA,gBAAAA,EAAQ,oBAAgD,CAAC;AAAA,IAAA,EAEjDY,CAAS,GAEtB,CAACe;AACG,YAAA,IAAIZ,EAA0BH,CAAS;AAG3C,QAAAiB;AACA,QAAA;AACF,MAAAA,IAAcC,EAAmB;AAAA,QAC/B,KAAK,CAACH,CAAI;AAAA,QACV,MAAMF,EAAY;AAAA,MAAA,CACnB;AAAA,aACM1D,GAAG;AACV,YAAM,IAAIgE,EAAwB,CAACJ,CAAI,GAAG5D,CAAU;AAAA,IACtD;AAGA,UAAMyE,IAAcX,EAAY;AAIhC,WAFI,GAACW,KAAe,CAACX,KAGnB,CAAC,KAAK;AAAA,MACJU;AAAA,MACAC;AAAA,IAAA;AAAA,EAON;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWO,6BACLD,GACAE,GACAC,GAGS;AAET,YAAQH,EAAS,YAAY;AAAA,MAC3B,KAAK;AACI,eAAAI,EAAMJ,EAAS,SAAS,EAC5B;AAAA,UAAK;AAAA,UAAuB,MAC3BrB,EAAeqB,EAAS,YAAYE,CAAqB;AAAA,QAAA,EAE1D;AAAA,UACC;AAAA,UACA,MAAM,OAAOA,CAAU,MAAM,OAAOF,EAAS,UAAU;AAAA,QAAA,EAExD;AAAA,UACC;AAAA,UACA,MAAME,MAAeG,EAAQL,EAAS,YAAY,QAAQ;AAAA,QAE3D,EAAA,UAAU,MAAME,MAAeF,EAAS,UAAU;AAAA,MAEvD,KAAK;AACI,eAAAI,EAAMJ,EAAS,SAAS,EAC5B;AAAA,UACC;AAAA,UACA,MAAM,CAACrB,EAAeqB,EAAS,YAAYE,CAAqB;AAAA,QAAA,EAEjE;AAAA,UACC;AAAA,UACA,MAAM,OAAOA,CAAU,MAAM,OAAOF,EAAS,UAAU;AAAA,QAAA,EAExD;AAAA,UACC;AAAA,UACA,MAAME,MAAeG,EAAQL,EAAS,YAAY,QAAQ;AAAA,QAE3D,EAAA,UAAU,MAAME,MAAeF,EAAS,UAAU;AAAA,MAEvD,KAAK;AACC,YAAAA,EAAS,cAAc;AACzB,iBAAO,OAAOE,CAAU,IAAI,OAAOF,EAAS,UAAU;AAExD,cAAM,IAAIM,EAA8B;AAAA,UACtC,GAAGH;AAAA,UACH,UAAAH;AAAA,UACA,YAAAE;AAAA,QAAA,CACD;AAAA,MAEH,KAAK;AACC,YAAAF,EAAS,cAAc;AACzB,iBAAO,OAAOE,CAAU,IAAI,OAAOF,EAAS,UAAU;AAExD,cAAM,IAAIM,EAA8B;AAAA,UACtC,GAAGH;AAAA,UACH,UAAAH;AAAA,UACA,YAAAE;AAAA,QAAA,CACD;AAAA,MAEH,KAAK;AACH,YACEF,EAAS,cAAc,KACvBA,EAAS,cAAc,GACvB;AACI,cAAAO;AACA,iBAAAP,EAAS,cAAc,IACbO,IAAAF,EAAQL,EAAS,YAAY,QAAQ,IAGrCO,IAAAP,EAAS,WAAW,MAAM,CAAC,GAEjCE,EAAsB,SAASK,CAAS;AAAA,QAClD;AACA,cAAM,IAAIC,EAA6B;AAAA,UACrC,GAAGL;AAAA,UACH,UAAAH;AAAA,UACA,YAAAE;AAAA,QAAA,CACD;AAAA,MAEH,KAAK;AACC,YAAA,OAAOA,KAAe;AACxB,gBAAM,IAAIM,EAA6B;AAAA,YACrC,GAAGL;AAAA,YACH,UAAAH;AAAA,YACA,YAAAE;AAAA,UAAA,CACD;AAGC,YAAAF,EAAS,cAAc,GAAsB;AAE/C,gBAAMS,IAAcJ,EAAQL,EAAS,YAAY,QAAQ;AACzD,iBAAO,IAAI,OAAOS,CAAW,EAAE,KAAKP,CAAU;AAAA,QAChD;AAAA,MAEF;AACE,cAAM,IAAIQ,GAA4B;AAAA,UACpC,GAAGP;AAAA,UACH,UAAAH;AAAA,UACA,YAAAE;AAAA,QAAA,CACD;AAAA,IACL;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASO,2BACLF,GACAtB,GACS;AACL,QAAA,CAAC,MAAM,QAAQA,EAAI,IAAI,KAAKA,EAAI,KAAK,UAAUsB,EAAS;AAC1D,YAAM,IAAIW,GAA0B;AAAA,QAClC,KAAAjC;AAAA,QACA,UAAAsB;AAAA,QACA,YAAY;AAAA,MAAA,CACb;AAGH,UAAME,IAAaxB,EAAI,KAAK,GAAGsB,EAAS,UAAU;AAClD,QAAIE,MAAe;AACjB,YAAM,IAAIU,EAAyB,EAAE,KAAAlC,GAAK,UAAAsB,GAAU,YAAAE,EAAY,CAAA;AAElE,WAAO,KAAK,6BAA6BF,GAAUE,GAAY,EAAE,KAAAxB,GAAK;AAAA,EACxE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASO,gCACLsB,GACAC,GACS;AACH,UAAAC,IAAaD,EAAYD,EAAS,UAAU;AAClD,QAAIE,MAAe;AACjB,YAAM,IAAIU,EAAyB;AAAA,QACjC,UAAAZ;AAAA,QACA,YAAAE;AAAA,MAAA,CACD;AAEI,WAAA,KAAK,6BAA6BF,GAAUE,GAAY;AAAA,MAC7D,aAAAD;AAAA,IAAA,CACD;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUgB,gBACdY,GACAC,GACyB;AACzB,UAAM,CAACC,GAASC,CAAO,IAAI,KAAK;AAAA,MAC9BH;AAAA,MACAC;AAAA,IAAA;AAEE,QAAAG;AACA,QAAA9D,GAA2B4D,CAAO,GAAG;AAEnC,UAAAG,IAAyBH,EAAQ,YAAY,OAAO,CAACI,MAAS,CAAC,CAACA,CAAI;AACpE,UAAAD,EAAS,WAAW;AACtB,cAAM,IAAIE,GAAgC;AAExC,UAAAF,EAAS,SAAS;AACpB,cAAM,IAAIG,GAAqC;AAE7C,UAAA3D,IAAyB,MAAM,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC4D,GAAG3F,MAGlDuF,EAAS,GAAGvF,CAAC,KAAKuF,EAAS,GAAG,EAAE,CACxC;AACY,MAAAD,IAAA;AAAA,QACX,gBAAgBF,EAAQ;AAAA,QACxB,eAAerD,EAAM,CAAC;AAAA,QACtB,eAAeA,EAAM,CAAC;AAAA,QACtB,iBAAiBA,EAAM,CAAC;AAAA,QACxB,gBAAgBA,EAAM,CAAC;AAAA,MAAA;AAAA,IACzB;AAEa,MAAAuD,IAAAF;AAER,WAAA;AAAA,MACL,KAAKxD;AAAAA,MACL,UAAAgE;AAAA,MACA,MAAM,CAACC,GAA0BP,CAAU,CAAC;AAAA,MAC5C,GAAG,KAAK,wBAAwBD,EAAQ,OAAO;AAAA,IAAA;AAAA,EAEnD;AAAA,EAEO,mBAAmBG,GAAkB7C,GAAiB;;AAC3D,WACG,IAAA6C,EAAK,gBAAgB,cAAc,KAClCA,EAAK,gBAAgB,cAAc,QACrCM,IAAAnD,EAAM,OAAO6C,EAAK,gBAAgB,UAAU,MAA5C,QAAAM,EAA+C;AAAA,EAKnD;AACF;AAlpBEpE,EAAuB,QAAiC;AAAA,EACtD,GAAIqE;AAAA,GASNrE,EAAuB,eAA6BsE,GAAa;AA7B5D,IAAMC,IAANvE;AAuqBP,SAASO,GAAmBiE,GAAoC;AAC9D,QAAMnE,IAAsB,CAAA,GAC1BoE,IAAsC;AACxC,WAASX,KAAQU,GAAQ;AACjB,UAAAxD,IAAY,KAAK,UAAU8C,CAAI;AACjC,IAAAW,EAAWzD,CAAS,MACxBX,EAAM,KAAKyD,CAAI,GACfW,EAAWzD,CAAS,IAAI;AAAA,EAC1B;AACO,SAAAX;AACT;AAIA,SAASqE,EAAwDC,GAAQ;AAChE,SAAA;AAAA,IACL,GAAGA;AAAA,IACH,SAAS,OAAOA,EAAI,OAAO;AAAA,EAAA;AAE/B;AAEA,SAASnE,EACPmE,GACA;AACA,MAAIA,EAAI,UAAU,OAAO,OAAO,gBAAgB;AACxC,UAAA,IAAI,MAAM,mCAAmC;AAG9C,SAAA;AAAA,IACL,GAAGA;AAAA,IACH,SAAS,OAAOA,EAAI,OAAO;AAAA,EAAA;AAE/B;AAwBO,SAASR,GAA0B;AAAA,EACxC,gBAAAS;AAAA,EACA,eAAAC;AAAA,EACA,eAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,gBAAAC;AACF,GAA0B;AAGjB,SAAAC;AAAA,IACL;AAAA,MACE;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,YAAY;AAAA,UACV;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,YACN,YAAY;AAAA,cACV,EAAE,MAAM,SAAS,MAAM,gBAAgB;AAAA,cACvC,EAAE,MAAM,WAAW,MAAM,YAAY;AAAA,cACrC,EAAE,MAAM,SAAS,MAAM,aAAa;AAAA,cACpC,EAAE,MAAM,WAAW,MAAM,iBAAiB;AAAA,cAC1C,EAAE,MAAM,WAAW,MAAM,UAAU;AAAA,YACrC;AAAA,UACF;AAAA,UACA;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,YACN,YAAY;AAAA,cACV,EAAE,MAAM,WAAW,MAAM,YAAY;AAAA,cACrC,EAAE,MAAM,SAAS,MAAM,gBAAgB;AAAA,cACvC,EAAE,MAAM,SAAS,MAAM,aAAa;AAAA,cACpC,EAAE,MAAM,WAAW,MAAM,iBAAiB;AAAA,cAC1C,EAAE,MAAM,WAAW,MAAM,UAAU;AAAA,cACnC;AAAA,gBACE,MAAM;AAAA,gBACN,MAAM;AAAA,gBACN,YAAY;AAAA,kBACV,EAAE,MAAM,SAAS,MAAM,aAAa;AAAA,kBACpC,EAAE,MAAM,SAAS,MAAM,YAAY;AAAA,kBACnC,EAAE,MAAM,SAAS,MAAM,aAAa;AAAA,kBACpC,EAAE,MAAM,SAAS,MAAM,aAAa;AAAA,gBACtC;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,UACA;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,YACN,YAAY;AAAA,cACV,EAAE,MAAM,WAAW,MAAM,YAAY;AAAA,cACrC,EAAE,MAAM,SAAS,MAAM,gBAAgB;AAAA,cACvC,EAAE,MAAM,SAAS,MAAM,aAAa;AAAA,cACpC,EAAE,MAAM,WAAW,MAAM,iBAAiB;AAAA,cAC1C,EAAE,MAAM,WAAW,MAAM,UAAU;AAAA,cACnC;AAAA,gBACE,MAAM;AAAA,gBACN,MAAM;AAAA,gBACN,YAAY;AAAA,kBACV,EAAE,MAAM,SAAS,MAAM,aAAa;AAAA,kBACpC,EAAE,MAAM,SAAS,MAAM,YAAY;AAAA,kBACnC,EAAE,MAAM,SAAS,MAAM,aAAa;AAAA,kBACpC,EAAE,MAAM,SAAS,MAAM,aAAa;AAAA,gBACtC;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,UACA;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,YACN,YAAY;AAAA,cACV,EAAE,MAAM,WAAW,MAAM,YAAY;AAAA,cACrC,EAAE,MAAM,SAAS,MAAM,gBAAgB;AAAA,cACvC,EAAE,MAAM,SAAS,MAAM,aAAa;AAAA,cACpC,EAAE,MAAM,WAAW,MAAM,iBAAiB;AAAA,cAC1C,EAAE,MAAM,WAAW,MAAM,UAAU;AAAA,cACnC;AAAA,gBACE,MAAM;AAAA,gBACN,MAAM;AAAA,gBACN,YAAY;AAAA,kBACV,EAAE,MAAM,SAAS,MAAM,aAAa;AAAA,kBACpC,EAAE,MAAM,SAAS,MAAM,YAAY;AAAA,kBACnC,EAAE,MAAM,SAAS,MAAM,aAAa;AAAA,kBACpC,EAAE,MAAM,SAAS,MAAM,aAAa;AAAA,gBACtC;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,UACA;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,YACN,YAAY;AAAA,cACV,EAAE,MAAM,WAAW,MAAM,YAAY;AAAA,cACrC,EAAE,MAAM,SAAS,MAAM,gBAAgB;AAAA,cACvC,EAAE,MAAM,SAAS,MAAM,aAAa;AAAA,cACpC,EAAE,MAAM,WAAW,MAAM,iBAAiB;AAAA,cAC1C,EAAE,MAAM,WAAW,MAAM,UAAU;AAAA,cACnC;AAAA,gBACE,MAAM;AAAA,gBACN,MAAM;AAAA,gBACN,YAAY;AAAA,kBACV,EAAE,MAAM,SAAS,MAAM,aAAa;AAAA,kBACpC,EAAE,MAAM,SAAS,MAAM,YAAY;AAAA,kBACnC,EAAE,MAAM,SAAS,MAAM,aAAa;AAAA,kBACpC,EAAE,MAAM,SAAS,MAAM,aAAa;AAAA,gBACtC;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,QACE,gBAAgBP,EAAiBE,CAAc;AAAA,QAC/C,eAAe;AAAA,UACb,GAAGF,EAAiBG,CAAa;AAAA,UACjC,YAAYA,EAAc,cAAc;AAAA,QAC1C;AAAA,QACA,eAAe;AAAA,UACb,GAAGH,EAAiBI,CAAa;AAAA,UACjC,YAAYA,EAAc,cAAc;AAAA,QAC1C;AAAA,QACA,iBAAiB;AAAA,UACf,GAAGJ,EAAiBK,CAAe;AAAA,UACnC,YAAYA,EAAgB,cAAc;AAAA,QAC5C;AAAA,QACA,gBAAgB;AAAA,UACd,GAAGL,EAAiBM,CAAc;AAAA,UAClC,YAAYA,EAAe,cAAc;AAAA,QAC3C;AAAA,MACF;AAAA,IACF;AAAA,EAAA;AAEJ;","x_google_ignoreList":[0]}
@@ -0,0 +1,298 @@
1
+ import { f as i, aX as o, aY as l, aZ as h, a_ as m, a$ as u, b0 as p, b1 as w, b2 as y, b3 as g, b4 as A, b5 as I, b6 as T, b7 as C, b8 as _ } from "./generated-CKt2yCQd.js";
2
+ import { e as v, f as V, g as R, h as E, i as P } from "./componentInterfaces-BBCFkrZv.js";
3
+ import { readContract as k } from "@wagmi/core";
4
+ import { InvalidComponentInterfaceError as x } from "./errors.js";
5
+ import { AllowListIncentive as D } from "./Incentives/AllowListIncentive.js";
6
+ import { CGDAIncentive as G } from "./Incentives/CGDAIncentive.js";
7
+ import { ERC20Incentive as N } from "./Incentives/ERC20Incentive.js";
8
+ import { encodeAbiParameters as q } from "viem";
9
+ import { c as B } from "./deployments-oykLv3_Z.js";
10
+ import { DeployableTarget as F } from "./Deployable/DeployableTarget.js";
11
+ import { prepareClaimPayload as s } from "./claiming.js";
12
+ import { RegistryType as L } from "./utils.js";
13
+ import { PointsIncentive as O } from "./Incentives/PointsIncentive.js";
14
+ const $ = "0x608060405273deaddeaddeaddeaddeaddeaddeaddeaddeaddead5f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015610062575f80fd5b5061007161007660201b60201c565b61010b565b5f6100856100e260201b60201c565b90508054600181161561009f5763f92ee8a95f526004601cfd5b8160c01c808260011c146100dd578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b61266f806101185f395ff3fe6080604052600436106101ed575f3560e01c806354d1f13d1161010c578063d54ad2a11161009f578063ec87621c1161006e578063ec87621c1461069a578063f04e283e146106c4578063f2fde38b146106e0578063fe9fbb80146106fc578063fee81cf414610738576101ed565b8063d54ad2a1146105e2578063db09da121461060c578063dcc59b6f14610648578063e667082914610672576101ed565b80638da5cb5b116100db5780638da5cb5b14610516578063a4d66daf14610540578063bb1757cf1461056a578063c884ef83146105a6576101ed565b806354d1f13d146104b0578063715018a6146104ba57806375b238fc146104c457806380fd6005146104ee576101ed565b80632de9480711610184578063474f5a4411610153578063474f5a44146103df5780634a4ee7b11461041c5780634e7165a214610438578063514e62fc14610474576101ed565b80632de948071461032957806338d52e0f146103655780634359d28a1461038f578063439fab91146103b7576101ed565b80631cd64df4116101c05780631cd64df41461028f578063228cb733146102cb57806325692962146102f557806328d6183b146102ff576101ed565b806301ffc9a7146101f157806307621eca1461022d578063183a4f6e146102575780631c10893f14610273575b5f80fd5b3480156101fc575f80fd5b5061021760048036038101906102129190611870565b610774565b60405161022491906118b5565b60405180910390f35b348015610238575f80fd5b506102416107ed565b60405161024e91906118e6565b60405180910390f35b610271600480360381019061026c9190611929565b6107f6565b005b61028d600480360381019061028891906119ae565b610803565b005b34801561029a575f80fd5b506102b560048036038101906102b091906119ae565b610819565b6040516102c291906118b5565b60405180910390f35b3480156102d6575f80fd5b506102df61082f565b6040516102ec91906118e6565b60405180910390f35b6102fd610835565b005b34801561030a575f80fd5b50610313610886565b60405161032091906119fb565b60405180910390f35b348015610334575f80fd5b5061034f600480360381019061034a9190611a14565b6108ad565b60405161035c91906118e6565b60405180910390f35b348015610370575f80fd5b506103796108c6565b6040516103869190611a4e565b60405180910390f35b34801561039a575f80fd5b506103b560048036038101906103b09190611b1d565b6108e9565b005b3480156103c2575f80fd5b506103dd60048036038101906103d89190611bf0565b6109f7565b005b3480156103ea575f80fd5b5061040560048036038101906104009190611bf0565b610bb4565b604051610413929190611c3b565b60405180910390f35b610436600480360381019061043191906119ae565b610d18565b005b348015610443575f80fd5b5061045e60048036038101906104599190611bf0565b610d2e565b60405161046b9190611cd2565b60405180910390f35b34801561047f575f80fd5b5061049a600480360381019061049591906119ae565b610dfc565b6040516104a791906118b5565b60405180910390f35b6104b8610e13565b005b6104c2610e4c565b005b3480156104cf575f80fd5b506104d8610e5f565b6040516104e591906118e6565b60405180910390f35b3480156104f9575f80fd5b50610514600480360381019061050f9190611d47565b610e64565b005b348015610521575f80fd5b5061052a610f1a565b6040516105379190611a4e565b60405180910390f35b34801561054b575f80fd5b50610554610f42565b60405161056191906118e6565b60405180910390f35b348015610575575f80fd5b50610590600480360381019061058b9190611dc5565b610f48565b60405161059d91906118b5565b60405180910390f35b3480156105b1575f80fd5b506105cc60048036038101906105c79190611a14565b61113c565b6040516105d991906118b5565b60405180910390f35b3480156105ed575f80fd5b506105f6611159565b60405161060391906118e6565b60405180910390f35b348015610617575f80fd5b50610632600480360381019061062d9190611dc5565b61115f565b60405161063f91906118b5565b60405180910390f35b348015610653575f80fd5b5061065c611172565b60405161066991906118e6565b60405180910390f35b34801561067d575f80fd5b5061069860048036038101906106939190611d47565b611178565b005b3480156106a5575f80fd5b506106ae61122e565b6040516106bb91906118e6565b60405180910390f35b6106de60048036038101906106d99190611a14565b611233565b005b6106fa60048036038101906106f59190611a14565b611271565b005b348015610707575f80fd5b50610722600480360381019061071d9190611a14565b61129a565b60405161072f91906118b5565b60405180910390f35b348015610743575f80fd5b5061075e60048036038101906107599190611a14565b6112ed565b60405161076b91906118e6565b60405180910390f35b5f7f90318111000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806107e657506107e582611306565b5b9050919050565b5f600254905090565b610800338261137f565b50565b61080b61138e565b61081582826113c5565b5050565b5f8182610825856108ad565b1614905092915050565b60025481565b5f61083e6113d5565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7f9031811100000000000000000000000000000000000000000000000000000000905090565b5f638b78c6d8600c52815f526020600c20549050919050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026108f4816113df565b828290508585905014610933576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b858590508110156109ef575f84848381811061095457610953611e22565b5b90506020020160208101906109699190611e79565b905060011515811515036109ae576109a987878481811061098d5761098c611e22565b5b90506020020160208101906109a29190611a14565b60016113c5565b6109e1565b6109e08787848181106109c4576109c3611e22565b5b90506020020160208101906109d99190611a14565b600161137f565b5b508080600101915050610935565b505050505050565b5f610a00611414565b90508054600382558015610a325760018160011c14303b10610a295763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f8383810190610a439190611f85565b90505f815f015190505f826020015190505f836040015190505f8103610a95576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610abf308573ffffffffffffffffffffffffffffffffffffffff1661143d90919063ffffffff16565b905081811015610b0d57845f015181836040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401610b0493929190611fb0565b60405180910390fd5b835f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600281905550816004819055505f600581905550610b6a33611470565b610b75336001611546565b50505050508015610baf576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f806001610bc181611587565b5f8585810190610bd191906120fe565b90505f8160200151806020019051810190610bec9190612159565b90508060045f828254610bff91906121b1565b92505081905550610c53825f0151825f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115ae9092919063ffffffff16565b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d35f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f015184604051602001610cc593929190612249565b604051602081830303815290604052604051610ce19190611cd2565b60405180910390a2805f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff16945094505050509250929050565b610d2061138e565b610d2a828261137f565b5050565b60605f808484810190610d4191906122c0565b9250509150604051806080016040528060016002811115610d6557610d64612310565b5b81526020018373ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff168152602001604051806020016040528084815250604051602001610dc19190612366565b604051602081830303815290604052815250604051602001610de3919061247c565b6040516020818303038152906040529250505092915050565b5f8082610e08856108ad565b161415905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610e5461138e565b610e5d5f6115f7565b565b600281565b6002610e6f816113df565b828290508585905014610eae576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015610f1257610f05868683818110610ed157610ed0611e22565b5b9050602002016020810190610ee69190611a14565b858584818110610ef957610ef8611e22565b5b9050602002013561137f565b8080600101915050610eb0565b505050505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60045481565b5f610f5161138e565b5f8383810190610f619190612521565b90505f8160200151806020019051810190610f7c9190612159565b90505f610f88876116bd565b610fbe576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60025403610fcf57819050610ff3565b670de0b6b3a764000082600254610fe69190612568565b610ff091906125d6565b90505b600454816005546110049190612606565b111561103c576040517f360e42e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060055f82825461104d9190612606565b9250508190555061109e87825f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115ae9092919063ffffffff16565b8673ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d35f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff16898460405160200161110a93929190612249565b6040516020818303038152906040526040516111269190611cd2565b60405180910390a2600193505050509392505050565b6003602052805f5260405f205f915054906101000a900460ff1681565b60055481565b5f611169846116bd565b90509392505050565b60015481565b6002611183816113df565b8282905085859050146111c2576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015611226576112198686838181106111e5576111e4611e22565b5b90506020020160208101906111fa9190611a14565b85858481811061120d5761120c611e22565b5b905060200201356113c5565b80806001019150506111c4565b505050505050565b600181565b61123b61138e565b63389a75e1600c52805f526020600c20805442111561126157636f5e88185f526004601cfd5b5f81555061126e816115f7565b50565b61127961138e565b8060601b61128e57637448fbae5f526004601cfd5b611297816115f7565b50565b5f8173ffffffffffffffffffffffffffffffffffffffff166112ba610f1a565b73ffffffffffffffffffffffffffffffffffffffff1614806112e657506112e5826002600117610dfc565b5b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fa9216705000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806113785750611377826116cc565b5b9050919050565b61138a82825f611745565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146113c3576382b429005f526004601cfd5b565b6113d182826001611745565b5050565b5f6202a300905090565b638b78c6d81954331461141157638b78c6d8600c52335f52806020600c205416611410576382b429005f526004601cfd5b5b50565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b61147861179d565b156114f0577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278054156114b257630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350611543565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b638b78c6d8600c52815f52806020600c205580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a35050565b638b78c6d8600c52335f52806020600c2054166115ab576382b429005f526004601cfd5b50565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f511417166115ee576390b8ec185f526004601cfd5b5f603452505050565b6115ff61179d565b15611664577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b82178155506116ba565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f600454600554109050919050565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061173e575061173d826117a1565b5b9050919050565b638b78c6d8600c52825f526020600c2080548381178361176757848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61184f8161181b565b8114611859575f80fd5b50565b5f8135905061186a81611846565b92915050565b5f6020828403121561188557611884611813565b5b5f6118928482850161185c565b91505092915050565b5f8115159050919050565b6118af8161189b565b82525050565b5f6020820190506118c85f8301846118a6565b92915050565b5f819050919050565b6118e0816118ce565b82525050565b5f6020820190506118f95f8301846118d7565b92915050565b611908816118ce565b8114611912575f80fd5b50565b5f81359050611923816118ff565b92915050565b5f6020828403121561193e5761193d611813565b5b5f61194b84828501611915565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61197d82611954565b9050919050565b61198d81611973565b8114611997575f80fd5b50565b5f813590506119a881611984565b92915050565b5f80604083850312156119c4576119c3611813565b5b5f6119d18582860161199a565b92505060206119e285828601611915565b9150509250929050565b6119f58161181b565b82525050565b5f602082019050611a0e5f8301846119ec565b92915050565b5f60208284031215611a2957611a28611813565b5b5f611a368482850161199a565b91505092915050565b611a4881611973565b82525050565b5f602082019050611a615f830184611a3f565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112611a8857611a87611a67565b5b8235905067ffffffffffffffff811115611aa557611aa4611a6b565b5b602083019150836020820283011115611ac157611ac0611a6f565b5b9250929050565b5f8083601f840112611add57611adc611a67565b5b8235905067ffffffffffffffff811115611afa57611af9611a6b565b5b602083019150836020820283011115611b1657611b15611a6f565b5b9250929050565b5f805f8060408587031215611b3557611b34611813565b5b5f85013567ffffffffffffffff811115611b5257611b51611817565b5b611b5e87828801611a73565b9450945050602085013567ffffffffffffffff811115611b8157611b80611817565b5b611b8d87828801611ac8565b925092505092959194509250565b5f8083601f840112611bb057611baf611a67565b5b8235905067ffffffffffffffff811115611bcd57611bcc611a6b565b5b602083019150836001820283011115611be957611be8611a6f565b5b9250929050565b5f8060208385031215611c0657611c05611813565b5b5f83013567ffffffffffffffff811115611c2357611c22611817565b5b611c2f85828601611b9b565b92509250509250929050565b5f604082019050611c4e5f8301856118d7565b611c5b6020830184611a3f565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611ca482611c62565b611cae8185611c6c565b9350611cbe818560208601611c7c565b611cc781611c8a565b840191505092915050565b5f6020820190508181035f830152611cea8184611c9a565b905092915050565b5f8083601f840112611d0757611d06611a67565b5b8235905067ffffffffffffffff811115611d2457611d23611a6b565b5b602083019150836020820283011115611d4057611d3f611a6f565b5b9250929050565b5f805f8060408587031215611d5f57611d5e611813565b5b5f85013567ffffffffffffffff811115611d7c57611d7b611817565b5b611d8887828801611a73565b9450945050602085013567ffffffffffffffff811115611dab57611daa611817565b5b611db787828801611cf2565b925092505092959194509250565b5f805f60408486031215611ddc57611ddb611813565b5b5f611de98682870161199a565b935050602084013567ffffffffffffffff811115611e0a57611e09611817565b5b611e1686828701611b9b565b92509250509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b611e588161189b565b8114611e62575f80fd5b50565b5f81359050611e7381611e4f565b92915050565b5f60208284031215611e8e57611e8d611813565b5b5f611e9b84828501611e65565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611ede82611c8a565b810181811067ffffffffffffffff82111715611efd57611efc611ea8565b5b80604052505050565b5f611f0f61180a565b9050611f1b8282611ed5565b919050565b5f80fd5b5f60608284031215611f3957611f38611ea4565b5b611f436060611f06565b90505f611f528482850161199a565b5f830152506020611f6584828501611915565b6020830152506040611f7984828501611915565b60408301525092915050565b5f60608284031215611f9a57611f99611813565b5b5f611fa784828501611f24565b91505092915050565b5f606082019050611fc35f830186611a3f565b611fd060208301856118d7565b611fdd60408301846118d7565b949350505050565b5f80fd5b5f67ffffffffffffffff82111561200357612002611ea8565b5b61200c82611c8a565b9050602081019050919050565b828183375f83830152505050565b5f61203961203484611fe9565b611f06565b90508281526020810184848401111561205557612054611fe5565b5b612060848285612019565b509392505050565b5f82601f83011261207c5761207b611a67565b5b813561208c848260208601612027565b91505092915050565b5f604082840312156120aa576120a9611ea4565b5b6120b46040611f06565b90505f6120c38482850161199a565b5f83015250602082013567ffffffffffffffff8111156120e6576120e5611f20565b5b6120f284828501612068565b60208301525092915050565b5f6020828403121561211357612112611813565b5b5f82013567ffffffffffffffff8111156121305761212f611817565b5b61213c84828501612095565b91505092915050565b5f81519050612153816118ff565b92915050565b5f6020828403121561216e5761216d611813565b5b5f61217b84828501612145565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6121bb826118ce565b91506121c6836118ce565b92508282039050818111156121de576121dd612184565b5b92915050565b5f8160601b9050919050565b5f6121fa826121e4565b9050919050565b5f61220b826121f0565b9050919050565b61222361221e82611973565b612201565b82525050565b5f819050919050565b61224361223e826118ce565b612229565b82525050565b5f6122548286612212565b6014820191506122648285612212565b6014820191506122748284612232565b602082019150819050949350505050565b5f61228f82611954565b9050919050565b61229f81612285565b81146122a9575f80fd5b50565b5f813590506122ba81612296565b92915050565b5f805f606084860312156122d7576122d6611813565b5b5f6122e4868287016122ac565b93505060206122f586828701611915565b925050604061230686828701611915565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b612346816118ce565b82525050565b602082015f8201516123605f85018261233d565b50505050565b5f6020820190506123795f83018461234c565b92915050565b600381106123905761238f612310565b5b50565b5f8190506123a08261237f565b919050565b5f6123af82612393565b9050919050565b6123bf816123a5565b82525050565b6123ce81611973565b82525050565b5f82825260208201905092915050565b5f6123ee82611c62565b6123f881856123d4565b9350612408818560208601611c7c565b61241181611c8a565b840191505092915050565b5f608083015f8301516124315f8601826123b6565b50602083015161244460208601826123c5565b50604083015161245760408601826123c5565b506060830151848203606086015261246f82826123e4565b9150508091505092915050565b5f6020820190508181035f830152612494818461241c565b905092915050565b5f604082840312156124b1576124b0611ea4565b5b6124bb6040611f06565b90505f82013567ffffffffffffffff8111156124da576124d9611f20565b5b6124e684828501612068565b5f83015250602082013567ffffffffffffffff81111561250957612508611f20565b5b61251584828501612068565b60208301525092915050565b5f6020828403121561253657612535611813565b5b5f82013567ffffffffffffffff81111561255357612552611817565b5b61255f8482850161249c565b91505092915050565b5f612572826118ce565b915061257d836118ce565b925082820261258b816118ce565b915082820484148315176125a2576125a1612184565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6125e0826118ce565b91506125eb836118ce565b9250826125fb576125fa6125a9565b5b828204905092915050565b5f612610826118ce565b915061261b836118ce565b925082820190508082111561263357612632612184565b5b9291505056fea26469706673582212207dd4dc5cab00372c741b24266a80691691d032f9f0fae9210af61b2d30b1ee2664736f6c634300081a0033", c = class c extends F {
15
+ constructor() {
16
+ super(...arguments), this.abi = i;
17
+ }
18
+ /**
19
+ * The owner of the incentive
20
+ *
21
+ * @public
22
+ * @async
23
+ * @param {?ReadParams} [params]
24
+ * @returns {Promise<Address>}
25
+ */
26
+ async owner(f) {
27
+ return await o(this._config, {
28
+ address: this.assertValidAddress(),
29
+ args: [],
30
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
31
+ ...f
32
+ });
33
+ }
34
+ /**
35
+ * The total amount of rewards claimed
36
+ *
37
+ * @public
38
+ * @async
39
+ * @param {?ReadParams} [params]
40
+ * @returns {Promise<bigint>}
41
+ */
42
+ async totalClaimed(f) {
43
+ return await l(this._config, {
44
+ address: this.assertValidAddress(),
45
+ args: [],
46
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
47
+ ...f
48
+ });
49
+ }
50
+ /**
51
+ * The current reward
52
+ *
53
+ * @public
54
+ * @async
55
+ * @param {?ReadParams} [params]
56
+ * @returns {Promise<bigint>} - The current reward
57
+ */
58
+ async currentReward(f) {
59
+ return await h(this._config, {
60
+ address: this.assertValidAddress(),
61
+ args: [],
62
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
63
+ ...f
64
+ });
65
+ }
66
+ /**
67
+ * The number of claims that have been made
68
+ *
69
+ * @public
70
+ * @async
71
+ * @param {?ReadParams} [params]
72
+ * @returns {Promise<bigint>}
73
+ */
74
+ async claims(f) {
75
+ return await m(this._config, {
76
+ address: this.assertValidAddress(),
77
+ args: [],
78
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
79
+ ...f
80
+ });
81
+ }
82
+ /**
83
+ * A mapping of address to claim status
84
+ *
85
+ * @public
86
+ * @async
87
+ * @param {Address} address
88
+ * @param {?ReadParams} [params]
89
+ * @returns {Promise<boolean>}
90
+ */
91
+ async claimed(f, b) {
92
+ return await u(this._config, {
93
+ address: this.assertValidAddress(),
94
+ args: [f],
95
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
96
+ ...b
97
+ });
98
+ }
99
+ /**
100
+ * The address of the ERC20-like token
101
+ *
102
+ * @public
103
+ * @async
104
+ * @param {?ReadParams} [params]
105
+ * @returns {Promise<Address>}
106
+ */
107
+ async asset(f) {
108
+ return await p(this._config, {
109
+ address: this.assertValidAddress(),
110
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
111
+ ...f
112
+ });
113
+ }
114
+ /**
115
+ * The reward amount issued for each claim
116
+ *
117
+ * @public
118
+ * @async
119
+ * @param {?ReadParams} [params]
120
+ * @returns {Promise<bigint>}
121
+ */
122
+ async reward(f) {
123
+ return await w(this._config, {
124
+ address: this.assertValidAddress(),
125
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
126
+ ...f
127
+ });
128
+ }
129
+ /**
130
+ * The limit (max claims, or max entries for raffles)
131
+ *
132
+ * @public
133
+ * @async
134
+ * @param {?ReadParams} [params]
135
+ * @returns {Promise<bigint>}
136
+ */
137
+ async limit(f) {
138
+ return await y(this._config, {
139
+ address: this.assertValidAddress(),
140
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
141
+ ...f
142
+ });
143
+ }
144
+ /**
145
+ * Claim the incentive
146
+ *
147
+ * @public
148
+ * @async
149
+ * @param {ClaimPayload} payload
150
+ * @param {?WriteParams} [params]
151
+ * @returns {Promise<boolean>} - Returns true if successfully claimed
152
+ */
153
+ async claim(f, b) {
154
+ return await this.awaitResult(this.claimRaw(f, b));
155
+ }
156
+ /**
157
+ * Claim the incentive
158
+ *
159
+ * @public
160
+ * @async
161
+ * @param {ClaimPayload} payload
162
+ * @param {?WriteParams} [params]
163
+ * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - Returns true if successfully claimed
164
+ */
165
+ async claimRaw(f, b) {
166
+ const { request: a, result: e } = await g(
167
+ this._config,
168
+ {
169
+ address: this.assertValidAddress(),
170
+ args: [s(f)],
171
+ ...this.optionallyAttachAccount(),
172
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
173
+ ...b
174
+ }
175
+ );
176
+ return { hash: await A(this._config, a), result: e };
177
+ }
178
+ /**
179
+ * Clawback assets from the incentive
180
+ *
181
+ * @public
182
+ * @async
183
+ * @param {ClaimPayload} payload
184
+ * @param {?WriteParams} [params]
185
+ * @returns {Promise<boolean>} - True if the assets were successfully clawbacked
186
+ */
187
+ async clawback(f, b) {
188
+ return await this.awaitResult(this.clawbackRaw(f, b));
189
+ }
190
+ /**
191
+ * Clawback assets from the incentive
192
+ *
193
+ * @public
194
+ * @async
195
+ * @param {ClaimPayload} payload
196
+ * @param {?WriteParams} [params]
197
+ * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the assets were successfully clawbacked
198
+ */
199
+ async clawbackRaw(f, b) {
200
+ const { request: a, result: e } = await I(
201
+ this._config,
202
+ {
203
+ address: this.assertValidAddress(),
204
+ args: [s(f)],
205
+ ...this.optionallyAttachAccount(),
206
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
207
+ ...b
208
+ }
209
+ );
210
+ return { hash: await T(
211
+ this._config,
212
+ a
213
+ ), result: e };
214
+ }
215
+ /**
216
+ * Check if an incentive is claimable. For the POOL strategy, the `bytes data` portion of the payload ignored. The recipient must not have already claimed the incentive.
217
+ *
218
+ * @public
219
+ * @async
220
+ * @param {ClaimPayload} payload
221
+ * @param {?ReadParams} [params]
222
+ * @returns {Promise<boolean>} = True if the incentive is claimable based on the data payload
223
+ */
224
+ async isClaimable(f, b) {
225
+ return await C(this._config, {
226
+ address: this.assertValidAddress(),
227
+ args: [s(f)],
228
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
229
+ ...b
230
+ });
231
+ }
232
+ /**
233
+ * @inheritdoc
234
+ *
235
+ * @public
236
+ * @param {?ERC20VariableIncentivePayload} [_payload]
237
+ * @param {?DeployableOptions} [_options]
238
+ * @returns {GenericDeployableParams}
239
+ */
240
+ buildParameters(f, b) {
241
+ const [a, e] = this.validateDeploymentConfig(
242
+ f,
243
+ b
244
+ );
245
+ return {
246
+ abi: i,
247
+ bytecode: $,
248
+ args: [j(a)],
249
+ ...this.optionallyAttachAccount(e.account)
250
+ };
251
+ }
252
+ };
253
+ c.bases = {
254
+ ...B
255
+ }, c.registryType = L.INCENTIVE;
256
+ let t = c;
257
+ function j({
258
+ asset: d,
259
+ reward: f,
260
+ limit: b
261
+ }) {
262
+ return q(
263
+ [
264
+ { type: "address", name: "asset" },
265
+ { type: "uint256", name: "reward" },
266
+ { type: "uint256", name: "limit" }
267
+ ],
268
+ [d, f, b]
269
+ );
270
+ }
271
+ const r = {
272
+ [v]: O,
273
+ [V]: N,
274
+ [R]: D,
275
+ // [AERC1155Incentive as Hex]: ERC1155Incentive,
276
+ [E]: G,
277
+ [P]: t
278
+ };
279
+ async function b0(d, f) {
280
+ const b = await k(d.config, {
281
+ abi: _,
282
+ functionName: "getComponentInterface",
283
+ address: f
284
+ }), a = r[b];
285
+ if (!a)
286
+ throw new x(
287
+ Object.keys(r),
288
+ b
289
+ );
290
+ return new a(d, f);
291
+ }
292
+ export {
293
+ t as E,
294
+ r as I,
295
+ b0 as i,
296
+ j as p
297
+ };
298
+ //# sourceMappingURL=Incentive-BxzEtN26.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Incentive-BxzEtN26.js","sources":["../src/Incentives/ERC20VariableIncentive.ts","../src/Incentives/Incentive.ts"],"sourcesContent":["import {\n erc20VariableIncentiveAbi,\n readErc20VariableIncentiveAsset,\n readErc20VariableIncentiveClaimed,\n readErc20VariableIncentiveClaims,\n readErc20VariableIncentiveCurrentReward,\n readErc20VariableIncentiveIsClaimable,\n readErc20VariableIncentiveLimit,\n readErc20VariableIncentiveOwner,\n readErc20VariableIncentiveReward,\n readErc20VariableIncentiveTotalClaimed,\n simulateErc20VariableIncentiveClaim,\n simulateErc20VariableIncentiveClawback,\n writeErc20VariableIncentiveClaim,\n writeErc20VariableIncentiveClawback,\n} from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/incentives/ERC20VariableIncentive.sol/ERC20VariableIncentive.json';\nimport {\n type Address,\n type ContractEventName,\n type Hex,\n encodeAbiParameters,\n} from 'viem';\nimport { ERC20VariableIncentive as ERC20VariableIncentiveBases } from '../../dist/deployments.json';\nimport type {\n DeployableOptions,\n GenericDeployableParams,\n} from '../Deployable/Deployable';\nimport { DeployableTarget } from '../Deployable/DeployableTarget';\nimport { type ClaimPayload, prepareClaimPayload } from '../claiming';\nimport {\n type GenericLog,\n type ReadParams,\n RegistryType,\n type WriteParams,\n} from '../utils';\n\nexport { erc20VariableIncentiveAbi };\n/**\n * The object representation of a `ERC20VariableIncentivePayload.InitPayload`\n *\n * @export\n * @interface ERC20VariableIncentivePayload\n * @typedef {ERC20VariableIncentivePayload}\n */\nexport interface ERC20VariableIncentivePayload {\n /**\n * The address of the incentivized asset.\n *\n * @type {Address}\n */\n asset: Address;\n /**\n * The amount of the asset to distribute.\n *\n * @type {bigint}\n */\n reward: bigint;\n /**\n * The total spending limit of the asset that will be distributed.\n *\n * @type {bigint}\n */\n limit: bigint;\n /**\n * The entity that can `clawback` funds\n *\n * @type {Address}\n */\n manager: Address;\n}\n\n/**\n * A generic `viem.Log` event with support for `ERC20VariableIncentive` event types.\n *\n * @export\n * @typedef {ERC20VariableIncentiveLog}\n * @template {ContractEventName<typeof erc20VariableIncentiveAbi>} [event=ContractEventName<\n * typeof erc20VariableIncentiveAbi\n * >]\n */\nexport type ERC20VariableIncentiveLog<\n event extends ContractEventName<\n typeof erc20VariableIncentiveAbi\n > = ContractEventName<typeof erc20VariableIncentiveAbi>,\n> = GenericLog<typeof erc20VariableIncentiveAbi, event>;\n\n/**\n * A modified ERC20 incentive implementation that allows claiming of variable token amounts with a spending limit\n *\n * @export\n * @class ERC20VariableIncentive\n * @typedef {ERC20VariableIncentive}\n * @extends {DeployableTarget<ERC20VariableIncentivePayload>}\n */\nexport class ERC20VariableIncentive extends DeployableTarget<\n ERC20VariableIncentivePayload,\n typeof erc20VariableIncentiveAbi\n> {\n public override readonly abi = erc20VariableIncentiveAbi;\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {Record<number, Address>}\n */\n public static override bases: Record<number, Address> = {\n ...(ERC20VariableIncentiveBases as Record<number, Address>),\n };\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {RegistryType}\n */\n public static override registryType: RegistryType = RegistryType.INCENTIVE;\n\n /**\n * The owner of the incentive\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<Address>}\n */\n public async owner(\n params?: ReadParams<typeof erc20VariableIncentiveAbi, 'owner'>,\n ) {\n return await readErc20VariableIncentiveOwner(this._config, {\n address: this.assertValidAddress(),\n args: [],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * The total amount of rewards claimed\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>}\n */\n public async totalClaimed(\n params?: ReadParams<typeof erc20VariableIncentiveAbi, 'totalClaimed'>,\n ) {\n return await readErc20VariableIncentiveTotalClaimed(this._config, {\n address: this.assertValidAddress(),\n args: [],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * The current reward\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>} - The current reward\n */\n public async currentReward(\n params?: ReadParams<typeof erc20VariableIncentiveAbi, 'currentReward'>,\n ) {\n return await readErc20VariableIncentiveCurrentReward(this._config, {\n address: this.assertValidAddress(),\n args: [],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * The number of claims that have been made\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>}\n */\n public async claims(\n params?: ReadParams<typeof erc20VariableIncentiveAbi, 'claims'>,\n ) {\n return await readErc20VariableIncentiveClaims(this._config, {\n address: this.assertValidAddress(),\n args: [],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * A mapping of address to claim status\n *\n * @public\n * @async\n * @param {Address} address\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>}\n */\n public async claimed(\n address: Address,\n params?: ReadParams<typeof erc20VariableIncentiveAbi, 'claimed'>,\n ) {\n return await readErc20VariableIncentiveClaimed(this._config, {\n address: this.assertValidAddress(),\n args: [address],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * The address of the ERC20-like token\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<Address>}\n */\n public async asset(\n params?: ReadParams<typeof erc20VariableIncentiveAbi, 'asset'>,\n ) {\n return await readErc20VariableIncentiveAsset(this._config, {\n address: this.assertValidAddress(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * The reward amount issued for each claim\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>}\n */\n public async reward(\n params?: ReadParams<typeof erc20VariableIncentiveAbi, 'reward'>,\n ) {\n return await readErc20VariableIncentiveReward(this._config, {\n address: this.assertValidAddress(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * The limit (max claims, or max entries for raffles)\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>}\n */\n public async limit(\n params?: ReadParams<typeof erc20VariableIncentiveAbi, 'limit'>,\n ) {\n return await readErc20VariableIncentiveLimit(this._config, {\n address: this.assertValidAddress(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Claim the incentive\n *\n * @public\n * @async\n * @param {ClaimPayload} payload\n * @param {?WriteParams} [params]\n * @returns {Promise<boolean>} - Returns true if successfully claimed\n */\n protected async claim(\n payload: ClaimPayload,\n params?: WriteParams<typeof erc20VariableIncentiveAbi, 'claim'>,\n ) {\n return await this.awaitResult(this.claimRaw(payload, params));\n }\n\n /**\n * Claim the incentive\n *\n * @public\n * @async\n * @param {ClaimPayload} payload\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - Returns true if successfully claimed\n */\n protected async claimRaw(\n payload: ClaimPayload,\n params?: WriteParams<typeof erc20VariableIncentiveAbi, 'claim'>,\n ) {\n const { request, result } = await simulateErc20VariableIncentiveClaim(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [prepareClaimPayload(payload)],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeErc20VariableIncentiveClaim(this._config, request);\n return { hash, result };\n }\n\n /**\n * Clawback assets from the incentive\n *\n * @public\n * @async\n * @param {ClaimPayload} payload\n * @param {?WriteParams} [params]\n * @returns {Promise<boolean>} - True if the assets were successfully clawbacked\n */\n public async clawback(\n payload: ClaimPayload,\n params?: WriteParams<typeof erc20VariableIncentiveAbi, 'clawback'>,\n ) {\n return await this.awaitResult(this.clawbackRaw(payload, params));\n }\n\n /**\n * Clawback assets from the incentive\n *\n * @public\n * @async\n * @param {ClaimPayload} payload\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the assets were successfully clawbacked\n */\n public async clawbackRaw(\n payload: ClaimPayload,\n params?: WriteParams<typeof erc20VariableIncentiveAbi, 'clawback'>,\n ) {\n const { request, result } = await simulateErc20VariableIncentiveClawback(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [prepareClaimPayload(payload)],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeErc20VariableIncentiveClawback(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Check if an incentive is claimable. For the POOL strategy, the `bytes data` portion of the payload ignored. The recipient must not have already claimed the incentive.\n *\n * @public\n * @async\n * @param {ClaimPayload} payload\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>} = True if the incentive is claimable based on the data payload\n */\n public async isClaimable(\n payload: ClaimPayload,\n params?: ReadParams<typeof erc20VariableIncentiveAbi, 'isClaimable'>,\n ) {\n return await readErc20VariableIncentiveIsClaimable(this._config, {\n address: this.assertValidAddress(),\n args: [prepareClaimPayload(payload)],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * @inheritdoc\n *\n * @public\n * @param {?ERC20VariableIncentivePayload} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: ERC20VariableIncentivePayload,\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [payload, options] = this.validateDeploymentConfig(\n _payload,\n _options,\n );\n return {\n abi: erc20VariableIncentiveAbi,\n bytecode: bytecode as Hex,\n args: [prepareERC20VariableIncentivePayload(payload)],\n ...this.optionallyAttachAccount(options.account),\n };\n }\n}\n\n/**\n * Given a {@link ERC20VariableIncentivePayload}, properly encode a ` ERC20VariableIncentive.InitPayload` for use with {@link ERC20VariableIncentive} initialization.\n *\n * @param {ERC20VariableIncentivePayload} param0\n * @param {Address} param0.asset - The address of the incentivized asset.\n * @param {bigint} param0.reward - The amount of the asset to distribute.\n * @param {bigint} param0.limit - How many times can this incentive be claimed.\n * @returns {Hex}\n */\nexport function prepareERC20VariableIncentivePayload({\n asset,\n reward,\n limit,\n}: ERC20VariableIncentivePayload) {\n return encodeAbiParameters(\n [\n { type: 'address', name: 'asset' },\n { type: 'uint256', name: 'reward' },\n { type: 'uint256', name: 'limit' },\n ],\n [asset, reward, limit],\n );\n}\n","import { aIncentiveAbi } from '@boostxyz/evm';\nimport {\n AAllowListIncentive,\n ACGDAIncentive,\n AERC20Incentive,\n AERC20VariableIncentive,\n APointsIncentive,\n} from '@boostxyz/evm/deploys/componentInterfaces.json';\nimport { readContract } from '@wagmi/core';\nimport type { Address, Hex } from 'viem';\nimport type { DeployableOptions } from '../Deployable/Deployable';\nimport { InvalidComponentInterfaceError } from '../errors';\nimport { AllowListIncentive } from './AllowListIncentive';\nimport { CGDAIncentive } from './CGDAIncentive';\nimport { ERC20Incentive } from './ERC20Incentive';\nimport type { ERC20VariableCriteriaIncentive } from './ERC20VariableCriteriaIncentive';\nimport { ERC20VariableIncentive } from './ERC20VariableIncentive';\n// import { ERC1155Incentive } from './ERC1155Incentive';\nimport { PointsIncentive } from './PointsIncentive';\n\nexport {\n AllowListIncentive,\n CGDAIncentive,\n // ERC1155Incentive,\n ERC20Incentive,\n PointsIncentive,\n ERC20VariableIncentive,\n};\n\n/**\n * A union type representing all valid protocol Incentive implementations\n *\n * @export\n * @typedef {Incentive}\n */\nexport type Incentive =\n | AllowListIncentive\n | CGDAIncentive\n | ERC20Incentive\n // | ERC1155Incentive\n | PointsIncentive\n | ERC20VariableIncentive\n | ERC20VariableCriteriaIncentive;\n\n/**\n * A map of Incentive component interfaces to their constructors.\n *\n * @type {{ \"0xc5b24b8e\": typeof PointsIncentive; \"0x8c901437\": typeof ERC20Incentive; \"0x4414fbb4\": typeof AllowListIncentive; \"0xa39e44d9\": typeof CGDAIncentive; \"0xa8e4af1e\": typeof ERC20VariableIncentive }}\n */\nexport const IncentiveByComponentInterface = {\n [APointsIncentive as Hex]: PointsIncentive,\n [AERC20Incentive as Hex]: ERC20Incentive,\n [AAllowListIncentive]: AllowListIncentive,\n // [AERC1155Incentive as Hex]: ERC1155Incentive,\n [ACGDAIncentive as Hex]: CGDAIncentive,\n [AERC20VariableIncentive as Hex]: ERC20VariableIncentive,\n};\n\n/**\n * A function that will read a contract's component interface using `getComponentInterface` and return the correct instantiated instance.\n *\n * @export\n * @async\n * @param {DeployableOptions} options\n * @param {Address} address\n * @returns {Incentive}\n * @throws {@link InvalidComponentInterfaceError}\n */\nexport async function incentiveFromAddress(\n options: DeployableOptions,\n address: Address,\n) {\n const interfaceId = (await readContract(options.config, {\n abi: aIncentiveAbi,\n functionName: 'getComponentInterface',\n address,\n })) as keyof typeof IncentiveByComponentInterface;\n const Ctor = IncentiveByComponentInterface[interfaceId];\n if (!Ctor) {\n throw new InvalidComponentInterfaceError(\n Object.keys(IncentiveByComponentInterface) as Hex[],\n interfaceId as Hex,\n );\n }\n return new Ctor(options, address);\n}\n"],"names":["_ERC20VariableIncentive","DeployableTarget","erc20VariableIncentiveAbi","params","readErc20VariableIncentiveOwner","readErc20VariableIncentiveTotalClaimed","readErc20VariableIncentiveCurrentReward","readErc20VariableIncentiveClaims","address","readErc20VariableIncentiveClaimed","readErc20VariableIncentiveAsset","readErc20VariableIncentiveReward","readErc20VariableIncentiveLimit","payload","request","result","simulateErc20VariableIncentiveClaim","prepareClaimPayload","writeErc20VariableIncentiveClaim","simulateErc20VariableIncentiveClawback","writeErc20VariableIncentiveClawback","readErc20VariableIncentiveIsClaimable","_payload","_options","options","bytecode","prepareERC20VariableIncentivePayload","ERC20VariableIncentiveBases","RegistryType","ERC20VariableIncentive","asset","reward","limit","encodeAbiParameters","IncentiveByComponentInterface","APointsIncentive","PointsIncentive","AERC20Incentive","ERC20Incentive","AAllowListIncentive","AllowListIncentive","ACGDAIncentive","CGDAIncentive","AERC20VariableIncentive","incentiveFromAddress","interfaceId","readContract","aIncentiveAbi","Ctor","InvalidComponentInterfaceError"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";const e=require("./generated-CyTNlOwM.cjs"),c=require("./componentInterfaces-DRI_dQ-P.cjs"),u=require("@wagmi/core"),h=require("./errors.cjs"),y=require("./Incentives/AllowListIncentive.cjs"),w=require("./Incentives/CGDAIncentive.cjs"),g=require("./Incentives/ERC20Incentive.cjs"),A=require("viem"),m=require("./deployments-DVXioW2i.cjs"),p=require("./Deployable/DeployableTarget.cjs"),r=require("./claiming.cjs"),I=require("./utils.cjs"),v=require("./Incentives/PointsIncentive.cjs"),C="0x608060405273deaddeaddeaddeaddeaddeaddeaddeaddeaddead5f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015610062575f80fd5b5061007161007660201b60201c565b61010b565b5f6100856100e260201b60201c565b90508054600181161561009f5763f92ee8a95f526004601cfd5b8160c01c808260011c146100dd578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b61266f806101185f395ff3fe6080604052600436106101ed575f3560e01c806354d1f13d1161010c578063d54ad2a11161009f578063ec87621c1161006e578063ec87621c1461069a578063f04e283e146106c4578063f2fde38b146106e0578063fe9fbb80146106fc578063fee81cf414610738576101ed565b8063d54ad2a1146105e2578063db09da121461060c578063dcc59b6f14610648578063e667082914610672576101ed565b80638da5cb5b116100db5780638da5cb5b14610516578063a4d66daf14610540578063bb1757cf1461056a578063c884ef83146105a6576101ed565b806354d1f13d146104b0578063715018a6146104ba57806375b238fc146104c457806380fd6005146104ee576101ed565b80632de9480711610184578063474f5a4411610153578063474f5a44146103df5780634a4ee7b11461041c5780634e7165a214610438578063514e62fc14610474576101ed565b80632de948071461032957806338d52e0f146103655780634359d28a1461038f578063439fab91146103b7576101ed565b80631cd64df4116101c05780631cd64df41461028f578063228cb733146102cb57806325692962146102f557806328d6183b146102ff576101ed565b806301ffc9a7146101f157806307621eca1461022d578063183a4f6e146102575780631c10893f14610273575b5f80fd5b3480156101fc575f80fd5b5061021760048036038101906102129190611870565b610774565b60405161022491906118b5565b60405180910390f35b348015610238575f80fd5b506102416107ed565b60405161024e91906118e6565b60405180910390f35b610271600480360381019061026c9190611929565b6107f6565b005b61028d600480360381019061028891906119ae565b610803565b005b34801561029a575f80fd5b506102b560048036038101906102b091906119ae565b610819565b6040516102c291906118b5565b60405180910390f35b3480156102d6575f80fd5b506102df61082f565b6040516102ec91906118e6565b60405180910390f35b6102fd610835565b005b34801561030a575f80fd5b50610313610886565b60405161032091906119fb565b60405180910390f35b348015610334575f80fd5b5061034f600480360381019061034a9190611a14565b6108ad565b60405161035c91906118e6565b60405180910390f35b348015610370575f80fd5b506103796108c6565b6040516103869190611a4e565b60405180910390f35b34801561039a575f80fd5b506103b560048036038101906103b09190611b1d565b6108e9565b005b3480156103c2575f80fd5b506103dd60048036038101906103d89190611bf0565b6109f7565b005b3480156103ea575f80fd5b5061040560048036038101906104009190611bf0565b610bb4565b604051610413929190611c3b565b60405180910390f35b610436600480360381019061043191906119ae565b610d18565b005b348015610443575f80fd5b5061045e60048036038101906104599190611bf0565b610d2e565b60405161046b9190611cd2565b60405180910390f35b34801561047f575f80fd5b5061049a600480360381019061049591906119ae565b610dfc565b6040516104a791906118b5565b60405180910390f35b6104b8610e13565b005b6104c2610e4c565b005b3480156104cf575f80fd5b506104d8610e5f565b6040516104e591906118e6565b60405180910390f35b3480156104f9575f80fd5b50610514600480360381019061050f9190611d47565b610e64565b005b348015610521575f80fd5b5061052a610f1a565b6040516105379190611a4e565b60405180910390f35b34801561054b575f80fd5b50610554610f42565b60405161056191906118e6565b60405180910390f35b348015610575575f80fd5b50610590600480360381019061058b9190611dc5565b610f48565b60405161059d91906118b5565b60405180910390f35b3480156105b1575f80fd5b506105cc60048036038101906105c79190611a14565b61113c565b6040516105d991906118b5565b60405180910390f35b3480156105ed575f80fd5b506105f6611159565b60405161060391906118e6565b60405180910390f35b348015610617575f80fd5b50610632600480360381019061062d9190611dc5565b61115f565b60405161063f91906118b5565b60405180910390f35b348015610653575f80fd5b5061065c611172565b60405161066991906118e6565b60405180910390f35b34801561067d575f80fd5b5061069860048036038101906106939190611d47565b611178565b005b3480156106a5575f80fd5b506106ae61122e565b6040516106bb91906118e6565b60405180910390f35b6106de60048036038101906106d99190611a14565b611233565b005b6106fa60048036038101906106f59190611a14565b611271565b005b348015610707575f80fd5b50610722600480360381019061071d9190611a14565b61129a565b60405161072f91906118b5565b60405180910390f35b348015610743575f80fd5b5061075e60048036038101906107599190611a14565b6112ed565b60405161076b91906118e6565b60405180910390f35b5f7f90318111000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806107e657506107e582611306565b5b9050919050565b5f600254905090565b610800338261137f565b50565b61080b61138e565b61081582826113c5565b5050565b5f8182610825856108ad565b1614905092915050565b60025481565b5f61083e6113d5565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7f9031811100000000000000000000000000000000000000000000000000000000905090565b5f638b78c6d8600c52815f526020600c20549050919050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026108f4816113df565b828290508585905014610933576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b858590508110156109ef575f84848381811061095457610953611e22565b5b90506020020160208101906109699190611e79565b905060011515811515036109ae576109a987878481811061098d5761098c611e22565b5b90506020020160208101906109a29190611a14565b60016113c5565b6109e1565b6109e08787848181106109c4576109c3611e22565b5b90506020020160208101906109d99190611a14565b600161137f565b5b508080600101915050610935565b505050505050565b5f610a00611414565b90508054600382558015610a325760018160011c14303b10610a295763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f8383810190610a439190611f85565b90505f815f015190505f826020015190505f836040015190505f8103610a95576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610abf308573ffffffffffffffffffffffffffffffffffffffff1661143d90919063ffffffff16565b905081811015610b0d57845f015181836040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401610b0493929190611fb0565b60405180910390fd5b835f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600281905550816004819055505f600581905550610b6a33611470565b610b75336001611546565b50505050508015610baf576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f806001610bc181611587565b5f8585810190610bd191906120fe565b90505f8160200151806020019051810190610bec9190612159565b90508060045f828254610bff91906121b1565b92505081905550610c53825f0151825f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115ae9092919063ffffffff16565b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d35f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f015184604051602001610cc593929190612249565b604051602081830303815290604052604051610ce19190611cd2565b60405180910390a2805f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff16945094505050509250929050565b610d2061138e565b610d2a828261137f565b5050565b60605f808484810190610d4191906122c0565b9250509150604051806080016040528060016002811115610d6557610d64612310565b5b81526020018373ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff168152602001604051806020016040528084815250604051602001610dc19190612366565b604051602081830303815290604052815250604051602001610de3919061247c565b6040516020818303038152906040529250505092915050565b5f8082610e08856108ad565b161415905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610e5461138e565b610e5d5f6115f7565b565b600281565b6002610e6f816113df565b828290508585905014610eae576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015610f1257610f05868683818110610ed157610ed0611e22565b5b9050602002016020810190610ee69190611a14565b858584818110610ef957610ef8611e22565b5b9050602002013561137f565b8080600101915050610eb0565b505050505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60045481565b5f610f5161138e565b5f8383810190610f619190612521565b90505f8160200151806020019051810190610f7c9190612159565b90505f610f88876116bd565b610fbe576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60025403610fcf57819050610ff3565b670de0b6b3a764000082600254610fe69190612568565b610ff091906125d6565b90505b600454816005546110049190612606565b111561103c576040517f360e42e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060055f82825461104d9190612606565b9250508190555061109e87825f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115ae9092919063ffffffff16565b8673ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d35f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff16898460405160200161110a93929190612249565b6040516020818303038152906040526040516111269190611cd2565b60405180910390a2600193505050509392505050565b6003602052805f5260405f205f915054906101000a900460ff1681565b60055481565b5f611169846116bd565b90509392505050565b60015481565b6002611183816113df565b8282905085859050146111c2576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015611226576112198686838181106111e5576111e4611e22565b5b90506020020160208101906111fa9190611a14565b85858481811061120d5761120c611e22565b5b905060200201356113c5565b80806001019150506111c4565b505050505050565b600181565b61123b61138e565b63389a75e1600c52805f526020600c20805442111561126157636f5e88185f526004601cfd5b5f81555061126e816115f7565b50565b61127961138e565b8060601b61128e57637448fbae5f526004601cfd5b611297816115f7565b50565b5f8173ffffffffffffffffffffffffffffffffffffffff166112ba610f1a565b73ffffffffffffffffffffffffffffffffffffffff1614806112e657506112e5826002600117610dfc565b5b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fa9216705000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806113785750611377826116cc565b5b9050919050565b61138a82825f611745565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146113c3576382b429005f526004601cfd5b565b6113d182826001611745565b5050565b5f6202a300905090565b638b78c6d81954331461141157638b78c6d8600c52335f52806020600c205416611410576382b429005f526004601cfd5b5b50565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b61147861179d565b156114f0577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278054156114b257630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350611543565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b638b78c6d8600c52815f52806020600c205580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a35050565b638b78c6d8600c52335f52806020600c2054166115ab576382b429005f526004601cfd5b50565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f511417166115ee576390b8ec185f526004601cfd5b5f603452505050565b6115ff61179d565b15611664577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b82178155506116ba565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f600454600554109050919050565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061173e575061173d826117a1565b5b9050919050565b638b78c6d8600c52825f526020600c2080548381178361176757848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61184f8161181b565b8114611859575f80fd5b50565b5f8135905061186a81611846565b92915050565b5f6020828403121561188557611884611813565b5b5f6118928482850161185c565b91505092915050565b5f8115159050919050565b6118af8161189b565b82525050565b5f6020820190506118c85f8301846118a6565b92915050565b5f819050919050565b6118e0816118ce565b82525050565b5f6020820190506118f95f8301846118d7565b92915050565b611908816118ce565b8114611912575f80fd5b50565b5f81359050611923816118ff565b92915050565b5f6020828403121561193e5761193d611813565b5b5f61194b84828501611915565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61197d82611954565b9050919050565b61198d81611973565b8114611997575f80fd5b50565b5f813590506119a881611984565b92915050565b5f80604083850312156119c4576119c3611813565b5b5f6119d18582860161199a565b92505060206119e285828601611915565b9150509250929050565b6119f58161181b565b82525050565b5f602082019050611a0e5f8301846119ec565b92915050565b5f60208284031215611a2957611a28611813565b5b5f611a368482850161199a565b91505092915050565b611a4881611973565b82525050565b5f602082019050611a615f830184611a3f565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112611a8857611a87611a67565b5b8235905067ffffffffffffffff811115611aa557611aa4611a6b565b5b602083019150836020820283011115611ac157611ac0611a6f565b5b9250929050565b5f8083601f840112611add57611adc611a67565b5b8235905067ffffffffffffffff811115611afa57611af9611a6b565b5b602083019150836020820283011115611b1657611b15611a6f565b5b9250929050565b5f805f8060408587031215611b3557611b34611813565b5b5f85013567ffffffffffffffff811115611b5257611b51611817565b5b611b5e87828801611a73565b9450945050602085013567ffffffffffffffff811115611b8157611b80611817565b5b611b8d87828801611ac8565b925092505092959194509250565b5f8083601f840112611bb057611baf611a67565b5b8235905067ffffffffffffffff811115611bcd57611bcc611a6b565b5b602083019150836001820283011115611be957611be8611a6f565b5b9250929050565b5f8060208385031215611c0657611c05611813565b5b5f83013567ffffffffffffffff811115611c2357611c22611817565b5b611c2f85828601611b9b565b92509250509250929050565b5f604082019050611c4e5f8301856118d7565b611c5b6020830184611a3f565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611ca482611c62565b611cae8185611c6c565b9350611cbe818560208601611c7c565b611cc781611c8a565b840191505092915050565b5f6020820190508181035f830152611cea8184611c9a565b905092915050565b5f8083601f840112611d0757611d06611a67565b5b8235905067ffffffffffffffff811115611d2457611d23611a6b565b5b602083019150836020820283011115611d4057611d3f611a6f565b5b9250929050565b5f805f8060408587031215611d5f57611d5e611813565b5b5f85013567ffffffffffffffff811115611d7c57611d7b611817565b5b611d8887828801611a73565b9450945050602085013567ffffffffffffffff811115611dab57611daa611817565b5b611db787828801611cf2565b925092505092959194509250565b5f805f60408486031215611ddc57611ddb611813565b5b5f611de98682870161199a565b935050602084013567ffffffffffffffff811115611e0a57611e09611817565b5b611e1686828701611b9b565b92509250509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b611e588161189b565b8114611e62575f80fd5b50565b5f81359050611e7381611e4f565b92915050565b5f60208284031215611e8e57611e8d611813565b5b5f611e9b84828501611e65565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611ede82611c8a565b810181811067ffffffffffffffff82111715611efd57611efc611ea8565b5b80604052505050565b5f611f0f61180a565b9050611f1b8282611ed5565b919050565b5f80fd5b5f60608284031215611f3957611f38611ea4565b5b611f436060611f06565b90505f611f528482850161199a565b5f830152506020611f6584828501611915565b6020830152506040611f7984828501611915565b60408301525092915050565b5f60608284031215611f9a57611f99611813565b5b5f611fa784828501611f24565b91505092915050565b5f606082019050611fc35f830186611a3f565b611fd060208301856118d7565b611fdd60408301846118d7565b949350505050565b5f80fd5b5f67ffffffffffffffff82111561200357612002611ea8565b5b61200c82611c8a565b9050602081019050919050565b828183375f83830152505050565b5f61203961203484611fe9565b611f06565b90508281526020810184848401111561205557612054611fe5565b5b612060848285612019565b509392505050565b5f82601f83011261207c5761207b611a67565b5b813561208c848260208601612027565b91505092915050565b5f604082840312156120aa576120a9611ea4565b5b6120b46040611f06565b90505f6120c38482850161199a565b5f83015250602082013567ffffffffffffffff8111156120e6576120e5611f20565b5b6120f284828501612068565b60208301525092915050565b5f6020828403121561211357612112611813565b5b5f82013567ffffffffffffffff8111156121305761212f611817565b5b61213c84828501612095565b91505092915050565b5f81519050612153816118ff565b92915050565b5f6020828403121561216e5761216d611813565b5b5f61217b84828501612145565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6121bb826118ce565b91506121c6836118ce565b92508282039050818111156121de576121dd612184565b5b92915050565b5f8160601b9050919050565b5f6121fa826121e4565b9050919050565b5f61220b826121f0565b9050919050565b61222361221e82611973565b612201565b82525050565b5f819050919050565b61224361223e826118ce565b612229565b82525050565b5f6122548286612212565b6014820191506122648285612212565b6014820191506122748284612232565b602082019150819050949350505050565b5f61228f82611954565b9050919050565b61229f81612285565b81146122a9575f80fd5b50565b5f813590506122ba81612296565b92915050565b5f805f606084860312156122d7576122d6611813565b5b5f6122e4868287016122ac565b93505060206122f586828701611915565b925050604061230686828701611915565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b612346816118ce565b82525050565b602082015f8201516123605f85018261233d565b50505050565b5f6020820190506123795f83018461234c565b92915050565b600381106123905761238f612310565b5b50565b5f8190506123a08261237f565b919050565b5f6123af82612393565b9050919050565b6123bf816123a5565b82525050565b6123ce81611973565b82525050565b5f82825260208201905092915050565b5f6123ee82611c62565b6123f881856123d4565b9350612408818560208601611c7c565b61241181611c8a565b840191505092915050565b5f608083015f8301516124315f8601826123b6565b50602083015161244460208601826123c5565b50604083015161245760408601826123c5565b506060830151848203606086015261246f82826123e4565b9150508091505092915050565b5f6020820190508181035f830152612494818461241c565b905092915050565b5f604082840312156124b1576124b0611ea4565b5b6124bb6040611f06565b90505f82013567ffffffffffffffff8111156124da576124d9611f20565b5b6124e684828501612068565b5f83015250602082013567ffffffffffffffff81111561250957612508611f20565b5b61251584828501612068565b60208301525092915050565b5f6020828403121561253657612535611813565b5b5f82013567ffffffffffffffff81111561255357612552611817565b5b61255f8482850161249c565b91505092915050565b5f612572826118ce565b915061257d836118ce565b925082820261258b816118ce565b915082820484148315176125a2576125a1612184565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6125e0826118ce565b91506125eb836118ce565b9250826125fb576125fa6125a9565b5b828204905092915050565b5f612610826118ce565b915061261b836118ce565b925082820190508082111561263357612632612184565b5b9291505056fea26469706673582212207dd4dc5cab00372c741b24266a80691691d032f9f0fae9210af61b2d30b1ee2664736f6c634300081a0033",i=class i extends p.DeployableTarget{constructor(){super(...arguments),this.abi=e.f}async owner(f){return await e.ST(this._config,{address:this.assertValidAddress(),args:[],...f})}async totalClaimed(f){return await e.FT(this._config,{address:this.assertValidAddress(),args:[],...f})}async currentReward(f){return await e.OT(this._config,{address:this.assertValidAddress(),args:[],...f})}async claims(f){return await e.RT(this._config,{address:this.assertValidAddress(),args:[],...f})}async claimed(f,b){return await e.MT(this._config,{address:this.assertValidAddress(),args:[f],...b})}async asset(f){return await e.gT(this._config,{address:this.assertValidAddress(),...f})}async reward(f){return await e._T(this._config,{address:this.assertValidAddress(),...f})}async limit(f){return await e.BT(this._config,{address:this.assertValidAddress(),...f})}async claim(f,b){return await this.awaitResult(this.claimRaw(f,b))}async claimRaw(f,b){const{request:a,result:d}=await e.nA(this._config,{address:this.assertValidAddress(),args:[r.prepareClaimPayload(f)],...this.optionallyAttachAccount(),...b});return{hash:await e.UT(this._config,a),result:d}}async clawback(f,b){return await this.awaitResult(this.clawbackRaw(f,b))}async clawbackRaw(f,b){const{request:a,result:d}=await e.aA(this._config,{address:this.assertValidAddress(),args:[r.prepareClaimPayload(f)],...this.optionallyAttachAccount(),...b});return{hash:await e.GT(this._config,a),result:d}}async isClaimable(f,b){return await e.xT(this._config,{address:this.assertValidAddress(),args:[r.prepareClaimPayload(f)],...b})}buildParameters(f,b){const[a,d]=this.validateDeploymentConfig(f,b);return{abi:e.f,bytecode:C,args:[o(a)],...this.optionallyAttachAccount(d.account)}}};i.bases={...m.ERC20VariableIncentive},i.registryType=I.RegistryType.INCENTIVE;let s=i;function o({asset:t,reward:f,limit:b}){return A.encodeAbiParameters([{type:"address",name:"asset"},{type:"uint256",name:"reward"},{type:"uint256",name:"limit"}],[t,f,b])}const n={[c.APointsIncentive]:v.PointsIncentive,[c.AERC20Incentive]:g.ERC20Incentive,[c.AAllowListIncentive]:y.AllowListIncentive,[c.ACGDAIncentive]:w.CGDAIncentive,[c.AERC20VariableIncentive]:s};async function T(t,f){const b=await u.readContract(t.config,{abi:e.W,functionName:"getComponentInterface",address:f}),a=n[b];if(!a)throw new h.InvalidComponentInterfaceError(Object.keys(n),b);return new a(t,f)}exports.ERC20VariableIncentive=s;exports.IncentiveByComponentInterface=n;exports.incentiveFromAddress=T;exports.prepareERC20VariableIncentivePayload=o;
2
+ //# sourceMappingURL=Incentive-CrF3-ayL.cjs.map