@boostxyz/sdk 6.1.3 → 7.0.0-canary.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 (178) hide show
  1. package/README.md +1 -1
  2. package/dist/Actions/Action.cjs +1 -1
  3. package/dist/Actions/Action.js +4 -4
  4. package/dist/Actions/EventAction.cjs +1 -1
  5. package/dist/Actions/EventAction.cjs.map +1 -1
  6. package/dist/Actions/EventAction.d.ts +10 -0
  7. package/dist/Actions/EventAction.d.ts.map +1 -1
  8. package/dist/Actions/EventAction.js +84 -83
  9. package/dist/Actions/EventAction.js.map +1 -1
  10. package/dist/AllowLists/AllowList.cjs +1 -1
  11. package/dist/AllowLists/AllowList.js +3 -3
  12. package/dist/AllowLists/SimpleAllowList.cjs +1 -1
  13. package/dist/AllowLists/SimpleAllowList.cjs.map +1 -1
  14. package/dist/AllowLists/SimpleAllowList.js +14 -14
  15. package/dist/AllowLists/SimpleAllowList.js.map +1 -1
  16. package/dist/AllowLists/SimpleDenyList.cjs +1 -1
  17. package/dist/AllowLists/SimpleDenyList.js +3 -3
  18. package/dist/Auth/PassthroughAuth.cjs +1 -1
  19. package/dist/Auth/PassthroughAuth.js +1 -1
  20. package/dist/BoostCore.cjs +2 -2
  21. package/dist/BoostCore.cjs.map +1 -1
  22. package/dist/BoostCore.d.ts +1894 -267
  23. package/dist/BoostCore.d.ts.map +1 -1
  24. package/dist/BoostCore.js +808 -497
  25. package/dist/BoostCore.js.map +1 -1
  26. package/dist/BoostRegistry.cjs +1 -1
  27. package/dist/BoostRegistry.js +47 -47
  28. package/dist/Budget-B_kgJGDu.cjs +2 -0
  29. package/dist/Budget-B_kgJGDu.cjs.map +1 -0
  30. package/dist/Budget-Bvi5Qjqp.js +1124 -0
  31. package/dist/Budget-Bvi5Qjqp.js.map +1 -0
  32. package/dist/Budgets/Budget.cjs +1 -1
  33. package/dist/Budgets/Budget.d.ts +5 -4
  34. package/dist/Budgets/Budget.d.ts.map +1 -1
  35. package/dist/Budgets/Budget.js +9 -6
  36. package/dist/Budgets/ManagedBudget.cjs +1 -1
  37. package/dist/Budgets/ManagedBudget.cjs.map +1 -1
  38. package/dist/Budgets/ManagedBudget.d.ts +4 -0
  39. package/dist/Budgets/ManagedBudget.d.ts.map +1 -1
  40. package/dist/Budgets/ManagedBudget.js +25 -25
  41. package/dist/Budgets/ManagedBudgetWithFees.d.ts +4 -0
  42. package/dist/Budgets/ManagedBudgetWithFees.d.ts.map +1 -1
  43. package/dist/Budgets/ManagedBudgetWithFeesV2.d.ts +4 -0
  44. package/dist/Budgets/ManagedBudgetWithFeesV2.d.ts.map +1 -1
  45. package/dist/Budgets/TransparentBudget.d.ts +944 -0
  46. package/dist/Budgets/TransparentBudget.d.ts.map +1 -0
  47. package/dist/Budgets/VestingBudget.d.ts +4 -0
  48. package/dist/Budgets/VestingBudget.d.ts.map +1 -1
  49. package/dist/Deployable/Deployable.cjs.map +1 -1
  50. package/dist/Deployable/Deployable.d.ts +1 -1
  51. package/dist/Deployable/Deployable.d.ts.map +1 -1
  52. package/dist/Deployable/Deployable.js.map +1 -1
  53. package/dist/Deployable/DeployableTarget.cjs +1 -1
  54. package/dist/Deployable/DeployableTarget.js +1 -1
  55. package/dist/Deployable/DeployableTargetWithRBAC.cjs +1 -1
  56. package/dist/Deployable/DeployableTargetWithRBAC.js +19 -19
  57. package/dist/Incentive-CLKutfnD.js +445 -0
  58. package/dist/Incentive-CLKutfnD.js.map +1 -0
  59. package/dist/Incentive-CLSVNxDz.cjs +2 -0
  60. package/dist/Incentive-CLSVNxDz.cjs.map +1 -0
  61. package/dist/Incentives/AllowListIncentive.cjs +1 -1
  62. package/dist/Incentives/AllowListIncentive.cjs.map +1 -1
  63. package/dist/Incentives/AllowListIncentive.js +9 -9
  64. package/dist/Incentives/AllowListIncentive.js.map +1 -1
  65. package/dist/Incentives/CGDAIncentive.cjs +1 -1
  66. package/dist/Incentives/CGDAIncentive.cjs.map +1 -1
  67. package/dist/Incentives/CGDAIncentive.js +5 -5
  68. package/dist/Incentives/CGDAIncentive.js.map +1 -1
  69. package/dist/Incentives/ERC20Incentive.cjs +1 -1
  70. package/dist/Incentives/ERC20Incentive.cjs.map +1 -1
  71. package/dist/Incentives/ERC20Incentive.js +17 -17
  72. package/dist/Incentives/ERC20Incentive.js.map +1 -1
  73. package/dist/Incentives/ERC20PeggedIncentive.d.ts +1 -1
  74. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentiveV2.cjs +2 -0
  75. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentiveV2.cjs.map +1 -0
  76. package/dist/Incentives/{ERC20PeggedVariableCriteriaIncentive.d.ts → ERC20PeggedVariableCriteriaIncentiveV2.d.ts} +39 -27
  77. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentiveV2.d.ts.map +1 -0
  78. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentiveV2.js +625 -0
  79. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentiveV2.js.map +1 -0
  80. package/dist/Incentives/ERC20VariableCriteriaIncentiveV2.cjs +2 -0
  81. package/dist/Incentives/ERC20VariableCriteriaIncentiveV2.cjs.map +1 -0
  82. package/dist/Incentives/{ERC20VariableCriteriaIncentive.d.ts → ERC20VariableCriteriaIncentiveV2.d.ts} +42 -13
  83. package/dist/Incentives/ERC20VariableCriteriaIncentiveV2.d.ts.map +1 -0
  84. package/dist/Incentives/ERC20VariableCriteriaIncentiveV2.js +242 -0
  85. package/dist/Incentives/ERC20VariableCriteriaIncentiveV2.js.map +1 -0
  86. package/dist/Incentives/ERC20VariableIncentive.cjs +1 -1
  87. package/dist/Incentives/ERC20VariableIncentive.cjs.map +1 -1
  88. package/dist/Incentives/ERC20VariableIncentive.d.ts +3 -3
  89. package/dist/Incentives/ERC20VariableIncentive.d.ts.map +1 -1
  90. package/dist/Incentives/ERC20VariableIncentive.js +22 -22
  91. package/dist/Incentives/ERC20VariableIncentive.js.map +1 -1
  92. package/dist/Incentives/Incentive.cjs +1 -1
  93. package/dist/Incentives/Incentive.d.ts +8 -8
  94. package/dist/Incentives/Incentive.d.ts.map +1 -1
  95. package/dist/Incentives/Incentive.js +13 -12
  96. package/dist/Incentives/Incentive.js.map +1 -1
  97. package/dist/Incentives/PointsIncentive.cjs +1 -1
  98. package/dist/Incentives/PointsIncentive.cjs.map +1 -1
  99. package/dist/Incentives/PointsIncentive.js +13 -13
  100. package/dist/Incentives/PointsIncentive.js.map +1 -1
  101. package/dist/SimpleDenyList-C1C_BHkY.js +133 -0
  102. package/dist/{SimpleDenyList-BKfPoTo1.js.map → SimpleDenyList-C1C_BHkY.js.map} +1 -1
  103. package/dist/SimpleDenyList-CWthbyj7.cjs +2 -0
  104. package/dist/{SimpleDenyList-DgjVf7FK.cjs.map → SimpleDenyList-CWthbyj7.cjs.map} +1 -1
  105. package/dist/Validators/LimitedSignerValidator.cjs +1 -1
  106. package/dist/Validators/LimitedSignerValidator.cjs.map +1 -1
  107. package/dist/Validators/LimitedSignerValidator.js +18 -18
  108. package/dist/Validators/LimitedSignerValidator.js.map +1 -1
  109. package/dist/Validators/SignerValidator.cjs +1 -1
  110. package/dist/Validators/SignerValidator.cjs.map +1 -1
  111. package/dist/Validators/SignerValidator.js +54 -54
  112. package/dist/Validators/SignerValidator.js.map +1 -1
  113. package/dist/Validators/Validator.cjs +1 -1
  114. package/dist/Validators/Validator.js +2 -2
  115. package/dist/componentInterfaces-BVHB4Fjw.js +21 -0
  116. package/dist/componentInterfaces-BVHB4Fjw.js.map +1 -0
  117. package/dist/componentInterfaces-BqhL-meV.cjs +2 -0
  118. package/dist/componentInterfaces-BqhL-meV.cjs.map +1 -0
  119. package/dist/deployments-D9QxJGrC.cjs +2 -0
  120. package/dist/deployments-D9QxJGrC.cjs.map +1 -0
  121. package/dist/deployments-De8_J7SS.js +120 -0
  122. package/dist/{deployments-W_LUj833.js.map → deployments-De8_J7SS.js.map} +1 -1
  123. package/dist/deployments.json +63 -48
  124. package/dist/{generated-CElkFqkY.js → generated-BJfQ-EBO.js} +1268 -737
  125. package/dist/generated-BJfQ-EBO.js.map +1 -0
  126. package/dist/generated-mJJNq-xb.cjs +3 -0
  127. package/dist/generated-mJJNq-xb.cjs.map +1 -0
  128. package/dist/index.cjs +1 -1
  129. package/dist/index.d.ts +3 -2
  130. package/dist/index.d.ts.map +1 -1
  131. package/dist/index.js +162 -158
  132. package/dist/index.js.map +1 -1
  133. package/dist/utils.cjs.map +1 -1
  134. package/dist/utils.js.map +1 -1
  135. package/package.json +13 -7
  136. package/src/Actions/EventAction.ts +11 -0
  137. package/src/BoostCore.test.ts +14 -9
  138. package/src/BoostCore.ts +428 -26
  139. package/src/Budgets/Budget.ts +8 -1
  140. package/src/Budgets/TransparentBudget.test.ts +70 -0
  141. package/src/Budgets/TransparentBudget.ts +334 -0
  142. package/src/Deployable/Deployable.ts +1 -1
  143. package/src/Incentives/ERC20PeggedIncentive.ts +1 -1
  144. package/src/Incentives/{ERC20PeggedVariableCriteriaIncentive.test.ts → ERC20PeggedVariableCriteriaIncentiveV2.test.ts} +14 -10
  145. package/src/Incentives/{ERC20PeggedVariableCriteriaIncentive.ts → ERC20PeggedVariableCriteriaIncentiveV2.ts} +122 -100
  146. package/src/Incentives/{ERC20VariableCriteriaIncentive.test.ts → ERC20VariableCriteriaIncentiveV2.test.ts} +18 -13
  147. package/src/Incentives/{ERC20VariableCriteriaIncentive.ts → ERC20VariableCriteriaIncentiveV2.ts} +83 -24
  148. package/src/Incentives/ERC20VariableIncentive.ts +4 -2
  149. package/src/Incentives/Incentive.ts +12 -12
  150. package/src/index.test.ts +2 -2
  151. package/src/index.ts +3 -2
  152. package/src/utils.ts +1 -1
  153. package/dist/Budget-BjfL8dVX.cjs +0 -2
  154. package/dist/Budget-BjfL8dVX.cjs.map +0 -1
  155. package/dist/Budget-DD7IPuDx.js +0 -922
  156. package/dist/Budget-DD7IPuDx.js.map +0 -1
  157. package/dist/Incentive-V1RjH38L.js +0 -1036
  158. package/dist/Incentive-V1RjH38L.js.map +0 -1
  159. package/dist/Incentive-gVTfsnMB.cjs +0 -2
  160. package/dist/Incentive-gVTfsnMB.cjs.map +0 -1
  161. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentive.d.ts.map +0 -1
  162. package/dist/Incentives/ERC20VariableCriteriaIncentive.cjs +0 -2
  163. package/dist/Incentives/ERC20VariableCriteriaIncentive.cjs.map +0 -1
  164. package/dist/Incentives/ERC20VariableCriteriaIncentive.d.ts.map +0 -1
  165. package/dist/Incentives/ERC20VariableCriteriaIncentive.js +0 -207
  166. package/dist/Incentives/ERC20VariableCriteriaIncentive.js.map +0 -1
  167. package/dist/SimpleDenyList-BKfPoTo1.js +0 -133
  168. package/dist/SimpleDenyList-DgjVf7FK.cjs +0 -2
  169. package/dist/componentInterfaces-CA1UIqWL.js +0 -20
  170. package/dist/componentInterfaces-CA1UIqWL.js.map +0 -1
  171. package/dist/componentInterfaces-aBgBbB7r.cjs +0 -2
  172. package/dist/componentInterfaces-aBgBbB7r.cjs.map +0 -1
  173. package/dist/deployments-CwTZr-cK.cjs +0 -2
  174. package/dist/deployments-CwTZr-cK.cjs.map +0 -1
  175. package/dist/deployments-W_LUj833.js +0 -117
  176. package/dist/generated-BPiHi7W2.cjs +0 -3
  177. package/dist/generated-BPiHi7W2.cjs.map +0 -1
  178. package/dist/generated-CElkFqkY.js.map +0 -1
