@boostxyz/sdk 2.1.1 → 2.2.0

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 (131) hide show
  1. package/dist/Actions/Action.cjs +1 -1
  2. package/dist/Actions/Action.cjs.map +1 -1
  3. package/dist/Actions/Action.d.ts +2 -1
  4. package/dist/Actions/Action.d.ts.map +1 -1
  5. package/dist/Actions/Action.js +14 -13
  6. package/dist/Actions/Action.js.map +1 -1
  7. package/dist/Actions/EventAction.cjs +1 -1
  8. package/dist/Actions/EventAction.cjs.map +1 -1
  9. package/dist/Actions/EventAction.d.ts.map +1 -1
  10. package/dist/Actions/EventAction.js +33 -33
  11. package/dist/Actions/EventAction.js.map +1 -1
  12. package/dist/AllowLists/AllowList.cjs +1 -1
  13. package/dist/AllowLists/AllowList.cjs.map +1 -1
  14. package/dist/AllowLists/AllowList.d.ts +2 -1
  15. package/dist/AllowLists/AllowList.d.ts.map +1 -1
  16. package/dist/AllowLists/AllowList.js +19 -18
  17. package/dist/AllowLists/AllowList.js.map +1 -1
  18. package/dist/AllowLists/SimpleAllowList.cjs +1 -1
  19. package/dist/AllowLists/SimpleAllowList.js +7 -7
  20. package/dist/AllowLists/SimpleDenyList.cjs +1 -1
  21. package/dist/AllowLists/SimpleDenyList.js +3 -3
  22. package/dist/Auth/PassthroughAuth.cjs +1 -1
  23. package/dist/Auth/PassthroughAuth.js +1 -1
  24. package/dist/BoostCore.cjs +2 -2
  25. package/dist/BoostCore.cjs.map +1 -1
  26. package/dist/BoostCore.d.ts +13 -4
  27. package/dist/BoostCore.d.ts.map +1 -1
  28. package/dist/BoostCore.js +58 -57
  29. package/dist/BoostCore.js.map +1 -1
  30. package/dist/BoostRegistry.cjs +1 -1
  31. package/dist/BoostRegistry.js +11 -11
  32. package/dist/{Budget-DpQgIZEx.js → Budget-B0q1S08L.js} +33 -32
  33. package/dist/{Budget-DpQgIZEx.js.map → Budget-B0q1S08L.js.map} +1 -1
  34. package/dist/{Budget-BxQMnsdx.cjs → Budget-BA_1sa1e.cjs} +2 -2
  35. package/dist/{Budget-BxQMnsdx.cjs.map → Budget-BA_1sa1e.cjs.map} +1 -1
  36. package/dist/Budgets/Budget.cjs +1 -1
  37. package/dist/Budgets/Budget.d.ts +2 -1
  38. package/dist/Budgets/Budget.d.ts.map +1 -1
  39. package/dist/Budgets/Budget.js +2 -2
  40. package/dist/Budgets/ManagedBudget.cjs +1 -1
  41. package/dist/Budgets/ManagedBudget.js +11 -11
  42. package/dist/Deployable/DeployableTarget.cjs +1 -1
  43. package/dist/Deployable/DeployableTarget.js +1 -1
  44. package/dist/Deployable/DeployableTargetWithRBAC.cjs +1 -1
  45. package/dist/Deployable/DeployableTargetWithRBAC.cjs.map +1 -1
  46. package/dist/Deployable/DeployableTargetWithRBAC.d.ts +158 -0
  47. package/dist/Deployable/DeployableTargetWithRBAC.d.ts.map +1 -1
  48. package/dist/Deployable/DeployableTargetWithRBAC.js +268 -31
  49. package/dist/Deployable/DeployableTargetWithRBAC.js.map +1 -1
  50. package/dist/Incentives/AllowListIncentive.cjs +1 -1
  51. package/dist/Incentives/AllowListIncentive.cjs.map +1 -1
  52. package/dist/Incentives/AllowListIncentive.js +27 -27
  53. package/dist/Incentives/AllowListIncentive.js.map +1 -1
  54. package/dist/Incentives/CGDAIncentive.cjs +1 -1
  55. package/dist/Incentives/CGDAIncentive.cjs.map +1 -1
  56. package/dist/Incentives/CGDAIncentive.js +9 -9
  57. package/dist/Incentives/CGDAIncentive.js.map +1 -1
  58. package/dist/Incentives/ERC20Incentive.cjs +1 -1
  59. package/dist/Incentives/ERC20Incentive.cjs.map +1 -1
  60. package/dist/Incentives/ERC20Incentive.js +30 -30
  61. package/dist/Incentives/ERC20Incentive.js.map +1 -1
  62. package/dist/Incentives/ERC20VariableCriteriaIncentive.cjs +1 -1
  63. package/dist/Incentives/ERC20VariableCriteriaIncentive.js +11 -11
  64. package/dist/Incentives/ERC20VariableIncentive.cjs +1 -1
  65. package/dist/Incentives/ERC20VariableIncentive.cjs.map +1 -1
  66. package/dist/Incentives/ERC20VariableIncentive.js +12 -12
  67. package/dist/Incentives/ERC20VariableIncentive.js.map +1 -1
  68. package/dist/Incentives/Incentive.cjs +1 -1
  69. package/dist/Incentives/Incentive.cjs.map +1 -1
  70. package/dist/Incentives/Incentive.d.ts +2 -1
  71. package/dist/Incentives/Incentive.d.ts.map +1 -1
  72. package/dist/Incentives/Incentive.js +29 -28
  73. package/dist/Incentives/Incentive.js.map +1 -1
  74. package/dist/Incentives/PointsIncentive.cjs +1 -1
  75. package/dist/Incentives/PointsIncentive.cjs.map +1 -1
  76. package/dist/Incentives/PointsIncentive.js +25 -25
  77. package/dist/Incentives/PointsIncentive.js.map +1 -1
  78. package/dist/{SimpleDenyList-CA24drhL.cjs → SimpleDenyList-DrQrJ14i.cjs} +2 -2
  79. package/dist/{SimpleDenyList-CA24drhL.cjs.map → SimpleDenyList-DrQrJ14i.cjs.map} +1 -1
  80. package/dist/{SimpleDenyList-UHgnaOb_.js → SimpleDenyList-DuCoaOlG.js} +9 -9
  81. package/dist/{SimpleDenyList-UHgnaOb_.js.map → SimpleDenyList-DuCoaOlG.js.map} +1 -1
  82. package/dist/Validators/LimitedSignerValidator.cjs +1 -1
  83. package/dist/Validators/LimitedSignerValidator.js +7 -7
  84. package/dist/Validators/SignerValidator.cjs +1 -1
  85. package/dist/Validators/SignerValidator.js +5 -5
  86. package/dist/Validators/Validator.cjs +1 -1
  87. package/dist/Validators/Validator.cjs.map +1 -1
  88. package/dist/Validators/Validator.d.ts +2 -1
  89. package/dist/Validators/Validator.d.ts.map +1 -1
  90. package/dist/Validators/Validator.js +22 -21
  91. package/dist/Validators/Validator.js.map +1 -1
  92. package/dist/deployments-BucJ-gwk.cjs +2 -0
  93. package/dist/deployments-BucJ-gwk.cjs.map +1 -0
  94. package/dist/deployments-CQu0bLhU.js +102 -0
  95. package/dist/deployments-CQu0bLhU.js.map +1 -0
  96. package/dist/deployments.json +77 -74
  97. package/dist/{generated-B0XfMfoq.js → generated-1ZT_mHJx.js} +673 -450
  98. package/dist/generated-1ZT_mHJx.js.map +1 -0
  99. package/dist/generated-CgBgbMNe.cjs +3 -0
  100. package/dist/generated-CgBgbMNe.cjs.map +1 -0
  101. package/dist/index.cjs +1 -1
  102. package/dist/index.js +3 -3
  103. package/package.json +2 -2
  104. package/src/Actions/Action.ts +3 -0
  105. package/src/Actions/EventAction.test.ts +49 -2
  106. package/src/Actions/EventAction.ts +12 -4
  107. package/src/AllowLists/AllowList.ts +3 -0
  108. package/src/BoostCore.ts +16 -11
  109. package/src/Budgets/Budget.ts +3 -0
  110. package/src/Deployable/DeployableTargetWithRBAC.test.ts +175 -0
  111. package/src/Deployable/DeployableTargetWithRBAC.ts +281 -0
  112. package/src/Incentives/AllowListIncentive.test.ts +48 -0
  113. package/src/Incentives/AllowListIncentive.ts +1 -1
  114. package/src/Incentives/CGDAIncentive.test.ts +50 -0
  115. package/src/Incentives/CGDAIncentive.ts +1 -1
  116. package/src/Incentives/ERC1155Incentive.ts +1 -1
  117. package/src/Incentives/ERC20Incentive.test.ts +49 -0
  118. package/src/Incentives/ERC20Incentive.ts +1 -1
  119. package/src/Incentives/ERC20VariableIncentive.test.ts +48 -0
  120. package/src/Incentives/ERC20VariableIncentive.ts +1 -1
  121. package/src/Incentives/Incentive.ts +3 -0
  122. package/src/Incentives/PointsIncentive.test.ts +51 -0
  123. package/src/Incentives/PointsIncentive.ts +1 -1
  124. package/src/Validators/Validator.ts +3 -0
  125. package/dist/deployments-BDumesUK.cjs +0 -2
  126. package/dist/deployments-BDumesUK.cjs.map +0 -1
  127. package/dist/deployments-DvYsMioW.js +0 -99
  128. package/dist/deployments-DvYsMioW.js.map +0 -1
  129. package/dist/generated-B0XfMfoq.js.map +0 -1
  130. package/dist/generated-pNKCp_Ez.cjs +0 -3
  131. package/dist/generated-pNKCp_Ez.cjs.map +0 -1