@@ -0,0 +1,1124 @@
1
+ import { p, a7 as F, a8 as V, a9 as B, aa as M, ab as q, ac as T, ad as z, ae as x, af as P, ag as k, ch as C, ci as D, cj as S, ck as I, cl as J, ah as v, ai as W, aj as $, ak as E, r as m, cm as K, cn as N, co as Z, cp as L, cq as Q, c as R, cr as X, cs as Y, ct as f0, cu as b0, cv as a0, cw as d0, cx as e0, cy as c0, cz as s0 } from "./generated-BJfQ-EBO.js";
2
+ import { m as t0, n as i0, o as r0, p as n0 } from "./componentInterfaces-BVHB4Fjw.js";
3
+ import { getAccount as G, readContract as o0 } from "@wagmi/core";
4
+ import { DeployableUnknownOwnerProvidedError as H, InvalidComponentInterfaceError as h0 } from "./errors.js";
5
+ import { prepareTransfer as s, ManagedBudget as u0 } from "./Budgets/ManagedBudget.js";
6
+ import { zeroAddress as t, encodeAbiParameters as U, parseAbiParameters as j, zeroHash as l0 } from "viem";
7
+ import { h as O, T as w0 } from "./deployments-De8_J7SS.js";
8
+ import { DeployableTargetWithRBAC as g } from "./Deployable/DeployableTargetWithRBAC.js";
9
+ import { RegistryType as y } from "./utils.js";
10
+ const g0 = "0x6080604052348015600e575f80fd5b506015601f565b601b601f565b6082565b63409feecd1980546001811615603c5763f92ee8a95f526004601cfd5b6001600160401b03808260011c14607d578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b6137ad8061008f5f395ff3fe6080604052600436106102ea575f3560e01c806375b238fc11610183578063dcc21361116100d5578063f8724aba11610089578063fe56e23211610063578063fe56e232146108e4578063fe9fbb8014610903578063fee81cf414610922576102f1565b8063f8724aba14610887578063f9a802c3146108a6578063fa4ca9b1146108c5576102f1565b8063f04e283e116100ba578063f04e283e1461081c578063f23a6e611461082f578063f2fde38b14610874576102f1565b8063dcc21361146107e9578063ec87621c14610808576102f1565b8063b300579311610137578063c6004a3a11610111578063c6004a3a14610774578063d2514e841461079f578063d8c12d22146107be576102f1565b8063b3005793146106ef578063bc197c811461070e578063be4994f814610755576102f1565b80638da5cb5b116101685780638da5cb5b14610690578063929470eb146106bb578063a6f7f5d6146106da576102f1565b806375b238fc1461063b578063774c33ab1461064f576102f1565b8063439fab911161023c578063514e62fc116101f05780635aef467a116101ca5780635aef467a1461060157806361400c9914610614578063715018a614610633576102f1565b8063514e62fc1461059057806354d1f13d146105c5578063578bcf35146105cd576102f1565b8063451cc19111610221578063451cc1911461053d578063474f5a441461055e5780634a4ee7b11461057d576102f1565b8063439fab91146104ff57806343cc96e11461051e576102f1565b80631c10893f1161029e57806328d6183b1161027857806328d6183b146104505780632de94807146104af5780634359d28a146104e0576102f1565b80631c10893f146104005780631cd64df4146104135780632569296214610448576102f1565b806314135ce0116102cf57806314135ce014610384578063183a4f6e146103af578063185832a3146103c4576102f1565b806301ffc9a71461032357806310098ad514610357576102f1565b366102f157005b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b34801561032e575f80fd5b5061034261033d3660046129c8565b610953565b60405190151581526020015b60405180910390f35b348015610362575f80fd5b50610376610371366004612a1b565b610963565b60405190815260200161034e565b34801561038f575f80fd5b5061037661039e366004612a1b565b60046020525f908152604090205481565b6103c26103bd366004612a36565b61098e565b005b3480156103cf575f80fd5b506103e36103de366004612a92565b61099b565b604080519283526001600160a01b0390911660208301520161034e565b6103c261040e366004612af4565b6109c3565b34801561041e575f80fd5b5061034261042d366004612af4565b638b78c6d8600c9081525f9290925260209091205481161490565b6103c26109d9565b34801561045b575f80fd5b507fde98bbf0000000000000000000000000000000000000000000000000000000005b6040517fffffffff00000000000000000000000000000000000000000000000000000000909116815260200161034e565b3480156104ba575f80fd5b506103766104c9366004612a1b565b638b78c6d8600c9081525f91909152602090205490565b3480156104eb575f80fd5b506103c26104fa366004612b5f565b610a26565b34801561050a575f80fd5b506103c2610519366004612bcb565b610b20565b348015610529575f80fd5b506103c2610538366004612c0a565b610d2a565b348015610548575f80fd5b50610376610557366004612bcb565b5f92915050565b348015610569575f80fd5b50610376610578366004612bcb565b6110b3565b6103c261058b366004612af4565b611269565b34801561059b575f80fd5b506103426105aa366004612af4565b638b78c6d8600c9081525f9290925260209091205416151590565b6103c261127b565b3480156105d8575f80fd5b506103766105e7366004612a1b565b6001600160a01b03165f9081526005602052604090205490565b61034261060f366004612bcb565b6112b4565b34801561061f575f80fd5b5061034261062e366004612c2a565b6115b4565b6103c26115fb565b348015610646575f80fd5b50610376600281565b34801561065a575f80fd5b50610376610669366004612af4565b6001600160a01b03919091165f908152600660209081526040808320938352929052205490565b34801561069b575f80fd5b50638b78c6d819546040516001600160a01b03909116815260200161034e565b3480156106c6575f80fd5b506103426106d5366004612c5d565b61160e565b3480156106e5575f80fd5b5061037660015481565b3480156106fa575f80fd5b506103e3610709366004612a92565b6116d4565b348015610719575f80fd5b5061047e610728366004612cc2565b7fbc197c810000000000000000000000000000000000000000000000000000000098975050505050505050565b348015610760575f80fd5b506103c261076f366004612b5f565b611842565b34801561077f575f80fd5b5061037661078e366004612a1b565b60036020525f908152604090205481565b3480156107aa575f80fd5b506103766107b9366004612a1b565b6118e0565b3480156107c9575f80fd5b506103766107d8366004612a1b565b60026020525f908152604090205481565b3480156107f4575f80fd5b506103c2610803366004612b5f565b611920565b348015610813575f80fd5b50610376600181565b6103c261082a366004612a1b565b6119be565b34801561083a575f80fd5b5061047e610849366004612d85565b7ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b6103c2610882366004612a1b565b6119f8565b348015610892575f80fd5b506103766108a1366004612af4565b611a1e565b3480156108b1575f80fd5b506103766108c0366004612af4565b611aab565b3480156108d0575f80fd5b506103426108df366004612bcb565b611b55565b3480156108ef575f80fd5b506103c26108fe366004612a36565b611e9d565b34801561090e575f80fd5b5061034261091d366004612a1b565b611f50565b34801561092d575f80fd5b5061037661093c366004612a1b565b63389a75e1600c9081525f91909152602090205490565b5f61095d82611f95565b92915050565b6001600160a01b0381165f9081526004602052604081205461098483611fea565b61095d9190612e29565b6109983382612019565b50565b5f806109aa87878787876116d4565b90925090506109b98484610d2a565b9550959350505050565b6109cb612024565b6109d5828261203e565b5050565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b6002610a318161204a565b838214610a6a576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610b18575f848483818110610a8757610a87612e3c565b9050602002016020810190610a9c9190612e76565b9050801515600103610ade57610ad9878784818110610abd57610abd612e3c565b9050602002016020810190610ad29190612a1b565b600161203e565b610b0f565b610b0f878784818110610af357610af3612e3c565b9050602002016020810190610b089190612a1b565b6001612019565b50600101610a6c565b505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011328054600382558015610b715760018160011c14303b10610b685763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f610b7f8385018561300a565b9050610b8d815f015161207b565b5f5b816020015151811015610be857610be082602001518281518110610bb557610bb5612e3c565b602002602001015183604001518381518110610bd357610bd3612e3c565b60200260200101516120b6565b600101610b8f565b508060200151515f03610c5c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6e6f20636f726520636f6e74726163742073657400000000000000000000000060448201526064015b60405180910390fd5b80602001515f81518110610c7257610c72612e3c565b6020908102919091018101515f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03909216919091179055606082015160018190556040519081527f74f254e69f1d1aa50fbf15b184112c15530415ac9f4b4bf2b75778c6befd0978910160405180910390a1508015610d25576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f80546040517f13c8e2de000000000000000000000000000000000000000000000000000000008152600481018590526001600160a01b03909116906313c8e2de906024015f60405180830381865afa158015610d89573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610dce91908101906131ab565b90505f81608001518381518110610de757610de7612e3c565b60209081029190910101516040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f7cc1d5bb0000000000000000000000000000000000000000000000000000000060048201529091506001600160a01b038216906301ffc9a790602401602060405180830381865afa158015610e70573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e949190613288565b15610f6e575f816001600160a01b031663dcc59b6f6040518163ffffffff1660e01b81526004016020604051808303815f875af1158015610ed7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610efb91906132a3565b90505f826001600160a01b031663a4d66daf6040518163ffffffff1660e01b81526004016020604051808303815f875af1158015610f3b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f5f91906132a3565b9050610b1886868685856120f7565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f903181110000000000000000000000000000000000000000000000000000000060048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa158015610fe9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061100d9190613288565b156102f1575f816001600160a01b031663d54ad2a16040518163ffffffff1660e01b81526004016020604051808303815f875af1158015611050573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061107491906132a3565b90505f826001600160a01b031663a4d66daf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f3b573d5f803e3d5ffd5b5f60026110bf8161204a565b5f6110cc848601866132ff565b90505f80825160028111156110e3576110e36133e5565b148061110157506001825160028111156110ff576110ff6133e5565b145b15611158575f826060015180602001905181019061111f9190613412565b602084015160408501518251929350611150921561113e5783516122fc565b61114b8660200151610963565b6122fc565b51905061125e565b60028251600281111561116d5761116d6133e5565b03611255575f826060015180602001905181019061118b9190613454565b905061124a83602001518460400151835f015184602001515f146111b3578460200151611240565b602087015185516040517efdd58e00000000000000000000000000000000000000000000000000000000815230600482015260248101919091526001600160a01b039091169062fdd58e90604401602060405180830381865afa15801561121c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061124091906132a3565b856040015161246c565b60200151905061125e565b92506112629050565b9250505b5092915050565b611271612024565b6109d58282612019565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f806112c2838501856132ff565b90505f815160028111156112d8576112d86133e5565b03611351575f81606001518060200190518101906112f69190613412565b8051909150341461134b57602082015181516040517fcece04c50000000000000000000000000000000000000000000000000000000081526001600160a01b0390921660048301526024820152604401610c53565b506115aa565b600181516002811115611366576113666133e5565b03611413575f81606001518060200190518101906113849190613412565b6040830151815160208501519293506113a9926001600160a01b031691903090612660565b805160208301516113c3906001600160a01b0316306126c2565b101561134b57602082015181516040517fcece04c50000000000000000000000000000000000000000000000000000000081526001600160a01b0390921660048301526024820152604401610c53565b600281516002811115611428576114286133e5565b036115a1575f81606001518060200190518101906114469190613454565b905081602001516001600160a01b031663f242432a836040015130845f0151856020015186604001516040518663ffffffff1660e01b815260040161148f95949392919061355e565b5f604051808303815f87803b1580156114a6575f80fd5b505af11580156114b8573d5f803e3d5ffd5b5050506020808301519084015183516040517efdd58e00000000000000000000000000000000000000000000000000000000815230600482015260248101919091529192506001600160a01b03169062fdd58e90604401602060405180830381865afa15801561152a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061154e91906132a3565b101561134b57602080830151908201516040517fcece04c50000000000000000000000000000000000000000000000000000000081526001600160a01b0390921660048301526024820152604401610c53565b5f91505061095d565b5060019392505050565b5f805b828110156115aa576115e68484838181106115d4576115d4612e3c565b90506020028101906108df91906135a5565b6115f3575f91505061095d565b6001016115b7565b611603612024565b61160c5f6126f5565b565b5f61161833611f50565b61164e576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1fa2acdc0000000000000000000000000000000000000000000000000000000081526001600160a01b03871690631fa2acdc9061169b9088908890889088903090600401613606565b5f604051808303815f87803b1580156116b2575f80fd5b505af11580156116c4573d5f803e3d5ffd5b5060019998505050505050505050565b5f806116df33611f50565b611715576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6040518060400160405280306001600160a01b0316815260200188888080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052509390945250506040519293508a9290915081906001600160a01b0384169063dd98558c90611793908790602001613672565b6040516020818303038152906040528a8a6040518463ffffffff1660e01b81526004016117c2939291906136a7565b60408051808303815f875af11580156117dd573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061180191906136cb565b6001600160a01b0381165f9081526005602052604081208054939550919350849261182d908490612e29565b90915550919b909a5098505050505050505050565b600261184d8161204a565b838214611886576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610b18576118d88686838181106118a5576118a5612e3c565b90506020020160208101906118ba9190612a1b565b8585848181106118cc576118cc612e3c565b9050602002013561203e565b600101611888565b6001600160a01b0381165f90815260046020908152604080832054600590925282205461190c84610963565b61191691906136fa565b61095d91906136fa565b600261192b8161204a565b838214611964576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610b18576119b686868381811061198357611983612e3c565b90506020020160208101906119989190612a1b565b8585848181106119aa576119aa612e3c565b90506020020135612019565b600101611966565b6119c6612024565b63389a75e1600c52805f526020600c2080544211156119ec57636f5e88185f526004601cfd5b5f9055610998816126f5565b611a00612024565b8060601b611a1557637448fbae5f526004601cfd5b610998816126f5565b6040517efdd58e000000000000000000000000000000000000000000000000000000008152306004820152602481018290525f906001600160a01b0384169062fdd58e90604401602060405180830381865afa158015611a80573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611aa491906132a3565b9392505050565b6001600160a01b0382165f8181526006602090815260408083208584529091528082205490517efdd58e000000000000000000000000000000000000000000000000000000008152306004820152602481018590529192909162fdd58e90604401602060405180830381865afa158015611b27573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b4b91906132a3565b611aa491906136fa565b5f611b5f33611f50565b611b95576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611ba2838501856132ff565b9050600181516002811115611bb957611bb96133e5565b1480611bd657505f81516002811115611bd457611bd46133e5565b145b15611d4f575f8160600151806020019051810190611bf49190613412565b90505f612710600154835f0151611c0b919061370d565b611c159190613724565b90505f611c258460200151610963565b90508082845f0151611c3791906136fa565b1115611c9c57602084015183518290611c519085906136fa565b6040517f5c54305e0000000000000000000000000000000000000000000000000000000081526001600160a01b03909316600484015260248301919091526044820152606401610c53565b6040808501516001600160a01b03165f90815260026020529081208054849290611cc79084906136fa565b90915550506020808501516001600160a01b03165f9081526004909152604081208054849290611cf89084906136fa565b909155505082516020808601516001600160a01b03165f9081526005909152604081208054909190611d2b9084906136fa565b9091555050602084015160408501518451611d479291906122fc565b5050506115aa565b600281516002811115611d6457611d646133e5565b036115a1575f8160600151806020019051810190611d829190613454565b602083015181516040517efdd58e00000000000000000000000000000000000000000000000000000000815230600482015260248101919091529192505f916001600160a01b039091169062fdd58e90604401602060405180830381865afa158015611df0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e1491906132a3565b90508082602001511115611e7657602080840151908301516040517f5c54305e0000000000000000000000000000000000000000000000000000000081526001600160a01b039092166004830152602482018390526044820152606401610c53565b611e9683602001518460400151845f01518560200151866040015161246c565b50506115aa565b6002611ea88161204a565b612710821115611f14576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4665652063616e6e6f74206578636565642031303025000000000000000000006044820152606401610c53565b60018290556040518281527f74f254e69f1d1aa50fbf15b184112c15530415ac9f4b4bf2b75778c6befd09789060200160405180910390a15050565b5f816001600160a01b0316611f68638b78c6d8195490565b6001600160a01b0316148061095d5750638b78c6d8600c9081525f8390526020902054600316151561095d565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fde98bbf000000000000000000000000000000000000000000000000000000000148061095d575061095d82612732565b5f6001600160a01b038216156120125761200d6001600160a01b038316306126c2565b61095d565b4792915050565b6109d582825f61281f565b638b78c6d81954331461160c576382b429005f526004601cfd5b6109d58282600161281f565b638b78c6d81954331461099857638b78c6d8600c52335f52806020600c205416610998576382b429005f526004601cfd5b6001600160a01b0316638b78c6d819819055805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b638b78c6d8600c52815f52806020600c205580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a35050565b5f8360800151858151811061210e5761210e612e3c565b6020908102919091018101516001600160a01b0381165f9081526002835260408082205460039094528120549193508185612149888661370d565b6121539190613724565b61215d9190612e29565b905061216981836136fa565b6001600160a01b0385165f8181526003602090815260408083209490945583517f38d52e0f000000000000000000000000000000000000000000000000000000008152935191936338d52e0f92600480830193928290030181865afa1580156121d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121f8919061375c565b60e08901516001600160a01b0382165f908152600460205260408120805493945091928592919061222a908490612e29565b90915550505f839003612269576040517fb2e783cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8461227484866136fa565b0361229f576001600160a01b0386165f90815260026020908152604080832083905560039091528120555b806001600160a01b03168a8c7ff44ff640e648077f3acc130c6ce75240070e8c40adc85b0feeeec28d9dd921b4866040516122dc91815260200190565b60405180910390a46122ef8282856122fc565b5050505050505050505050565b3068929eee149b4bd21268540361231a5763ab143c065f526004601cfd5b3068929eee149b4bd21268556001600160a01b038216612380576040517fbf182be80000000000000000000000000000000000000000000000000000000081526001600160a01b0380851660048301528316602482015260448101829052606401610c53565b61238983610963565b8111156123e4578261239a84610963565b6040517f5c54305e0000000000000000000000000000000000000000000000000000000081526001600160a01b039092166004830152602482015260448101829052606401610c53565b6001600160a01b038316612401576123fc8282612876565b612415565b6124156001600160a01b038416838361288f565b604080516001600160a01b038481168252602082018490528516917fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542910160405180910390a23868929eee149b4bd2126855505050565b3068929eee149b4bd21268540361248a5763ab143c065f526004601cfd5b3068929eee149b4bd21268556001600160a01b0384166124f0576040517fbf182be80000000000000000000000000000000000000000000000000000000081526001600160a01b0380871660048301528516602482015260448101839052606401610c53565b6124fa8584611a1e565b821115612556578461250c8685611a1e565b6040517f5c54305e0000000000000000000000000000000000000000000000000000000081526001600160a01b039092166004830152602482015260448101839052606401610c53565b6001600160a01b0385165f908152600660209081526040808320868452909152812080548492906125889084906136fa565b90915550506040517ff242432a0000000000000000000000000000000000000000000000000000000081526001600160a01b0386169063f242432a906125da903090889088908890889060040161355e565b5f604051808303815f87803b1580156125f1575f80fd5b505af1158015612603573d5f803e3d5ffd5b5050604080516001600160a01b03888116825260208201879052891693507fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd4354292500160405180910390a23868929eee149b4bd21268555050505050565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af18060015f5114166126b457803d873b1517106126b457637939f4245f526004601cfd5b505f60605260405250505050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b638b78c6d81980546001600160a01b039092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f5fbfaa4e0000000000000000000000000000000000000000000000000000000014806127c457507fffffffff0000000000000000000000000000000000000000000000000000000082167f4e2312e000000000000000000000000000000000000000000000000000000000145b8061281057507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b8061095d575061095d826128e2565b638b78c6d8600c52825f526020600c20805483811783612840575080841681185b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f385f3884865af16109d55763b12d13eb5f526004601cfd5b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af18060015f5114166128d857803d853b1517106128d8576390b8ec185f526004601cfd5b505f603452505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fe49cedd700000000000000000000000000000000000000000000000000000000148061095d575061095d825f7fffffffff0000000000000000000000000000000000000000000000000000000082167f6ab67a0d00000000000000000000000000000000000000000000000000000000148061095d57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000083161461095d565b5f602082840312156129d8575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611aa4575f80fd5b6001600160a01b0381168114610998575f80fd5b5f60208284031215612a2b575f80fd5b8135611aa481612a07565b5f60208284031215612a46575f80fd5b5035919050565b5f8083601f840112612a5d575f80fd5b50813567ffffffffffffffff811115612a74575f80fd5b602083019150836020828501011115612a8b575f80fd5b9250929050565b5f805f805f60808688031215612aa6575f80fd5b8535612ab181612a07565b9450602086013567ffffffffffffffff811115612acc575f80fd5b612ad888828901612a4d565b9699909850959660408101359660609091013595509350505050565b5f8060408385031215612b05575f80fd5b8235612b1081612a07565b946020939093013593505050565b5f8083601f840112612b2e575f80fd5b50813567ffffffffffffffff811115612b45575f80fd5b6020830191508360208260051b8501011115612a8b575f80fd5b5f805f8060408587031215612b72575f80fd5b843567ffffffffffffffff811115612b88575f80fd5b612b9487828801612b1e565b909550935050602085013567ffffffffffffffff811115612bb3575f80fd5b612bbf87828801612b1e565b95989497509550505050565b5f8060208385031215612bdc575f80fd5b823567ffffffffffffffff811115612bf2575f80fd5b612bfe85828601612a4d565b90969095509350505050565b5f8060408385031215612c1b575f80fd5b50508035926020909101359150565b5f8060208385031215612c3b575f80fd5b823567ffffffffffffffff811115612c51575f80fd5b612bfe85828601612b1e565b5f805f805f60808688031215612c71575f80fd5b8535612c7c81612a07565b94506020860135935060408601359250606086013567ffffffffffffffff811115612ca5575f80fd5b612cb188828901612a4d565b969995985093965092949392505050565b5f805f805f805f8060a0898b031215612cd9575f80fd5b8835612ce481612a07565b97506020890135612cf481612a07565b9650604089013567ffffffffffffffff811115612d0f575f80fd5b612d1b8b828c01612b1e565b909750955050606089013567ffffffffffffffff811115612d3a575f80fd5b612d468b828c01612b1e565b909550935050608089013567ffffffffffffffff811115612d65575f80fd5b612d718b828c01612a4d565b999c989b5096995094979396929594505050565b5f805f805f8060a08789031215612d9a575f80fd5b8635612da581612a07565b95506020870135612db581612a07565b94506040870135935060608701359250608087013567ffffffffffffffff811115612dde575f80fd5b612dea89828a01612a4d565b979a9699509497509295939492505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8181038181111561095d5761095d612dfc565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8015158114610998575f80fd5b5f60208284031215612e86575f80fd5b8135611aa481612e69565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516080810167ffffffffffffffff81118282101715612ee157612ee1612e91565b60405290565b604051610100810167ffffffffffffffff81118282101715612ee157612ee1612e91565b6040516060810167ffffffffffffffff81118282101715612ee157612ee1612e91565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612f7557612f75612e91565b604052919050565b5f67ffffffffffffffff821115612f9657612f96612e91565b5060051b60200190565b5f82601f830112612faf575f80fd5b8135612fc2612fbd82612f7d565b612f2e565b8082825260208201915060208360051b860101925085831115612fe3575f80fd5b602085015b83811015613000578035835260209283019201612fe8565b5095945050505050565b5f6020828403121561301a575f80fd5b813567ffffffffffffffff811115613030575f80fd5b820160808185031215613041575f80fd5b613049612ebe565b813561305481612a07565b8152602082013567ffffffffffffffff81111561306f575f80fd5b8201601f8101861361307f575f80fd5b803561308d612fbd82612f7d565b8082825260208201915060208360051b8501019250888311156130ae575f80fd5b6020840193505b828410156130d95783356130c881612a07565b8252602093840193909101906130b5565b6020850152505050604082013567ffffffffffffffff8111156130fa575f80fd5b61310686828501612fa0565b604083015250606091820135918101919091529392505050565b805161312b81612a07565b919050565b5f82601f83011261313f575f80fd5b815161314d612fbd82612f7d565b8082825260208201915060208360051b86010192508583111561316e575f80fd5b602085015b8381101561300057805161318681612a07565b835260209283019201613173565b805167ffffffffffffffff8116811461312b575f80fd5b5f602082840312156131bb575f80fd5b815167ffffffffffffffff8111156131d1575f80fd5b820161010081850312156131e3575f80fd5b6131eb612ee7565b6131f482613120565b815261320260208301613120565b602082015261321360408301613120565b604082015261322460608301613120565b6060820152608082015167ffffffffffffffff811115613242575f80fd5b61324e86828501613130565b60808301525061326060a08301613194565b60a082015260c0828101519082015261327b60e08301613120565b60e0820152949350505050565b5f60208284031215613298575f80fd5b8151611aa481612e69565b5f602082840312156132b3575f80fd5b5051919050565b5f67ffffffffffffffff8211156132d3576132d3612e91565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f6020828403121561330f575f80fd5b813567ffffffffffffffff811115613325575f80fd5b820160808185031215613336575f80fd5b61333e612ebe565b81356003811061334c575f80fd5b8152602082013561335c81612a07565b6020820152604082013561336f81612a07565b6040820152606082013567ffffffffffffffff81111561338d575f80fd5b80830192505084601f8301126133a1575f80fd5b81356133af612fbd826132ba565b8181528660208386010111156133c3575f80fd5b816020850160208301375f918101602001919091526060820152949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f6020828403128015613423575f80fd5b506040516020810167ffffffffffffffff8111828210171561344757613447612e91565b6040529151825250919050565b5f60208284031215613464575f80fd5b815167ffffffffffffffff81111561347a575f80fd5b82016060818503121561348b575f80fd5b613493612f0b565b8151815260208083015190820152604082015167ffffffffffffffff8111156134ba575f80fd5b80830192505084601f8301126134ce575f80fd5b81516134dc612fbd826132ba565b8181528660208386010111156134f0575f80fd5b8160208501602083015e5f918101602001919091526040820152949350505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6001600160a01b03861681526001600160a01b038516602082015283604082015282606082015260a060808201525f61359a60a0830184613512565b979650505050505050565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126135d8575f80fd5b83018035915067ffffffffffffffff8211156135f2575f80fd5b602001915036819003821315612a8b575f80fd5b85815284602082015260806040820152826080820152828460a08301375f60a084830101525f60a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f86011683010190506001600160a01b03831660608301529695505050505050565b602081526001600160a01b0382511660208201525f602083015160408084015261369f6060840182613512565b949350505050565b606081525f6136b96060830186613512565b60208301949094525060400152919050565b5f80604083850312156136dc575f80fd5b825160208401519092506136ef81612a07565b809150509250929050565b8082018082111561095d5761095d612dfc565b808202811582820484141761095d5761095d612dfc565b5f82613757577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b5f6020828403121561376c575f80fd5b8151611aa481612a0756fea2646970667358221220c4aa3b17b934a3a01b24f3191818b2b0b291f2e616fab5fe7ff6da61ab9593d264736f6c634300081a0033", n = class n extends g {
11
+ constructor() {
12
+ super(...arguments), this.abi = p;
13
+ }
14
+ /**
15
+ * Allocates assets to the budget.
16
+ * The caller must have already approved the contract to transfer the asset
17
+ * If the asset transfer fails, the allocation will revert
18
+ *
19
+ * @public
20
+ * @async
21
+ * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer
22
+ * @param {?WriteParams} [params]
23
+ * @returns {Promise<boolean>} - True if the allocation was successful
24
+ */
25
+ async allocate(f, b) {
26
+ return await this.awaitResult(this.allocateRaw(f, b));
27
+ }
28
+ /**
29
+ * Allocates assets to the budget.
30
+ * The caller must have already approved the contract to transfer the asset
31
+ * If the asset transfer fails, the allocation will revert
32
+ *
33
+ * @public
34
+ * @async
35
+ * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer
36
+ * @param {?WriteParams} [params]
37
+ * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the allocation was successful
38
+ */
39
+ async allocateRaw(f, b) {
40
+ const { request: a, result: d } = await F(
41
+ this._config,
42
+ {
43
+ address: this.assertValidAddress(),
44
+ args: [s(f)],
45
+ ...this.optionallyAttachAccount(),
46
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
47
+ ...b
48
+ }
49
+ );
50
+ return { hash: await V(this._config, a), result: d };
51
+ }
52
+ /**
53
+ * Clawbacks assets from the budget.
54
+ * Only the owner can directly clawback assets from the budget
55
+ * If the amount is zero, the entire balance of the asset will be transferred to the receiver
56
+ * If the asset transfer fails, the reclamation will revert
57
+ *
58
+ * @public
59
+ * @async
60
+ * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer
61
+ * @param {?WriteParams} [params]
62
+ * @returns {Promise<boolean>} - True if the request was successful
63
+ */
64
+ async clawback(f, b) {
65
+ return await this.awaitResult(this.clawbackRaw(f, b));
66
+ }
67
+ /**
68
+ * Clawbacks assets from the budget.
69
+ * Only the owner or admin can directly clawback assets from the budget
70
+ * If the amount is zero, the entire balance of the asset will be transferred to the receiver
71
+ * If the asset transfer fails, the reclamation will revert
72
+ *
73
+ * @public
74
+ * @async
75
+ * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer
76
+ * @param {?WriteParams} [params]
77
+ * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the request was successful
78
+ */
79
+ async clawbackRaw(f, b) {
80
+ const { request: a, result: d } = await B(
81
+ this._config,
82
+ {
83
+ address: this.assertValidAddress(),
84
+ args: [s(f)],
85
+ ...this.optionallyAttachAccount(),
86
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
87
+ ...b
88
+ }
89
+ );
90
+ return { hash: await M(this._config, a), result: d };
91
+ }
92
+ /**
93
+ * Clawbacks assets from an incentive associated with the budget via Boost Core.
94
+ * Only the authorized users can clawback assets from an incentive.
95
+ * If the asset transfer fails, the reclamation will revert.
96
+ *
97
+ * @example
98
+ * ```ts
99
+ * const [amount, address] = await budgets.budget.clawbackFromTarget(
100
+ * core.assertValidAddress(),
101
+ * erc20Incentive.buildClawbackData(1n),
102
+ * boost.id,
103
+ * incentiveId,
104
+ * );
105
+ * ```
106
+ * @public
107
+ * @async
108
+ * @param {Address} target - The address of a contract implementing clawback, typically `BoostCore`
109
+ * @param {Hex} data - The encoded data payload for the clawback, can be acquired with `incentive.buildClawbackData`
110
+ * @param {bigint | number} boostId - The ID of the boost
111
+ * @param {bigint | number} incentiveId - The ID of the incentive
112
+ * @param {?WriteParams} [params] - Optional write parameters
113
+ * @returns {Promise<[bigint, Address]>} - Returns a tuple of amount reclaimed and the address reclaimed from
114
+ */
115
+ async clawbackFromTarget(f, b, a, d, e) {
116
+ return await this.awaitResult(
117
+ this.clawbackFromTargetRaw(f, b, a, d, e)
118
+ );
119
+ }
120
+ /**
121
+ * Clawbacks assets from an incentive associated with the budget via Boost Core.
122
+ * Only the authorized users can clawback assets from an incentive.
123
+ * If the asset transfer fails, the reclamation will revert.
124
+ *
125
+ * @example
126
+ * ```ts
127
+ * const { hash, result: [ amount, address ] } = await budgets.budget.clawbackFromTargetRaw(
128
+ * core.assertValidAddress(),
129
+ * erc20Incentive.buildClawbackData(1n),
130
+ * boost.id,
131
+ * incentiveId,
132
+ * );
133
+ * ```
134
+ * @public
135
+ * @async
136
+ * @param {Address} target - The address of a contract implementing clawback, typically `BoostCore`
137
+ * @param {Hex} data - The encoded data payload for the clawback, can be acquired with `incentive.buildClawbackData`
138
+ * @param {bigint | number} boostId - The ID of the boost
139
+ * @param {bigint | number} incentiveId - The ID of the incentive
140
+ * @param {?WriteParams} [params] - Optional write parameters
141
+ * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - Returns transaction hash and simulated result
142
+ */
143
+ async clawbackFromTargetRaw(f, b, a, d, e) {
144
+ const { request: c, result: r } = await q(
145
+ this._config,
146
+ {
147
+ address: this.assertValidAddress(),
148
+ args: [f, b, BigInt(a), BigInt(d)],
149
+ ...this.optionallyAttachAccount(),
150
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
151
+ ...e
152
+ }
153
+ );
154
+ return { hash: await T(
155
+ this._config,
156
+ c
157
+ ), result: r };
158
+ }
159
+ /**
160
+ * Disburses assets from the budget to a single recipient
161
+ * If the asset transfer fails, the disbursement will revert
162
+ *
163
+ * @public
164
+ * @async
165
+ * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer
166
+ * @param {?WriteParams} [params]
167
+ * @returns {Promise<boolean>} - True if the disbursement was successful
168
+ */
169
+ async disburse(f, b) {
170
+ return await this.awaitResult(this.disburseRaw(f, b));
171
+ }
172
+ /**
173
+ * Disburses assets from the budget to a single recipient
174
+ * If the asset transfer fails, the disbursement will revert
175
+ *
176
+ * @public
177
+ * @async
178
+ * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer
179
+ * @param {?WriteParams} [params]
180
+ * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the disbursement was successful
181
+ */
182
+ async disburseRaw(f, b) {
183
+ const { request: a, result: d } = await z(
184
+ this._config,
185
+ {
186
+ address: this.assertValidAddress(),
187
+ args: [s(f)],
188
+ ...this.optionallyAttachAccount(),
189
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
190
+ ...b
191
+ }
192
+ );
193
+ return { hash: await x(this._config, a), result: d };
194
+ }
195
+ /**
196
+ * Disburses assets from the budget to multiple recipients
197
+ *
198
+ * @public
199
+ * @async
200
+ * @param {Array<FungibleTransferPayload | ERC1155TransferPayload>} transfers
201
+ * @param {?WriteParams} [params]
202
+ * @returns {Promise<boolean>} - True if all disbursements were successful
203
+ */
204
+ async disburseBatch(f, b) {
205
+ return await this.awaitResult(this.disburseBatchRaw(f, b));
206
+ }
207
+ /**
208
+ * Disburses assets from the budget to multiple recipients
209
+ *
210
+ * @public
211
+ * @async
212
+ * @param {Array<FungibleTransferPayload | ERC1155TransferPayload>} transfers
213
+ * @param {?WriteParams} [params]
214
+ * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if all disbursements were successful
215
+ */
216
+ async disburseBatchRaw(f, b) {
217
+ const { request: a, result: d } = await P(
218
+ this._config,
219
+ {
220
+ address: this.assertValidAddress(),
221
+ args: [f.map(s)],
222
+ ...this.optionallyAttachAccount(),
223
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
224
+ ...b
225
+ }
226
+ );
227
+ return { hash: await k(this._config, a), result: d };
228
+ }
229
+ /**
230
+ * Pays out reserved management fees to the boost owner
231
+ * for a given incentive
232
+ *
233
+ * @public
234
+ * @async
235
+ * @param {bigint | string} boostId
236
+ * @param {bigint | string} incentiveId
237
+ * @param {?WriteParams} [params]
238
+ * @returns {Promise<boolean>} - True if the payout was successful
239
+ */
240
+ async payManagementFee(f, b, a) {
241
+ return await this.awaitResult(
242
+ this.payManagementFeeRaw(f, b, a)
243
+ );
244
+ }
245
+ /**
246
+ * Pays out reserved management fees to the boost owner
247
+ *
248
+ * @public
249
+ * @async
250
+ * @param bigint boostId
251
+ * @param bigint incentiveId
252
+ * @param {?WriteParams} [params]
253
+ * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the payout was successful
254
+ */
255
+ async payManagementFeeRaw(f, b, a) {
256
+ const { request: d, result: e } = await C(this._config, {
257
+ address: this.assertValidAddress(),
258
+ args: [f, b],
259
+ ...this.optionallyAttachAccount(),
260
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
261
+ ...a
262
+ });
263
+ return { hash: await D(
264
+ this._config,
265
+ d
266
+ ), result: e };
267
+ }
268
+ /**
269
+ * Sets the management fee for the budget
270
+ * @public
271
+ * @async
272
+ * @param {bigint} managementFee
273
+ * @param {?WriteParams} [params]
274
+ * @returns {Promise<void>} - will throw if the transaction fails
275
+ */
276
+ async setManagementFee(f, b) {
277
+ return await this.awaitResult(
278
+ this.setManagementFeeRaw(f, b)
279
+ );
280
+ }
281
+ /**
282
+ * Sets the management fee for the budget
283
+ * @public
284
+ * @async
285
+ * @param {bigint} managementFee
286
+ * @param {?WriteParams} [params]
287
+ * @returns {Promise<{ hash: `0x${string}`; result: void; }>}
288
+ */
289
+ async setManagementFeeRaw(f, b) {
290
+ const { request: a, result: d } = await S(this._config, {
291
+ address: this.assertValidAddress(),
292
+ args: [f],
293
+ ...this.optionallyAttachAccount(),
294
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
295
+ ...b
296
+ });
297
+ return { hash: await I(
298
+ this._config,
299
+ a
300
+ ), result: d };
301
+ }
302
+ /**
303
+ * Get the configured management fee for the budget
304
+ * @public
305
+ * @param {?ReadParams} [params]
306
+ * @returns {Promise<bigint>} - The management fee
307
+ */
308
+ async managementFee(f) {
309
+ return await J(this._config, {
310
+ address: this.assertValidAddress(),
311
+ args: [],
312
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
313
+ ...f
314
+ });
315
+ }
316
+ /**
317
+ * Get the owner of the budget
318
+ *
319
+ * @public
320
+ * @param {?ReadParams} [params]
321
+ * @returns {Promise<Address>}
322
+ */
323
+ owner(f) {
324
+ return v(this._config, {
325
+ address: this.assertValidAddress(),
326
+ args: [],
327
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
328
+ ...f
329
+ });
330
+ }
331
+ /**
332
+ * Get the total amount of assets allocated to the budget, including any that have been distributed
333
+ * If a tokenId is provided, get the total amount of ERC1155 assets allocated to the budget, including any that have been distributed
334
+ *
335
+ * @public
336
+ * @param {Address} [asset="0x0000000000000000000000000000000000000000"] - The address of the asset
337
+ * @param {?(bigint | undefined)} [tokenId] - The ID of the token
338
+ * @param {?ReadParams} [params]
339
+ * @returns {Promise<bigint>} - The total amount of assets
340
+ */
341
+ total(f = t, b, a) {
342
+ return W(this._config, {
343
+ address: this.assertValidAddress(),
344
+ args: b ? [f, b] : [f],
345
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
346
+ ...a
347
+ });
348
+ }
349
+ /**
350
+ * Get the amount of assets available for distribution from the budget.
351
+ * If a tokenId is provided, get the amount of ERC1155 assets available for distribution from the budget
352
+ *
353
+ * @public
354
+ * @param {Address} [asset="0x0000000000000000000000000000000000000000"]
355
+ * @param {?(bigint | undefined)} [tokenId]
356
+ * @param {?ReadParams} [params]
357
+ * @returns {Promise<bigint>} - The amount of assets available
358
+ */
359
+ available(f = t, b, a) {
360
+ return $(this._config, {
361
+ address: this.assertValidAddress(),
362
+ args: b ? [f, b] : [f],
363
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
364
+ ...a
365
+ });
366
+ }
367
+ /**
368
+ * Get the amount of assets that have been distributed from the budget.
369
+ * If a tokenId is provided, get the amount of ERC1155 assets that have been distributed from the budget
370
+ *
371
+ * @public
372
+ * @param {Address} [asset="0x0000000000000000000000000000000000000000"]
373
+ * @param {?(bigint | undefined)} [tokenId]
374
+ * @param {?ReadParams} [params]
375
+ * @returns {Promise<bigint>} - The amount of assets distributed
376
+ */
377
+ distributed(f = t, b, a) {
378
+ return E(this._config, {
379
+ address: this.assertValidAddress(),
380
+ args: b ? [f, b] : [f],
381
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
382
+ ...a
383
+ });
384
+ }
385
+ /**
386
+ * @inheritdoc
387
+ *
388
+ * @public
389
+ * @param {?ManagedBudgetWithFeesPayload} [_payload]
390
+ * @param {?DeployableOptions} [_options]
391
+ * @returns {GenericDeployableParams}
392
+ */
393
+ buildParameters(f, b) {
394
+ var e;
395
+ const [a, d] = this.validateDeploymentConfig(
396
+ f,
397
+ b
398
+ );
399
+ if (!a.owner || a.owner === t) {
400
+ const c = d.account ? d.account.address : d.config ? G(d.config).address : (e = this._account) == null ? void 0 : e.address;
401
+ if (c)
402
+ a.owner = c;
403
+ else
404
+ throw new H();
405
+ }
406
+ return {
407
+ abi: p,
408
+ bytecode: g0,
409
+ args: [y0(a)],
410
+ ...this.optionallyAttachAccount(d.account)
411
+ };
412
+ }
413
+ };
414
+ n.bases = {
415
+ 31337: void 0,
416
+ ...O
417
+ }, n.registryType = y.BUDGET;
418
+ let u = n;
419
+ const y0 = ({
420
+ owner: i,
421
+ authorized: f,
422
+ roles: b,
423
+ managementFee: a
424
+ }) => U(
425
+ j([
426
+ "ManagedBudgetWithFeesPayload payload",
427
+ "struct ManagedBudgetWithFeesPayload { address owner; address[] authorized; uint256[] roles; uint256 managementFee; }"
428
+ ]),
429
+ [
430
+ {
431
+ owner: i,
432
+ authorized: f,
433
+ roles: b,
434
+ managementFee: a
435
+ }
436
+ ]
437
+ ), A0 = "0x6080604052348015600e575f80fd5b5060156025565b601b6025565b60216025565b6088565b63409feecd198054600181161560425763f92ee8a95f526004601cfd5b6001600160401b03808260011c146083578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b613da8806100955f395ff3fe608060405260043610610316575f3560e01c8063774c33ab11610199578063dcc21361116100e0578063f8724aba11610089578063fe56e23211610063578063fe56e2321461099b578063fe9fbb80146109ba578063fee81cf4146109d95761031d565b8063f8724aba1461093e578063f9a802c31461095d578063fa4ca9b11461097c5761031d565b8063f04e283e116100ba578063f04e283e146108d3578063f23a6e61146108e6578063f2fde38b1461092b5761031d565b8063dcc2136114610872578063eaefb5cf14610891578063ec87621c146108bf5761031d565b8063b5e4f55d11610142578063c6004a3a1161011c578063c6004a3a146107fd578063d2514e8414610828578063d8c12d22146108475761031d565b8063b5e4f55d14610778578063bc197c8114610797578063be4994f8146107de5761031d565b8063929470eb11610173578063929470eb14610725578063a6f7f5d614610744578063b3005793146107595761031d565b8063774c33ab1461069a57806380009630146106db5780638da5cb5b146106fa5761031d565b806343cc96e11161025d57806354feede51161020657806361400c99116101e057806361400c991461065f578063715018a61461067e57806375b238fc146106865761031d565b806354feede5146105f9578063578bcf35146106185780635aef467a1461064c5761031d565b80634a4ee7b1116102375780634a4ee7b1146105a9578063514e62fc146105bc57806354d1f13d146105f15761031d565b806343cc96e11461054a578063451cc19114610569578063474f5a441461058a5761031d565b80631cd64df4116102bf5780632de94807116102995780632de94807146104db5780634359d28a1461050c578063439fab911461052b5761031d565b80631cd64df41461043f578063256929621461047457806328d6183b1461047c5761031d565b8063183a4f6e116102f0578063183a4f6e146103db578063185832a3146103f05780631c10893f1461042c5761031d565b806301ffc9a71461034f57806310098ad51461038357806314135ce0146103b05761031d565b3661031d57005b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b34801561035a575f80fd5b5061036e610369366004612f94565b610a0a565b60405190151581526020015b60405180910390f35b34801561038e575f80fd5b506103a261039d366004612fe7565b610a1a565b60405190815260200161037a565b3480156103bb575f80fd5b506103a26103ca366004612fe7565b60046020525f908152604090205481565b6103ee6103e9366004613002565b610a45565b005b3480156103fb575f80fd5b5061040f61040a36600461305e565b610a52565b604080519283526001600160a01b0390911660208301520161037a565b6103ee61043a3660046130c0565b610a7a565b34801561044a575f80fd5b5061036e6104593660046130c0565b638b78c6d8600c9081525f9290925260209091205481161490565b6103ee610a90565b348015610487575f80fd5b507fa2dceadb000000000000000000000000000000000000000000000000000000005b6040517fffffffff00000000000000000000000000000000000000000000000000000000909116815260200161037a565b3480156104e6575f80fd5b506103a26104f5366004612fe7565b638b78c6d8600c9081525f91909152602090205490565b348015610517575f80fd5b506103ee61052636600461312b565b610add565b348015610536575f80fd5b506103ee610545366004613197565b610bd7565b348015610555575f80fd5b506103ee6105643660046131d6565b610db2565b348015610574575f80fd5b506103a2610583366004613197565b5f92915050565b348015610595575f80fd5b506103a26105a4366004613197565b61111d565b6103ee6105b73660046130c0565b6112d3565b3480156105c7575f80fd5b5061036e6105d63660046130c0565b638b78c6d8600c9081525f9290925260209091205416151590565b6103ee6112e5565b348015610604575f80fd5b506103ee6106133660046131f6565b61131e565b348015610623575f80fd5b506103a2610632366004612fe7565b6001600160a01b03165f9081526006602052604090205490565b61036e61065a366004613197565b6116e1565b34801561066a575f80fd5b5061036e610679366004613228565b6119e1565b6103ee611a28565b348015610691575f80fd5b506103a2600281565b3480156106a5575f80fd5b506103a26106b43660046130c0565b6001600160a01b03919091165f908152600760209081526040808320938352929052205490565b3480156106e6575f80fd5b506103ee6106f5366004612fe7565b611a3b565b348015610705575f80fd5b50638b78c6d819546040516001600160a01b03909116815260200161037a565b348015610730575f80fd5b5061036e61073f36600461325b565b611a4f565b34801561074f575f80fd5b506103a260015481565b348015610764575f80fd5b5061040f61077336600461305e565b611b15565b348015610783575f80fd5b5061040f6107923660046132c0565b611b71565b3480156107a2575f80fd5b506104aa6107b1366004613335565b7fbc197c810000000000000000000000000000000000000000000000000000000098975050505050505050565b3480156107e9575f80fd5b506103ee6107f836600461312b565b611b9b565b348015610808575f80fd5b506103a2610817366004612fe7565b60036020525f908152604090205481565b348015610833575f80fd5b506103a2610842366004612fe7565b611c39565b348015610852575f80fd5b506103a2610861366004612fe7565b60026020525f908152604090205481565b34801561087d575f80fd5b506103ee61088c36600461312b565b611c79565b34801561089c575f80fd5b5061036e6108ab366004612fe7565b60056020525f908152604090205460ff1681565b3480156108ca575f80fd5b506103a2600181565b6103ee6108e1366004612fe7565b611d17565b3480156108f1575f80fd5b506104aa6109003660046133f8565b7ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b6103ee610939366004612fe7565b611d51565b348015610949575f80fd5b506103a26109583660046130c0565b611d77565b348015610968575f80fd5b506103a26109773660046130c0565b611e04565b348015610987575f80fd5b5061036e610996366004613197565b611eae565b3480156109a6575f80fd5b506103ee6109b5366004613002565b6121f6565b3480156109c5575f80fd5b5061036e6109d4366004612fe7565b6122a9565b3480156109e4575f80fd5b506103a26109f3366004612fe7565b63389a75e1600c9081525f91909152602090205490565b5f610a14826122ee565b92915050565b6001600160a01b0381165f90815260046020526040812054610a3b83612343565b610a14919061349c565b610a4f3382612372565b50565b5f80610a618787878787611b15565b9092509050610a708484610db2565b9550959350505050565b610a8261237d565b610a8c8282612397565b5050565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b6002610ae8816123a3565b838214610b21576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610bcf575f848483818110610b3e57610b3e6134af565b9050602002016020810190610b5391906134e9565b9050801515600103610b9557610b90878784818110610b7457610b746134af565b9050602002016020810190610b899190612fe7565b6001612397565b610bc6565b610bc6878784818110610baa57610baa6134af565b9050602002016020810190610bbf9190612fe7565b6001612372565b50600101610b23565b505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011328054600382558015610c285760018160011c14303b10610c1f5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f610c368385018561365f565b9050610c44815f01516123d4565b60015b816020015151811015610ca057610c9882602001518281518110610c6d57610c6d6134af565b602002602001015183604001518381518110610c8b57610c8b6134af565b602002602001015161240f565b600101610c47565b508060200151515f03610d14576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6e6f20636f726520636f6e74726163742073657400000000000000000000000060448201526064015b60405180910390fd5b610d3a81602001515f81518110610d2d57610d2d6134af565b6020026020010151612450565b606081015160018190556040519081527f74f254e69f1d1aa50fbf15b184112c15530415ac9f4b4bf2b75778c6befd09789060200160405180910390a1508015610dad576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f80546040517f13c8e2de000000000000000000000000000000000000000000000000000000008152600481018590526001600160a01b03909116906313c8e2de906024015f60405180830381865afa158015610e11573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610e389190810190613800565b90505f81608001518381518110610e5157610e516134af565b60209081029190910101516040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f7cc1d5bb0000000000000000000000000000000000000000000000000000000060048201529091506001600160a01b038216906301ffc9a790602401602060405180830381865afa158015610eda573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610efe91906138dd565b15610fd8575f816001600160a01b031663dcc59b6f6040518163ffffffff1660e01b81526004016020604051808303815f875af1158015610f41573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f6591906138f8565b90505f826001600160a01b031663a4d66daf6040518163ffffffff1660e01b81526004016020604051808303815f875af1158015610fa5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fc991906138f8565b9050610bcf8686868585612505565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f903181110000000000000000000000000000000000000000000000000000000060048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa158015611053573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061107791906138dd565b1561031d575f816001600160a01b031663d54ad2a16040518163ffffffff1660e01b81526004016020604051808303815f875af11580156110ba573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110de91906138f8565b90505f826001600160a01b031663a4d66daf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fa5573d5f803e3d5ffd5b5f6002611129816123a3565b5f61113684860186613936565b90505f808251600281111561114d5761114d613a1c565b148061116b575060018251600281111561116957611169613a1c565b145b156111c2575f82606001518060200190518101906111899190613a49565b6020840151604085015182519293506111ba92156111a857835161270a565b6111b58660200151610a1a565b61270a565b5190506112c8565b6002825160028111156111d7576111d7613a1c565b036112bf575f82606001518060200190518101906111f59190613a8b565b90506112b483602001518460400151835f015184602001515f1461121d5784602001516112aa565b602087015185516040517efdd58e00000000000000000000000000000000000000000000000000000000815230600482015260248101919091526001600160a01b039091169062fdd58e90604401602060405180830381865afa158015611286573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112aa91906138f8565b856040015161287a565b6020015190506112c8565b92506112cc9050565b9250505b5092915050565b6112db61237d565b610a8c8282612372565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b6001600160a01b0383165f9081526005602052604090205460ff1661136f576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f13c8e2de000000000000000000000000000000000000000000000000000000008152600481018390525f906001600160a01b038516906313c8e2de906024015f60405180830381865afa1580156113cc573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526113f39190810190613800565b90505f8160800151838151811061140c5761140c6134af565b60209081029190910101516040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f7cc1d5bb0000000000000000000000000000000000000000000000000000000060048201529091506001600160a01b038216906301ffc9a790602401602060405180830381865afa158015611495573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114b991906138dd565b1561159c575f816001600160a01b031663dcc59b6f6040518163ffffffff1660e01b81526004016020604051808303815f875af11580156114fc573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061152091906138f8565b90505f826001600160a01b031663a4d66daf6040518163ffffffff1660e01b81526004016020604051808303815f875af1158015611560573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061158491906138f8565b90506115938686868585612505565b50505050505050565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f903181110000000000000000000000000000000000000000000000000000000060048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa158015611617573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061163b91906138dd565b1561031d575f816001600160a01b031663d54ad2a16040518163ffffffff1660e01b81526004016020604051808303815f875af115801561167e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116a291906138f8565b90505f826001600160a01b031663a4d66daf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611560573d5f803e3d5ffd5b5f806116ef83850185613936565b90505f8151600281111561170557611705613a1c565b0361177e575f81606001518060200190518101906117239190613a49565b8051909150341461177857602082015181516040517fcece04c50000000000000000000000000000000000000000000000000000000081526001600160a01b0390921660048301526024820152604401610d0b565b506119d7565b60018151600281111561179357611793613a1c565b03611840575f81606001518060200190518101906117b19190613a49565b6040830151815160208501519293506117d6926001600160a01b031691903090612a6e565b805160208301516117f0906001600160a01b031630612ad0565b101561177857602082015181516040517fcece04c50000000000000000000000000000000000000000000000000000000081526001600160a01b0390921660048301526024820152604401610d0b565b60028151600281111561185557611855613a1c565b036119ce575f81606001518060200190518101906118739190613a8b565b905081602001516001600160a01b031663f242432a836040015130845f0151856020015186604001516040518663ffffffff1660e01b81526004016118bc959493929190613b77565b5f604051808303815f87803b1580156118d3575f80fd5b505af11580156118e5573d5f803e3d5ffd5b5050506020808301519084015183516040517efdd58e00000000000000000000000000000000000000000000000000000000815230600482015260248101919091529192506001600160a01b03169062fdd58e90604401602060405180830381865afa158015611957573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061197b91906138f8565b101561177857602080830151908201516040517fcece04c50000000000000000000000000000000000000000000000000000000081526001600160a01b0390921660048301526024820152604401610d0b565b5f915050610a14565b5060019392505050565b5f805b828110156119d757611a13848483818110611a0157611a016134af565b90506020028101906109969190613bbe565b611a20575f915050610a14565b6001016119e4565b611a3061237d565b611a395f612b03565b565b6002611a46816123a3565b610a8c82612450565b5f611a59336122a9565b611a8f576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1fa2acdc0000000000000000000000000000000000000000000000000000000081526001600160a01b03871690631fa2acdc90611adc9088908890889088903090600401613c1f565b5f604051808303815f87803b158015611af3575f80fd5b505af1158015611b05573d5f803e3d5ffd5b5060019998505050505050505050565b5f80611b20336122a9565b611b56576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611b638787878787612b40565b915091509550959350505050565b5f80611b808888888787612b40565b9092509050611b9085858561131e565b965096945050505050565b6002611ba6816123a3565b838214611bdf576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610bcf57611c31868683818110611bfe57611bfe6134af565b9050602002016020810190611c139190612fe7565b858584818110611c2557611c256134af565b90506020020135612397565b600101611be1565b6001600160a01b0381165f908152600460209081526040808320546006909252822054611c6584610a1a565b611c6f9190613c6d565b610a149190613c6d565b6002611c84816123a3565b838214611cbd576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610bcf57611d0f868683818110611cdc57611cdc6134af565b9050602002016020810190611cf19190612fe7565b858584818110611d0357611d036134af565b90506020020135612372565b600101611cbf565b611d1f61237d565b63389a75e1600c52805f526020600c208054421115611d4557636f5e88185f526004601cfd5b5f9055610a4f81612b03565b611d5961237d565b8060601b611d6e57637448fbae5f526004601cfd5b610a4f81612b03565b6040517efdd58e000000000000000000000000000000000000000000000000000000008152306004820152602481018290525f906001600160a01b0384169062fdd58e90604401602060405180830381865afa158015611dd9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dfd91906138f8565b9392505050565b6001600160a01b0382165f8181526007602090815260408083208584529091528082205490517efdd58e000000000000000000000000000000000000000000000000000000008152306004820152602481018590529192909162fdd58e90604401602060405180830381865afa158015611e80573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ea491906138f8565b611dfd9190613c6d565b5f611eb8336122a9565b611eee576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611efb83850185613936565b9050600181516002811115611f1257611f12613a1c565b1480611f2f57505f81516002811115611f2d57611f2d613a1c565b145b156120a8575f8160600151806020019051810190611f4d9190613a49565b90505f612710600154835f0151611f649190613c80565b611f6e9190613c97565b90505f611f7e8460200151610a1a565b90508082845f0151611f909190613c6d565b1115611ff557602084015183518290611faa908590613c6d565b6040517f5c54305e0000000000000000000000000000000000000000000000000000000081526001600160a01b03909316600484015260248301919091526044820152606401610d0b565b6040808501516001600160a01b03165f90815260026020529081208054849290612020908490613c6d565b90915550506020808501516001600160a01b03165f9081526004909152604081208054849290612051908490613c6d565b909155505082516020808601516001600160a01b03165f9081526006909152604081208054909190612084908490613c6d565b90915550506020840151604085015184516120a092919061270a565b5050506119d7565b6002815160028111156120bd576120bd613a1c565b036119ce575f81606001518060200190518101906120db9190613a8b565b602083015181516040517efdd58e00000000000000000000000000000000000000000000000000000000815230600482015260248101919091529192505f916001600160a01b039091169062fdd58e90604401602060405180830381865afa158015612149573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061216d91906138f8565b905080826020015111156121cf57602080840151908301516040517f5c54305e0000000000000000000000000000000000000000000000000000000081526001600160a01b039092166004830152602482018390526044820152606401610d0b565b6121ef83602001518460400151845f01518560200151866040015161287a565b50506119d7565b6002612201816123a3565b61271082111561226d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4665652063616e6e6f74206578636565642031303025000000000000000000006044820152606401610d0b565b60018290556040518281527f74f254e69f1d1aa50fbf15b184112c15530415ac9f4b4bf2b75778c6befd09789060200160405180910390a15050565b5f816001600160a01b03166122c1638b78c6d8195490565b6001600160a01b03161480610a145750638b78c6d8600c9081525f83905260209020546003161515610a14565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fde98bbf0000000000000000000000000000000000000000000000000000000001480610a145750610a1482612cae565b5f6001600160a01b0382161561236b576123666001600160a01b03831630612ad0565b610a14565b4792915050565b610a8c82825f612d03565b638b78c6d819543314611a39576382b429005f526004601cfd5b610a8c82826001612d03565b638b78c6d819543314610a4f57638b78c6d8600c52335f52806020600c205416610a4f576382b429005f526004601cfd5b6001600160a01b0316638b78c6d819819055805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b638b78c6d8600c52815f52806020600c205580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a35050565b5f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081178255815260056020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091556124c690829061240f565b6040516001600160a01b03821681527f11dd8c34fa7e859614e12db6445bd13eb507b6e1a382ae61214d4e5c349df0729060200160405180910390a150565b5f8360800151858151811061251c5761251c6134af565b6020908102919091018101516001600160a01b0381165f90815260028352604080822054600390945281205491935081856125578886613c80565b6125619190613c97565b61256b919061349c565b90506125778183613c6d565b6001600160a01b0385165f8181526003602090815260408083209490945583517f38d52e0f000000000000000000000000000000000000000000000000000000008152935191936338d52e0f92600480830193928290030181865afa1580156125e2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126069190613ccf565b60e08901516001600160a01b0382165f908152600460205260408120805493945091928592919061263890849061349c565b90915550505f839003612677576040517fb2e783cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b846126828486613c6d565b036126ad576001600160a01b0386165f90815260026020908152604080832083905560039091528120555b806001600160a01b03168a8c7ff44ff640e648077f3acc130c6ce75240070e8c40adc85b0feeeec28d9dd921b4866040516126ea91815260200190565b60405180910390a46126fd82828561270a565b5050505050505050505050565b3068929eee149b4bd2126854036127285763ab143c065f526004601cfd5b3068929eee149b4bd21268556001600160a01b03821661278e576040517fbf182be80000000000000000000000000000000000000000000000000000000081526001600160a01b0380851660048301528316602482015260448101829052606401610d0b565b61279783610a1a565b8111156127f257826127a884610a1a565b6040517f5c54305e0000000000000000000000000000000000000000000000000000000081526001600160a01b039092166004830152602482015260448101829052606401610d0b565b6001600160a01b03831661280f5761280a8282612d5a565b612823565b6128236001600160a01b0384168383612d73565b604080516001600160a01b038481168252602082018490528516917fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542910160405180910390a23868929eee149b4bd2126855505050565b3068929eee149b4bd2126854036128985763ab143c065f526004601cfd5b3068929eee149b4bd21268556001600160a01b0384166128fe576040517fbf182be80000000000000000000000000000000000000000000000000000000081526001600160a01b0380871660048301528516602482015260448101839052606401610d0b565b6129088584611d77565b821115612964578461291a8685611d77565b6040517f5c54305e0000000000000000000000000000000000000000000000000000000081526001600160a01b039092166004830152602482015260448101839052606401610d0b565b6001600160a01b0385165f90815260076020908152604080832086845290915281208054849290612996908490613c6d565b90915550506040517ff242432a0000000000000000000000000000000000000000000000000000000081526001600160a01b0386169063f242432a906129e89030908890889088908890600401613b77565b5f604051808303815f87803b1580156129ff575f80fd5b505af1158015612a11573d5f803e3d5ffd5b5050604080516001600160a01b03888116825260208201879052891693507fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd4354292500160405180910390a23868929eee149b4bd21268555050505050565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af18060015f511416612ac257803d873b151710612ac257637939f4245f526004601cfd5b505f60605260405250505050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b638b78c6d81980546001600160a01b039092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b5f80612b4b336122a9565b612b81576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6040518060400160405280306001600160a01b0316815260200188888080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052509390945250506040519293508a9290915081906001600160a01b0384169063dd98558c90612bff908790602001613cea565b6040516020818303038152906040528a8a6040518463ffffffff1660e01b8152600401612c2e93929190613d1f565b60408051808303815f875af1158015612c49573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c6d9190613d43565b6001600160a01b0381165f90815260066020526040812080549395509193508492612c9990849061349c565b90915550919b909a5098505050505050505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fde98bbf0000000000000000000000000000000000000000000000000000000001480610a145750610a1482612dc6565b638b78c6d8600c52825f526020600c20805483811783612d24575080841681185b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f385f3884865af1610a8c5763b12d13eb5f526004601cfd5b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af18060015f511416612dbc57803d853b151710612dbc576390b8ec185f526004601cfd5b505f603452505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f5fbfaa4e000000000000000000000000000000000000000000000000000000001480612e5857507fffffffff0000000000000000000000000000000000000000000000000000000082167f4e2312e000000000000000000000000000000000000000000000000000000000145b80612ea457507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b80610a145750610a14825f7fffffffff0000000000000000000000000000000000000000000000000000000082167fe49cedd7000000000000000000000000000000000000000000000000000000001480610a145750610a14825f7fffffffff0000000000000000000000000000000000000000000000000000000082167f6ab67a0d000000000000000000000000000000000000000000000000000000001480610a1457507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610a14565b5f60208284031215612fa4575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611dfd575f80fd5b6001600160a01b0381168114610a4f575f80fd5b5f60208284031215612ff7575f80fd5b8135611dfd81612fd3565b5f60208284031215613012575f80fd5b5035919050565b5f8083601f840112613029575f80fd5b50813567ffffffffffffffff811115613040575f80fd5b602083019150836020828501011115613057575f80fd5b9250929050565b5f805f805f60808688031215613072575f80fd5b853561307d81612fd3565b9450602086013567ffffffffffffffff811115613098575f80fd5b6130a488828901613019565b9699909850959660408101359660609091013595509350505050565b5f80604083850312156130d1575f80fd5b82356130dc81612fd3565b946020939093013593505050565b5f8083601f8401126130fa575f80fd5b50813567ffffffffffffffff811115613111575f80fd5b6020830191508360208260051b8501011115613057575f80fd5b5f805f806040858703121561313e575f80fd5b843567ffffffffffffffff811115613154575f80fd5b613160878288016130ea565b909550935050602085013567ffffffffffffffff81111561317f575f80fd5b61318b878288016130ea565b95989497509550505050565b5f80602083850312156131a8575f80fd5b823567ffffffffffffffff8111156131be575f80fd5b6131ca85828601613019565b90969095509350505050565b5f80604083850312156131e7575f80fd5b50508035926020909101359150565b5f805f60608486031215613208575f80fd5b833561321381612fd3565b95602085013595506040909401359392505050565b5f8060208385031215613239575f80fd5b823567ffffffffffffffff81111561324f575f80fd5b6131ca858286016130ea565b5f805f805f6080868803121561326f575f80fd5b853561327a81612fd3565b94506020860135935060408601359250606086013567ffffffffffffffff8111156132a3575f80fd5b6132af88828901613019565b969995985093965092949392505050565b5f805f805f8060a087890312156132d5575f80fd5b86356132e081612fd3565b9550602087013567ffffffffffffffff8111156132fb575f80fd5b61330789828a01613019565b909650945050604087013561331b81612fd3565b959894975092956060810135946080909101359350915050565b5f805f805f805f8060a0898b03121561334c575f80fd5b883561335781612fd3565b9750602089013561336781612fd3565b9650604089013567ffffffffffffffff811115613382575f80fd5b61338e8b828c016130ea565b909750955050606089013567ffffffffffffffff8111156133ad575f80fd5b6133b98b828c016130ea565b909550935050608089013567ffffffffffffffff8111156133d8575f80fd5b6133e48b828c01613019565b999c989b5096995094979396929594505050565b5f805f805f8060a0878903121561340d575f80fd5b863561341881612fd3565b9550602087013561342881612fd3565b94506040870135935060608701359250608087013567ffffffffffffffff811115613451575f80fd5b61345d89828a01613019565b979a9699509497509295939492505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610a1457610a1461346f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8015158114610a4f575f80fd5b5f602082840312156134f9575f80fd5b8135611dfd816134dc565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516080810167ffffffffffffffff8111828210171561355457613554613504565b60405290565b604051610100810167ffffffffffffffff8111828210171561355457613554613504565b6040516060810167ffffffffffffffff8111828210171561355457613554613504565b604051601f8201601f1916810167ffffffffffffffff811182821017156135ca576135ca613504565b604052919050565b5f67ffffffffffffffff8211156135eb576135eb613504565b5060051b60200190565b5f82601f830112613604575f80fd5b8135613617613612826135d2565b6135a1565b8082825260208201915060208360051b860101925085831115613638575f80fd5b602085015b8381101561365557803583526020928301920161363d565b5095945050505050565b5f6020828403121561366f575f80fd5b813567ffffffffffffffff811115613685575f80fd5b820160808185031215613696575f80fd5b61369e613531565b81356136a981612fd3565b8152602082013567ffffffffffffffff8111156136c4575f80fd5b8201601f810186136136d4575f80fd5b80356136e2613612826135d2565b8082825260208201915060208360051b850101925088831115613703575f80fd5b6020840193505b8284101561372e57833561371d81612fd3565b82526020938401939091019061370a565b6020850152505050604082013567ffffffffffffffff81111561374f575f80fd5b61375b868285016135f5565b604083015250606091820135918101919091529392505050565b805161378081612fd3565b919050565b5f82601f830112613794575f80fd5b81516137a2613612826135d2565b8082825260208201915060208360051b8601019250858311156137c3575f80fd5b602085015b838110156136555780516137db81612fd3565b8352602092830192016137c8565b805167ffffffffffffffff81168114613780575f80fd5b5f60208284031215613810575f80fd5b815167ffffffffffffffff811115613826575f80fd5b82016101008185031215613838575f80fd5b61384061355a565b61384982613775565b815261385760208301613775565b602082015261386860408301613775565b604082015261387960608301613775565b6060820152608082015167ffffffffffffffff811115613897575f80fd5b6138a386828501613785565b6080830152506138b560a083016137e9565b60a082015260c082810151908201526138d060e08301613775565b60e0820152949350505050565b5f602082840312156138ed575f80fd5b8151611dfd816134dc565b5f60208284031215613908575f80fd5b5051919050565b5f67ffffffffffffffff82111561392857613928613504565b50601f01601f191660200190565b5f60208284031215613946575f80fd5b813567ffffffffffffffff81111561395c575f80fd5b82016080818503121561396d575f80fd5b613975613531565b813560038110613983575f80fd5b8152602082013561399381612fd3565b602082015260408201356139a681612fd3565b6040820152606082013567ffffffffffffffff8111156139c4575f80fd5b80830192505084601f8301126139d8575f80fd5b81356139e66136128261390f565b8181528660208386010111156139fa575f80fd5b816020850160208301375f918101602001919091526060820152949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f6020828403128015613a5a575f80fd5b506040516020810167ffffffffffffffff81118282101715613a7e57613a7e613504565b6040529151825250919050565b5f60208284031215613a9b575f80fd5b815167ffffffffffffffff811115613ab1575f80fd5b820160608185031215613ac2575f80fd5b613aca61357e565b8151815260208083015190820152604082015167ffffffffffffffff811115613af1575f80fd5b80830192505084601f830112613b05575f80fd5b8151613b136136128261390f565b818152866020838601011115613b27575f80fd5b8160208501602083015e5f918101602001919091526040820152949350505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b6001600160a01b03861681526001600160a01b038516602082015283604082015282606082015260a060808201525f613bb360a0830184613b49565b979650505050505050565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613bf1575f80fd5b83018035915067ffffffffffffffff821115613c0b575f80fd5b602001915036819003821315613057575f80fd5b85815284602082015260806040820152826080820152828460a08301375f60a084830101525f60a0601f19601f86011683010190506001600160a01b03831660608301529695505050505050565b80820180821115610a1457610a1461346f565b8082028115828204841417610a1457610a1461346f565b5f82613cca577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b5f60208284031215613cdf575f80fd5b8151611dfd81612fd3565b602081526001600160a01b0382511660208201525f6020830151604080840152613d176060840182613b49565b949350505050565b606081525f613d316060830186613b49565b60208301949094525060400152919050565b5f8060408385031215613d54575f80fd5b82516020840151909250613d6781612fd3565b80915050925092905056fea264697066735822122094e4a43d3eef4f57a37d0c9e7b8095238f9305dbed19758d472ae5a26c699ad464736f6c634300081a0033", o = class o extends g {
438
+ constructor() {
439
+ super(...arguments), this.abi = m;
440
+ }
441
+ /**
442
+ * Allocates assets to the budget.
443
+ * The caller must have already approved the contract to transfer the asset
444
+ * If the asset transfer fails, the allocation will revert
445
+ *
446
+ * @public
447
+ * @async
448
+ * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer
449
+ * @param {?WriteParams} [params]
450
+ * @returns {Promise<boolean>} - True if the allocation was successful
451
+ */
452
+ async allocate(f, b) {
453
+ return await this.awaitResult(this.allocateRaw(f, b));
454
+ }
455
+ /**
456
+ * Allocates assets to the budget.
457
+ * The caller must have already approved the contract to transfer the asset
458
+ * If the asset transfer fails, the allocation will revert
459
+ *
460
+ * @public
461
+ * @async
462
+ * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer
463
+ * @param {?WriteParams} [params]
464
+ * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the allocation was successful
465
+ */
466
+ async allocateRaw(f, b) {
467
+ const { request: a, result: d } = await F(
468
+ this._config,
469
+ {
470
+ address: this.assertValidAddress(),
471
+ args: [s(f)],
472
+ ...this.optionallyAttachAccount(),
473
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
474
+ ...b
475
+ }
476
+ );
477
+ return { hash: await V(this._config, a), result: d };
478
+ }
479
+ /**
480
+ * Clawbacks assets from the budget.
481
+ * Only the owner can directly clawback assets from the budget
482
+ * If the amount is zero, the entire balance of the asset will be transferred to the receiver
483
+ * If the asset transfer fails, the reclamation will revert
484
+ *
485
+ * @public
486
+ * @async
487
+ * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer
488
+ * @param {?WriteParams} [params]
489
+ * @returns {Promise<boolean>} - True if the request was successful
490
+ */
491
+ async clawback(f, b) {
492
+ return await this.awaitResult(this.clawbackRaw(f, b));
493
+ }
494
+ /**
495
+ * Clawbacks assets from the budget.
496
+ * Only the owner or admin can directly clawback assets from the budget
497
+ * If the amount is zero, the entire balance of the asset will be transferred to the receiver
498
+ * If the asset transfer fails, the reclamation will revert
499
+ *
500
+ * @public
501
+ * @async
502
+ * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer
503
+ * @param {?WriteParams} [params]
504
+ * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the request was successful
505
+ */
506
+ async clawbackRaw(f, b) {
507
+ const { request: a, result: d } = await B(
508
+ this._config,
509
+ {
510
+ address: this.assertValidAddress(),
511
+ args: [s(f)],
512
+ ...this.optionallyAttachAccount(),
513
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
514
+ ...b
515
+ }
516
+ );
517
+ return { hash: await M(this._config, a), result: d };
518
+ }
519
+ /**
520
+ * Clawbacks assets from an incentive associated with the budget via Boost Core.
521
+ * Only the authorized users can clawback assets from an incentive.
522
+ * If the asset transfer fails, the reclamation will revert.
523
+ *
524
+ * @example
525
+ * ```ts
526
+ * const [amount, address] = await budgets.budget.clawbackFromTarget(
527
+ * core.assertValidAddress(),
528
+ * erc20Incentive.buildClawbackData(1n),
529
+ * boost.id,
530
+ * incentiveId,
531
+ * );
532
+ * ```
533
+ * @public
534
+ * @async
535
+ * @param {Address} target - The address of a contract implementing clawback, typically `BoostCore`
536
+ * @param {Hex} data - The encoded data payload for the clawback, can be acquired with `incentive.buildClawbackData`
537
+ * @param {bigint | number} boostId - The ID of the boost
538
+ * @param {bigint | number} incentiveId - The ID of the incentive
539
+ * @param {?WriteParams} [params] - Optional write parameters
540
+ * @returns {Promise<[bigint, Address]>} - Returns a tuple of amount reclaimed and the address reclaimed from
541
+ */
542
+ async clawbackFromTarget(f, b, a, d, e) {
543
+ return await this.awaitResult(
544
+ this.clawbackFromTargetRaw(f, b, a, d, e)
545
+ );
546
+ }
547
+ /**
548
+ * Clawbacks assets from an incentive associated with the budget via Boost Core.
549
+ * Only the authorized users can clawback assets from an incentive.
550
+ * If the asset transfer fails, the reclamation will revert.
551
+ *
552
+ * @example
553
+ * ```ts
554
+ * const { hash, result: [ amount, address ] } = await budgets.budget.clawbackFromTargetRaw(
555
+ * core.assertValidAddress(),
556
+ * erc20Incentive.buildClawbackData(1n),
557
+ * boost.id,
558
+ * incentiveId,
559
+ * );
560
+ * ```
561
+ * @public
562
+ * @async
563
+ * @param {Address} target - The address of a contract implementing clawback, typically `BoostCore`
564
+ * @param {Hex} data - The encoded data payload for the clawback, can be acquired with `incentive.buildClawbackData`
565
+ * @param {bigint | number} boostId - The ID of the boost
566
+ * @param {bigint | number} incentiveId - The ID of the incentive
567
+ * @param {?WriteParams} [params] - Optional write parameters
568
+ * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - Returns transaction hash and simulated result
569
+ */
570
+ async clawbackFromTargetRaw(f, b, a, d, e) {
571
+ const { request: c, result: r } = await q(
572
+ this._config,
573
+ {
574
+ address: this.assertValidAddress(),
575
+ args: [f, b, BigInt(a), BigInt(d)],
576
+ ...this.optionallyAttachAccount(),
577
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
578
+ ...e
579
+ }
580
+ );
581
+ return { hash: await T(
582
+ this._config,
583
+ c
584
+ ), result: r };
585
+ }
586
+ /**
587
+ * Disburses assets from the budget to a single recipient
588
+ * If the asset transfer fails, the disbursement will revert
589
+ *
590
+ * @public
591
+ * @async
592
+ * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer
593
+ * @param {?WriteParams} [params]
594
+ * @returns {Promise<boolean>} - True if the disbursement was successful
595
+ */
596
+ async disburse(f, b) {
597
+ return await this.awaitResult(this.disburseRaw(f, b));
598
+ }
599
+ /**
600
+ * Disburses assets from the budget to a single recipient
601
+ * If the asset transfer fails, the disbursement will revert
602
+ *
603
+ * @public
604
+ * @async
605
+ * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer
606
+ * @param {?WriteParams} [params]
607
+ * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the disbursement was successful
608
+ */
609
+ async disburseRaw(f, b) {
610
+ const { request: a, result: d } = await z(
611
+ this._config,
612
+ {
613
+ address: this.assertValidAddress(),
614
+ args: [s(f)],
615
+ ...this.optionallyAttachAccount(),
616
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
617
+ ...b
618
+ }
619
+ );
620
+ return { hash: await x(this._config, a), result: d };
621
+ }
622
+ /**
623
+ * Disburses assets from the budget to multiple recipients
624
+ *
625
+ * @public
626
+ * @async
627
+ * @param {Array<FungibleTransferPayload | ERC1155TransferPayload>} transfers
628
+ * @param {?WriteParams} [params]
629
+ * @returns {Promise<boolean>} - True if all disbursements were successful
630
+ */
631
+ async disburseBatch(f, b) {
632
+ return await this.awaitResult(this.disburseBatchRaw(f, b));
633
+ }
634
+ /**
635
+ * Disburses assets from the budget to multiple recipients
636
+ *
637
+ * @public
638
+ * @async
639
+ * @param {Array<FungibleTransferPayload | ERC1155TransferPayload>} transfers
640
+ * @param {?WriteParams} [params]
641
+ * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if all disbursements were successful
642
+ */
643
+ async disburseBatchRaw(f, b) {
644
+ const { request: a, result: d } = await P(
645
+ this._config,
646
+ {
647
+ address: this.assertValidAddress(),
648
+ args: [f.map(s)],
649
+ ...this.optionallyAttachAccount(),
650
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
651
+ ...b
652
+ }
653
+ );
654
+ return { hash: await k(this._config, a), result: d };
655
+ }
656
+ /**
657
+ * Pays out reserved management fees to the boost owner
658
+ * for a given incentive
659
+ *
660
+ * @public
661
+ * @async
662
+ * @param {bigint | string} boostId
663
+ * @param {bigint | string} incentiveId
664
+ * @param {?WriteParams} [params]
665
+ * @returns {Promise<boolean>} - True if the payout was successful
666
+ */
667
+ async payManagementFee(f, b, a, d) {
668
+ return a ? await this.awaitResult(
669
+ this.payManagementFeeWithCoreRaw(a, f, b)
670
+ ) : await this.awaitResult(
671
+ this.payManagementFeeRaw(f, b, d)
672
+ );
673
+ }
674
+ /**
675
+ * Pays out reserved management fees to the boost owner
676
+ *
677
+ * @public
678
+ * @async
679
+ * @param {Address} boostCore
680
+ * @param bigint boostId
681
+ * @param bigint incentiveId
682
+ * @param {?WriteParams} [params]
683
+ * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the payout was successful
684
+ */
685
+ async payManagementFeeRaw(f, b, a) {
686
+ const { request: d, result: e } = await C(this._config, {
687
+ address: this.assertValidAddress(),
688
+ args: [f, b],
689
+ ...this.optionallyAttachAccount(),
690
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
691
+ ...a
692
+ });
693
+ return { hash: await D(
694
+ this._config,
695
+ // @ts-ignore getting a type: 'legacy' | undefined is not assignable to type 'eip7702' | undefined error
696
+ d
697
+ ), result: e };
698
+ }
699
+ /**
700
+ * Pays out reserved management fees to the boost owner
701
+ *
702
+ * @public
703
+ * @async
704
+ * @param {Address} boostCore
705
+ * @param bigint boostId
706
+ * @param bigint incentiveId
707
+ * @param {?WriteParams} [params]
708
+ * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the payout was successful
709
+ */
710
+ async payManagementFeeWithCoreRaw(f, b, a, d) {
711
+ const { request: e, result: c } = await K(this._config, {
712
+ address: this.assertValidAddress(),
713
+ args: [f, b, a],
714
+ ...this.optionallyAttachAccount(),
715
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
716
+ ...d
717
+ });
718
+ return { hash: await N(
719
+ this._config,
720
+ // @ts-ignore getting a type: 'legacy' | undefined is not assignable to type 'eip7702' | undefined error
721
+ e
722
+ ), result: c };
723
+ }
724
+ /**
725
+ * Sets the management fee for the budget
726
+ * @public
727
+ * @async
728
+ * @param {bigint} managementFee
729
+ * @param {?WriteParams} [params]
730
+ * @returns {Promise<void>} - will throw if the transaction fails
731
+ */
732
+ async setManagementFee(f, b) {
733
+ return await this.awaitResult(
734
+ this.setManagementFeeRaw(f, b)
735
+ );
736
+ }
737
+ /**
738
+ * Sets the management fee for the budget
739
+ * @public
740
+ * @async
741
+ * @param {bigint} managementFee
742
+ * @param {?WriteParams} [params]
743
+ * @returns {Promise<{ hash: `0x${string}`; result: void; }>}
744
+ */
745
+ async setManagementFeeRaw(f, b) {
746
+ const { request: a, result: d } = await Z(this._config, {
747
+ address: this.assertValidAddress(),
748
+ args: [f],
749
+ ...this.optionallyAttachAccount(),
750
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
751
+ ...b
752
+ });
753
+ return { hash: await L(
754
+ this._config,
755
+ a
756
+ ), result: d };
757
+ }
758
+ /**
759
+ * Get the configured management fee for the budget
760
+ * @public
761
+ * @param {?ReadParams} [params]
762
+ * @returns {Promise<bigint>} - The management fee
763
+ */
764
+ async managementFee(f) {
765
+ return await Q(this._config, {
766
+ address: this.assertValidAddress(),
767
+ args: [],
768
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
769
+ ...f
770
+ });
771
+ }
772
+ /**
773
+ * Get the owner of the budget
774
+ *
775
+ * @public
776
+ * @param {?ReadParams} [params]
777
+ * @returns {Promise<Address>}
778
+ */
779
+ owner(f) {
780
+ return v(this._config, {
781
+ address: this.assertValidAddress(),
782
+ args: [],
783
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
784
+ ...f
785
+ });
786
+ }
787
+ /**
788
+ * Get the total amount of assets allocated to the budget, including any that have been distributed
789
+ * If a tokenId is provided, get the total amount of ERC1155 assets allocated to the budget, including any that have been distributed
790
+ *
791
+ * @public
792
+ * @param {Address} [asset="0x0000000000000000000000000000000000000000"] - The address of the asset
793
+ * @param {?(bigint | undefined)} [tokenId] - The ID of the token
794
+ * @param {?ReadParams} [params]
795
+ * @returns {Promise<bigint>} - The total amount of assets
796
+ */
797
+ total(f = t, b, a) {
798
+ return W(this._config, {
799
+ address: this.assertValidAddress(),
800
+ args: b ? [f, b] : [f],
801
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
802
+ ...a
803
+ });
804
+ }
805
+ /**
806
+ * Get the amount of assets available for distribution from the budget.
807
+ * If a tokenId is provided, get the amount of ERC1155 assets available for distribution from the budget
808
+ *
809
+ * @public
810
+ * @param {Address} [asset="0x0000000000000000000000000000000000000000"]
811
+ * @param {?(bigint | undefined)} [tokenId]
812
+ * @param {?ReadParams} [params]
813
+ * @returns {Promise<bigint>} - The amount of assets available
814
+ */
815
+ available(f = t, b, a) {
816
+ return $(this._config, {
817
+ address: this.assertValidAddress(),
818
+ args: b ? [f, b] : [f],
819
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
820
+ ...a
821
+ });
822
+ }
823
+ /**
824
+ * Get the amount of assets that have been distributed from the budget.
825
+ * If a tokenId is provided, get the amount of ERC1155 assets that have been distributed from the budget
826
+ *
827
+ * @public
828
+ * @param {Address} [asset="0x0000000000000000000000000000000000000000"]
829
+ * @param {?(bigint | undefined)} [tokenId]
830
+ * @param {?ReadParams} [params]
831
+ * @returns {Promise<bigint>} - The amount of assets distributed
832
+ */
833
+ distributed(f = t, b, a) {
834
+ return E(this._config, {
835
+ address: this.assertValidAddress(),
836
+ args: b ? [f, b] : [f],
837
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
838
+ ...a
839
+ });
840
+ }
841
+ /**
842
+ * @inheritdoc
843
+ *
844
+ * @public
845
+ * @param {?ManagedBudgetWithFeesV2Payload} [_payload]
846
+ * @param {?DeployableOptions} [_options]
847
+ * @returns {GenericDeployableParams}
848
+ */
849
+ buildParameters(f, b) {
850
+ var e;
851
+ const [a, d] = this.validateDeploymentConfig(
852
+ f,
853
+ b
854
+ );
855
+ if (!a.owner || a.owner === t) {
856
+ const c = d.account ? d.account.address : d.config ? G(d.config).address : (e = this._account) == null ? void 0 : e.address;
857
+ if (c)
858
+ a.owner = c;
859
+ else
860
+ throw new H();
861
+ }
862
+ return {
863
+ abi: m,
864
+ bytecode: A0,
865
+ args: [p0(a)],
866
+ ...this.optionallyAttachAccount(d.account)
867
+ };
868
+ }
869
+ };
870
+ o.bases = {
871
+ 31337: void 0,
872
+ ...O
873
+ }, o.registryType = y.BUDGET;
874
+ let l = o;
875
+ const p0 = ({
876
+ owner: i,
877
+ authorized: f,
878
+ roles: b,
879
+ managementFee: a
880
+ }) => U(
881
+ j([
882
+ "ManagedBudgetWithFeesV2Payload payload",
883
+ "struct ManagedBudgetWithFeesV2Payload { address owner; address[] authorized; uint256[] roles; uint256 managementFee; }"
884
+ ]),
885
+ [
886
+ {
887
+ owner: i,
888
+ authorized: f,
889
+ roles: b,
890
+ managementFee: a
891
+ }
892
+ ]
893
+ ), m0 = "0x6080604052348015600e575f80fd5b506131eb8061001c5f395ff3fe6080604052600436106102a3575f3560e01c8063715018a61161016d578063dcc21361116100ca578063f8724aba1161007e578063fa4ca9b111610063578063fa4ca9b1146107e4578063fe9fbb8014610803578063fee81cf414610822576102aa565b8063f8724aba146107ca578063f9a802c3146105e9576102aa565b8063f04e283e116100af578063f04e283e1461075f578063f23a6e6114610772578063f2fde38b146107b7576102aa565b8063dcc213611461072c578063ec87621c1461074b576102aa565b80639e247d1911610121578063bc197c8111610106578063bc197c81146106c6578063be4994f81461070d578063d2514e8414610500576102aa565b80639e247d191461066a578063b30057931461067d576102aa565b806375b238fc1161015257806375b238fc146105d5578063774c33ab146105e95780638da5cb5b14610637576102aa565b8063715018a6146105ba578063753b92f9146105c2576102aa565b8063439fab911161021b57806354d1f13d116101cf5780635aef467a116101b45780635aef467a1461054157806361400c99146105545780636afdd85014610573576102aa565b806354d1f13d146104f8578063578bcf3514610500576102aa565b8063474f5a4411610200578063474f5a44146104915780634a4ee7b1146104b0578063514e62fc146104c3576102aa565b8063439fab9114610451578063451cc19114610470576102aa565b80631cd64df41161027257806328d6183b1161025757806328d6183b146103a25780632de94807146104015780634359d28a14610432576102aa565b80631cd64df414610365578063256929621461039a576102aa565b806301ffc9a7146102dc57806310098ad514610310578063183a4f6e1461033d5780631c10893f14610352576102aa565b366102aa57005b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3480156102e7575f80fd5b506102fb6102f6366004612466565b610853565b60405190151581526020015b60405180910390f35b34801561031b575f80fd5b5061032f61032a3660046124cd565b505f90565b604051908152602001610307565b61035061034b3660046124e8565b610946565b005b6103506103603660046124ff565b610953565b348015610370575f80fd5b506102fb61037f3660046124ff565b638b78c6d8600c9081525f9290925260209091205481161490565b610350610969565b3480156103ad575f80fd5b507f2929d19c000000000000000000000000000000000000000000000000000000005b6040517fffffffff000000000000000000000000000000000000000000000000000000009091168152602001610307565b34801561040c575f80fd5b5061032f61041b3660046124cd565b638b78c6d8600c9081525f91909152602090205490565b34801561043d575f80fd5b5061035061044c366004612571565b6109b6565b34801561045c575f80fd5b5061035061046b36600461261b565b610ab0565b34801561047b575f80fd5b5061032f61048a36600461261b565b5f92915050565b34801561049c575f80fd5b5061032f6104ab36600461261b565b610b34565b6103506104be3660046124ff565b610b3d565b3480156104ce575f80fd5b506102fb6104dd3660046124ff565b638b78c6d8600c9081525f9290925260209091205416151590565b610350610b4f565b34801561050b575f80fd5b5061032f61051a3660046124cd565b73ffffffffffffffffffffffffffffffffffffffff165f9081526020819052604090205490565b6102fb61054f36600461261b565b610b88565b34801561055f575f80fd5b506102fb61056e36600461265a565b610bbb565b34801561057e575f80fd5b506105956e22d473030f116ddee9f6b43ac78ba381565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610307565b610350610c0c565b6103506105d036600461268d565b610c1f565b3480156105e0575f80fd5b5061032f600281565b3480156105f4575f80fd5b5061032f6106033660046124ff565b73ffffffffffffffffffffffffffffffffffffffff919091165f908152600160209081526040808320938352929052205490565b348015610642575f80fd5b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754610595565b61035061067836600461274f565b61100e565b348015610688575f80fd5b5061069c6106973660046127d1565b611179565b6040805192835273ffffffffffffffffffffffffffffffffffffffff909116602083015201610307565b3480156106d1575f80fd5b506103d06106e0366004612833565b7fbc197c810000000000000000000000000000000000000000000000000000000098975050505050505050565b348015610718575f80fd5b50610350610727366004612571565b61137c565b348015610737575f80fd5b50610350610746366004612571565b61141a565b348015610756575f80fd5b5061032f600181565b61035061076d3660046124cd565b6114b8565b34801561077d575f80fd5b506103d061078c3660046128f6565b7ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b6103506107c53660046124cd565b6114f2565b3480156107d5575f80fd5b5061032f61048a3660046124ff565b3480156107ef575f80fd5b506102fb6107fe36600461261b565b611518565b34801561080e575f80fd5b506102fb61081d3660046124cd565b611726565b34801561082d575f80fd5b5061032f61083c3660046124cd565b63389a75e1600c9081525f91909152602090205490565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f2929d19c0000000000000000000000000000000000000000000000000000000014806108e557507fffffffff0000000000000000000000000000000000000000000000000000000082167f4e2312e000000000000000000000000000000000000000000000000000000000145b8061093157507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b80610940575061094082611753565b92915050565b61095033826117a8565b50565b61095b6117b3565b61096582826117e8565b5050565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b60026109c1816117f4565b8382146109fa576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610aa8575f848483818110610a1757610a1761296d565b9050602002016020810190610a2c919061299a565b9050801515600103610a6e57610a69878784818110610a4d57610a4d61296d565b9050602002016020810190610a6291906124cd565b60016117e8565b610a9f565b610a9f878784818110610a8357610a8361296d565b9050602002016020810190610a9891906124cd565b60016117a8565b506001016109fc565b505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011328054600382558015610b015760018160011c14303b10610af85763f92ee8a95f526004601cfd5b818160ff1b1b91505b506040517f7a7da9f800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6102aa6117b3565b610b456117b3565b61096582826117a8565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f805b82811015610c0257610bed848483818110610bdb57610bdb61296d565b90506020028101906107fe91906129b9565b610bfa575f915050610940565b600101610bbe565b5060019392505050565b610c146117b3565b610c1d5f611840565b565b604080516020810190915260608152610c38818a6118a5565b505f8967ffffffffffffffff811115610c5357610c53612a1a565b604051908082528060200260200182016040528015610c9757816020015b604080518082019091525f8082526020820152815260200190600190039081610c715790505b5090505f8a67ffffffffffffffff811115610cb457610cb4612a1a565b604051908082528060200260200182016040528015610cf857816020015b604080518082019091525f8082526020820152815260200190600190039081610cd25790505b5090505f805b8c811015610e52575f8e8e83818110610d1957610d1961296d565b9050602002810190610d2b91906129b9565b810190610d389190612b0f565b9050600181516002811115610d4f57610d4f612bfa565b03610e02575f805f610d61845f6118e2565b92509250925080955060405180604001604052803073ffffffffffffffffffffffffffffffffffffffff16815260200183815250888681518110610da757610da761296d565b602002602001018190525060405180604001604052808473ffffffffffffffffffffffffffffffffffffffff16815260200183815250878681518110610def57610def61296d565b6020026020010181905250505050610e31565b610e2e8f8f84818110610e1757610e1761296d565b9050602002810190610e2991906129b9565b611a06565b92505b604080516060815290528551600583901b0160200183905250600101610cfe565b50604080516060810182528381526020810188905280820187905290517fedd9444b0000000000000000000000000000000000000000000000000000000081526e22d473030f116ddee9f6b43ac78ba39163edd9444b91610ebe9190879033908e908e90600401612cac565b5f604051808303815f87803b158015610ed5575f80fd5b505af1158015610ee7573d5f803e3d5ffd5b50506040517fe21ff73100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8e16925063e21ff7319150610f3f908d908d90600401612d87565b5f604051808303815f875af1158015610f5a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f819190810190612e52565b505f610f8b855190565b90505f5b8151811015610ffd575f610fb9838381518110610fae57610fae61296d565b602002602001015190565b9050805c15610ff4576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50600101610f8f565b505050505050505050505050505050565b60408051602081019091526060815261102781866118a5565b505f5b85811015611067575f611048888884818110610e1757610e1761296d565b604080516060815290528351600584901b01602001525060010161102a565b506040517fe21ff73100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063e21ff731906110bc9086908690600401612d87565b5f604051808303815f875af11580156110d7573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526110fe9190810190612e52565b505f611108825190565b90505f5b815181101561116f575f61112b838381518110610fae57610fae61296d565b9050805c15611166576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060010161110c565b5050505050505050565b5f805f8773ffffffffffffffffffffffffffffffffffffffff166313c8e2de866040518263ffffffff1660e01b81526004016111b791815260200190565b5f60405180830381865afa1580156111d1573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526111f89190810190612e52565b90508060e0015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611263576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60405180604001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200189898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052509390945250506040519293508b92909150819073ffffffffffffffffffffffffffffffffffffffff84169063dd98558c906112fb908790602001612f5d565b6040516020818303038152906040528b8b6040518463ffffffff1660e01b815260040161132a93929190612f97565b60408051808303815f875af1158015611345573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113699190612fbb565b909d909c509a5050505050505050505050565b6002611387816117f4565b8382146113c0576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610aa8576114128686838181106113df576113df61296d565b90506020020160208101906113f491906124cd565b8585848181106114065761140661296d565b905060200201356117e8565b6001016113c2565b6002611425816117f4565b83821461145e576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610aa8576114b086868381811061147d5761147d61296d565b905060200201602081019061149291906124cd565b8585848181106114a4576114a461296d565b905060200201356117a8565b600101611460565b6114c06117b3565b63389a75e1600c52805f526020600c2080544211156114e657636f5e88185f526004601cfd5b5f905561095081611840565b6114fa6117b3565b8060601b61150f57637448fbae5f526004601cfd5b61095081611840565b5f8061152683850185612b0f565b905060018151600281111561153d5761153d612bfa565b148061155a57505f8151600281111561155857611558612bfa565b145b1561162f575f81606001518060200190518101906115789190612fea565b90505f61159e836020015173ffffffffffffffffffffffffffffffffffffffff16908190565b508251909150815c9081101561161157602084015183516040517f5c54305e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90921660048301526024820183905260448201526064015b60405180910390fd5b61162784602001518560400151855f0151611ce2565b505050610c02565b60028151600281111561164457611644612bfa565b0361171d575f8160600151806020019051810190611662919061302c565b90505f61167783602001518360200151611edc565b5090505f815c905080836020015111156116ec57602080850151908401516040517f5c54305e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9092166004830152602482018390526044820152606401611608565b60208301516116fc908390611f41565b5061162784602001518560400151855f015186602001518760400151611f59565b5f915050610940565b5f3073ffffffffffffffffffffffffffffffffffffffff83160361174c57506001919050565b505f919050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fe49cedd7000000000000000000000000000000000000000000000000000000001480610940575061094082612185565b61096582825f61221b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610c1d576382b429005f526004601cfd5b6109658282600161221b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754331461095057638b78c6d8600c52335f52806020600c205416610950576382b429005f526004601cfd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b60408051606081529052816118ba8183612272565b50805180518084106118d85780840360051b368260010160051b8401375b5091909152919050565b5f805f8085606001518060200190518101906118fe9190612fea565b905084156119ba576040860151815160208801516119369273ffffffffffffffffffffffffffffffffffffffff90911691309061234e565b8051602087015161195d9073ffffffffffffffffffffffffffffffffffffffff16306123b0565b10156119ba57602086015181516040517fcece04c500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90921660048301526024820152604401611608565b5f806119df886020015173ffffffffffffffffffffffffffffffffffffffff16908190565b845191935091506119f19083906123e3565b50915160209097015197919550909350505050565b5f80611a1483850185612b0f565b90505f81516002811115611a2a57611a2a612bfa565b03611ac6575f8160600151806020019051810190611a489190612fea565b80519091503414611aaa57602082015181516040517fcece04c500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90921660048301526024820152604401611608565b80515f908190611abb9082906123e3565b509350611cdb915050565b600181516002811115611adb57611adb612bfa565b03611af7575f611aec8260016118e2565b9450611cdb92505050565b600281516002811115611b0c57611b0c612bfa565b036102aa575f8160600151806020019051810190611b2a919061302c565b9050816020015173ffffffffffffffffffffffffffffffffffffffff1663f242432a836040015130845f0151856020015186604001516040518663ffffffff1660e01b8152600401611b809594939291906130ea565b5f604051808303815f87803b158015611b97575f80fd5b505af1158015611ba9573d5f803e3d5ffd5b5050506020808301519084015183516040517efdd58e000000000000000000000000000000000000000000000000000000008152306004820152602481019190915291925073ffffffffffffffffffffffffffffffffffffffff169062fdd58e90604401602060405180830381865afa158015611c28573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c4c919061314b565b1015611cac57602080830151908201516040517fcece04c500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90921660048301526024820152604401611608565b5f80611cc084602001518460200151611edc565b91509150611abb8360200151836123e390919063ffffffff16565b5092915050565b3068929eee149b4bd212685403611d005763ab143c065f526004601cfd5b3068929eee149b4bd212685573ffffffffffffffffffffffffffffffffffffffff83811690815c908416611d87576040517fbf182be800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff80871660048301528516602482015260448101849052606401611608565b80831115611de7576040517f5c54305e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff861660048201526024810182905260448101849052606401611608565b611df18284611f41565b5073ffffffffffffffffffffffffffffffffffffffff85165f9081526020819052604081208054859290611e2690849061318f565b909155505073ffffffffffffffffffffffffffffffffffffffff8516611e5557611e5084846123f3565b611e76565b611e7673ffffffffffffffffffffffffffffffffffffffff8616858561240c565b6040805173ffffffffffffffffffffffffffffffffffffffff8681168252602082018690528716917fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542910160405180910390a250503868929eee149b4bd2126855505050565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606084901b166020820152603481018290525f908190605401604051602081830303815290604052805190602001209050611f388190565b91509250929050565b5f61094083611f5184825c6131a2565b92508261245f565b3068929eee149b4bd212685403611f775763ab143c065f526004601cfd5b3068929eee149b4bd212685573ffffffffffffffffffffffffffffffffffffffff8416611ff7576040517fbf182be800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff80871660048301528516602482015260448101839052606401611608565b8115612054576040517f5c54305e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff861660048201525f602482015260448101839052606401611608565b73ffffffffffffffffffffffffffffffffffffffff85165f9081526001602090815260408083208684529091528120805484929061209390849061318f565b90915550506040517ff242432a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86169063f242432a906120f290309088908890889088906004016130ea565b5f604051808303815f87803b158015612109575f80fd5b505af115801561211b573d5f803e3d5ffd5b50506040805173ffffffffffffffffffffffffffffffffffffffff888116825260208201879052891693507fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd4354292500160405180910390a23868929eee149b4bd21268555050505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f6ab67a0d00000000000000000000000000000000000000000000000000000000148061094057507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610940565b638b78c6d8600c52825f526020600c2080548381178361223c575080841681185b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b604080516060815290528163ffffffff821061228a57fe5b8251661d174b32e2c553606082036122c157604080516001860160051b92830281525f602082019081529201810190528452611cdb565b601f1980830151828106158382040290508560051b81811185518811166122eb5750505050611cdb565b816020018501604051036123115792830291840191909152508101602001604052611cdb565b604051915060208201816020018101604052808952855160051b6020015b868101518282015284018061232f575093029052509051905292915050565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af18060015f5114166123a257803d873b1517106123a257637939f4245f526004601cfd5b505f60605260405250505050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b5f61094083611f5184825c61318f565b5f385f3884865af16109655763b12d13eb5f526004601cfd5b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af18060015f51141661245557803d853b151710612455576390b8ec185f526004601cfd5b505f603452505050565b80825d5050565b5f60208284031215612476575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146124a5575f80fd5b9392505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610950575f80fd5b5f602082840312156124dd575f80fd5b81356124a5816124ac565b5f602082840312156124f8575f80fd5b5035919050565b5f8060408385031215612510575f80fd5b823561251b816124ac565b946020939093013593505050565b5f8083601f840112612539575f80fd5b50813567ffffffffffffffff811115612550575f80fd5b6020830191508360208260051b850101111561256a575f80fd5b9250929050565b5f805f8060408587031215612584575f80fd5b843567ffffffffffffffff81111561259a575f80fd5b6125a687828801612529565b909550935050602085013567ffffffffffffffff8111156125c5575f80fd5b6125d187828801612529565b95989497509550505050565b5f8083601f8401126125ed575f80fd5b50813567ffffffffffffffff811115612604575f80fd5b60208301915083602082850101111561256a575f80fd5b5f806020838503121561262c575f80fd5b823567ffffffffffffffff811115612642575f80fd5b61264e858286016125dd565b90969095509350505050565b5f806020838503121561266b575f80fd5b823567ffffffffffffffff811115612681575f80fd5b61264e85828601612529565b5f805f805f805f805f60c08a8c0312156126a5575f80fd5b893567ffffffffffffffff8111156126bb575f80fd5b6126c78c828d01612529565b909a5098505060208a01356126db816124ac565b965060408a013567ffffffffffffffff8111156126f6575f80fd5b6127028c828d016125dd565b90975095505060608a013567ffffffffffffffff811115612721575f80fd5b61272d8c828d016125dd565b9a9d999c50979a96999598959660808101359660a09091013595509350505050565b5f805f805f60608688031215612763575f80fd5b853567ffffffffffffffff811115612779575f80fd5b61278588828901612529565b9096509450506020860135612799816124ac565b9250604086013567ffffffffffffffff8111156127b4575f80fd5b6127c0888289016125dd565b969995985093965092949392505050565b5f805f805f608086880312156127e5575f80fd5b85356127f0816124ac565b9450602086013567ffffffffffffffff81111561280b575f80fd5b612817888289016125dd565b9699909850959660408101359660609091013595509350505050565b5f805f805f805f8060a0898b03121561284a575f80fd5b8835612855816124ac565b97506020890135612865816124ac565b9650604089013567ffffffffffffffff811115612880575f80fd5b61288c8b828c01612529565b909750955050606089013567ffffffffffffffff8111156128ab575f80fd5b6128b78b828c01612529565b909550935050608089013567ffffffffffffffff8111156128d6575f80fd5b6128e28b828c016125dd565b999c989b5096995094979396929594505050565b5f805f805f8060a0878903121561290b575f80fd5b8635612916816124ac565b95506020870135612926816124ac565b94506040870135935060608701359250608087013567ffffffffffffffff81111561294f575f80fd5b61295b89828a016125dd565b979a9699509497509295939492505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f602082840312156129aa575f80fd5b813580151581146124a5575f80fd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126129ec575f80fd5b83018035915067ffffffffffffffff821115612a06575f80fd5b60200191503681900382131561256a575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516080810167ffffffffffffffff81118282101715612a6a57612a6a612a1a565b60405290565b604051610100810167ffffffffffffffff81118282101715612a6a57612a6a612a1a565b6040516060810167ffffffffffffffff81118282101715612a6a57612a6a612a1a565b604051601f8201601f1916810167ffffffffffffffff81118282101715612ae057612ae0612a1a565b604052919050565b5f67ffffffffffffffff821115612b0157612b01612a1a565b50601f01601f191660200190565b5f60208284031215612b1f575f80fd5b813567ffffffffffffffff811115612b35575f80fd5b820160808185031215612b46575f80fd5b612b4e612a47565b813560038110612b5c575f80fd5b81526020820135612b6c816124ac565b60208201526040820135612b7f816124ac565b6040820152606082013567ffffffffffffffff811115612b9d575f80fd5b80830192505084601f830112612bb1575f80fd5b8135612bc4612bbf82612ae8565b612ab7565b818152866020838601011115612bd8575f80fd5b816020850160208301375f918101602001919091526060820152949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f8151808452602084019350602083015f5b82811015612c79578151805173ffffffffffffffffffffffffffffffffffffffff1687526020908101518188015260409096019590910190600101612c39565b5093949350505050565b81835281816020850137505f602082840101525f6020601f19601f840116840101905092915050565b608081525f60e08201875160606080850152818151808452610100860191506020830193505f92505b80831015612d1b57835173ffffffffffffffffffffffffffffffffffffffff81511683526020810151602084015250604082019150602084019350600183019250612cd5565b5060208a015160a086015260408a015160c08601528481036020860152612d42818a612c27565b92505050612d68604084018773ffffffffffffffffffffffffffffffffffffffff169052565b8281036060840152612d7b818587612c83565b98975050505050505050565b602081525f612d9a602083018486612c83565b949350505050565b8051612dad816124ac565b919050565b5f82601f830112612dc1575f80fd5b815167ffffffffffffffff811115612ddb57612ddb612a1a565b8060051b612deb60208201612ab7565b91825260208185018101929081019086841115612e06575f80fd5b6020860192505b83831015612e31578251612e20816124ac565b825260209283019290910190612e0d565b9695505050505050565b805167ffffffffffffffff81168114612dad575f80fd5b5f60208284031215612e62575f80fd5b815167ffffffffffffffff811115612e78575f80fd5b82016101008185031215612e8a575f80fd5b612e92612a70565b612e9b82612da2565b8152612ea960208301612da2565b6020820152612eba60408301612da2565b6040820152612ecb60608301612da2565b6060820152608082015167ffffffffffffffff811115612ee9575f80fd5b612ef586828501612db2565b608083015250612f0760a08301612e3b565b60a082015260c08281015190820152612f2260e08301612da2565b60e0820152949350505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b6020815273ffffffffffffffffffffffffffffffffffffffff82511660208201525f6020830151604080840152612d9a6060840182612f2f565b606081525f612fa96060830186612f2f565b60208301949094525060400152919050565b5f8060408385031215612fcc575f80fd5b82516020840151909250612fdf816124ac565b809150509250929050565b5f6020828403128015612ffb575f80fd5b506040516020810167ffffffffffffffff8111828210171561301f5761301f612a1a565b6040529151825250919050565b5f6020828403121561303c575f80fd5b815167ffffffffffffffff811115613052575f80fd5b820160608185031215613063575f80fd5b61306b612a94565b8151815260208083015190820152604082015167ffffffffffffffff811115613092575f80fd5b80830192505084601f8301126130a6575f80fd5b81516130b4612bbf82612ae8565b8181528660208386010111156130c8575f80fd5b8160208501602083015e5f918101602001919091526040820152949350505050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff8516602082015283604082015282606082015260a060808201525f61314060a0830184612f2f565b979650505050505050565b5f6020828403121561315b575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561094057610940613162565b818103818111156109405761094061316256fea2646970667358221220939d361b5e90e1226b2c60a1dd15199ed11a5562d5a9b8397ea79704761e263364736f6c634300081a0033", h = class h extends g {
894
+ constructor() {
895
+ super(...arguments), this.abi = R;
896
+ }
897
+ /**
898
+ * Clawbacks assets from an incentive associated with the budget via Boost Core.
899
+ * Only the authorized users can clawback assets from an incentive.
900
+ * If the asset transfer fails, the reclamation will revert.
901
+ *
902
+ * @example
903
+ * ```ts
904
+ * const [amount, address] = await budgets.budget.clawbackFromTarget(
905
+ * core.assertValidAddress(),
906
+ * erc20Incentive.buildClawbackData(1n),
907
+ * boost.id,
908
+ * incentiveId,
909
+ * );
910
+ * ```
911
+ * @public
912
+ * @async
913
+ * @param {Address} target - The address of a contract implementing clawback, typically `BoostCore`
914
+ * @param {Hex} data - The encoded data payload for the clawback, can be acquired with `incentive.buildClawbackData`
915
+ * @param {bigint | number} boostId - The ID of the boost
916
+ * @param {bigint | number} incentiveId - The ID of the incentive
917
+ * @param {?WriteParams} [params] - Optional write parameters
918
+ * @returns {Promise<[bigint, Address]>} - Returns a tuple of amount reclaimed and the address reclaimed from
919
+ */
920
+ async clawbackFromTarget(f, b, a, d, e) {
921
+ return await this.awaitResult(
922
+ this.clawbackFromTargetRaw(f, b, a, d, e)
923
+ );
924
+ }
925
+ /**
926
+ * Clawbacks assets from an incentive associated with the budget via Boost Core.
927
+ * Only the authorized users can clawback assets from an incentive.
928
+ * If the asset transfer fails, the reclamation will revert.
929
+ *
930
+ * @example
931
+ * ```ts
932
+ * const { hash, result: [ amount, address ] } = await budgets.budget.clawbackFromTargetRaw(
933
+ * core.assertValidAddress(),
934
+ * erc20Incentive.buildClawbackData(1n),
935
+ * boost.id,
936
+ * incentiveId,
937
+ * );
938
+ * ```
939
+ * @public
940
+ * @async
941
+ * @param {Address} target - The address of a contract implementing clawback, typically `BoostCore`
942
+ * @param {Hex} data - The encoded data payload for the clawback, can be acquired with `incentive.buildClawbackData`
943
+ * @param {bigint | number} boostId - The ID of the boost
944
+ * @param {bigint | number} incentiveId - The ID of the incentive
945
+ * @param {?WriteParams} [params] - Optional write parameters
946
+ * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - Returns transaction hash and simulated result
947
+ */
948
+ async clawbackFromTargetRaw(f, b, a, d, e) {
949
+ const { request: c, result: r } = await X(this._config, {
950
+ address: this.assertValidAddress(),
951
+ args: [f, b, BigInt(a), BigInt(d)],
952
+ ...this.optionallyAttachAccount(),
953
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
954
+ ...e
955
+ });
956
+ return { hash: await Y(
957
+ this._config,
958
+ c
959
+ ), result: r };
960
+ }
961
+ /**
962
+ * Disburses assets from the budget to a single recipient
963
+ * If the asset transfer fails, the disbursement will revert
964
+ *
965
+ * @public
966
+ * @async
967
+ * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer
968
+ * @param {?WriteParams} [params]
969
+ * @returns {Promise<boolean>} - True if the disbursement was successful
970
+ */
971
+ async disburse(f, b) {
972
+ return await this.awaitResult(this.disburseRaw(f, b));
973
+ }
974
+ /**
975
+ * Disburses assets from the budget to a single recipient
976
+ * If the asset transfer fails, the disbursement will revert
977
+ *
978
+ * @public
979
+ * @async
980
+ * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer
981
+ * @param {?WriteParams} [params]
982
+ * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the disbursement was successful
983
+ */
984
+ async disburseRaw(f, b) {
985
+ const { request: a, result: d } = await f0(
986
+ this._config,
987
+ {
988
+ address: this.assertValidAddress(),
989
+ args: [s(f)],
990
+ ...this.optionallyAttachAccount(),
991
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
992
+ ...b
993
+ }
994
+ );
995
+ return { hash: await b0(this._config, a), result: d };
996
+ }
997
+ /**
998
+ * Disburses assets from the budget to multiple recipients
999
+ *
1000
+ * @public
1001
+ * @async
1002
+ * @param {Array<FungibleTransferPayload | ERC1155TransferPayload>} transfers
1003
+ * @param {?WriteParams} [params]
1004
+ * @returns {Promise<boolean>} - True if all disbursements were successful
1005
+ */
1006
+ async disburseBatch(f, b) {
1007
+ return await this.awaitResult(this.disburseBatchRaw(f, b));
1008
+ }
1009
+ /**
1010
+ * Disburses assets from the budget to multiple recipients
1011
+ *
1012
+ * @public
1013
+ * @async
1014
+ * @param {Array<FungibleTransferPayload | ERC1155TransferPayload>} transfers
1015
+ * @param {?WriteParams} [params]
1016
+ * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if all disbursements were successful
1017
+ */
1018
+ async disburseBatchRaw(f, b) {
1019
+ const { request: a, result: d } = await a0(
1020
+ this._config,
1021
+ {
1022
+ address: this.assertValidAddress(),
1023
+ args: [f.map(s)],
1024
+ ...this.optionallyAttachAccount(),
1025
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
1026
+ ...b
1027
+ }
1028
+ );
1029
+ return { hash: await d0(
1030
+ this._config,
1031
+ a
1032
+ ), result: d };
1033
+ }
1034
+ /**
1035
+ * Get the total amount of assets allocated to the budget, including any that have been distributed
1036
+ * If a tokenId is provided, get the total amount of ERC1155 assets allocated to the budget, including any that have been distributed
1037
+ *
1038
+ * @public
1039
+ * @param {Address} [asset="0x0000000000000000000000000000000000000000"] - The address of the asset
1040
+ * @param {?(bigint | undefined)} [tokenId] - The ID of the token
1041
+ * @param {?ReadParams} [params]
1042
+ * @returns {Promise<bigint>} - The total amount of assets
1043
+ */
1044
+ total(f = t, b, a) {
1045
+ return e0(this._config, {
1046
+ address: this.assertValidAddress(),
1047
+ args: b ? [f, b] : [f],
1048
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
1049
+ ...a
1050
+ });
1051
+ }
1052
+ /**
1053
+ * Get the amount of assets that have been distributed from the budget.
1054
+ * If a tokenId is provided, get the amount of ERC1155 assets that have been distributed from the budget
1055
+ *
1056
+ * @public
1057
+ * @param {Address} [asset="0x0000000000000000000000000000000000000000"]
1058
+ * @param {?(bigint | undefined)} [tokenId]
1059
+ * @param {?ReadParams} [params]
1060
+ * @returns {Promise<bigint>} - The amount of assets distributed
1061
+ */
1062
+ distributed(f = t, b, a) {
1063
+ return c0(this._config, {
1064
+ address: this.assertValidAddress(),
1065
+ args: b ? [f, b] : [f],
1066
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
1067
+ ...a
1068
+ });
1069
+ }
1070
+ /**
1071
+ * @inheritdoc
1072
+ *
1073
+ * @public
1074
+ * @param {?TransparentBudgetPayload} [_payload]
1075
+ * @param {?DeployableOptions} [_options]
1076
+ * @returns {GenericDeployableParams}
1077
+ */
1078
+ buildParameters(f, b) {
1079
+ const [a, d] = this.validateDeploymentConfig({}, b);
1080
+ return {
1081
+ abi: R,
1082
+ bytecode: m0,
1083
+ args: [l0],
1084
+ ...this.optionallyAttachAccount(d.account)
1085
+ };
1086
+ }
1087
+ };
1088
+ h.bases = {
1089
+ 31337: void 0,
1090
+ ...w0
1091
+ }, h.registryType = y.BUDGET;
1092
+ let w = h;
1093
+ const _ = {
1094
+ // ['0x64683da1']: VestingBudget,
1095
+ // ['0x2929d19c']: SimpleBudget,
1096
+ [t0]: u0,
1097
+ [i0]: u,
1098
+ [r0]: l,
1099
+ [n0]: w
1100
+ };
1101
+ async function x0(i, f, b) {
1102
+ const a = await o0(i.config, {
1103
+ abi: s0,
1104
+ functionName: "getComponentInterface",
1105
+ address: f,
1106
+ ...b
1107
+ }), d = _[a];
1108
+ if (!d)
1109
+ throw new h0(
1110
+ Object.keys(_),
1111
+ a
1112
+ );
1113
+ return new d(i, f);
1114
+ }
1115
+ export {
1116
+ _ as B,
1117
+ u as M,
1118
+ w as T,
1119
+ l as a,
1120
+ x0 as b,
1121
+ p0 as c,
1122
+ y0 as p
1123
+ };
1124
+ //# sourceMappingURL=Budget-Bvi5Qjqp.js.map