@@ -1,8 +1,8 @@
1
- import { S as h, a as c, C as l, c as d, x as A, d as u, e as g, g as w, i as y, A as R, y as f, j as p, k as B, p as _ } from "../generated-B0XfMfoq.js";
2
- import { E as m } from "../generated-B0XfMfoq.js";
3
- import { DeployableTarget as M } from "./DeployableTarget.js";
4
- var o = /* @__PURE__ */ ((e) => (e[e.MANAGER = 1n] = "MANAGER", e[e.ADMIN = 2n] = "ADMIN", e))(o || {});
5
- class v extends M {
1
+ import { S as o, a as c, C as l, c as d, x as u, d as w, e as A, g as R, i as y, A as g, y as p, j as f, k as _, p as v, n as O, l as q, X as V, G as B, q as C, W as M, J as H, s as m, t as k, D, v as E, Y as x, U as N } from "../generated-1ZT_mHJx.js";
2
+ import { E as J } from "../generated-1ZT_mHJx.js";
3
+ import { DeployableTarget as b } from "./DeployableTarget.js";
4
+ var h = /* @__PURE__ */ ((r) => (r[r.MANAGER = 1n] = "MANAGER", r[r.ADMIN = 2n] = "ADMIN", r))(h || {});
5
+ class I extends b {
6
6
  /**
7
7
  * Set the authorized status of the given accounts
8
8
  * The mechanism for managing authorization is left to the implementing contract
@@ -31,14 +31,14 @@ class v extends M {
31
31
  * @returns {Promise<void>}
32
32
  */
33
33
  async setAuthorizedRaw(s, t, a) {
34
- const { request: i, result: r } = await h(this._config, {
34
+ const { request: e, result: i } = await o(this._config, {
35
35
  address: this.assertValidAddress(),
36
36
  args: [s, t],
37
37
  ...this.optionallyAttachAccount(),
38
38
  // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
39
39
  ...a
40
40
  });
41
- return { hash: await c(this._config, i), result: r };
41
+ return { hash: await c(this._config, e), result: i };
42
42
  }
43
43
  /**
44
44
  * Grant permissions for a user on the rbac.
@@ -72,7 +72,7 @@ class v extends M {
72
72
  * @returns {Promise<{ hash: `0x${string}`; result: void; }>}
73
73
  */
74
74
  async grantRolesRaw(s, t, a) {
75
- const { request: i, result: r } = await l(this._config, {
75
+ const { request: e, result: i } = await l(this._config, {
76
76
  address: this.assertValidAddress(),
77
77
  args: [s, t],
78
78
  ...this.optionallyAttachAccount(),
@@ -82,8 +82,8 @@ class v extends M {
82
82
  return { hash: await d(
83
83
  this._config,
84
84
  // biome-ignore lint/suspicious/noExplicitAny: negligible low level lack of type intersection
85
- i
86
- ), result: r };
85
+ e
86
+ ), result: i };
87
87
  }
88
88
  /**
89
89
  * Revoke permissions for a user on the rbac.
@@ -117,18 +117,18 @@ class v extends M {
117
117
  * @returns {Promise<{ hash: `0x${string}`; result: void; }>}
118
118
  */
119
119
  async revokeRolesRaw(s, t, a) {
120
- const { request: i, result: r } = await A(this._config, {
120
+ const { request: e, result: i } = await u(this._config, {
121
121
  address: this.assertValidAddress(),
122
122
  args: [s, t],
123
123
  ...this.optionallyAttachAccount(),
124
124
  // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
125
125
  ...a
126
126
  });
127
- return { hash: await u(
127
+ return { hash: await w(
128
128
  this._config,
129
129
  // biome-ignore lint/suspicious/noExplicitAny: negligible low level lack of type intersection
130
- i
131
- ), result: r };
130
+ e
131
+ ), result: i };
132
132
  }
133
133
  /**
134
134
  * Grant many accounts permissions on the rbac.
@@ -164,18 +164,18 @@ class v extends M {
164
164
  * @returns {Promise<{ hash: `0x${string}`; result: void; }>}
165
165
  */
166
166
  async grantManyRolesRaw(s, t, a) {
167
- const { request: i, result: r } = await g(this._config, {
167
+ const { request: e, result: i } = await A(this._config, {
168
168
  address: this.assertValidAddress(),
169
169
  args: [s, t],
170
170
  ...this.optionallyAttachAccount(),
171
171
  // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
172
172
  ...a
173
173
  });
174
- return { hash: await w(
174
+ return { hash: await R(
175
175
  this._config,
176
176
  // biome-ignore lint/suspicious/noExplicitAny: negligible low level lack of type intersection
177
- i
178
- ), result: r };
177
+ e
178
+ ), result: i };
179
179
  }
180
180
  /**
181
181
  * Revoke many accounts' permissions on the rbac.
@@ -211,7 +211,7 @@ class v extends M {
211
211
  * @returns {Promise<{ hash: `0x${string}`; result: void; }>}
212
212
  */
213
213
  async revokeManyRolesRaw(s, t, a) {
214
- const { request: i, result: r } = await y(
214
+ const { request: e, result: i } = await y(
215
215
  this._config,
216
216
  {
217
217
  address: this.assertValidAddress(),
@@ -221,11 +221,11 @@ class v extends M {
221
221
  ...a
222
222
  }
223
223
  );
224
- return { hash: await R(
224
+ return { hash: await g(
225
225
  this._config,
226
226
  // biome-ignore lint/suspicious/noExplicitAny: negligible low level lack of type intersection
227
- i
228
- ), result: r };
227
+ e
228
+ ), result: i };
229
229
  }
230
230
  /**
231
231
  * Return an array of the roles assigned to the given account.
@@ -239,15 +239,15 @@ class v extends M {
239
239
  * @returns {Promise<Array<Roles>>}
240
240
  */
241
241
  async rolesOf(s, t) {
242
- const a = await f(this._config, {
242
+ const a = await p(this._config, {
243
243
  address: this.assertValidAddress(),
244
244
  args: [s],
245
245
  ...this.optionallyAttachAccount(),
246
246
  // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
247
247
  ...t
248
248
  });
249
- return [o.MANAGER, o.ADMIN].filter(
250
- (i) => (a & i) === i
249
+ return [h.MANAGER, h.ADMIN].filter(
250
+ (e) => (a & e) === e
251
251
  );
252
252
  }
253
253
  /**
@@ -264,7 +264,7 @@ class v extends M {
264
264
  * @returns {Promise<boolean>}
265
265
  */
266
266
  hasAnyRole(s, t, a) {
267
- return p(this._config, {
267
+ return f(this._config, {
268
268
  address: this.assertValidAddress(),
269
269
  args: [s, t],
270
270
  ...this.optionallyAttachAccount(),
@@ -286,7 +286,7 @@ class v extends M {
286
286
  * @returns {Promise<boolean>}
287
287
  */
288
288
  hasAllRoles(s, t, a) {
289
- return B(this._config, {
289
+ return _(this._config, {
290
290
  address: this.assertValidAddress(),
291
291
  args: [s, t],
292
292
  ...this.optionallyAttachAccount(),
@@ -303,18 +303,255 @@ class v extends M {
303
303
  * @returns {Promise<boolean>} - True if the account is authorized
304
304
  */
305
305
  isAuthorized(s, t) {
306
- return _(this._config, {
306
+ return v(this._config, {
307
+ address: this.assertValidAddress(),
308
+ args: [s],
309
+ ...this.optionallyAttachAccount(),
310
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
311
+ ...t
312
+ });
313
+ }
314
+ /**
315
+ * Transfer ownership of the contract to a new address
316
+ *
317
+ * @public
318
+ * @async
319
+ * @param {Address} newOwner - The address to transfer ownership to
320
+ * @param {?WriteParams} [params]
321
+ * @returns {Promise<void>}
322
+ */
323
+ async transferOwnership(s, t) {
324
+ return await this.awaitResult(this.transferOwnershipRaw(s, t));
325
+ }
326
+ /**
327
+ * Transfer ownership of the contract to a new address
328
+ *
329
+ * @public
330
+ * @async
331
+ * @param {Address} newOwner - The address to transfer ownership to
332
+ * @param {?WriteParams} [params]
333
+ * @returns {Promise<{ hash: `0x${string}`; result: void; }>}
334
+ */
335
+ async transferOwnershipRaw(s, t) {
336
+ const { request: a, result: e } = await O(
337
+ this._config,
338
+ {
339
+ address: this.assertValidAddress(),
340
+ args: [s],
341
+ ...this.optionallyAttachAccount(),
342
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
343
+ ...t
344
+ }
345
+ );
346
+ return { hash: await q(
347
+ this._config,
348
+ a
349
+ ), result: e };
350
+ }
351
+ /**
352
+ * Renounce ownership of the contract
353
+ *
354
+ * @public
355
+ * @async
356
+ * @param {?WriteParams} [params]
357
+ * @returns {Promise<void>}
358
+ */
359
+ async renounceOwnership(s) {
360
+ return await this.awaitResult(this.renounceOwnershipRaw(s));
361
+ }
362
+ /**
363
+ * Renounce ownership of the contract
364
+ *
365
+ * @public
366
+ * @async
367
+ * @param {?WriteParams} [params]
368
+ * @returns {Promise<{ hash: `0x${string}`; result: void; }>}
369
+ */
370
+ async renounceOwnershipRaw(s) {
371
+ const { request: t, result: a } = await V(
372
+ this._config,
373
+ {
374
+ address: this.assertValidAddress(),
375
+ ...this.optionallyAttachAccount(),
376
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
377
+ ...s
378
+ }
379
+ );
380
+ return { hash: await B(
381
+ this._config,
382
+ t
383
+ ), result: a };
384
+ }
385
+ /**
386
+ * Request a two-step ownership handover to the caller
387
+ * The request will automatically expire in 48 hours
388
+ *
389
+ * Note: This is part of a two-step ownership transfer process:
390
+ * 1. New owner calls requestOwnershipHandover()
391
+ * 2. Current owner calls completeOwnershipHandover(newOwner)
392
+ *
393
+ * @public
394
+ * @async
395
+ * @param {?WriteParams} [params]
396
+ * @returns {Promise<void>}
397
+ */
398
+ async requestOwnershipHandover(s) {
399
+ return await this.awaitResult(this.requestOwnershipHandoverRaw(s));
400
+ }
401
+ /**
402
+ * Request a two-step ownership handover to the caller
403
+ * The request will automatically expire in 48 hours
404
+ *
405
+ * @public
406
+ * @async
407
+ * @param {?WriteParams} [params]
408
+ * @returns {Promise<{ hash: `0x${string}`; result: void; }>}
409
+ */
410
+ async requestOwnershipHandoverRaw(s) {
411
+ const { request: t, result: a } = await C(this._config, {
412
+ address: this.assertValidAddress(),
413
+ ...this.optionallyAttachAccount(),
414
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
415
+ ...s
416
+ });
417
+ return { hash: await M(
418
+ this._config,
419
+ t
420
+ ), result: a };
421
+ }
422
+ /**
423
+ * Complete a pending ownership handover to a new owner
424
+ * Must be called by the current owner after the new owner has requested the handover
425
+ *
426
+ * Note: This is part of a two-step ownership transfer process:
427
+ * 1. New owner calls requestOwnershipHandover()
428
+ * 2. Current owner calls completeOwnershipHandover(newOwner)
429
+ *
430
+ * @public
431
+ * @async
432
+ * @param {Address} pendingOwner - The address that requested the ownership handover
433
+ * @param {?WriteParams} [params]
434
+ * @returns {Promise<void>}
435
+ */
436
+ async completeOwnershipHandover(s, t) {
437
+ return await this.awaitResult(
438
+ this.completeOwnershipHandoverRaw(s, t)
439
+ );
440
+ }
441
+ /**
442
+ * Complete a pending ownership handover to a new owner
443
+ * Must be called by the current owner after the new owner has requested the handover
444
+ *
445
+ * @public
446
+ * @async
447
+ * @param {Address} pendingOwner - The address that requested the ownership handover
448
+ * @param {?WriteParams} [params]
449
+ * @returns {Promise<{ hash: `0x${string}`; result: void; }>}
450
+ */
451
+ async completeOwnershipHandoverRaw(s, t) {
452
+ const { request: a, result: e } = await H(this._config, {
307
453
  address: this.assertValidAddress(),
308
454
  args: [s],
309
455
  ...this.optionallyAttachAccount(),
310
456
  // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
311
457
  ...t
312
458
  });
459
+ return { hash: await m(
460
+ this._config,
461
+ a
462
+ ), result: e };
463
+ }
464
+ /**
465
+ * Cancel a pending ownership handover request
466
+ * Must be called by the account that originally requested the handover
467
+ *
468
+ * @public
469
+ * @async
470
+ * @param {?WriteParams} [params]
471
+ * @returns {Promise<void>}
472
+ */
473
+ async cancelOwnershipHandover(s) {
474
+ return await this.awaitResult(this.cancelOwnershipHandoverRaw(s));
475
+ }
476
+ /**
477
+ * Cancel a pending ownership handover request
478
+ * Must be called by the account that originally requested the handover
479
+ *
480
+ * @public
481
+ * @async
482
+ * @param {?WriteParams} [params]
483
+ * @returns {Promise<{ hash: `0x${string}`; result: void; }>}
484
+ */
485
+ async cancelOwnershipHandoverRaw(s) {
486
+ const { request: t, result: a } = await k(this._config, {
487
+ address: this.assertValidAddress(),
488
+ ...this.optionallyAttachAccount(),
489
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
490
+ ...s
491
+ });
492
+ return { hash: await D(
493
+ this._config,
494
+ t
495
+ ), result: a };
496
+ }
497
+ /**
498
+ * Get the expiry timestamp for a pending ownership handover
499
+ * Returns 0 if there is no pending handover request for the given address
500
+ *
501
+ * @public
502
+ * @param {Address} pendingOwner - The address to check for pending handover requests
503
+ * @param {?ReadParams} [params]
504
+ * @returns {Promise<bigint>} - The timestamp when the handover request expires, or 0 if no request exists
505
+ */
506
+ ownershipHandoverExpiresAt(s, t) {
507
+ return E(this._config, {
508
+ address: this.assertValidAddress(),
509
+ args: [s],
510
+ ...this.optionallyAttachAccount(),
511
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
512
+ ...t
513
+ });
514
+ }
515
+ /**
516
+ * Allow the caller to remove their own roles
517
+ * If the caller does not have a role, then it will be a no-op for that role
518
+ *
519
+ * @public
520
+ * @async
521
+ * @param {Roles} roles - Bitmap of roles to renounce
522
+ * @param {?WriteParams} [params]
523
+ * @returns {Promise<void>}
524
+ */
525
+ async renounceRoles(s, t) {
526
+ return await this.awaitResult(this.renounceRolesRaw(s, t));
527
+ }
528
+ /**
529
+ * Allow the caller to remove their own roles
530
+ * If the caller does not have a role, then it will be a no-op for that role
531
+ *
532
+ * @public
533
+ * @async
534
+ * @param {Roles} roles - Bitmap of roles to renounce
535
+ * @param {?WriteParams} [params]
536
+ * @returns {Promise<{ hash: `0x${string}`; result: void; }>}
537
+ */
538
+ async renounceRolesRaw(s, t) {
539
+ const { request: a, result: e } = await x(
540
+ this._config,
541
+ {
542
+ address: this.assertValidAddress(),
543
+ args: [s],
544
+ ...this.optionallyAttachAccount(),
545
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
546
+ ...t
547
+ }
548
+ );
549
+ return { hash: await N(this._config, a), result: e };
313
550
  }
314
551
  }
315
552
  export {
316
- v as DeployableTargetWithRBAC,
317
- o as Roles,
318
- m as rbacAbi
553
+ I as DeployableTargetWithRBAC,
554
+ h as Roles,
555
+ J as rbacAbi
319
556
  };
320
557
  //# sourceMappingURL=DeployableTargetWithRBAC.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DeployableTargetWithRBAC.js","sources":["../../src/Deployable/DeployableTargetWithRBAC.ts"],"sourcesContent":["import {\n rbacAbi,\n readRbacHasAllRoles,\n readRbacHasAnyRole,\n readRbacIsAuthorized,\n readRbacRolesOf,\n simulateRbacGrantManyRoles,\n simulateRbacGrantRoles,\n simulateRbacRevokeManyRoles,\n simulateRbacRevokeRoles,\n simulateRbacSetAuthorized,\n writeRbacGrantManyRoles,\n writeRbacGrantRoles,\n writeRbacRevokeManyRoles,\n writeRbacRevokeRoles,\n writeRbacSetAuthorized,\n} from '@boostxyz/evm';\nimport type { Abi, Address, ContractEventName } from 'viem';\nimport { DeployableTarget } from '../Deployable/DeployableTarget';\nimport type { GenericLog, ReadParams, WriteParams } from '../utils';\nexport { rbacAbi };\n\n/**\n * Enum representing available roles for use with the `RBAC` authorization scheme.\n * `MANAGER` has lowest level of write permissions, for specific implementations, see Budgets and ALlowLists\n * `ADMIN` can additionally manage authorized users on the contract.\n *\n * @export\n * @type {{ readonly MANAGER: 1n; readonly ADMIN_ROLE: 2n; }}\n * @enum {bigint}\n */\nexport enum Roles {\n //@ts-expect-error ts doesn't like bigint enum values\n MANAGER = 1n,\n //@ts-expect-error ts doesn't like bigint enum values\n ADMIN = 2n,\n}\n\n/**\n * A generic `viem.Log` event with support for `Rbac` event types.\n *\n * @export\n * @typedef {RBACLog}\n * @template {ContractEventName<typeof rbacAbi>} [event=ContractEventName<\n * typeof rbacAbi\n * >]\n */\nexport type RBACLog<\n event extends ContractEventName<typeof rbacAbi> = ContractEventName<\n typeof rbacAbi\n >,\n> = GenericLog<typeof rbacAbi, event>;\n\n/**\n * A minimal RBAC implementation that offers MANAGER and ADMIN roles, and\n * Budgets and allowlists support this auth scheme\n *\n * @export\n * @class DeployableTargetWithRBAC\n * @typedef {DeployableTargetWithRBAC}\n * @extends {DeployableTarget<RbacPayload>}\n */\nexport class DeployableTargetWithRBAC<\n Payload,\n ABI extends Abi,\n> extends DeployableTarget<Payload, ABI> {\n /**\n * Set the authorized status of the given accounts\n * The mechanism for managing authorization is left to the implementing contract\n *\n * @public\n * @async\n * @param {Address[]} addresses - The accounts to authorize or deauthorize\n * @param {boolean[]} allowed - The authorization status for the given accounts\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async setAuthorized(\n addresses: Address[],\n allowed: boolean[],\n params?: WriteParams,\n ) {\n return await this.awaitResult(\n this.setAuthorizedRaw(addresses, allowed, params),\n );\n }\n\n /**\n * Set the authorized status of the given accounts\n * The mechanism for managing authorization is left to the implementing contract\n *\n * @public\n * @async\n * @param {Address[]} addresses - The accounts to authorize or deauthorize\n * @param {boolean[]} allowed - The authorization status for the given accounts\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async setAuthorizedRaw(\n addresses: Address[],\n allowed: boolean[],\n params?: WriteParams,\n ) {\n const { request, result } = await simulateRbacSetAuthorized(this._config, {\n address: this.assertValidAddress(),\n args: [addresses, allowed],\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 const hash = await writeRbacSetAuthorized(this._config, request);\n return { hash, result };\n }\n\n /**\n * Grant permissions for a user on the rbac.\n *\n * @example\n * ```ts\n * await rbac.grantRoles('0xfoo', Roles.MANAGER)\n * ```\n * @public\n * @async\n * @param {Address} address\n * @param {Roles} role\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async grantRoles(address: Address, role: Roles, params?: WriteParams) {\n return await this.awaitResult(this.grantRolesRaw(address, role, params));\n }\n\n /**\n * Grant permissions for a user on the rbac.\n *\n * @example\n * ```ts\n * await rbac.grantRoles('0xfoo', Roles.MANAGER)\n * ```\n * @public\n * @async\n * @param {Address} address\n * @param {Roles} role\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async grantRolesRaw(\n address: Address,\n role: Roles,\n params?: WriteParams,\n ) {\n const { request, result } = await simulateRbacGrantRoles(this._config, {\n address: this.assertValidAddress(),\n args: [address, role],\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 const hash = await writeRbacGrantRoles(\n this._config,\n // biome-ignore lint/suspicious/noExplicitAny: negligible low level lack of type intersection\n request as any,\n );\n return { hash, result };\n }\n\n /**\n * Revoke permissions for a user on the rbac.\n *\n * @example\n * ```ts\n * await rbac.revokeRoles('0xfoo', Roles.MANAGER)\n * ```\n * @public\n * @async\n * @param {Address} address\n * @param {Roles} role\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async revokeRoles(\n address: Address,\n role: Roles,\n params?: WriteParams,\n ) {\n return await this.awaitResult(this.revokeRolesRaw(address, role, params));\n }\n\n /**\n * Revoke permissions for a user on the rbac.\n *\n * @example\n * ```ts\n * await rbac.revokeRoles('0xfoo', Roles.MANAGER)\n * ```\n * @public\n * @async\n * @param {Address} address\n * @param {Roles} role\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async revokeRolesRaw(\n address: Address,\n role: Roles,\n params?: WriteParams,\n ) {\n const { request, result } = await simulateRbacRevokeRoles(this._config, {\n address: this.assertValidAddress(),\n args: [address, role],\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 const hash = await writeRbacRevokeRoles(\n this._config,\n // biome-ignore lint/suspicious/noExplicitAny: negligible low level lack of type intersection\n request as any,\n );\n return { hash, result };\n }\n\n /**\n * Grant many accounts permissions on the rbac.\n *\n * @example\n * ```ts\n * await rbac.grantManyRoles(['0xfoo', '0xbar], [Roles.MANAGER, Roles.ADMIN])\n * ```\n * @public\n * @async\n * @param {Address[]} addresses\n * @param {Roles[]} roles\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async grantManyRoles(\n addresses: Address[],\n roles: Roles[],\n params?: WriteParams,\n ) {\n return await this.awaitResult(\n this.grantManyRolesRaw(addresses, roles, params),\n );\n }\n\n /**\n * Grant many accounts permissions on the rbac.\n *\n * @example\n * ```ts\n * await rbac.grantManyRoles(['0xfoo', '0xbar], [Roles.MANAGER, Roles.ADMIN])\n * ```\n * @public\n * @async\n * @param {Address[]} addresses\n * @param {Roles[]} roles\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async grantManyRolesRaw(\n addresses: Address[],\n roles: Roles[],\n params?: WriteParams,\n ) {\n const { request, result } = await simulateRbacGrantManyRoles(this._config, {\n address: this.assertValidAddress(),\n args: [addresses, roles],\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 const hash = await writeRbacGrantManyRoles(\n this._config,\n // biome-ignore lint/suspicious/noExplicitAny: negligible low level lack of type intersection\n request as any,\n );\n return { hash, result };\n }\n\n /**\n * Revoke many accounts' permissions on the rbac.\n *\n * @example\n * ```ts\n * await rbac.revokeManyRoles(['0xfoo', '0xbar], [Roles.MANAGER, Roles.ADMIN])\n * ```\n * @public\n * @async\n * @param {Address[]} addresses\n * @param {Roles[]} roles\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async revokeManyRoles(\n addresses: Address[],\n roles: Roles[],\n params?: WriteParams,\n ) {\n return await this.awaitResult(\n this.revokeManyRolesRaw(addresses, roles, params),\n );\n }\n\n /**\n * Revoke many accounts' permissions on the rbac.\n *\n * @example\n * ```ts\n * await rbac.revokeManyRoles(['0xfoo', '0xbar], [Roles.MANAGER, Roles.ADMIN])\n * ```\n * @public\n * @async\n * @param {Address[]} addresses\n * @param {Roles[]} roles\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async revokeManyRolesRaw(\n addresses: Address[],\n roles: Roles[],\n params?: WriteParams,\n ) {\n const { request, result } = await simulateRbacRevokeManyRoles(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [addresses, roles],\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 writeRbacRevokeManyRoles(\n this._config,\n // biome-ignore lint/suspicious/noExplicitAny: negligible low level lack of type intersection\n request as any,\n );\n return { hash, result };\n }\n\n /**\n * Return an array of the roles assigned to the given account.\n * @example\n * ```ts\n * (await rbac.rolesOf(0xfoo)).includes(Roles.ADMIN)\n * ```\n * @public\n * @param {Address} account\n * @param {?ReadParams} [params]\n * @returns {Promise<Array<Roles>>}\n */\n public async rolesOf(account: Address, params?: ReadParams) {\n const roles = await readRbacRolesOf(this._config, {\n address: this.assertValidAddress(),\n args: [account],\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 return ([Roles.MANAGER, Roles.ADMIN] as unknown as Array<bigint>).filter(\n (role) => (roles & role) === role,\n ) as unknown as Roles[];\n }\n\n /**\n * Returns whether given account has any of the provided roles bitmap.\n *\n * @example\n * ```ts\n * await rbac.hasAnyRole(0xfoo, Roles.ADMIN | Roles.MANAGER)\n * ```\n * @public\n * @param {Address} account\n * @param {Roles} roles\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>}\n */\n public hasAnyRole(account: Address, roles: Roles, params?: ReadParams) {\n return readRbacHasAnyRole(this._config, {\n address: this.assertValidAddress(),\n args: [account, roles],\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\n /**\n * Returns whether given account has all of the provided roles bitmap.\n *\n * @example\n * ```ts\n * await rbac.hasAllRoles(0xfoo, Roles.ADMIN | Roles.MANAGER)\n * ```\n * @public\n * @param {Address} account\n * @param {Roles} roles\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>}\n */\n public hasAllRoles(account: Address, roles: Roles, params?: ReadParams) {\n return readRbacHasAllRoles(this._config, {\n address: this.assertValidAddress(),\n args: [account, roles],\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\n /**\n * Check if the given account is authorized to use the rbac\n *\n * @public\n * @param {Address} account\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>} - True if the account is authorized\n */\n public isAuthorized(account: Address, params?: ReadParams) {\n return readRbacIsAuthorized(this._config, {\n address: this.assertValidAddress(),\n args: [account],\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}\n"],"names":["Roles","DeployableTargetWithRBAC","DeployableTarget","addresses","allowed","params","request","result","simulateRbacSetAuthorized","writeRbacSetAuthorized","address","role","simulateRbacGrantRoles","writeRbacGrantRoles","simulateRbacRevokeRoles","writeRbacRevokeRoles","roles","simulateRbacGrantManyRoles","writeRbacGrantManyRoles","simulateRbacRevokeManyRoles","writeRbacRevokeManyRoles","account","readRbacRolesOf","readRbacHasAnyRole","readRbacHasAllRoles","readRbacIsAuthorized"],"mappings":"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"}
1
+ {"version":3,"file":"DeployableTargetWithRBAC.js","sources":["../../src/Deployable/DeployableTargetWithRBAC.ts"],"sourcesContent":["import {\n rbacAbi,\n readOwnableRolesOwnershipHandoverExpiresAt,\n readRbacHasAllRoles,\n readRbacHasAnyRole,\n readRbacIsAuthorized,\n readRbacRolesOf,\n simulateOwnableRolesCancelOwnershipHandover,\n simulateOwnableRolesCompleteOwnershipHandover,\n simulateOwnableRolesRenounceOwnership,\n simulateOwnableRolesRenounceRoles,\n simulateOwnableRolesRequestOwnershipHandover,\n simulateOwnableRolesTransferOwnership,\n simulateRbacGrantManyRoles,\n simulateRbacGrantRoles,\n simulateRbacRevokeManyRoles,\n simulateRbacRevokeRoles,\n simulateRbacSetAuthorized,\n writeOwnableRolesCancelOwnershipHandover,\n writeOwnableRolesCompleteOwnershipHandover,\n writeOwnableRolesRenounceOwnership,\n writeOwnableRolesRenounceRoles,\n writeOwnableRolesRequestOwnershipHandover,\n writeOwnableRolesTransferOwnership,\n writeRbacGrantManyRoles,\n writeRbacGrantRoles,\n writeRbacRevokeManyRoles,\n writeRbacRevokeRoles,\n writeRbacSetAuthorized,\n} from '@boostxyz/evm';\nimport type { Abi, Address, ContractEventName } from 'viem';\nimport { DeployableTarget } from '../Deployable/DeployableTarget';\nimport type { GenericLog, ReadParams, WriteParams } from '../utils';\nexport { rbacAbi };\n\n/**\n * Enum representing available roles for use with the `RBAC` authorization scheme.\n * `MANAGER` has lowest level of write permissions, for specific implementations, see Budgets and ALlowLists\n * `ADMIN` can additionally manage authorized users on the contract.\n *\n * @export\n * @type {{ readonly MANAGER: 1n; readonly ADMIN_ROLE: 2n; }}\n * @enum {bigint}\n */\nexport enum Roles {\n //@ts-expect-error ts doesn't like bigint enum values\n MANAGER = 1n,\n //@ts-expect-error ts doesn't like bigint enum values\n ADMIN = 2n,\n}\n\n/**\n * A generic `viem.Log` event with support for `Rbac` event types.\n *\n * @export\n * @typedef {RBACLog}\n * @template {ContractEventName<typeof rbacAbi>} [event=ContractEventName<\n * typeof rbacAbi\n * >]\n */\nexport type RBACLog<\n event extends ContractEventName<typeof rbacAbi> = ContractEventName<\n typeof rbacAbi\n >,\n> = GenericLog<typeof rbacAbi, event>;\n\n/**\n * A minimal RBAC implementation that offers MANAGER and ADMIN roles, and\n * Budgets and allowlists support this auth scheme\n *\n * @export\n * @class DeployableTargetWithRBAC\n * @typedef {DeployableTargetWithRBAC}\n * @extends {DeployableTarget<RbacPayload>}\n */\nexport class DeployableTargetWithRBAC<\n Payload,\n ABI extends Abi,\n> extends DeployableTarget<Payload, ABI> {\n /**\n * Set the authorized status of the given accounts\n * The mechanism for managing authorization is left to the implementing contract\n *\n * @public\n * @async\n * @param {Address[]} addresses - The accounts to authorize or deauthorize\n * @param {boolean[]} allowed - The authorization status for the given accounts\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async setAuthorized(\n addresses: Address[],\n allowed: boolean[],\n params?: WriteParams,\n ) {\n return await this.awaitResult(\n this.setAuthorizedRaw(addresses, allowed, params),\n );\n }\n\n /**\n * Set the authorized status of the given accounts\n * The mechanism for managing authorization is left to the implementing contract\n *\n * @public\n * @async\n * @param {Address[]} addresses - The accounts to authorize or deauthorize\n * @param {boolean[]} allowed - The authorization status for the given accounts\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async setAuthorizedRaw(\n addresses: Address[],\n allowed: boolean[],\n params?: WriteParams,\n ) {\n const { request, result } = await simulateRbacSetAuthorized(this._config, {\n address: this.assertValidAddress(),\n args: [addresses, allowed],\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 const hash = await writeRbacSetAuthorized(this._config, request);\n return { hash, result };\n }\n\n /**\n * Grant permissions for a user on the rbac.\n *\n * @example\n * ```ts\n * await rbac.grantRoles('0xfoo', Roles.MANAGER)\n * ```\n * @public\n * @async\n * @param {Address} address\n * @param {Roles} role\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async grantRoles(address: Address, role: Roles, params?: WriteParams) {\n return await this.awaitResult(this.grantRolesRaw(address, role, params));\n }\n\n /**\n * Grant permissions for a user on the rbac.\n *\n * @example\n * ```ts\n * await rbac.grantRoles('0xfoo', Roles.MANAGER)\n * ```\n * @public\n * @async\n * @param {Address} address\n * @param {Roles} role\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async grantRolesRaw(\n address: Address,\n role: Roles,\n params?: WriteParams,\n ) {\n const { request, result } = await simulateRbacGrantRoles(this._config, {\n address: this.assertValidAddress(),\n args: [address, role],\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 const hash = await writeRbacGrantRoles(\n this._config,\n // biome-ignore lint/suspicious/noExplicitAny: negligible low level lack of type intersection\n request as any,\n );\n return { hash, result };\n }\n\n /**\n * Revoke permissions for a user on the rbac.\n *\n * @example\n * ```ts\n * await rbac.revokeRoles('0xfoo', Roles.MANAGER)\n * ```\n * @public\n * @async\n * @param {Address} address\n * @param {Roles} role\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async revokeRoles(\n address: Address,\n role: Roles,\n params?: WriteParams,\n ) {\n return await this.awaitResult(this.revokeRolesRaw(address, role, params));\n }\n\n /**\n * Revoke permissions for a user on the rbac.\n *\n * @example\n * ```ts\n * await rbac.revokeRoles('0xfoo', Roles.MANAGER)\n * ```\n * @public\n * @async\n * @param {Address} address\n * @param {Roles} role\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async revokeRolesRaw(\n address: Address,\n role: Roles,\n params?: WriteParams,\n ) {\n const { request, result } = await simulateRbacRevokeRoles(this._config, {\n address: this.assertValidAddress(),\n args: [address, role],\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 const hash = await writeRbacRevokeRoles(\n this._config,\n // biome-ignore lint/suspicious/noExplicitAny: negligible low level lack of type intersection\n request as any,\n );\n return { hash, result };\n }\n\n /**\n * Grant many accounts permissions on the rbac.\n *\n * @example\n * ```ts\n * await rbac.grantManyRoles(['0xfoo', '0xbar], [Roles.MANAGER, Roles.ADMIN])\n * ```\n * @public\n * @async\n * @param {Address[]} addresses\n * @param {Roles[]} roles\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async grantManyRoles(\n addresses: Address[],\n roles: Roles[],\n params?: WriteParams,\n ) {\n return await this.awaitResult(\n this.grantManyRolesRaw(addresses, roles, params),\n );\n }\n\n /**\n * Grant many accounts permissions on the rbac.\n *\n * @example\n * ```ts\n * await rbac.grantManyRoles(['0xfoo', '0xbar], [Roles.MANAGER, Roles.ADMIN])\n * ```\n * @public\n * @async\n * @param {Address[]} addresses\n * @param {Roles[]} roles\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async grantManyRolesRaw(\n addresses: Address[],\n roles: Roles[],\n params?: WriteParams,\n ) {\n const { request, result } = await simulateRbacGrantManyRoles(this._config, {\n address: this.assertValidAddress(),\n args: [addresses, roles],\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 const hash = await writeRbacGrantManyRoles(\n this._config,\n // biome-ignore lint/suspicious/noExplicitAny: negligible low level lack of type intersection\n request as any,\n );\n return { hash, result };\n }\n\n /**\n * Revoke many accounts' permissions on the rbac.\n *\n * @example\n * ```ts\n * await rbac.revokeManyRoles(['0xfoo', '0xbar], [Roles.MANAGER, Roles.ADMIN])\n * ```\n * @public\n * @async\n * @param {Address[]} addresses\n * @param {Roles[]} roles\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async revokeManyRoles(\n addresses: Address[],\n roles: Roles[],\n params?: WriteParams,\n ) {\n return await this.awaitResult(\n this.revokeManyRolesRaw(addresses, roles, params),\n );\n }\n\n /**\n * Revoke many accounts' permissions on the rbac.\n *\n * @example\n * ```ts\n * await rbac.revokeManyRoles(['0xfoo', '0xbar], [Roles.MANAGER, Roles.ADMIN])\n * ```\n * @public\n * @async\n * @param {Address[]} addresses\n * @param {Roles[]} roles\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async revokeManyRolesRaw(\n addresses: Address[],\n roles: Roles[],\n params?: WriteParams,\n ) {\n const { request, result } = await simulateRbacRevokeManyRoles(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [addresses, roles],\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 writeRbacRevokeManyRoles(\n this._config,\n // biome-ignore lint/suspicious/noExplicitAny: negligible low level lack of type intersection\n request as any,\n );\n return { hash, result };\n }\n\n /**\n * Return an array of the roles assigned to the given account.\n * @example\n * ```ts\n * (await rbac.rolesOf(0xfoo)).includes(Roles.ADMIN)\n * ```\n * @public\n * @param {Address} account\n * @param {?ReadParams} [params]\n * @returns {Promise<Array<Roles>>}\n */\n public async rolesOf(account: Address, params?: ReadParams) {\n const roles = await readRbacRolesOf(this._config, {\n address: this.assertValidAddress(),\n args: [account],\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 return ([Roles.MANAGER, Roles.ADMIN] as unknown as Array<bigint>).filter(\n (role) => (roles & role) === role,\n ) as unknown as Roles[];\n }\n\n /**\n * Returns whether given account has any of the provided roles bitmap.\n *\n * @example\n * ```ts\n * await rbac.hasAnyRole(0xfoo, Roles.ADMIN | Roles.MANAGER)\n * ```\n * @public\n * @param {Address} account\n * @param {Roles} roles\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>}\n */\n public hasAnyRole(account: Address, roles: Roles, params?: ReadParams) {\n return readRbacHasAnyRole(this._config, {\n address: this.assertValidAddress(),\n args: [account, roles],\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\n /**\n * Returns whether given account has all of the provided roles bitmap.\n *\n * @example\n * ```ts\n * await rbac.hasAllRoles(0xfoo, Roles.ADMIN | Roles.MANAGER)\n * ```\n * @public\n * @param {Address} account\n * @param {Roles} roles\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>}\n */\n public hasAllRoles(account: Address, roles: Roles, params?: ReadParams) {\n return readRbacHasAllRoles(this._config, {\n address: this.assertValidAddress(),\n args: [account, roles],\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\n /**\n * Check if the given account is authorized to use the rbac\n *\n * @public\n * @param {Address} account\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>} - True if the account is authorized\n */\n public isAuthorized(account: Address, params?: ReadParams) {\n return readRbacIsAuthorized(this._config, {\n address: this.assertValidAddress(),\n args: [account],\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\n /**\n * Transfer ownership of the contract to a new address\n *\n * @public\n * @async\n * @param {Address} newOwner - The address to transfer ownership to\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async transferOwnership(newOwner: Address, params?: WriteParams) {\n return await this.awaitResult(this.transferOwnershipRaw(newOwner, params));\n }\n\n /**\n * Transfer ownership of the contract to a new address\n *\n * @public\n * @async\n * @param {Address} newOwner - The address to transfer ownership to\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async transferOwnershipRaw(newOwner: Address, params?: WriteParams) {\n const { request, result } = await simulateOwnableRolesTransferOwnership(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [newOwner],\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 writeOwnableRolesTransferOwnership(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Renounce ownership of the contract\n *\n * @public\n * @async\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async renounceOwnership(params?: WriteParams) {\n return await this.awaitResult(this.renounceOwnershipRaw(params));\n }\n\n /**\n * Renounce ownership of the contract\n *\n * @public\n * @async\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async renounceOwnershipRaw(params?: WriteParams) {\n const { request, result } = await simulateOwnableRolesRenounceOwnership(\n this._config,\n {\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 },\n );\n const hash = await writeOwnableRolesRenounceOwnership(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Request a two-step ownership handover to the caller\n * The request will automatically expire in 48 hours\n *\n * Note: This is part of a two-step ownership transfer process:\n * 1. New owner calls requestOwnershipHandover()\n * 2. Current owner calls completeOwnershipHandover(newOwner)\n *\n * @public\n * @async\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async requestOwnershipHandover(params?: WriteParams) {\n return await this.awaitResult(this.requestOwnershipHandoverRaw(params));\n }\n\n /**\n * Request a two-step ownership handover to the caller\n * The request will automatically expire in 48 hours\n *\n * @public\n * @async\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async requestOwnershipHandoverRaw(params?: WriteParams) {\n const { request, result } =\n await simulateOwnableRolesRequestOwnershipHandover(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 });\n const hash = await writeOwnableRolesRequestOwnershipHandover(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Complete a pending ownership handover to a new owner\n * Must be called by the current owner after the new owner has requested the handover\n *\n * Note: This is part of a two-step ownership transfer process:\n * 1. New owner calls requestOwnershipHandover()\n * 2. Current owner calls completeOwnershipHandover(newOwner)\n *\n * @public\n * @async\n * @param {Address} pendingOwner - The address that requested the ownership handover\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async completeOwnershipHandover(\n pendingOwner: Address,\n params?: WriteParams,\n ) {\n return await this.awaitResult(\n this.completeOwnershipHandoverRaw(pendingOwner, params),\n );\n }\n\n /**\n * Complete a pending ownership handover to a new owner\n * Must be called by the current owner after the new owner has requested the handover\n *\n * @public\n * @async\n * @param {Address} pendingOwner - The address that requested the ownership handover\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async completeOwnershipHandoverRaw(\n pendingOwner: Address,\n params?: WriteParams,\n ) {\n const { request, result } =\n await simulateOwnableRolesCompleteOwnershipHandover(this._config, {\n address: this.assertValidAddress(),\n args: [pendingOwner],\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 const hash = await writeOwnableRolesCompleteOwnershipHandover(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Cancel a pending ownership handover request\n * Must be called by the account that originally requested the handover\n *\n * @public\n * @async\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async cancelOwnershipHandover(params?: WriteParams) {\n return await this.awaitResult(this.cancelOwnershipHandoverRaw(params));\n }\n\n /**\n * Cancel a pending ownership handover request\n * Must be called by the account that originally requested the handover\n *\n * @public\n * @async\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async cancelOwnershipHandoverRaw(params?: WriteParams) {\n const { request, result } =\n await simulateOwnableRolesCancelOwnershipHandover(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 });\n const hash = await writeOwnableRolesCancelOwnershipHandover(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Get the expiry timestamp for a pending ownership handover\n * Returns 0 if there is no pending handover request for the given address\n *\n * @public\n * @param {Address} pendingOwner - The address to check for pending handover requests\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>} - The timestamp when the handover request expires, or 0 if no request exists\n */\n public ownershipHandoverExpiresAt(\n pendingOwner: Address,\n params?: ReadParams,\n ): Promise<bigint> {\n return readOwnableRolesOwnershipHandoverExpiresAt(this._config, {\n address: this.assertValidAddress(),\n args: [pendingOwner],\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\n /**\n * Allow the caller to remove their own roles\n * If the caller does not have a role, then it will be a no-op for that role\n *\n * @public\n * @async\n * @param {Roles} roles - Bitmap of roles to renounce\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async renounceRoles(roles: Roles, params?: WriteParams) {\n return await this.awaitResult(this.renounceRolesRaw(roles, params));\n }\n\n /**\n * Allow the caller to remove their own roles\n * If the caller does not have a role, then it will be a no-op for that role\n *\n * @public\n * @async\n * @param {Roles} roles - Bitmap of roles to renounce\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async renounceRolesRaw(roles: Roles, params?: WriteParams) {\n const { request, result } = await simulateOwnableRolesRenounceRoles(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [roles],\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 writeOwnableRolesRenounceRoles(this._config, request);\n return { hash, result };\n }\n}\n"],"names":["Roles","DeployableTargetWithRBAC","DeployableTarget","addresses","allowed","params","request","result","simulateRbacSetAuthorized","writeRbacSetAuthorized","address","role","simulateRbacGrantRoles","writeRbacGrantRoles","simulateRbacRevokeRoles","writeRbacRevokeRoles","roles","simulateRbacGrantManyRoles","writeRbacGrantManyRoles","simulateRbacRevokeManyRoles","writeRbacRevokeManyRoles","account","readRbacRolesOf","readRbacHasAnyRole","readRbacHasAllRoles","readRbacIsAuthorized","newOwner","simulateOwnableRolesTransferOwnership","writeOwnableRolesTransferOwnership","simulateOwnableRolesRenounceOwnership","writeOwnableRolesRenounceOwnership","simulateOwnableRolesRequestOwnershipHandover","writeOwnableRolesRequestOwnershipHandover","pendingOwner","simulateOwnableRolesCompleteOwnershipHandover","writeOwnableRolesCompleteOwnershipHandover","simulateOwnableRolesCancelOwnershipHandover","writeOwnableRolesCancelOwnershipHandover","readOwnableRolesOwnershipHandoverExpiresAt","simulateOwnableRolesRenounceRoles","writeOwnableRolesRenounceRoles"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../generated-pNKCp_Ez.cjs"),i=require("viem"),l=require("../deployments-BDumesUK.cjs");require("@wagmi/core");const o=require("../AllowLists/SimpleAllowList.cjs");require("../SimpleDenyList-CA24drhL.cjs");const u=require("../Deployable/DeployableTarget.cjs"),t=require("../claiming.cjs"),h=require("../utils.cjs"),g="0x6080604052348015600e575f80fd5b50601b601f60201b60201c565b60b0565b5f602c608760201b60201c565b90508054600181161560455763f92ee8a95f526004601cfd5b8160c01c808260011c146082578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b61180b806100bd5f395ff3fe608060405260043610610129575f3560e01c8063715018a6116100aa578063c884ef831161006e578063c884ef831461038a578063db09da12146103c6578063dcc59b6f14610402578063f04e283e1461042c578063f2fde38b14610448578063fee81cf41461046457610129565b8063715018a6146102c657806387b9d25c146102d05780638da5cb5b146102fa578063a4d66daf14610324578063bb1757cf1461034e57610129565b806338d52e0f116100f157806338d52e0f146101f1578063439fab911461021b578063474f5a44146102435780634e7165a21461028057806354d1f13d146102bc57610129565b806301ffc9a71461012d57806307621eca14610169578063228cb7331461019357806325692962146101bd57806328d6183b146101c7575b5f80fd5b348015610138575f80fd5b50610153600480360381019061014e9190610ffc565b6104a0565b6040516101609190611041565b60405180910390f35b348015610174575f80fd5b5061017d610519565b60405161018a9190611072565b60405180910390f35b34801561019e575f80fd5b506101a7610521565b6040516101b49190611072565b60405180910390f35b6101c5610526565b005b3480156101d2575f80fd5b506101db610577565b6040516101e8919061109a565b60405180910390f35b3480156101fc575f80fd5b5061020561059e565b60405161021291906110f2565b60405180910390f35b348015610226575f80fd5b50610241600480360381019061023c919061116c565b6105b9565b005b34801561024e575f80fd5b506102696004803603810190610264919061116c565b610699565b6040516102779291906111b7565b60405180910390f35b34801561028b575f80fd5b506102a660048036038101906102a1919061116c565b6106cd565b6040516102b3919061124e565b60405180910390f35b6102c4610724565b005b6102ce61075d565b005b3480156102db575f80fd5b506102e4610770565b6040516102f191906112c9565b60405180910390f35b348015610305575f80fd5b5061030e610795565b60405161031b91906110f2565b60405180910390f35b34801561032f575f80fd5b506103386107bd565b6040516103459190611072565b60405180910390f35b348015610359575f80fd5b50610374600480360381019061036f919061130c565b6107c3565b6040516103819190611041565b60405180910390f35b348015610395575f80fd5b506103b060048036038101906103ab9190611369565b610969565b6040516103bd9190611041565b60405180910390f35b3480156103d1575f80fd5b506103ec60048036038101906103e7919061130c565b610986565b6040516103f99190611041565b60405180910390f35b34801561040d575f80fd5b50610416610a8c565b6040516104239190611072565b60405180910390f35b61044660048036038101906104419190611369565b610a92565b005b610462600480360381019061045d9190611369565b610ad0565b005b34801561046f575f80fd5b5061048a60048036038101906104859190611369565b610af9565b6040516104979190611072565b60405180910390f35b5f7fc2c281ec000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610512575061051182610b12565b5b9050919050565b5f8054905090565b5f5481565b5f61052f610b8b565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7fc2c281ec00000000000000000000000000000000000000000000000000000000905090565b5f73deaddeaddeaddeaddeaddeaddeaddeaddeaddead905090565b5f6105c2610b95565b905080546003825580156105f45760018160011c14303b106105eb5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f838381019061060591906114c2565b905061061033610bbe565b805f015160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060200151600281905550508015610694576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f806040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60605f67ffffffffffffffff8111156106e9576106e8611398565b5b6040519080825280601f01601f19166020018201604052801561071b5781602001600182028036833780820191505090505b50905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610765610c94565b61076e5f610ccb565b565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60025481565b5f6107cc610c94565b60025460045f8154809291906107e19061151a565b91905055101580610838575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561086f576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f806108cf86610d91565b9150915060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633abb060483836040518363ffffffff1660e01b815260040161092f9291906116cf565b5f604051808303815f87803b158015610946575f80fd5b505af1158015610958573d5f803e3d5ffd5b505050506001925050509392505050565b6003602052805f5260405f205f915054906101000a900460ff1681565b5f6002546004541080156109e1575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015610a83575060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e3f756de856040518263ffffffff1660e01b8152600401610a429190611727565b602060405180830381865afa158015610a5d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a81919061177d565b155b90509392505050565b60045481565b610a9a610c94565b63389a75e1600c52805f526020600c208054421115610ac057636f5e88185f526004601cfd5b5f815550610acd81610ccb565b50565b610ad8610c94565b8060601b610aed57637448fbae5f526004601cfd5b610af681610ccb565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fa9216705000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b845750610b8382610eb0565b5b9050919050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610bc6610f29565b15610c3e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610c0057630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610c91565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610cc9576382b429005f526004601cfd5b565b610cd3610f29565b15610d38577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610d8e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b6060805f600167ffffffffffffffff811115610db057610daf611398565b5b604051908082528060200260200182016040528015610dde5781602001602082028036833780820191505090505b5090505f600167ffffffffffffffff811115610dfd57610dfc611398565b5b604051908082528060200260200182016040528015610e2b5781602001602082028036833780820191505090505b50905084825f81518110610e4257610e416117a8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506001815f81518110610e9157610e906117a8565b5b6020026020010190151590811515815250508181935093505050915091565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610f225750610f2182610f2d565b5b9050919050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610fdb81610fa7565b8114610fe5575f80fd5b50565b5f81359050610ff681610fd2565b92915050565b5f6020828403121561101157611010610f9f565b5b5f61101e84828501610fe8565b91505092915050565b5f8115159050919050565b61103b81611027565b82525050565b5f6020820190506110545f830184611032565b92915050565b5f819050919050565b61106c8161105a565b82525050565b5f6020820190506110855f830184611063565b92915050565b61109481610fa7565b82525050565b5f6020820190506110ad5f83018461108b565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6110dc826110b3565b9050919050565b6110ec816110d2565b82525050565b5f6020820190506111055f8301846110e3565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261112c5761112b61110b565b5b8235905067ffffffffffffffff8111156111495761114861110f565b5b60208301915083600182028301111561116557611164611113565b5b9250929050565b5f806020838503121561118257611181610f9f565b5b5f83013567ffffffffffffffff81111561119f5761119e610fa3565b5b6111ab85828601611117565b92509250509250929050565b5f6040820190506111ca5f830185611063565b6111d760208301846110e3565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611220826111de565b61122a81856111e8565b935061123a8185602086016111f8565b61124381611206565b840191505092915050565b5f6020820190508181035f8301526112668184611216565b905092915050565b5f819050919050565b5f61129161128c611287846110b3565b61126e565b6110b3565b9050919050565b5f6112a282611277565b9050919050565b5f6112b382611298565b9050919050565b6112c3816112a9565b82525050565b5f6020820190506112dc5f8301846112ba565b92915050565b6112eb816110d2565b81146112f5575f80fd5b50565b5f81359050611306816112e2565b92915050565b5f805f6040848603121561132357611322610f9f565b5b5f611330868287016112f8565b935050602084013567ffffffffffffffff81111561135157611350610fa3565b5b61135d86828701611117565b92509250509250925092565b5f6020828403121561137e5761137d610f9f565b5b5f61138b848285016112f8565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6113ce82611206565b810181811067ffffffffffffffff821117156113ed576113ec611398565b5b80604052505050565b5f6113ff610f96565b905061140b82826113c5565b919050565b5f61141a826110d2565b9050919050565b61142a81611410565b8114611434575f80fd5b50565b5f8135905061144581611421565b92915050565b6114548161105a565b811461145e575f80fd5b50565b5f8135905061146f8161144b565b92915050565b5f6040828403121561148a57611489611394565b5b61149460406113f6565b90505f6114a384828501611437565b5f8301525060206114b684828501611461565b60208301525092915050565b5f604082840312156114d7576114d6610f9f565b5b5f6114e484828501611475565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6115248261105a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611556576115556114ed565b5b600182019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611593816110d2565b82525050565b5f6115a4838361158a565b60208301905092915050565b5f602082019050919050565b5f6115c682611561565b6115d0818561156b565b93506115db8361157b565b805f5b8381101561160b5781516115f28882611599565b97506115fd836115b0565b9250506001810190506115de565b5085935050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61164a81611027565b82525050565b5f61165b8383611641565b60208301905092915050565b5f602082019050919050565b5f61167d82611618565b6116878185611622565b935061169283611632565b805f5b838110156116c25781516116a98882611650565b97506116b483611667565b925050600181019050611695565b5085935050505092915050565b5f6040820190508181035f8301526116e781856115bc565b905081810360208301526116fb8184611673565b90509392505050565b50565b5f6117125f836111e8565b915061171d82611704565b5f82019050919050565b5f60408201905061173a5f8301846110e3565b818103602083015261174b81611707565b905092915050565b61175c81611027565b8114611766575f80fd5b50565b5f8151905061177781611753565b92915050565b5f6020828403121561179257611791610f9f565b5b5f61179f84828501611769565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea2646970667358221220935f4f4158c09791d7426626cfe654f31510f1ebb6755c8cb47532588b8661bf64736f6c634300081a0033",d=class d extends u.DeployableTarget{constructor(){super(...arguments),this.abi=a.z}async owner(f){return await a.Jb(this._config,{address:this.assertValidAddress(),args:[],...f})}async claims(f){return await a.Ub(this._config,{address:this.assertValidAddress(),args:[],...f})}async reward(f){return await a.Yb(this._config,{address:this.assertValidAddress(),args:[],...f})}async claimed(f,b){return await a.Gb(this._config,{address:this.assertValidAddress(),args:[f],...b})}async allowList(f){const b=await a.qb(this._config,{address:this.assertValidAddress(),...f});return new o.SimpleAllowList({config:this._config,account:this._account},b)}async limit(f){return await a.Qb(this._config,{address:this.assertValidAddress(),...f})}async claim(f,b){return await this.awaitResult(this.claimRaw(f,b))}async claimRaw(f,b){const{request:e,result:c}=await a.df(this._config,{address:this.assertValidAddress(),args:[t.prepareClaimPayload(f)],...this.optionallyAttachAccount(),...b});return{hash:await a.af(this._config,e),result:c}}async isClaimable(f,b){return await a.$b(this._config,{address:this.assertValidAddress(),args:[t.prepareClaimPayload(f)],...b})}async canBeClaimed(f){return await this.getRemainingClaimPotential(f)>0n}async getRemainingClaimPotential(f){const[b,e]=await Promise.all([this.claims(f),this.limit(f)]);return e-b}buildParameters(f,b){const[e,c]=this.validateDeploymentConfig(f,b);return{abi:a.z,bytecode:g,args:[r(e)],...this.optionallyAttachAccount(c.account)}}buildClaimData(){return i.zeroHash}};d.bases={31337:void 0,...l.AllowListIncentive},d.registryType=h.RegistryType.INCENTIVE;let s=d;const r=({allowList:n,limit:f})=>i.encodeAbiParameters([{type:"address",name:"allowList"},{type:"uint256",name:"limit"}],[n,f]);exports.allowListIncentiveAbi=a.z;exports.AllowListIncentive=s;exports.prepareAllowListIncentivePayload=r;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../generated-CgBgbMNe.cjs"),t=require("viem"),n=require("../deployments-BucJ-gwk.cjs");require("@wagmi/core");const l=require("../AllowLists/SimpleAllowList.cjs");require("../SimpleDenyList-DrQrJ14i.cjs");const o=require("../Deployable/DeployableTarget.cjs"),u=require("../claiming.cjs"),h=require("../utils.cjs"),g="0x6080604052348015600e575f80fd5b50601b601f60201b60201c565b60b0565b5f602c608760201b60201c565b90508054600181161560455763f92ee8a95f526004601cfd5b8160c01c808260011c146082578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b61180b806100bd5f395ff3fe608060405260043610610129575f3560e01c8063715018a6116100aa578063c884ef831161006e578063c884ef831461038a578063db09da12146103c6578063dcc59b6f14610402578063f04e283e1461042c578063f2fde38b14610448578063fee81cf41461046457610129565b8063715018a6146102c657806387b9d25c146102d05780638da5cb5b146102fa578063a4d66daf14610324578063bb1757cf1461034e57610129565b806338d52e0f116100f157806338d52e0f146101f1578063439fab911461021b578063474f5a44146102435780634e7165a21461028057806354d1f13d146102bc57610129565b806301ffc9a71461012d57806307621eca14610169578063228cb7331461019357806325692962146101bd57806328d6183b146101c7575b5f80fd5b348015610138575f80fd5b50610153600480360381019061014e9190610ffc565b6104a0565b6040516101609190611041565b60405180910390f35b348015610174575f80fd5b5061017d610519565b60405161018a9190611072565b60405180910390f35b34801561019e575f80fd5b506101a7610521565b6040516101b49190611072565b60405180910390f35b6101c5610526565b005b3480156101d2575f80fd5b506101db610577565b6040516101e8919061109a565b60405180910390f35b3480156101fc575f80fd5b5061020561059e565b60405161021291906110f2565b60405180910390f35b348015610226575f80fd5b50610241600480360381019061023c919061116c565b6105b9565b005b34801561024e575f80fd5b506102696004803603810190610264919061116c565b610699565b6040516102779291906111b7565b60405180910390f35b34801561028b575f80fd5b506102a660048036038101906102a1919061116c565b6106cd565b6040516102b3919061124e565b60405180910390f35b6102c4610724565b005b6102ce61075d565b005b3480156102db575f80fd5b506102e4610770565b6040516102f191906112c9565b60405180910390f35b348015610305575f80fd5b5061030e610795565b60405161031b91906110f2565b60405180910390f35b34801561032f575f80fd5b506103386107bd565b6040516103459190611072565b60405180910390f35b348015610359575f80fd5b50610374600480360381019061036f919061130c565b6107c3565b6040516103819190611041565b60405180910390f35b348015610395575f80fd5b506103b060048036038101906103ab9190611369565b610969565b6040516103bd9190611041565b60405180910390f35b3480156103d1575f80fd5b506103ec60048036038101906103e7919061130c565b610986565b6040516103f99190611041565b60405180910390f35b34801561040d575f80fd5b50610416610a8c565b6040516104239190611072565b60405180910390f35b61044660048036038101906104419190611369565b610a92565b005b610462600480360381019061045d9190611369565b610ad0565b005b34801561046f575f80fd5b5061048a60048036038101906104859190611369565b610af9565b6040516104979190611072565b60405180910390f35b5f7fc2c281ec000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610512575061051182610b12565b5b9050919050565b5f8054905090565b5f5481565b5f61052f610b8b565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7fc2c281ec00000000000000000000000000000000000000000000000000000000905090565b5f73deaddeaddeaddeaddeaddeaddeaddeaddeaddead905090565b5f6105c2610b95565b905080546003825580156105f45760018160011c14303b106105eb5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f838381019061060591906114c2565b905061061033610bbe565b805f015160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060200151600281905550508015610694576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f806040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60605f67ffffffffffffffff8111156106e9576106e8611398565b5b6040519080825280601f01601f19166020018201604052801561071b5781602001600182028036833780820191505090505b50905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610765610c94565b61076e5f610ccb565b565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60025481565b5f6107cc610c94565b60025460045f8154809291906107e19061151a565b91905055101580610838575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561086f576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f806108cf86610d91565b9150915060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633abb060483836040518363ffffffff1660e01b815260040161092f9291906116cf565b5f604051808303815f87803b158015610946575f80fd5b505af1158015610958573d5f803e3d5ffd5b505050506001925050509392505050565b6003602052805f5260405f205f915054906101000a900460ff1681565b5f6002546004541080156109e1575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015610a83575060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e3f756de856040518263ffffffff1660e01b8152600401610a429190611727565b602060405180830381865afa158015610a5d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a81919061177d565b155b90509392505050565b60045481565b610a9a610c94565b63389a75e1600c52805f526020600c208054421115610ac057636f5e88185f526004601cfd5b5f815550610acd81610ccb565b50565b610ad8610c94565b8060601b610aed57637448fbae5f526004601cfd5b610af681610ccb565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fa9216705000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b845750610b8382610eb0565b5b9050919050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610bc6610f29565b15610c3e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610c0057630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610c91565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610cc9576382b429005f526004601cfd5b565b610cd3610f29565b15610d38577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610d8e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b6060805f600167ffffffffffffffff811115610db057610daf611398565b5b604051908082528060200260200182016040528015610dde5781602001602082028036833780820191505090505b5090505f600167ffffffffffffffff811115610dfd57610dfc611398565b5b604051908082528060200260200182016040528015610e2b5781602001602082028036833780820191505090505b50905084825f81518110610e4257610e416117a8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506001815f81518110610e9157610e906117a8565b5b6020026020010190151590811515815250508181935093505050915091565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610f225750610f2182610f2d565b5b9050919050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610fdb81610fa7565b8114610fe5575f80fd5b50565b5f81359050610ff681610fd2565b92915050565b5f6020828403121561101157611010610f9f565b5b5f61101e84828501610fe8565b91505092915050565b5f8115159050919050565b61103b81611027565b82525050565b5f6020820190506110545f830184611032565b92915050565b5f819050919050565b61106c8161105a565b82525050565b5f6020820190506110855f830184611063565b92915050565b61109481610fa7565b82525050565b5f6020820190506110ad5f83018461108b565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6110dc826110b3565b9050919050565b6110ec816110d2565b82525050565b5f6020820190506111055f8301846110e3565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261112c5761112b61110b565b5b8235905067ffffffffffffffff8111156111495761114861110f565b5b60208301915083600182028301111561116557611164611113565b5b9250929050565b5f806020838503121561118257611181610f9f565b5b5f83013567ffffffffffffffff81111561119f5761119e610fa3565b5b6111ab85828601611117565b92509250509250929050565b5f6040820190506111ca5f830185611063565b6111d760208301846110e3565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611220826111de565b61122a81856111e8565b935061123a8185602086016111f8565b61124381611206565b840191505092915050565b5f6020820190508181035f8301526112668184611216565b905092915050565b5f819050919050565b5f61129161128c611287846110b3565b61126e565b6110b3565b9050919050565b5f6112a282611277565b9050919050565b5f6112b382611298565b9050919050565b6112c3816112a9565b82525050565b5f6020820190506112dc5f8301846112ba565b92915050565b6112eb816110d2565b81146112f5575f80fd5b50565b5f81359050611306816112e2565b92915050565b5f805f6040848603121561132357611322610f9f565b5b5f611330868287016112f8565b935050602084013567ffffffffffffffff81111561135157611350610fa3565b5b61135d86828701611117565b92509250509250925092565b5f6020828403121561137e5761137d610f9f565b5b5f61138b848285016112f8565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6113ce82611206565b810181811067ffffffffffffffff821117156113ed576113ec611398565b5b80604052505050565b5f6113ff610f96565b905061140b82826113c5565b919050565b5f61141a826110d2565b9050919050565b61142a81611410565b8114611434575f80fd5b50565b5f8135905061144581611421565b92915050565b6114548161105a565b811461145e575f80fd5b50565b5f8135905061146f8161144b565b92915050565b5f6040828403121561148a57611489611394565b5b61149460406113f6565b90505f6114a384828501611437565b5f8301525060206114b684828501611461565b60208301525092915050565b5f604082840312156114d7576114d6610f9f565b5b5f6114e484828501611475565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6115248261105a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611556576115556114ed565b5b600182019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611593816110d2565b82525050565b5f6115a4838361158a565b60208301905092915050565b5f602082019050919050565b5f6115c682611561565b6115d0818561156b565b93506115db8361157b565b805f5b8381101561160b5781516115f28882611599565b97506115fd836115b0565b9250506001810190506115de565b5085935050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61164a81611027565b82525050565b5f61165b8383611641565b60208301905092915050565b5f602082019050919050565b5f61167d82611618565b6116878185611622565b935061169283611632565b805f5b838110156116c25781516116a98882611650565b97506116b483611667565b925050600181019050611695565b5085935050505092915050565b5f6040820190508181035f8301526116e781856115bc565b905081810360208301526116fb8184611673565b90509392505050565b50565b5f6117125f836111e8565b915061171d82611704565b5f82019050919050565b5f60408201905061173a5f8301846110e3565b818103602083015261174b81611707565b905092915050565b61175c81611027565b8114611766575f80fd5b50565b5f8151905061177781611753565b92915050565b5f6020828403121561179257611791610f9f565b5b5f61179f84828501611769565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea2646970667358221220935f4f4158c09791d7426626cfe654f31510f1ebb6755c8cb47532588b8661bf64736f6c634300081a0033",d=class d extends o.DeployableTarget{constructor(){super(...arguments),this.abi=a.z}async owner(f){return await a.Jb(this._config,{address:this.assertValidAddress(),args:[],...f})}async claims(f){return await a.Ub(this._config,{address:this.assertValidAddress(),args:[],...f})}async reward(f){return await a.Yb(this._config,{address:this.assertValidAddress(),args:[],...f})}async claimed(f,b){return await a.Gb(this._config,{address:this.assertValidAddress(),args:[f],...b})}async allowList(f){const b=await a.qb(this._config,{address:this.assertValidAddress(),...f});return new l.SimpleAllowList({config:this._config,account:this._account},b)}async limit(f){return await a.Qb(this._config,{address:this.assertValidAddress(),...f})}async claim(f,b){return await this.awaitResult(this.claimRaw(f,b))}async claimRaw(f,b){const{request:e,result:c}=await a.df(this._config,{address:this.assertValidAddress(),args:[u.prepareClaimPayload(f)],...this.optionallyAttachAccount(),...b});return{hash:await a.af(this._config,e),result:c}}async isClaimable(f,b){return await a.$b(this._config,{address:this.assertValidAddress(),args:[f.target,"0x"],...b})}async canBeClaimed(f){return await this.getRemainingClaimPotential(f)>0n}async getRemainingClaimPotential(f){const[b,e]=await Promise.all([this.claims(f),this.limit(f)]);return e-b}buildParameters(f,b){const[e,c]=this.validateDeploymentConfig(f,b);return{abi:a.z,bytecode:g,args:[i(e)],...this.optionallyAttachAccount(c.account)}}buildClaimData(){return t.zeroHash}};d.bases={31337:void 0,...n.AllowListIncentive},d.registryType=h.RegistryType.INCENTIVE;let s=d;const i=({allowList:r,limit:f})=>t.encodeAbiParameters([{type:"address",name:"allowList"},{type:"uint256",name:"limit"}],[r,f]);exports.allowListIncentiveAbi=a.z;exports.AllowListIncentive=s;exports.prepareAllowListIncentivePayload=i;
2
2
  //# sourceMappingURL=AllowListIncentive.cjs.map